姚晓峰 武利秀 章 伟 王 松
(无锡太湖学院江苏省物联网应用技术重点建设实验室 江苏 无锡 214000)
传统的三维重建方法大部分是借助现有的计算机辅助设计软件(CAD,Maya等),通过专业三维制图工程师使用大量的时间和手工方法对真实世界的场景进行三维几何重建。该方法建造的场景具有较好的交互性,但模型真实感不太强,而且大多数辅助设计软件具有很高的学习成本,工作量大,要想完成一个建模工作需要大量的人机交互工作,使得工作效率极大降低。这对于一些不需要高精度建模的使用者望而却步。为此,如何寻找更快速的三维建模手段成为研究人员的新的研究方向。一种新的角度就是从图像出发,通过对图像信息的分析与处理,提取三维信息,用来实现三维场景的重建技术。为此,本文提出了一种采用RGBD图像进行三维场景重建的方法。用户首先通过Kinect摄像机获取到一张室内场景的RGBD图像,然后利用图像分割技术将图像分割成单一的场景元素块。由于遮挡等问题使得分割结果有可能达不到满意的效果,用户可以手动对分割图像进行相应的调整。分割之后,用每个元素块的深度图去和三维模型库中的室内元素模型进行匹配,从而使其还原到三维场景中。针对大型的场景图像,每个单张的图像只需要覆盖一部分的场景,从而用户可以通过一组图像重建整个场景。
本文创新点如下:
1) 通过三维模型渲染的方法获取部分数据以扩展训练数据集,并结合部分真实数据集,得到充足的训练数据以用于模型匹配的三维重建方法的模型训练上。
2) 通过改进现有的卷积神经网络模型,将图像分类的思想引入本文问题上,把室内场景元素的三维重建问题转化成一个分类问题去解决。
理想情况下的三维场景建模方式是基于单图像的建模方法,采用立体视觉的方式对三维场景进行重建[1-2]的研究较多。该方法需要拍摄多幅同一物体的图像作为参考,或者从不同视点对物体进行数据采集,并从中提取相关特征以用来达到物体三维重建的目的。单幅图像的明暗[3]、焦距[4]、纹理[5]等线索是基于单幅图像三维场景建模技术的十分重要的特征来源。但是,这些线索通常对图像质量要求很高,使得在不同光照条件和物体遮挡下的效果变得很差,极大地限制了基于单幅图像进行三维场景建模的发展,使得这项技术只能在某些特定的场合下完成三维场景重建问题。这就促使科研人员找到其他途径去解决该问题。引入人机交互方法应用于三维场景重建问题[6-7],恰当的人机交互使得三维重建技术的相关难题得到有效的解决。文献[8]提出了数据驱动的三维建模方法,通过图像处理、三维检索等技术把已有的或者自己创作的三维模型结合起来,可以迅速地实现他们的设计创意。针对三维场景的建模问题,文献[9]把上述数据驱动的三维重建方法通过进一步的组装,并对之进行建模,极大地推进了三维场景建模问题的进展,使得三维场景建模变得更加方便。这种方法把三维场景模型库中的模型作为单个部件,通过部件之间的有机联系组装起来,从而得到新的三维场景模型。文献[10]提出一种基于图像的三维建模方法,通过对单张图像的分析,匹配到三维物体模型库中的模型,然后进行旋转平移等变换,用来作为三维建模的组件。这类方法对三维模型库要进行大量的手工预处理工作。基于草图的三维模型的几何重建是另一种三维场景建模方法。文献[11-12]提出了一种基于草图的模型检索方法,通过输入草图,在三维模型库中匹配与之对应的三维模型的技术。文献[13]在此基础上提出了一种基于草图的三维建模方法。随着触屏技术的发展,这项技术有了更加广阔的前景。通过触屏的概念,能够动态的指引用户迅速完成三维建模任务。文献[14]把三维建模技术转换成搭积木工作,在系统后台准备大规模的三维模型组件,让用户手动的组装创意,并和用户手绘的元素进行有机的结合,让三维建模技术变得有趣起来。文献[15]提出部件组装的三维重建方法,利用这些残缺的点云信息和三维检索技术所得到的高质量的三维模型进行有机结合,对残缺部分进行修复和拼接从而达到三维重建的目的。通过修复三维扫描仪获取残缺的场景点云模型以达到三维场景重建的目的是该方法的核心。文献[16]提出了一种基于深度相机的三维场景重建方法。文献[17]提出了一种交互式语义建模的方法,通过提取场景的深度信息进行分析与处理,从而达到三维场景重建的目的。文献[18]也针对这类方法进行了研究。这类方法主要是通过扫描真实场景获取RGBD信息,然后利用这些信息和三维模型数据库之间的联系,通过语义信息解决三维场景重建问题。研究人员对三维场景的点云信息进行分割,获取单个物体的三维模型,从而恢复到原来的三维场景中去,完成三维场景的建模工作。这类方法虽然能够取得很好的效果,并且有很高的效率,但是场景的点云信息的获取成为了制约技术发展的绊脚石,也许在不久的将来,手持的深度相机的发展能够弥补这个问题,但现阶段这类方法还不能很好的推广。
在对RGB图片进行语义分割的基础上,本文提出一种基于卷积神经网络的模型匹配方法,在三维模型库中匹配到和已知图像块最类似的三维模型,然后把它放到适当的位置,就可以重建三维场景。模型训练集是图像分割后的图像块,标签是它们对应的精确分类,例如椅子包含各种不同靠背、支撑形式以及形状的椅子。卷积神经网络对图像分类问题中具有很好的精确度。
由于不同的场景元素所包含的精分类的类别并不相同,针对每个元素主体设计不同的网络结构来达到分类匹配目的。此处不同元素的网络结构大体类似,故本节以椅子作为主要描述对象。我们获取到34个不同的椅子三维模型,即总共有34个椅子的精分类类别。
如图1所示,本网络结构有三层卷积层以及两层下采样层组成。网络结构中每层卷积层后都添加激活函数,这里选择RELU函数,其公式为:
f(x)=max(0,x)
(1)
图1 卷积神经网络结构图
使用RELU激活函数有三点好处:一是RELU函数在网络训练阶段计算量小,效率高;二是sigmoid激活函数容易出现梯度消失现象,RELU则可以避免这种状况;三是RELU会使得部分神经元输出为0,减少了参数之间的相互依存关系,对防止过拟合有一定作用。
本文模型的输入数据是语义分割后得到的场景元素图像块的深度图,输出是该图像块所属的精分类类别。为了得到该分类模型的训练数据,首先通过一些免费设计素材网站下载并整理室内场景三维模型,并搜索与之对应的真实RGB图像,通过三维投影的方法,手动渲染了带类标的深度图像。然后通过对NYU室内场景图片数据集的语义分割,手动标注了部分真实场景中的数据,混合形成本实验的训练数据集,用来训练网络模型。如图2所示,NYU室内场景数据集由微软的Kinect相机拍摄的各种室内场景的视频序列组成。
图2 NYU数据集样本
本文所提出的基于模型匹配的三维重建技术其实就是把重建方法转化成一个分类问题。所以,分类问题的评价指标便是本实验的评价标准,即模型匹配的准确率。
通过对比现阶段流行的深度学习框架,选择了高效灵活的Caffe框架作为实验环境。实验环境配置如下:core i7处理器、NIVIDIA GTX980 GPU、16 GB内存、Caffe、Python。
在进行网络层数的选择时,主要考虑耗时和准确率的问题,由于深层的深度神经网络无论是在训练阶段还是测试阶段,网络层数多而导致的计算过程中大量的矩阵运算会增加耗时,所以尽可能在保证准确率的情况下选择浅层卷积神经网络是十分重要的。为此,本文设计一组关于卷积神经网络层数对匹配效果影响的实验,分别是1~5层卷积层的神经网络结构搭配对应的采样层来进行试验。实验效果如表1所示。
表1 不同层数网络结构定量分析
表1中的耗时指标为单张图像块进行一次模型匹配所耗时长。可以看出,当网络深度逐渐增大时,进行模型匹配的准确率有一定的增加,但深层的神经网络又增加了测试时长,使得该算法在实际应用中没有很好的使用价值。且在3层卷积结构,即整体网络层数为7层时,准确率和耗时都在合理范围内,而继续增加网络深度,对准确率的提升并不明显,反而会增加耗时。故在后续实验中,将选取3层卷积层,2层下采样层作为最终网络结构,即前文所提出的卷积神经网络模型。
在实际室内场景中地板、天花板、墙和背景不需要参与三维模型匹配。椅子、桌子、沙发、柜子、床和显示器这六种室内场景元素是有很多精分类的对象,故本实验以这六种元素作为讨论对象。为了对比本文所提出的方法和一些传统的图像分类模型的效果,本文使用Cifar-10和LeNet-5网络结构做出相关对比实验,结果如表2所示。
表2 不同结构精度对比
通过三维匹配得到模型,从而将匹配得到的室内场景元素三维模型和深度图构建的残缺点云模型相结合,得到一个大致的室内场景三维重建模型。
由表2可知,本文提出的基于匹配的三维场景重建技术能达到比较好的效果。该算法重建的室内场景三维模型基本能够还原真实场景的场景画面。但是有些区分度不高的元素,例如显示器和床等,大部分显示器都具有雷同的外观,尤其是在对其进行图像分析过程中所产生的误差,使得其最终的模型匹配准确率整体偏低。
实验选取的Cifar-10网络结构和LeNet-5网络结构,都是传统的图像分类方法上效果比较好的模型,针对这些模型进行改进,使它们适应本文问题的应用场景,训练模型所得结果对本文模型的验证有着很大的参考价值。在大部分场景元素的匹配中,本文算法都能够取得相对较高的水平。通过实验验证了本文所提的基于卷积神经网络的三维场景建模方法是一个高效可行的解决方案。
本文提出并实现了一种基于卷积神经网络的三维场景重建方法。在对2D图像进行语义分割的基础上,提取分割后的室内场景元素图像块,训练了一个基于卷积神经网络的三维模型匹配模型,然后将匹配得到的三维模型结合深度图构造的残缺三维模型,进一步进行组合,从而完成室内场景的三维重建工作。并通过实验验证了该方法的可行性和优异性。随着深度学习等技术的发展,一些新的基于深度学习的图像分类算法将会使图像分类技术得到很大的发展。这是本文三维模型匹配算法的核心,在这方面进行进一步研究可以提高三维模型匹配算法的准确率,使得整个三维场景重建的效果变得更好。