Поиск и анализ движущихся объектов по серии изображений
В задачах компьютерного зрения возникает проблема определения и анализа движущихся объектов по последовательности изображений, полученных с малыми интервалами времени. Для распознавания подобных объектов на достаточно сложном, но неподвижном фоне необходимо определить области, в которых предположительно происходит движение. В результате исследований найденных областей, их можно изменить до размеров объектов (т.е. найти сами объекты) и определить параметры их движения. При этом количество и размеры объектов на изображениях могут изменяться в широких пределах.
Цели и задачи: анализ, разработка и реализация алгоритмов поиска и определения движения объекта, его свойств и характеристик.
Методы исследования: Теоретические методы исследований основывались на методах цифровой обработки изображений и распознавания образов. Экспериментальная часть исследования базировалась на обработке и анализе цифровых изображений с помощью ЭВМ с дальнейшей визуализаций результатов. Для программной реализации алгоритмов использовалась библиотека для обработки изображений Open Source Computer Vision Library.
1.Алгоритмы поиска областей движения
1.1 Сравнение двух последующих изображений
Определим
кадр изображения, взятый в момент времени как множество
точек
, а кадр изображения,
взятый в момент времени
как множество
. Пусть
- функция яркости точки изображений, определённая на множествах
и
. Один из
наиболее простых подходов для определения областей движения между двумя кадрами
изображения
и
основывается
на сравнении соответствующих точек этих двух кадров. Для этого применяется
процедура формирования так называемой разности кадров. Разностью между двумя
кадрами изображения, взятыми в моменты времени
и
является следующее множество:
(1.1)
где - значение порогового уровня, выбираемое таким образом, чтобы
отделить точки, в которых кадры изображения значительно отличаются друг от
друга, (обусловленные движением распознаваемых объектов) от точек, в которых за
время
произошли незначительные шумовые перепады яркости. Изображение
содержит предположительные
области движения объектов и аддитивный шум, искажающий текущий кадр. Избавится
от шума позволяют морфологические операции (операции над бинарным изображением),
такие как эрозия, коррозия, а так же различные способы фильтрации и оптимальное
(экспериментально подбираемое) значение порога
.
Алгоритм был реализован с помощью библиотеки для обработки изображений OpenСV. Пример его работы представлен на рис 1.1.
Изображение |
Изображение |
Разностное изображение |
Бинаризированое изображение
|
Отфильтрованное
изображение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 1.1
Пример
работы алгоритма.
1.2. Использование оптического потока.
Для
определения движущихся точек и характера их движения можно воспользоваться
оптическим потоком серии изображений [1]. Оптический поток определяется как
видимое движение яркости изображения. Пусть яркость изображения, которое
изменяется во времени, т.е. мы имеем последовательность изображений. Сделаем
два важных предположения.
1. Яркость
изображение зависит
от координат
.
2. Яркость каждой точки движущегося или статического объекта не меняются во времени.
Пусть
некоторый объект на изображении или некоторая точка, движется во времени , тогда
перемещение объекта или точки может быть записано как
. Используя разложение в ряд
Тейлора для функции яркости
, получим следующее выражение:
где «» - производные
более высокого порядка малости.
Затем, в соответствии с выше сказанными предположениями, запишем, что
,
и .
Деление
на и введение
следующей замены
дают уравнение
(2.1),
обычно
называемое как уравнение оптического потока, где и
являются компонентами области
оптического потока в координатах
соответственно. Так как уравнение
(2.1) имеет больше чем одно решение, то требуется большее количество уравнений.
Используя уравнение оптического потока для областей связанных пикселей, и
предполагая, что они имеют одинаковую скорость движения, задачу нахождения
оптического потока можно свести к решению системы линейных уравнений. Её
решение даст нам скорость передвижения связанной области пикселей.
Отметим, что найденные области на практике, как правило, не точно охватывают движущиеся объекты, что связано с погрешностью фильтрования и выбором порога бинаризации. Чтобы более точно определить области движения объектов и предположить, что эти области охватывают только искомые объекты, используются следующие алгоритмы.
2. Алгоритмы обработки найденных областей движения
2.1 Метод коррекции областей движения
Метод приводит найденные области движения к форме, более удобной для дальнейшей обработки. Он связывает отдельные элементы областей, получившихся на разностном изображении.
Пусть
необходимо выделить области правильной формы, являющиеся достаточно крупными
областями движения. Задачу можно формализовать следующим образом: необходимо
разбить множество точек на максимально возможное число подмножеств
так, чтобы они не пересекались.
Предложим следующий алгоритм решения формализованной задачи:
1. На
множестве конструируем
подмножества, содержащие связанные точки
, выбранные как лежащие рядом друг
с другом, в соответствии со следующим критерием
.
2.
Конструируем подмножества более высокого уровня, являющиеся областями
правильной формы , охватывающими подмножества более
низкого уровня.
3. Повторяем пункт 2 до тех пор, пока не получим конечное количество подмножеств наивысшего уровня.
Метод был адаптирован и реализован функциями библиотеки OpenCV. Примеры его работы приведены на рис. 2.1.
|
Области правильной формы | |
Круг | Прямоугольник | |
|
|
|
|
|
|
|
|
|
Рис. 2.1
Пример работы алгоритма для разных областей правильной формы.
2.2. Нахождение объекта по цветовому диапазону
Метод использует гистограмму изображения исходного объекта для нахождения объекта с такими же цветовыми характеристиками на серии изображений.
Пусть необходимо построить изображение в оттенках серого цвета, содержащее необходимые нам объекты.
Введём
следующие определения. Для простоты описание решения формализованной задачи,
ввёдём оператор, который преобразует функцию яркости изображения в функцию
количественного распределения пикселей с определенным значением яркости (гистограмму)
(где k – численное значение яркости):
Обратный
оператор преобразует
гистограмму в изображение в оттенках серого.
Алгоритм поставленной задачи состоит из следующих этапов:
1.
Построение
гистограмм искомого объекта и исходного изображения
2.
Формируем новую
гистограмму, как нормированное произведение и
:
3.
Используя
обратное преобразование , получаем функцию, которая
является искомым изображением в оттенках серого:
Метод был адаптирован и реализован функциями библиотеки OpenCV. Примеры его работы приведены на рис. 2.2.
Доска | Черная фишка | Белая фишка | |
Исходное изображение |
|
|
|
Гистограмма изображения |
|
|
|
Исходное изображение | По гистограмме доски | По гистограмме черная фишка | По гистограмме белая фишка |
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 2.2
Пример работы алгоритма.
3. Результаты исследований
В результате проведённых исследований были сделан вывод, что большую часть областей, получившихся в результате применения вышеописанных алгоритмов, занимают искомые объекты, и мы можем по этим областям оценить сами объекты.
Все алгоритмы были реализованы функциями библиотеки OpenCV. И на их основе была написана программа для автоматического определения выставляемых на доску фишек, описанная в [3].
Литература.
1. Open Source Computer Vision Library Reference Manual
2. О. С. Семерий. Метод максимальных площадей для выделения движущихся объектов по серии изображений