Исследователи разработали новый алгоритм машинного зрения, который позволяет гуманоидным роботам воспринимать глубину окружающего пространства более похожим на человеческий способом. Система использует две направленные вперёд камеры, способные поворачиваться и фокусироваться на одной точке, подобно глазам человека.
Разработку представила группа учёных под руководством исследователей Йоркского университета в Торонто. Новый подход получил название Convergent Binocular Stereo, или CBS — сходящееся бинокулярное стереозрение. Он может помочь роботам точнее определять расстояние до объектов, оценивать их ориентацию в пространстве и лучше ориентироваться в сложной окружающей среде.
Обычные системы стереозрения, как правило, используют две параллельно расположенные камеры. Они определяют глубину, анализируя преимущественно горизонтальные различия между изображениями, полученными левой и правой камерами. Однако человеческое зрение работает иначе: при взгляде на объект глаза поворачиваются так, чтобы оба были направлены на одну и ту же точку.
CBS разработана специально для роботизированных систем, в которых две камеры также могут сходиться на выбранном объекте. При такой конфигурации между изображениями возникают не только горизонтальные, но и вертикальные различия. Новый алгоритм учитывает оба типа смещения и использует движение камер как дополнительный источник информации о расстоянии до объекта.
Сначала система направляет обе камеры на определённую точку в трёхмерном пространстве и определяет геометрическую связь между полученными изображениями. Затем алгоритм создаёт пятиуровневую гауссову пирамиду, позволяющую анализировать изображение на нескольких уровнях детализации.
На более грубых уровнях алгоритм обнаруживает и сопоставляет характерные точки с помощью метода SIFT. При этом используются эпиполярные ограничения, позволяющие оценивать горизонтальные и вертикальные смещения между двумя изображениями.
Затем система применяет фильтры Габора для анализа текстур и границ объектов при различных ориентациях и масштабах. Это помогает определить, какие пиксели на изображениях, полученных двумя камерами, соответствуют друг другу.
После этого алгоритм постепенно уточняет полученные оценки, переходя от изображений с низким разрешением к исходному. На каждом следующем этапе область поиска сужается, что позволяет повысить точность определения смещений.
Полученные карты горизонтальных и вертикальных различий затем преобразуются в трёхмерную информацию и данные о глубине. Помимо расстояния до объектов, система может определять наклон поверхностей, ориентацию объектов и особенности восприятия масштаба и глубины.
Для проверки работы алгоритма исследователи создали специальный набор данных Convergent Binocular Stereo–BenchMark, или CBS-BM. Он включает 49 сцен, среди которых были обычные объекты на поверхности стола, повторяющиеся узоры, поверхности с небольшим количеством заметных деталей и объекты, значительная часть которых скрыта от камер.
Для каждой сцены исследователи подготовили изображения, полученные при параллельном расположении камер, а также от пяти до 12 пар изображений, снятых при различной степени их сведения на выбранной точке.
CBS продемонстрировала конкурентоспособные результаты по сравнению с существующими методами стереозрения и несколькими системами, использующими глубокое обучение. На всём наборе данных алгоритм показал меньшие средние ошибки при определении горизонтального смещения и глубины, чем протестированные системы с параллельными камерами.
Наиболее заметное преимущество проявилось в сценах с повторяющимися узорами. Такие изображения создают серьёзную проблему для традиционных систем, поскольку им сложно определить, какие одинаково выглядящие элементы на двух изображениях действительно соответствуют друг другу.
В этой категории средняя ошибка при определении глубины у CBS оказалась примерно на 0,8 метра меньше, чем у следующего по эффективности метода. Ошибка при определении горизонтального смещения также была примерно на 100 пикселей ниже.
При этом разработка пока имеет ряд ограничений. Точность системы снижается при работе с удалёнными объектами, а для её корректной работы требуется очень точная калибровка камер и позиционирование механизмов, отвечающих за их движение.
Нынешняя версия алгоритма также работает сравнительно медленно. На процессоре AMD Ryzen 7 7700X обработка данных занимает около 69 секунд, поэтому систему ещё необходимо значительно оптимизировать для использования в режиме реального времени.
Разработчики не рассматривают CBS как полную замену традиционному стереозрению с параллельными камерами. Новый подход предназначен прежде всего для гуманоидных роботов, которым необходимо объединять движение «глаз» и обработку зрительной информации, подобно тому, как это происходит у человека.
Дальнейшая оптимизация алгоритма и увеличение скорости его работы могут сделать сходящееся бинокулярное зрение основой для более совершенных гуманоидных роботов, способных активнее взаимодействовать с окружающим пространством и точнее оценивать положение объектов вокруг себя.
