Стереоскопическое компьютерное «зрение»

Сергей Пахомов

Само понятие компьютерного «зрения» известно уже давно. Со времен зарождения компьютерных технологий люди мечтали научить компьютер «видеть». Естественно, что прежде всего эти мечты нашли свое воплощение в фантастических фильмах, где разумные роботы заменяли человека. Достаточно вспомнить фильм «Робокоп» — чем не пример реализации компьютерного зрения! Но то, что еще вчера было фантастикой, сегодня может стать реальностью.

Что же понимается под компьютерным стереоскопическим зрением? Для того чтобы ответить на этот вопрос, следует обратиться к зрению человека. Отличительной особенностью человеческого зрения является то, что, получая посредством зрения информацию об окружающем пространстве, человек способен анализировать ее и на основе этого анализа принимать дальнейшее решение. Таким образом, под зрением понимается две составляющие — отображение информации и ее дальнейший анализ. Приблизительно так же устроено и компьютерное зрение: научить компьютер не только адекватно, в режиме реального времени, воспроизводить и запоминать (то есть фотографировать) информацию об окружающем пространстве, но и анализировать полученную информацию. Между человеческим и компьютерным зрением много общего. Человек способен видеть окружающий мир посредством глаз и анализировать полученную информацию, используя свой мозг. Компьютер воспринимает, то есть видит, окружающий мир посредством электронных сенсоров, а проще говоря, посредством цифровых видеокамер, а анализ полученной информации возможен с помощью современных высокопроизводительных процессоров.

Технология производства цифровых видеокамер, выступающих в роли глаз, разработана достаточно давно, а вот со второй составляющей компьютерного зрения, то есть с полноценным анализом полученной информации, до сих пор существуют серьезные проблемы. Попытки анализа получаемой информации предпринимались уже давно — это прежде всего теория распознавания образов. Однако действительно революционный прорыв в этом направлении стал возможен после появления стереоскопического компьютерного зрения. Точно так же как человек получает информацию об окружающем пространстве посредством двух глаз, стереоскопическое компьютерное зрение реализуется с использованием двух видеокамер, которые позволяют компьютеру получать информацию не только о цвете и яркости объекта (это возможно и с использованием одной камеры), но и о расстоянии до объекта. Таким образом, воспринимаемая информация становится действительно трехмерной, и третьей координатой является удаленность до предмета.

Чтобы оценить, насколько более полной является трехмерная информация, приведем аналогию с разницей между обычной цветной фотографией и голограммой. Обычная фотография хранит информацию о цвете объекта и яркости его освещения. Говоря на языке физики, цветная фотография способна запечатлеть информацию о частоте (цвет) и амплитуде (яркость) электромагнитного излучения, отраженного от объекта съемки. Однако световая волна имеет и третью характеристику — фазу, и именно она дает представление об объемности объекта. Голограмма, в отличие от фотографии, хранит информацию и о фазе волны, что выражается в реалистичном трехмерном изображении.

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

Итак, после того, как принцип получения максимально полной информации об объекте в общих чертах стал понятен, осталось реализовать программный алгоритм анализа воспринимаемой информации. И эту проблему удалось решить программистам корпорации Intel.

11 декабря 2001 года исследователи корпорации Intel объявили о выпуске исходных кодов программ для реализации стереоскопического компьютерного зрения, вошедших в библиотеку Open Source Computer Vision (OpenCV 2.1). Библиотека, написанная на языках высокого уровня С и С++, представляет собой инструментарий, который насчитывает более 500 функций обработки и анализа изображений для создания приложений компьютерного зрения, в том числе средств взаимодействия человека с компьютером. Новые программы позволяют с использованием двух цифровых видеокамер получать не только изображение, но и данные о глубине объектов, что делает возможным создание приложений для таких задач, как распознавание жестов, слежение за объектами и распознавание лиц. Следует особо отметить тот факт, что в разработке библиотеки OpenCV принимали непосредственное участие российские программисты из Нижнего Новгорода.

Библиотека, построенная по принципу открытого исходного кода, распространяется совершенно бесплатно. Главный Web-сайт библиотеки OpenCV находится по адресу http://www.intel.com/research/mrl/research/opencv/. К настоящему моменту программный код загрузили уже более 76 тыс. пользователей, что свидетельствует о востребованности подобного рода программного обеспечения.

Функции нового кода стереоскопического зрения реализованы для OC Windows и Linux, а для практической реализации потребуется всего один (правда, желательно помощнее, типа Pentium 4) компьютер и две дешевые Web-камеры, которые подключаются к компьютеру по USB-интерфейсу. Программные коды позволяют осуществлять управление двумя камерами, синхронизацию кадров методом временной интерполяции, автоматический контроль как над внутренними (в том числе вносимыми искажениями), так и над внешними (над взаимным расположением камер в пространстве) параметрами камер. Реализовано эпиполярное совмещение двух изображений (математическое смещение точки наблюдения, соответствующее параллельному расположению лучей зрения обеих камер), а также два типа алгоритмов совмещения: быстрый (20 кадров/с) и медленный, но более точный (1-4 кадров/с).

Библиотека OpenCV уже сейчас находит применение в различных технологиях. К примеру, на основе технологии стереоскопического компьютерного зрения возможно создание игрушек-роботов, которые способны опознавать своего хозяина, реагировать на определенные его действия, то есть на жесты, движения и т.п. Еще одной областью, где находит применение новая технология, является обработка изображений в трехмерных оптических измерительных системах. С помощью функций библиотеки OpenCV реализуются фильтрация, выделение границ, сегментация, арифметические и морфологические операции. Собственно говоря, перечислять возможные сферы применения новой технологии можно очень долго — для этого нужно лишь включить свою фантазию.

КомпьютерПресс 1'2002

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует