Scientific journal
Modern problems of science and education
ISSN 2070-7428
"Перечень" ВАК
ИФ РИНЦ = 0,791

DEPTH´S SMOOTHING ALGORITHM FOR SUBSEQUENT GENERATIONS SURFACE ON APEX TECHNOLOGY

Golenkov V.V. 1 Gerget O.M. 1
1 National Research Tomsk Polytechnic Univercity
В рамках данной работы на примере интерактивной песочнице показано, что качество кадра глубины, а в последующем генерируемое изображение, зависит как от устройства, которое его генерирует, так и от методов обработки данных. Использование сырого потока глубины приводит к неестественному поведению поверхности, сгенерированной на технологии APEX Приведен быстрый алгоритм сглаживания карты глубины 3D сенсора для уменьшения погрешности и ликвидации дефектов, как на отдельном кадре, и так и в потоке в целом. Проиллюстрированы исходные и отфильтрованные кадры глубины. В данном случае для обработки данных был использован метод сплайнов. В статье также приведены изображения плоскости, сгенерированной по необработанной и сглаженной глубине.
In this work, an interactive sandbox shows the fact that the quality of the frame depth, and subsequently generated image depend on the device that generates it and methods of data processing. Using the raw stream depth leads to unnatural behavior of the surface generated by technology APEX. There is a fast algorithm for smoothing the 3D sensor depth card, which reduces errors and eliminates defects. There are also illustrated the original and the filtered depth frames. In this case, data processing is based on spline methods. The article also shows the plane image which is generated from raw and smoothed depth.
Frames depth
spline interpolation
filtering
dynamics
NVIDIA Apex technology

С появлением дополненной реальности, технологии мультимедиа стали все глубже проникать в нашу жизнь, изменяя, на первый взгляд, привычные вещи. В связи с этим, появилось множество технико-программных продуктов, позволяющих  скрасить времяпрепровождение. Одной из таких разработок является «интерактивная песочница»[1] (ИП).

Одним из основных элементов ИП является сенсор глубины, или 3D сенсор. Примерами сенсоров глубины являются Microsoft Kinect и ASUS Xtion. Данное устройство генерирует карту глубины, которая используется в программном обеспечении ИП. Основной проблемой сенсоров глубины является погрешность определения дистанции до наблюдаемых объектов по времени: карта глубины не статична даже если наблюдение происходит за статичными объектами. И если для генерации обычного изображения, из карты глубины, данная погрешность незначительна, то для генерации поверхности в технологии NVIDIA Apex, данная погрешность неприемлема. Без механизма фильтрации, сгенерированная поверхность Apex так же не будет статична, что приведет к неверному поведению частиц. Так же, генерируемая поверхность является неровной и имеет разрывы.

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

Кадр Глубины

Кадр глубины представляет собой матрицу 320х240 значений с плавающей точкой одинарной точности. Каждый элемент матрицы описывает удаленность «пикселя» в миллиметрах. Пример карты глубины представлен на рисунке 1.

Результирующая карта глубины, которая получается с устройства, может отличаться, в зависимости от самого стройства. Например, размер карты глубины у Microsoft Kinect — 640x480, полученное путем программного увеличения изображения на самом устройстве, а у ASUS Xtion — 320x240.

Сглаживание кадра глубины

Одним из самых популярных методов сглаживания зашумленных данных является метод сплайнов. В статье [2], детально описывается алгоритм сглаживания, основанного на ДКП-фильтре. Основная идея алгоритма основана на выделение незашумленного сигнала. Представим входной сигнал как y. Тогда, мы можем промоделировать y как:

 

y = ŷ + r,                                                                    (1)

где       r — шум,

            ŷ — сглаженный сигнал.

 

Используя преобразования, описанные в [2], сглаженный сигнал ŷ аппроксимируется формулой (2)

 

                               (2)

Где:     DCTm(.) - дискретное косинусное преобразование второго типа

            DCTm-1(.) - обратное дискретное косинусное преобразование второго типа

            Γm - mxm-мерная квадратная матрица, вычисляемая по формуле 3.

Операция ○ - означает поэлементное умножение.

 

                           (3)

Где:     1m — mxm матрица единиц.

            s — внешний параметр, определяющий сглаживание.

            Λm -  mxm матрица, вычисляемая по формуле 4.

Операция ÷ означает поэлементное деление.

 

               (4)

 

Следует учесть, что y из формулы (2) является предварительно обработанным входным сигналом. Он дополнительно обрабатывается 2мя матрицами d и b. Общий алгоритм фильтра представлен в листинге 1

Листинг 1. Алгоритм фильтрации.

 

Значения параметров s, ε, λ, и Ni, подбирались эмпирически, пока не была достигнута удовлетворенность результатом. Для работы системы эти параметры были установлены следующим образом:

 

s = 10.0;

ε = 0.01;

Ni = 1;

λ = 1;

 

Результат работы алгоритма представлен на рисунках 1-2

 

 

 

Рисунок 1 — Исходный кадр глубины.                  Рисунок 2 — Отфильтрованный кадр глубины.          

 

Как видно на изображении 2, все разрывы были заполнены, а сама глубина сглажена. Данный кадр глубины пригоден для дальнейшего использования.

Сглаживание потока глубины

Алгоритм, описанный выше, сглаживает карту глубины, делая поверхность, которая будет генерироваться на APEX более гладкой — без выступов и разрывов. Однако он сглаживает лишь кадр, а в динамике колебания глубины полностью не убраны и карта продолжает меняться, даже если наблюдение происходит за статичными объектами. Данный вид помех можно уменьшить, если учитывать их влияние по времени, т. е. анализировать предыдущие кадры. Один из вариантов такой фильтрации представлен в формулах  5 — 7.

 

 

                                                  (5)

 

 

Где:     Hin — список, состоящий  из предыдущих n-1 входных кадров и нового кадра.

            Fk — выходной кадр, полученный на предыдущей итерации. На первой итерации все элементы 0.

                                                               (6)

 

                                    (7)

 

Где:     t — внешний параметр, определяющий допустимый интервал разброса значений.

Данный вариант фильтра, в первое время работы, накапливает историю кадров, которую потом модифицирует: отбрасывает самые старые кадры и заносит новые. Такой вариант фильтра оказался эффективным, потому позволяет удерживать среднее значение пикселя, если его изменения незначительны. Как было замечено из наблюдений шума в кадре глубине, значения пикселя колеблются в некотором интервале. Данный фильтр позволяет установить среднее значение интервала, в качестве выходного пикселя, но так же и учитывает то, что объекты на изображении так же могут меняться.

Результаты работы фильтра представлены на рисунках 3-4

 

 

Рисунок 3 — Плоскость, сгенерированная      Рисунок 4 — Плоскость, сгенерированная

по необработанной глубине                                  по сглаженной глубине

 

Заключение

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

Однако качество кадра глубины напрямую зависит от устройства, который его генерирует, и получение более «достоверной» глубины можно только при увеличении разрешения кадра.

 

 

Рецензенты:

Берестнева О.Г., д.т.н., профессор, Институт кибернетики ТПУ, г.Томск;

Кориков А.М., д.т.н., профессор, зав.кафедрой АСУ факультета систем управления, ФГБОУ ВПО «Томский государственный университет управления и радиоэлектроники», г.Томск.