Jump to content
Compvision.ru

dereyly

Пользователи
  • Content count

    11
  • Joined

  • Last visited

  • Days Won

    5

dereyly last won the day on February 14 2014

dereyly had the most liked content!

Community Reputation

6 Новичек

About dereyly

  • Rank
    Бывалый
  1. 3д модель строит DeepFace (Facebook) и дает топовую точность, но при этом Face++ не используют фронтализацию на основе 3д, но дает ту же точность* *точность измеряется на базе http://vis-www.cs.umass.edu/lfw/results.html про перекрытия я тоже думаю что не актуально, IntraFace, который я тестил выдает особые точки на лице человека и при частичном перекрытии, наверное надо отслеживать те точки ошибка для которых велика и не рассматривать их Звучит кошмарно если OpenBR вживую работает со всеми 1кк изображениями, а не строит индекс. Если использовать предварительный поиск с помощью kdtree по уже построенному индексу, то милионные базы точки зрения вычислений (а не качества) не представляют проблем. При этом LDA отнимает мало времени при распознавании. По крайней мере на моих тестах значительно меньше затрат на распознавание, чем на детектирование лица и на предобработку. Построив однажды компактный дескриптор для изображения в дальнейшем его будет легко сравнивать. Но думаю если дальше буду этим заниматься, то обязательно посмотрю OpenBR, а то испорченный телефон получается
  2. Мне кажется легче самому сделать тулзу для распознавания лиц: - Взять либу IntraFace для поиска особых точек - В особых точках построить дескриптор: -- Хороший дескриптор на мой взгляд получается из комбинации LBPH->LDA -- Так же можно в особых точках обучить глубокую сеть (сверточную сеть, RBM, или сверточную автоассоциатинвую (face++)) Применение LBPH->LDA описано в работе [1]. Компоненты LBP и LDA есть в OpenCV FaceRecogniser. [1] Chen D. et al. Blessing of dimensionality: High-dimensional feature and its efficient compression for face verification //Computer Vision and Pattern Recognition (CVPR), 2013 IEEE Conference on. – IEEE, 2013. – С. 3025-3032. PS: Может кто знает С++ либину реализующую более интересный LDA типа PLDA (Probabilistic LDA) или Joint Bayesian. которые рассматривают в [1] (PLDA встречал только на матлабе)
  3. Вы хотите с помощью каскадного ДЕТЕКТОРА распознавать символы? Хотя можно опредлять конечно текст на изображении, но мне кажется если словарь большой, то детектор утратит свое главное приемущество -- скорость На мой взгляд лучше написать абстрактный поиск символов или уже готовых табличек типа автомобильных номеров и далее уже распознавть хорошим классификатором типа сверточный сетей.
  4. 1. Ваша архитектура имеет очень много весов, при том что размерность входного слоя мне не известна, И при этом мало примеров -- обычно такая ситсема не сможет нормально обучится. В ситуациях с малым количеством примеров использует синтетические данные, т.е. зашумленные копии имеющихся в наличии; так же используется предварительная настройка весов НС без учителя к примеру с помощью RBM 2. Так же могу посоветовать trainrp -- быстрая и простая функция обучения которая обычно дает неплохую точность (за счет того же невилирует некоторые недостатки сигмоидальных функций активации; и меняет шаг обучения для каждого веса). TRAINLM -- классический способ обучения если хватает оперативной памяти. В матлабе не так просто сделать минипакетный minibatch, который можно былобы обучать по методу TRAINLM
  5. распознавание образов

    Здравствуйте Сопсотавление картинок можно сделать на основе особых точек SURF или ORB. http://docs.opencv.org/doc/tutorials/features2d/feature_description/feature_description.html?highlight=match%20surf 1. Найдите особые точки на интересующей картинке и вычислите их дескрипторы 2. Каждый N-ый кадр ищите особые точки и их дескрипторы 3. Сопоставть особые точке 4. Если после RANSAC количество точек в процентном соотношениие велико, то можно считать это совпадением ЕСть еще такой проект на qt https://code.google.com/p/find-object/
  6. Попробуй Intraface прикрутить: там 49 особых точек, остальные я думаю можно интерполяцией расставить. IntraFace предалагает либу для некоммерческого использования, есть демка, идет под винду и линукс, зависит от OpenCV. Когда-то на меня сильно произвел впечатление ролик . Но ничего подобного я сделать не мог и инструментная база была похуже.
  7. Распознавание лиц

    Недавно опубликовали (статья+код) неплохие детекторы лицевых точек: 1. http://www.humansensing.cs.cmu.edu/intraface/download.html 2. http://www.ics.uci.edu/~xzhu/face/ Так вот вопрос: как можно улучшить точность распознавния за счет особых точек? У меня есть следующие соображения: 1. Сравнение геометрии лиц 2. Сравнение признаков в районе точек 2.1. Составление общего вектора признаков 2.2. Классификация каждой точки (области: глаз или выравненная линия с 2мя глазами и т.д.) 3. Выравнивание в том числе в 3D 4. Сравнение с нужным ракурсом 5. По видеоряду с разными ракурсами построить 3D лицо Но есть следующие опасения: 1. Точность геометрии не очень высока... можно использовать только в совокупности с основным методом даст ли это приемущество не знаю... 2.1. Вектор получится большой, нужно сокращать PCA и рандомные проекции... мне кажется это ограничение на скорость накладывает 2.2. Не думаю что будет большой прирост точности, слишком мало информации... Хотя была статья о том что мы можем обучать не части лиц из своей базы, а части лиц знаменитостей, т.е. построение нового вектора признаков, но это долго 3. Посмотрел пару статей по 3D выравниванию, но результаты не впечатляют 4. Думаю неплохо, но нужна большая база на каждого человека 5. Сложно В демках к коммерческим SDK по расп лиц часто можно увидеть визуализации особых точек, для чего они их используют особо не понятно... хотя может для того чтобы показать в демке что-то наукообразное...
  8. На мой взгляд лучшие лекции по компьютерному зрению читает Антон Конушин (Графикон лаборатория МГУ, преподает в ШАД) Так же стоит послушать Виктора Лемпицкого (сотрудник Яндекса и преподаватель ШАД. Научный руководитель сам Цисссерман, так что у Виктора высокий рейтинг цитируемости (действительно крутые статьи)) Из открытых лекций http://video.yandex.ru/users/ya-events/view/90/#
  9. Сети Кохонена имеют немного приложений кроме визуализации многомерных данных. Но получение mesh из точек сейчас вполне актульная задача для RGBD (Kinect), но как я понимаю чтобы встроится в PCL нужно чтобы алгоритмы работали очень быстро, а SOM этим не может похвастаться даже если вводить иерархию и kd-tree. Так же для анализа сцены мне кажется было бы неплохо иметь mesh картой.
  10. Что можно использовать в реальных системах? Задачи: 1. Внедрение алгорима в фирму которая занимается видео аналитикой. С++ VS Win Год наза пытался внедрить Eblearn для распознавния автомобильных номеров, но не особо получилось. Eblearn не особо совместим с виндой, но решил использовать под линуксом и столкнулся с некоторыми осложениями: не все примеры работают, не тривиально конвертировать базу в местный формат (+падает при плохой контрасти), часто падает (ошибки в архитектуре и другие изменения в конфигурационном файле часто приводят к неудаче,иногда случайно падает), красивая визуализация с сайта отображалась не в нужных местах, т.е. как то не стабильно все было. Пробовал немного дебажить и нашел код вполне структурированным и читабельным, но определить почему система иногда падает не смог. Т.е. в итоге у меня была обученная СНС с неплохим качеством, но использовать ее было затруднительно. На данный момент хочу попробовать классифицировать объекты внутри области вычетания фона и сравнить СНС с "мешком слов". Основных критериев 2: скорость работы и стабильность (24 на 7 всегда работает и нет места, где может упасть). Можно обучить СНС с помощью cuda-convnet и запрограммировать прямое распространение, но боюсь реализация обучающая СНС может иметь свои хитрости и результаты прямого (моего собственного и из библиотеки) распространения будут отличться. Есть ли порты cuda-convnet под Win C++? 2. Классфикация объектов полученных с кинекта на роботе. С++ Linux.
  11. http://www.torch.ch/ (Lua, C++ generator) Torch является расширением языка Lua и имеет ряд возможностей для создания разных алгоритмов машинного обученния. Удобно создавать новую топологию НС (например, сверточные сети). Есть несколько вариантов оптимизационных алгоритмов для обучения НС. Удобно формировать данные для обучения. Переодически возникают ошибки при создании своих топологий и архитектур. PS: Гипотетически существует ускорение на CUDA и разрабатывается ПЛИС (пока что это не Open Source и вероятно таким не станет) PSS: Как я понимаю эта библиотека заменит Eblearn, т.к. часть разработчиков в том числе основной Pierre Sermanet сейчас вроде занимается разработкой CUDA модуля
×