РАБОТА С ПАКЕТОМ ПРОГРАММ OPEN COMPUTER VISION
М.С. Ларин
Научный руководитель - д.т.н., профессор В.М. Мусалимов
Статья посвящена описанию возможностей и сфер применений библиотеки компьютерного зрения [1]. Успехи в этой области связаны с появлением все более мощных компьютеров, когда появилась возможность обрабатывать информацию больших размеров. Здесь используются специализированные программы по обработке (2D и 3D) изображений [2-8].
Представление изображения
Редакторы изображений (обработчики графической информации) существуют давно - где в основном было необходимо присутствие человека для оценки изображения и внесения каких-то соответствующих цели действий (корректировок).
Графическая информация (изображение) довольно громоздка или даже избыточна по сравнению, к примеру с координатами объектов или текстом (команды). Но координаты или команды нужно откуда-то брать, в отличие от изображения, которое может существовать и без человека, так как для ввода команд или координат нужен человек. Именно из изображения посредством программной обработки можно получить необходимую информацию - текст или координаты - не прибегая к вмешательству человека. Подобное извлечение информации присуще живым организмам с некоторым интеллектом, достаточным для реакции на изменение окружения. С появлением подобной реакции (хоть и по заданной программе) у компьютерных систем будет появляться эмуляция интеллекта, что значительно упростит взаимодействие человека с системой или системы с окружением. Поэтому избыточная графическая информация, поступающая на обработку, необходима в данном случае.
Распознавание
Изображения обычно представляются в виде массива пикселей, где каждый пиксель состоит из трех (или более) скалярных значений - красный, зеленый, синий, альфа - RGBA. При различном варианте смешивания их можно получить довольно большой диапазон цветов. Но конечная информация, извлеченная из изображения, может довольно сильно отличаться. Например, при распознавании объектов по силуэту можно определить зоны перепадов цвета и записать как 1 (true), а сплошь залитые цветом зоны записать как 0 (false). Так получится массив единиц и нулей, которые можно сравнивать с заранее известными силуэтами и, соответственно, с некоторой погрешностью определить, что за объект на изображении. Но только силуэтов может быть недостаточно для определения объекта, так как с разных сторон объект может иметь разные силуэты. Поэтому в базе силуэтов лучше иметь объемные силуэты или модели объектов, что увеличит распознаваемость, но усложнит алгоритм распознавания. Модели также можно получать из изображения. Абстрактно системе можно, как ребенку, показать картинку с объектом и сказать, каким термином он называется и какие свойства имеет. Для построения модели необходима информация об удаленности каждого фрагмента. На плоских изображениях теряется эта информация, но появляются искажения.
Перенос в виртуальное пространство
В [2] упомянута компенсация отсутствия третьей координаты (глубины), ведь при выводе трехмерного виртуального пространства на монитор ощущение объемности пространства все равно терялось. Был предложен метод, основанный на особенностях человеческого восприятия (зрения) - анаглиф [9]. За основу взято цветовое перекрыва-
ние изображений для правого и левого глаза с помощью специальных очков, где одно стекло имеет красный светофильтр, а второе - синий, и изображения для разных глаз полностью окрашены в красный и синий света. Изображения должны быть сняты так, как если бы они были видны с позиции правого и левого глаза. Но тут появляется недостаток - теряется обычная цветопередача и довольно сложно сказать, какого цвета объект. В чем-то схожий алгоритм применяется и для реконструкции объекта по изображениям, но, естественно, лишенный недостатка цветопередачи.
Потерянную информацию можно восстановить, имея несколько снимков одного объекта с разных сторон (обычно с двух сторон с небольшой угловой разницей и расстоянием между точками наблюдения); такое восстановление называется стереорекон-струкцией. К примеру, Photosynch, разрабатываемый корпорацией Microsoft Live Labs, использует схожую технологию сопоставления фотографий с координатами в пространстве, что дает возможность по фотографиям виртуально осмотреть достопримечательности и получить представление о пространстве вокруг. Зная координаты на обоих изображениях одной и той же точки, можно восстановить третью координату; здесь главная проблема - найти соответствующие точки. Обычно в качестве таких точек берутся ярко выраженные углы, вершины граней, перепады цвета.
Описание библиотеки
Для подобных целей была разработана специальная библиотека, названная OpenCV[1] - сокращение от Open Source Computer Vision Library. Она является библиотекой алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения. Библиотека написана на языке С++ и компилируется под MSVC 6. Библиотека OpenCV состоит, главным образом, из нацеленных на обработку компьютерного зрения в реальном времени алгоритмов: идентификация объектов, сегментация и распознавание, распознавание человеческих лиц, интеллектуальное распознавание, отслеживание движения, получение структур из движения. Перечислим основные части библиотеки.
• Функции работы с изображением: создание, выделение, удаление изображений, быстрый доступ к пикселям через макросы.
• Структуры данных: статические и динамические типы структур.
• Обработка контуров: нахождение, вывод на экран, манипуляция и упрощение контуров изображений.
• Геометрия: линии и вписывание в эллипс, выпуклые контуры, анализ контуров.
• Особенности: первые и вторые производные изображения; линии, углы нахождения, отслеживание.
• Статистика изображений: в интересующем регионе - количество, минимум, максимум, нормировка, моменты.
• Пирамиды изображений: степени 2, цветовая/текстурная сегментация.
• Разность заднего плана: накапливает изображения. Подсчет средних чисел.
• Дистанционная трансформация.
• Пороговая обработка: бинарный, обратный, нулевой, нулевой обратный.
• Калибровка камеры: внутренняя и внешняя, избавление от искажений, калибровка по шахматной доске.
• Движение: накладывающиеся силуэты, история движения изображения, градиент и весовое глобальное движение.
• Активные контуры: змейки.
• Оптический поток: HS, L-K, B-M и L-K в пирамиде.
• Обработка изображения: фильтр Kalman.
• Построение 3d модели по оценке 2d изображения.
• Гистограммы (распознавание): манипуляции, сравнение, обратная проекция, EMD.
• Интеллектуальное распознавание (основанное на стерео изображениях): определение руки, маска, гистограммы изображений, охватывающий квадрат.
• Матрицы: работа с матрицами, SVD, инвертирование, векторное произведение, перспективная проекция.
• Отображение примитивов: линии, прямоугольники, круги, эллипс, полигон, текст на изображениях.
• Системные функции: загрузка оптимизированного кода, информация о процессоре.
• Утилиты: разность модулей, соответствие, конвертация масштаба, би-линейная интерполяция, тригонометрические функции.
Особенности библиотеки OpenCV
Доступность библиотеки привлекает большее число разработчиков - доступность не только в финансовом плане, но и в плане открытости исходного кода, что позволяет изменять код непосредственно под свои запросы. Открытость исходного кода также способствует его улучшению и оптимизации. Разрабатываемая при поддержке компании Intel библиотека компьютерного зрения имеет выигрыш в производительности, используя специально оптимизированный код для процессоров Intel. Для получения большей производительности можно подключить библиотеку Intel Performance Library - IPP, что повысит быстродействие в пять раз.
Библиотека OpenCV состоит из следующих модулей. Ядро cxcore
• Базовые операции над многомерными числовыми массивами.
• Матричная алгебра, математические функции, генераторы случайных чисел.
• DFT, DCT.
• Запись/восстановление структур данных в/из XML/YAML.
• Базовые функции 2D графики.
• Поддержка более сложных структур данных: разреженные массивы, динамически растущие последовательности, графы.
CV- Модуль обработки изображений и компьютерного зрения
• Базовые операции над изображениями (фильтрация, геометрические преобразования, преобразование цветовых пространств и т. д.).
• Анализ изображений (выбор отличительных признаков, морфология, поиск контуров, гистограммы).
• Структурный анализ, описание форм.
• Анализ движения, слежение за объектами.
• Обнаружение объектов, в частности, лиц.
• Калибровка камер, элементы восстановления пространственной структуры. Highgui - Модуль для ввода/вывода изображений и видео, создания пользовательского интерфейса
• Захват видео с камер и из видеофайлов, чтение/запись статических изображений.
• Функции для организации простого UI (сейчас все демо приложения используют HighGUI)
Cvaux - Экспериментальные и устаревшие функции
• Пространственное зрение: настройка параметров камеры на основе калибров.
• Поиск стерео-соответствия, клики в графах.
• Нахождение и описание черт лица.
• Сравнение форм, построение структур.
• Скрытые марковские цепи.
• Описание текстур.
CvCam - захват видео
• Позволяет осуществлять захват видео (только в Windows), имеет несколько недоделок, поддержка прекращена.
С учетом роста вычислительной производительности видеокарт по сравнению с процессорами была разработана библиотекаОриСУ, основанная на коде OpenCV, где для обработки изображений на ОРИ(видиокартах), т.е. непосредственно в памяти видеокарты, и расчёты производятся уже на процессоре видиокарты. Эта библиотека -неплохая замена библиотеки OpenCV от Intel, так как развитие процессоров для видеокарт происходит стремительнее, чем развитие главных процессоров CPU. GpuCV предлагает полную заменяемость и поддержку команд OpenCV, используя видеокарту.
Тестирование библиотеки
При тестировании систем компьютерного зрения основной задачей являлось пересечение пустыни Мохаве беспилотными машинами, оборудованными разными системами ориентирования. Один из внедорожников был оснащен технологией стереоскопического зрения (библиотека OpenCV) при участии сотрудников научно-исследовательских центров Intel в Сарове и Нижнем Новгороде. Развитие подобных беспилотных автомобилей оказалось довольно прогрессивным. Если в первом Grand Challenge к финишу не приехал ни один из автомобилей, то год спустя к финишу пришли 8, три из которых спонсировались корпорацией Intel. Важно заметить, что эти три внедорожника проехали по всем контрольным точкам, не допустив ни одной ошибки.
Следующую гонку, организованную Управлением перспективного планирования оборонных научно-исследовательских работ США (Defense Advanced Research Projects Agency, DARPA), проводили уже не в пустыне, а в городе, который был воссоздан на заброшенной базе ВВС США George A.F.B. Гонку назвали Urban Challenge Race. В гонке также участвовал автомобиль от Intel, оборудованный шестью камерами OPS. Мозгом автомобиля являлись два компьютера, каждый из которых оснащен четырехядер-ным процессором Intel® Core™ 2 Quad Q6600 с тактовой частотой 2,4 GHz и платой Intel® D975XBX2 с 2 OB оперативной памяти. Один компьютер обрабатывал информацию, а второй контролировал системы управления. Передача данных от датчиков для обработки на компьютерах осуществлялась с помощью технологии Gigabit Ethernet. Для хранения данных использовались устройства флэш-памяти, а блок питания только аккумулятор автомобиля.
Заключение
В определенной степени система позволяет повысить безопасность не только движения на дорогах города, но и во многих других сферах, требующих интеллектуальной оценки. Здесь за аварийными ситуациями будет следить компьютерная система, предупреждающая от непоправимых ошибок.
Литература
1. Компьютерное зрение / под ред. С.М. Соколова - М.: Бином, 2006.
2. Ларин М.С. Среда виртуального пространства // Сборник докладов 8 сессии международной школы. Фундаментальные и прикладные проблемы надёжности и диагно-
стики машин и механизмов, ФГУП НТЦ "ИНФОРМРЕГИСТР", РС №11991 от 20 ноября 2007г. (№ гос. рег. 0320702575), СПбГУ ИТМО 2007, С 146-149.
3. http://www.kv.by/index2001513402.htm
4. https://picoforge.int-evry.fr/cgi-bin/twiki/view/Gpucv/Web
5. http://labs.live.com/photosynth/default.html
6. http://www.intel.com/technology/computing/opencv/index.htm
7. http://www.atlant.ru/comar/stati 16403.htm
8. http://www.toms-hardware.ru/technews/20071126 150303.html