Программный комплекс для распознавания и слежения за траекторией движения объектов

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

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

Целью данной работы является создание системы распознавания шаблонов в видеопотоке и отслеживание траектории их движения. Эта задача может быть применена в тестах «Открытое поле». Тесты «Открытое поле» позволяют оценить двигательную активность, исследователь-скую деятельность, эмоциональность и в какой-то степени тревожность. Данная методика позволяет дать четкую оценку изменениям спонтанного поведения крыс, а также косвенно судить об их эмоциональной реакции на новую незнакомую обстановку.

Существующие системы проведения тестов «Открытого поля» имеют небольшие размеры (порядка 1м2), что не позволяет достоверно утверждать о результатах теста в связи с тем, что реальная площадь обитания крысы больше чем 1м2. Разрабатываемая система позволит прово-дить тесты на площадях порядка 20-30 м2.

Для решения поставленной задачи была выбрана библиотека с открытым исходным кодом — OpenCV (Open Source Computer Vision Library). Библиотека написана на C и C++, работает под Linux, Windows и Mac OS X. Происходит активная разработка интерфейсов для Python, Ruby, MATLAB и других языков.

Общая схема разрабатываемой системы приведена на рис. 1. На вход системы подается видеопоток с видеокамеры или сохраненный заранее, файл с видео. Далее, внутри самой систе-мы, происходит обработка поступающего на вход системы видеопотока. На стадии обработки, система распознает шаблоны и записывает траекторию движения идентифицированных объек-тов. После обработки, полученная информация сохраняется на диск. По полученным данным составляется отчет, сколько объектов было идентифицировано и характеристики движения объ-екта. В дальнейшем, сохраненную информацию, можно будет наложить на видео, без обработки. Таким образом, не тратятся ресурсы вычислительной системы для обработки видеопотока.

Для того чтобы точно определять местоположение объекта в пространстве – необходимо откалибровать камеру. Калибровка камеры часто используется на начальном этапе решения многих задач компьютерного зрения. Кроме того, калибровка камеры помогает исправлять дис-торсию на фотографиях и видео[1]. Дисторсия — погрешность оптических систем, при которой линейное увеличение изменяется по полю зрения. При этом нарушается подобие между объек-том и его изображением. Появление дисторсии объясняется тем, что преломляющие поверхности неспособны собрать в точку сколько-нибудь широкие пучки лучей, падающие на них под боль-шими углами.

Общая схема разрабатываемого комплекса

Принцип калибровки камеры достаточно прост — наблюдаем несколько изображений шахматной доски, распознаем ее углы и пересечения клеточек. И, зная, как в действительности расположены углы шахматной доски и физические размеры клеток, численно подбираем необходимые параметры камеры. OpenCV имеет встроенные средства для калибровки приведенным выше способом [2]. На рис. 2 показ процесс калибровки камеры с использованием OpenCV. Калибровка камеры часто используется на начальном этапе решения многих задач компьютерного зрения и в особенности дополненной реальности. Кроме того, калибровка камеры помогает исправлять дисторсию на фотографиях и видео [3].

Калибровка

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

Теперь необходимо заставить программу распознать движение объектов. Распознавание движения происходит в несколько этапов. Для начала избавимся от шумов фильтром Гаусса. Он обычно используется в цифровом виде для обработки двумерных сигналов (изображений) с целью снижения уровня шума. Переводим изображение в оттенки серого. При восьмибитной глубине цвета значения пикселей будут изменяться от 0 до 255. Из сглаженного фильтром Гаусса кадра вычитаем предыдущий кадр. Таким образом, получается маска движения пикселей. Сравнивая с пороговым значением, получаем бинарное изображение, где 0 означает, что пиксель не движется, все остальное – движется.

Следующим этапом определяем движущиеся контуры и выделяем регионы движения. Получив регионы движения, сохраняем траекторию движения. Затем можно наложить эту траекторию на видео или показать отдельно. Результат работы комплекса на примере движущихся автомобилей показан на рис. 3. Справа на изображении исходный кадр с выделенными движущимися областями. Слева показаны только движущиеся области, обведенные белой рамкой. Видно, что на машине в левом нижнем углу в область движения крыша попала не полностью. Это связано с тем, что крыша автомобиля одного цвета и с учетом точности определения движущихся пикселей – они не были определены как движущиеся. 

результаты работы комплекса

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

Детектирование движения руки

Такая проблема, как распознавание крыши автомобиля может быть решена улучшением алгоритма. Метод распознавания Motion Segmentation состоит в том, что сначала в видеопотоке ищется необходимый объект, а затем только распознается движение этого объекта в целом.

Реализованный комплекс позволяет следить за траекторией движения объектов в видеопотоке. Увеличение площади в тестах «Открытое поле» позволит получать более точные результаты испытаний препаратов. Кроме того, система автоматизирует человеческий труд и уменьшает вероятность ошибки при анализе данных тестов.

Библиографический список

1. Антон Конушин. Геометрические свойства нескольких изображений. Компьютерная графика и мультимедиа. Выпуск №4(3)/2006. http://cgm.computergraphics.ru/content/view/141

2.Gary Bradski, Adrian Kaehler Learning OpenCV: Computer Vision with the OpenCV Library, ISBN 0596516134; 2008 г.

3. Антон Конушин Геометрические свойства нескольких изображений // Компьютерная графика и мультимедиа (сетевой журнал). — 2006. — № 4(3).

Остальные публикации представлены в списке публикаций.

Комментарии

comments powered by Disqus