Метод Виолы — Джонса

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Алгоритм находит лица с высокой точностью и низким количеством ложных срабатываний.

Описание алгоритма[править | править код]

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

Признаки и их поиск[править | править код]

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

Обучение[править | править код]

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

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

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

См. также[править | править код]

Примечания[править | править код]

  1. Rapid object detection using a boosted cascade of simple features
  2. Viola, Jones: Robust Real-time Object Detection, IJCV 2001, стр 1,3. ([1])
  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

Ссылки[править | править код]