Компьютерное зрение и распознавание образов
Игрушки-роботы и автономные космические зонды, автоматические охранные системы с "фейc-контролем" и мониторингом несанкционированной активности, анализ документов и изображений, видеобазы данных, самообучающиеся компьютерные системы, управление компьютером с помощью жестов, интерфейсы прикладных программ. Это лишь некоторые примеры использования технологий "компьютерного зрения" - одного из самых перспективных исследовательских направлений, которое, наряду с распознаванием речи, обещает приблизить компьютер к тому, что принято называть "искусственным интеллектом".
Нужно сказать, что разработки в области "компьютерного зрения" ведутся давно, и некоторые направления продвинулись уже далеко (например, оптическое распознавание символов). Но область исследований настолько широка, что технологии компьютерного зрения и распознавания образов просто обречены на вечную доработку и совершенствование. Неудивительно, что в этом направлении самостоятельно работают многочисленные исследовательские центры по всему миру, а узкоспециализированные разработки применяются в продуктах различных компаний. Например, технологии распознавания образов в роботе Sony и зонде NASA созданы "с нуля" и закрыты для конкурентов.
Чтобы позволить общаться между собой разработчикам, которые занимаются схожими проблемами, проводятся различные конференции1 по компьютерному зрению, среди которых одной из крупнейших считается CVPR2 (IEEE Computer Society's Computer Vision and Pattern Recognition). В этом году CVRP 2001 проходила на Гавайях с 11 по 13 декабря, и на сайте можно посмотреть темы и тезисы огромного количества докладов по самым разным направлениям технологий компьютерного зрения.
Наверное, впервые в этой конференции приняли участие российские разработчики. В списке участников значатся Виктор Ерухимов, Вадим Писаревский и Гэри Брэдски из группы разработчиков открытой библиотеки OpenCV3 (Open Source Computer Vision Library), предназначенной для свободного распространения. Что интересно, основные работы по созданию этой библиотеки уже полтора года ведутся в Центре разработки программного обеспечения Intel, который находится в Нижнем Новгороде4. В группу разработки входят 11 россиян и 4 американца, в том числе руководитель проекта Гэри Брэдски5, автор 26 научных публикаций по компьютерному зрению.
13 декабря, когда в гостинице Kauai Marriott на Гавайях заканчивалась крупнейшая CVRP 2001, в московском Marriott Grand Hotel только начиналась пресс-конференция Intel с участием со-директора нижегородского Центра разработки Алексея Одинокого. Она была посвящена технологиям компьютерного зрения вообще и библиотеке OpenCV, в частности.
Нельзя сказать, что библиотека замечательна передовыми разработками в области компьютерного зрения, совсем нет. Большинство методов и алгоритмов обработки изображений хорошо известны6 и документированы. В том или ином виде системы компьютерного зрения создаются и прекрасно работают и без использования OpenCV. Но компаниям-разработчикам приходится тратить много времени на самостоятельную реализацию этих методов в своих программных продуктах, используя отдельные разрозненные компоненты. С выходом свободной библиотеки OpenCV появилась быстрая, эффективная и надежная реализация всех этих функций, претендующая на единый стандарт, а открытость исходного кода дает возможность вносить собственные изменения и быть уверенным в качестве программ.
OpenCV обеспечивает выполнение множества операций по интерпретации изображений, ее функции включены в состав библиотеки Intel Perfomance Primitives (IPP). OpenCV, однако, написана на языке высокого уровня и содержит алгоритмы для таких сложных операций, как калибровка камеры по эталону, устранение оптических искажений, определение сходства, анализ перемещения объекта, определение формы объекта и слежение за объектом, 3D-реконструкция, сегментация объекта, распознавание жестов и т.д.
Всего библиотека содержит более 500 функций обработки и анализа изображений и включает в себя исходные коды на языке С/С++ для всех содержащихся в ней функций и бесплатную лицензию, разрешающую дальнейшее распространение программ. Исходники и документацию можно свободно скачать из интернета7. Есть версии библиотеки для Windows и Linux.
Московская пресс-конференция Intel была приурочена к недавнему выходу новой версии библиотеки OpenCV 2.1, что было названо "событием мирового масштаба". В версии 2.1 появились две новые функции: интерфейс для MatLab и механизм для "стереоскопического зрения" с использованием двух USB-камер.
MatLab - один из самых распространенных пакетов для научных исследований и моделирования, и теперь стало возможным импортировать в MatLab функции библиотеки OpenCV.
О "стереоскопическом зрении" разговор особый. В каком-то смысле это уникальная функция, потому что позволяет с помощью дешевого оборудования (две USB-камеры) получить на компьютере стереоскопическое изображение, то есть совместить картинку с двух камер и получить третье изображение с заданными параметрами с учетом расстояния между камерой и различными частями объекта. Это называется эпиполярным совмещением изображений, то есть математическим смещением точки наблюдения, соответствующим параллельному расположению лучей зрения обеих камер. Кроме того, информация о "глубине" объектов позволяет создавать новые и значительно расширять возможности существующих приложений для таких задач, как распознавание жестов, слежение за объектами и распознавание лиц.
Конечно, системы для "стереоскопического зрения" существуют давно, но стереоскопические камеры стоят несколько тысяч долларов, а для двух видеокамер требуется их точная установка и прочное закрепление на строго определенном расстоянии друг от друга. OpenCV позволяет использовать самые простые камеры и располагать их на любом расстоянии. Главное, чтобы они были где-то рядом и смотрели примерно в одну сторону. После размещения камер проводят калибровку по специальной таблице ("шахматной доске"), параметры которой известны системе. Этой доской нужно поводить перед объективами камер, а система выделит ключевые точки и настроится самостоятельно. Калибровка устраняет оптические искажения объективов и определяет параметры стереосъемки (то есть расстояние между камерами), после чего камеры нельзя сдвигать ни на миллиметр, иначе придется потратить несколько секунд на новую калибровку. Изображение с двух камер совмещается методом временной интерполяции. Разработаны два типа алгоритмов совмещения: быстрый (20 кадров в секунду), который уже сегодня работает в реальном времени на Pentium 4, и медленный, но более точный (1-4 кадров в секунду). Второй алгоритм разработан для реального режима времени персональных компьютеров недалекого будущего.
Intel надеется, что OpenCV в будущем станет стандартом. Алексей Одиноков сообщил, что OpenCV на данный момент является самой широко используемой библиотекой компьютерного зрения, по крайней мере, ее скачали уже более 75 тыс. пользователей.
Анатолий АЛИЗАР
1 iris.usc.edu/Information/Iris-Conferences.html
3 www.intel.com/research/mrl/research/opencv
5 www.intel.com/research/mrl/people/bradski_g.htm
Горячие темы