Поиск и анализ движущихся объектов по серии изображений
Поиск и анализ движущихся объектов по серии изображений
В задачах компьютерного зрения возникает проблема определения и анализа движущихся объектов по последовательности изображений, полученных с малыми интервалами времени. Для распознавания подобных объектов на достаточно сложном, но неподвижном фоне необходимо определить области, в которых предположительно происходит движение. В результате исследований найденных областей, их можно изменить до размеров объектов (т.е. найти сами объекты) и определить параметры их движения. При этом количество и размеры объектов на изображениях могут изменяться в широких пределах.
Цели и задачи: анализ, разработка и реализация алгоритмов поиска и определения движения объекта, его свойств и характеристик.
Методы исследования: Теоретические методы исследований основывались на методах цифровой обработки изображений и распознавания образов. Экспериментальная часть исследования базировалась на обработке и анализе цифровых изображений с помощью ЭВМ с дальнейшей визуализаций результатов. Для программной реализации алгоритмов использовалась библиотека для обработки изображений 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. О. С. Семерий. Метод максимальных площадей для выделения движущихся объектов по серии изображений