基于单幅图像的物体三维重建是计算机视觉领域的一个重要问题, 近十年来得到了广泛地关注. 随着深度学习的不断发展, 近年来逐渐成为一个新的学术研究热点问题.
计算机视觉研究的主要目标之一是从二维图像复原三维结构. 二维图像是当今时代极易获取的数据形式, 互联网上每时每刻都在产生海量的图像数据, 而三维模型相对难以获取. 目前已经有许多基于多幅图像的物体三维重建方法被提出, 而基于单幅图像的物体三维重建问题因其输入形式的特殊性使得更具挑战性.仅以单幅图像作为输入使得重建丢失了很多几何信息, 这就需要一些假设或者先验知识, 亦或是从已有的模型基于学习来进行重建. 评价基于单幅图像的物体三维重建的重建精度目前仍没有一个固定的标准, 一些传统方法采用hausdorff距离作为评价重建效果的标准, 而随着深度学习的不断发展, IoU(Intersection over union)值被引入, 且被大多数论文采用为评价标准, 此外亦有论文采用更注重物体几何外形的CD(Chamfer distance)值等.
基于图像的三维重建具有重要的实用价值和应用前景. 随着互联网及电子商务的发展, 很多商家或者企业开始利用三维模型来帮助自己进行产品的展示与推广. 三维模型与二维图像相比, 因为多了一维信息,所以更能将物体的真实感和细节的质感与纹理表现出来. 同时, 在诸如虚拟现实、城市数字化建模、文物数字化保护、医学CT器官重建、三维影视动漫制作等领域, 基于图像的三维重建也具有广泛的应用. 多目图像三维重建往往需要相机标定等额外操作, 相比之下基于单幅图像的三维重建因其输入简单, 更适合于需要便捷式三维重建的应用场合, 因而近年来逐渐成为一个新的学术研究热点问题.
然而基于单幅图像的三维重建常常面临来自以下几个方面的挑战:
1) 类内差异和类间差异
不同的重建物体即使是同一个类型, 也会因为材料、外形等存在较大的差异性. 而不同类型的物体, 亦可能存在较大的相似性. 如果只是针对某个特定类别的物体进行三维重建往往会使重建系统缺乏一般性, 而针对多类别的重建系统则会因较大的类内差异和较小的类间差异使得重建精度不高, 如何构建既具有一般性又重建精度高的三维重建算法是目前研究的重点.
2) 图像自身属性
真实世界视图中的物体往往存在着遮挡、非刚性变形等现象, 且很多时候不满足理想的朗伯特反射模型, 这就使得待重建的物体存在较大的多样性, 因此对重建算法提出了更高的要求.
3) 不适定问题
基于单幅图像的三维重建本身就是一个不适定问题(ill-posed problem), 即由于输入形式为单幅图像, 深度信息不可避免地丢失, 如果不给定一些先验知识或者假设, 其重建结果是不唯一的. 如何根据一些假设和先验知识来重建出最适合的模型, 以及如何提供最少的假设和先验, 这对三维重建工作提出了不小的挑战.
随着深度学习技术的不断发展, 很多基于深度学习的三维重建方法近几年开始被提出, 逐渐成为该领域近年来研究的重点.
基于单幅图像三维重建研究的常用数据集 为了更好的研究基于单幅图像的物体三维重建, 构建大规模的三维模型数据集成为必然要求. 目前有多个三维模型的公共数据集供科研人员使用.
1) PASCAL 3D+数据集
PASCAL VOC数据集是在图像识别、图像分割和目标检测等领域经常使用的大型数据集, 它的广泛使用也推动了计算机视觉领域的不断发展. 而PASCAL 3D+正是基于PASCAL VOC 2012的12种刚体类别的图像,为它们添加了三维模型标注的数据集, 其每一类通过ImageNet扩展得到更多的图像, 最终每一类平均有3000左右的物体. 该数据集图像物体变化较大, 且包含遮挡和截断的物体, 能够更好的反应真实世界中的变化.
2) ShapeNet数据集
该数据集是由物体的三维CAD模型组成, 它也是目前为止包含丰富注释的最大的三维模型数据集. 其在WordNet分类下进行组织, 为每一个三维模型提供许多的语义注释, 包括物理尺寸、关键字等, 注释可通过基于Web的界面提供, 以实现对象属性的数据可视化. ShapeNet共包含超过300万个模型, 其中22万个模型被归类为3135个类别. 如下图为ShapeNet数据集部分三维模型示例.
3) Online Products数据集
该数据集包含在线销售的23000个物体的图像. 由于存在宽基线的问题, 传统的MVS和SFM方法无法通过这些图像进行重建.
4) ModelNet数据集
该数据集是当前规模较大、模型类别较多的一个大型CAD数据集, 收集了各类3D CAD网站, 3D Warehouse以及Princeton Shape Benchmark 660 种共计151125个CAD模型.
5) IKEA Dataset
该数据集收集了来自Google 3D Warehouse的225个IKEA的三维模型和从Flickr得到的800幅图像, 分为IKEA家具和IKEA房间两个部分, 主要集中了室内家具的模型, 模型类别及数量相对较少, 同时部分图像存在遮挡. 该数据集的每一幅图像都标注其关联的三维模型, 可以借此评估三维重建的效果.
随着深度学习的不断发展和三维数据集的不断完善, 基于单幅图像的三维重建取得了较大的进展, 与传统手工设计的方法相比, 基于深度学习的端到端的训练方法能够直接以单幅图像作为输入, 并以重建的三维模型作为输出, 其提取特征效率更高, 重建效果更好. 同时深度学习使用诸如dropout等稀疏化网络参数的方法来防止过拟合, 以此来利用大规模的数据, 其具有更好的泛化性. 正如人看到二维图像即可联想到它的三维表示, 基于深度学习的单幅图像重建也越来越趋向于与人类认知三维物体方法相同的无监督学习, 也有越来越多的网络融合了单幅图像和多幅图像两种方式, 使得重建能够更加灵活.
综上所述, 基于深度学习方法相较于传统的方法拥有较多的优势, 并且在这一领域逐渐取得了显著进展, 但是与此同时在这一领域也存在着一些问题:
1) 公共数据集较小
对于一个三维重建任务来说, 增加训练数据的种类和规模可以增加学习的泛化能力. 但是与目前千万级的二维图像数据集想比, 三维公共数据集规模小、种类少. 即使是近年来发布的较大的数据集ModelNet也仅仅包含了来自662个类的127915个三维外形. 相信随着深度学习在三维领域的不断深入, 在未来会涌现出更大规模的三维公共数据集.
2) 重建分辨率及精度问题
三维物体相较于二维多了一个维度, 基于体素的重建随着重建分辨率的增加, 物体体积成立方体增长,使得受限于计算和内存, 重建物体常见的分辨率是32×32×32. 这样分辨率的重建结果是非常粗糙的, 离真实物体还有较大差距. 即使有针对这一问题提出改进的方法, 但改进后仍然无法达到较为精密的重建效果.而在以主要依赖于大规模多样性标记数据集的监督学习的方法中, 在实验中与真实模型的对比, 其重建精度也未达到0.85以上. 要提高基于体素重建的分辨率, 还要考虑三维体素的稀疏性, 未来针对如何在基于体素的重建中提升计算效率, 避免在未占用的部分浪费过多内存, 提高重建的分辨率以及如何改善网络结构以提高重建效果, 能够恢复更多细节, 这些仍然是未来值得关注的问题.
3) 基于点云和网格重建的问题
图像是结构化的, 可以表示为二维平面上的一个矩阵, 基于体素的重建使模型通过体素化变为二值模式, 也保证了大小的相同. 但三维点云和网格都是不规则的数据形式, 这使得学习方法的应用存在问题, 由于欧几里德卷积运算不能直接应用, 这些数据表示不能很好地适应传统的CNN. 目前针对该问题仅有少数前期探索工作, 其主要思路有: 1)将三维点云或者网格数据转化成二维图像, 再在神经网络中提取特征. 2)设计适应原始三维数据特点的网络模型, 如结合GCN的网络模型. 3)在三维外形上手工提取低级特征, 再采用深度学习模型提取高级特征. 但总体而言, 该问题仍未得到很好地解决, 如何设计能适应原始三维数据特点的深度学习模型, 如何设计点云生成网络的损失函数仍旧是未来一个值得研究的课题. 而基于网格的重建, 如何生成具有不同拓扑的对象, 仍然是一个具有重要意义的研究方向.
4) 单幅图像重建的不适定问题
正如在传统方法中所提到的, 对一幅图像的三维重建, 特别是对一幅来自真实世界的图像(区别于从CAD模型中生成的二维图像), 其不可见部分的几何外形需要猜测, 一幅图像往往可能对应多个不同的重建模型, 且他们均可以看作是该幅图像的重建结果. 从统计的角度来看, 输入图像的合理预测形成一个分布. 反映在训练集中, 两个看起来相似的图像可能具有相当不同的重建结果. 如果将这个问题看作一个回归问题,这就与传统的只有一个对应真实模型的三维重建大有不同, 定义正确的损失函数就显得尤为重要. 针对这一问题Fan等通过VAE的网络结构和其定义的MoN损失使得网络能对单幅图像生成多种可能的重建结果, 该方法进行了一次有益的尝试, 但在实现细节和准确度上仍有提高的空间.
5) 三维模型的表示形式和评价指标
与深度学习在二维图像中的应用不同, 目前人们仍然还在探索什么样的三维表示是最准确有效的, 因此基于体素、网格、点云表示的方法也都不断涌现. 而同样, 在对基于单幅图像的三维重建的评价标准上,至今也仍旧没有一个完全统一的定论, 哪种评价指标最能够反映重建的效果, 仍然有待进一步研究.
文章信息:陈加, 张玉麒, 宋鹏, 魏艳涛, 王煜. 深度学习在基于单幅图像的物体三维重建中的应用. 自动化学报, 2019, 45(4): 657-668.