Реконструкция статического 3D объекта по данным камеры Xtion на базе алгоритмов компьютерного зрения

УДК 519.7

РЕКОНСТРУКЦИЯ СТАТИЧЕСКОГО 3D ОБЪЕКТА ПО ДАННЫМ КАМЕРЫ XTION НА БАЗЕ АЛГОРИТМОВ КОМПЬЮТЕРНОГО

ЗРЕНИЯ

И.А. Мартьянов

В работе рассмотрена задача реконструкция статического 3D объекта по данным камеры Xtion на базе алгоритмов компьютерного зрения. Описаны процессы выделения объекта интереса, получения кумулятивного облака точек и тесселяции облака точек.

Ключевые слова: реконструкция объекта, компьютерное зрение, облако точек, RGBD-камера, тесселяция.

1. Введение. Задача получения полигональной поверхности (меша) трехмерного объекта из его облака точек является актуальной в настоящее время. Ранее для получения облака точек применялись дорогостоящие 3D сканеры или панорамные фотографии, полученные со специальным образом откалиброванных фотокамер. В настоящее время благодаря камерам типа Kinect или Xtion появился относительно простой способ получения RGBD-данных сцены, содержащих помимо стандартного RGB-изображения глубину (Depth).

В данной работе рассматривается задача реконструкции 3D объекта по RGBD-данным. Ее решение разбивается на несколько этапов. На первом этапе требуется выделить объект интереса в текущем кадре на фоне других элементов сцены. Результатом является облако точек текущей видимой части объекта. Вторым этапом становится задача склейки облаков точек объекта из разных позиций в единое (кумулятивное) трехмерное облако точек. Заключительным этапом является получение меша объекта (тесселяция). Также в этот этап можно включить получение текстур и другой информации об объекте, однако эти вопросы не рассматриваются в данной работе.

Мы работали с камерой Asus Xtion. Для получения сырых RGBD-данных использовался драйвер OpenNI 2. Для выделения объекта в RGBD-данных доступны такие программные средства как Microsoft Kinect SDK (в случае использование Kinect и Windows) и PrimeSense NiTE (разные камеры и операционные системы). Главным недостатком этого программного обеспечения для разработчиков является то, что оно не является открытым (Open-source). Кроме того, эти решения предъявляют определенные требования к условиям съемки. Например, NiTE на этапе трекинга требует, чтобы выделяемый объект перемещался в сцене. Поэтому часто требуется свое решение. В этой работе описывается решение на основе алгоритмов компьютерного зрения, включая алгоритм кристаллизации и регрессион-

ный алгоритм для выделения объекта интереса (см. раздел 2), итеративный алгоритм ближайших точек (ICP) для объединения облаков точек (см. раздел 3) и пуассоновский алгоритм тесселяции (см. раздел 4).

2. Выделение объекта на текущем кадре. RGBD-камера предоставляет поток цветных изображений С и поток карт глубин О (см. рис. 1), т.е. растровых изображений, в которых для каждого пикселя задано расстояние до плоскости камеры. Размерности С и О предполагаются равными. Также предполагается, что элементы этих матриц с совпадающими координатами ссылаются на один и тот же объект снимаемой сцены.

Рис. 1. Пример карты глубины, полученной с камеры Хйон

Для выделения объекта интереса предлагается использовать подход, подробно описанный в [1]. В основе этого метода лежит использование алгоритма кристаллизации. Общая идея алгоритма такова:

Для центра кристаллизации находят соседние пиксели и вычисляют для каждого перепад от центра. Близкие к центру считаются принадлежащими объекту и становятся новыми центрами кристаллизации, а далекие помечаются как фон.

Выбрать центр кристаллизации можно разными способами [2]. На рис. 2 приведен результат работы алгоритма кристаллизации для примера с рис. 1.

При использовании алгоритма кристаллизации на карте глубины возникает проблема сливания объекта и горизонтальной плоскости, на которой он расположен (пол, стол и др.). Это связано с тем, что на стыке

298

объект и фон имеют одинаковую глубину. Для решения этой проблемы можно провести первичную сегментацию, при которой определяются пиксели, соответствующие этой плоскости (далее называемой «пол»).

Рис. 2. Результат работы алгоритма кристаллизации

Для удаления пола воспользуемся методом, описанным в [3]. В общем случае, RGBD-камера направлена на пол под углом вдоль оси х (рис. 3), что является причиной расположения большего числа пикселей к ближней части сцены. Так что линейное расстояние от камеры проецируется на карту глубины как рациональная функция (рис. 4).

Таким образом, мы можем получить кривую любой вертикальной линии карты глубины. Будем искать модель в виде

/(х) = аеЬх + сейх,

где / (х) - значение глубины пикселя и х - его индекс в строке матрицы кадра О . Коэффициенты а, Ь, с, й зависят от внутренних параметров калибровки камеры, угла наклона вдоль оси х, высоты камеры. Эти коэффициенты могут быть вычислены с помощью метода наименьших квадратов. Затем можно восстановить кривую пола Ск.

Так как в сцене, как правило, присутствуют и пол и объекты, то максимальное значение в строке матрицы карты глубины должно относиться к плоскости пола, если только объект не занимает всю строку. Это обусловлено тем, что объекты ближе к камере, чем поверхность пола, которую они закрывают.

Рис. 3. Оси вращения камеры

Рис. 4. Отображение линии пола в экспоненциальную функцию

Таким образом, для вычисления параметров используются максимумы по глубине для каждой строки матрицы Б . Результат удаления пола показан на рис. 5.

а б

Рис. 5. Результат удаления пола: а - текущий кадр; б - он же после

удаления пола

300

3. Получение кумулятивного облака точек объекта. Для пиксела с индексами (х, у) на карте глубины В получим соответствующую точку в ЭБ-пространстве:

p = p

^x - ox У - Oy

x z,-- z, z

fx fy J

где z = D [x, y], fx, fy - фокусные расстояния, ox, oy - координаты центра

камеры в стандартной модели камеры-обскуры. Требуется объединить облака отдельных кадров в одно большое облако.

Поскольку облака сняты с разных точек обзора, напрямую объединить их не получится. Предварительно нужно их выровнить относительно друг друга. С этой целью применяется алгоритм ICP (Iterative Closest Point) [4]. В общих чертах его можно описать следующим образом. Для двух облаков точек, исходного и целевого, проводятся следующие шаги.

1. Для каждой точки в исходном облаке проводится поиск соответствующей точки в целевом облаке по критерию ближайшего соседа. Можно использовать алгоритм модифицированного KD-дерева [5].

2. Находятся параметры преобразования с помощью функции среднеквадратичной стоимости.

3. Производится преобразование точек исходного облака с помощью оценочных параметров.

4. Многократное повторение предыдущих шагов.

Применительно к выравниванию множества облаков точек, последовательно целевым становится текущее облако, а исходным предыдущее. Причем, перед объединением облаков, найденная на j-м шаге трансформация применяется для всех Pt, таких что 0 £ i < j.

Алгоритм ICP подвержен попаданию в локальный минимум, поэтому крайне важно найти хорошую первичную трансформацию для начального выравнивания облаков. Мы предлагаем вначале определять соответствующие друг другу пиксели в матрице C, после чего при помощи метода сингулярного разложения находить первичные матрицу вращения и смещение.

Для нахождения соответствующих точек можно использовать алгоритм Лукаса-Канаде [6] - дифференциальный локальный метод вычисления оптического потока. Метод основан на предположении, что в локальной окрестности каждого пикселя значение оптического потока одинаково. Таким образом, можно записать основное уравнение оптического потока для всех пикселей окрестности и решить полученную систему уравнений методом наименьших квадратов.

На рис. 6 показано результирующее кумулятивное облако.

Рис. 6. Кумулятивное облако после выравнивания и объединения облаков

Иногда начальное выравнивание оказывается недостаточно хорошим и 1СР уходит в локальный минимум. Пример ошибок показан на рис. 7.

Рис. 7. Изображены облака с ошибочным выравниванием. Область некорректной склейки обведена сплошным контуром

4. Тесселяция облака точек. Для получения меша из кумулятивного облака точек использовалась реализация пуассоновского алгоритма тес-селяции [7] из библиотек PCL (http://pointclouds.org) и CGAL (https://www.cgal.orgj. Этот алгоритм основывается на следующем наблюдении: поле нормалей границы реконструируемого объекта может рассматриваться как градиент характеристической функции этого объекта. То есть, если дано множество направленных точек границы объекта, получить соответствующий меш можно путем преобразования набора ориентированных точек в непрерывное векторное поле в 3D через поиск скалярной функции, градиент которой наиболее близок к векторному полю, и извлечении подходящей изоповерхности для этой функции. Эта задача представляется в виде решения уравнения Пуассона

302

А% = divV ,

где с - характеристическая функция области М, V - векторное поле. Реконструированная поверхность определяется как

дМ = [де Я3:с(д) = у}, где у - уровень изоповерхности характеристической функции. Процесс получения поверхности М можно видеть на рис. 8.

Поверхность М строиться с помощью стандартного алгоритма марширующих кубов [8].

£

Л

> р V»

и

1 ^

о,».....у о

О Л............

О \ о

Точки с нормалями Градиент индикатора

V

Поверхность

вм

Рис. 8. Ю-пример пуассоновского алгоритма тесселяции [7]

На рис. 9 и 10 показан результат тесселяции.

в г

Рис. 9. Результат тесселяции: а - облако точек; б -меш; в - сглаженный меш; г - меш с сеткой

в г

Рис. 10. Результат тесселяции: а - облако точек; б - меш; в - сглаженный меш; г - меш с сеткой

На рис. 10, область 1 - неверно выравненное облако впало внутрь объекта. Как результат, имеем холмистую поверхность. Область 2 - неверно выравненное облако отстоит от основного меша. Видно формирование «горба».

Полученный меш достаточно качественнен, однако, из-за ошибок сопоставления облаков на предыдущем этапе есть видимые ошибки реконструкции, что ярко демонстрируется рис. 10.

5. Заключение. В работе рассмотрена задача реконструкции статического 3D объекта по данным камеры Xtion на базе алгоритмов компьютерного зрения. Приведенный подход был реализован на C++ средствами библиотек OpenCV (https://opencv.org), PCL, CGAL. Достоинствами данного подхода является относительная простота реализации и удовлетворительное качество получаемого меша. В качестве недостатков можно отметить низкую скорость работы и проявляющиеся время от времени ошибки склеивания облаков.

В будущем планируется найти способ увеличить детализацию результирующего меша и найти подход, работающий в реальном времени. В данном контексте особый интерес представляет работа [9].

Список литературы

1. Мартьянов И. А. Сегментация 3D сцены по данным RGB-D камеры // Сборник тезисов XXIV международной научной конференции студентов, аспирантов и молодых ученых «Ломоносов - 2017». М.: МАКС Пресс, 2017. С. 182-183.

2. Стародубцев И.С. Модели, алгоритмы и программный комплекс для построения естественного человеко-компьютерного взаимодействия на основе жестов : дис. ... канд. физ.-мат. наук. Екатеринбург: УрФУ, 2015. 129 с.

3. Kircali D., Tek F. B., Iyidir I. K. Ground Plane Detection using Kinect sensor // 2013 21st Signal Processing and Communications Applications Conference (SIU). Institute of Electrical & Electronics Engineers (IEEE), 2013.

4. Rusinkiewicz S., Levoy M. Efficient variants of the ICP algorithm // Proceedings Third International Conference on 3-D Digital Imaging and Modeling.: IEEE Comput. Soc.

5. Zhang Z. Iterative point matching for registration of free-form curves and surfaces // International Journal of Computer Vision. 1994. V. 13. № 2. P. 119-152.

6. Bruce D. Lucas and Takeo Kanade. 1981. An iterative image registration technique with an application to stereo vision. In Proceedings of the 7th international joint conference on Artificial intelligence - Volume 2 (IJCAI'81). V. 2. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. P. 674-679.

7. Kazhdan M., Bolitho M., and Hoppe H. Poisson surface reconstruction // Symposium on Geometry processing. 2006. P. 71-78.

8. Lorensen W.E., Cline H.E. Marching cubes: A high resolution 3D surface construction algorithm // ACM SIGGRAPH Computer Graphics. 1987. V. 21. № 4. P. 163-169.

9. Newcombe R.A., Fox D., Seitz S.M. DynamicFusion: Reconstruction and tracking of non-rigid scenes in real-time // 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2015.

Мартьянов Иван Анатольевич, студент, martyanow.ivan@yandex.ru, Россия, Тула, Тульский государственный университет

RECONSTRUCTION OF STATIC 3D OBJECT BY DATA FROM XTION CAMERA BASED

ON ALGORITHMS OF COMPUTER VISION

I.A. Martyanov

Reconstruction of static 3d object by data from Xtion camera based on algorithms of computer vision problem is considered in this paper. The processes of object of interest segmentation, cumulative point cloud receiving and point cloud tessellation are described.

Key words: object reconstruction, computer vision, point cloud, RGBD-camera, tessellation.

Martyanov Ivan Anatolyevich, student, martyanow. ivan@yandex. ru, Russia, Tula, Tula State University

УДК 519.87:004.94

СТОХАСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОБЛАЧНОГО ХРАНЕНИЯ ДАННЫХ

М.В. Заморёнов

Рассмотрена информационная структура системы облачного хранения данных. Показаны причины, обеспечивающие стохастический характер функционирования исследуемой системы. В качестве аппарата исследований выбран аппарат полумарковских процессов. Определены функции распределения времен пребывания в состояниях и вероятности переходов вложенной цепи Маркова. Составлена система уравнений марковского восстановления, для чего были определены полумарковские ядра. Система решена операторным методом. Проведено моделирование такой системы, построен график функции распределения времени полной обработки запроса на чтение системой облачного хранения данных.

Ключевые слова: полумарковская модель, уравнения марковского восстановления, хранение данных, облачная система.

В настоящее время в структуре информационных систем все большее использование находят системы облачного хранения данных [1-4]. Наиболее важной характеристикой таких систем выступает их быстродействие. Одним из основных способом повышения быстродействия систем облачного хранения данных является использование кэш-памяти, характеризующейся высокой скоростью чтения данных, однако имеющей более высокую себестоимость по отношению к памяти, находящейся на сервере хранения данных [5-12]. Вероятность обращения к кэш-памяти зависит от вида запроса на чтение данных, поэтому процесс является стохастическим, а сами запросы являются случайными событиями. Также, стохастический характер носят возможные отказы линий передачи данных.

Выше сказанное обосновывает стохастический характер процесса обработки запроса на чтение к системе облачного хранения данных в целом. Что позволяет такую систему считать стохастической и применять для ее моделирования аппарат полумарковских процессов.

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