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