Компьютерра, 2006 № 06 (626) | страница 33
И третий, уже скорее психологический, инструмент использует тот факт, что мы обычно имеем дело с хорошо знакомыми нам предметами — например, все примерно представляют, какого размера должна быть табуретка или кровать. Поэтому для определения расстояния до таких предметов мозгу достаточно знать, какая площадь на сетчатке занята их изображением. Естественно, что все эти методы работают в комплексе, взаимно дополняя и уточняя друг друга.
Также огромную роль играет способность человека выделять объекты из того потока информации, которую он получает благодаря органам зрения. Грубо говоря, когда мы входим в незнакомую комнату, нас не интересует форма стоящего в углу кресла, нам нужно лишь знать, с какой стороны и как далеко от нас оно находится. А вот роботу, как уже было сказано, даже идентифицировать кресло на изображении комнаты не всегда под силу.
Какими же из этих методов могут воспользоваться роботы? Проще всего реализовать второй способ. В самом деле, роботу достаточно иметь один-единственный глаз, и при этом чем меньше у него глубина резкости, тем лучше. Надо «прогнать» камеру по всему диапазону фокусных расстояний и на полученной картинке определить дальность до каждой точки. Но за простотой этого метода скрывается и его недостаток — низкое разрешение. Определить степень сфокусированности можно только для относительно большого по площади предмета; более того, он еще должен быть неравномерно окрашен. Роботу трудно ориентироваться в пустой комнате с чистыми белыми стенами, зато расстояние до какой-нибудь решетки он вычислит точно.
Теперь рассмотрим двуглазого робота, который для определения расстояния до предметов использует бинокулярное зрение. Тут возможны два случая: или заранее известно взаимное расположение камер (они закреплены жестко), или потребуется определять положение камер. С первым случаем, казалось бы, все просто: берем точку на одном кадре, ищем соответствующую ей на другом и определяем расстояние до камер. Но все как раз и упирается в поиск соответствий между точками. Для некоторых областей изображения таких соответствий может не оказаться — например, одна из пары соответствующих точек будет чем-то загорожена. Но даже если все соответствия имеются, то найти их будет очень не просто. Рассмотрим простейший случай: наш двуглазый робот смотрит на кубик с гладкими однотонными стенками, и как бы мы ни старались и не разглядывали изображения, полученные с каждого из глаз, найти соответствующих пар точек больше, чем углов у кубика, невозможно. А даже по восьми точкам (предположим, что видны все углы) пытаться восстановить сцену, не зная, что на ней куб, задача нереальная.