Метод Виолы — Джонса (Bymk; Fnkld — :'kuvg)

Перейти к навигации Перейти к поиску

Метод Виолы — Джонса (англ. Viola–Jones object detection) — алгоритм, позволяющий обнаруживать объекты на изображениях в реальном времени. Его предложили Пол Виола[вд] и Майкл Джонс[вд] в 2001 году[1][2]. Хотя алгоритм может распознавать объекты на изображениях, основной задачей при его создании было обнаружение лиц.

Описание алгоритма

[править | править код]
Типы «признаков», использованные в алгоритме

Признаки и их поиск

[править | править код]

Признаки, используемые алгоритмом, опираются на суммирование пикселей из прямоугольных регионов. Сами признаки несколько напоминают признаки Хаара, которые ранее также использовались для поиска объектов на изображениях[3]. Однако признаки, предложенные Виолой и Джонсом, содержат более одной прямоугольной области и несколько сложнее. На иллюстрации справа показано четыре различных типа признаков. Величина каждого признака вычисляется как сумма пикселей в белых прямоугольниках, из которой вычитается сумма пикселей в чёрных областях. Прямоугольные признаки более примитивны, чем поворачивающийся фильтр[прояснить], и, несмотря на то что они чувствительны к вертикальным и горизонтальным особенностям изображений, результат их поиска более груб. Однако при хранении изображения в интегральном формате (то есть в интегральном изображении[вд], когда в каждом пикселе изображения записана сумма всех пикселей левее и выше данного) проверка прямоугольного признака на конкретной позиции проводится за константное время, что является их преимуществом по сравнению с более точными вариантами. Каждая прямоугольная область в используемых признаках всегда смежна с другим прямоугольником, поэтому расчёт признака с двумя прямоугольниками состоит из шести обращений в интегральный массив, для признака с тремя прямоугольниками — из восьми, с четырьмя прямоугольниками — из девяти.

Высокая скорость обсчёта признака не компенсирует значительное количество различных возможных признаков. К примеру, при стандартном размере признака в 24×24 пикселя возможно 162 тысячи[4] разных признаков, и их расчет может занять большое количество времени. Поэтому в алгоритме Виолы-Джонса используется вариация алгоритма обучения AdaBoost, как для выбора признаков, так и для настройки классификаторов.

Архитектура Каскада

Примечания

[править | править код]
  1. Rapid object detection using a boosted cascade of simple features Архивная копия от 8 сентября 2015 на Wayback Machine.
  2. Viola, Jones, Robust Real-time Object Detection Архивная копия от 9 мая 2013 на Wayback Machine, IJCV 2001, с. 1, 3. (PDF Архивная копия от 25 января 2021 на Wayback Machine).
  3. C. Papageorgiou, M. Oren and T. Poggio. A General Framework for Object Detection. International Conference on Computer Vision, 1998.
  4. Viola-Jones' face detection claims 180k features Архивная копия от 9 июня 2013 на Wayback Machine.