Отбор изображений - Программа трехмерной реконструкции сцены по изображениям и данным сканирования глубины
Для отбора цветных снимков в процессе сканирования применяется алгоритм Crete [1] определения размытия изображения. На каждом временном интервале процесса сканирования из всех цветных изображений отбирается одно изображение, для которого значение наименьшее. Значение рассчитывается по алгоритму:
Вход: Изображение F - переведенное в градации серого изображение . Размер изображения.
Выход: значение.
1. Вычисление изображения размытого по и :
, , где - фильтр:
2. Вычисление
3. Вычисление :
4. Суммирование:
5. Вычисление
В данной реализации интервал - 2 секунды.
- 2. Архитектура программы и особенности реализации 2.1 Выбранные инструменты
Для реализации программы были использованы следующие инструменты и программные средства:
- - Для взаимодействия с RGB-D камерой используется OpenNI Framework 2. - Для геометрической реконструкции сцены используется KinFu - реализация алгоритма KinectFusion в библиотеке PCL. - Для построения пользовательского интерфейса используется Qt Framework 5.1 и OpenGL. - Для операций с матрицами и решения систем уравнений в алгоритме вычисления цвета вершин, включая операции с разреженными матрицами, используется библиотека Eigen [2].
Приложение написано на языке программирования C++ в среде разработки Microsoft Visual Studio 2012.
2.2 Архитектура приложения
Рисунок 4. Диаграмма классов приложения
Приложение состоит из трех основных компонентов:
- 1. Интерфейс приложения, представленный классами Scanelium и glWidget:
- - Scanelium - интерфейс приложения. Содержит обработчики событий и обеспечивает взаимодействие с пользователем. - GlWidget - интерфейсный объект для отображения 3D графики в интерфейсе. Отображает облако точек с камеры на этапе инициализации, текущее состояние модели на этапе сканирования, полученную трехмерную модель после сканирования и расцвеченную трехмерную модель после выполнения алгоритма вычисления цвета вершин.
- - KinfuController предназначен для управления процессом трехмерного сканирования, проводит инициализацию, запуск и получение реконструкции. KinfuController использует компонент KinfuTracker, который является реализацией алгоритма KinectFusion. Класс запускается в отдельном потоке от интерфейса. - ONICapture предназначен для взаимодействия с RGB-D камерой. Проводит инициализацию OpenNI и получает снимки глубины и цветные изображения с камеры. - ImageProcessThread проводит отбор цветных снимков в отдельном потоке. Отбор производится путем выбора изображений с наименьшим уровнем размытия (см. 2.4). Запускается в отдельном от KinfuController потоке, чтобы не влиять на скорость геометрической реконструкции.
- - ColorMapper содержит реализацию алгоритма Zhou&;Koltun. Так как на каждой итерации алгоритма системы уравнений для каждого изображения вычисляются независимо, вычисления распределяются по нескольким потокам с помощью класса CameraThread.
- CameraThread проводит вычисление матриц и решение уравнений для одного изображения. Используются компоненты библиотеки Eigen SparseMatrix для представления матрицы и SimplicialCholesky для решения уравнения (11).
Режимы работы программы (ProgramState):
- 1. INIT - выбор параметров сканирования сцены, отображение текущего облака точек с устройства для выбора необходимого расположения камеры. 2. KINFU - выполнение сканирования сцены по заданным параметрам. Процесс сканирования можно завершить или начать заново. Результатом сканирования является трехмерная модель и набор цветных изображений с информацией о положении камеры для каждого снимка. 3. COLOR - просмотр полученной на предыдущей стадии модели и запуск алгоритма вычисления цвета вершин. 4. FINAL - просмотр итоговой полигональной модели. Сохранение итоговой модели в файл формата PLY. 2.3 Процесс реконструкции 2.3.1 Инициализация и геометрическая реконструкция
Процесс реконструкции сцены с помощью данного приложения производится следующим образом: подключив RGB-D камеру к компьютеру, пользователь запускает приложение. На первоначальном этапе пользователь имеет возможность настроить параметры реконструкции, такие как размер сцены, точность сканирования, разрешение снимков глубины и цветных изображений. Также пользователь может указать, как расположена камера относительно сцены в момент начала сканирования, например, можно указать ее начальное расположение в центре сканируемой сцены, либо на боковой грани. Во втором случае камера будет направлена на сцену с центра задней грани. Далее пользователь запускает процесс сканирования. На этой стадии компонент KinfuController выполняет следующие действия:
- - Загрузка в KinFu нового снимка глубины; - Получение от KinFu визуализации текущей трехмерной реконструкции; - Сохранение цветных снимков.
Во время сканирования пользователь видит визуализацию и использует ее для слежения за процессом реконструкции, чтобы проконтролировать охват сцены. На визуализацию дополнительно наложена карта глубины и красноватым цветом подсвечены участки, которые не могут быть просканированы при текущем положении камеры (рис. 5) (поверхность слишком далеко, слишком близко, поверхность обрывается, либо присутствуют другие помехи).
Рисунок 5. Процесс реконструкции
При сканировании следует соблюдать следующие правила:
- 1. Перемещать камеру необходимо плавно, без рывков, так как алгоритм ICP, используемый в KinFu, не рассчитан на быстрое перемещение. Плавное перемещение также помогает избежать размытия цветных изображений, получаемых параллельно с реконструкцией. 2. Необходимо избегать ситуаций, когда в кадр попадает только плоская стена, так как это может привести к неверному определению смещения;
Когда пользователь охватил все интересующие его области сцены, он может прервать сканирование. На этом этапе он получает трехмерную полигональную модель и набор цветных снимков, для которых известно приблизительное положение камеры. Модель можно осмотреть перед переходом к следующему шагу.
2.3.2 Вычисление цвета вершин
Для полученной на предыдущем шаге модели, на данном этапе производится вычисление цвета вершин. Пользователь может указать количество итераций алгоритма Zhou&;Koltun и запустить вычисление.
Вычисление цвета происходит в отдельном от интерфейса потоке, поэтому пользователь может осматривать предварительную бесцветную модель, пока выполняется алгоритм. Внизу интерфейса показан статус выполнения алгоритма, что позволяет следить за выполнением. Начало алгоритма (определение видимых вершин для каждого изображения) и начало итерации (вычисление по формуле (7)) не выполняется параллельно. Вычисление матриц и решение уравнения для одного изображения выполняются в отдельных потоках (максимально 8 одновременных потоков - одновременно обрабатываемых изображений).
Цветную полигональную модель, полученную после выполнения алгоритма, пользователь может осмотреть и сохранить в файл формата PLY, содержащий данные о координатах и цвете вершин и список полигонов.
2.4 Пример реконструкции
Рисунок 6. Реконструкция сцены разработанной программой.
Параметры реконструкции:
- - В реконструируемой сцене содержится несколько объектов, в том числе с глянцевыми поверхностями. - Длительность сканирования - 34-35 секунд.
- - Объем сканируемого пространства - 1 . - RGB-D камера Asus Xtion Pro Live. Разрешение цветного изображения 1280х1024, разрешение снимка глубины - 640х480. - Количество вершин - 469982, количество полигонов - 923122, количество цветных изображений - 17, количество итераций алгоритма Zhou&;Koltun - 50.
Рисунок 7. Сравнение модели до и после работы алгоритма Zhou&;Koltun. Слева - 0 итераций, в центре - 25 итераций, справа - 50 итераций.
Сравнение визуального качества трехмерной реконструкции разработанной программы и реконструкций Scanect и RecFusion приведено в приложении Д.
Похожие статьи
-
Приложение, которое необходимо разработать, должно производить геометрическую реконструкцию сцены и вычисление цвета вершин модели. Для геометрической...
-
Для вычисления цвета могут быть использованы различные подходы. Вычисление цвета может проводиться одновременно с геометрической реконструкцией,...
-
Введение - Программа трехмерной реконструкции сцены по изображениям и данным сканирования глубины
Трехмерная реконструкция и трехмерное сканирование в настоящее время быстро развиваются и находят широкое применение в робототехнике, медицине,...
-
Для создания трехмерной реконструкции сцены или объекта необходимо создать его трехмерную модель и вычислить цвет ее вершин. Для геометрической...
-
Алгоритм KinectFusion разработан Microsoft Research и опубликован в 2011 году, вскоре после появления Kinect [4]. В опубликованной статье описан алгоритм...
-
Заключение - Программа трехмерной реконструкции сцены по изображениям и данным сканирования глубины
В работе приведен обзор алгоритмов и технологий трехмерной реконструкции с помощью RGB-D камер, программных продуктов для трехмерного сканирования и...
-
В алгоритме Zhou&;Koltun при вычислении отклонений цвета используется изображение, переведенное в градации серого. В данной реализации используется...
-
У рассмотренных ранее программ для трехмерной реконструкции имеются несколько недостатков при вычислении цвета модели. Выражаются они в том, что цвет...
-
Программные продукты, разработанные для трехмерного сканирования c использованием RGB-D камер, имеют много сходств в организации процесса сканирования и...
-
В данной части алгоритма производится коррекция наложения изображения. Коррекция представляют собой деформацию сетки изображения. - прямоугольная...
-
Задачей данной части алгоритма является коррекция матрицы для каждого изображения из набора. Задача формулируется как задача наименьших квадратов для...
-
RGB-D камера Реконструкция сцены с использованием Red-Green-Blue-Depth (RGB-D) камер производится путем обработки данных поступающих с сенсора глубины и...
-
Системная архитектура проекта Архитектура данных При организации любой управленческой работы, в том числе и работы по управлению заказами клиентов, очень...
-
Моделирование параллельных программ Рассмотренная схема проектирования и реализации параллельных вычислений дает способ понимания параллельных алгоритмов...
-
ПОРЯДКОВЫЕ ТИПЫ, Логический тип - Типы данных в программе Турбо Паскаль
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон. Целые типы. Диапазон возможных значений целых типов зависит от...
-
Выбор программ и алгоритмы реализации базы данных - База данных "Кинотеатр"
Microsoft Office Access - мощное приложение Windows. При этом производительность СУБД органично сочетаются со всеми удобствами и преимуществами Windows....
-
Обзор протокола Multi-Touch технологий передачи данных TUIO [7] - основной кроссплатформенный протокол с открытым исходным кодом Multi-Touch передачи...
-
Аналитическая часть - Разработка программ преобразования форматов двоичных данных и сортировок
Язык - множество символов и совокупность правил, определяющих способы составления из этих символов осмысленных сообщений. Семантика - система правил и...
-
Технология создания баз данных в программе Microsoft Access
Введение Базы данных играют особую роль в современном мире. Любой из нас многократно начиная с детства, сталкивался с "базами данных". Это - всевозможные...
-
Предлагаемая библиотека хранит все данные в отдельных таблицах, таким образом он не обязан использовать ту же СУБД, что и основное приложение. В качестве...
-
MapReduce, Кеш - Программа расчета агрегатов по накапливающимся данным для построения отчетов
MapReduce -- модель распределенных вычислений, используемая для параллельных вычислений над большими объемами данных в кластерах. MapReduce позволяет...
-
Основные понятия баз данных. Цели использования баз данных - Разработка базы данных
В широком смысле слова база данных (БД) - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Для удобной...
-
Теоретические предпосылки исследования Системы поддержки принятия решений Системы поддержки принятия решений (СППР), представляют собой приложения узкого...
-
Обоснование выбранного метода При дизайне системы согласно требованиям или при оптимизации существующей необходимо ввести модель, позволяющую не только...
-
Освещение, Визуализация - 3D моделирование
Наилучшее освещение должно являться почти подсознательным: это когда оно присутствует, но не является навязчивым. Оно подчеркивает свойства сцены,...
-
Компромиссная система, для удобства восприятия данных человеком и корректной работы компьютера, двоично-десятичная запись чисел. Принцип построения этой...
-
Особенности сканирования изображения - Экономическая информатика
Качество сканированного изображения определяется многими факторами. Среди них - тип сканируемого оригинала, технические возможности сканера, квалификация...
-
На данный момент у TUIO есть 3 версии протокола: 1.0, 1.1 и 2.0. Версия 2.0, вышедшая в 2014, имеет множество изменений и нововведений по сравнению с...
-
Для замеров производительности использовалось три запроса, представляющих три наиболее типичные проблемные рассчеты. Ниже приведены эти запросы на языке...
-
ТИПИЗИРОВАННЫЕ КОНСТАНТЫ - Типы данных в программе Турбо Паскаль
В Турбо Паскале допускается использование типизированных констант. Они задаются в разделе объявления констант следующим образом: <индификатор> :...
-
ЗАПИСИ, МНОЖЕСТВА - Типы данных в программе Турбо Паскаль
Запись - это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи...
-
ОПИСАНИЕ ПРОГРАММЫ, ОСНОВНЫЕ ПЕРЕМЕННЫЕ И СТРУКТУРЫ - Структуры и алгоритмы обработки данных
ОСНОВНЫЕ ПЕРЕМЕННЫЕ И СТРУКТУРЫ Struct BD { char FIO[32]; // фоpмат <Фамилия>_<Имя>_<Отчество> int numberO; char dolzhnost[32]; char dateB[8]; }...
-
1. НА 7 ПК ИСПОЛЬЗУЕТСЯ microsoft Windows xp sp2. 2. на 1 используется Altlinux 5 3. Программы офисного назначения: A) Microsoft Office Excel 2003 B)...
-
В данном разделе была разработана функциональная схема работы программного комплекса, которая в общем виде описывает состав комплекса, характер и виды...
-
Рисунок 10. Архитектура программы В структуре программы обработки сложноструктурированных данных для научного эксперимента в ИИС "Шлаковые расплавы"...
-
Выходные данные для работы программы представляют собой матрицу типа "функции-данные", где связь бизнес-функций и элементов данных описывается большим...
-
За последние годы было разработано большое количество методологий и стандартов построения и описания различных уровней архитектуры организации, в том...
-
Реализация, Composer - Программа расчета агрегатов по накапливающимся данным для построения отчетов
Для эффективного тестирования и демонстрации библиотеки было решено разработать PHP-приложение, состоящее из: 1. Менеджера зависимостей composer; 2....
-
База данные кеширование денормализация Предлагаемое решение -- скомбинировать некоторые идеи кеширования и денормализации в специальной библиотеке...
-
"Базы данных и СУБД", Понятие банка данных, базы данных и СУБД - Базы данных и СУБД
Понятие банка данных, базы данных и СУБД Существует множество различных систем управления базами данных, именуемые в последующем "СУБД", такие как: IMS,...
Отбор изображений - Программа трехмерной реконструкции сцены по изображениям и данным сканирования глубины