Исследовательский проект "Цифровая оптика" .

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

Модератор: Модераторы

Re: Исследовательский проект "Цифровая оптика" .

Сообщение IvoX » 01.05.2020 23:02:00

Извиняюсь что так грубо ворвался в обсуждение нейронок,мне немного неловко от этого.
Думаю для начала собрать набор низкоуровневых функций для работы,их отладить...
А потом уже в дебри работы с алгоритмами лезть.
IvoX
новенький
 
Сообщения: 75
Зарегистрирован: 15.05.2019 02:45:53

Re: Исследовательский проект "Цифровая оптика" .

Сообщение debi12345 » 02.05.2020 00:13:54

Хм, в этом видео все выглядит ооооочень серьезно :
Tensorflow Hub. Используем готовые нейросети в своем проекте

https://youtu.be/KL-zI-2Ifrs
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Исследовательский проект "Цифровая оптика" .

Сообщение IvoX » 02.05.2020 02:21:16

Tensorflow Hub. Используем готовые нейросети в своем проекте

Чтобы просто обучить сеть ,не двум классификаторам а например 10, за приемлемое время, мне как любителю без собственного датацентра, придётся арендовать такой блок из пачки видеокарт скорее всего.
Либо на домашнем ноутбуке ждать несколько суток,если не десятков суток.
Интересно какова цена аренды вычислительных мощностей в час :)

Добавлено спустя 38 минут 34 секунды:
Вооот,понемногу пришел к стабильным повторяемым результатам
2020-05-02_005845.png

Можно при ~300 MP/s считывать 144 картинки в секунду 1920х1080.
для бюджетного ноута вполне,видимо пока считать что-то тяжелое не начал
Нужны реальные тесты,хотя можно пока и без них , узким местом будут именно вычисления в последующей обработке

Добавлено спустя 1 час 6 минут 22 секунды:
Проблема странных цифр была вот в этом:
Код: Выделить всё
  QueryPerformanceCounter(Tim1);
  for i := 1 to Cnt * 1000000 do
  begin
    j := i and 7;
  end;
  QueryPerformanceCounter(Tim2);
  OverHead := (Tim2 - Tim1 + j -j) / Freq;   

Вычислялся постоянный OverHead по времени и потом вычитался:
Код: Выделить всё
  Memo1.Lines.Add(Format('%2d bpp %s%4s: %5f MP/s',
    [BPP, SetGet, sByIndex, Cnt / (Seconds{ - OverHead})]));

на процессорах с плавающей частотой такое само собой не прокатывает,
у меня хоть и стоит жестко максимальная частота,проц в любом случае бустится при нагрузке.
Так что сама работа с памятью идёт ещё быстрее, примерно 530 мегапикселей/сек.
Но поскольку читаться данные цветов будут всегда в цикле с счетчиком то 300 вполне реальная скорость

Добавлено спустя 33 минуты 8 секунд:
Alex2013 писал(а):3 Более быстрый GetPixel( и SetPixel) можно взять с моего кладбища алгоритмов (UCanny.pas )

Попробую сравнить скорость

Добавлено спустя 18 минут 6 секунд:
:) ваш гетпиксель аналог того чем я массив заполняю
Код: Выделить всё
Function Get_Pixel(var BB:TBitmap;X,Y:Integer):Integer;
Type
TA=Array[0..1] of byte;
Var
PA:^TA;
  n:integer;
begin
Get_Pixel:=-1;
  if bb = NIL then exit;
  if not InR(x,0,bb.Width-1) then exit;
  if not InR(y,0,bb.Height-1) then exit;
pa:=Pointer(BB.RawImage.Data);
N:=Y*(BB.Width*3)+X*3;
Get_Pixel:=rgb(pa^[n+2],pa^[n+1],pa^[n]);
end;


Код: Выделить всё
TBuf = array of array of integer
procedure ReadIMG(var buffer: TBuf; img: TBitmap);
var
  x,y,c: integer;
  p: pByteArray;
begin
  img.PixelFormat:=pf24Bit; // pf8Bit;
  SetLength(buffer, img.Height, img.Width);
  for y:=0 to img.Height-1 do begin
    p:=img.ScanLine[y];
    for x:=0 to img.Width-1 do begin
      c:=((p[x*3+0] shl 8+p[x*3+1]) shl 8)+p[x*3+2];
      buffer[y,x]:=c;
    end;
  end;
end;
У вас нет необходимых прав для просмотра вложений в этом сообщении.
IvoX
новенький
 
Сообщения: 75
Зарегистрирован: 15.05.2019 02:45:53

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 02.05.2020 05:00:47

IvoX писал(а):Пойду ковырять,возможно получится адекватную скорость посмотреть.

Кинь пример целиком ... а то классика классикой но насколько я помню call GetNearestPaletteIndex изрядный тормоз и вообще вроде как для максимум 8-битных изображений .
Зы
По НС есть хитрая разновидность сетей которая постоянно "до-обучается" непосредственно в процессе работы .(такая НС кстати куда более адаптивная ) так что обучать на "всю железку" не обязательно.
Но проблема все равно в другом . Чтобы получить приемлемую точность нужна довольно сложная нейросеть. А усложнение приводит к увеличению потребления вычислительны ресурсов в геометрической прогрессии.
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение olegy123 » 02.05.2020 08:19:38

debi12345 писал(а):ля программиста-алгоритмиста, нацеленного на процесс а не на результат, это возможно скучно - по факту придется не кодить,а только фоткать и говорить "кто это", "да" и "нет"
Не все так просто.
Есть куча проблем, нейрон можно обучить но все-равно будет <100% вероятности. Вообще там все сводится к усечению факторов, прикреплению к ним веса, и розыгрыш нейронами на узнаваемость.
Чем то похоже на раскладку пасьянса.
Смысл айи-программеров сводится к расписанию правила игры при котором более точно, чаще будет выпадать правильный ответ.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Исследовательский проект "Цифровая оптика" .

Сообщение IvoX » 02.05.2020 09:24:43

Alex2013 писал(а):Кинь пример целиком .

QPIX.7z

там call GetNearestPaletteIndex используется в SetPixels1-SetPixels8
У вас нет необходимых прав для просмотра вложений в этом сообщении.
IvoX
новенький
 
Сообщения: 75
Зарегистрирован: 15.05.2019 02:45:53

Re: Исследовательский проект "Цифровая оптика" .

Сообщение debi12345 » 02.05.2020 12:12:52

Есть куча проблем, нейрон можно обучить но все-равно будет <100% вероятности

Верно, но детекция без ИИ дает еще более низкие вероятности.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Pavia » 02.05.2020 17:41:34

IvoX писал(а):Классика но не могу локализовать одну проблему...
У меня в тестовом приложении скорости доступа зашкаливают...
И даже бывает что скорость GetPixel в минус уходит
Подозреваю что это банальное переполнение счётчика,так как пример из сети и должен быть старым. возможно там Word.
Пойду ковырять,возможно получится адекватную скорость посмотреть.
А то вот так пока

Тут ещё дело такое если программу собрать как x64 то там RDTSC плавает. А под x32 нормально считает.

Чтобы просто обучить сеть ,не двум классификаторам а например 10, за приемлемое время,

На сомом деле это не нужно. К примеру
http://convnetjs.com
в браузере учится распознавать 10 класс цифр. Всего за 10 минут. А если животных то там по дольше порядка 1 часа. Для хороших результатов уже нужны недели.
Видимо сайт опять упал от перегрузки.

Сделал перевод с JS деревьев решений. Правда видимо у меня где-то ошибка, но в принципе работает.
Изображение Изображение
Помимо RandomForest сделал ещё ANN и SVM. SVM - очень быстро работает всего за несколько шагов равному числу вершин строит плоскость разбиения в N-мерном пространстве.
Код на Delphi на паскале тоже должен заработать, но не проверял.
:arrow: https://yadi.sk/d/npKThHMUl13tWg
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 03.05.2020 00:19:29

Интересно, но сходу не понятно . К тому же "Дерево решений" если я не ошибаюсь, это все-же не нейросеть, а что то вроде все тех же "каскадов Хаара" только мнение специализированных.
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение debi12345 » 03.05.2020 00:30:49

Чтобы просто обучить сеть ,не двум классификаторам а например 10, за приемлемое время,

С готовыми моделями это необязательно. Например чтобы домофон умел распознать жену - берешь готовую модель "человек-женщина", добавляешь специальный слой для запрета переобучения вниз, добавляешь 1...2 слоя для отличения жены от усредненной женщины - и обучаешь только эти два слоя
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Исследовательский проект "Цифровая оптика" .

Сообщение IvoX » 03.05.2020 00:36:09

SVM Интересен...
Говорят с его помощью удобно,и не сильно ресурсозатратно маленькие выборки ~100 экземпляров(у каждого 100 характеристик) классифицировать.
Раньше встречал полностью автоматическую версию в сети,может это не SVM был,но очень наглядно.
Добавляешь данные(также 2 вида) и разделяющая плоскость подстраивается под них так чтобы все попали в свой класс без разрывов плоскости

Добавлено спустя 1 минуту 31 секунду:
debi12345 писал(а):С готовыми моделями это необязательно

Я в этом совсем не разбираюсь.. :)
Поэтому могу нести чушь всякую

Добавлено спустя 3 минуты 26 секунд:
debi12345 писал(а): домофон умел


Уже как пару тройку лет продаются такие домофоны.Русскими умельцами даже запатентованы вроде бы.Статья встречалась в сети.
И вроде как цена на тот момент на 15000 рублей была всего больше чем цена обычного домофона
IvoX
новенький
 
Сообщения: 75
Зарегистрирован: 15.05.2019 02:45:53

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Alex2013 » 03.05.2020 00:53:06

debi12345 писал(а):Верно, но детекция без ИИ дает еще более низкие вероятности.

1 ИИ к нейросетям в частности и "глубокому обучению" вообще имеет очень касательное отношение .
2 Если это про детекцию чем-то вроде того-же SURF то многое зависит от реализации и настроек.
(То что у меня получилось не очень четко и довольно медленно явно не дефект самого алгоритма )
https://www.youtube.com/watch?time_cont ... e=emb_logo
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

Re: Исследовательский проект "Цифровая оптика" .

Сообщение Pavia » 03.05.2020 01:13:53

Интересно, но сходу не понятно .

Это упрощенный пример обучения модели классификатора.
Два класса зеленых и синих векторов нарисованных кружками. Бинарная классификация применяется много где. К примеру отделение фон, от не фон. В качестве вектора любой набор признаков или фич фигуры. Примером фич к при меру являются углы. Так же можно подавать просто пиксели это будет 3-х мерные вектора.
Alex2013 писал(а): К тому же "Дерево решений" если я не ошибаюсь, это все-же не нейросеть, а что то вроде все тех же "каскадов Хаара" только мнение специализированных.

Каскады Хаара это и есть дерево решений. Хаар в качестве фич использовал прямоугольники разных размеров. Он использовал их для распознования Лиц. Два класса лицо и не лицо. Признаки были выбраны так что'бы искать глаза нос и рот он их представлял прямоугольниками.
Изображение
Изображение
Изображение

Да, деревья решений это не НС как я пишу они кручи*. Нейронные это ANN и CNN в архиве лежит ANN. CNN - пока не делал.
* Только вот в том примере, что я выложил качество не ахти. У меня по круче наработки есть.
Это всё теория, а далее начинаются технологии. Всех интересуют готовые технологии. И тут есть над в чем посоперничить.
Качество скорость и устойчивость(инвариантность к маштабу, сдвигу), фильтрация не-максимальных (Non-maximum suppresium). Выделение фигур на изображении.
Вот в OpenCV поддержка каскадов прекратилось. Как следствие отстали по качеству от CNN. А отсутствие доп функций привело к тому что каскады -Хаара заменили глубоким обучением в Tanser-Flow. И экспорта графа сети.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Исследовательский проект "Цифровая оптика" .

Сообщение debi12345 » 03.05.2020 01:30:18

Даже в видеокарты (сеймество NVIdia RTX 2xxx) сейчас начали добавлять тензор-ядра. Процесс ИИ-циализации пошел потихоньку в массы ))
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Исследовательский проект "Цифровая оптика" .

Сообщение IvoX » 03.05.2020 04:24:39

Нашел такую штуку,возможно полезно будет
http://crsouza.com/2010/03/17/kernel-functions-for-machine-learning-applications/
25 разных ядер...
IvoX
новенький
 
Сообщения: 75
Зарегистрирован: 15.05.2019 02:45:53

Пред.След.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

Рейтинг@Mail.ru