Scientific journal
Scientific Review. Technical science
ISSN 2500-0799
ПИ №ФС77-57440

3D OBJECT RECONSTRUCTION USING RECURRENT NEURAL NETWORK

Redko A.V. 1 Rybkin S.V. 1
1 Kaluga branch of the Federal State Budget Education Institution of Higher Education «Moscow State Technical University named after N.E. Bauman (National Research University)»
В данной статье была рассмотрена модель для решения задачи реконструкции трехмерного объекта по изображениям с различных ракурсов. Разработанная модель представляет собой нейронную сеть с многослойной архитектурой, в основе которой лежит рекуррентная сеть типа LSTM (Long Short Term Memory). Представлена архитектура многослойной нейронной сети, используемой для решения задачи реконструкции. Подробны описаны основные компоненты модели: сверточная нейронная сеть, используемая для кодирования 2D изображений в вектор более низкой размерности, рекуррентная LSTM нейронная сеть, декодирующая нейронная сеть на основе сверточной архитектуры, преобразующая скрытое состояние LSTM сети в трехмерную воксельную модель. Приведено описание реализации рассматриваемой модели с использованием языка Python и библиотеки Theano. Отмечены особенности процесса реконструкции при использовании нейронных сетей LSTM типа. Выполнен анализ качества реконструкции трехмерных объектов, выполненной при помощи предложенной модели. Приведено описание метрик, которые использовались для оценки качества реконструкции. Рассмотрена зависимость качества реконструкции от различных конфигураций LSTM-сети. Указаны основные преимущества и недостатки предложенной модели реконструкции трехмерных моделей по изображениям с различных ракурсов.
In this article, we describe a model designed to solve the Multiview 3D object reconstruction problem. The proposed model is a neural network that has a multilayer architecture and it is based on a LSTM network. We describe the architecture of the multilayer neural network used to solve the reconstruction problem. All main components of the network are showed in details: a convolutional neural network for encoding 2D images to a lowdimension feature vector, a recurrent LSTM network and a deconvolutional neural network that is used to decode hidden state of the LSTM network in order to obtain a 3D object. The specifics of the reconstructions process using LSTM neural network is considered. We made the analysis of the 3D reconstruction quality. Two metrics to estimate the reconstruction quality are described. We consider the quality of the reconstruction depending on different configuration of the LSTM network. The main advantages and disadvantages of the model are showed.
3D reconstruction
3D model convolutional neural network
recurrent neural network
LSTM network

Получение трехмерной формы объекта по его изображениям с различных ракурсов является перспективным способом быстрого и качественного построения 3D моделей, которой можно найти множество различных областей применения [1–4].

Реконструкция трехмерных объектов по изображениям – это процесс получения 3D-модели объекта по набору его изображений, выполненных с различных ракурсов. В данной статье предлагается модель решения задачи реконструкции. Рассматриваемая модель представляет собой многослойную нейронную сеть, в основе которой лежит рекуррентная LSTM сеть.

Архитектура нейронной сети
для реконструкции трехмерных сцен

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

Нейронная сеть состоит из трех основных компонентов:

  • сверточная нейронная сеть для 2D изображений (Кодирующая нейронная сеть) [5, 6];
  • рекуррентная Long Short Term Memory (LSTM) нейронная сеть [7–9];
  • декодирующая нейронная сеть на основе сверточной архитектуры [5].

Принимая на вход одно или несколько изображений объекта с произвольных ракурсов, сверточная нейронная сеть сначала кодирует каждое входное изображение x в вектор низкой размерности τ(x). Затем данный кодированный вектор передается на полносвязный слой. Выход полносвязного слоя соединен со входом рекуррентной LSTM нейронной сети, которая обновляет внутреннее состояние ячеек. На последнем этапе декодирующая нейронная сеть декодирует скрытые состояния блоков LSTM и генерирует трехмерную воксельную реконструкцию. Общая схема модели приведена на рис. 1.

Кодирующая сверточная нейронная сеть

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

На вход подается RGB изображение размером 127x127 пикселей. Нейронная сеть состоит из 6 стандартных сверточных слоев. После каждого слоя свертки идет субдискретизирующий слой. В качестве функции активации для сверточных слоев используется линейный выпрямитель с утечкой (Leaky Rectified Linear Unit), который задается следующим образом:

red01.wmf

где α – малая константа.

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

Рекуррентная LSTM нейронная сеть

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

redk1.tif

Рис. 1. Схема используемой модели реконструкции

redk2.tif

Рис. 2. Кодирующая сверточная нейронная сеть

redk3.tif

Рис. 3. Структура реконструирующей рекуррентной нейронной сети

redk4.tif

Рис. 4. Обновление состояния блоков, отвечающих только за определенный ракурс объекта

Модули LSTM организованы в трехмерную сетку размером 4х4х4. Использование классической архитектуры LSTM для выходного пространства такой большой размерности достаточно сложно. Поэтому используемая нейронная сеть отличается от стандартной LSTM сети применением сверточных слоев (рис. 3). Каждый из модулей сети отвечает за реконструкцию конкретной части конечного объекта.

Каждый модуль имеет независимое скрытое состояние ht(i, j, k) и запоминаемое состояние ct. Для сокращения количества параметров обучения из классического LSTM-блока [9] был убран выходной фильтр. Вместо этого выходное значение сразу передается к следующему блоку без изменений.

red03.wmf,

red04.wmf

red05.wmf

red06.wmf.

Интуитивно такая конфигурация позволяет блоку LSTM-сети обрабатывать несоответствие между конкретным предсказываемым участком реконструкции и моделью реального объекта, так что каждый блок учится восстанавливать одну область пространства воксела вместо того, чтобы реконструировать все пространство (риc. 4).

Кроме того, в классической LSTM сети все модули соединены друг с другом последовательно [9]. Это значит, что на текущее состояние ht оказывают влияние все ht-1 элементы. В используемой архитектуре влияние на скрытое состояние оказывают только элементы, находящиеся по соседству с текущим. Количество соседей определяется размерностью используемого ядра свертки.

Декодирующая нейронная сеть

На последнем этапе используется декодирующая нейронная сеть, задачей которой является преобразование скрытого состояния (размерностью 4х4х4) к более высокому выходному разрешению (32х32х32). Количество слоёв свертки определяется требуемым в результате разрешением трехмерной модели.

Структура декодирующей нейронной сети изображена на рис. 5.

В используемой модели применяется 5 сверточных слоев. После последнего сверточного слоя результат, представляющий собой вектор red07.wmf, преобразуется к трехмерной матрице вероятности занятости вокселем каждой ячейки (i, j, k). Данное преобразование выполняется с помощью функции softmax, применяемой к каждому вокселю:

red08.wmf.

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

Функция потерь нейронной сети

Функция потерь для модели нейронной сети определяется как сумма перекрестных энтропий всех вокселей:

red09.wmf

где red10.wmf – множество входных изображений, red11.wmf – соответствующее истинное значение занятости вокселя, red12.wmf – предсказываемая вероятность занятости вокселя.

Реализация

Для реализации модели нейронной сети использовалась библиотека Theano [10]. Для обучения сети использовались 3D модели, на основе которых генерировались входные изображения и выходные сетки вокселей. Все ракурсы выбирались случайно. В качестве входных использовались изображения размером 127х127, размер выходной сетки вокселей – 32х32х32

Исходные 3D модели и их изображения были взяты из базы данных ShapeNet. Набор данных был разделен на два подмножества: 80 % данных использовалось для обучения, 20 % для тестирования сети. Для слоя LeakyReLU использовался коэффициент α, равный 0,1. Для обучения использовался метод стохастического градиентного спуска [5].

Оценка качества реконструкции

На рис. 6 приведены результаты реконструкции для некоторых моделей.

Для оценки качества реконструкции использовались две метрики. В качестве основной использовалась метрика Intersection-over-Union, равная отношению количества вокселей, получаемых при пересечении результата реконструкции с исходной моделью, к количеству вокселей, получаемых при объединении результата с исходной моделью.

red13.wmf

где I – индикаторная функция, t – порог вероятности, при котором считается, что воксель должен быть закрашен, red14.wmf – вероятность закраски вокселя (результат реконструкции), red15.wmf – закраска вокселя в исходной модели.

Чем больше значение функции IoU, тем более точная модель была получена в результате реконструкции.

В качестве второй метрики использовалась сумма перекрестных энтропий вокселей:

red16.wmf

Чем меньше значение данной метрики, тем выше качество реконструкции.

redk5.tif

Рис. 5. Декодирующая нейронная сеть

redk6.tif

Рис. 6. Результаты реконструкции объектов

Исходная трехмерная модель преобразовывалась к воксельному представлению размером 32х32х32. Затем данная модель сравнивалась с моделью, полученной в ходе реконструкции.

Было проведено сравнение качества реконструкции в зависимости от используемого размера ядра свертки.

Средние результаты для LSTM сети и ядра свертки размером 1x1x1 и 3x3x3 приведены в таблице.

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

Ядро свертки

IoU

Cумма перекрестных энтропий

1x1x1

0,499

0,116

3x3x3

0,539

0,106

 

Результаты показывают, что для ядра свертки размером 3х3х3 качество реконструкции выше. Использование ядра свертки размером 3х3х3 означает, что соседние рекуррентные блоки соединены между собой, тогда как при использовании ядра свертки размером 1х1х1 значения соседних рекуррентных блоков не учитываются.

Таким образом, была рассмотрена модель реконструкции трехмерных сцен по изображениям с различных ракурсов на основе нейронных сетей LSTM типа. Основным преимуществом использования такой сети является ее способность эффективно обрабатывать самоперекрывающиеся объекты. Если в очередном входном изображении видны детали объекта, которые ранее были перекрыты из-за ракурса съемки, то такая сеть обновит состояния LSTM для ранее невидимых деталей объекта, но при этом состояния других частей объекта остаются прежними. Это позволяет получить достаточно качественную трехмерную модель объекта по небольшому количеству входных изображений, тогда как классические алгоритмы реконструкции [11–13] требуют не менее 10 различных ракурсов для получения качественной реконструкции. Однако, в отличие от классических алгоритмов, при увеличении количества входных изображений увеличение качества реконструкции происходит незначительно.