Поиск и анализ движущихся объектов по серии изображений

Поиск и анализ движущихся объектов по серии изображений



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

Цели и задачи: анализ, разработка и реализация алгоритмов поиска и определения движения объекта, его свойств и характеристик.

Методы исследования: Теоретические методы исследований основывались на методах цифровой обработки изображений и распознавания образов. Экспериментальная часть исследования базировалась на обработке и анализе цифровых изображений с помощью ЭВМ с дальнейшей визуализаций результатов. Для программной реализации алгоритмов использовалась библиотека для обработки изображений Open Source Computer Vision Library.


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 – численное значение яркости):



Обратный оператор  преобразует гистограмму в изображение в оттенках серого.

Алгоритм поставленной задачи состоит из следующих этапов:

		Построение гистограмм искомого объекта  и исходного изображения 

	Формируем новую гистограмму, как нормированное произведение  и  :

	

	Используя обратное преобразование , получаем функцию, которая является искомым изображением в оттенках серого:



Метод был адаптирован и реализован функциями библиотеки OpenCV. Примеры его работы приведены на рис. 2.2.





Доска

Черная фишка

Белая фишка

Исходное изображение







Гистограмма изображения







Исходное изображение

По гистограмме доски

По гистограмме черная фишка

По гистограмме белая фишка

























Рис. 2.2

Пример работы алгоритма.


3. Результаты исследований



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

Все алгоритмы были реализованы функциями библиотеки OpenCV. И на их основе была написана программа для автоматического определения выставляемых  на доску фишек, описанная в [3]. 


Литература.



1. Open Source Computer Vision Library Reference Manual

2. О. С. Семерий. Метод максимальных площадей для выделения движущихся объектов по серии изображений