Способы реализации механизма скользящего стерео-курсора в
реальном времени
А.Е. Афанасьева, А.В. Игнатенко Лаборатория Компьютерной Графики и Мультимедиа,
Факультет Вычислительной Математики и Кибернетики,
Московский Государственный Университет им. М.В. Ломоносова [email protected], ignatenko@ graphics.cs.msu.ru
Аннотация. В современной компьютерной графике актуальны задачи восстановления формы объекта по его фотографиям, построения геометрической модели объекта по набору изображений. Данные задачи усложняются, если мы имеем дело с объектами сложной формы, с прозрачными или плохо различимыми деталями изображения. Для работы с подобного рода объектами целесообразно использовать стереомониторы.
В последнее время стерео-технологии, например, NVidia 3D Vision, достигли приемлемого уровня для профессионального использования.
Новые технологии требуют соответствующего интерфейса. Для разных задач могут понадобиться различные инструменты. В работе рассматривается задача создания трехмерного скользящего курсора для стереомонитора. Данный инструмент мо но использовать как для выделения некоторых ва ных частей объекта или выделения границ объекта, так и для удобства пользователя при ручном построении прибли енной геометрической модели объекта (пользователю не нужно дополнительно устанавливать курсор на поверхность объекта). Схожие технологии могут использоваться в различных областях виртуальной реальности ([1]).
Ключевые слова. 3D-курсор, скользящий курсор, стереопара, стерео-соответствие, диспаритет, корреляция, корреляционное окно, ведущий курсор
Введение
Стерео-изображение формируется из двух изображений стереопары, соответственно, изображение курсора складывается из двух его изображений на каждом, соответственно, на каждом изображении курсор имеет свои координаты.
Трехмерный скользящий курсор - это трехмерный курсор, который устанавливается визуально на поверхность текущего объекта (объекта с данными экранным координатами), если пользователь перемещает указатель мыши в плоскости экрана. Поскольку глубина курсора должна определяться по движению мыши, алгоритм определения глубины дол ен обладать высокой скоростью.
Для этого потребуется вычислять стерео-соответствие в некоторой области вокруг курсора в реальном времени.
Один из курсоров при таком подходе будет считаться ведущим. Ведущий курсор - курсор, по поло ению которого ищется соответствие на втором изобра ении стереопары.
Методы вычисления стерео-соответствий
Условно методы вычисления стерео-соответствий можно разделить на несколько основных групп:
1) Методы, основанные на корреляционном окне
2) Методы, связанные с поиском локальных особенностей на изображении
3) Построение карты глубины, карты диспаритетов
Первая группа методов использовалась в данной работе благодаря своей простоте и скорости.
Вторая группа методов - методы, связанные с поиском так называемых ключевых точек, - основаны на поиске в некотором фрагменте изображения его локальных особенностей, а затем учет их взаимного расположения для поиска соответствия конкретному заданному пикселу. В чистом виде данный подход не надежен, т.к. на изображении могут встречаться фрагменты и без локальных особенностей, а так е фрагменты с недостаточным для работы количеством локальных особенностей.
Третий подход наиболее надежен, т.к. позволяет исключить выбросы и скачки диспаритета, а так же анализ всего изображения в целом, но не подходит в силу своей низкой скорости. Построение карты диспаритета использовалось в данной работе для оценки общего результата.
Метод простой корреляции
Реализован алгоритм поиска соответствий на изображениях при помощи метода корреляционного окна. Корреляционное окно - прямоугольная область на изображении с заданной высотой и шириной, по которой ищется соответствие позиций курсора. Параметры корреляционного окна могут выбираться, например, как фиксированная часть высоты или ширины изобра ения.
Пусть положение курсора на первом изображении стереопары - (х, у). Искомое положение курсора на втором изображении (х + dx, у). Задача состоит в нахождении диспаритета dx. Диспаритет может быть как положительный, так и отрицательный.
Дополнительные входные параметры: размер корреляционного окна ^, И), минимально и максимально возможный диспаритет ^8рМах).
На втором изображении выделяется прямоугольная область с координатами (х -w / 2 - dispMax, у - И / 2, w + 2 * dispMax, И).
Рис. 1.Корреляционное окно. Максимальный разброс диспаритета
Рис. 2. Наилучшее корреляционное окно. Диспаритет
Корреляционное окно первого изображения последовательно сравнивается с каждым подокном выделенной области на втором изображении. Сравнение по метрике Ь2 (квадрат абсолютной разности изображений). Выбирается dx, которому
соответствует окно с минимальной разницей при сравнении с окном на первом изобра ении.
Поиск осуществляется исключительно по горизонтали, за счет этого сильно сокращается число сравнений, и возмо ен полный перебор.
Корреляция с предварительным поиском по уменьшенному изображению
При данном подходе сначала ищется диспаритет для уменьшенных изображений. Уменьшенное изображение, как правило, получается более отчетливым, и корреляция работает лучше, с меньшим количеством скачков. Корреляция по уменьшенному изображению также позволяет заметно сократить время расчета диспаритета.
Чем сильнее уменьшено изображение, по которому осуществляется предварительный поиск, тем ниже точность результата.
Данный подход позволяет значительно сократить скачки диспаритета на изображении, т.к. рассматриваемое окно на уменьшенном изображении содержит больше информации, чем исходное корреляционное окно.
Г рафик корреляции
По графику корреляции мо но судить о достоверности полученного диспаритета.
Рис. 3. Неявный минимум на графике корреляции
Рис. 4. Размытый минимум на графике корреляции. Объект нечеткий или полупрозрачный.
Возможно, потребуется уточнение результата
Рис. 5. Явный минимум на графике корреляции. Результат достоверен
Рис. 5. Явный минимум отсутствует. Корреляционное окно слишком мало, а объект незаметен
Корреляция с предварительным поиском по уменьшенному изображению с учетом диспаритета в соседних пикселах
В данном алгоритме диспаритет ищется не только в текущем пикселе, но и в соседних. Соседние пикселы берутся на расстоянии в 5 или 10 раз меньше размера корреляционного окна.
В тестовой программе возможен выбор 2, 4, 6, 8 и 24 соседних.
Рис. 6. Расположение пикселов-соседей для дополнительного расчета диспаритета
Для каждого пиксела-соседа строится график корреляции. У каждого графика находится некоторое фиксированное количество самых сильных локальных минимумов (на текущем этапе по результатам тестирования лучший результат показывает алгоритм, в котором берется один минимум). После того как построены графики корреляции для всех соседей и рассчитаны все минимумы, выбирается тот минимум, который чаще всего встречается на графике корреляции.
Домножение на весовую функцию
В текущей реализации алгоритма все графики корреляции домножаются на весовую функцию.
В настройках тестовой программы возможно домножение на линейную функцию или на экспоненту.
У
5'
4
3
разброс диспаритета —і 1 1 1 1 Ь
-5 -4 -2 - 1 0 1 3 5
Рис. 7. Линейная весовая функция для графика корреляции
Для улучшения результата работы достаточно домножения на линейную функцию. Таким образом будет понижен “вклад” в результат локальных минимумов графика корреляции, образующих слишком большой диспаритет.
В алгоритме, который учитывает значения диспаритета в соседних пикселах, на весовую функцию домно ается, соответственно, график корреляции для ка дого пиксела-соседа.
Рис. 8. Исходная стереопара
Рис. 9. Справа - левое изображение стереопары, слева - построенное по карте диспаритета
Результаты
Алгоритм хорошо работает на четких границах крупных объектов. В случае характерных регулярный особенностей на изображении (сеток, решеток, сложных узоров и т.п.), если ячейка единичной структуры много меньше размера окна, возмо ны ошибки.
Далее приведен результат работы алгоритма. Для стереопары построена карта диспаритетов. Затем по правому изображению с учетом карты диспаритетов реконструируется левое изображение стереопары. По полученной реконструкции и ее сходству/различию с оригинальным изображением можно судить о результате работы алгоритма.
Заключение
Поиск по уменьшенному изображению и домножение на весовую функцию сглаживают результат, позволяя убрать лишние скачки диспаритета.
Размер корреляционного окна выбирается автоматически в зависимости от размера изображения, и не всегда является оптимальным. Ошибки возникают, например, в случае существенного различия во взаимном расположении объектов на изобра ении стереопары.
В случае работы с простыми изобра ениями (например, четкие фотографии) предло енный подход дает минимальное число ошибок.
Для борьбы с ошибками в сло ных случаях потребуется алгоритм, учитывающий зависимости во взаимном располо ении объектов.
Список литературы
[1] Robert J. Teather, Wolfgang Stuerzlinger. Investigating One-Eyed and Stereo Cursors for 3D Pointing Tasks. Dept. of Computer Science & Engineering, York University
[2] Robert J. Teather, Wolfgang Stuerzlinger. Cursors for 3D Pointing. CHI’12, May 5-10, 2012, Austin, Texas, USA.