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

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

2 ответов


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

Each weak detector is an extremely simple binary classifier

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

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

enter image description here

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

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

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

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

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

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

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

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

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

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

enter image description here

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

чтобы увидеть полный c++ иди сюда


детектор Альта-Джонса-это сильный бинарный классификатор сборка нескольких слабых детекторов. Каждый слабый детектор представляет собой чрезвычайно простой бинарный классификатор

обнаружение состоит из следующих частей:

Haar Filter: извлечение функций из изображения в calssify (функции действуют для кодирования специальных знаний домена)

Integral Image: позволяет очень быстро оценить функцию

Cascade Classifier: каскадный классификатор состоит из нескольких этапов из фильтров, классифицировать изображение (скользящее окно изображения) - это лицо.

Ниже приведен обзор того, как обнаруживает лицо в кадре.

enter image description here

окно обнаружения перемещается вокруг всей функции извлечения изображения(по haar filter вычисленный Integral Image затем отправьте извлеченную функцию в Cascade Classifier для классификации, если это лицо). Окна раздвижные сдвигает пиксель-на-пиксель. Каждый раз, когда окно сдвигается, область изображения в пределах окно будет проходить через каскадный классификатор.

Haar Filter: вы можете понять, что фильтр может извлекать такие функции, как eyes, bridge of the nose и так далее.

enter image description here

Integral Image: позволяет очень быстро оценить функцию

enter image description here

Cascade Classifier:

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

enter image description here

дополнительные подробности:

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

если вы не можете понять это ясно, вы можете видеть Обнаружение Лица Виола-Джонс или реализация алгоритма распознавания лиц Виолы-Джонса или изучение детектора лица в реальном времени Viola-Jones дополнительные подробности.

вот код python реализация Python алгоритма распознавания лиц полом Виолой и Майклом Дж. Джонсом.

код matlab здесь .