Jump to content

Система обнаружения объектов Виолы – Джонса

Структура обнаружения объектов Виолы-Джонса — это машинного обучения структура обнаружения объектов , предложенная в 2001 году Полом Виолой и Майклом Джонсом . [ 1 ] [ 2 ] Это было мотивировано в первую очередь проблемой обнаружения лиц , хотя его можно адаптировать и для обнаружения других классов объектов.

Алгоритм эффективен для своего времени: он способен распознавать лица на изображениях размером 384х288 пикселей со скоростью 15 кадров в секунду на обычном процессоре Intel Pentium III с частотой 700 МГц . Он также надежен и обеспечивает высокую точность и полноту данных .

Хотя он имеет меньшую точность, чем более современные методы, такие как сверточная нейронная сеть , его эффективность и компактный размер (всего около 50 тысяч параметров по сравнению с миллионами параметров для типичных CNN, таких как DeepFace ) означают, что он все еще используется в случаях с ограниченной вычислительной мощностью. Например, в оригинальной статье [ 1 ] они сообщили, что этот детектор лиц может работать на Compaq iPAQ со скоростью 2 кадра в секунду (это устройство имеет маломощный StrongARM без оборудования с плавающей запятой).

Описание проблемы

[ редактировать ]

Обнаружение лиц — это задача бинарной классификации в сочетании с проблемой локализации: по данному изображению решить, содержит ли оно лица, и построить ограничивающие рамки для лиц.

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

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

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

Требование «фронтального» изображения не подлежит обсуждению, поскольку не существует простой трансформации изображения, которая могла бы превратить лицо из вида сбоку в вид спереди. Однако можно обучить несколько классификаторов Виолы-Джонса, по одному для каждого угла: один для вида спереди, один для вида 3/4, один для вида в профиль и еще несколько для углов между ними. Тогда можно во время выполнения выполнять все эти классификаторы параллельно, чтобы обнаруживать лица под разными углами обзора.

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

Компоненты структуры

[ редактировать ]

Полная презентация алгоритма здесь. [ 3 ]

Рассмотрите изображение фиксированного разрешения . Наша задача — принять бинарное решение: фотография стандартизированного лица (фронтального, хорошо освещенного и т. д.) или нет.

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

Во время выполнения данное изображение тестируется на последовательно. Если в какой-то момент , алгоритм немедленно возвращает «лицо не обнаружено». Если все классификаторы возвращают 1, алгоритм возвращает «обнаружено лицо». По этой причине классификатор Виолы-Джонса также называют «каскадным классификатором Хаара».

Ее классификаторы функций

[ редактировать ]

Рассмотрим персептрон определяется двумя переменными . Он принимает изображение фиксированного разрешения и возвращает

Пример прямоугольных объектов, показанных относительно окружающего окна обнаружения

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

Каждый шаблон также должен быть симметричен отражению по оси X и по оси Y (без учета изменения цвета), поэтому, например, для горизонтального бело-черного объекта два прямоугольника должны быть одинаковой ширины. Для вертикального объекта «белый-черный-белый» белые прямоугольники должны быть одинаковой высоты, но высота черного прямоугольника не ограничена.

На лицо нанесена деталь Хаара, похожая на переносицу.
На лицо наносится черта Хаара, похожая на область глаз, которая темнее верхней части щек.

Обоснование ее особенностей

[ редактировать ]

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

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

  • Область глаз темнее верхней части скул.
  • Область переносицы светлее глаз.

Состав свойств, образующих подходящие черты лица:

  • Расположение и размер: глаза, рот, переносица.
  • Значение: ориентированные градиенты интенсивностей пикселей.

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

Изучение и использование классификатора Виолы – Джонса.

[ редактировать ]

Выберите разрешение для классификации изображений. В оригинальной статье они рекомендовали .

Обучение

[ редактировать ]

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

Подробности модифицированного алгоритма AdaBoost подробно описаны ниже.

С использованием

[ редактировать ]

Чтобы использовать классификатор Виолы-Джонса с на изображении , вычислить последовательно. Если в какой-то момент , алгоритм немедленно возвращает «лицо не обнаружено». Если все классификаторы возвращают 1, алгоритм возвращает «обнаружено лицо».

Алгоритм обучения

[ редактировать ]

Однако скорость, с которой могут быть оценены признаки, недостаточно компенсирует их количество. Например, в стандартном подокне размером 24x24 пикселей всего M = 162336. [ 5 ] возможных функций, и оценивать их все при тестировании изображения было бы непомерно дорого. Таким образом, платформа обнаружения объектов использует вариант алгоритма обучения AdaBoost как для выбора лучших функций, так и для обучения классификаторов, которые их используют. Этот алгоритм создает «сильный» классификатор как линейную комбинацию взвешенных простых «слабых» классификаторов.

Каждый слабый классификатор представляет собой пороговую функцию, основанную на признаке .

Пороговое значение и полярность определяются при обучении, а также коэффициенты .

Здесь представлена ​​упрощенная версия алгоритма обучения: [ 6 ]

Входные данные: набор из N положительных и отрицательных тренировочных изображений с их метками. . Если изображение i — лицо , если нет .

  1. Инициализация: присвоение веса к каждому изображению i .
  2. Для каждой функции с
    1. Перенормируйте веса так, чтобы их сумма равнялась единице.
    2. Примените функцию к каждому изображению в обучающем наборе, затем найдите оптимальный порог и полярность. что минимизирует ошибку взвешенной классификации. То есть где
    3. Назначить вес к это обратно пропорционально частоте ошибок. Таким образом, лучшие классификаторы рассматриваются больше.
    4. Веса для следующей итерации, т.е. , уменьшаются для изображений i , которые были правильно классифицированы.
  3. Установите окончательный классификатор на

Каскадная архитектура

[ редактировать ]
  • В среднем только 0,01% всех подокна являются положительными (лица)
  • Равное время вычислений тратится на все подокна.
  • Большую часть времени необходимо уделять только потенциально позитивным подокнам.
  • Простой двухфункциональный классификатор может обеспечить почти 100% уровень обнаружения при 50% уровне FP .
  • Этот классификатор может выступать в качестве первого уровня серии для фильтрации большинства негативных окон.
  • 2-й слой с 10 функциями может обрабатывать «более сложные» негативные окна, которые пережили 1-й слой, и так далее...
  • Каскад постепенно усложняющихся классификаторов обеспечивает еще более высокие показатели обнаружения. Оценку сильных классификаторов, созданных в процессе обучения, можно выполнить быстро, но она недостаточно быстра для работы в режиме реального времени. По этой причине сильные классификаторы расположены каскадом в порядке сложности, где каждый последующий классификатор обучается только на тех выбранных выборках, которые проходят через предыдущие классификаторы. Если на каком-либо этапе каскада классификатор отклоняет проверяемое подокно, дальнейшая обработка не выполняется и продолжается поиск следующего подокна. Таким образом, каскад имеет форму вырожденного дерева. В случае с лицами первый классификатор в каскаде, называемый оператором внимания, использует только два признака для достижения уровня ложноотрицательных результатов примерно 0% и уровня ложноположительных результатов 40%. [ 7 ] Эффект от этого единственного классификатора заключается в уменьшении примерно вдвое количества вычислений всего каскада.

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

Задача каждого этапа состоит в том, чтобы определить, является ли данное подокно определенно не лицом или может быть лицом. Данное подокно немедленно отбрасывается как не лицо, если оно не выполнено на любом из этапов.

Простая схема каскадного обучения приведена ниже:

  • f = максимально допустимый уровень ложных срабатываний на слой.
  • d = минимально допустимая скорость обнаружения на слой.
  • Ftarget = целевой общий уровень ложных срабатываний.
  • P = набор положительных примеров.
  • N = набор отрицательных примеров.
F(0) = 1.0; D(0) = 1.0; i = 0

while F(i) > Ftarget
    increase i
    n(i) = 0; F(i)= F(i-1)

    while F(i) > f × F(i-1)
        increase n(i)
        use P and N to train a classifier with n(i) features using AdaBoost
        Evaluate current cascaded classifier on validation set to determine F(i) and D(i)
        decrease threshold for the ith classifier (i.e. how many weak classifiers need to accept for strong classifier to accept)
            until the current cascaded classifier has a detection rate of at least d × D(i-1) (this also affects F(i))
    N = ∅
    if F(i) > Ftarget then 
        evaluate the current cascaded detector on the set of non-face images 
        and put any false detections into the set N.

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

Аналогично, скорость обнаружения равна:

Таким образом, чтобы соответствовать уровню ложных срабатываний, обычно достигаемому другими детекторами, каждый классификатор может иметь удивительно низкую производительность. Например, для 32-ступенчатого каскада для достижения уровня ложноположительных результатов 10 −6 каждому классификатору достаточно добиться уровня ложноположительных результатов около 65%. В то же время, однако, каждый классификатор должен быть исключительно производительным, чтобы обеспечить адекватную степень обнаружения. Например, чтобы достичь уровня обнаружения около 90%, каждый классификатор в вышеупомянутом каскаде должен достичь уровня обнаружения примерно 99,7%. [ 8 ]

Использование Виолы-Джонса для отслеживания объектов

[ редактировать ]

В видеороликах с движущимися объектами нет необходимости применять обнаружение объектов к каждому кадру. Вместо этого можно использовать алгоритмы отслеживания, такие как алгоритм KLT, для обнаружения заметных объектов внутри ограничивающих рамок обнаружения и отслеживания их перемещения между кадрами. Это не только повышает скорость отслеживания, устраняя необходимость повторного обнаружения объектов в каждом кадре, но также повышает надежность, поскольку основные функции более устойчивы, чем система обнаружения Виолы-Джонса, к вращению и фотометрическим изменениям. [ 9 ]

  1. ^ Перейти обратно: а б Виола, П.; Джонс, М. (2001). «Быстрое обнаружение объектов с использованием расширенного каскада простых функций» . Материалы конференции IEEE Computer Society 2001 года по компьютерному зрению и распознаванию образов. ЦВПР 2001 . Том. 1. Компьютеры IEEE. Соц. дои : 10.1109/cvpr.2001.990517 . ISBN  0-7695-1272-0 . S2CID   2715202 .
  2. ^ Виола, Пол; Джонс, Майкл Дж. (май 2004 г.). «Надежное распознавание лиц в реальном времени» . Международный журнал компьютерного зрения . 57 (2): 137–154. doi : 10.1023/b:visi.0000013087.49260.fb . ISSN   0920-5691 . S2CID   2796017 .
  3. ^ Ван, И-Цин (26 июня 2014 г.). «Анализ алгоритма распознавания лиц Виолы-Джонса» . Обработка изображений в режиме онлайн . 4 : 128–148. дои : 10.5201/ipol.2014.104 . ISSN   2105-1232 .
  4. ^ К. Папагеоргиу, М. Орен и Т. Поджо. Общая основа обнаружения объектов. Международная конференция по компьютерному зрению , 1998 г.
  5. ^ «Система распознавания лиц Виолы-Джонс заявляет о 180 тысячах функций» . stackoverflow.com . Проверено 27 июня 2017 г.
  6. ^ Р. Селиски, Компьютерное зрение, алгоритмы и приложения , Springer
  7. ^ Виола, Джонс: Надежное обнаружение объектов в реальном времени, IJCV 2001. См. стр. 11.
  8. ^ Торберт, Шейн (2016). Прикладная информатика (2-е изд.). Спрингер. стр. 122–131.
  9. ^ Обнаружение и отслеживание лиц с использованием алгоритма KLT.
[ редактировать ]

Реализации

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 407f8e71ce019b098e87c6dbb5a279c5__1724322000
URL1:https://arc.ask3.ru/arc/aa/40/c5/407f8e71ce019b098e87c6dbb5a279c5.html
Заголовок, (Title) документа по адресу, URL1:
Viola–Jones object detection framework - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)