AI Техника для обнаружения лица - PullRequest
1 голос
/ 16 апреля 2010

Может ли кто-нибудь использовать все различные методы обнаружения лиц? Техники, такие как нейронные сети, опорные векторные машины, собственные лица и т. Д.

Какие еще есть? Спасибо.

Ответы [ 3 ]

4 голосов
/ 11 августа 2010

техника, о которой я собираюсь поговорить, это больше ориентированный на машинное обучение подход; На мой взгляд, это довольно увлекательно, хотя и не совсем недавно: это было описано в статье «Надежное распознавание лиц в реальном времени» Виолой и Джонсом. Я использовал реализацию OpenCV для университетского проекта.

Он основан на особенностях типа волос, которые состоят из сложений и вычитаний интенсивности пикселей в прямоугольных областях изображения. Это можно сделать очень быстро, используя процедуру, называемую интегральным изображением, для которой также существуют реализации GPGPU (иногда их называют «сканирование префиксов»). После вычисления интегрального изображения за линейное время любая подобная хаару особенность может быть оценена за постоянное время. Элемент в основном представляет собой функцию, которая принимает подокно 24x24 изображения S и вычисляет элемент значения (S); триплет (особенность, порог, полярность) называется слабым классификатором, потому что

полярность * функция (S) <полярность * порог </p>

верно для одних изображений и ложно для других; ожидается, что слабый классификатор будет работать немного лучше, чем случайное предположение (например, он должен иметь точность не менее 51-52%).

Полярность: -1 или + 1.

Пространство объектов большое (~ 160'000 функций), но ограничено.

Несмотря на то, что в принципе порог может быть любым числом, из простых соображений, касающихся обучающего набора, получается, что если имеется N примеров, то для определения полярности и каждого признака необходимо изучить только порог N + 1 для каждой характеристики. тот, который держит лучшую точность. Таким образом, лучший слабый классификатор может быть найден путем тщательного поиска в пространстве триплетов.

По сути, сильный классификатор может быть собран путем итеративного выбора наилучшего из возможных слабых классификаторов с использованием алгоритма, называемого «адаптивное повышение», или AdaBoost; на каждой итерации примеры, которые были неправильно классифицированы в предыдущей итерации, взвешиваются больше. Сильный классификатор характеризуется собственным глобальным порогом, вычисляемым AdaBoost.

Несколько сильных классификаторов объединены в виде ступеней в каскаде внимания; идея каскада внимания заключается в том, что 24x24 подокна, которые явно не являются гранями, отбрасываются на первых этапах; сильный классификатор обычно содержит только несколько слабых классификаторов (например, 30 или 40), поэтому он очень быстро вычисляется. Каждый этап должен иметь очень высокий отзыв, в то время как уровень ложных срабатываний не очень важен. если имеется 10 ступеней, каждая из которых имеет 0,99 отзыва и 0,3 ложных срабатывания, то конечный каскад будет иметь 0,9 отзыва и чрезвычайно низкий уровень ложных срабатываний. По этой причине сильный классификатор обычно настраивается, чтобы увеличить количество отзывов и ложных срабатываний. Настройка в основном включает в себя уменьшение глобального порога, вычисляемого AdaBoost.

Подокно, ведущее в конец каскада, считается гранью.

Необходимо проверить несколько подокнов в исходном изображении, в конечном итоге перекрывающихся, в конечном итоге после изменения масштаба изображения.

Пока, надеюсь, это было интересно; -)

Dario

2 голосов
/ 16 апреля 2010

Новым, но довольно эффективным подходом к широкому классу проблем со зрением, включая распознавание лиц, является использование Иерархической временной памяти (HTM) , концепции / технологии, разработанной Numenta .

Очень грубо говоря, это нейросетевой подход. Этот тип сети имеет древовидную форму, в которой количество узлов значительно уменьшается на каждом уровне. HTM моделирует некоторые структурные и алгоритмические свойства неокортекса. При [возможном] отклонении от неокортекса алгоритм классификации, реализованный на уровне каждого узла, использует байесовский алгоритм. Модель HTM основана на теории мозгового предсказания с предсказанием памяти и сильно зависит от временной природы входных данных; это может объяснить его способность решать проблемы со зрением, поскольку они, как правило, являются временными (или могут быть сделаны), а также требуют терпимости к шуму и «нечеткости».

В то время как Numemta уже некоторое время выпускает наборы для зрения и демонстрационные приложения, Витамин D недавно выпустил - я думаю - первое коммерческое применение технологии HTM, по крайней мере, в области приложений для зрения.

0 голосов
/ 16 апреля 2010

Если вам это нужно не просто как теоретический материал, но вы действительно хотите определить лицо, тогда я рекомендую вам найти уже реализованные решения.

Существует множество проверенных библиотек для разных языков, и они широко используются для этой цели. Посмотрите на эту ветку SO для получения дополнительной информации: Библиотека распознавания лиц .

...