Подтвердить что ты не робот

Как работает метод обнаружения лица Виола-Джонса?

Пожалуйста, объясните мне, в нескольких словах, как работает метод обнаружения лица Виолы-Джонса.

4b9b3361

Ответ 1

Детектор Viola-Jones - сильная, бинарная классификация, построенная из нескольких слабых детекторы

Each weak detector is an extremely simple binary classifier

На этапе обучения каскад слабых детекторов обучается так, чтобы получить желаемую скорость/скорость пропуска (или точность/отзыв) с помощью Adaboost Для обнаружения объектов исходное изображение разбивается на несколько прямоугольников патчи, каждый из которых передается каскаду

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

enter image description here

Собственно, на низком уровне основной компонент объекта-детектора просто нужно сказать, если определенный субрегион оригинала изображение содержит объект интереса или нет. То есть что делает бинарный классификатор.

Основной слабый классификатор основан на очень простой визуальной функции (те вид функций часто называют "хаар-подобными функциями" )
enter image description here

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

enter image description here
Эти особенности характеризуются тем, что их легко вычислить и с использованием целостного изображения, очень эффективное для вычисления.

Lienhart представил расширенный набор искаженной хаарской функции (см. изображение)

enter image description here
Это стандартная хаарская функция, которая была скручена на 45 градусов. Lienhart изначально не использовал скрученную контрольную панель Haar-подобную функцию (x2y2), поскольку представленные диагональные элементы могут быть просто представлены с использованием скрученных однако понятно, что также может быть реализована и использована витая версия этой функции.

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

enter image description here
Это означает, что количество доступных по 45 градусов скрученных функций значительно уменьшено по сравнению со стандартными вертикально и горизонтально выровненные функции.

Итак, у нас есть что-то вроде: enter image description here

О формуле быстрое вычисление хаар-подобных функций с использованием интегральных изображений выглядит так:

enter image description here

Наконец, вот реализация С++, которая использует ViolaJones.h Иван Кусалик

чтобы увидеть полный проект С++