Участник:Amolchanov/Детекция движения

Материал из MachineLearning.

< Участник:Amolchanov(Различия между версиями)
Перейти к: навигация, поиск
(Выделение перемещающихся пятен на кадрах)
(Решение)
 
(191 промежуточная версия не показана)
Строка 1: Строка 1:
{{Tip|На странице изложена примерная структура будущей статьи посвященной исследованию задачи детекции движения транспортных средств в видеоданных студентом [[Участник:Amolchanov|Андреем Молчановым]] в рамках работы над дипломом}}
{{Tip|На странице изложена примерная структура будущей статьи посвященной исследованию задачи детекции движения транспортных средств в видеоданных студентом [[Участник:Amolchanov|Андреем Молчановым]] в рамках работы над дипломом}}
-
== Дневник исследователя ==
+
= Введение =
-
Оформил покадровую обработку как отдельный класс, отвечающий за фильтрацию.
+
-
Также добавил морфологию. После добавления, изображение, как и ожидалось слегка сгладилось, дырки пропали. В ближайших планах обнаружение объектов с помощью стропов.
+
-
--[[Участник:Amolchanov|amolchanov]] 23:54, 27 апреля 2010 (MSD)
+
-
Более подробно описал работу над проектом здесь. Сейчас думаю, какую структуру данных лучше выбрать для хранения информации о пятнах и треках.
+
В настоящей работе с помощью проводимых экспериментов подбирается подход к восстановлению треков движущихся транспортных средств из уже имеющихся реальных видеозаписей. Это подразумевает выделение транспортных средств на кадрах видеозаписи, сопоставление их на различных кадрах и дальнейшее преобразование координат транспортных средств в реальные пространственные.
-
--[[Участник:Amolchanov|amolchanov]] 16:36, 10 мая 2010 (MSD)
+
-
== Предпосылки ==
+
Дополнительно исследуется метод объединения треков, восстановленных по видеозаписям, полученных с помощью двух противоположно направленных видеокамер с непересекающимися областями видимости. Такое объединение позволяет отслеживать перемещение транспортного средства, не ограничиваясь областью видимости одной видеокамеры.
-
При исследовании некоторых задач, связанных с анализом поведения автомобильного потока, возникает необходимость получения экспериментальных данных.
+
-
Примером такой задачей может быть построение модели движения автомобилей по еще не построенной трассе с целью определения вероятности возникновения пробок. Для анализа такой модели необходимо будет наполнить ее объектами-машинами, которые будут передвигаться по определенным правилам. Для того, чтобы модель как можно больше соответствовала реальности, правила, по которым будут передвигаться машины, должны основываться на данных о передвижении машин, полученных с действующих дорог.
+
При исследовании некоторых задач, связанных с анализом поведения автомобильного потока, возникает необходимость получения экспериментальных данных, описывающих траектории движения (треки) транспортных средств.
-
Существует несколько методов получения таких данных. Например, могут использоваться специальные устройства, устанавливаемые в сам автомобиль и снимающие данные с его систем управления.
+
Примером такой задачи может быть классификационный подход к имитационному моделированию транспортных потоков [1]. В данной работе предполагается, что моделируемый объект, а именно транспортный поток, является сложной системой, состоящей из большого числа субъектов, действующих друг на друга и на систему в целом. Водители транспортных средств, составляющих поток, принимают решения, которые полностью определяют характер движения управляемого ими транспортного средства. Для создания используемой в подходе прецедентной базы авторы предлагают использовать программный стенд, имитирующий движение автомобиля, управляемого оператором, в транспортном потоке. Авторы работы упоминают, что более правильным инструментом для создания прецедентной базы являлось бы реальное транспортное средство, оборудованное датчиками, фиксирующими описания ситуаций и решения, принятые водителем в этих ситуациях. Однако применение таких датчиков может быть достаточно дорогим, особенно если необходимо собрать данные сразу с многих машин.
-
В моей работе изучается другой подход — восстановление данных по видеозаписи определенного участка трассы.
+
Исследуемый в настоящей работе подход позволяет получить требуемые данные без использования специальных средств.
-
== Постановка задачи ==
+
Обнаружение транспортных средств — важнейший этап видео-мониторинга автомобильных магистралей. Многие широко используемые подходы основаны на таких методах, как выделение фона, применение вероятностных методов и нейронные сети. В способах, использующих вычитание фона, считается разница между текущим и фоновым изображением как, например, в [2]. Все оставшиеся после вычитания пятна расцениваются как движущиеся транспортные средства и обрабатываются соответственно. Однако любые шумы могут также учитываться как транспортные средства, что ведет к ошибкам распознавания. Кроме того, результаты очень чувствительны к изменениям освещения, что не позволяет использовать алгоритм на длительном промежутке времени, либо заставляют пересчитывать фон.
-
Используя видеозапись участка дороги восстановить треки машин, проезжающих по этому участку. Под треком понимается соответствие временным точкам позиции машины в реальном пространстве.
+
-
Так как данные будут использоваться лишь в отдельно проводимых далее экспериментах, задача восстановления в режиме реального времени не ставится.
+
В [3] предложен подход к поиску и подсчету транспортных средств, основанный на использовании нейронных сетей. На первом этапе предложенного метода фоновое изображение восстанавливается из последовательности кадров. После этого к разнице текущего и фонового изображения применяется оператор Собеля для поиска границ движущихся транспортных средств. Затем изображение уменьшается (например, с помощью вейвлетов) и признаки нейронной сети извлекаются из него для подсчета количества транспортных средств. Этот подход, однако, не предоставляет возможности восстановления координат транспортных средств, равно как и сопровождения их на протяжении видеозаписи.
 +
 
 +
Алгоритм CAMShift [4] предоставляет возможность сопровождения объекта. Подход основан на том, что размер и положение отслеживаемого объекта итерационно определяется вероятностными методами, анализирующими гистограмму в области поиска. Недостатком метода является то, что определение начальной области поиска необходимо осуществлять вручную, а кроме того алгоритм не позволяет одновременное отслеживание сразу нескольких объектов на видеозаписи.
 +
 
 +
Этих недостатков лишен подход, описанный в [5]. Являясь развитием CAMShift данный способ предлагает автоматическую детекцию объектов с помощью двойного сравнения. Разностное изображение строится на основе пороговой бинаризации разницы соседних кадров, а затем к каждой паре соседних разностных изображений применяется функция логического умножения.
 +
 
 +
Таким образом, изучаемая в настоящей работе задача является актуальной, что подтверждается большим количеством связанных исследований.
 +
 
 +
= Постановка задачи =
 +
 
 +
Задачей настоящей работы является проведение экспериментов по восстановлению треков движущихся транспортных средств по уже имеющимся реальным видеозаписям. Дополнительная задача — объединение треков, полученных по записям двух противоположно направленных видеокамер с непересекающимися областями видимости.
 +
 
 +
Так как полученные треки будут использоваться лишь в экспериментах, проводимых далее отдельно, задача восстановления в режиме реального времени не ставится. Такое предположение не накладывает существенные ограничения на время работы предлагаемых методов.
 +
 
 +
Эксперименты по восстановлению проводятся с помощью видеозаписей, полученных в реальных и неидеальных условиях. Поэтому существуют сложности, значительно препятствующие восстановлению, например:
 +
 
 +
* Дрожание камеры
 +
* Плохая цветопередача, транспортные средства серого цвета могут сливаться с асфальтом
 +
* Дорожные знаки закрывают часть кадра
 +
* Транспортные средства могут частично перекрывать друг друга во время движения
 +
 
 +
С помощью проведенных экспериментов необходимо выбрать метод, позволяющий восстановить треки транспортных средств именно из имеющихся видеозаписей наилучшим способом. Критерием выбора является экспертная визуальная оценка.
== Описание исходных данных ==
== Описание исходных данных ==
-
Анализируемая видеозапись участка дороги. На данном этапе решения задачи, под видеозаписью понимается последовательность BMP-файлов, находящихся в одной директории. Это сделано дл того, чтобы избежать технических сложностей, связанных с обработкой видео-файлов, закодированных с помощью различных кодеков.
 
-
Кроме видеозаписи может использоваться дополнительная информация об участке дороги. Это может быть например, указанный участок кадра, в котором могут быть автомобили. Либо это может быть информация о перспективе, необходимая для перевода экранных координат в пространственные.
+
В качестве исходных данных используются 3 видеозаписи участка дороги. В двух из них видеокамеры находятся на мосту и направлены в противоположные стороны на дорогу, проходящую под мостом.
 +
 
 +
Кроме видеозаписи может использоваться дополнительная информация об участке дороги, необходимая для преобразования экранных координат в реальные.
== Требуемый результат ==
== Требуемый результат ==
-
Восстановленные треки машин, проехавших по участку дороги и попавших на видеозапись. Понятно, что если легковой автомобиль всю запись был загорожен большим грузовиком, то мы никак не сможем получить о нем информацию.
 
-
Кроме того, заранее предполагается некоторый небольшой процент ошибок, связанных с тем, что данная задача в традиционном смысле не разрешима в принципе.
+
Требуемым результатом являются восстановленные треки транспортных средств, проехавших по участку дороги и попавших на видеозапись. Под треком понимается соответствие временным точкам позиций транспортного средства в реальном пространстве.
 +
 
 +
Выходной файл должен содержать набор записей вида <tex>t_i,\; v_j,\; x_{i,j},\; y_{i,j}</tex>.
 +
 
 +
<tex>t_i</tex> - момент времени, соответствующий отдельному кадру.
 +
 
 +
<tex>v_j</tex> - уникальный идентификатор транспортного средства, не изменяющийся на протяжении всей видеозаписи.
 +
 
 +
<tex>x_{i,j},\; y_{i,j}</tex> - декартовы координаты транспортного средства в реальном пространстве.
 +
 
 +
= Решение =
 +
 
 +
== Подготовка видеозаписи ==
 +
 
 +
Выполняется преобразование тестовой видеозаписи в последовательность BMP-файлов, находящихся в одной директории. Это сделано для того, чтобы избежать технических сложностей, связанных с обработкой видео-файлов, закодированных с помощью различных кодеков.
 +
 
 +
Для преобразования ее в последовательность BMP-файлов используется программа [http://www.virtualdub.org/ VirtualDub] и плагин [http://fcchandler.home.comcast.net/~fcchandler/Plugins/MPEG2/ MPEG-2 / DVD].
 +
 
 +
== Выделение пятен, соответствующих движущимся транспортным средствам ==
 +
 
 +
=== Выделение пятен ===
 +
 
 +
Для того чтобы восстановить траекторию движения транспортного средства, необходимо иметь возможность обнаружения его на видеозаписи.
 +
 
 +
Будем понимать под ''пятном'' множество координат точек кадра, соответствующих транспортному средству. Если взять разность двух последовательных кадров, то значение точки разностного кадра будет тем больше, чем вероятнее то, что хотя бы на одном из кадров в этом месте находится движущееся транспортное средство.
 +
 
 +
Воспользуемся следующими предположениями. Примерная скорость автомобиля на трассе — 70 километров в час, это около 20 метров в секунду. В видеозаписи на 1 секунду приходится 25 кадров. Таким образом, за один кадр транспортное средство сдвигается на расстояние немногим меньше 1 метра. Длина автомобиля — 4,5 метра. В результате, объединение пятен, относящихся к одному транспортному средству на соседних кадрах, не будет существенно отличаться от каждого из этих пятен.
 +
 
 +
Итак, для выделения пятен можно использовать последовательное вычитание соседних кадров, несмотря на то, что данный метод подходит для выделения лишь пятен, соответствующих объектам, находящихся на не слишком большом расстоянии от видеокамеры. Кроме того, так как нам необходимо однозначно считать, относится ли пиксель к пятну или нет, нужно применять бинаризацию с некоторым порогом. Значение порога подбирается экспериментально.
 +
 
 +
<gallery>
 +
Изображение:0001.jpg|Первый кадр
 +
Изображение:0002.jpg|Второй кадр
 +
Изображение:2997trto7xes.png|Результат вычитания каров
 +
Изображение:qusqujosneas.png|Результат бинаризации
 +
</gallery>
 +
 
 +
=== Преобразование пятен ===
 +
 
 +
Кроме пятен, относящихся к движущимся транспортным средствам, на некоторых кадрах появляются шумовые пятна, возникающие из-за посторонних объектов, например качающихся деревьев, или дрожания камеры.
 +
 
 +
Полезным оказывается удаление слишком малых пятен - размером 1 пиксель. Стоить заметить, что в некоторых случаях и такие пятна могут соответствовать транспортным средствам - например если транспортное средство распалось на несколько пятен из-за помех. Однако даже в такой ситуации лучшим решением является удаление маленького пятна и обработка пятна, соответствующего другой части транспортного средства.
 +
 
 +
Очевидно, что пятно не должно иметь внутренних полостей, поэтому они закрашиваются.
 +
 
 +
Для улучшения результата мы можем связать близко примыкающие области с помощью морфологической обработки. Она состоит из последовательной дилатации (расширения черных областей), закраски внутренних областей и обратной дилатации (расширение белой области). Такая обработка позволяет в некоторой мере бороться с эффектом распадения транспортного средства на несколько пятен. С другой стороны, она в также способствует объединению пятен, относящимся к различным близко находящимся транспортным средствам, в одно общее пятно, поэтому нельзя выбирать ядро дилатации слишком большим.
 +
 
 +
 
 +
<gallery>
 +
Изображение:sifl1ni038ce.png|Результат удаления пятен размером 1 пиксель
 +
Изображение:squkerozevim.png|Результат морфологической обработки
 +
Изображение:wr5luv292ezo.png|Раскраска отдельных транспортных средств различными цветами
 +
</gallery>
 +
 
 +
=== Итоговая последовательность действий ===
 +
 
 +
В результате для поиска таких пятен предпринимается следующая последовательность действий:
 +
* Вычитание двух последовательных кадров
 +
* Бинаризация с некоторым порогом, подобранным вручную
 +
* Удаление слишком малых пятен
 +
* Удаление внутренних полостей в пятнах
 +
* Морфологическая обработка
 +
 
 +
== Связывание информации о пятнах между кадрами ==
 +
 
 +
В качестве исходных данных на данном этапе имеется последовательность кадров, на каждом из которых выделены множества ''пятен''. При этом отсутствует информация о том, как именно соотносятся пятна на различных кадрах между собой. Для восстановления этих данных предлагается подход, схожий с используемым в радиолокации. Последовательно обрабатывая кадры, одновременно будут выполняться два процесса - обнаружения новых транспортных средств и сопровождения уже найденных.
 +
 
 +
=== Модели транспортных средств ===
 +
 
 +
В некоторых случаях необходимо продолжать сопровождение транспортного средства, несмотря на то, что в данный момент его может быть не видно на кадре. Поэтому приходится оперировать не самими пятнами, а моделями транспортных средств. Рассмотрим это понятие. Под ''моделью транспортного средства'' будем понимать некую структуру, сопоставленную с транспортным средством и описывающую его расположение и размеры.
 +
 
 +
Возможные примеры моделей:
 +
* Множество экранных координат всех точек одного или нескольких пятен, соответствующих транспортному средству
 +
* Прямоугольная рамка, содержащая в себе пятно
 +
* Прямоугольная рамка, полностью содержащаяся в пятне
 +
* Некий промежуточный вариант прямоугольной рамки
 +
* Координаты центра масс пятна
 +
 
 +
В настоящей работе в качестве модели используется второй вариант - прямоугольная рамка, содержащая в себе пятно. При этом для описания модели достаточно четырех чисел, задающих границы в экранных координатах.
 +
 
 +
 
 +
<gallery>
 +
Изображение:Spot0042.png|Множество пятен
 +
Изображение:Rect0042.png|Множество моделей транспортных средств
 +
</gallery>
 +
 
 +
=== Процесс обнаружения ===
 +
 
 +
Рассматриваются все пятна, находящиеся на кадре и не попадающие ни в одну из областей рамок уже сопровождаемых моделей транспортных средств. Для каждого такого пятна создается своя модель, ее рамкой становится наименьшая, полностью содержащая пятно, прямоугольная рамка.
 +
 
 +
Введем дополнительный параметр для каждого экземпляра модели транспортного средства. Будем понимать под ''состоянием модели'' целое число, изначально равное 0. При обработке каждого кадра оно может увеличиться или уменьшиться. Не являясь непосредственным описанием расположения, этот параметр тем не менее влияет на процесс сопровождения модели.
 +
 
 +
=== Процесс сопровождения ===
 +
 
 +
Рассмотрим, что происходит на этапе сопровождения.
 +
 
 +
'''Предполагаемое перемещение модели.''' В качестве первого шага изначально предполагалось перемещение модели транспортного средства в ожидаемом направлении. В качестве этого направления использовался вектор перемещения модели на предыдущем шаге. Однако, как показали эксперименты, эта эвристика не является эффективной, и лишь мешает процессу сопровождения и поэтому от нее было решено отказаться.
 +
 
 +
'''Подтверждение модели.''' Предполагается, что в том месте, где располагается модель на новом кадре должно быть пятно (или несколько пятен, так как из-за препятствия транспортное средство может распасться на несколько пятен). Понятно, что пятно скорее всего не будет занимать весь прямоугольник, поэтому модель считается подтвержденной если он заполнен на 40%. В случае, если модель подтверждается, значение параметра состояния модели увеличивается на 1. Если же модель не подтверждена, значение уменьшается на 1. При этом может возникнуть ситуация, при которой это значение становится меньше 0 - в этом случае считается, что транспортное средство навсегда покинуло область видимости и больше не сопровождается.
 +
 
 +
'''Корректировка модели.''' На этом шаге производится обновление позиции и размеров модели в соответствии с пятном, которое имеет больше всего пикселей, попавших в область старой рамки. Отдельно обрабатывается ситуация, при которой процент заполнения рамки пятном после корректировки уменьшается более чем на 10%. Это может означать то, что транспортное средство заезжает за статичную помеху, например растянутый на дороге баннер или знак. В этом случае прямоугольник модели сохраняет размеры, но изменяет позицию в сторону движения транспортного средства.
 +
 
 +
== Преобразование координат ==
 +
 
 +
Во время всех операций, производимых до этого момента, происходило оперирование лишь экранными координатами. Однако требуемым результатом является файл, содержащий реальные координаты в плоскости дороги. Кроме того, для построения системы визуализации результирующего текстового файла понадобится возможность выполнения обратных преобразований - из реальных координат в экранные.
 +
 
 +
Необходимо отметить, что система координат существенно зависит от конфигурации дороги, представленной на видеозаписи. По этой причине и само преобразование координат осуществлялось с учетом особенностей дороги с тестовой видеозаписи. Таким образом, для обработки видеозаписи участка, значительно отличающегося от тестового, может понадобится разработка своего модуля преобразования координат. В любом случае, были приняты меры, позволяющие подключить его к программному комплексу без существенных сложностей.
 +
 
 +
Зафиксируем прямоугольную систему реальных координат на тестовой видеозаписи. Пусть ось абсцисс проходит у нижнего края кадра перпендикулярно дороге и ориентирована вправо. Ось ординат в свою очередь пусть совпадает с разделительным заграждением между направлениями дороги и ориентирована в сторону от камеры. В качестве единичного отрезка примем 1 метр.
 +
 
 +
 
 +
<gallery>
 +
Изображение:Grid.png|Система реальных координат
 +
</gallery>
 +
 
 +
 
 +
Рассмотрим метод преобразования координат из реальной системы в экранную. Исследовались различные методы - включая матричные преобразования афинных координат, тригонометрические преобразования на основе оптического устройства камеры и функциональные преобразования. В результат был выбран последний подход.
 +
 
 +
Метод основан на подборе коэффициентов функции <tex>f(x) = \frac{a}{x - b} + c</tex>. Для получения значений коэффициентов решается система из 3 уравнений, в каждом из которых зафиксированы <tex>x</tex> и <tex>f(x)</tex> в определенной точке кадра.
 +
 
 +
Введем следующие обозначения:
 +
 
 +
<tex>x_r,\; y_r</tex> - реальные координаты точки,
 +
 
 +
<tex>x_s,\; y_s</tex> - экранные координаты точки,
 +
 
 +
<tex>road_s</tex> - ширина дороги, вычисленная в экранных координатах, в месте расположения точки.
 +
 
 +
=== Преобразование реальных координат в экранные ===
 +
 
 +
Формулы преобразований имеют следующий вид:
 +
 
 +
<tex>
 +
y_s(y_r) = \frac{a_1}{y_r - b_1} + c_1,\\
 +
road_s(y_r) = \frac{a_2}{y_r - b_2} + c_2,\\
 +
x_s(x_r, road_s) = x_r * (road_s / roadWidth) + centerPositionX.
 +
</tex>
 +
 
 +
Используются следующие заданные для видеозаписи параметры:
 +
 
 +
<tex>roadWidth</tex> - ширина дороги в реальных координатах,
 +
 
 +
<tex>centerPositionX</tex> - линейный сдвиг в писелях, компенсирующий то, что экранные координаты считаются относительно левого края кадра, а реальные - относительно разделительной полосы.
 +
 
 +
=== Преобразование экранных координат в реальные ===
 +
 
 +
Формулы обратных преобразований из экранной системы координат, очевидно, имеют следующий вид:
 +
 
 +
<tex>
 +
y_r(y_s) = \frac{b_1y + (a_1 - c_1b_1)}{y_s - c_1},\\
 +
road_s(y_r) = \frac{a_2}{y_r - b_2} + c_2,\\
 +
x_r(x_s, road_s) = \frac{x_s - centerPositionX}{road_s / roadWidth}.
 +
</tex>
 +
 
 +
== Объединение треков, полученных по записям двух видеокамер ==
 +
 
 +
В качестве конфигурации тестового стенда использовались 2 видеокамеры, находящиеся на мосту на расстоянии 52 метров друг от друга и направленных в противоположные стороны на дорогу, проходящую под мостом. В соответствии с правилами дорожного движения транспортным средствам запрещено выполнять перестроение в другую полосу при движении под мостом. Пропавшее из поля зрения одной камеры транспортное средство появлялось в поле зрения другой в среднем через 3-6 секунд. Запись на обеих видеокамерах была начата в один момент времени.
 +
 
 +
 
 +
<gallery>
 +
Изображение:NewForeside-0000.png|Кадр первой видеокамеры
 +
Изображение:NewHindside-0000.png|Кадр второй видеокамеры
 +
</gallery>
 +
 
-
== Этапы решения задачи ==
+
Для объединения треков предлагается следующий подход. Загружаются 2 списков треков, и создается результирующий третий список, затем по очереди обрабатываются оба направления движения.
-
=== Подготовка видеозаписи ===
+
Вначале происходит обработка треков транспортных средств, находящихся на левой половине дороги первой видеокамеры, и, соответственно, правой половине второй. Треки транспортных средств, зафиксированных первой видеокамерой, переносятся в результирующий список. При этом для каждого из них производится попытка найти соответствующий трек в списке, полученном с помощью второй видеокамеры. Считается, что полоса движения не изменилась и транспортное средство должно появиться в кадре второй видеокамеры через 50-170 кадров. Если удается найти продолжение трека, оно также переносится в результирующий список, "склеиваясь" с первой частью, при этом путь под мостом интерполируется. При переносе трека из списка второй видеокамеры, его координаты корректно преобразуются.
-
Необходимо конвертировать видеозапись произвольного формата в последовательность кадров, сохраненных в формате Bitmap. Предполагается решение задачи вручную с использованием программы VirtualDub и соответствующих кодеков. В частности, для подготовки тестовой видеозаписи использовался кодек [http://fcchandler.home.comcast.net/~fcchandler/Plugins/MPEG2/ MPEG-2 / DVD] (by fcchandler).
+
-
=== Выделение перемещающихся пятен на кадрах ===
+
Аналогичным образом обрабатывается второе направление движение, а после этого все оставшиеся в исходных списках треки переносятся не "склеиваясь".
-
[[Изображение:0001.jpg|thumb|Первый кадр]]
+
-
[[Изображение:0002.jpg|thumb|Второй кадр]]
+
-
[[Изображение:0003.png|thumb|Результат выделения пятен]]
+
-
Для обработки траекторий машин нам необходимо обнаруживать их. Выделение множеств точек, соответствующих машинам на кадре базируется на гипотезе 1.
 
-
'''Гипотеза 1.''' Если взять разность двух последовательных кадров, то значение точки в кадре будет тем больше, чем выше вероятность того, что в этом месте находится машина (на обоих кадрах).
+
<gallery>
 +
Изображение:0021.png|Визуализация одного из временных моментов, одно из транспортных средств находится под мостом
 +
</gallery>
-
'''Обоснование гипотезы 1.''' Примерная скорость автомобиля на трассе - 70 километров в час, это около 20 метров в секунду. В видеозаписи на 1 секунду приходится 25 кадров. Таким образом, за один кадр машина сдвигается на расстояние чуть меньше метра. Длина машины - приблизительно 2-3 метра. В результате получается, что изменяется цвет пикселей, соответствующих объединению множеств, относящихся к позициям одной машины на соседних кадрах, и это объединение будет не сильно отличаться от множества, относящегося к машине на одном кадре.
+
= Результаты =
-
Итак, для выделения пятен, относящихся к движущимся машинам, можно использовать последовательное вычитание соседних кадров. Кроме того, так как нам необходимо однозначно считать, относится ли пиксель к пятну или нет, необходимо выполнять бинаризацию с некоторым порогом. Значение порога было подобрано опытным путем.
+
В ходе выполнения работы получены следующие результаты:
-
Кроме пятен, относящихся к движущимся машинам, на некоторых кадров появляются шумы, возникающие из-за посторонних объектов, например качающихся деревьев, или дрожания камеры. Для борьбы с этим выполняется удаление отдельно находящихся пикселей. Такое удаление возможно в соответствии с гипотезой 2.
+
* Разработан программный стенд, позволяющий осуществлять эксперименты по восстановлению треков.
 +
* Произведены эксперименты — как с одной, так и с двумя направленными в противоположные стороны видеокамерами.
 +
* Выбран метод восстановления треков движущихся транспортных средств по видеозаписи.
 +
* Треки движущихся транспортных средств восстановлены из имеющихся видеозаписей.
-
'''Гипотеза 2.''' Пятна, состоящие из 1 пикселя, соответствуют не движущимся машинам, а шумам.
+
= Список литературы =
-
'''Обоснование гипотезы 2.''' Машина может иметь размер в 1 пиксель в следующих случаях:
+
[1] Ивкин Н.П., Чехович Ю.В. (2011). Классификационный метод идентификации имитационных моделей транспортных потоков. Всероссийская конференция "Математические методы распознавания образов" (ММРО-15). Петрозаводск.
-
* Видна лишь малая часть машины потому, что остальная ее часть находится за кадром
+
-
* Видна лишь малая часть машины потому, что остальная ее часть загорожена неподвижным объектом (например, дорожным знаком)
+
-
* Машина находится очень далеко и имеет малый размер на кадре в соответствии с законами перспективы
+
-
В первом и втором случаях мы можем проигнорировать эту машину потому, что она проявится на других кадрах в нормальном размере. В третьем случае мы не обрабатываем машину по причине того, что на таком расстоянии все равно не удастся эффективно восстанавливать треки.
+
-
Мы предполагаем, что машина не имеет сквозных отверстий. Соответственно, пятна также не должны иметь внутренних полостей и мы закрашиваем их.
+
[2] Surendra Gupte, Osama Masoud, Robert F.K. Martin, Nikolaos P. Papanikolopoulos (2002). Detection and Classification of Vehicles.
-
Для улучшения результата мы можем связать близко примыкающие области с помощью морфологической обработки. Она состоит из последовательной дилатации (расширения черных областей), закраски внутренних областей и обратной дилатации (расширение белой области). Такая обработка позволяет бороться с тем эффектом, когда машина распадается на несколько пятен. С другой стороны, она в некоторой степени способствует объединению пятен, относящимся к разным близко находящимся машинам, в одно большое пятно.
+
[3] Saad M. Al-Garni, and Adel A. Abdennour (2006). Intelligent Video-Based Monitoring of Freeway. International Journal of Engineering and Applied Sciences .
-
В итоге для поиска таких пятен предпринимается следующая последовательность действий:
+
[4] John G. Allen, Richard Y. D. Xu, Jesse S. Jin (2003). Object Tracking Using CamShift Algorithm and Multiple Quantized Feature Spaces. Pan-Sydney Area Workshop on Visual Information Processing VIP2003. Sydney.
-
* Вычитание предыдущего кадра из текущего
+
-
* Бинаризация с некоторым порогом
+
-
* Удаление отдельно находящихся точек (не имеющих соседей)
+
-
* Дилатация с размером ядра 1
+
-
* Морфологическая обработка кадра
+
-
=== Связывание информации о пятнах между кадрами ===
+
[5] Jie Xia, Jian Wu, Haitao Zhai, and Zhiming Cui (2009). Moving Vehicle Tracking Based on Double. Proceedings of the 2009 International Symposium on Information Processing (ISIP’09), (стр. 29-32). Huangshan.
-
Находится на этапе решения.
+
-
== Текущие результаты ==
+
[6] Р. Гонсалес, Р. Вудс (2006). Цифровая обработка изображений. Техносфера.
-
Из предложенной видеозаписи выделяются машины с высокой степенью четкости.
+
-
== Ссылки на файлы ==
+
[7] Лукьяница А.А., Шишкин А.Г. (2009). Цифровая обработка видеоизображений. Ай-Эс-Эс-Пресс.
-
Файлы отправил на почту, так как здесь файлы не выкладываются.
+
-
== Ссылки на литературу ==
+
[8] Д. Форсайт, Ж. Понс (2004). Компьютерное зрение. Современный подход. Вильямс.
-
* Р. Гонсалес, Р. Вудс, «Цифровая обработка изображений» ([http://www.ozon.ru/context/detail/id/2423470/ на OZON.ru])
+
-
* Шани Растопман (?)
+

Текущая версия

На странице изложена примерная структура будущей статьи посвященной исследованию задачи детекции движения транспортных средств в видеоданных студентом Андреем Молчановым в рамках работы над дипломом


Содержание

Введение

В настоящей работе с помощью проводимых экспериментов подбирается подход к восстановлению треков движущихся транспортных средств из уже имеющихся реальных видеозаписей. Это подразумевает выделение транспортных средств на кадрах видеозаписи, сопоставление их на различных кадрах и дальнейшее преобразование координат транспортных средств в реальные пространственные.

Дополнительно исследуется метод объединения треков, восстановленных по видеозаписям, полученных с помощью двух противоположно направленных видеокамер с непересекающимися областями видимости. Такое объединение позволяет отслеживать перемещение транспортного средства, не ограничиваясь областью видимости одной видеокамеры.

При исследовании некоторых задач, связанных с анализом поведения автомобильного потока, возникает необходимость получения экспериментальных данных, описывающих траектории движения (треки) транспортных средств.

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

Исследуемый в настоящей работе подход позволяет получить требуемые данные без использования специальных средств.

Обнаружение транспортных средств — важнейший этап видео-мониторинга автомобильных магистралей. Многие широко используемые подходы основаны на таких методах, как выделение фона, применение вероятностных методов и нейронные сети. В способах, использующих вычитание фона, считается разница между текущим и фоновым изображением как, например, в [2]. Все оставшиеся после вычитания пятна расцениваются как движущиеся транспортные средства и обрабатываются соответственно. Однако любые шумы могут также учитываться как транспортные средства, что ведет к ошибкам распознавания. Кроме того, результаты очень чувствительны к изменениям освещения, что не позволяет использовать алгоритм на длительном промежутке времени, либо заставляют пересчитывать фон.

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

Алгоритм CAMShift [4] предоставляет возможность сопровождения объекта. Подход основан на том, что размер и положение отслеживаемого объекта итерационно определяется вероятностными методами, анализирующими гистограмму в области поиска. Недостатком метода является то, что определение начальной области поиска необходимо осуществлять вручную, а кроме того алгоритм не позволяет одновременное отслеживание сразу нескольких объектов на видеозаписи.

Этих недостатков лишен подход, описанный в [5]. Являясь развитием CAMShift данный способ предлагает автоматическую детекцию объектов с помощью двойного сравнения. Разностное изображение строится на основе пороговой бинаризации разницы соседних кадров, а затем к каждой паре соседних разностных изображений применяется функция логического умножения.

Таким образом, изучаемая в настоящей работе задача является актуальной, что подтверждается большим количеством связанных исследований.

Постановка задачи

Задачей настоящей работы является проведение экспериментов по восстановлению треков движущихся транспортных средств по уже имеющимся реальным видеозаписям. Дополнительная задача — объединение треков, полученных по записям двух противоположно направленных видеокамер с непересекающимися областями видимости.

Так как полученные треки будут использоваться лишь в экспериментах, проводимых далее отдельно, задача восстановления в режиме реального времени не ставится. Такое предположение не накладывает существенные ограничения на время работы предлагаемых методов.

Эксперименты по восстановлению проводятся с помощью видеозаписей, полученных в реальных и неидеальных условиях. Поэтому существуют сложности, значительно препятствующие восстановлению, например:

  • Дрожание камеры
  • Плохая цветопередача, транспортные средства серого цвета могут сливаться с асфальтом
  • Дорожные знаки закрывают часть кадра
  • Транспортные средства могут частично перекрывать друг друга во время движения

С помощью проведенных экспериментов необходимо выбрать метод, позволяющий восстановить треки транспортных средств именно из имеющихся видеозаписей наилучшим способом. Критерием выбора является экспертная визуальная оценка.

Описание исходных данных

В качестве исходных данных используются 3 видеозаписи участка дороги. В двух из них видеокамеры находятся на мосту и направлены в противоположные стороны на дорогу, проходящую под мостом.

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

Требуемый результат

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

Выходной файл должен содержать набор записей вида t_i,\; v_j,\; x_{i,j},\; y_{i,j}.

t_i - момент времени, соответствующий отдельному кадру.

v_j - уникальный идентификатор транспортного средства, не изменяющийся на протяжении всей видеозаписи.

x_{i,j},\; y_{i,j} - декартовы координаты транспортного средства в реальном пространстве.

Решение

Подготовка видеозаписи

Выполняется преобразование тестовой видеозаписи в последовательность BMP-файлов, находящихся в одной директории. Это сделано для того, чтобы избежать технических сложностей, связанных с обработкой видео-файлов, закодированных с помощью различных кодеков.

Для преобразования ее в последовательность BMP-файлов используется программа VirtualDub и плагин MPEG-2 / DVD.

Выделение пятен, соответствующих движущимся транспортным средствам

Выделение пятен

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

Будем понимать под пятном множество координат точек кадра, соответствующих транспортному средству. Если взять разность двух последовательных кадров, то значение точки разностного кадра будет тем больше, чем вероятнее то, что хотя бы на одном из кадров в этом месте находится движущееся транспортное средство.

Воспользуемся следующими предположениями. Примерная скорость автомобиля на трассе — 70 километров в час, это около 20 метров в секунду. В видеозаписи на 1 секунду приходится 25 кадров. Таким образом, за один кадр транспортное средство сдвигается на расстояние немногим меньше 1 метра. Длина автомобиля — 4,5 метра. В результате, объединение пятен, относящихся к одному транспортному средству на соседних кадрах, не будет существенно отличаться от каждого из этих пятен.

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

Преобразование пятен

Кроме пятен, относящихся к движущимся транспортным средствам, на некоторых кадрах появляются шумовые пятна, возникающие из-за посторонних объектов, например качающихся деревьев, или дрожания камеры.

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

Очевидно, что пятно не должно иметь внутренних полостей, поэтому они закрашиваются.

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


Итоговая последовательность действий

В результате для поиска таких пятен предпринимается следующая последовательность действий:

  • Вычитание двух последовательных кадров
  • Бинаризация с некоторым порогом, подобранным вручную
  • Удаление слишком малых пятен
  • Удаление внутренних полостей в пятнах
  • Морфологическая обработка

Связывание информации о пятнах между кадрами

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

Модели транспортных средств

В некоторых случаях необходимо продолжать сопровождение транспортного средства, несмотря на то, что в данный момент его может быть не видно на кадре. Поэтому приходится оперировать не самими пятнами, а моделями транспортных средств. Рассмотрим это понятие. Под моделью транспортного средства будем понимать некую структуру, сопоставленную с транспортным средством и описывающую его расположение и размеры.

Возможные примеры моделей:

  • Множество экранных координат всех точек одного или нескольких пятен, соответствующих транспортному средству
  • Прямоугольная рамка, содержащая в себе пятно
  • Прямоугольная рамка, полностью содержащаяся в пятне
  • Некий промежуточный вариант прямоугольной рамки
  • Координаты центра масс пятна

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


Процесс обнаружения

Рассматриваются все пятна, находящиеся на кадре и не попадающие ни в одну из областей рамок уже сопровождаемых моделей транспортных средств. Для каждого такого пятна создается своя модель, ее рамкой становится наименьшая, полностью содержащая пятно, прямоугольная рамка.

Введем дополнительный параметр для каждого экземпляра модели транспортного средства. Будем понимать под состоянием модели целое число, изначально равное 0. При обработке каждого кадра оно может увеличиться или уменьшиться. Не являясь непосредственным описанием расположения, этот параметр тем не менее влияет на процесс сопровождения модели.

Процесс сопровождения

Рассмотрим, что происходит на этапе сопровождения.

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

Подтверждение модели. Предполагается, что в том месте, где располагается модель на новом кадре должно быть пятно (или несколько пятен, так как из-за препятствия транспортное средство может распасться на несколько пятен). Понятно, что пятно скорее всего не будет занимать весь прямоугольник, поэтому модель считается подтвержденной если он заполнен на 40%. В случае, если модель подтверждается, значение параметра состояния модели увеличивается на 1. Если же модель не подтверждена, значение уменьшается на 1. При этом может возникнуть ситуация, при которой это значение становится меньше 0 - в этом случае считается, что транспортное средство навсегда покинуло область видимости и больше не сопровождается.

Корректировка модели. На этом шаге производится обновление позиции и размеров модели в соответствии с пятном, которое имеет больше всего пикселей, попавших в область старой рамки. Отдельно обрабатывается ситуация, при которой процент заполнения рамки пятном после корректировки уменьшается более чем на 10%. Это может означать то, что транспортное средство заезжает за статичную помеху, например растянутый на дороге баннер или знак. В этом случае прямоугольник модели сохраняет размеры, но изменяет позицию в сторону движения транспортного средства.

Преобразование координат

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

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

Зафиксируем прямоугольную систему реальных координат на тестовой видеозаписи. Пусть ось абсцисс проходит у нижнего края кадра перпендикулярно дороге и ориентирована вправо. Ось ординат в свою очередь пусть совпадает с разделительным заграждением между направлениями дороги и ориентирована в сторону от камеры. В качестве единичного отрезка примем 1 метр.



Рассмотрим метод преобразования координат из реальной системы в экранную. Исследовались различные методы - включая матричные преобразования афинных координат, тригонометрические преобразования на основе оптического устройства камеры и функциональные преобразования. В результат был выбран последний подход.

Метод основан на подборе коэффициентов функции f(x) = \frac{a}{x - b} + c. Для получения значений коэффициентов решается система из 3 уравнений, в каждом из которых зафиксированы x и f(x) в определенной точке кадра.

Введем следующие обозначения:

x_r,\; y_r - реальные координаты точки,

x_s,\; y_s - экранные координаты точки,

road_s - ширина дороги, вычисленная в экранных координатах, в месте расположения точки.

Преобразование реальных координат в экранные

Формулы преобразований имеют следующий вид:


y_s(y_r) = \frac{a_1}{y_r - b_1} + c_1,\\
road_s(y_r) = \frac{a_2}{y_r - b_2} + c_2,\\
x_s(x_r, road_s) = x_r * (road_s / roadWidth) + centerPositionX.

Используются следующие заданные для видеозаписи параметры:

roadWidth - ширина дороги в реальных координатах,

centerPositionX - линейный сдвиг в писелях, компенсирующий то, что экранные координаты считаются относительно левого края кадра, а реальные - относительно разделительной полосы.

Преобразование экранных координат в реальные

Формулы обратных преобразований из экранной системы координат, очевидно, имеют следующий вид:


y_r(y_s) = \frac{b_1y + (a_1 - c_1b_1)}{y_s - c_1},\\
road_s(y_r) = \frac{a_2}{y_r - b_2} + c_2,\\
x_r(x_s, road_s) = \frac{x_s - centerPositionX}{road_s / roadWidth}.

Объединение треков, полученных по записям двух видеокамер

В качестве конфигурации тестового стенда использовались 2 видеокамеры, находящиеся на мосту на расстоянии 52 метров друг от друга и направленных в противоположные стороны на дорогу, проходящую под мостом. В соответствии с правилами дорожного движения транспортным средствам запрещено выполнять перестроение в другую полосу при движении под мостом. Пропавшее из поля зрения одной камеры транспортное средство появлялось в поле зрения другой в среднем через 3-6 секунд. Запись на обеих видеокамерах была начата в один момент времени.



Для объединения треков предлагается следующий подход. Загружаются 2 списков треков, и создается результирующий третий список, затем по очереди обрабатываются оба направления движения.

Вначале происходит обработка треков транспортных средств, находящихся на левой половине дороги первой видеокамеры, и, соответственно, правой половине второй. Треки транспортных средств, зафиксированных первой видеокамерой, переносятся в результирующий список. При этом для каждого из них производится попытка найти соответствующий трек в списке, полученном с помощью второй видеокамеры. Считается, что полоса движения не изменилась и транспортное средство должно появиться в кадре второй видеокамеры через 50-170 кадров. Если удается найти продолжение трека, оно также переносится в результирующий список, "склеиваясь" с первой частью, при этом путь под мостом интерполируется. При переносе трека из списка второй видеокамеры, его координаты корректно преобразуются.

Аналогичным образом обрабатывается второе направление движение, а после этого все оставшиеся в исходных списках треки переносятся не "склеиваясь".


Результаты

В ходе выполнения работы получены следующие результаты:

  • Разработан программный стенд, позволяющий осуществлять эксперименты по восстановлению треков.
  • Произведены эксперименты — как с одной, так и с двумя направленными в противоположные стороны видеокамерами.
  • Выбран метод восстановления треков движущихся транспортных средств по видеозаписи.
  • Треки движущихся транспортных средств восстановлены из имеющихся видеозаписей.

Список литературы

[1] Ивкин Н.П., Чехович Ю.В. (2011). Классификационный метод идентификации имитационных моделей транспортных потоков. Всероссийская конференция "Математические методы распознавания образов" (ММРО-15). Петрозаводск.

[2] Surendra Gupte, Osama Masoud, Robert F.K. Martin, Nikolaos P. Papanikolopoulos (2002). Detection and Classification of Vehicles.

[3] Saad M. Al-Garni, and Adel A. Abdennour (2006). Intelligent Video-Based Monitoring of Freeway. International Journal of Engineering and Applied Sciences .

[4] John G. Allen, Richard Y. D. Xu, Jesse S. Jin (2003). Object Tracking Using CamShift Algorithm and Multiple Quantized Feature Spaces. Pan-Sydney Area Workshop on Visual Information Processing VIP2003. Sydney.

[5] Jie Xia, Jian Wu, Haitao Zhai, and Zhiming Cui (2009). Moving Vehicle Tracking Based on Double. Proceedings of the 2009 International Symposium on Information Processing (ISIP’09), (стр. 29-32). Huangshan.

[6] Р. Гонсалес, Р. Вудс (2006). Цифровая обработка изображений. Техносфера.

[7] Лукьяница А.А., Шишкин А.Г. (2009). Цифровая обработка видеоизображений. Ай-Эс-Эс-Пресс.

[8] Д. Форсайт, Ж. Понс (2004). Компьютерное зрение. Современный подход. Вильямс.

Личные инструменты