APP下载

基于深度相机的实时室内三维信息采集方法

2021-07-07朱思雨骆汉宾

土木工程与管理学报 2021年3期
关键词:立方体重构建模

雷 蕾,朱思雨,骆汉宾

(华中科技大学 土木与水利工程学院, 湖北 武汉 430074)

随着中国城市化进程的不断推进,城镇老旧小区改造需求日益凸显,城市的发展从传统城市向信息化、智慧化城市迈进[1]。准确、及时的数字化工程信息的采集是推动建筑业数字化、智能化的重要支撑工具[2]。相较于传统的图片、视频等二维数据采集,三维数据的收集与分析也受到越来越多的重视。包含建筑几何形状和特征信息的三维模型使建造过程可视化、可分析,有助于缓解涉及多个参与方的建设项目中的冲突,解决传统施工中信息获取不连续、信息丢失、信息存储困难等问题[3]。在实际工程应用中,以日或周定期获取施工现场的三维模型代替传统的手工编制在工程进度管理、现场管理方面的作用愈发显著。特别是室内装修工程,其施工工作面有限而且施工内容复杂,因此对施工次序和进度安排较为敏感,基于三维模型的实时自动化进度监测可避免资源不必要的浪费[4]。

在生成建筑三维信息模型方面,国内外学者做出了相关的研究。研究主要分为两个方向:(1)基于BIM(Building Information Modeling)的参数化三维建筑模型,辅助建筑工程的设计管理、进度管理;(2)利用激光扫描仪、数码相机、深度相机等设备获取数据重建基于点云的场景模型,用于施工进度管理、现场管理和建筑物损伤测定。BIM技术是最早应用于三维建筑模型的数字技术,在工程领域应用最为广泛。BIM模型包含了建筑物整个生命周期的信息,能有效提高工程全寿命周期管理水平。Matthews等[5]研究了BIM在信息传递方面的有效性,设计实时面向使用对象的双向系统,实现钢筋混凝土结构施工进度监控和管理。林佳瑞等[6]针对工程施工进度与资源均衡的关键需求,建立一个基于4D-BIM模型解决进度-资源均衡问题,通过4D-BIM模型进度及资源信息与离散事件仿真模型的转化机制,实现进度-资源均衡模型的自动构建。随着三维建模技术的不断发展,一些专家学者应用基于点云的三维建模方法于工程中,利用数码相机、激光扫描仪获取点云数据对目标建筑物进行三维建模。Golparvar-Fard等[7]提出自动化进度监控模型,针对既有建筑,将基于现场图片建立的室内场景三维模型和设计的BIM模型进行对比,自动识别建筑构件,进行自动化进度追踪和偏差分析。三维激光扫描技术能够快速、全面、海量地获得原始点云数据,完整高精度地重建被测实体,从而真实描述扫描对象的整体结构及形态特性,具备建模效率高、精度高等优点。王代兵等[8]将三维激光扫描技术应用于天津周大福金融中心幕墙工程中,结合BIM技术与三维激光扫描仪对施工环节进行逆向设计、施工,提高了深化设计、生产施工的精确度,节约了施工成本。

BIM技术和基于点云的三维建模方法为建筑工程现场数据可视化、可分析提供技术支持,帮助提高管理效率。但目前上述方法应用于室内仍存在一定局限性:

(1)BIM模型的创建是一个单调耗时且易错的工作,实际工程中一旦发生变更需要对BIM模型进行及时更新,更新过程会耗费较多的资源和人力。利用BIM模型对室内建筑工程进行进度监测,无法保证建模的实时性。

(2)利用激光扫描仪可较快获取三维点云,但扫描设备昂贵,扫描数据量大、数据处理速度较慢,需专业人员操作。

(3)基于照片的三维建模方法,适应于图像中可获取较多特征点的特定场景,对无纹理信息的构件或场景建模能力较差。然而室内工程存在较大面积的无纹理构件,如墙面、地面等易导致模型中的空洞甚至建模失败,因此仅利用彩色图片的三维建模方法不适应于室内环境。

随着深度相机(例如Microsoft®Kinect)的出现,为室内三维信息采集提供了一种新的思路。深度相机是一种可同时获取中分辨率的彩色图和深度图的传感系统。但由于传感距离有限,深度相机多被用来识别和跟踪建筑工人状态[9]。Zhu等[3]通过融合视觉和空间数据生成室内三维点云模型,但这种方法需多个位置的数据采集与配准融合,不精确的配准易使模型出现偏移误差。

针对上述方法的局限性,本文提出一种基于深度相机的实时室内场景重构方法。利用BundleFusion的改进算法,建立基于稀疏特征点匹配和稠密深度图与图片像素匹配并行的优化框架。在此框架内可实现实时全局优化的姿态,支持重定位的同时增强实时跟踪的鲁棒性,使之能够适用于室内施工场景建模,辅助工程进度监测,现场材料管理,并进行实验验证。

1 基于深度相机的室内场景重构方法

1.1 基于深度相机的室内场景重构方法适用性分析

基于深度相机的室内场景重构方法可应用于室内工程建设过程多个阶段。利用深度相机建立基于机器视觉的实景快速重构模型,在工程施工阶段,可动态识别、量化设计模型和实际施工模型之间的偏差,以减少返工造成的损失;另一方面可视化、可分析的图像及三维环境模型有利于提高工程各参与方的沟通效率,提高施工现场管理水平。在工程竣工交付阶段,不同于传统交付书面文字或基于文字数据的电子存档,图像、视频、空间三维模型作为数字产品验收凭证,可实时记录施工过程中的关键部位,使施工过程关键节点可回溯,可追踪。利用深度相机采集施工现场数据,生成三维模型具有完整性好、细节还原度高、用户友好度高等优点,可以为工程数据记录不完善、不完整等问题提供解决方案,为项目后续运营维护提供数据支撑。

1.2 基于深度相机的室内场景重构方法理论基础

基于深度相机的室内场景重构方法是一种利用点云和深度图像融合的场景重建技术,通过前端设备获取深度图像和彩色图像,生成结构化的点云模型。基于深度相机的室内场景重构方法由以下四个主要步骤组成,分别是数据的获取和处理、点云计算、点云配准及场景重建,如图1所示。

图1 基于深度相机的场景重构流程

(1)数据获取:使用深度相机采集目标场景数据,其中利用RGB(Red,Green,Blue)摄像头获取彩色图像,利用深度传感器获取深度图像。

(2)数据处理:对获得的深度图像进行滤波处理以降低噪声。

(3)点云计算:计算相机坐标系深度数据,计算各点坐标及法向量,生成三维点云数据。

(4)点云配准:以初始化深度图生成点云模型对应的世界坐标系作为基准坐标系。随着深度相机的移动,基于深度数据的最近点迭代算法求解当前相机坐标系与世界坐标系之间的转换关系。通过矩阵变换使不同视角下生成的点云模型转换至同一世界坐标系下。

(5)点云融合:当深度相机的移动未超出当前重建立方体的范围时,通过最近点迭代算法最小化对应特征描述符间的欧式距离实现点云的融合。当深度相机的移动超出当前立方体的范围时,将原始重建立方体与新的立方体中重合部分的显存数据拷贝至新的重建立方体中,同时重建新的重构立方体与重合区域的截断符号距离函数,以实现全局点云的融合。

(6)纹理映射:将获取的彩色图像作为纹理输入,映射到三维点云模型中,得到可视化的真实三维模型。

2 基于深度相机的室内场景重构方法研究及实验验证

实验利用深度相机采集数据,该深度相机是微软公司推出的一款游戏体感周边外置设备—Kinect V1(第一代Kinect)。该设备携带彩色摄像头和红外摄像头,可同时获得640×480彩色图像(RGB)、320×40深度图像(Depth)信息,实现RGB-D数据的同步获取及图像生成。

2.1 KinectFusion算法及实验验证

在研究初始阶段,尝试采用KinectFusion方法实现室内场景重建。该方法通过Moving Volume算法实现重建立方体范围的动态扩展,进而扩大建模范围[10]。基于KinectFusion方法的室内场景重构流程如图2所示。

图2 基于KinectFusion方法的场景重构流程

(1)通过Kinect设备(下文简称“设备”)获取彩色图像和深度数据,利用双边滤波对深度图进行降噪处理。

(2)依据获取各帧相机与目标场景各点的距离,计算相机坐标系下各点的深度数据、坐标和法向量。基于获取的彩色图像信息和深度相机的内参、外参求解相机坐标系与世界坐标系间的变换矩阵,统一转化为世界坐标系下的点云数据。

(3)利用最近点迭代算法(Iterative Closest Point,ICP),根据当前帧的点云与上一帧的预测点云,求解相机估计位置姿态。基于相机位姿添加后续帧的深度图像更新点云模型;

(4)首先预定义一个虚拟立方体(Volume),该立方体是存储于图形处理器的三维数组,按照一定的精度将其均匀划分为k×k×k个体素。每个体素包含两个属性,分别为截断符号距离函数(Truncated Signed Distance Function,TSDF)和权重。三维重建过程中各帧图像各点的值被映射到相应坐标体素中,即三维数据均保存到数据立方体中。随着设备的持续移动,当扫描视野大部分超出当前重建立方体的范围时,生成新的重建立方体随着设备的移动路径移动。设备移动过程中,计算当前帧相机位置姿态与重建立方体对应相机位置姿态间的旋转角度差和平移分量差。若差值超过阈值需重新定位设备,生成新的对应重建立方体,若差值未超过阈值则继续后续数据融合。

(5)计算重建立方体每个体素的TSDF值,在世界坐标系下完成点云中各点到相应体素的映射,保证立方体间重合区域可以完整重合,最终实现全局点云融合。

(6)最后基于移动立方体算法进行等值面提取,生成模型表面。

一系列基于KinectFusion场景重建方法在室内空间进行测试,利用Kinect采集数据、跟踪设备生成深度图像,最终融合生成三维模型。实验运行条件为:Intel(R) CORE i7-8570H CPU,8G内存,系统独立显卡为NVIDIA Quadro P600,4G显存。重建结果与范围如图3所示。

图3 基于KinectFusion算法的重建模型

实验结果显示基于KinectFusion方法重建范围非常有限,如需重建完整的室内模型后续需进行分块点云间的二次拼接,但拼接过程易产生较大拼接误差;另外在墙面、地板等弱纹理部位易出现明显畸变与偏移,导致重建模型错误。

导致上述情况主要在于以下三点原因:

(1)Moving Volume算法虽可迅速切换重建立方体同时跟踪设备位姿,但该方法占用显存空间较大,无法通过一次扫描建立完整的房间模型;

(2)深度传感器获取的最佳监测距离为0.8~3.0 m,一旦设备到场景表面距离超过这个范围,设备易出现跟踪失败或深度图像错误的情况;

(3)最近点迭代算法通过几何距离寻找对应点,容易陷入局部最优化,当噪声较多时配准效果较差。

2.2 改进的BundleFusion方法

针对传统KinectFusion算法存在的局限性,提出一种基于BundleFusion的场景重构方法以提高室内环境下相机跟踪稳定性,同时扩展建模范围以适应实际工程建模需求。该方法采用一种稳健的姿态估计策略,利用高效的层次化方法,有效优化RGB-D数据流中每帧对应的相机姿态,最终达到全局最优[11],详细流程如图4所示。

图4 基于Bundlefusion算法的流程

相较于基于KinectFusion的重构方法,基于BundleFusion室内重构方法主要在点云配准及点云融合阶段进行了优化改进。在点云配准阶段,不同于前者利用最近点迭代(ICP)算法估计相机的位置姿态,基于BundleFusion的重构方法通过提取和匹配各输入帧的尺度不变特征变换(Scale Invariant Feature Transform,SIFT)特征点建立稀疏对应关系。后续通过几何一致性及稠密点云验证优化全局相机的位置姿态。采用分层局部到全局(Local-to-Global)的优化策略,以减少优化变量个数,降低计算复杂度,保证输入帧全局匹配的实时性。第一层为局部优化,将每个连续n帧组成一个数据块,每个数据块的大小相同,实现数据块内连续帧相机位姿的优化。将完成局部优化的数据块定义为关键帧进入第二层,实现全局关键帧的位姿优化。在GPU上利用预处理共轭梯度法求解全局相机的位置姿态,实现数据的高度缓存并生成准确的稠密点云。

在点云融合阶段,将全局相机位置姿态映射到TSDF模型中,随着每个数据块内相机位姿的更新,TSDF值随之更新。不同于KinectFusion方法中,将整个立方体(Volume)划分成体素,该方法采用体素哈希(Voxel Hashing)策略[12],即只在相机测量到的场景表面划分体素,建立体素与TSDF间的映射关系。计算分层优化后设备位置姿态改变量,将其中变化量最大的10帧数据移除后,重新融合优化后相机位置姿态,更新对应的TSDF模型以提高稠密点云的精度。最后提取对应的像素块,生成纹理模型。

基于BundleFusion的室内重构方法因其采用SIFT特征点匹配,不严格依赖时间的一致性,使其允许自由的扫描路径,具有操作简便、可重定位、用户友好等优势。通过基于数据块与相机位姿相互关联的全局实时优化,增强传感器遮挡区域和无特征区域跟踪的鲁棒性。针对基于Moving Volume重建方法占用显存较大,建模范围较小的局限性,通过分层的二阶段优化策略及体素哈希表面重构策略降低占用显存,扩大室内场景的重建范围。

基于BundleFusion的建模方法可以通过一次扫描建立完整的室内空间环境,无需二次拼接,场景重构模型与点云结果如图5所示。

图5 基于BundleFusion方法重建的模型

2.3 室内场景建模结果与分析

通过对同一场景,利用相同的数据采集设备为第一代Kinect及数据处理平台Intel(R) CORE i7-8570H CPU,NVIDIA Quadro P600 GPU,对比不同建模方法下模型范围与精度的差异。相较于广泛应用的KinectFusion,本文采用的基于BundleFusion的室内建模方法,在建模范围上大幅扩展。

其中前者仅适应于小于7 m3室内空间的三维重建,深度相机扫描轨迹长度不超过16 m,生成点云数量大概为60万;基于Bundlefusion方法的室内重构模型可扩展至75 m3,扫描轨迹长度可达到80 m,点云数量高达180万~200万。对比两组模型外观表征,本文使用方法增强了设备跟踪的鲁棒性,在白墙等弱纹理区域建模效果得到了明显提升,无较大空洞、明显偏移及错位等情况,如图6所示。

图6 基于不同建模方法实验结果对比

利用CloudCompare软件对两种算法重建点云模型分别进行精度验证。以实际测量值作为标准,选取特征线上的点测量两点间距离,为降低偶然误差的影响,取三次测量的平均值作为模型测量值,且三次测量值间误差低于0.3 mm。

场景1中门的实际高度为2.11 m,基于KinectFusion算法构建的模型中门高度为2.129 m,模型尺寸和实际尺寸的误差为0.9%;基于BundleFusion算法构建的模型中门高度为2.116 m,模型和实际尺寸的误差为0.28%。场景2中画框的实际尺寸为0.87 m×0.87 m,基于KinectFusion算法构建的模型中画框尺寸为0.890 m×0.860 m,模型尺寸和实际尺寸的误差上限为2.30%;基于BundleFusion算法构建的模型中画框尺寸为0.881 m×0.860 m,模型和实际尺寸的误差上限为1.26%。

根据两组实验结果可知,在纹理信息较少的白墙等处易出现较大的重建误差(图7)。基于KinectFusion算法室内建模最大重建误差为2.3%,基于BundleFusion算法最大重建误差为1.26%。实验结果表明基于BundleFusion的建模方法更适应于较大的室内空间,在提升模型精度的同时,在弱纹理区域具有较好的鲁棒性。

图7 不同算法模型精度对比

3 结论与展望

本文提出一种基于深度相机的室内三维重建方法,结合Kinect设备与BundleFusion算法,针对室内空间扫描一次即可完成实时的三维重建。该方法实现扩展重建范围,提高相机跟踪的稳定性,同时保证建模的速度和精度。

(1)首先验证KinectFusion方法的建模范围,分析该算法的不足,证明该方法的重建范围不适应工程实际。

(2)其次针对KinectFusion方法的局限性,提出一种基于深度相机的BundleFusion室内场景重构方法,该方法用户友好程度高且更适用于实际工程应用。

(3)最后通过定性与定量结合方法对比分析两种不同方法的重建模型结果,比较两种方法在建模范围、建模表观纹理及建模精度方面的差异。

但是该方法也存在一些局限性,基于视觉的特征提取和匹配仍受环境条件(如照明、阴影,缺乏纹理和颜色信息等)影响,此外对于较为开放的室内环境建模仍有难度。目前建模结果可应用于动态的工程形象进度追踪,但未包含构件的语义信息。未来研究方向将会集中于:

(1)提高系统在一般环境条件(例如光线条件不足,缺乏纹理、颜色信息等)下的鲁棒性。

(2)提高基于深度相机的三维重建技术数据采集的自动化程度,并改进算法提高模型精度。

建立构件层次的点云分割与标定,将语义化信息模型和计划工程进度链接起来,实现工程进度全周期追踪。

猜你喜欢

立方体重构建模
“双减”能否重构教育生态?
长城叙事的重构
基于FLUENT的下击暴流三维风场建模
基于干扰重构和盲源分离的混合极化抗SMSP干扰
《符号建模论》评介
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
求距求值方程建模
内克尔立方体里的瓢虫
用四维的理念重构当代诗歌
图形前线