三维重建是计算机视觉领域的主要目标之一,人类生活在一个三维立体的世界中,如何给予计算机理解三维世界的能力是三维重建的主要任务。
近年来,Deep Learning(以下简称DL)在计算机视觉上的应用在2D图像方面几乎已经无孔不入。不论是检测,分割还是分类,DL已经成为了图像处理的主要方法。然而目前 DL在三维重建方面的应用还比较少,例如在Image-based 3D Reconstruction方面,传统的SFM方法仍然是公认的较为优秀的主流方法,而DL在这方面的应用还不成熟。今天给大家介绍的这篇文章就是利用DL基于RGB图像进行三维重建。
此文[1]采用深度学习的方法将2D图像到其对应的3D Voxel模型建立映射关系。此文的网络结构如下图所示:
网络架构示意图(图片来自论文[1])
利用2D CNN对输入的图片进行编码(encode),之后将编码提取到的特征输入到本文的核心部分3D Convolutional LSTM中进行学习,最后用3D Deconvolutional NeuralNetwork对其进行解码(decode)输出。该神经网络通过关键的3D-LSTM结构对输入的图片序列进行有记忆地学习,保持图片之间的相关性和联系性。
网络架构示意图(图片来自论文[1])
一. 网络结构
1. Encoder: 2D-CNN
首先将127*127的图片输入到2DCNN中进行编码(encode)提取特征。这是一个带有残差网络的CNN网络结构,通过层层卷积后全连接层得到的是一个1024维的向量。
2. Recurrence: 3D Convolutional LSTM/GRU
这部分是本文的核心,LSTM和GRU是RNN的一种,通常用于输入为序列并具有相关性的情况。假若我们对一个物体拍摄多角度的图片,在对该物体进行三维重建时,每个角度的图片都是具有高度相关性和连续性的,因此可以将同一个物体不同视角的图片看作连续的序列输入到神经网络中,使神经网络拥有对之前图片的记忆性。本文作者基于这个思想,设计了3D Convolutional LSTM和3D Convolutional GRU。利用该单元排列成3D网格结构,每个单元接受一个图片编码后的feature vector和上一个单元的隐藏状态,通过计算后将其输入到decoder中。
3D-LSTM结构如下图所示:
3D-LSTM结构示意图(图片来自论文[1])
3. Decoder: 3D Deconvolutional Neural Network
图片序列经过3D-LSTM后被输入到3D反卷积网络中进行decode,最后输出一个32*32*32的体素空间。在这个空间中,若该位置有体素,则为1,若该位置无体素,则为0。
4. Loss: 3D Voxel-wise Softmax
本文采用的Loss定义为所以体素的交叉熵的和,以下为Loss公式。该公式中,X代表输入的图片序列,y(i,j,k)表示ground-truth,p(i,j,k)表示预测该体素点存在体素的概率。
5. IoU: Intersection-over-Union
本文采用IoU作为评价指标,该评价指标越大越好。公式如下,其中,I(x)为指示函数,t表示阈值。若概率大于该阈值则该位置存在体素。
二. 训练过程
作者用ShapeNet [3] 数据集对模型进行训练。输入为127*127*3的图片,经过该模型后,输出为32*32*32的体素空间。
三. 实验结果
1. Multi-view Reconstruction Evaluation
作者用ShapeNet [3] 的测试集对模型进行了测试。并与Karet al. [2] 的研究进行了对比,以下为对比结果,评价指标为IoU(越大越好)。
ShapeNet测试集实验结果(图片来自论文[1])
以下为不同视角数量的结果对比,可以发现同一物体的视角越多,重建效果越好。
ShapeNet测试集实验结果(图片来自论文[1])
2. Single Real-World Image Reconstruction
作者将ShapeNet数据集训练过的模型用PASCAL 3D [4] 数据集进行fine-tune,希望从单张真实世界的图片进行三维重建,并将实验效果与Kar et al.的方法进行了对比,下图(a)为优秀结果展示,(b)为失败结果展示。
单张真实图片重建效果展示(图片来自论文[1])
3. Reconstructing Real World Images
作者用OnlineProducts [5] 数据集对该模型进行了测试。该数据集为网络上收集的一些物体的真实图片。结果如下,其中(a),(c)为理想的重建结果;(b),(d)为不理想的重建结果。
Online Products数据集测试效果展示(图片来自论文[1])
4. Multi View Stereo(MVS) vs. 3D-R2N2
作者将本文方法与传统三维重建方法MVS [6]进行对比。当拍摄到的图片数量太少或特征点太少时,MVS会难以得到足够信息进行重建,而3D-R2N2则可以克服这个困难。以下为实验结果展示:
3D-R2V2 vs. MVS结果图展示(图片来自论文[1])
(a)图展示了纹理强度(即特征点数量)对两种方法的影响。(b)图展示了一个物体的观察点数量对两种方法的影响。
3D-R2V2 vs. MVS结果图展示(图片来自论文[1])
(c),(d),(e)分别为20个视角,30个视角,40个视角时MVS的重建效果;(f),(g),(h)分别为20个视角,30个视角,40个视角时3D-R2N2的重建效果。可以明显看出,当输入图片数量较少时,本文的方法是优于传统方法的。但本文方法的缺点在于重建精度不够高。因此本文提出的模型适用于图片数量少或特征点较少的情况。
四. 总结
本文设计了一个3D神经网络架构以深度学习为思想实现了物体的三维重建。该模型可以在图片特征点过少或图片视角数量不足的情况下进行三维重建。其缺点在于重建后的模型精度低,无法完成精细的三维重建任务。相信未来通过深度学习进行三维重建的研究将朝着模型高精度的方向探索前进。
五.参考文献
[1] Choy, Christopher B and Xu, Danfei and Gwak, JunYoung and Chen, Kevin and Savarese, Silvio: 3D-R2N2: A Unified Approach for Single and Multi-view 3D Object Reconstruction. ECCV (2016)
[2] Kar, A., Tulsiani, S., Carreira, J., Malik, J.: Category-specificobject reconstruction from a single image. In: Computer Vision andPattern Recognition (CVPR), 2015 IEEE Conference on. IEEE (2015)
[3] Chang, A.X., Funkhouser, T., Guibas, L., Hanrahan, P., Huang, Q., Li,Z., Savarese, S., Savva, M., Song, S., Su, H., Xiao, J., Yi, L., Yu,F.: ShapeNet: An Information-Rich 3D Model Repository. Tech. rep.,Stanford University — Princeton University — Toyota TechnologicalInstitute at Chicago (2015)
[4] Xiang, Y., Mottaghi, R., Savarese, S.: Beyond pascal: A benchmark for3d object detection in the wild. In: Applications of Computer Vision(WACV), 2014 IEEE Winter Conference on. IEEE (2014)
[5] Song, H.O., Xiang, Y., Jegelka, S., Savarese, S.: Deep metriclearning via lifted structured feature embedding. ArXiv e-prints(2015)
[6] Openmvs: open multi-view stereo reconstruction library (2015),https://github.com/cdcseacave/openMVS, [Online; accessed14-March-2016]
领取专属 10元无门槛券
私享最新 技术干货