Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2013, № 4 (1), с. 231-242
УДК 004.932
СРАВНЕНИЕ НЕКОТОРЫХ АЛГОРИТМОВ ВИДЕОДЕТЕКТИРОВАНИЯ
ТРАНСПОРТНЫХ СРЕДСТВ
© 2013 г. В.Д. Кустикова
Нижегородский госуниверситет им. Н.И. Лобачевского valentina. kustikova@gmail. com
Пчсоупила в редалцию 14.05.2013
Предлагается несколько алгоритмов видеодетектирования транспортных средств. Рассматриваются их преимущества и недостатки. Выполняется анализ качества предложенных алгоритмов на тестовых видеофрагментах с дорожным движением. Достигается близкое к нулю число ложных срабатываний, приходящееся в среднем на один кадр, при 70% корректных срабатываний.
Ключевые слчва: компьютерное зрение, машинное обучение, поиск объектов, сопровождение, сопоставление, извлечение признаков, особые точки, детектор, дескриптор.
Введение
Проблема качественного и количественного анализа транспортных потоков является актуальной и практически значимой задачей. Её решение обеспечит эффективное автоматическое регулирование движения. Статистическая информация о числе транспортных средств разных классов, пересекающих определенный дорожный участок, позволит оценивать нагрузку на дорожное полотно с целью прогнозирования срока службы покрытия и последующего планирования ремонтных работ. Статистика загруженности дорожных развязок является основанием для принятия обоснованных решений о необходимости строительства дорог-дублеров и расширения дорожной сети в рамках населенного пункта.
Видеодетектирование - один из наиболее перспективных подходов к решению проблемы анализа транспортных потоков [1-3]. Задача видеодетектирования состоит в том, чтобы определить положение транспортных средств на каждом кадре потока видеоданных и построить траекторию движения обнаруженных объектов. Построение траектории подразумевает выделение на наборе последовательно идущих кадров совокупности положений, отвечающих каждому объекту, который попадает в зону видимости камеры. Сложность надежного детектирования с использованием методов компьютерного зрения во многом обусловлена тем, что дорожные трассы являются динамическими «сценами» с различным фоном, постоянно изменяющимся освещением и возможным перекрытием объектов. Более того, в общем случае для видеоданных произвольного качества
указанная задача является неразрешимой, т.к. качество во многом влияет на объем извлекаемой информации.
Современные системы видеодетектирования поставляются в привязке к оборудованию [4-6], а разработчики программных модулей ведут адаптацию имеющихся библиотек для других камер и видеопроцессоров. При этом в библиотеках, как правило, реализуются методы поиска простых объектов, которые являются частями транспортных средств, например, регистрационных номеров [7-9] или колес [10]. Как следствие, накладываются ограничения на разрешение видеокамер и их расположение в пределах дороги. В настоящей работе предлагается метод, позволяющий рассматривать транспортное средство как самостоятельный объект в разных ракурсах, вследствие чего процедура поиска не зависит от видимости конкретных частей объекта.
Статья построена следующим образом. В разделе 1 ставится задача видеодетектирования транспортных средств разных классов. В разделе 2 приводится метод решения данной задачи. Разделы 3-6 содержат описание предлагаемых схем решения задачи видеодетектирования. В разделе 7 предлагается алгоритм независимой коррекции результатов детектирования в процессе восстановления траекторий движения. Разделы 8 и 9 содержат описание условий проведения экспериментов (критерии оценки качества видеодетектирования и характеристику тестовых данных). В разделе 10 проводится анализ результатов вычислительных экспериментов. В Заключении делаются выводы и приводятся направления дальнейшей работы.
1. Постановка задачи
Метод видеодетектирования автомобилей работает с потоком видеоданных. Обозначим входной видеопоток как V. По существу V можно представить в виде последовательности кадров или изображений 10, 11, 12, ..., Тдц, где N -количество кадров видеопотока, а 1к - кадр с индексом к. Не уменьшая общности, будем считать, что на вход поступает цветное видео в формате RGB. В противном случае достаточно выполнить преобразование видео или рабочих кадров в нужное цветовое пространство [11]. Изображение 1к - двумерная матрица интенсивностей пикселей
(1)
7 -'0</<к-1,0<у<^-1 ’
где м>, к - ширина и высота изображения соответственно, а каждый элемент Vif матрицы 1к представляет собой вектор интенсивностей по трем цветовым каналам пространства
к / к к 7 к\ к к т к с г\ лее'*
V,] = (гу , Яу , Ьу ), Гу , Яу , Ьу £ {0, ..., 255}.
Примем, что положение объекта определяется расположением прямоугольника, его окаймляющего [1, 12, 13]. Необходимо отметить, что в зависимости от алгоритма под положением может пониматься расположение контуров объекта [14], особых точек (углов или ребер) или расположение трехмерного геометрического каркаса объекта [15].
Задача видеодетектирования транспортных средств состоит в том, чтобы каждому кадру 1к исходного видео V поставить в соответствие совокупность положений объектов Вк. Тогда задача видеодетектирования сводится к построению отображения ф:
•: К
к = О, N -1
к = О, N -1
ся построить дополнительные отображения. В настоящей работе примем, что необходимо выполнять построение траекторий движения объектов и подсчет транспортных средств с учетом направления движения.
Введем отображение у для сопоставления окаймляющих прямоугольников на паре последовательных кадров 1к и 1к + ь Обратим внимание, что на некотором кадре объект исчезает из поля зрения камеры. Поэтому следует рассматривать множество образов, расширенное специально выделенным окаймляющим прямоугольником. Согласно (3) выберем прямоугольник с недопустимыми координатами, вырожденный в точку, ЬЬ = ((-1, -1), (-1, -1)[, 5, с]), где 5 - произвольная вещественная величина, а с - произвольный класс объектов. Отметим, что в данном случае может быть выбран любой другой прямоугольник с несуществующими координатами. Тогда у представляет отображение вида
V: Бк ^ Бк+1 и $ЬЬ\У к = 0, N - 2. (4)
Допустим, что 1к - первый кадр, на котором был обнаружен объект, содержащийся в прямоугольнике с индексом г0(к) £ {0, 1, 2, ... , 5к}, а ц - количество последующих кадров, на которых объект виден наблюдателю. Тогда траекторией движения транспортного средства называется последовательность положений соответствующих окаймляющих прямоугольников
T
ro(k') k+i
к = (ЬЬГ0 k ,
< к +1
Г 5
к+i—1 ч
к+q-1
),
= V(bb„-1 к+‘—1), i = 1, q -1,
(5)
} (2)
где Вк = {bbl , =0, ..., St: - 1} - множество
окаймляющих прямоугольников, обнаруженных на кадре 1к, sк = \Вк\ - количество найденных прямоугольников. При этом каждый прямоугольник bbf определяется набором следующих компонент:
bb = ((x, yl ),(x2, y2)[, sl, cl ]), (3)
где (x/, yil), (x2l, y2l) - координаты левого верхнего и правого нижнего углов прямоугольника (0 < xil < x2l <w, 0 < yil < y2l < h), s1 £ R - достоверность того, что объект обнаружен правильно, а c £ C = { ‘car ’, ‘bus ’, ... , ‘train ’} - класс, которому принадлежит транспортное средство. Заметим, что в зависимости от специфики решаемой задачи и выбора метода ее решения последние две компоненты могут отсутствовать.
Если в задачу видеодетектирования внесены дополнительные требования, то наряду с указанным отображением ф, как правило, требует-
где г0(к) £ {0, 1, 2, ... , 5'к + ;}.
Пусть ё - количество возможных направлений движения на заданном видео. Определим отображение вида
% : ),к = 0,N -1, г(к) = 0,5кЦ
(i, cr (к)), i = 0, d -1, r (к) = 0, st}.
(6)
Отображение £ ставит в соответствие каждой траектории индекс направления движения и класс транспортного средства. Таким образом, задача подсчета сводится к определению количества прообразов (траекторий), которым соответствуют одинаковые образы. Указанное отображение позволяет построить матрицу подсчета транспортных средств М. Число строк матрицы совпадает с количеством возможных направлений движения ё, а число столбцов - с количеством выделяемых классов транспортных средств |С|. Каждый элемент ту матрицы М обозначает количество транспортных единиц класса у (0 < у < |С|), прошедших обозреваемый камерой участок дороги в направлении г (0 < г < ё - 1). Заметим, что в процессе реализации
r
q-1
r
число возможных направлений движения может быть задано как статически при условии фиксированного положения камеры, так и определяться динамически по мере получения очередной траектории.
2. Метод решения задачи
Можно выделить два основных подхода к построению полнофункциональных систем видеодетектирования транспортных средств [13, 16]: поиск и сопровождение областей движения с последующей идентификацией этих областей как транспортных средств того или иного класса (автобус, автомобиль, мотоцикл и т.п.) [1721]; поиск и сопровождение обнаруженных транспортных единиц [13].
В настоящей работе используется метод видеодетектирования посредством обнаружения и сопровождения объектов, который не зависит от типа детектируемых объектов (человек, автомобиль, трамвай и др.) и включает следующие действия [13]:
1. Извлечение кадра из потока видеоданных.
2. Предобработка полученного статического изображения - кадра (опционально). Типичными методами предобработки являются методы подавления теней [17-20], сегментации изображений и выделения областей интереса.
3. Поиск положения объекта на изображении и оценка степени достоверности нахождения объекта в данной области. Ключевые моменты при разработке алгоритма поиска - выбор признаков для описания объекта и выбор классификатора [22].
4. Сопровождение обнаруженных объектов.
5. Анализ результатов поиска и сопровождения. В настоящей работе данный блок включает оценку направления движения объекта на основании траектории и подсчет числа объектов.
Поиск и сопровождение являются ключевыми действиями в приведенной схеме. Обзор методов поиска и сопровождения транспортных средств был выполнен ранее в [23].
3. Схема покадрового поиска
В простейшем случае видео можно рассматривать как последовательность несвязанных изображений. Поэтому поиск объектов можно проводить независимо на каждом кадре видео. Результатом является набор окаймляющих прямоугольников Вк = {ЬЬД =0, ., - 1}, Vк =
= 0, ... , N - 1.
В данной работе используется алгоритм Latent SVM [12] и его реализация, разработанная ранее [24, 25]. Данный алгоритм позволяет находить транспортные средства нескольких классов: «автомобиль», «автобус», «трамвай», «мотоцикл», «велосипед».
Основной недостаток схемы полного покадрового детектирования - наличие большого количества ложных срабатываний, т.е. прямоугольников, которые реально не содержат интересующих объектов. Данный факт далее будет подтвержден результатами экспериментов.
4. Схема поиска с отсечением по областям интереса
Один из возможных подходов к снижению количества ложных срабатываний детектора состоит в том, чтобы отсечь прямоугольники, находящиеся вне области дороги (обочина). Для этого необходимо указать на видео области, в которых потенциально могут находиться объекты в процессе съемки, - области интереса. Область интереса задается бинарным изображением:
Я ~ (Гу )0<г<к-1,0< у<™-\, (7)
где ггу £ {0, 255}, Гу = 255 (белый пиксель), если точка принадлежит области интереса; Гу = 0 (черный пиксель) в противном случае. Изображение Я может быть получено вручную один раз для заданного видео.
Таким образом, схема детектирования с отсечением по областям интереса для кадра с номером к состоит из двух этапов:
1. Детектирование транспортных средств Бк = {ЬЬД 1=0, ..., 5'к- 1} с использованием метода, описанного в предыдущей схеме.
2. Отсечение по области Я. Принимается, что обнаруженный прямоугольник принадлежит области интереса, если выполняется следующее соотношение: р„ /рЬ > т, где р„ - количество пикселей, принадлежащих области интереса и накрываемых прямоугольником, рЬ -число пикселей, лежащих внутри прямоугольника, но не принадлежащих области интереса, т - пороговое значение (параметр отсечения). Заметим, что выбор параметра т зависит от точности разметки областей интереса. Если в процессе разметки учитывалось, что объект частично может выходить из области дороги (например, когда автомобиль имеет значительную высоту), то имеет смысл выбирать большое пороговое значение. Соответственно, чем ближе к границам дорожного полотна были выделены области интереса, тем меньше указанный порог отсечения.
5. Схема поиска с учетом результатов сопровождения на один кадр вперед
До настоящего момента кадры рассматривались независимо, и задача детектирования решалась отдельно на каждом изображении. Есте-
ственно, что последовательные кадры видео связаны между собой и транспортные средства не могут появляться в произвольных частях изображения. Идея применения трекинга на один кадр вперед состоит в том, чтобы обеспечить дополнительный уровень проверки корректности работы детектора с целью отсечения ложных срабатываний.
Рассмотрим подробнее схему с детектированием автомобилей на каждом кадре видео и применением одношагового трекинга. Алгоритм поиска запускается на паре последовательно идущих кадров. Обозначим индексы соответствующих кадров г и г + 1. Алгоритм сопровождения работает при переходе от кадра г к г + 1. Для описания схемы введем следующие обозначения:
• Бг и Бг + 1 - множества продетектированных прямоугольников на кадрах г и г + 1;
• Т1 + 1 - множество восстановленных положений прямоугольников в результате применения алгоритма сопровождения к набору прямоугольников Бг ;
• К — множество особых точек, построенных внутри прямоугольников набора Бг.
В предположении, что множество Бг построено, вычислительную схему можно представить в виде последовательности этапов:
1. Продетектировать транспортные средства на кадре г + 1 - построить множество Бг + ь
2. Построить множество особых точек К для заданного набора продетектированных прямоугольников Бг.
3. Восстановить положения прямоугольников Бг на кадре г + 1, применив алгоритм сопровождения к построенному набору особых точек К. По существу алгоритм трекинга позволит восстановить множество К + ', затем достаточно вычислить новые положения прямоугольников, т.е. построить Т 1 + '. Новые положения можно получить исходя из смещения произвольного признака, который имеет образ в К + '.
4. Совместить результаты детектирования Бг + 1 и сопровождения Т1 + ':
а) зафиксировать класс продетектирован-ных объектов;
б) упорядочить прямоугольники заданного класса из множества Бг + 1 по убыванию степени достоверности того, что объект был продетек-тирован правильно;
в) изъять прямоугольник с максимальным значением степени достоверности;
г) перебрать все восстановленные прямоугольники для заданного класса объектов из Т 1 + 1 и определить тот, который имеет максимальный процент перекрытия с выбранным продетектированным прямоугольником;
д) если полученный максимум больше некоторого порога, то считать, что соответствующий прямоугольник из Bi был продетектирован правильно, и восстановленный прямоугольник необходимо удалить из рассмотрения;
е) перейти к рассмотрению следующего продетектированного прямоугольника из упорядоченного множества и повторить предыдущие три действия;
ж) если для какого-либо прямоугольника из множества T1 + 1 не обнаружилось соответствия из Bj + ., то принять, что соответствующий прямоугольник из Bi был продетектирован ошибочно;
з) выполнить приведенную последовательность действий для следующего класса объектов.
Отметим, что данная схема также может включать в себя отсечение по областям интереса на этапе детектирования.
Первый недостаток описанной схемы состоит в том, что детектор на кадре i + 1 мог пропустить объект. Как следствие, и на кадре i при реализации объект также не будет обнаружен. Подобная ситуация может возникать, например, при частичном выходе объекта из области обзора камеры. Второй недостаток - объект должен иметь достаточные размеры, чтобы можно было выделить признаки для сопровождения.
6. Схема поиска с учетом результатов
сопровождения на несколько кадров вперед
Схема с применением трекинга на несколько кадров вперед строится на основании схемы с использованием одношагового трекинга. Идея состоит в том, чтобы выполнять детектирование не на паре последовательно идущих кадров, а на кадрах, расположенных с некоторым шагом друг от друга в видеопотоке. При этом положение окаймляющих прямоугольников на промежуточных кадрах восстанавливается на основании результатов сопровождения, условно такую процедуру можно рассматривать как интерполяцию. Значение степени достоверности для прямоугольников на промежуточных кадрах определяется значениями, полученными в результате детектирования на текущем кадре.
Обозначим номера кадров, на которых будет выполняться детектирование, как i и (i + step), где step - параметр алгоритма. Далее предположим, что положения транспортных средств на кадре i построены, т.е. имеется множество Bi. Тогда вычислительную схему можно представить в виде последовательности действий:
1. Продетектировать транспортные средства на кадре (i + step) - построить множество
Bi + step.
2. Построить множество особых точек K для заданного набора продетектированных прямоугольников Bi.
3. Восстановить положения прямоугольников Bi на кадрах i + 1, i + 2, ... , i + step, применив алгоритм сопровождения к построенному набору особых точек K. По существу алгоритм трекинга позволит восстановить множество
тА + 1 тА + 2 тА + step
K , K , ... , K , затем достаточно вычислить новые положения прямоугольников, т.е.
ri + 1 гг-i i + 2 'Г' i + step т—г
, 1 , ... , 1 . Положения
можно получить аналогично схеме с шагом в один кадр.
4. Совместить результаты детектирования и сопровождения на кадре (i + step) - сопоставить множества Bi + step и T1 +step. Алгоритм сопоставления в точности такой же, как и в предыдущей одношаговой схеме.
Основная проблема последних двух схем состоит в том, что наименее трудоемкие алгоритмы сопровождения основаны на вычислении оптического потока, но данный подход не работает на видео с небольшим значением FPS, поэтому такие алгоритмы дают некачественный результат в случае высоких скоростей объектов.
7. Алгоритм коррекции результатов детектирования в процессе восстановления траекторий
Все описанные ранее вычислительные схемы за исключением последней позволяют построить множества положений объектов на каждом кадре видео, но не траектории движения. При наличии набора продетектированных окаймляющих прямоугольников на всех кадрах видео траектории движения объектов можно строить отдельным образом. Наряду с построением траекторий можно выполнять коррекцию множества обнаруженных прямоугольников, а как следствие, - отбрасывать ложные срабатывания детектора, которые повторяются на коротких последовательностях кадров.
Допустим, что построены множества В0, В\, ... , BN_ 1 посредством использования одного из алгоритмов, перечисленных в предыдущих разделах. Тогда процедура построения траекторий и коррекции обнаруженных прямоугольников включает четыре основных этапа:
1. Разбиение совокупности всех прямоугольников на небольшие треки.
2. Восстановление пропусков детектора внутри построенных треков.
3. Слияние треков в более крупные траектории.
4. Отбрасывание коротких траекторий.
Рассмотрим подробнее последовательность
действий, которая выполняется на каждом при-
веденном этапе. Сначала объединим множества Б0, Бь ... , БN_ 1 в единое множество Б, тогда каждый элемент Ьг из Б определяется набором из нескольких компонент:
= (/■,(х1, у1 X(х2. у 2X5. с‘)
—;---------------------------, (8)
V/ = 0,|Б0 и Б1 и... и Б^| -1,
где / - индекс кадра, на котором обнаружен объект, (хД у/), (х2г, у2г) - координаты левого
верхнего и правого нижнего углов окаймляю-
г
щего прямоугольника соответственно, 5 - достоверность присутствия объекта в данном прямоугольнике, с - класс транспортного средства. Таким образом, на входе первого этапа алгоритма имеется множество Б. На выходе формируется совокупность треков Т1:
Vtk е Т\tk = (Ьг0,V..,\-1),
Ук = 0, |Т11 -1, Ьг, е Б, V. = 0,к; (9)
Л, < / < ... < Ггкк -!, где 5к - длина трека. Заметим, что пара последовательно идущих прямоугольников в треке не обязательно находится на последовательных кадрах видео, т.к. детектор может пропускать объекты. Итак, этап разбиения на треки состоит из нескольких шагов:
1. Извлечь прямоугольник Ь0 из множества Б: Б7 = Б \ {Ь)}.
2. Принять этот прямоугольник за начало нового трека и создать трек t = (Ь0).
3. Просмотреть все последующие прямоугольники Ь/, V/ = 0, 1, ... , |Б/| - 1, и найти следующий прямоугольник трека, соответствующий Ь0. Для этого необходимо выполнить следующие действия:
а) если / = /0, то выполнить переход к просмотру следующего прямоугольника из Б (в начало шага 1);
б) если / -/0 > Т, то оборвать построение траектории. Здесь т/ - параметр алгоритма, обозначает максимально допустимое количество кадров, на которых объект может быть не обнаружен детектором: Б = Б, выполнить переход к шагу 5;
в) в противном случае следует попытаться сопоставить изображения объектов, содержащиеся в прямоугольниках Ь0 и Ь/. Для этого необходимо реализовать следующие действия:
г Поиск ключевых точек и вычисление дескрипторов для изображений объектов в Ь0 и Ь/ с использованием некоторого алгоритма1. Пусть К0 и К/ - наборы ключевых точек, а О0 и О/ -наборы дескрипторов для Ь0 и Ь/ соответственно. п. Грубый поиск соответствий посредством полного перебора. В результате формируется множество М пар соответствий:
Ут. еМ,. = 0,М|-1, ту = (^О0,), (10)
О0 гл О/
где wj - индекс признака из О0, wj 1 - индекс признака из Ог7.
ш. Отсечение ложных соответствий с помощью алгоритма RANSAC. Как следствие, выделение подмножества корректных соответствий Ш, К С М.
iv. Если |IL| < хт, то следует осуществить переход к следующему прямоугольнику Ь/ (на начало шага 3). Заметим, что тт - параметр алгоритма, определяющий минимальное количество корректных соответствий, необходимое, чтобы пара прямоугольников была признана положениями одного и того же объекта.
V. Если |IL| > тт, то необходимо просмотреть все прямоугольники, обнаруженные на кадре с номером /. При этом выполнить действия 0-№) и выбрать прямоугольник, для которого получено максимальное количество корректных соответствий.
vi. Определение направления движения объекта
ргеу ^
V как вектора смещения конкретной ключевой точки из Ш.
vii. Извлечение из Б7 и добавление его в Р.
t=(Ь0, ь;), б=Б / { ь;}.
4. Выполнить построение оставшейся части трека. Допустим, что в некоторый момент построена некоторая часть трека t = (Ь0, ,
Ь1,..., Ь'). Тогда, чтобы восстановить следующее положение объекта, следует реализовать последовательность действий, подобную той, что была описана на предыдущем шаге. Для этого необходимо просмотреть следующие записи Ь/, V/ = 0, ... , |Б| - 1:
а) если Л = /'Чк , то осуществить переход к просмотру следующего прямоугольника из Б/;
б) если / - /'п > т/, то оборвать построение
траектории: Б = Б/, выполнить переход к шагу 5;
в) в противном случае попробовать сопоставить изображения, ограниченные прямоугольниками Ь1 и Ь1/, в соответствии со схемой, описанной на начальной итерации (шаг 4). Разница лишь в том, что при выборе прямоугольника с максимальным количеством соответствий для кадра с фиксированным номером дополнительно следует контролировать направ-
г сигг Т7
ление смещения объекта V . Если угол между
£ГеУ СиГГ г
направлениями V и V больше порогового значения та, то это означает резкое изменение направления движения объектом. Вероятность возникновения такой ситуации достаточно мала, поэтому считается, что это другой объект, и
данный прямоугольник не рассматривается при выборе наилучшего соответствия.
5. Добавить полученный трек t в выходное множество треков.
6. Если множество Б = 0, то необходимо повторить все шаги, начиная с шага 1.
Очевидно, что при использовании такой схемы разбиения в треках, во-первых, можно будет обнаружить «пропуски»; это обусловлено тем, что детектор на некоторых кадрах не находит объект. Во-вторых, автомобили в процессе движения способны резко изменять направление движения, например, вследствие перестроения на другую полосу движения, либо при повороте в улицу с другим направлением движения, либо при использовании заднего хода.
Решение проблемы наличия «пропусков» решается посредством восстановления положений объекта. На входе данного этапа алгоритма имеется множество траекторий Т1, в результате восстановления получается обновленное множество Т2, причем |Т'| = |Т% Допустим, что траектория tk е Т1, tk = (Ьг0,Ь^,...,Ь _;) содержит единственный «пропуск», т.е. существует такое у, что для прямоугольников Ьг. 1 и
Ь разница / - / = d > 1. Таким образом,
задача состоит в том, чтобы построить положения объекта на кадрах с номерами /Г)+и /г)+2,..., /Г) +ё-1. Далее будем считать, что при
переходе от кадра к кадру объект смещается на незначительное расстояние. Предположим, что на кадре /, г. + 1 < / < г. + ё - 2, восстановлено положение Ь" =(/,(х1, у1 ),(х2, у2), 51, с1), тогда, чтобы определить положение прямоугольника на кадре / + 1, необходимо выполнить следующую последовательность действий:
1. Построить прямоугольник Ь =((х1, у1), (х2, у2)), в котором потенциально может находиться объект (рис. 1). Для этого следует сдвинуть границы Ь" на некоторое фиксированное значение по горизонтали хЬ и по вертикали уЬ.
2. Сопоставить изображение, ограниченное прямоугольником Ь" на кадре /, и изображение, ограниченное прямоугольником Ь на кадре / + 1, в соответствии с тем же алгоритмом сопоставления, который был использован на этапе разбиения на треки:
а) построить наборы ключевых точек К и К1// и вычислить дескрипторы для этих точек О и О1// для Ь и Ь" соответственно;
б) перебрать все возможные соответствия -сформировать множество М (10);
Рис. 1. Схема определения области возможного нахождения объекта
Рис. 2. Схема восстановления положения прямоугольника
в) отсечь ложные соответствия - построить подмножество Ш С М;
г) восстановить положение прямоугольника на кадре / + 1:
г Выбрать произвольное соответствие
, wDi ) из множества Ш, р О = (хр, ур) е К,
р в„ = (X?, ур) є К/ .
п. Вычислить смещение ключевой точки р О (рис. 2).
ш.
Вычислить положение Ь/^ на основа-
нии полученного смещения.
3. Описанную процедуру восстановления необходимо выполнить последовательно для V//, г. + 1 < / < Гу + ё - 2.
4. Обновить состояние трека t, дополнив последовательность положений набором восстановленных:
t" = (Ьг0, Ьг1,...,Ьгу, Ь.+1, ьгу+2,...,ьгу+ё-1, Ьу++ё ,..д,-1).
Рассмотренный алгоритм восстановления положений легко распространить на случай, когда в треке имеется не один «пропуск». Для этого достаточно выполнить проход по всему треку и сравнить индексы кадров для последовательно идущих положений. Если разница индексов больше единицы, то необходимо применить приведенную схему восстановления положений.
На данном этапе следует учесть возможность резкого изменения направления движе-
ния. Для этого выполняется слияние треков из множества Т2, построенного на предыдущем этапе. По существу выполняется перебор всех возможных пар треков и и tу, ^, tу е т2,у/ < у, /,у = 0, ... , |Т2| - 1, т.к. треки в Т на данном этапе расположены в порядке возрастания индекса кадра, соответствующего началу этого трека. Для каждой такой пары выполняется следующий набор действий:
1. Просмотреть последнее положение объекта Ь1ш1 / ,(х^, у‘Г ),(х‘Г, у^), 5^, с*") в треке ^-.
2. Просмотреть первое положение объекта
= / ,(/, у/гг5), (х/г5, у/'5 ), 5/гг1, с/гг5 ) в треке tу.
3. Если -/last > т или -/last < 0, то
следует выполнить переход к рассмотрению
о тЛ
следующей пары треков. Заметим, что т - параметр алгоритма, определяющий максимально допустимое количество кадров, на которых объект может не наблюдаться (например, в случае перекрытия другими объектами). Данный параметр следует выбирать большим по значению, чем т^ (параметр разбиения на треки).
4. Если 0 <//1Ы -/ш < тт/, то необходимо выполнить переход на шаг 5.
тё/
последних
5. Выполнить сопоставление ттё/
~ , тё/ ^
положений из трека и с т первых положений из трека tу. При этом следует использовать ту же схему сопоставления, что была приведена при выполнении процедуры разбиения множества
положений на треки. Разница лишь в том, что вместо порогового значения т (минимальное количество корректных соответствий при разбиении) необходимо использовать собственный
тт т/
порог т . Отметим, что чем больше т , тем меньше должно быть ттт. Данный факт вытекает из соображения, что по истечении большего количества кадров изменение ракурса объекта более вероятно, а как следствие, часть ключевых может исчезать. Если при сопоставлении хотя бы одной пары положений не нашлось необходимого количества корректных соответствий, то необходимо выполнить переход к рассмотрению следующей пары треков. В противном случае необходимо запомнить пару индексов треков (/, у) и выполнить переход к следующей паре треков.
После того как все допустимые пары треков из Т2 просмотрены и сформировано множество пар индексов сливаемых треков, осталось осуществить проход по полученному множеству индексов. Для этого для каждой сливаемой пары треков ^ и у необходимо выполнить следующие действия:
1. Восстановить положения объекта на кадрах, находящихся в промежутке между последним кадром трека и и первым кадром трека tу. Схема восстановления полностью аналогична схеме, описанной на этапе восстановления «пропусков».
2. Дополнить трек ^ набором восстановленных положений.
3. Дополнить трек ^ набором последовательных положений трека tу.
В результате выполнения описанной процедуры будет получено множество траекторий Т. Очевидно, что при большом количестве ложных срабатываний детектора данное множество будет содержать большое число коротких траекторий. Поэтому следующим этапом алгоритма является отбрасывание небольших траекторий. Отбрасывание выполняется посредством прохода по всему множеству траекторий и сравнения длины каждой траектории с некоторым пороговым значением тг/, обозначающим минимальную длину траектории. В результате формируется финальное множество траекторий Т, по которому достаточно просто можно собрать совокупность положений всех транспортных средств на видео.
8. Критерии оценки качества видеодетектирования
В данной работе для оценки качества детектирования транспортных средств используются две группы показателей. Согласно работам [13,
21, 26] видео рассматривается как единый набор
изображений и применяются количественные показатели, которые вычисляются на основании информации о числе правильно и неправильно детектированных объектов:
• истинно положительный показатель (the true positive rate [13] или detection rate [21]) -отношение количества правильно продетекти-рованных транспортных средств к общему числу транспортных средств;
• показатель числа ложных срабатываний (the /alse detection rate) - отношение количества ложных срабатываний к общему числу срабатываний детектора.
При этом считается, что объект детектирован правильно, если перекрытие детектированного bboxdetect и размеченного bboxmarked окаймляющего прямоугольников превышает некоторое пороговое значение threshold:
S(bbox„e,e» ^ bb°x„„.d ) > threshold, (11)
S(bboXdetect U bboXmarked )
Наряду с указанными метриками [13] используется несколько относительных показателей качества:
• количество ложных срабатываний, которое в среднем приходится на один кадр (the average /alse positives per /rame) - отношение числа ложных срабатываний к общему количеству кадров;
• количество корректно продетектированных объектов, приходящееся в среднем на кадр (the average true positives per /rame);
• среднее количество ложных срабатываний, приходящееся на объект (the average /alse positives per object) - отношение числа ложных срабатываний к количеству правильно проде-тектированных объектов.
Вторая группа показателей предполагает, что видео рассматривается как последовательность кадров видеопотока [27]. В этом случае для оценки качества рассматривают среднюю точность предсказания (average precision). Указанную метрику организаторы конкурса PASCAL Visual Object Challenge (VOC) [28, 29] используют для оценки результатов детектирования и классификации на множестве размеченных статических изображений. В состав VOC Development Kit [30] входит Matlab-модуль, позволяющий вычислить данный показатель на основании результатов детектирования, записанных в специальном формате. Указанная метрика определяется как математическое ожидание точностей следующим образом:
AP = -1 ^ p(r), p(r) = max p(r), (12)
11 re{0;0.1;...;1} r,r
где p(r) = а/(а + с) - точность, r - процент перекрытия детектированного окаймляющего прямоугольника и прямоугольника, который был размечен на исходном изображении как
окаймляющий, r 6 {0; 0.1; 0.2; ... ; 1}, а - количество объектов, для которых процент перекрытия не меньше, чем r (т.е. считается, что объект продетектирован правильно), с - количество объектов с процентом перекрытия,
меньшим, чем r (объект найден ошибочно). Если перекрытие составляет более 50%, то принимается, что объект продетектирован корректно. Отметим, что при вычислении средней точности каждый продетектированный и размеченный прямоугольник должен рассматриваться только один раз. Данный вопрос решается посредством использования доверительной оценки для продетектированного прямоугольника. Прямоугольники рассматриваются в порядке убывания оценки. Если для какого-то множества про-детектированных прямоугольников не обнаружилась пара, то они принимаются за ложные срабатывания детектора (false positives). Если же для некоторого множества размеченных прямоугольников не удалось найти пару, то считается, что детектор не обнаружил ряд объектов (false negatives).
9. Характеристика тестовых данных
Для проведения экспериментов по оцениванию качества видеодетектирования транспортных средств было снято несколько видео (25 FPS, 720 х 405 пикселей), из которых вырезаны отдельные последовательности кадров:
• track_09_0-2000 (2000 кадров = 80 секунд, ~20000 ТС) содержит большое количество мелких транспортных средств трех классов (CAR, TRAIN, BUS), движущихся в двух противоположных направлениях (рис. 3а). Характерная особенность данного трека состоит в том, что значительную площадь кадра занимает фон.
• track_10_5000-7000 (2000 кадров = 80 секунд, ~3000 ТС) - видео с транспортными средствами единственного класса CAR, которые двигаются в 4 полосы одного направления (рис. 3б). Отличительной чертой является наличие большого количества кадров, не содержащих объектов.
• track_10_7000-8000 (1000 кадров = 40 секунд, ~1000 ТС) - видео, снятое при тех же условиях, что и track_10_5000-7000. Разница лишь в том, что здесь встречаются объекты двух классов, CAR и BUS (рис. 3в).
10. Результаты вычислительных экспериментов
Результаты видеодетектирования с помощью разработанных схем сведены ниже в таблице 1:
1, 2 - схемы полного детектирования без отсечения и с отсечением соответственно;
3, 4 - схемы детектирования с одношаговым трекингом с отсечением и без отсечения;
5, 6 - схема детектирования с трекингом на 5 кадров вперед с отсечением и без отсечения;
7 - схема детектирования с трекингом на 3 кадра вперед и отсечением;
8_2 - результаты коррекции положений, полученных в схеме 2, с использованием алгоритма коррекции при восстановлении траекторий движения;
8_3 - результаты коррекции положений, полученных в схеме 3, с использованием алгоритма коррекции при восстановлении траекторий движения;
8_2_1 - результаты коррекции положений, полученных в схеме 2, с использованием алгоритма коррекции при восстановлении траекторий движения (с дополнением начал/концов треков);
Таблица 1
Сводная таблица результатов видеодетектирования транспортных средств
№ схемы Название тестового видео Cp eДНЯЯ T очность предсказания (average precision) Значение показателя TPR Значение показателя FDR Значение показателя FPperFrame Значение показателя FPperObject
BUS CAR BUS CAR BUS CAR BUS CAR BUS CAR
1 track 09 0-2000 0.213 0.202 0.291 0.201 0.924 0.786 1.627 5.898 3.530 0.738
track 10 5000-7000 - 0.684 - 0.728 - 0.735 - 2.942 - 2.015
track 10 7000-8000 0.514 0.674 0.657 0.745 0.910 0.813 0.660 3.567 6.677 3.243
2 track 09 0-2000 0.217 0.149 0.287 0.114 0.802 0.663 0.532 1.792 1.168 0.224
track 10 5000-7000 - 0.6S4 0.726 0.676 2.209 1.513
track 10 7000-8000 0.514 0.674 0.657 0.745 0.905 0.784 0.619 2.980 6.263 2.709
3 track 10 5000-7000 - 0.624 0.680 0.437 0.772 0.529
track 10 7000-8000 0.494 0.617 0.596 0.697 0.879 0.631 0.427 1.313 4.313 1.193
4 track 10 5000-7000 - 0.625 - 0.683 - 0.518 - 1.074 - 0.735
track 10 7000-8000 0.494 0.617 0.596 0.697 0.SS4 0.674 0.448 1.583 4.525 1.440
5 track 10 5000-7000 - 0.534 - 0.586 - 0.508 - 0.885 - 0.606
track 10 7000-8000 0.520 0.526 0.606 0.596 0.869 0.667 0.340 1.134 4.04 1.194
б track 10 5000-7000 - 0.617 - 0.622 - 0.605 - 1.390 - 0.952
track 10 7000-8000 0.520 0.602 0.606 0.621 0.879 0.721 0.436 1.770 4.404 1.609
7 track 10 5000-7000 - 0.619 - 0.644 - 0.521 - 1.023 - 0.700
track 10 7000-8000 0.516 0.610 0.606 0.667 0.875 0.659 0.419 1.416 4.242 1.287
8_2 track 10 5000-7000 - 0.539 - 0.563 - 0.079 - 0.071 0.048
track 10 7000-8000 - 0.535 - 0.554 - 0.168 - 0.123 - 0.112
8 3 track 10 5000-7000 - 0.539 - 0.549 - 0.069 - 0.059 - 0.040
track 10 7000-8000 - 0.533 - 0.532 - 0.153 - 0.106 0.096
S21 track 10 5000-7000 0.6S9 0.709 0.161 0.199 0.136
track 10 7000-8000 - 0.6S2 0.723 0.260 0.279 0.254
8_3_1 track 10 5000-7000 0.701 0.709 0.137 0.164 0.112
track 10 7000-8000 0.682 - 0.717 - 0.247 - 0.259 0.235
8_3_1 - результаты коррекции положений, полученных в схеме 3, с использованием алгоритма коррекции при восстановлении траекторий движения (с дополнением начал/концов треков).
Количественные показатели качества
(столбцы 4, 5, 6, 7) приведены для порогового значения процента пересечения размеченных и продетектированных окаймляющих прямоугольников, равного 0.5.
Проанализируем полученные результаты. Переход от схемы 1 к схеме 2 - введение отсечения - позволил незначительно снизить количество ложных срабатываний детектора, о чем говорят значения показателей FDR, FPperFrame и FPperObject. Применение алгоритмов сопровождения обеспечило еще большее улучшение указанных показателей. При этом очевидно прослеживается снижение средней точности детектирования. Если для реализации, использующей одношаговый трекинг (схемы 3 и 4), это не так заметно, то с многошаговым трекингом (схемы 5, 6, 7) падение точности наблюдается с увеличением шага для выполнения очередного детектирования. Причина состоит в том, что при увеличении шага увеличивается вероятность перекрытия транспортных средств другими объектами или частичного выхода из кадра. В результате алгоритм детектирования может не найти данный объект. Как следствие, ошибка распространится на столько предыдущих кадров, чему равен шаг. На данном этапе наиболее перспективной является схема с одношаговым трекингом и отсечением. Прямой переход к схеме с коррекцией положений при восстановлении траекторий движения дал очевидный результат с точки зрения уменьшения
количества ложных срабатываний (последние три показателя практически сведены к нулю), но при этом значительно снизилось число правильно продетектированных объектов (для схем 8_2 и 8_3 средняя точность составила ~0.5). Визуальное сопоставление полученных результатов показало, что треки не содержат положений, соответствующих моментам появления и исчезновения объектов из области обзора камеры. Поэтому было принято решение для каждого трека восстанавливать его начало и конец согласно схеме восстановления положений объекта, описанной в алгоритме коррекции результатов детектирования в процессе построения траекторий движения. Такой подход обеспечил значительное повышение показателя корректных срабатываний (средняя точность предсказания
для 8_2_1 и 8_3_1 приблизительно составила 0.7)
при незначительном увеличении количества ложных срабатываний (~0.2 против ~0.1).
Заключение
В работе представлено несколько схем видеодетектирования транспортных средств из нескольких классов, предложен независимый алгоритм коррекции результатов детектирования в процессе восстановления траекторий движения. Выполнена программная реализация разработанных вычислительных схем. Проведена апробация, которая показала, что алгоритм коррекции позволяет снизить среднее количество ложных срабатываний, приходящееся на кадр, практически до нуля. Тем не менее, число корректных срабатываний составляет в среднем 70% от общего числа.
Основные направления дальнейшего развития работы связаны с повышением качества детектирования транспортных средств, минимизацией времени обработки одного кадра и построением вычислительной схемы, которая обеспечивает детектирование и построение траекторий в реальном времени.
Работа выполнена в рамках программы «Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы», государственный контракт № 11.519.11.4015.
Примечания
1. Эксперименты показали, что для данной задачи алгоритм SURF для поиска ключевых точек и вычисления их дескрипторов работает лучше SIFT, ORB и некоторых других.
Список литературы
1. A summary of vehicle detection and Surveillance Technologies used in Intelligent Transportation Systems [Electronic resource]. Electronic data. Mode of access: http://www.fhwa.dot.gov/policyinformation/pubs/vdstits 2007/vdstits2007.pdf. Загл. с титул. экрана.
2. Аналитический обзор детекторов транспорта [Electronic resource]. Electronic data. Mode of access: http: //www.againc .net/ru/education/transport-enginee ring/10-detectors. Загл. с титул. экрана.
3. Detector Technology Evaluation [Electronic
resource]. Electronic data. Mode of access: http://www. mountain-plains.org/pubs/pdfTMPC03-154.pdf. Загл. с
титул. экрана.
4. Marsh Products, Inc. [Electronic resource] : a subsidiary of Spectrum Companies International, Ltd. Electronic data. Mode of access: http://www. marshpro-ducts. com. Загл. с титул. экрана.
5. RAI Products [Electronic resource]: vehicle detection systems. Electronic data. Mode of access: http://www.raiproducts.com/vehicle-detection-systems.html. Загл. с титул. экрана.
6. International Road Dynamics Inc. [Electronic resource]: On-Road Sensors. Electronic data. Mode of access: http://www.irdinc.com/products/sensors_ acces-sories/on_road_sensors. Загл. с титул. экрана.
7. VOCORD [Electronic resource]: системы видеонаблюдения и аудиорегистрации. Electronic data. Mode of access: http://www.vocord.ru/218. Загл. с титул. экрана.
8. Macroscop - программный комплекс для IP-камер [Electronic resource]: интеллектуальные модули. Electronic data. Mode of access: http://macroscop. com/products/Intelligent_modules/. Загл. с титул. экрана.
9. Arth C., Limberger F., Bischof H. Real-Time License Plate Recognition on an Embedded DSP-Platform // In: Proc. of the Conference on Computer Vision and Pattern Recognition (CVPR’07). 2007. P. 1-8.
10. Hirose K., Torio T., Hama H. Robust Extraction
of Wheel Region for Vehicle Position Estimation using a Circular Fisheye Camera // Int. J. of Computer Science and Network Security. 2009. V. 9. № 12. P. 55-62.
11. OpenCV V2.1 Documentation. Miscellaneous Image Transformations [Electronic resource]: image transformations in OpenCV library. Electronic program. Mode of access: http://opencv.willowgarage.com/docu-mentation/cpp/miscellaneous_image_transformations. html. Загл. с титул. экрана.
12. Felzenszwalb P.F., Girshick R.B., McAllester D., Ramanan D. Object Detection with Discriminatively Trained Part Based Models // IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI’10). 2010. V. 32. № 9. P. 1627-1645.
13. Sivaraman S., Trivedi M.M. A General Active-Learning Framework for On-Road Vehicle Recognition and Tracking // IEEE Transactions on intelligent transportation systems. 2010. V. 11. № 2. P. 267-276.
14. Shotton J., Blake A., Cipolla R. Contour-based Learning for Object Detection // In: Proc. of the 10th IEEE International Conference on Computer Vision (ICCV’05). 2005. V. 1. P. 503-510.
15. Buch N., Cracknell M., Orwell J., Velastin S.A. Vehicle localization and classification in urban CCTV streams // In: Proc. of the 16th World Congress and Exhibition on Intelligent Transport Systems and Services. 2009.
16. Tsai Y.M., Tsai C.C., Huang K.Y., Chen L.G. An intelligent vision-based vehicle detection and tracking system for automotive applications // In: Proc. of the IEEE International Conference on Consumer Electronics. 2011. P. 113-114.
17. Cucchiara R., Grana C., Piccardi M., Prati A. Statistical and knowledge based moving object detection in traffic scene // In: Proc. of the IEEE Int’l Conference on Intelligent Transportation Systems. 2000. P. 27-32.
18. Cucchiara R., Grana C., Piccardi M., et al. Improving Shadow Suppression in Moving Object Detection with HSV Color Information // In: Proc. of the IEEE International Conference on the Intelligent Transportation Systems. 2001. P. 334-339.
19. Fung G.S.K., Yung N.H.C., Pang G.K.H., Lai A.H.S. Towards Detection of Moving Cast Shadows for Visual Traffic Surveillance // Systems, Man, and Cybernetics. 2001. V. 4. P. 2505-2510.
20. Sanin A., Sanderson C., Lovell B.C. Shadow Detection: A Survey and Comparative Evaluation of Recent Methods // Pattern Recognition. 2012. V. 45. № 4. P. 1684-1695.
21. Song X., Netavia R. A Model-based Vehicle Segmentation Method for Tracking // In: Proc. of the IEEE International Conference on Computer Vision (ICCV’05). 2005. V. 2. P. 1124-1131.
22. Sun Z., Bebis G., Miller R. On-road vehicle detection using Gabor filters and support vector machines // Digital Signal Processing. 2002. V. 2. P. 1019-1022.
23. Золотых Н.Ю., Кустикова В.Д., Мееров И.Б. Обзор методов поиска и сопровождения транспортных средств на потоке видеоданных // Вестник ННГУ им. Н.И. Лобачевского. 2012. № 5(2). С. 347-357.
24. Druzhkov P.N., Eruhimov V.L., Kozinov E.A., et al. On some new object detection features in OpenCV library // Pattern Recognition and Image Analysis: Advances in Mathematical Theory and Applications. 2011. V. 21. № 3. P. 384-386.
25. Козинов Е.А., Кустикова В.Д., Мееров И.Б. и др. Подходы к оптимизации и распараллеливанию
вычислений в задаче детектирования объектов разных классов на изображении // Вестник ЮУрГУ, серия «Вычислительная математика и информатика». 2012. № 47(306). C. 68-82.
26. Kim Z.W., Malik J. Fast Vehicle Detection with Probabilistic Feature Grouping and its Application to Vehicle Tracking // In: Proc. of the IEEE International Conference on Computer Vision (ICCV’03). 2003. V. 1. P. 524-531.
27. Dollar P., Wojek C., Schiele B., Perona P. Pedestrian Detection: A Benchmark // In: Proc. of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR’09). 2009. P. 304-311.
28. Everingham М., Van Gool L.J., Williams C.K.I., et al. The PASCAL Visual Object Classes (VOC) Challenge // Int. J. of Computer Vision. 2010. P. 303-338.
29. PASCAL Visual Object Challenge [Electronic resource]: official page of PASCAL Visual Object Challenge. Electronic data and program. Mode of access: http://pascallin.ecs.soton.ac.uk/challenges/VOC/. Загл. с титул. экрана.
30. PASCAL Visual Object Challenge Development Kit [Electronic resource]: development kit to estimate average precision. Electronic program. Mode of access: http://pascallin.ecs .soton.ac.uk/challenges/V OC/voc2007 /#devkit. Загл. с титул. экрана.
A COMPARISON OF SOME VIDEO VEHICLE DETECTION ALGORITHMS
V.D. Kustikova
Some video vehicle detection algorithms are proposed and their advantages and drawbacks are discussed. The quality of the proposed algorithms is analyzed on traffic flow test video samples. The achieved average false positives per frame are close to zero. The true positive detection rate is about 70%.
Keywords: computer vision, machine learning, object search, tracking, matching, feature extraction, feature points, detector, descriptor.