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

StackOverflow https://stackoverflow.com/questions/5808434

  •  24-10-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Детектор виота-Джонса является сильным, Бинарный классификатор строить несколько Слабые детекторы

Each weak detector is an extremely simple binary classifier

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

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

enter image description here

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

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

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

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

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

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

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

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

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

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

enter image description here

Окончательно, Вот реализация C ++ который использует Violejones.h Иван Кусалич

Чтобы увидеть полный C ++ Проект иди сюда

Другие советы

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

Обнаружение состоит из деталей:

Haar Filter: Извлеките функции из изображения в Calssify (функции ACT, чтобы кодировать Ad-Hoc знание домена)

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

Больше подробностей:

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

Если вы не можете понять это ясно, вы можете увидеть Виола-Джонс обнаружен или же Реализация алгоритма обнаружения лица Виолы-Джонса или же Изучение детектора лица в реальном времени Виола-Джонса Больше подробностей.

Вот код Python Реализация Python Алгоритм обнаружения лица Пола Виолы и Майкла Дж. Джонса.

код MATLAB здесь .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top