Как работает метод распознавания лиц Виолы-Джонса?
пожалуйста, объясните мне, в нескольких словах, как работает метод обнаружения лица Виолы-Джонса.
2 ответов
детектор Viola-Jones сильный,бинарный классификатор сборка из нескольких слабый детекторы
Each weak detector is an extremely simple binary classifier
на этапе обучения обучается каскад слабых детекторов, чтобы получите желаемую скорость попадания / промаха (или точность / отзыв) с помощью Adaboost Для обнаружения объектов, исходное изображение разбивается на несколько прямоугольных патчи, каждый из которых представлен каскад
если прямоугольный патч изображения проходит через все каскадные этапы, затем он классифицируется как " положительный" Процесс повторяется в разных масштабах
на самом деле, на низком уровне базовая составляющая детектора объекта просто нужно что-то сказать, если некоторая под-область оригинала изображение содержит istance объект интереса или нет. То есть что делает бинарный классификатор.
основной, слабый классификатор основан на очень простая визуальная функция (те
вид функций часто называют "Хаар-подобные функции")
Хаар-подобные функции состоят из класса местной объекты, которые вычисляются путем вычитания суммы a субрегион признака из суммы остальных область функции.
Эти особенности характеризуются тем, что их легко вычислить и с использованием интегрального изображения, очень эффективный для расчета.
Lienhart представил расширенный набор скрученных Хаар-подобных функций (см. изображение)
Это стандартная функция Haar, которая была скручена на 45 градусов. Lienhart изначально не использовал функцию twisted checker board Haar-like (x2y2), поскольку диагональные элементы, которые они представляют, могут быть просто представлены с помощью twisted
особенности, однако ясно, что витая версия этой функции также может быть реализовано и использовано.
эти гиблые Хаар-подобные функции также могут быть быстро и эффективно вычисляется с помощью интегрального изображения, которая была закручена на 45 градусов. Единственная проблема реализации заключается в том, что скрученные объекты должны быть округлены до целых значений, чтобы они были выровнены с границами пикселей. Этот процесс аналогичен округлению, используемому при масштабировании Haar-подобных функция для больших или меньших окон, однако одно отличие заключается в том, что для 45 градусов витая функции целое количество пикселей по высоте и ширине особенность означает, что диагональные координаты пикселя всегда будут на одном и том же диагональном наборе пикселей
Это значит что число различных определенных размер 45 градусов переплетенных особенностей доступных значительно уменьшено по сравнению с стандартом вертикально и горизонтально
выровненные объекты.
Итак, у нас есть что-то вроде:
о формуле, быстро расчет Хаар-подобные функции с помощью интегрального изображения выглядит так:
наконец, вот реализация c++ использует ViolaJones.h Иван Kusalic
чтобы увидеть полный c++ иди сюда
детектор Альта-Джонса-это сильный бинарный классификатор сборка нескольких слабых детекторов. Каждый слабый детектор представляет собой чрезвычайно простой бинарный классификатор
обнаружение состоит из следующих частей:
Haar Filter
: извлечение функций из изображения в calssify (функции действуют для кодирования специальных знаний домена)
Integral Image
: позволяет очень быстро оценить функцию
Cascade Classifier
: каскадный классификатор состоит из нескольких этапов из фильтров, классифицировать изображение (скользящее окно изображения) - это лицо.
Ниже приведен обзор того, как обнаруживает лицо в кадре.
окно обнаружения перемещается вокруг всей функции извлечения изображения(по
haar filter
вычисленныйIntegral Image
затем отправьте извлеченную функцию вCascade Classifier
для классификации, если это лицо). Окна раздвижные сдвигает пиксель-на-пиксель. Каждый раз, когда окно сдвигается, область изображения в пределах окно будет проходить через каскадный классификатор.
Haar Filter
: вы можете понять, что фильтр может извлекать такие функции, как eyes
, bridge of the nose
и так далее.
Integral Image
: позволяет очень быстро оценить функцию
Cascade Classifier
:
каскадный классификатор состоит из нескольких этапов фильтров, как показано на рисунке ниже. Каждый когда скользящее окно сдвигается, новая область в скользящем окне будет проходить каскадный классификатор поэтапно. Если входная область не проходит порог этапа, каскадный классификатор немедленно отклонит область как грань. Если регион успешно пройдет все этапы, он будет классифицирован как кандидат лица, который может быть уточнен путем дальнейшей обработки.
дополнительные подробности:
во-первых, я предлагаю вам прочитать исходный документ быстрое обнаружение объектов с помощью усиленного каскада простых функций чтобы иметь общее представление о методе.
если вы не можете понять это ясно, вы можете видеть Обнаружение Лица Виола-Джонс или реализация алгоритма распознавания лиц Виолы-Джонса или изучение детектора лица в реальном времени Viola-Jones дополнительные подробности.
вот код python реализация Python алгоритма распознавания лиц полом Виолой и Майклом Дж. Джонсом.
код matlab здесь .