Обобщение метода Виолы и Джонса в виде решающего дерева сильных классификаторов для распознавания объектов в видеопотоке в режиме реального времени Минкина А.Г. ООО «Визиллект Сервис» [email protected] Усилин С. А. ИСА РАН [email protected] Григорьев А.С. МФТИ (ГУ), ИППИ РАН [email protected] Полевой Д.В. НИТУ МИСиС, ИСА РАН [email protected] Николаев Д.П. ИППИ РАН [email protected] Аннотация В данной работе исследуется обучение составных классификаторов Виолы и Джонса. Предлагается архитектура составного классификатора, отличная от классического линейного каскада, а именно классификатор в виде решающего дерева, и методика его обучения. Исследуется влияние формы дерева на производительность. Проводится сравнение по параметрам точности и производительности с классическим каскадом, экспериментально исследуются различные варианты архитектуры дерева. В качестве исследуемого классификатора используются детекторы образов колес в системе автоматической классификации транспортных средств. 1. машинного обучения AdaBoost [2] как линейная комбинация слабых классификаторов. В свою очередь слабый классификатор основывается на пороговой проверке признака типа Хаара. В настоящее время алгоритм Виолы и Джонса является, пожалуй, самым часто применяемым методом для поиска ригидных (геометрически жестких) объектов на изображениях. Помимо оригинальной области (поиска лиц на изображении), алгоритм используется и в других случаях: для локализации и распознавания гильоширных элементов [3], детектирования автомобилей в видеопотоке [4], локализации и ориентации документов с фиксированной геометрией [5]. 1.1. Использование подхода Виолы-Джонса в индустриальных системах распознавания Введение Алгоритм детектирования объектов Виолы и Джонса был разработан для поиска лиц на изображении в режиме реального времени [1]. Данный метод сводит задачу детектирования к задаче бинарной классификации в каждой точке изображения, то есть для каждой прямоугольной области изображения, взятой со всевозможными сдвигами и масштабами, при помощи заранее обученного классификатора (детектора) проверяется гипотеза о наличии в области искомого объекта. Детектор представляет собой усиливающуюся по сложности последовательность (каскад) т.н. сильных классификаторов. Сильный классификатор строится при помощи алгоритма 158 Рассмотрим использование подхода ВиолыДжонса в системах распознавания реального времени, а также возникающие проблемы на примере системы автоматической классификации транспортных средств (АКТС). АКТС используется для автоматического определения класса, проезжающего ТС, и вычисления размера платежа за проезд по платной автодороге РФ. Стоимость проезда транспортного средства (ТС) зависит от его характеристик, таких как количество колесных осей и высота над первой колесной осью. Для получения изображения проезда используется видеокамера, направленная перпендикулярно направлению движения анализируемого ТС. В такой конфигурации каждой колесной оси соответствует изображение колеса. Соответственно, задача идентификации осей сводится к идентификации колес, проезжающих перед видеокамерой за время проезда ТС. Для идентификации колес на кадре используется заранее обученный детектор типа Виолы и Джонса. На рисунке 1 представлен пример кадра, снятого видеокамерой на полосе. Рис. 1. Пример кадра с видеокамеры АКТС. соответственно в 19 раз (в предположении одинаковой мощности сильных классификаторов на каждом уровне каскада). Поскольку количество подокон, содержащих объект, отличается от кадра к кадру, отличается и время обработки каждого кадра. За счет того, что подокон с объектом на кадре заметно меньше подокон без объекта, различие во времени обработки измеряется не десятками раз, но десятками процентов, что, тем не менее, существенно в системах реального времени. Особенно неприятно это обстоятельство в силу того, что задача поиска объекта обычно предполагает дальнейшее распознавание или классификацию, а именно на кадрах, содержащих объект, быстродействие наихудшее. Рис. 2 Пример детектора типа Виолы и Джонса, имеющего 19 сильных классификаторов. Камера снимает видео с частотой 40 кадров в секунду. Характерный размер кадра 480x752 px, при этом колеса имеют размер в диапазоне от 100 до 400 px в ширину. Для минимизации задержек движения на пункте контроля от системы требуется высокая скорость работы: АКТС осуществляет классификацию ТС в реальном времени, поэтому ко всем подсистемам, в том числе и к детектору колесный осей, предъявляются жесткие требования по времени их работы, если быть точнее, то время работы детектора колес должно не превышать 1/40 секунды (то есть соответствовать кадровой частоте). Каскадная схема позволяет добиться высокой производительности за счет быстрого отсеивания «пустых» подокон, поскольку их количество на несколько порядков превышает количество подокон, содержащих объект (в данной задаче в раз). Время обработки «пустого» подокна отличается от времени обработки подокна с объектом в несколько раз (пропорционально длине каскада). Так, представленный на рисунке 2 каскад состоит из 19 сильных классификаторов, и время обработки подокон с объектом и без объекта может отличаться 159 Другая проблема использования метода ВиолыДжонса на практике возникает при работе с достаточно вариативными объектами. Исходный метод строился в предположении, что карта яркостных контрастов на объекте не меняется от раза к разу. Это не так в случае, например, наличия контрастных теней от других объектов. В качестве одного из решений может быть использована предварительная кластеризация обучающей выборки и последующее обучение независимого каскада для каждого кластера [6]. Полученные каскады затем объединяются в общий классификатор либо дизъюнкцией, либо с помощью некоторой оригинальной схемы (например, построение пирамидального классификатора по стратегии «Coarseto-Fine» [7]). Законным развитием является метод построения решающего дерева, узлами которого являются обученные на отдельных кластерах каскады [8]. Однако, все три описанных подхода сталкиваются с одной и той же проблемой – необходима «правильная» кластеризация обучающей выборки. В данной работе описано построение и обучение классификатора типа Виолы и Джонса, использующего вместо каскадной схемы решающее дерево более общего вида. Кроме того, схема решающего дерева позволяет улучшить вычислительную производительность классификатора в худшем случае (когда на изображении присутствует большое количество потенциально положительных подокон). Уменьшение количества вычислений на каждый пиксел связано с тем, что при одинаковом общем количестве сильных классификаторов путь от вершины до листа (до ответа «да») сбалансированного бинарного дерева равно , а каскада — . 2. Древовидный классификатор Древовидный классификатор представляет собой вид бинарного решающего дерева: узел дерева – это сильный классификатор, на правое ребро которого попадают подокна, предположительно содержащие объект, а на левое – те, которые не распознались как объект, соответственно. Окончательный ответ дается только в листьях. Заметим, что оригинальный каскадный классификатор – это, по сути, древовидный классификатор, содержащий лишь один «положительный» выход (лист) и множество «отрицательных» выходов (см. рисунок 2). На рисунке 3 показан древовидный детектор более общего вида, каждая его ветвь состоит из 2 сильных классификаторов. Любой путь от корня до самого нижнего узла дерева может быть представлен как каскад, в котором у ряда классификаторов заменен знак. Например, правый путь на рисунке 2 ( ) ( ) представим в виде ( ), левый путь ( ) ̅̅̅̅̅̅̅ ( ) ( ) (обратите внимание на отрицание классификатора ( )). Таким образом, задача обучения древовидного классификатора (с учетом перечисленных выше утверждений) полностью идентична задаче обучения каскада. В наших экспериментах мы использовали классическую схему обучения каскада [1]. Дополнительно стоит лишь отметить, что в процессе обучения древовидного классификатора общего вида (в отличии от обучения классического каскада) неопределенным моментом является процесс регулировки долей обучающей выборки, которые передаются ниже по левой и правой ветвям. Сама регулировка может выполняться исходя из различных критериев. В рамках данной работы (целью которой является построение производительного детектора в худших случаях) регулировка выполнялась из соображений максимальной сбалансированности финального древовидного классификатора. Алгоритм AdaBoost, используемый для обучения сильных классификаторов (узлов дерева) позволяет регулировать указанные доли путем выбора начальных весов обучающих примеров. Соответственно, если критерий задан, то выбор распределения начальных весов при обучении очередного сильного классификатора может выполняться автоматически. Однако, в настоящий момент веса выбирались вручную оператором, выполняющим обучение классификатора. 3. 3. Экспериментальная часть 3.1. Методика сравнения Рис. 3. Пример древовидного классификатора Чтобы понять схему обучения древовидного классификатора, отличного по виду от каскада, зафиксируем следующие положения. 1. Построение каскадного классификатора происходит итерационно (уровень за уровнем). 2. Каскадный классификатор представим в виде конъюнкции сильных классификаторов (с одной лишь оговоркой о значимости порядка вычисления). Поэтому каскадный классификатор, состоящий из слоев, формально можно записать как ( ) ( ) ( ) ( ) ( ). ⋁ 160 Одним из первостепенных вопросов, который решался в ходе исследования, была методика измерения и сравнения точности распознавания. Чтобы оценить качество детектирования, полученные классификаторы запускались на тестовой выборке. Тестовая выборка состояла из кадров, на которых отмечены объекты (в нашем случае – колеса). По результатам тестового прогона высчитывались чувствительность и специфичность детекторов. Чувствительность – доля положительных примеров, распознанных как таковые. Специфичность – доля негативных примеров, распознанных как таковые. Для расчета чувствительности и специфичности необходимо точно знать, какое количество положительных и отрицательных примеров было подано на вход классификатору. В нашем случае это затруднительно, так как непонятно, как измерить количество положительных (и соответственно отрицательных) примеров на изображении. Казалось бы, что количество положительных примеров на изображении равно количеству подокон (с учетом масштабов и сдвигов), содержащих объект. Тогда при каком сдвиге и масштабе подокно еще будет считаться положительным примером? Где проходит граница разделяющая «объект»/«не объект» – не ясно. Исходя из этого, предлагается методика, описанная в [9]. Будем считать, что детектор правильно распознал объект на изображении, если хотя бы одно подокно этого детектора сопоставилось с идеальной разметкой объекта более чем на 50% площади. Тогда чувствительность – доля объектов, распознанных как таковые. Специфичность – доля негативных подокон изображения, распознанных как таковые. Негативное подокно – это любое подокно, в котором содержание объекта не превышает 50%. Необходимо отметить, что значение 50% является произвольным, и данный методический вопрос требует дальнейшей проработки. В качестве характеристик скорости работы классификаторов измерялись среднее и худшее кадровое быстродействие за проезд ТС. Показатели относились к изображению, а не к подокну, поскольку именно общее время обработки кадра определяет, удовлетворяет ли распознающая подсистема ограничениям реального времени. В качестве показателей быстродействия было решено использовать не собственно время работы, а количество вызовов слабого классификатора на кадр, что эквивалентно количеству обращений к данным изображения и с высокой точностью пропорционально фактическому времени обработки кадра. Такой показатель производительности полностью детерминирован данными и не подвержен влиянию со стороны других вычислительных процессов и не требует отключения дополнительной отладочной информации, удобной при многостороннем анализе. Рис. 4 Примеры изображений, входящих в положительную выборку. Отрицательная выборка состоит из 4234 кадров. Все изображения не превышают 136x220 px (исходный кадр сжатый в 4 раза). Содержание объекта на этих изображениях не превышает 50%, если кадр изначально содержал колесо, то он разрезается на 4 изображения, как представлено на рисунке 5. 3.2. Обучающая и тестовые выборки Для проведения экспериментов были выделены обучающая и тестовая выборки. Обучающая выборка состоит из положительной и отрицательной выборок. Положительная выборка состоит из 587 изображений колеса. Все изображения имеют размер 25x33 px. На рисунке 4 представлены примеры изображений положительной выборки. Рис. 5 Кадр, содержащий колесо, разрезается вертикально и горизонтально из центра колеса, таким образом, получается 4 изображения для отрицательной выборки. Тестовая выборка содержит 12437 кадров, среди них на 2621 есть объект (колесо). Все изображения имеют размер 136x220 px. Стоит отметить, что обучающая выборка (положительная, отрицательная) и тестовая включается в себя кадры, полученные в разное время года, при разных световых условиях, кроме того объекты (колеса) имеют разный размер в зависимости от типа ТС (легковые и грузовые ТС). 161 3.3. Результаты Чув-ть Спец-ть VJ1 93,55 99,98 VJ2 98,72 94,12 94,02 99,992 99,989 99,991 VJ3 VJ4 Время в худшем 67432 Время в среднем 58159 Кол-во ур-й в худшем 1,23 136665 109645 2,51 112165 109260 2,05 63552 58717 1,16 Таблица 1 - Сводная таблица по экспериментам Кол-во ур-й в среднем Общее кол-во ур-й 1,06 20 2,01 2,01 1,07 9 5 6 В рамках данной работы на описанных выше выборках обучены и протестированы классификаторы двух типов. Для всех детекторов было введено ограничение на количество слабых классификаторов в составе сильного, их должно было быть 5. Это было сделано для удобства сравнения производительности детекторов. Эксперимент VJ1 представляет собой обучение классического детектор типа Виолы и Джонса. В результате был построен каскад, состоящий из 20 сильных классификаторов. Начальное соотношение весов примеров при обучении слабых классификаторов составляло 0,95:0,05. Чувствительность этого детектора составила 93,55%, специфичность 99,98%. Эксперимент VJ2 представляет собой обучение детектора типа Виолы и Джонса в виде решающего дерева. Результатом явилось «дерево», состоящее из 35 сильных классификаторов, самая длинная «ветвь» этого дерева состоит из 9 сильных классификаторов. Начальное соотношение весов примеров при обучении слабых классификаторов составляло 0,1:0.9. Построение классификатора в виде решающего дерева позволило достичь существенного увеличения показателей качества по сравнению с каскадом: чувствительность 98.72%, специфичность 99.98%. На рисунке 7 представлена схема данного классификатора. Рис. 8 Эксперимент VJ3 – классификатор в виде решающего дерева с качеством, как у VJ1 Гипотеза о более высокой производительности древовидного классификатора в общем случае не подтвердилась: на подавляющем большинстве отрицательных примеров первый же уровень каскада дает отрицательный ответ и завершает выполнение, тогда как дерево, имеющее непустую отрицательную ветвь на первом уровне, вызывает как минимум два сильных классификатора, что приводит к двукратному проигрышу в производительности. В результате была разработана структура (VJ4), сочетающая достоинства линейной и древовидной структур. На верхних двух уровнях дерева она эквивалентна каскаду (отсутствуют отрицательные ветви). Данная форма достигается путем переменного в зависимости от уровня дерева соотношения весов примеров при обучении слабых классификаторов (0.95:0.05 для первых двух уровней, 0.05:0.95 для последующих). На рисунке 9 изображен полученный классификатор. Он состоит из 17 сильных классификаторов. Рис. 7 Эксперимент VJ2 – классификатор в виде решающего дерева. Чтобы иметь возможность сравнить «каскадный» и «древовидный» классификаторы, был обучен детектор VJ3 (рисунок 8), имеющий такое же качество (чувствительность и специфичность), как и классический детектор (VJ1). Этот детектор состоит из 18 сильных классификаторов. 162 Рис. 9. – Эксперимент VJ4 Чувствительность этого детектора равна 94,02; специфичность – 99,991. Данная схема практически не проигрывает линейному каскаду по производительности в лучшем случае (разница 1%) и заметно (на 6%) превосходит его в худшем случае. Отметим, что именно худший случай зачастую наиболее важен, т.к. соответствует присутствию детектируемого объекта в кадре. В общем случае установлено, что перспективность применения дерева для ускорения распознавания зависит в первую очередь от количества уровней каскада требуемых в среднем для принятия отрицательного решения при обучении классического линейного каскада. 4. Заключение В данной работе рассмотрено построение и обучение классификатора типа Виолы и Джонса, использующий вместо каскадной схемы решающее дерево. Исследовалась гипотеза об улучшении гарантий быстродействия при применении в системах реального времени за счет использования решающего дерева сильных классификаторов. Экспериментально установлена возможность эффективного обучения и влияния на форму дерева. Показано, что перспективность применения дерева для ускорения распознавания зависит в первую очередь от количества уровней каскада требуемых в среднем для принятия отрицательного решения при обучении классического линейного каскада. Предложена методика обучения данного классификатора, позволяющая улучшить время в худшем случае по сравнению с каскадной схемой с сохранением высокой производительности в среднем. Литература [1] [2] [3] [4] [5] [6] [7] Viola P. and Jones M. Robust Real-time Object Detection, International Journal of Computer Vision. – 2001. Freund and R.E. Schapire, A decision-theoretic generalization of on-line learning and an application to boosting, Proceedings of the Second European Conference Усилин С. А., Николаев Д.П., Шоломов Д.Л., Арлазаров В.В., Распознавание гильоширных элементов: определение страниц паспорта РФ, сборник трудов Института системного анализа РАН. Обработка информационных и графических ресурсов, том 63, С. 106-110 - 2013 D.C. Lee and T. Kanade, Boosted Classifier for Car Detection, 2007. С. Усилин, Д. Николаев, В. Постников, Локализация, ориентация и идентификация документов с фиксированной геометрией на изображении, Труды Института системного анализа Российской академии наук. Обработка информационных и графических ресурсов, 2010, стр. 248-261 Z. Zhang, L. Zhu, S. Li, et al., Real-time multi-view face detection, 5th International Conference on Automatic Face and Gesture Recognition, Washington, DC, USA, 2002. R. Lienhart, L. Liang, A. Kuranov, A detector tree of boosted classifiers for real-time object detection and 163 [8] [9] tracking, Proceedings of ICME'03 International Conference, Vol. 2, 2003 S. Z. Li, Zhenqiu Zhang, FloatBoost learning and statistical face detection, Pattern Analysis and Machine Intelligence, IEEE Transactions, Vol. 26, No. 9, pp. 1112-1123, 2004 Mark Everingham et al. The PASCAL Visual Object Classes (VOC) Challenge. IJCV, Volume 88, P. 303-338 Issue 2010.