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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Выделение пятен)
(Выделение пятен)
Строка 77: Строка 77:
Воспользуемся следующими предположениями. Примерная скорость автомобиля на трассе - 70 километров в час, это около 20 метров в секунду. В видеозаписи на 1 секунду приходится 25 кадров. Таким образом, за один кадр машина сдвигается на расстояние немногим меньше 1 метра. Длина машины - 4,5 метра. В результате, объединение пятен, относящихся к одному транспортному средству на соседних кадрах, не будет существенно отличаться от каждого из этих пятен.
Воспользуемся следующими предположениями. Примерная скорость автомобиля на трассе - 70 километров в час, это около 20 метров в секунду. В видеозаписи на 1 секунду приходится 25 кадров. Таким образом, за один кадр машина сдвигается на расстояние немногим меньше 1 метра. Длина машины - 4,5 метра. В результате, объединение пятен, относящихся к одному транспортному средству на соседних кадрах, не будет существенно отличаться от каждого из этих пятен.
-
Итак, для выделения пятен можно использовать последовательное вычитание соседних кадров. Несомненно, данный метод подходит для выделения лишь пятен, соответствующих объектам, находящихся на не слишком большом расстоянии от видеокамеры.
+
Итак, для выделения пятен можно использовать последовательное вычитание соседних кадров. Кроме того нам приходится однозначно считать, относится ли пиксель к пятну или нет. Необходимо применять бинаризацию с некоторым порогом, значение порога подбирается вручную. Несомненно, данный метод подходит для выделения лишь пятен, соответствующих объектам, находящихся на не слишком большом расстоянии от видеокамеры.
-
 
+
-
Кроме того нам приходится однозначно считать, относится ли пиксель к пятну или нет. Необходимо применять бинаризацию с некоторым порогом, значение порога подбирается вручную.
+
=== Преобразование пятен ===
=== Преобразование пятен ===

Версия 20:19, 22 апреля 2012

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


Что еще можно добавить в отчет:
- подробное описание того, как подбираются коэффициенты функции преобразования координат
- описание визуализации
- картинки в раздел с сопоставлением информации между кадрами
- примеры картинок с обратным преобразованием

Содержание

Введение

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

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

Актуальность задачи

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

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

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

Обзор литературы

Что делалось до меня

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

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

Могут существовать некоторые причины, значительно препятствующие восстановлению, например:

  • Легковой автомобиль может быть загорожен большим грузовиком или автобусом на протяжении всей записи.
  • Съемка может производиться в неидеальных условиях. Дрожание камеры и плохая цветопередача могут сильно усложнять задачу.
  • В вечернее время суток, машины серого цвета будут сливаться с асфальтом.

Поэтому заранее предполагается, что задачу не получится решить идеально точно.

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

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

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

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

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

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

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

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

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

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

Решение

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

При исследовании и разработке метода использовалась тестовая видеозапись в формате MPEG-2.

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

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

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

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

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

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

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

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

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

Гипотеза 2. Пятна, состоящие из 1 пикселя, соответствуют не движущимся машинам, а шумам.

Обоснование гипотезы 2. Машина может иметь размер в 1 пиксель в следующих случаях:

  • Видна лишь малая часть машины потому, что остальная ее часть находится за кадром
  • Видна лишь малая часть машины потому, что остальная ее часть загорожена неподвижным объектом (например, дорожным знаком)
  • Машина находится очень далеко и имеет малый размер на кадре в соответствии с законами перспективы

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

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

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

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

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

  • Вычитание предыдущего кадра из текущего
  • Бинаризация с некоторым порогом
  • Удаление отдельно находящихся точек (не имеющих соседей)
  • Дилатация с размером ядра 1
  • Морфологическая обработка кадра

Иллюстрации

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

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

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

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

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

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

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

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

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

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

Состояние модели - целое число, изначально равное 0. При обработке каждого кадра может увеличиться или уменьшиться.

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

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

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

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

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

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

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

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

Система реальных координат
Система реальных координат

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

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

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

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

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

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

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

Метод основан на подборе коэффициентов функции f(x) = \frac{a}{x - b} + c.

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


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,

где

a_1,\; b_1,\; c_1,\; a_2,\; b_2,\; c_2 - коэффициенты, значения которых подбираются, решая систему из 6 уравнений (y_r, y_s и road_s в системе выбираются вручную, в соответствии с системой координат),

RoadWidth = 24 - ширина дороги,

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

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

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


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}.

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

Результаты

Разработан программный комплекс, преобразующий набор BMP-файлов, представляющих собой кадры видеозаписи в текстовый файл, содержащий треки машин. При этом приблизительно 90% машин, находящихся в кадре опознаются корректно.

Выводы

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

  • Р. Гонсалес, Р. Вудс, «Цифровая обработка изображений» (на OZON.ru)
  • Шани Растопман (?)
Личные инструменты