基于开源软件的单目视觉三维重建技术研究

2022-01-12 11:57刘睿
工程技术与管理 2021年23期
关键词:三维重建开源纹理

刘睿

中煤(西安)地下空间科技发展有限公司,中国·陕西 西安 710000

1 引言

三维重建经过数十年的发展,已经取得巨大的成功。基于视觉的三维重建在计算机领域是一个重要的研究内容,主要通过使用相关仪器来获取物体的二维图像数据信息,然后对获取的数据信息进行分析处理,最后,利用三维重建的相关理论技术重建出真实环境中物体表面的轮廓信息。基于视觉的三维重建具有速度快、实时性好等优点,能够广泛应用于人工智能、机器人、无人驾驶、SLAM、虚拟现实、3D打印和高精度模型建立等领域,具有重要的研究价值,也是未来发展的重要研究方向。

虽然三维重建技术发展迅速,但对于想使用该技术的普通人员来说,仍有技术与软硬件设备的壁垒。为此,论文对近些年来基于视觉的三维重建技术方法的主要技术路线进行对比和分析,总结一条个人低成本的三维重构技术路线。

在接下来的章节中,论文从现有技术分析总结和开源软件的技术路线实现三维重建的两个方面进行研究。具体安排如下:总结三维重建的方法分类及单目视觉法的优缺点;重点说明开源软件的三维重建技术研究;总结该技术的优缺点及发展。

2 三维重建方法

从整体上来看,三维重建技术主要通过视觉传感器来获取外界的真实信息,然后通过信息处理技术或者投影模型得到物体的三维信息,也就是说,三维重建是一种利用二维投影恢复三维信息的计算机技术。1997年,Varady等[1]将数据获取方式分为接触式和非接触式两种。2005年,Isgro等[2]又将非接触式方法分为主动式和被动式两类。其后,在各自的方式方法中又细分出大量三维重建技术,各个三维重建技术的分类如图1所示[3]。

图1 三维重建技术分类

其中,被动视觉法的单目视觉法对比其他的方法研究价值更高,因为该方法法简单、可靠、灵活、适用范围广,克服了立体视觉中视场小、立体匹配难的不足。但是缺点是不能够得到深度信息,只能通过软件算法优化,匹配特征点等方式进行自动化重建,常用的算法软件包括大疆智图Terra、Context Capture(原Smart3D)、Reality Capture、123D Catch等大场景的三维重建商业软件与免费的在线重建软件,商业软件收费昂贵,免费在线软件需要登陆外网平台,但对于想了解三维重建的新人来说,也存在一定学习门槛。

经过不断地探索研究,最终确定了使用手机摄像头拍摄照片,利用开源软件Meshroom自动建模、Instant meshes快速减面和Blender纹理烘焙,来实现低成本的三维重建技术。

3 基于开源软件的三维重建技术研究

物体的重建首先需要采集有效的影像资料,并利用计算机信息处理与自动建模技术建立出所拍摄的物体模型,论文采用Meshroom自动建模。通过这种方式建立出的模型三角面数量与精细程度将会非常高,但有一个问题,高面数且多边面的模型,就会占用很多计算资源,这对于虚拟现实、3D打印、高精度模型等应用都是不利的。所以,需要对这个精细的高模,在通过自动或手动的方式,制作一个由四边面构成的,面数非常低的低模,这个过程叫拓扑,论文使用Instant meshes重拓扑。再通过展开低模的UV,通过专业软件,把高模上的细节用各种贴图分别映射到低模上,这个过程叫烘焙纹理,论文使用Blender烘焙纹理。

3.1 扫描拍摄

相机设备的准备即可使用专业相机,也可用手机进行拍照。但需注意的是手机拍照应该使用专业模式,锁定焦距,避免景深的产生,同时配合专业云台或稳定拍照,确保照片不出现拖影现象,禁止使用闪光灯。

被拍摄物体,首先需要避免阴影、透明、高反射及纯色物体,如果涉及该类型物体,可采用如喷涂透明或高反射物体,增加光源或减少地面接触来减少阴影等方式进行处理。照明推荐柔和光或间接光,避免强光产生阴影。背景需要有一定纹理,方便软件做对比分析。

拍摄模型重建对象的每一部分应至少3个不同的视点(但比较接近)进行拍摄。一般来说,连续影像之间的重叠部分应该超过60%。物体的同一部分的不同拍摄点间的分隔应该小于15°,如图2所示。

图2 物体拍摄手法

照片的采集是整个三维模型重建过程中非常重要的一步,重建结果的好坏往往与照片采集有很大的关系,而不是软件操作的问题,影像分辨率高、重叠度大、清晰度高,拍摄光照条件好,建成的三维模型效果就会好。

3.2 Meshroom自动建模

在MESHROOM官网进行下载及安装。节点编辑器界面中软件已自行配置好节点,无需手动添加,只需导入拍摄好的照片组,再点击开始便可直接进行自动建模,成果可在3d预览窗口点击载入模型进行查看。如需设置更加详细的参数、算力及细节捕捉情况,可进入节点进行逐一了解,如有意见反馈和常规问题可登录https://github.com/alicevision/meshroom/issues进行查找,这里不做过多说明。

3.3 Instant meshes重拓扑

MESHROOM自动建模完成的模型为OBJ格式,文件在纹理节点(Texturing)右键打开文件夹中查看,但此模型面数庞大,论文使用Instant meshes开源软件进行重拓扑。在Instant meshes官网进行下载及安装。

使用Instant meshes开源软件重拓扑之前,也可将其导入Blender中对多余面、无效面、破洞等进行删除与修改,在另存OBJ格式进Instant meshes进行工作。在Instant meshes的载入网格中加载我们需重拓扑的模型,设置一个预期的目标模型顶点数量,点击定向场与位置场的处理,便可进入导出网格中的提取网格进行查看。该软件还可设置转换网格的结构、对齐边界、调整与修改布线的形态趋势等功能,同时还会显示生成奇数点的数量与位置,可对其进行修改与完善。调整完毕之后另存该网格文件,文件类型为OBJ格式,需注意文件名后加入后缀.obj才可保存成功。

3.4 Blender烘培纹理

使用Instant meshes重拓扑后,物体模型的纹理结构将会丢失,而原始网格自动生成的UV映射也无法直接使用,所以我们需要对其进行纹理烘培,论文使用Blender开源软件进行纹理烘培。在Blender官网进行下载及安装。

由于Blender软件是一款三维图形图像软件,设计的操作与流程较为繁琐,这里不做过多说明,只提供技术路线作为参考。首先对网格进行UV展开,BLENDER中有UV智能映射,之后给重拓扑后模型添加图像纹理,新建一个空白图像,就可以为这个空白图像烘培纹理。Blender烘培纹理须在Cycles渲染引擎下才可使用,烘培类型为漫射,仅影响颜色,通过所选物体到活动物体的纹理烘培,便可进行烘培,想要进一步提升烘焙效果可以开启罩体后烘焙。烘培完成后,便会得到我们需要的纹理图像,如果需要对细节进行更深入的调整,如AO(Ambient Occlusion)、糙度、法线等,也可在Blender中进行设置。

至此,物体的三维重建工作便得以完成。

4 结语

该技术方法全程使用开源软件,不仅对比付费软件能省下一笔资金,还能在深入了解软件特性后对其进行二次开发,如Meshroom自动建模软件可通过架设服务器对大场景模型进行自动重建;Blender二次开发的便捷重拓扑插件Quad Remesher等,并且经过对比与测试,该套技术方案无需连接互联网,运行稳定流畅,操作步骤节点化、规则化,并在中国有中文翻译的版本,有利于初学者对三维重建技术的探索与学习。

虽然该技术流程十分便利,但也存在一定的局限。单目视觉分类方法体系庞大,分类众多,但是必须要满足一些假设条件,而且容易受到光照、纹理等其他一些因素的影响,通用性较差,重建效果与拍摄的照片效果有很大关系,对比其他的三维重建技术重建效果不确定性较大,并且对于非静态物体该技术基本无法使用。

虽然有着不少的缺点,但是相信随着硬件技术的升级,如Iphone新加入的基于红外结构光的深度相机,手机的不断增加的多摄像头等,更高效地将视觉传感器获取的三维信息与其他多传感器信息进行融合;在软件层面将视觉特征的检测与匹配速度及精度进一步提升,从而满足基于视觉的三维重建在复杂环境中的应用。相信基于开源软件的单目视觉三维重建技术一定能够得到长足的进步。

猜你喜欢
三维重建开源纹理
基于BM3D的复杂纹理区域图像去噪
基于Mimics的CT三维重建应用分析
五毛钱能买多少头牛
使用纹理叠加添加艺术画特效
TEXTURE ON TEXTURE质地上的纹理
基于关系图的无人机影像三维重建
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
消除凹凸纹理有妙招!