Технический форум по робототехнике.
solin » 30 ноя 2011, 00:23
Доброго времени суток!
необходимо сделать верификацию лиц, нашел метод на
http://www.emgu.com/wiki/index.php/ANN_MLP_(Neural_Network)_in_CSharpкод закопипастил, библиотеки подключил, а компилятор выдает исключение на функции
CvInvoke.cvInitMatHeader(_ptr, _array.GetLength(0), _array.GetLength(1), CvToolbox.GetMatrixDepth(typeof(TDepth)), _dataHandle.AddrOfPinnedObject(), 0x7fffffff);
при создании матрицы т.е. первая функция
помогите что это может быть
Holmes » 30 ноя 2011, 11:01
Что значит верификацию?
Нахождение лица на кадре? Или узнавание лица (кто это) если есть в базе лиц?
Может просто код другой подкинуть?
Angel71 » 30 ноя 2011, 15:52
круть
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
у сайта технические проблемы и код не посмотреть, а тс вырос в семье телепатов
solin » 01 дек 2011, 18:53
Holmes писал(а):Что значит верификацию?
Нахождение лица на кадре? Или узнавание лица (кто это) если есть в базе лиц?
Может просто код другой подкинуть?
верификация - сравнение с базой
какой код и куда подкинуть?
Добавлено спустя 56 секунд:Angel71 писал(а):круть
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
у сайта технические проблемы и код не посмотреть, а тс вырос в семье телепатов
приношу извинения
в момент публикации и на данный момент сайт работал
Holmes » 01 дек 2011, 20:58
Что-то я не очень понял при чем тут метод описанный в линке.
Мне кажется здесь больше подойдет другой метод. Есть реализация на делфи (на C# перевести руки еще не дошли).
Приложил модуль. Модуль принимает лица в формате PNG 120x120 пикселей.
И, кстати, хоть бы написали что за исключение, скрин например дали бы. А то тут действительно не телепаты.
- Вложения
-
facedetect.zip
- (2.69 КиБ) Скачиваний: 0
solin » 01 дек 2011, 23:26
методов много(нейросеть один из *), мне надо самый быстрый( хоть и не самый простой и ресурсоёмкий)
к сожалению комментариев не много, как я понял исползуется cvEigen.
при использовании ~ изображения 320 на 320. сравнение 1 эталон на 80 тестируемых получал неудовлетворительную скорость(секунд 40)
какую производительность обеспечивает ваш модуль, какой процент ложных срабатываний?
по поводу исключения... использую EmguCV, исключение : "cvInvoke Выдал исключение". всё.
что примечательно это происходит на первой же функции.
я допускаю что выбрал не самый подходящий метод, если есть методы лучше, буду рад услышать
Holmes » 02 дек 2011, 10:16
По тестированию насколько помню было так:
- поиск лица на кадре (от силы 10 мсек)
- преобразование его области к 100х120 (вообще копейки)
- сравнение с базой из 21 лица (3 человека, по 7 изображений на одного)
- итог - 300-400 мсек на ноутбуке с P7350 и 3GB RAM.
Ложные срабатывания 10-15%, но это без фильтра. Прикрутить фильтр руки не дошли (выбирать, например, наибольшее кол-во совпадений из сравнений 5 кадров). Можно попробовать увеличить разрешение.
Как будет на базе из 80 человек сказать не могу, нужно тестировать (ну и базу хорошую надо составить).
Angel71 » 02 дек 2011, 11:45
solin писал(а):по поводу исключения... использую EmguCV, исключение : "cvInvoke Выдал исключение". всё.
что примечательно это происходит на первой же функции.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
у них там с кодом точно всё нормально. если так же информативно задавать вопросы и дальше, то максимум стандартный ответ - вы что-то не так установили и настроили. может не внимательно по мануалу ставили. может не те версии либ используете или нужна другая версия опенцв. может не ту версию дотнета в таргете указали или кпу не тот выставили - эни кпу на х86 откомпилится при запуске в х86, соответственно х64 в х64. а в х64 работает далеко не все ф-и дотнета. и на оборот, не всё в режиме х86 может работать в х64 винде, но это очень редко. может вы не все длл закинули в проект. может из-за прав доступа. может вы в папку проекта закинули либы, а при компиляции студия из-за настроек не копирует в выходную папку. и т.д.
![Pardon :pardon:](http://roboforum.ru/images/smilies/pardon.gif)
гадать тут бессмысленно.
solin » 02 дек 2011, 11:55
Holmes писал(а):По тестированию насколько помню было так:
- поиск лица на кадре (от силы 10 мсек)
- преобразование его области к 100х120 (вообще копейки)
- сравнение с базой из 21 лица (3 человека, по 7 изображений на одного)
- итог - 300-400 мсек на ноутбуке с P7350 и 3GB RAM.
Ложные срабатывания 10-15%, но это без фильтра. Прикрутить фильтр руки не дошли (выбирать, например, наибольшее кол-во совпадений из сравнений 5 кадров). Можно попробовать увеличить разрешение.
Как будет на базе из 80 человек сказать не могу, нужно тестировать (ну и базу хорошую надо составить).
неплохие результаты, надо будет попробывать
Добавлено спустя 1 минуту 17 секунд:Angel71 писал(а):solin писал(а):по поводу исключения... использую EmguCV, исключение : "cvInvoke Выдал исключение". всё.
что примечательно это происходит на первой же функции.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
у них там с кодом точно всё нормально. если так же информативно задавать вопросы и дальше, то максимум стандартный ответ - вы что-то не так установили и настроили. может не внимательно по мануалу ставили. может не те версии либ используете или нужна другая версия опенцв. может не ту версию дотнета в таргете указали или кпу не тот выставили - эни кпу на х86 откомпилится при запуске в х86, соответственно х64 в х64. а в х64 работает далеко не все ф-и дотнета. и на оборот, не всё в режиме х86 может работать в х64 винде, но это очень редко. может вы не все длл закинули в проект. может из-за прав доступа. может вы в папку проекта закинули либы, а при компиляции студия из-за настроек не копирует в выходную папку. и т.д.
![Pardon :pardon:](http://roboforum.ru/images/smilies/pardon.gif)
гадать тут бессмысленно.
спасибо, чую, что что-то в начале не сделал
Holmes » 02 дек 2011, 12:33
2solin, вы бы код свой показали, а то с чем разбираться-то?
Или полностью код дайте я вечером поковыряю.
И, кстати, это первый опыт с Emgu или уже раньше работали?
Если нужно я выложу свой проект, там есть Emgu, поиск лица и контуров. Плюс там же работа с камерой через MJPEGStreamer от AForge (ибо камера подключена к роутеру, это из темы про DIR-320).
solin » 15 дек 2011, 18:59
Holmes писал(а):2solin, вы бы код свой показали, а то с чем разбираться-то?
Или полностью код дайте я вечером поковыряю.
И, кстати, это первый опыт с Emgu или уже раньше работали?
Если нужно я выложу свой проект, там есть Emgu, поиск лица и контуров. Плюс там же работа с камерой через MJPEGStreamer от AForge (ибо камера подключена к роутеру, это из темы про DIR-320).
с emgu первый раз работаю, лица умею определять имхо везде это понятно изложено
требуется найти или реализовать алгоритм для быстрой сверки лиц с большим(!) количеством эталонов
eigen пробовал, возможно параметры неподходящие, но скорость не порадовала.
посоветуйте в сторону чего копать
Angel71 » 15 дек 2011, 22:22
это "сверки лиц с большим(!) количеством эталонов" сколько, если не секрет?
если вы делаете поиск по всем битмапам, то просто тратите много времени в пустую. при сотнях или тысячах изображений уже нехилые объёмы данных выходят, оптимизируйте поиск. классифицируйте, чтобы отсеивать часть изображений. используйте хэш/сигнатуру/отпечаток изображения/... (называйте как хотите) для ускорения поиска. т.е. берёте изображение и создаёте небольшой по объёму набор данных, удобный для быстрого поиска. можно точно так же, как и с отпечатками пальцев использовать вейвлеты. беглый поиск в сети и первая кандидатура - габоровские вейвлеты. в opencv есть некий фильтр габора. предпологаю, что это скорей всего именно то.
![Embarassed :oops:](http://roboforum.ru/images/smilies/blush.gif)
в общем я вам всего-лишь идею подсказываю, а там уж сами. и да, как вариант сначала быстрым алгоритмом выбрать небольшую часть изображений (очень удобно будет ввести пороговое число "сходство изображения"), а потом уже можно анализировать изображение более тщательно, хоть десятками тяжеловесных алгоритмов.
Добавлено спустя 14 минут 53 секунды:незнаю насколько тут информация полезная по сегоднишним меркам, но как вариант
http://iai.dn.ua/public/JournalAI_2003_4/Razdel3/07_Murygin.pdf
solin » 16 дек 2011, 03:54
спасибо, статью прочту.
много это прибл 1 млн, как бы страшно это не звучало
Angel71 » 16 дек 2011, 06:47
не то что бы страшно, приходилось обрабатывать и намного больше - подогнать размер, пережать в другой формат, сделать превью различных размеров, найти похожие, чтоб базу попусту не раздувать. хз, для базы лиц это наверно и очень много. в общем любые телодвижения даже с таким количеством картинок хоть пусть они будут небольшого размера (к примеру 320*240) для кпу это тяжко.
![Smile :)](http://roboforum.ru/images/smilies/smile.gif)
можно сходить нервно покурить в сторонку или заняться другими делами.
Holmes » 16 дек 2011, 11:56
solin писал(а):спасибо, статью прочту.
много это прибл 1 млн, как бы страшно это не звучало
Я бы посоветовал обратиться к EDV (
http://roboforum.ru/member3938/), может он чем поможет с такими объемами.