基于RealSense的室内3D场景重建方法研究
2020-08-03宋文龙赵永辉刘孟祎
宋文龙 赵永辉 刘孟祎
摘 要: 针对基于视觉的3D场景重建领域中设备昂贵、精度低、过程耗时的问题,提出一种采用RealSense摄像头,以OpenVINO构建底层计算平台,实现室内3D场景重建的方法。首先在数据获取部分,通过RealSense深度相机获取数据,实现了RGB数据、深度数据与点云数据的同时获取;其次,在计算加速部分,采用以OpenVINO为开发工具的神经计算棒构建硬件计算平台,提高了数据的处理速度,减少了计算开销;最后在点云数据的配准与融合部分,基于传统ICP算法进行了改进,大幅度减少了所需计算的数据量,提高了算法效率与精确度。
关键词: 3D场景重建; RealSense; 构建计算平台; OpenVINO; 计算加速; 点云配准
中图分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2020)08?0161?05
Research on indoor 3D scene reconstruction method based on RealSense
SONG Wenlong, ZHAO Yonghui, LIU Mengyi
(Northeast Forestry University, Harbin 150040, China)
Abstract: In allusion to the problems of expensive equipments, low precision and time?consuming process in the field of vision?based 3D scene reconstruction, a method of realizing indoor 3D scene reconstruction by building the underlayer computing platform with OpenVINO and based on RealSense camera is proposed. In the data acquisition part, the RealSense depth camera is used to obtain data to realize the simultaneous acquisition of RGB data, depth data and point cloud data. In the calculation acceleration part, the neural computing rod with OpenVINO as the development tool is used to construct the hardware computing platform, which improves the processing speed of data and reduces the computational overhead. In the registration and fusion part of point cloud data, the algorithm is improved based on the traditional ICP algorithm, which greatly reduces the amount of data required for calculation and improves the efficiency and accuracy of the algorithm.
Keywords: 3D scene reconstruction; RealSense; build computing platform; OpenVINO; computeration speedup; point cloud registration
0 引 言
随着3D重建技术的不断发展和传感器设备的普及,3D重建在日常生活与科学研究中都扮演着越来越重要的角色[1]。3D场景重建的方法有很多,目前一般采用激光测距仪与深度相机的方法[2]。由于激光测距仪通常设备昂贵而且精度较差,因此采用深度相机的方法应用更为广泛。2014年,英特尔推出了RealSense深度摄像头,帧率可达Kinect的2倍,获得的深度图像分辨率较高,因此在3D重建领域更具优势。
Barnard和Fischle经过详细讨论并给出了三维重建的评估标准。Carlo Tomasi和Takeo Kanade完成了一个完整的基于图像的3D重建系统[3]。Pollefeys及其团队实现了第一个基于多幅图像的自动三维重建系统[4]。本文的研究意义在于,利用成本低廉的消费级深度相机在获取彩色图像的同时获取深度数据与点云数据,完成室内场景的3D重建。首先在计算加速部分,本文采用了以OpenVINO为开发工具的神经计算棒构建硬件计算平台,提高了数据的处理速度,减少了计算开销;其次,在数据获取与预处理部分,通过RealSense深度相机获取数据,实现了RGB数据、深度数据与点云数据的同时获取;最后在点云数据的配准与融合部分,基于传统ICP算法进行了改进,即先通过ORB算法计算相邻两帧图像的匹配特征点对,结合RANSAC算法剔除误匹配点,然后将配准的图像坐标系下的匹配点对,通过坐标变换将其映射到世界坐标系下的三维点云中。实验结果表明,这种方法减少了传统ICP算法计算的数据量,提高了算法效率与精确度。
1 基于RealSense获取数据
1.1 RealSense D435
本文采用RealSense D435作为获取数据的设备。RealSense是一款立体视觉深度相机,如图1所示,其集成了两个红外传感器(IR Stereo Camera)、一个红外激光发射器(IR Projector)和一个彩色相机(Color Camera)[5]。立体深度相机系统主要包括两部分:视觉处理器D4和深度模块[6]。主机处理器连接USB 2.0 / USB 3.1 Gen 1。视觉处理器D4位于主处理器主板上,RGB颜色传感器数据通过主处理器主板和D4板上的彩色图像信号处理器(ISP)发送到视觉处理器D4。Intel RealSense D435提供了完整的深度相机模块,集成了视觉处理器、立体深度模块、RGB传感器以及彩色图像信号处理模块。深度模块采用立体视觉的左右成像器、可选的红外激光发射器和RGB色彩传感器。
1.2 相机标定
相机标定就是求解相机内部参数与外部参数的过程,即相机矩阵[M]的参数[7],如表1所示。相机内参代表相机的本身固有的属性,通常是固定不变的。由相机内参可以得到图像中的点与场景中的点的对应关系,而相机的外参会随相机的移动而发生变化。
图像坐标系与像素坐标系的转化关系[8]可以用如下矩阵表示:
相机内参与相机外参公式如下:
2 OpenVINO计算加速
本文基于RealSense进行3D重建需要对大量点云数据进行计算,如果只是依靠CPU计算,会需要较长时间完成,因此本文通过以OpenVINO为开发工具的神经计算棒搭建底层计算平台,实现算法的加速。
2.1 神经计算棒
英特尔第二代神经计算棒(Intel NCS2)是于2018年11月14日人工智能大会上推出的新设备。其采用具有高性能的视觉处理单元Intel Movidius Myriad X VPU,同时搭载更多计算核心的深度神经网络推理的专用硬件加速器。
2.2 OpenVINO工具包
开放式视觉推理和神经网络优化(Open Visual Inference & Neural Network Optimization,OpenVINO),主要用于加速计算机视觉工作负载。OpenVINO工具包包括用于OpenCV和OpenVx的优化的计算机视觉库。通过易于使用的CV函数库和预优化的内核,加快视觉领域相关算法计算速度。同时针对OpenCV优化调用。本文通过OpenVINO中包含的传统计算机视觉工具库中的经过预编译且在CPU上优化过的OpenCV3.3,将自定义内核添加到计算机视觉领域,实现在3D重建的过程中的特征提取、特征匹配与点云融合的算法加速。
3 3D场景重建算法
3.1 ORB算法
ORB(ORiented Brief)算法是一种快速特征点提取和描述算法[9]。理想特征子应具备的条件为:在不同的距离、角度、方向、光照条件下,都可以判断出是否为同一物体,也就是同一特征点足够相似的描述子[10]。因此,希望在不同角度拍摄图像时,坐标系方向改变,相应的点可以跟随坐标系一起改变,即保持相对静止,如图2所示。把圆形区域看作是一块质量不均匀的圆形物体,这样在物体旋转时,物体的重心可以与物体保持相对静止,把每个像素点对应该点的质量,利用积分学可以求出物体的重心。重心定义如下:
式中,[Ix,y]为图像灰度表达式,重心可以表示为:
特征点的方向角度为:
1) 在以特征點为中心,[S]为邻域的范围内产生随机点对,[D]表示随机点的位置:
2) 旋转矩阵[Rθ]表示为:
3) [Dθ]表示旋转后随机点的位置:
得到新随机点的位置之后,进行二进制编码。通过ORB算法进行特征匹配的实验结果如图3所示。
3.2 ICP点云配准与融合算法
ICP点云融合算法(Iterative Closest Point)的目的是实现不同角度下的相邻帧点云融合[11]。假设两组点云的坐标分别为[{Pi|Pi∈R3,i=1,2,…,N}]和[Qi|Qi∈R3,i=1,2,…,M]。经过[n]次迭代,可得到与点云集[P]的坐标相对应的点云坐标[{Si|Si∈R3,i=1,2,…,M}],然后求解使欧氏距离最小的旋转平移矩阵[R],[t]。[P]中的点坐标表示为[(xP,yP,zP)],[Q]中的点坐标表示为[(xQ,yQ,zQ)],两帧点云之间的变换关系可以表示为:
若待配准两帧点云中,含有点坐标数目最少的一帧点云具有[n]个点,则两帧点云的欧几里得距离公式为:
经过不断的更新初始矩阵,直到目标函数,即欧氏距离取得最小值为止。ICP算法在计算过程中总是会收敛于局部最小值,在实验中发现在最开始的几次迭代收敛速度极快。因此需要设定多组[R],[t]矩阵的初始值,然后对每一组初始值都应用ICP算法进行计算从而找到全局最优解。
3.3 改进的ICP点云配准与融合算法
通过第3.2节对于ICP算法的介绍可以得知,在求解两帧点云的旋转平移矩阵时需要对点云中的每一个点去寻找最邻近匹配点,然后经过多次迭代,输出最终的旋转平移矩阵。然而如果对于点云中的每个点都要寻找最近邻点,则会带来非常庞大的计算量,若再经过多次迭代,更是需要巨大的算法开销。因此本节对传统ICP算法进行了改进,以提高算法效率。
本文通过ORB算法得到了每帧图像的特征点,并且得到了相邻两帧图像的匹配的特征点对。在第2节介绍了图像坐标系下的二维点坐标到世界坐标系下的三维点坐标的变换方法。把这两种方法相结合,就可以得到世界坐标系下三维空间的匹配的特征点对。通过上述方法,对点云先进行特征点检测与描述,然后再进行坐标变换,可以减少ICP算法所处理的数据量,提高算法的效率。改进的ICP算法的整个流程可用图4表示。
4 实验结果与分析
实验过程中,首先在PC上连接好RealSense与神经计算棒,获取两帧具有一定重合部分的彩色数据与点云数据,通过前文所述方法对获得的数据进行中值滤波处理。采用Matlab中提供的Camera Calibration Toolbox计算得到相机参数。利用ORB算法对两帧彩色点云数据进行特征匹配。使用相机标定过程中得到的相机参数,实现特征点坐标在相机坐标系下到世界坐标系下的转换,并将其映射到对应的点云数据上,执行ICP算法,即可得到相邻两帧点云在世界坐标系下的配准融合。在拍摄过程中,需要获得两帧具有重叠部分的数据,按照前文所述方法获取两帧点云,传统ICP算法与改进ICP算法的迭代次数、运行时间以及配准误差(距离平方和)如表2所示。从表格中的数据可以看出传统的ICP算法需要迭代30次才能达到收敛条件,需要的运行时间较长,误差较大。应用本文所述算法不仅减少了配准过程中的误匹配点对,而且减少了需要运算的数据量,在迭代20次时就可以达到收敛条件,在速度和精度上都有了明显的改善。因此可以看出改进的ICP算法能够快速准确地实现点云数据的配准融合。
通过实验对比可以看到,本文改进的ICP算法减少了传统ICP算法在配准时需要计算的数据点的数目,迭代次数与运行时间都有了明显的改善。因此在精度和计算速度上相比于传统算法得到了明显的提高。由此可以看出本文改进的ICP算法是一种高效的点云配准融合算法。通过该算法拼接融合得到的结果见图5。
在点云配准融合过程中,从不同视角所采集到的几何表面的同一点,在理论上应该实现完全重合,但是由于设备的精度、人为操作以及算法的不完善等问题出现了在允许范围内的误差,在实验中则认为这种点是可以实现配准融合的匹配点对。经过算法的多次迭代,相对应的点间的距离不断缩小,直到小于设定的阈值。在迭代过程中,如果两个相邻迭代计算的对应点的距离存在一定差异,且差值不断减小,因此每次迭代都使对应点靠得更近。在实验中,为判断算法的收敛速度,需要设定一个阈值,这里选取的是对应点间距离的平方和,该值的变化速度越快,则表示算法的收敛速度越快。经过多次迭代,该值逐渐变小直到不再变化,即达到了阈值,此时说明算法已经收敛。
算法的点云配准融合效果比较
多帧点云数据的配准与融合具体流程如图6所示。
实验中将每两帧点云配准融合后得到的点云,作为下一次执行改进的ICP算法的目标点云,将新的一帧点云作为源点云,对目标点云与源点云同时执行改进的ICP算法,即可得到融合后点云。继续将其作为目标点云,重复进行上述操作,最终实现多帧点云的配准融合。图7为多帧点云配准的实验室重建结果的整体三维模型与局部效果展示。
按照本文所述方法,理论上可以实现任意在RealSense摄像头最大工作范围(10 m)内的室内3D场景重建。
5 结 论
本文通过分析大量有关3D重建技术的相关参考文献,并结合目前3D重建技术的研究现状,选择了效率高、精度好、价格低廉且便于携带RealSense摄像头采集数据。为实现算法加速,本文使用神经计算棒搭建底层计算平台。在3D重建算法方面本文对传统ICP算法进行了改进,最终实现室内场景的3D重建。在今后的研究中可以依照本文所述方法形成室内3D场景数据集,并对得到的三维场景模型进行注释,以实现场景理解与物体识别方向的研究。
注:本文通讯作者为刘孟祎。
参考文献
[1] 董鹏辉,柯良军.基于图像的三维重建技术综述[J].无线电通信技术,2019,45(2):115?119.
[2] 伊璐.基于立体视觉的场景三维重建技术研究[D].西安:西安理工大学,2017.
[3] 缪盾.基于改进的SIFT算法的图像三维重建研究[J].贵州大学学报(自然科学版),2018,35(5):63?66.
[4] 李晓芳,路佳佳.一种基于两幅图像的三维重建方法[J].电子技术与软件工程,2017(9):71?72.
[5] 董春侠,司占军,高祥.基于Intel Realsense技术的感知展示系统的设计与开发[J].电脑知识与技术,2016,12(7):207?208.
[6] 鲁云飞.基于三维视线跟踪的抬头显示系统研究[D].重庆:重庆邮电大学,2017.
[7] 田苗,郝向阳,刘松林,等.基于点离散度的张正友标定法[J].全球定位系统,2015(6):86?88.
[8] 唐倩,黄耀,范秋垒,等.基于点云与图像匹配的自动化喷涂系统坐标变换[J].计算机集成制造系统,2017(11):61?67.
[9] ZHOU S C, YAN R, LI J X, et al. A brain?inspired SLAM system based on ORB features [J]. International journal of automation & computing, 2017(5): 1?12.
[10] 屈玉福,刘子悦,江云秋,等.自适应变尺度特征点提取方法[J].光学精密工程,2017(25):188?197.
[11] 李策,盧冰,肖利梅,等.基于相对坐标ICP的室内场景三维重建算法[J].兰州理工大学学报,2017(3):96?101.