Участник:Amolchanov/Детекция движения
Материал из MachineLearning.
(→Связывание информации о пятнах между кадрами) |
|||
Строка 103: | Строка 103: | ||
=== Связывание информации о пятнах между кадрами === | === Связывание информации о пятнах между кадрами === | ||
- | Используется предположение о том, что машина не могла переместиться | + | Из постановки задачи следует необходимость восстановления треков машин. Для этого нужно сопоставить между собой множества точек, соответствующих машинам, на последовательных кадрах. |
+ | |||
+ | Используется предположение о том, что машина не могла переместиться на большое расстояние за один кадр. Поэтому для проверки гипотезы о том, что пятна на соседних кадрах принадлежат одной машине, мы сравниваем долю пересечения этих пятен. | ||
=== Преобразование экранных координат в реальные === | === Преобразование экранных координат в реальные === |
Версия 22:38, 26 февраля 2012
На странице изложена примерная структура будущей статьи посвященной исследованию задачи детекции движения транспортных средств в видеоданных студентом Андреем Молчановым в рамках работы над дипломом |
Содержание |
Дневник исследователя
Оформил покадровую обработку как отдельный класс, отвечающий за фильтрацию. Также добавил морфологию. После добавления, изображение, как и ожидалось слегка сгладилось, дырки пропали. В ближайших планах обнаружение объектов с помощью стропов. --amolchanov 23:54, 27 апреля 2010 (MSD)
Более подробно описал работу над проектом здесь. Сейчас думаю, какую структуру данных лучше выбрать для хранения информации о пятнах и треках. --amolchanov 16:36, 10 мая 2010 (MSD)
Немного обновил в соответствии с отчетом по преддипломной практике. --amolchanov 22:26, 26 декабря 2011 (MSK)
Предпосылки
При исследовании некоторых задач, связанных с анализом поведения автомобильного потока, возникает необходимость получения экспериментальных данных, описывающих траектории движения (треки) проезжающих машин.
Примером такой задачи может быть построение модели движения автомобилей по еще не построенной трассе с целью определения вероятности возникновения пробок. Для анализа такой модели необходимо будет наполнить ее объектами-машинами, которые будут передвигаться по определенным правилам. Для того, чтобы модель как можно больше соответствовала реальности, правила, по которым будут передвигаться машины, должны основываться на данных о передвижении машин, полученных с действующих дорог.
Существует несколько методов получения таких данных. Например, могут использоваться специальные устройства, устанавливаемые в сам автомобиль и снимающие данные с его систем управления.
В настоящей работе изучается другой подход — восстановление данных по видеозаписи определенного участка трассы.
Постановка задачи
Используя видеозапись участка дороги восстановить треки машин, проезжающих по этому участку.
Могут существовать некоторые причины, значительно препятствующие восстановлению, например:
- Легковой автомобиль может быть загорожен большим грузовиком или автобусом на протяжении всей записи.
- Съемка может производиться в неидеальных условиях. Дрожание камеры и плохая цветопередача могут сильно усложнять задачу.
- В вечернее время суток, машины серого цвета будут сливаться с асфальтом.
Поэтому заранее предполагается, что задачу не получится решить идеально точно.
Так как данные будут использоваться лишь в отдельно проводимых далее экспериментах, задача восстановления в режиме реального времени не ставится. Такое предположение позволяет в дальнейшем не ограничиваться методами, которые используют только однократный "проход" по видеозаписи, а также не накладываются существенные ограничения на время работы предлагаемых методов.
В настоящей работе должен быть представлен и реализован метод выделения движущихся транспортных средств.
Описание исходных данных
Анализируемая видеозапись участка дороги. На данном этапе решения задачи, под видеозаписью понимается последовательность BMP-файлов, находящихся в одной директории. Это сделано для того, чтобы избежать технических сложностей, связанных с обработкой видео-файлов, закодированных с помощью различных кодеков.
Кроме видеозаписи может использоваться дополнительная информация об участке дороги. Такой информацией может быть, например, ограничение на кадре участка, за пределами которого не может быть движения транспортных средств (обочина, тротуар, здания, лес и т.п.). Также может использоваться информация о реальных размерах объектов в кадре, необходимая для перевода экранных координат в пространственные.
Требуемый результат
Восстановленные треки машин, проехавших по участку дороги и попавших на видеозапись. Под треком понимается соответствие временным точкам позиции машины в реальном пространстве.
Выходной файл должен содержать набор записей вида .
- момент времени, соответствующий отдельному кадру.
- уникальный идентификатор машины, не изменяющийся на протяжении всей видеозаписи.
- декартовы координаты машины в реальном пространстве.
Этапы решения задачи
Подготовка видеозаписи
Необходимо конвертировать видеозапись произвольного формата в последовательность кадров, сохраненных в формате Bitmap. Предполагается решение задачи вручную с использованием программы VirtualDub и соответствующих плагинов. В частности, для подготовки тестовой видеозаписи использовался плагин MPEG-2 / DVD.
Выделение перемещающихся пятен на кадрах
Описание
Для обработки траекторий машин нам необходимо обнаруживать их. Выделение множеств точек, соответствующих машинам на кадре базируется на гипотезе 1.
Гипотеза 1. Если взять разность двух последовательных кадров, то значение точки в кадре будет тем больше, чем выше вероятность того, что в этом месте находится машина (на обоих кадрах).
Обоснование гипотезы 1. Примерная скорость автомобиля на трассе - 70 километров в час, это около 20 метров в секунду. В видеозаписи на 1 секунду приходится 25 кадров. Таким образом, за один кадр машина сдвигается на расстояние чуть меньше метра. Длина машины - приблизительно 2-3 метра. В результате получается, что изменяется цвет пикселей, соответствующих объединению множеств, относящихся к позициям одной машины на соседних кадрах, и это объединение будет не сильно отличаться от множества, относящегося к машине на одном кадре.
Итак, для выделения пятен, относящихся к движущимся машинам, можно использовать последовательное вычитание соседних кадров. Кроме того, так как нам необходимо однозначно считать, относится ли пиксель к пятну или нет, необходимо выполнять бинаризацию с некоторым порогом. Значение порога было подобрано опытным путем.
Кроме пятен, относящихся к движущимся машинам, на некоторых кадров появляются шумы, возникающие из-за посторонних объектов, например качающихся деревьев, или дрожания камеры. Для борьбы с этим выполняется удаление отдельно находящихся пикселей. Такое удаление возможно в соответствии с гипотезой 2.
Гипотеза 2. Пятна, состоящие из 1 пикселя, соответствуют не движущимся машинам, а шумам.
Обоснование гипотезы 2. Машина может иметь размер в 1 пиксель в следующих случаях:
- Видна лишь малая часть машины потому, что остальная ее часть находится за кадром
- Видна лишь малая часть машины потому, что остальная ее часть загорожена неподвижным объектом (например, дорожным знаком)
- Машина находится очень далеко и имеет малый размер на кадре в соответствии с законами перспективы
В первом и втором случаях мы можем проигнорировать эту машину потому, что она проявится на других кадрах в нормальном размере. В третьем случае мы не обрабатываем машину по причине того, что на таком расстоянии все равно не удастся эффективно восстанавливать треки.
Мы предполагаем, что машина не имеет сквозных отверстий. Соответственно, пятна также не должны иметь внутренних полостей и мы закрашиваем их.
Для улучшения результата мы можем связать близко примыкающие области с помощью морфологической обработки. Она состоит из последовательной дилатации (расширения черных областей), закраски внутренних областей и обратной дилатации (расширение белой области). Такая обработка позволяет бороться с тем эффектом, когда машина распадается на несколько пятен. С другой стороны, она в некоторой степени способствует объединению пятен, относящимся к разным близко находящимся машинам, в одно большое пятно.
В итоге для поиска таких пятен предпринимается следующая последовательность действий:
- Вычитание предыдущего кадра из текущего
- Бинаризация с некоторым порогом
- Удаление отдельно находящихся точек (не имеющих соседей)
- Дилатация с размером ядра 1
- Морфологическая обработка кадра
Иллюстрации
Связывание информации о пятнах между кадрами
Из постановки задачи следует необходимость восстановления треков машин. Для этого нужно сопоставить между собой множества точек, соответствующих машинам, на последовательных кадрах.
Используется предположение о том, что машина не могла переместиться на большое расстояние за один кадр. Поэтому для проверки гипотезы о том, что пятна на соседних кадрах принадлежат одной машине, мы сравниваем долю пересечения этих пятен.
Преобразование экранных координат в реальные
Исследовались различные методы преобразования координат на кадре. Как результат был выбран способ, основанный на подборе коэффициентов дробной функции.
Текущие результаты
Разработан программный комплекс, преобразующий набор BMP-файлов, представляющих собой кадры видеозаписи в текстовый файл, содержащий треки машин. При этом приблизительно 90% машин, находящихся в кадре опознаются корректно.
Ссылки на литературу
- Р. Гонсалес, Р. Вудс, «Цифровая обработка изображений» (на OZON.ru)
- Шани Растопман (?)