Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4      [все]
 Нейронные сети  [new]
Damir_85
Member

Откуда:
Сообщений: 163
Здравствуйте.
Я хочу начать изучать нейронные сети, и поэтому хотел спросить вас о литературе по этой теме. Я конечно посмотрел кое какое видео по нейросети, небольшое представление имею. Какую бы литературу вы мне посоветовали? В принципе, если книга конкретно не касается Дельфи, но читая, можно составлять свои программы, то тоже очень хорошо, если же есть с примерами по Дельфи это отлично.
И такой небольшой вопрос касательно распознавания изображений: предположим есть небольшой jpg-файл, на котором написано слово или предложение. Причем самым обычным шрифтом, без экзотики. Тяжело ли вообще писать программы (Дельфи), чтобы переводить эту картинку в набранный текст? (ну т.е в плане реализации, я конечно, понимаю, что все зависит от знаний, но на каком этапе обучения можно уже писать такие программы?)
Конечно, я не ради только это задачи собираюсь изучать нейросети)
1 окт 17, 18:41    [20834760]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Если задача распознавать текст, то есть весьма мощная штука - cuneiForm.
https://ru.wikipedia.org/wiki/CuneiForm

Обёртка на Delphi для неё тут:
https://www.winsoft.sk/ocr.htm
1 окт 17, 20:21    [20834866]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Сергей N
Member

Откуда: отсюда
Сообщений: 51
Зайдите на Хабрахабр. Там много вводного материала, со ссылками на работающие программы, в том числе, в среде Delphi. Внимательно читайте комментарии. Следует сказать, что Delphi не считается подходящей средой для моделирования нейросетей.
1 окт 17, 21:33    [20834928]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
Причина?
1 окт 17, 21:45    [20834939]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
schi
Member

Откуда: Москва
Сообщений: 2352
makhaon
Причина?


Мертвый язык
1 окт 17, 22:14    [20834958]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43932

schi
Мертвый язык

никто не умеет на нём программировать на таком уровне.

Posted via ActualForum NNTP Server 1.5

1 окт 17, 22:19    [20834964]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Сергей N
Member

Откуда: отсюда
Сообщений: 51
Для автора темы добавлю полезную ссылочку:

https://tproger.ru/digest/learning-neuroweb-all-for-begin/
2 окт 17, 00:15    [20835094]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Сергей N
Member

Откуда: отсюда
Сообщений: 51
makhaon,

Лично для меня основная причина - отсутствие готовых заготовок (включая специализированные библиотеки) для организации типовых нейросетей. Взгляните, например, сюда http://нейронные-сети.рф/. Или Fast Artificial Neural Network Library (libfann) для C. А также осутствие гибких языковых конструкций, пригодных для описания функциональных особенностей нейросетей (Python, R).
2 окт 17, 00:47    [20835135]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
под ван
Guest
schi
makhaon
Причина?


Мертвый язык

Почему все кроме Крюкова знают об этом, но ему не говорят?
2 окт 17, 02:44    [20835185]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Сергей N
Зайдите на Хабрахабр. Там много вводного материала, со ссылками на работающие программы, в том числе, в среде Delphi. Внимательно читайте комментарии. Следует сказать, что Delphi не считается подходящей средой для моделирования нейросетей.


бредятина чистейшей воды
2 окт 17, 08:59    [20835333]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator,

Твоя программа хоть и с rus.traineddata не смогла разобрать обычный шрифт с форума к примеру, сделанный на вин - принт скрин
2 окт 17, 09:13    [20835355]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Няшик
defecator,

Твоя программа хоть и с rus.traineddata не смогла разобрать обычный шрифт с форума к примеру, сделанный на вин - принт скрин


потому что ты не умеешь её готовит.
Впрочем, это тебе не SSE, это мозги нужны, чтобы изучить технологию
2 окт 17, 09:20    [20835369]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
Смешно, конечно. И про уровень, и про мёртвость и про гибкость.

Посмотрел libfann, ну - месяц, неспешно, и будет клон на Делфи.
2 окт 17, 09:24    [20835389]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
makhaon
Смешно, конечно. И про уровень, и про мёртвость и про гибкость.

Посмотрел libfann, ну - месяц, неспешно, и будет клон на Делфи.


так клон не нужен, есть к нему обёртка на Дельфи
2 окт 17, 09:26    [20835391]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
Тем более.
2 окт 17, 09:39    [20835412]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator,

Говорить то ты мастак, но когда example с сайта с русским файлом traineddata вывод такое. То я сразу нажимаю удалить навсегда.

+
Картинка с другого сайта.
2 окт 17, 10:26    [20835572]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
В прочем это похоже выделение картинки работает глючно, мне удалось 1 раз восстановить текст Англиканские с картинки полностью.

Остальные разы вот типа такое было

Картинка с другого сайта.
2 окт 17, 10:29    [20835583]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
schi
Member

Откуда: Москва
Сообщений: 2352
makhaon
Смешно, конечно. И про уровень, и про мёртвость и про гибкость.

Посмотрел libfann, ну - месяц, неспешно, и будет клон на Делфи.


Про мертвость - это увы не смех, а факт. Меня тоже это не очень радует.
2 окт 17, 10:36    [20835605]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Няшик
defecator,

Говорить то ты мастак, но когда example с сайта с русским файлом traineddata вывод такое. То я сразу нажимаю удалить навсегда.

+
Картинка с другого сайта.


потому что, как я тебе уже сказал, ты не умеешь это готовить.

Требования у всех систем OCR - это 600 dpi,
а ещё русские словари для cuneiForm нужно обучать на разные шрифты.

Как сделано это у FineReader
(загляни в папочку, и посмотри, какое количество обученных нейросетей там лежит).

Для cuneiForm сделано это только для Eng.

И, в общем, давай ты не будешь рассуждать о том, чего не знаешь и о чём вообще не в курсе.
Иди затачивай свой SSE
2 окт 17, 10:36    [20835609]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator,

Ты опять пытаешься выставить свои права, но вообще неудачно.

В этой программе решает - то, как ты выделил на картинке текст.

Вот пруфы
+
Картинка с другого сайта.


-- 40 попыток
Картинка с другого сайта.



А потом ты втираешь такую дичь. Да на помойку такой хлам. Онлайн сервисы могут разобрать текст вообще в пикселях на 100% а тут такое.
2 окт 17, 10:42    [20835623]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Sarych
Member

Откуда:
Сообщений: 10
Для автора темы.
В статьях на сайте, доступно и наглядно описана теория, примеры на Delphi:
https://basegroup.ru/community/articles/math

Для практики, можно использовать FANN - Fast Artificial Neural Network Library:
http://leenissen.dk/fann/wp/language-bindings/
https://en.wikipedia.org/wiki/Fast_Artificial_Neural_Network
https://github.com/libfann/fann
https://sourceforge.net/projects/fann/

FANN for Delphi:
http://sourceforge.net/projects/fann/files/fann/2.1.0beta/fann_delphi_2_0.zip/download
2 окт 17, 10:46    [20835631]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Няшик
defecator,

Ты опять пытаешься выставить свои права, но вообще неудачно.

В этой программе решает - то, как ты выделил на картинке текст.


Не надо ничего выделять.
И ещё раз, не пытайся рассуждать о том, с чем ты не умеешь работать.
Вот тебе образец с необученным словарём.

К сообщению приложен файл. Размер - 135Kb
2 окт 17, 10:51    [20835642]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator
Не надо ничего выделять.


Ну тогда расскажи, для чего там такое кривое выделением.

И я вообще то давно написал что проблема с кривым выделением.
2 окт 17, 10:55    [20835658]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Няшик
defecator
Не надо ничего выделять.


Ну тогда расскажи, для чего там такое кривое выделением.

И я вообще то давно написал что проблема с кривым выделением.


ни о каком кривом выделении не знаю. Возможно, всё дело в тебе.

Библиотеку эту использую уже 2.5 года для оцифровки судебных дел для картотек.
Работает изумительно, если правильно обучить нейросети.
2 окт 17, 10:59    [20835669]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator,

Нажми на картинку левой кнопкой, и тяни в нижнюю правую сторону. Он выделяет часть картинки
2 окт 17, 11:09    [20835707]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Няшик
defecator,

Нажми на картинку левой кнопкой, и тяни в нижнюю правую сторону. Он выделяет часть картинки

И что должно быть ?

К сообщению приложен файл. Размер - 136Kb
2 окт 17, 11:11    [20835715]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator,

Так ты возьми и сделай что я сказал. Появится красное выделение области картинки.
2 окт 17, 11:19    [20835739]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
Няшик
defecator,

Так ты возьми и сделай что я сказал. Появится красное выделение области картинки.


я в своей тестовой программе скрины показываю,
мне начхать на демки с сайта.
Там программеры могли накрутить чего угодно, тем более, что сама распознавалка - отдельно в DLL,
а всё остальное в интерфейсе - это накручено программерами на дельфях.

Распознавалка работает корректно, быстро и качественно, и этого достаточно.
2 окт 17, 11:22    [20835747]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 728
defecator,

Скачал исходники и глянул. Он делает снимок по шайпу, и когда нажимаешь мышкой. То он перемещает этот шайп в область нужную

+
unit Main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, Ocr, ExtDlgs, XPMan;

type
  TFormMain = class(TForm)
    Ocr: TOcr;
    OpenPictureDialog: TOpenPictureDialog;
    XPManifest: TXPManifest;
    PanelLeft: TPanel;
    Panel: TPanel;
    Image: TImage;
    ButtonSelectPicture: TButton;
    PanelRight: TPanel;
    Splitter: TSplitter;
    ButtonCancel: TButton;
    ProgressBar: TProgressBar;
    PageControl: TPageControl;
    TabSheetText: TTabSheet;
    MemoText: TMemo;
    TabSheetHtml: TTabSheet;
    MemoHtml: TMemo;
    TabSheetUnlv: TTabSheet;
    MemoUnlv: TMemo;
    TabSheetWords: TTabSheet;
    ScrollBoxWords: TScrollBox;
    ImageWords: TImage;
    TabSheetRegions: TTabSheet;
    ScrollBoxRegions: TScrollBox;
    ImageRegions: TImage;
    TabSheetTextLines: TTabSheet;
    ScrollBoxTextLines: TScrollBox;
    ImageTextLines: TImage;
    TabSheetConnectedComponents: TTabSheet;
    ScrollBoxComponents: TScrollBox;
    ImageComponents: TImage;
    ButtonRecognize: TButton;
    TabSheetParagraphs: TTabSheet;
    ScrollBoxParagraphs: TScrollBox;
    ImageParagraphs: TImage;
    Shape: TShape;
    procedure ButtonSelectPictureClick(Sender: TObject);
    procedure ButtonRecognizeClick(Sender: TObject);
    procedure ButtonCancelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure OcrProgress(Sender: TObject; var Cancel: Boolean; Progress,
      WordCount: Integer);
    procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ImageMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ImageMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PanelResize(Sender: TObject);
  private
    { Private declarations }
    CancelRequest: Boolean;
    Selecting: Boolean;
  public
    { Public declarations }
  end;

var
  FormMain: TFormMain;

implementation

{$R *.dfm}

uses Jpeg
{$ifdef CONDITIONALEXPRESSIONS}
  {$if CompilerVersion >= 30} // Delphi 10
    , GIFImg, PngImage
  {$ifend}
{$endif}
;

procedure TFormMain.ButtonSelectPictureClick(Sender: TObject);
begin
  with OpenPictureDialog do
    if Execute then
    begin
      Shape.Width := 0;
      Shape.Height := 0;
      ProgressBar.Position := 0;
      MemoText.Clear;
      MemoHtml.Clear;
      MemoUnlv.Clear;
      ImageWords.Picture := nil;
      ImageRegions.Picture := nil;
      ImageTextLines.Picture := nil;
      ImageComponents.Picture := nil;
      ImageParagraphs.Picture := nil;
      
      try
        Image.Picture.LoadFromFile(FileName);
        Ocr.Picture.Assign(Image.Picture);
      except
        Image.Picture := nil;
        ShowMessage('Preview of this image cannot be displayed. Click Recognize button to start OCR.');
        Ocr.PictureFileName := FileName;
      end;

      if not Ocr.Active then
      begin
        Ocr.DataPath := ExtractFilePath(Application.ExeName);
        Ocr.Active := True;
      end;
      ButtonRecognize.Enabled := True;
      Image.Cursor := crCross;
    end
end;

function RectToImageRect(Image: TImage; Rect: TRect): TRect;
var
  w, h, cw, ch: Integer;
  xyaspect: Double;
  DrawRect: TRect;
  Temp: Integer;
begin
  w := Image.Picture.Width;
  h := Image.Picture.Height;
  cw := Image.ClientWidth;
  ch := Image.ClientHeight;
  if Image.Stretch or (Image.Proportional and ((w > cw) or (h > ch))) then
  begin
    if Image.Proportional and (w > 0) and (h > 0) then
    begin
      xyaspect := w / h;
      if w > h then
      begin
        w := cw;
        h := Trunc(cw / xyaspect);
        if h > ch then
        begin
          h := ch;
          w := Trunc(ch * xyaspect);
        end;
      end
      else
      begin
        h := ch;
        w := Trunc(ch * xyaspect);
        if w > cw then
        begin
          w := cw;
          h := Trunc(cw / xyaspect);
        end;
      end;
    end
    else
    begin
      w := cw;
      h := ch;
    end;
  end;

  with DrawRect do
  begin
    Left := 0;
    Top := 0;
    Right := w;
    Bottom := h;
  end;

  if Image.Center then
    OffsetRect(DrawRect, (cw - w) div 2, (ch - h) div 2);

  if Rect.Left > Rect.Right then
  begin
    // swap
    Temp := Rect.Left;
    Rect.Left := Rect.Right;
    Rect.Right := Temp;
  end;

  if Rect.Top > Rect.Bottom then
  begin
    // swap
    Temp := Rect.Top;
    Rect.Top := Rect.Bottom;
    Rect.Bottom := Temp;
  end;

  Result.Left := Trunc((Rect.Left - DrawRect.Left) * (Image.Picture.Width / w));
  Result.Top := Trunc((Rect.Top - DrawRect.Top) * (Image.Picture.Height / h));
  Result.Right := Trunc(Result.Left + (Rect.Right - Rect.Left) * (Image.Picture.Width / w));
  Result.Bottom := Trunc(Result.Top + (Rect.Bottom - Rect.Top) * (Image.Picture.Height / h));

  if Result.Left < 0 then
    Result.Left := 0
  else if Result.Left >= Image.Picture.Width then
    Result.Left := Image.Picture.Width - 1;

  if Result.Top < 0 then
    Result.Top := 0
  else if Result.Top >= Image.Picture.Height then
    Result.Top := Image.Picture.Height - 1;

  if Result.Right < 0 then
    Result.Right := 0
  else if Result.Right >= Image.Picture.Width then
    Result.Left := Image.Picture.Width - 1;

  if Result.Bottom < 0 then
    Result.Bottom := 0
  else if Result.Bottom >= Image.Picture.Height then
    Result.Bottom := Image.Picture.Height - 1;
end;

function RectToShapeRect(UseShape: Boolean; Rect, ShapeRect: TRect): TRect;
begin
  Result := Rect;
  if UseShape then
  begin
    Inc(Result.Left, ShapeRect.Left);
    Inc(Result.Top, ShapeRect.Top);
    Inc(Result.Right, ShapeRect.Left);
    Inc(Result.Bottom, ShapeRect.Top);
  end;
end;

procedure TFormMain.ButtonRecognizeClick(Sender: TObject);
var
  i: Integer;
  UseShape: Boolean;
  ShapeRect: TRect;
begin
  try
    ProgressBar.Position := 0;
    CancelRequest := False;
    ButtonSelectPicture.Enabled := False;
    ButtonCancel.Visible := True;
    MemoText.Clear;
    MemoHtml.Clear;
    MemoUnlv.Clear;
    ImageWords.Picture := nil;
    ImageRegions.Picture := nil;
    ImageTextLines.Picture := nil;
    ImageComponents.Picture := nil;
    ImageParagraphs.Picture := nil;

    UseShape := (Shape.Width <> 0) and (Shape.Height <> 0);
    if UseShape then
    begin
      ShapeRect := RectToImageRect(Image, Shape.BoundsRect);
      Ocr.PictureLeft := ShapeRect.Left;
      Ocr.PictureTop := ShapeRect.Top;
      Ocr.PictureWidth := ShapeRect.Right - ShapeRect.Left;
      Ocr.PictureHeight := ShapeRect.Bottom - ShapeRect.Top;
    end
    else
    begin
      Ocr.PictureLeft := 0;
      Ocr.PictureTop := 0;
      Ocr.PictureWidth := 0;
      Ocr.PictureHeight := 0;
    end;

    Repaint;
    if not CancelRequest then
      MemoText.Text := StringReplace(Ocr.Text, #$a, #$d#$a, [rfReplaceAll]);
    if not CancelRequest then
      MemoHtml.Text := StringReplace(Ocr.GetHtmlText, #$a, #$d#$a, [rfReplaceAll]);
    if not CancelRequest then
      MemoUnlv.Text := StringReplace(Ocr.Unlv, #$a, #$d#$a, [rfReplaceAll]);

    if not CancelRequest then
      ProgressBar.Position := 100
    else
      ProgressBar.Position := 0;

    if not CancelRequest then
      if Image.Picture <> nil then
      begin
        ImageWords.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageWords.Picture.Bitmap.PixelFormat := pf32bit;
        ImageWords.Canvas.Brush.Color := TColor($007FFF);
        for i := 0 to Ocr.WordCount - 1 do
          ImageWords.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.Words[i], ShapeRect));

        ImageRegions.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageRegions.Picture.Bitmap.PixelFormat := pf32bit;
        ImageRegions.Canvas.Brush.Color := TColor($7F00FF);
        for i := 0 to Ocr.RegionCount - 1 do
          ImageRegions.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.Regions[i], ShapeRect));

        ImageTextLines.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageTextLines.Picture.Bitmap.PixelFormat := pf32bit;
        ImageTextLines.Canvas.Brush.Color := TColor($00FF7F);
        for i := 0 to Ocr.TextLineCount - 1 do
          ImageTextLines.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.TextLines[i], ShapeRect));

        ImageComponents.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageComponents.Picture.Bitmap.PixelFormat := pf32bit;
        ImageComponents.Canvas.Brush.Color := TColor($FF7F00);
        for i := 0 to Ocr.ConnectedComponentCount - 1 do
          ImageComponents.Canvas.FrameRect(RectToShapeRect(UseShape, Ocr.ConnectedComponents[i], ShapeRect));

        ImageParagraphs.Picture.Bitmap.Assign(Image.Picture.Graphic);
        ImageParagraphs.Picture.Bitmap.PixelFormat := pf32bit;
        ImageParagraphs.Canvas.Brush.Color := TColor($7FFF00);
        for i := 0 to Ocr.ParagraphCount - 1 do
          ImageParagraphs.Canvas.FrameRect(Ocr.Paragraphs[i].Location);
      end;
  finally
    ButtonCancel.Visible := False;
    ButtonSelectPicture.Enabled := True;
  end;
end;

procedure TFormMain.ButtonCancelClick(Sender: TObject);
begin
  CancelRequest := True;
end;

procedure TFormMain.FormCreate(Sender: TObject);
begin
  ShowMessage('OCR recognition can be slow when application is started from Delphi IDE.');
end;

procedure TFormMain.OcrProgress(Sender: TObject; var Cancel: Boolean;
  Progress, WordCount: Integer);
begin
  ProgressBar.Position := Progress;
  Application.ProcessMessages; // so we are able to click Cancel button
  Cancel := CancelRequest;
end;

procedure TFormMain.ImageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Ocr.Active then
    if Button = mbLeft then
    begin
      Selecting := True;
      Shape.Left := X;
      Shape.Top := Y;
      Shape.Width := 0;
      Shape.Height := 0;
    end;
end;

procedure TFormMain.ImageMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if Selecting then
  begin
    Shape.Width := X - Shape.Left;
    Shape.Height := Y - Shape.Top;
  end;
end;

procedure TFormMain.ImageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if Selecting then
  begin
    Selecting := False;
    Shape.Width := X - Shape.Left;
    Shape.Height := Y - Shape.Top;
    Repaint;
  end;
end;

procedure TFormMain.PanelResize(Sender: TObject);
begin
  Shape.Width := 0;
  Shape.Height := 0;
end;

end.


А когда надо, режим изображения в этой области
  ShapeRect := RectToImageRect(Image, Shape.BoundsRect);


По умолчанию, это вся область картинки
2 окт 17, 11:27    [20835764]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
ну и что ?
2 окт 17, 11:29    [20835777]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Partisan M
Member

Откуда:
Сообщений: 1184
Заглянул сюда случайно, увидев вопрос в общем списке тем. Delphi давно не существует, если кто не заметил.

Damir_85
Я хочу начать изучать нейронные сети, и поэтому хотел спросить вас о литературе по этой теме.


Значит, заодно придётся изучить Python. Большая часть литературы по нейронным сетям (теперь методика называется deep learning) и вообще по машинному обучению - с примерами на Python (в том числе новые книги на русском языке), и большая часть готовых библиотек предназначены для Python-а или имеют интерфейсы для обращения из Python-а. На втором месте - R, тоже неплохо обеспечен литературой и библиотеками. Но это, в отличие от Python и Delphi, специализированный язык для задач математической статистики.
Для темы машинного обучения глубокое знание Python-а не требуется, но заодно поизучаете то, чем сейчас можно заменить Delphi.

Ответы про распознавание текста вызваны тем, что их автор не понял вопроса.
2 окт 17, 11:42    [20835829]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
ziv-2014
Member

Откуда:
Сообщений: 63
Вот вариант на delphi https://github.com/Steema/BI
2 окт 17, 12:01    [20835914]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
ziv-2014
Вот вариант на delphi https://github.com/Steema/BI


Хоть и лежит на гитхабе, однако исходники там все испорченные.
Только интерфейсные части.

Хотя ещё весной там лежало всё целиком.
2 окт 17, 12:14    [20835962]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
defecator
Member

Откуда:
Сообщений: 35428
правильная ссылка на SteeBI со всеми исходниками:
http://www.steebi.com/files/code/beta/vcl_fmx/TeeBI_SourceCode.zip
2 окт 17, 12:15    [20835967]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Dimonka
Member

Откуда:
Сообщений: 952
Partisan M
Заглянул сюда случайно, увидев вопрос в общем списке тем. Delphi давно не существует, если кто не заметил.
Вообще ничего не существует. "R", "Python" тоже зачастую не существуют для коммерческого использования из-за особенности лицензионных соглашений многих из их "бесплатных" библиотек.
2 окт 17, 17:40    [20837054]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
автор
Про мертвость - это увы не смех, а факт. Меня тоже это не очень радует.


Идере расскажи, вместе посмеётесь :)

автор
Delphi давно не существует, если кто не заметил.


Весь мир - тлен. Ничего вокруг нет :)
2 окт 17, 23:08    [20837639]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
schi
Member

Откуда: Москва
Сообщений: 2352
makhaon
автор
Про мертвость - это увы не смех, а факт. Меня тоже это не очень радует.


Идере расскажи, вместе посмеётесь :)

автор
Delphi давно не существует, если кто не заметил.


Весь мир - тлен. Ничего вокруг нет :)


Мы вместе смеемся с 2007 года, если что.

Компиляторы Фортрана и PL/1, представь, до сих пор разрабатывают.
Я понимаю, что тебе грустно, да и мне тоже, но факт есть факт - скоро за упоминание Delphi в приличном обществе будут бить канделябром.
3 окт 17, 10:37    [20838197]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Cobalt747
Member

Откуда:
Сообщений: 1972
schi,

Это кто же, мне интересно, составляет это приличное общество?
3 окт 17, 12:26    [20838588]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
schi,

Идера то Сенчу прикупит, то еще что. Наверно, что бы поржать вместе и Игорем :)
3 окт 17, 14:39    [20839116]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Damir_85
Member

Откуда:
Сообщений: 163
Спасибо за ссылки.
Читая форум, натолкнулся на высказывание что Дельфи - это мертвый язык. Согласен лишь наполовину, потому, что да, действительно сейчас он не очень популярен, даже в объявлениях на работу его практически не встретишь. Но с другой стороны, какая разница на чем написана программа, ведь главное чтобы она работала!
Кстати насчет Python : в последнее время много о нем слышу, скорее всего начну его изучать, т.к. прочитал здесь что под него много библиотек, ну и сравню с Дельфи
3 окт 17, 18:05    [20839932]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
Damir_85
...какая разница на чем написана программа, ведь главное чтобы она работала...

Разница в том, что языков много, а годные библиотеки есть только для некоторых. Иногда можно использовать чужие библиотеки, но далеко не всегда.
3 окт 17, 18:27    [20839996]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
чччД,

Годные библиотеки можно написать, использовать самим и продавать. Мало кто думает терминами бизнеса. Ну тут мало что поделаешь.
3 окт 17, 18:38    [20840020]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
makhaon
чччД,

Годные библиотеки можно написать в гараже, использовать самим и продавать. Мало кто думает терминами бизнеса. Ну тут мало что поделаешь.

Поправил. :)
3 окт 17, 18:54    [20840056]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2090
чччД,

Бывает, что уж :)

http://hitech.vesti.ru/article/625961/
3 окт 17, 19:59    [20840117]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Jude
Member

Откуда: Mars
Сообщений: 2471
schi
makhaon
пропущено...


Идере расскажи, вместе посмеётесь :)

пропущено...


Весь мир - тлен. Ничего вокруг нет :)


Мы вместе смеемся с 2007 года, если что.

Компиляторы Фортрана и PL/1, представь, до сих пор разрабатывают.
Я понимаю, что тебе грустно, да и мне тоже, но факт есть факт - скоро за упоминание Delphi в приличном обществе будут бить канделябром.

мне тоже регулярно говорят, что делфи мертв. гдето с 2002го.
при этом ничего не мешало на нем работать .
поменял лыжи где-то в 2014 (12 лет!) = щас опять слышу от "горячих парней" 23х лет отроду , что "делфи мертв!"(с) - недавно вакансию получил на удаленку.
однако да. кто-то на мертвом языке стартанул игрушки под андроид на фаермонкей :)

Зомби, блин, апокалипсис!
11 окт 17, 12:43    [20860457]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
Jude,

Язык мертв когда его перестают использовать для новых проектов. А Firemonkey был изначально мертворожденным. А та поддержка которая сейчас существует - исключительно связанна с legacy продуктами которым embarcadero оказывает консалтинг.
Очень трудно отрицать смерть Языка, если его комьюнити с каждым годом только уменьшается.

А вакансии... Вакансии всегда будут.
30 окт 17, 19:00    [20913269]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
Откуда вы беретесь то?
30 окт 17, 19:05    [20913294]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 2405
rgreat,

дельфи тяжёл в использовании, современное поколение не может освоить такой объём информации, а зачёты получать надо
отсюда и срывы.

По комьюнити вообще удивительно, дельфи-форум вроде один из самых живых
30 окт 17, 19:20    [20913330]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
kealon(Ruslan),

Я не думаю что делфи сложнее любого современного веб-стека(где помимо языка нужно знать и понимать еще кучу технологий) или языков типа Scala, Haskel, Kotlin, Python, etc...
Часто встречаете вакансии типа Junior Delphi Devekoper? А Junior Python Developer? Сомневаюсь что это связанно со "сложностью" Delphi.

Просто отсутствует класс задач, с которыми он(Delphi) бы справлялся лучше конкурентных технологий.

По поводу комьюнити:
Стоит обратиться к открытым источникам: https://insights.stackoverflow.com/survey/2017#technology-programming-languages или http://githut.info/ чтобы понять что его почти нет. А локальный форум - не показатель.
30 окт 17, 19:39    [20913372]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
kealon(Ruslan),

дельфи - это ж интербейз. А он никому не нужен.
30 окт 17, 19:44    [20913384]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
ДаешьСети!
Guest
Даешь нейронный сети!
В пику ему:
30 окт 17, 19:46    [20913386]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
Дельфи очень неудобен для работы с базами.

В TTable нужно указывать алиасы BDE баз, а их не видно, пока дельфи на каждое работчее место не поставишь. Это дорого и геморно.
30 окт 17, 19:48    [20913390]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
чччД
Дельфи очень неудобен для работы с базами.

В TTable нужно указывать алиасы BDE баз, а их не видно, пока дельфи на каждое работчее место не поставишь. Это дорого и геморно.
А еще в дельфи нет виртуальной машины.
Это сразу показывает что язык однозначно не серьезный.
30 окт 17, 19:55    [20913407]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
Да о чем говорить, если даже ни одного приличного обфускатора под дельфи до сих пор не написали.
30 окт 17, 19:56    [20913409]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
В дельфи есть акцесс виолейшн и Батон1.ОнКлиск.
30 окт 17, 19:57    [20913410]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
rgreat,

никто не говорит что он не серьезный. Язык и инструмент хорош. Обкатан годами. Без детских болезней. Но уже давно не актуален.
30 окт 17, 19:59    [20913416]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
kaimi
Обкатан годами. Без детских болезней. Но уже давно не актуален.

Это да, здесь рыбы нет Delphi 7 - он такой.
30 окт 17, 20:00    [20913420]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
rgreat,

Зачем этот сарказм?
30 окт 17, 20:02    [20913424]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
ИзыдиСФорума
Guest
автор
Дельфи очень неудобен для работы с базами.


Ты не просто флудодер ты еще и безгранично глуп!
30 окт 17, 20:02    [20913426]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
kaimi,

Это я "Обкатан годами" и "Без детских болезней." оценил.
30 окт 17, 20:03    [20913427]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 43932

kaimi
Но уже давно не актуален.

Ась? Я проспал переход на квантовые компьютеры и декларативное программирование?

Posted via ActualForum NNTP Server 1.5

30 окт 17, 20:04    [20913434]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
kaimi
rgreat,

Зачем этот сарказм?


+ МАЛЬЧИК, ПОШЕЛ НА х.й!

На лодочной станции инструктор пытается докричаться до какой-то лодки:
"Поворачивй!!! Куда прешь?!?!?! Левее возьми!!! В сторону!!!"
Ребенок, который за этим наблюдает: "Дядя, возьмите мегафон. У вас же
есть".
Инструктор берет мегафон, поворачивается к ребенку (в мегафон):
"МАЛЬЧИК, ПОШЕЛ НА х.й!"
Убирает мегафон: "Сворачивай!!!! В сторону!!!"
30 окт 17, 20:04    [20913435]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
rgreat,

Ну я готов принять любые аргументы. Которых в этой теме еще не было.
30 окт 17, 20:05    [20913436]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
Dimitry Sibiryakov,

Так в чем его актуальность? Какие задачи он выполняет лучше его "конкурентов"?
30 окт 17, 20:06    [20913441]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2468
kaimi
Так в чем его актуальность? Какие задачи он выполняет лучше его "конкурентов"?

Работающие в текущий момент времени
30 окт 17, 20:12    [20913458]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
YuRock,

Есть и машины которые до сих пор работают на 98\XP винде. Но, я надеюсь, никто не называет эти системы актуальными?
30 окт 17, 20:13    [20913461]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
kaimi
Dimitry Sibiryakov,

Так в чем его актуальность?
Ежегодно выходит пара новых релизов с кучей новых фишек.

Какие задачи он выполняет лучше его "конкурентов"?
Разные.

А вообще странный вопрос. Все одно что сравнивать что лучше: испанский или иврит.
30 окт 17, 20:14    [20913463]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
rgreat,

Ну что за ответ такой "Разные"? Просто нет таких задач.

Набросайте тезисно - Новый проект нужно начать на Delphi потому что...
30 окт 17, 20:17    [20913465]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2468
kaimi
YuRock,

Есть и машины которые до сих пор работают на 98\XP винде. Но, я надеюсь, никто не называет эти системы актуальными?

Конечно называют. Ведь они не просто так работают, а деньги приносят. Лично для меня всё, что мне деньги приносит - актуально.
30 окт 17, 20:18    [20913466]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
kaimi,

Потому что быстро, качественно и надежно.
30 окт 17, 20:18    [20913467]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
rgreat,

В Delphi пока переменные не объявишь - их нельзя использовать.
Это ужасно непроизводительно.
30 окт 17, 20:20    [20913469]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
YuRock,

Ну как сказать деньги приносит... Для саппорта устаревшей технологии нужно держать отдельный штат, а это деньги.
Отношение типа "Ну оно работает и ок" - деструктивно и тут сложно споить
30 окт 17, 20:20    [20913470]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kaimi
Member

Откуда:
Сообщений: 11
rgreat,

Так можно о чем угодно сказать. Тут скорее нужно Что то типа "Нужно начать новый проект на Delphi, а не на XXX, потому что..."
30 окт 17, 20:21    [20913473]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2468
kaimi
Для саппорта устаревшей технологии нужно держать отдельный штат

Ну да. Новым технологиям ведь саппорт не нужен. Об этом я и не подумал.
30 окт 17, 20:23    [20913479]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
kaimi,

А если серьезно, в чем неактуальность-то заключается? В плане возможностей языка и среды.

Можно по простому, на пальцах, так сказать.
30 окт 17, 20:23    [20913480]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
rgreat,

в Delphi неудобные гриды, так как чтобы показать записи из разных таблиц, надо гриды вместе ставить на форме, и много. А в FoxPro все делается одной командой BROWSE.
30 окт 17, 20:26    [20913489]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2468
kaimi
Набросайте тезисно - Новый проект нужно начать на Delphi потому что...

Тут тезис один: потому, что так я быстрее всего решу задачу. Но это относится ко мне. Что касается тебя, например, то только ты, возможно, можешь ответить такой на вопрос (или сможешь через N лет, или никогда не сможешь).
30 окт 17, 20:26    [20913490]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 2468
чччД
в Delphi неудобные гриды

Та какие гриды. В Delphi даже строки с 1-цы начинаются, что супер-неудобно, учитывая, что в Windows - с нуля.
30 окт 17, 20:28    [20913498]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
YuRock,

в Delphi-йских гридах даже данных нет. Это хуже, чем MVC.
30 окт 17, 20:29    [20913501]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
YuRock
чччД
в Delphi неудобные гриды

Та какие гриды. В Delphi даже строки с 1-цы начинаются, что супер-неудобно, учитывая, что в Windows - с нуля.


Да. А еще в дельфи строки ограничены длиной 255.

  TmyRec = record
    i : integer;
    s : string [256];
  end;
[DCC Error] Unit1.pas(12): E2056 String literals may have at most 255 elements
30 окт 17, 20:32    [20913508]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
чччД
Да. А еще в дельфи строки ограничены длиной 255.

  TmyRec = record
    i : integer;
    s : string [256];
  end;
[DCC Error] Unit1.pas(12): E2056 String literals may have at most 255 elements
По больному бъешь гад!
30 окт 17, 20:37    [20913515]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
YuRock
Та какие гриды. В Delphi даже строки с 1-цы начинаются
Я бы не был столь категоричен, учитывая {$ZEROBASEDSTRINGS ON/OFF}. ;)
30 окт 17, 20:41    [20913527]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
чччД
Guest
rgreat
YuRock
Та какие гриды. В Delphi даже строки с 1-цы начинаются
Я бы не был столь категоричен, учитывая {$ZEROBASEDSTRINGS ON/OFF}. ;)


Это ж только в юникоде, небось. А у большинства Delphi 3 используется.
30 окт 17, 20:46    [20913537]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
rgreat
Member

Откуда:
Сообщений: 3741
чччД
Это ж только в юникоде, небось. А у большинства Delphi 3 используется.

Богомерзкий win32 новодел.

Тру дельфисты пишут на святой первой версии.

Картинка с другого сайта.
30 окт 17, 20:51    [20913546]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1617
Ура! Пятница!
30 окт 17, 21:32    [20913664]     Ответить | Цитировать Сообщить модератору
 Re: Нейронные сети  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 2405
white_nigger
Ура! Пятница!
везёт же людям :-(

или не очень уже....
30 окт 17, 21:50    [20913713]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4      [все]
Все форумы / Delphi Ответить