-
摘要:
三维重建技术是机器视觉中最热门的研究方向之一,在无人驾驶和数字化加工与生产等领域得到了广泛的应用。传统的三维重建方法包括深度相机和多线激光扫描仪,但是通过深度相机获得的点云存在着信息不完整和不精确的问题,而多线激光扫描仪成本高,阻碍了该项技术的应用和研究。为解决上述问题,提出了一种基于转动式二维激光扫描仪的三维重建方法。首先,用步进电机带动二维激光扫描仪旋转运动来获取三维点云数据。然后,用多传感器融合的方法对激光扫描仪的位置进行标定,采用坐标系变换完成点云数据的匹配。最后,对采集得到的点云数据进行了滤波和精简处理。实验结果表明:相较于深度相机/IMU数据融合的重建方法,平均误差降低了0.93 mm,为4.24 mm;精度达到了毫米级别,误差率也控制在了2%以内;整套设备的成本相较于多线激光扫描仪大大降低。本文方法基本满足保留物体的外形特征、高精度和成本低的要求。
Abstract:3D reconstruction technology is one of the most popular research directions in machine vision, and has been widely used in the fields of unmanned driving and digital processing and production. Traditional 3D reconstruction methods include depth cameras and multi-line laser scanners, but the point clouds obtained by depth cameras have incomplete and inaccurate information, and the high cost of multi-line laser scanners hinders their application and research. To solve these problems, a three-dimensional reconstruction method based on a rotating two-dimensional laser scanner was proposed. First, a stepper motor was used to rotate a 2D laser scanner to obtain 3D point cloud data. Then, the position of the laser scanner was calibrated by multi-sensor fusion, and the point cloud data was matched by transforming the coordinate system. Finally, the collected point cloud data were filtered and simplified. The experimental results show that compared with depth camera/IMU data fusion, the reconstruction method’s average error of the proposed method is reduced by 0.93 mm, and it is 4.24 mm, the accuracy has reached the millimeter level, and the error rate is also controlled within 2%. The cost of the whole set of equipment is also greatly reduced compared to the multi-line laser scanner. It basically meets the requirements of high precision and low cost and retaining the shape characteristics of the object.
-
1. 引 言
近年来,随着人们对计算机视觉与逆向工程研究的逐步深化,基于三维激光点云数据的三维重建方法已经成为各个研发团队的热门研究课题,三维重建技术成为了无人驾驶、逆向工程、数字城市建设与医学等领域不可或缺的关键技术[1-4]。在工业4.0概念和中国制造2025战略的推动下,三维重建技术在制造业中已经有了广泛应用,三维重建技术可以代替传统的建模方式,减少了大量的劳动成本和工作时间。
目前,三维重建技术主要包括基于视觉和基于激光扫描仪(激光雷达)的重建两种。深度相机是基于视觉的三维重建方法,由RGB相机和光脉冲传感器组成,通过获取的RGB图和深度图就能够完成对场景的重建。基于深度相机[5]的三维重建技术具有探测范围广与价格低廉的特点,还能获取目标的纹理信息,但是受光照和环境影响因素大,获取到的点云信息也往往是稀疏点云[6],而且测量精度也较差。激光扫描仪[7]通过发送与接收测距激光完成对场景的三维重建,根据同时发射的线束不同可以分为单线激光扫描仪(二维激光扫描仪)和多线激光扫描仪。利用多线激光扫描仪进行三维重建是目前最常用的方法之一,但是多线激光扫描仪的成本昂贵,并且点云配准存在着延时问题,阻碍了该项技术在其他领域的应用。二维激光扫描仪的优点有结构简单、成本低、受光照因素影响较小和测距精度高。北京航空航天大学蔡军等[8]提出了一种带轮的旋转扫描方法,其通过二维激光扫描仪完成了对三维点云的获取,但是带传动有滑动现象,传动过程中会造成较大的误差。钱超杰等[9]提出了一种利用基于摆动单线激光雷达的三维重建方法,完成了大场景稠密点云的重建,但是摆动装置的体积较大,应用范围受到限制。2020年,王锐等[10]提出了一种二维激光扫描仪与GNSS/INS的空间重构方法,获得了较高的配准精度,但是获取的点云稀疏。2021年,Lu等[11]提出了一种利用基于特征自动检测的单目相机和二维激光扫描仪外参数标定获得稠密点云的方法,但获取到的点云精度较低。
本文提出一种步进电机带动二维激光扫描仪旋转运动的方法,使激光扫描仪在原有基础上增加了一个自由度。众所周知,电机的步距角越小,能获取到的点云数目就越多,本文通过对电机细分驱动的方法减小电机步距角。由于二维激光扫描仪在单一位置下采集到的点云数据存在着信息不完整的情况,为了获得完整的点云数据,需要在不同位置下进行测量,然后将点云配准到同一坐标系下。针对这一问题,运用GPS/IMU完成了对二维激光扫描仪位置的标定,然后将所有点云变换到同一坐标系下。为了减小单一传感器带来的误差,用卡尔曼滤波[12]的方法进行了多传感器融合滤波处理。在数据获取过程中,受测量环境和设备精度的影响,得到的点云中往往含有噪声点和离群点,为了解决这一问题,采用半径滤波算法对点云数据进行滤波降噪处理,滤波后的模型变得精确和顺滑[13]。对于点云数量的要求,最好是在保留物体特征的前提下,数量尽可能的少,从而占用更少的内存,提高程序的运行效率。为了获取到高精度点云,步距角设定的就较小,这导致扫描得到的数据过多,从而造成了数据冗余。通过特征保持点云数据精简算法[14]对三维点云数据进行精简,不仅可以保留物体的外形特征,而且可以提高程序运行的效率。最后,以一个盒子作为重建对象,通过MATLAB的GUI界面完成了点云的实时采集和处理。实验验证了所提方法的有效性。
本方法采集得到的点云具有精度高的优点,精度达到了毫米级别,相较于深度相机/IMU数据融合的重建方法,平均误差降低了0.93 mm,误差率在2%以内,体现了本文所提方法的优越性。
2. 三维点云数据的采集
2.1 坐标变换原理
二维激光扫描仪获取的是环境或物体的二维极坐标。如图1所示,O是激光扫描仪测距原点(扫描中心),YOZ 是激光扫描仪的二维扫描平面,P点是激光扫描仪某次扫描过程中的第i个扫描点。则该点对应的数据信息为
P(ρi,αi) ,可以通过该点的数据测得二维坐标值:{y=ρicosαiz=ρisinαi, (1) 式中:y和z为P点沿Y轴和Z轴的坐标值,单位为mm;i表示第i个扫描点;ρi表示激光扫描仪返回的距离值,单位为mm;
αi 为激光扫描仪的俯仰角度。所选用的二维激光扫描仪的型号是TIM561,激光扫描仪以0.333°的角分辨率向外界发射激光。在一个扫描周期内,第一个点的俯仰角是0°,第i个点的俯仰角为
0.333(i−1)∘ ,Y轴为0°扫描线。二维激光扫描仪要完成三维点云数据的采集,还需要增加一个自由度。用步进电机带动激光扫描仪沿着XOY平面旋转运动,电机采用细分驱动的方式带动扫描仪完成三维点云数据的采集。如图2所示,假定激光扫描仪在水平面内旋转了θ角度,仰角为αi,因此能够以O点为坐标原点计算出P点的三维坐标值。
通过公式(2)可以得到P点的3个坐标值:
{x=ρicosαisinθy=ρicosαicosθz=ρisinαi, (2) 式中:x、y和z分别为P点沿X轴、Y轴和Z轴的坐标值,单位为mm;θ为激光扫描仪在水平面内的旋转角度。
由于在某一位置下激光扫描仪测得的物体三维点云数据并不完整,为了获取完整的点云数据,分别把激光扫描仪放置到多个方位下进行扫描。具体的测量方法如图3所示。
由图3可以看出激光扫描仪通过多个位置测量可以获取到完整的点云数据。本文利用GPS/IMU传感器获取到了激光扫描仪在不同位置下的位姿信息,GPS/IMU传感器是固定安装在机架上的,在运动过程中传感器测得的状态变化量可以近似等于激光扫描仪的状态变化量。在传感器获取到位姿信息后,运用坐标系变换[15]的方法,将第2、3、和第4次测得的点云变换到第一次测量时的坐标系下,便可以形成点云配准。该装置有3个自由度,分别是沿X轴与Y轴的平动和沿Z轴的转动。以第2次测量为例,实现坐标系的变换:
\left[ {\begin{array}{*{20}{c}} {{x_1}} \\ {{y_1}} \\ {{\textit{z}_1}} \\ 1 \end{array}} \right] = {}^1{{\boldsymbol{M}}_2}\left[ {\begin{array}{*{20}{c}} {{x_2}} \\ {{y_2}} \\ {{\textit{z}_2}} \\ 1 \end{array}} \right]\quad, (3) 式中:1M2代表第2次扫描相对于第1次扫描的旋转和平移变换;x2、y2和z2代表第二次测得的点云坐标,单位为mm;x1、y1和z1代表第一次测得的点云坐标,单位为mm。
可以求得通过传感器测量的tx、ty和
\varphi 角的值,从而进行不同坐标下的点云坐标的变换:\left[ {\begin{array}{*{20}{c}} {{x_1}} \\ {{y_1}} \\ {{\textit{z}_1}} \\ 1 \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\cos \varphi }&{ - \sin \varphi }&0&{{t_x}} \\ {\sin \varphi }&{\cos \varphi }&0&{{t_y}} \\ 0&0&0&0 \\ 0&0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{x_2}} \\ {{y_2}} \\ {{\textit{z}_2}} \\ 1 \end{array}} \right]\quad, (4) 式中:tx代表第二次测量相对于第一次测量沿X轴方向平移的距离,单位为mm;ty代表第二次测量相对于第一次测量沿Y轴方向平移的距离,单位为mm;
\varphi 角代表第二次测量相对于第一次测量沿Z轴旋转的角度。通过公式(4)便可以完成不同位姿下测量点云数据的配准。
2.2 误差修正原理
测量误差会影响点云配准精度,在测量过程中误差主要来源是测量仪器精度造成的误差。通过多传感器融合技术可有效降低单一传感器测量精度造成的误差。
采用IMU(惯性测量单元)进行位姿测量,其更新频率较高,一般达到1 kHz。其包含一个三轴加速度传感器和一个三轴陀螺仪角速度计,前者可以测量一个三维空间的加速度,后者可以测量围绕三维空间三个坐标轴方向的旋转速度。用四元数的方法表示传感器的位姿信息,不仅可以减少占用的存储空间,同时可以提高计算效率。
惯性测量单元的误差随时间呈二次方增长,采用GPS和IMU多传感器融合的方法可以减少误差。通过惯性测量单元和初始时刻的状态,可以预测出下一时刻的状态,
{x_t} 、{y_t} 和{\varphi _t} 作为状态值,过程如图4所示。图4中,X轴和Y轴代表地面坐标系,O为标定坐标系原点,
\left( {{x_t},{y_t},{\varphi _t}} \right) 表示激光扫描仪在t时刻的状态,\left( {{x_{t + 1}},{y_{t + 1}},{\varphi _{t + 1}}} \right) 表示激光扫描仪在t+1时刻的状态,dt表示两个时刻之间的间隔,dx和dy表示位移变化量。卡尔曼滤波可以分为预测和更新两个部分,具体算法[16]如下:
\left\{ {\begin{aligned} &{\widehat {{\boldsymbol{X}}} _t^ - = {{\boldsymbol{F}}} {{\widehat {{\boldsymbol{X}}} }_{t - 1}} + {{\boldsymbol{B}}} {{{\boldsymbol{U}}} _{t - 1}}} \\ &{{{\boldsymbol{P}}} _t^ - = {{\boldsymbol{F}}} {{{\boldsymbol{P}}} _{t - 1}}{{{\boldsymbol{F}}} ^{\rm{T}}} + {{\boldsymbol{Q}}} } \end{aligned}} \right.\quad, (5) 式中:t为时刻值,
\widehat {{\boldsymbol{X}}} _t^ - 为t时刻状态的预测值;{\widehat {{\boldsymbol{X}}} _{t - 1}} 是t - 1 时刻修正后的状态估计值;F为状态转移矩阵;B是系统输入矩阵;{{{\boldsymbol{U}}} _{t - 1}} 是t - 1 时刻的系统输入;Q为系统噪声的协方差矩阵;{{{\boldsymbol{P}}} _{t - 1}} 为t - 1 时刻修正后的均方误差矩阵;{\boldsymbol{P}}_t ^- 为t时刻误差协方差矩阵的预测值。\left\{ {\begin{aligned} &{{{{\boldsymbol{K}}} _t} = {{\boldsymbol{P}}} _t^ - {{{\boldsymbol{H}}} ^{\rm{T}}}{{\left( {{{\boldsymbol{H}}} {{\boldsymbol{P}}} _t^ - {{{\boldsymbol{H}}} ^{\rm{T}}} + {{\boldsymbol{R}}} } \right)}^{ - 1}}} \\ &{{{\widehat {{\boldsymbol{X}}} }_t} = \widehat {{\boldsymbol{X}}} _t^ - + {{{\boldsymbol{K}}} _t}\left( {{{{\boldsymbol{Z}}} _t} - {{\boldsymbol{H}}} \widehat {{\boldsymbol{X}}} _t^ - } \right)} \\ &{{{{\boldsymbol{P}}} _t} = \left( {{{\boldsymbol{I}}} - {{{\boldsymbol{K}}} _t}{{\boldsymbol{H}}} } \right){{\boldsymbol{P}}} _t^ - } \end{aligned}} \right.\quad, (6) 式中:H为观测矩阵;R为量测噪声矩阵;Kt为卡尔曼增益;Zt为量测值;
{\widehat {{\boldsymbol{X}}} _t} 为更新后的估计值;Pt为更新后的误差的协方差矩阵。3. 三维重建系统的硬件设计
3.1 三维重建系统的组成
三维重建系统主要由二维激光扫描仪、步进电机及其控制和驱动元件、GPS、IMU传感器以及点云数据采集与处理平台组成。系统的组成示意图如图5所示。
激光扫描仪只能扫描所在的二维平面,为了得到三维点云数据,设计了图6所示的转动结构。利用步进电机带动激光扫描仪旋转实现三维点云的获取。步进电机通过传动轴带动转盘做旋转运动,激光扫描仪和转盘通过螺栓连接在一起,由此完成了步进电机和激光扫描仪的同步转动。电机通过驱动器实施细分驱动,可以使激光扫描仪实现在水平面的n等份旋转运动,从而实现了各个转角下的二维平面扫描。步进电机的步距角越小,步进电机运动精度就越高,获取到的点云数据也越多。
在运动装置旋转过程中,扫描仪根据需求采集实时的二维点云数据,并通过以太网输送到上位机,同时也将步进电机的旋转角度信息反馈给上位机。上位机接收到数据后,将数据进行融合并进行坐标变换,从而完成三维点云的实时重建。
3.2 三维点云数据采集控制方案设计
PLC通过ZD-2HD430S驱动器向步进电机发送工作指令,实现了电机的细分驱动。激光扫描仪数据用以太网传输到上位机,而PLC的工作信息是通过串口通信传输到上位机的,图7所示为实验的电路图。
4. 三维重建系统的软件设计
三维重建系统的软件程序主要由点云数据获取、PCD点云文件生成和点云数据处理3部分组成,图8所示的是软件程序处理流程图。
4.1 IMU/GPS的组合导航卡尔曼滤波定位模型
使用卡尔曼滤波算法对GPS的噪声和加速度的噪声进行融合,可以使得融合后的位置的噪声方差最小,从而达到最优的估计效果。加速度和GPS数据已经转换为激光扫描仪的原点坐标系,并进行了滤波校正处理。定义GPS的经度方向和纬度方向分别为X轴和Y轴。通过卡尔曼滤波对扫描仪的位置进行滤波处理。首先对X轴方向进行滤波处理,取系统的状态矩阵向量为
{{\boldsymbol{X}}_k} = \left[ {\begin{array}{*{20}{c}} {{x_k}}&{{v_{xk}}}&{{a_{xk}}} \end{array}} \right] ,{v_{xk}} 代表X轴方向的速度,{a_{xk}} 代表X轴方向的加速度,离散线性动态系统的状态空间模型为:\left\{ \begin{gathered} {{{\boldsymbol{\dot X}}}_k} = {\boldsymbol{A}}{{\boldsymbol{X}}_{k - 1}} + {{\boldsymbol{w}}_{k - 1}} \\ {{\boldsymbol{Z}}_k} = {\boldsymbol{H}}{{\boldsymbol{X}}_k} + {{\boldsymbol{v}}_k} \\ \end{gathered} \right. \quad, (7) 式中:
{\boldsymbol{A}} 为状态转移矩阵,{{\boldsymbol{w}}_{k - 1}} 为系统的过程噪声,过程噪声的协方差矩阵为Q,{\boldsymbol{H}} 为系统观测矩阵,{{\boldsymbol{v}}_k} 为系统的量测噪声,量测噪声的协方差矩阵为R。离散后的系统状态转移矩阵和观测矩阵分别为:
{\boldsymbol{A}} = \left[ {\begin{array}{*{20}{c}} 1&t&{\dfrac{1}{2}{t^2}} \\ 0&1&t \\ 0&0&1 \end{array}} \right] \quad, (8) {\boldsymbol{H}} = \left[ {\begin{array}{*{20}{c}} 1&0&0 \\ 0&0&1 \end{array}} \right] \quad. (9) 同理,对Y轴方向进行滤波处理时,只需要取系统的状态矩阵向量为
{{\boldsymbol{X}}_k} = \left[ {\begin{array}{*{20}{c}} {{y_k}}&{{v_{yk}}}&{{a_{yk}}} \end{array}} \right] 。4.2 PCD点云文件生成
通过PLC和二维激光扫描仪的同步控制程序完成对点云数据的采集。上位机接收到的TIM561激光扫描仪的数据是十六进制的HEX报文,通过将HEX报文转换为十进制数据,获取到激光扫描仪的测量距离ρi,第i个扫描点的俯仰角αi为
0.333 \times i^\circ 。P点是激光扫描仪对二维平面扫描过程中的第i个扫描点,则该点对应的数据信息为P\left( {{\rho _i},{\alpha _i}} \right) 。激光扫描仪的角度分辨率为0.333°,设置二维扫描平面的扫描范围为\left( { - 45^\circ ,45^\circ } \right) ,第一个扫描仪点的角度为- 45^\circ ,可以算得i的取值为{0,1,2, \cdots ,269,270} 。由式(1)可知,通过俯仰角
{{\alpha }}_{{i}} 和距离{{\rho }}_{{i}} 可以得到点云在二维平面的坐标值。要实现三维点云的坐标融合,还需要在二维坐标的基础上加上电机的步距角信息。由于电机是细分驱动,故可以对电机每次旋转的角度进行划分。在得到电机旋转角度θ以后,通过式(2)可以求得点云三维坐标值。为了获取物体完整的点云信息,还需要将多个位置下的点云信息进行融合。IMU测得的数据通过解算可以预测扫描仪的状态向量,将GPS获得的数据从地心坐标系转为经纬度后可以更新状态向量,从而完成了两个传感器信息的融合,减小了实验误差。
为了生成三维点云坐标文件,用公式(5)和(6)对获取得到的GPS/IMU数据进行处理。在得到了位姿数据的最优估计值以后,运用公式(4)将所有位置下的点云数据融合到同一坐标系下,完成点云配准。最后将所有的三维点云数据转化为PCD格式的点云文件。
4.3 三维点云数据处理
4.3.1 点云滤波算法
由于原始点云中存在部分噪声点及离群点,为了降低噪声点和离群点对实验结果的影响,采用半径滤波的方法对点云数据进行处理。半径滤波法在保留物体原始特征的情况下,能够剔除大量的离群点和噪声点。
半径滤波算法原理如图9(彩图见期刊电子版)所示,其可遍历所有点云,蓝色点为遍历过程中的某个点,找到离蓝色点最近的n个点,图9中n值为5。以蓝色点为中心,算出n个点中离蓝色点距离最远的点,求得最远点距离为R。给定阈值max_D,若R>max_D,则剔除该点。
4.3.2 点云精简算法
由于采集到的点云数据量大,存储效率和数据处理效率较低,因此需要在保留点云原始特征的情况下对其进行精简处理。采用基于单位法向量的点云分类采样算法,可以在完成精简的同时保留模型的细节特征。
本算法需要同时求某点的单位法向量和其K阶邻域内(最近的K个点)的法向量。假设某点的单位法向量为
{{\boldsymbol{N}}_i} = \left( {{x_i},{y_i},{{\textit{z}}_i}} \right) ,其K阶邻域内的法向量为{{\boldsymbol{N}}_{i1}} = \left( {{X_{i1}},{Y_{i1}},{Z_{i1}}} \right), \cdots ,{{\boldsymbol{N}}_{iK}} = \left( {{X_{iK}},{Y_{iK}},{Z_{iK}}} \right) 。用V表示其单位法向量与K阶邻域内法向量点积的平均值,计算方法如公式(10)所示:V = \frac{{{V_N}}}{K} = \frac{{\displaystyle\sum_{{{j}} = 1}^K {\left| {{x_i} \cdot {X_{ij}} + {y_i} \cdot {Y_{ij}} + {{\textit{z}}_i} \cdot {Z_{ij}}} \right|} }}{K}\quad, (10) V值的取值区间为[0,1],V值越大,表明该点K阶邻域内的单位法向量变化越小,弯曲程度越小,精简的可能性越大。计算出参数
V'=1-V ,利用V' 值可以更加直观地看出点云的弯曲程度,V' 值越大,弯曲程度越大,精简的可能性越小。通过
V' 对点云数据点进行分类,分类方法如表1所示。表 1 根据V′对点云进行分类Table 1. Categorizion of the point cloud according to V′分类类别 V′的取值区间 1 [0,0.003) 2 [0.003,0.004) 3 [0.004,0.008) 4 [0.008,0.016) 5 [0.016,0.032) 6 [0.032,0.064) 7 [0.064,1] 根据
V^{\prime} 值的不同将点云分为了7个类别,类别越高,说明该点弯曲程度越大,精简的可能性就越小。首先对第7类数据采样比例REM7进行预设,然后根据公式(11)可以求得其它类别数据的采样比例:RE{M}_{{i}}=RE{M}_{7}\times \frac{2\times i-1}{13}({i}=1,2,\cdots ,6) \quad. (11) 根据采样比例筛选出所需要保留的点云数据,获得精简后的点云。
5. 三维重建系统的软件设计
为了验证本文所提方法的有效性,自主搭建了一套基于转动式二维激光扫描仪的三维重建设备,硬件连接实物如图10所示。
IMU/GPS传感器固定在激光扫描仪机架上,两者之间是相对静止的,所以IMU/GPS测得的状态变化量通过变换以后近似等于激光扫描仪所产生的状态变化量。
在硬件系统搭建完成以后,MATLAB和PLC的通讯是通过MODBUS RTU通讯协议进行的,以完成上位机指令的发送与PLC数据的接收。
激光扫描仪的数据是通过以太网来发送和接收的。
5.1 点云数据的获取与处理
上位机设置好扫描参数和地址以后便可以开始进行三维点云数据采集。首先,运用PLC和激光扫描仪的同步控制程序来采集三维点云数据。然后,用半径滤波法和特征保持精简算法对点云数据进行滤波和精简处理。最后,利用GPS/IMU测得的二维激光扫描仪的位姿信息完成点云数据的配准。图11所示的是采集的三维点云图像。
从图11中可以看出,采集的三维激光点云数据能够完整地显示出物体的三维轮廓,但是还存在着一些离群点和噪声点,需要对其进行降噪处理。将半径滤波算法的近邻参数设置为10,即寻找最近的10个点。阈值设置为5,即最大距离超过5 mm就剔除该点。图12为经过滤波后的点云数据,可见通过半径滤波法对点云进行处理以后,剔除了大量的离群点和噪声点,点云模型也变得精确和顺滑。
对滤波后的点云数据进行精简处理,设置10个类别。第10个类别的采样比例设置为0.01,其它9个类别的采样比例可以依据公式(11)求出。
为了显示精简效果,本文引入了点云精简率进行分析,其表达式如下:
p=\frac{\left|C-{C}_{a}\right|}{C}\times 100\text{%}\quad, (12) 式中:p表示点云的精简率,C表示精简前的点云数目,Ca表示精简后的点云数目。
图13为经过点云精简的结果。由图可知,经过精简处理后,点云数目只剩下了7711个。用公式(12)求得滤波率达到了99.64%。该方法不仅提高了存储和处理效率,而且很好地保留了外形特征。
5.2 实验误差分析
为了检验三维模型的重建精度和多传感器融合方法的效果,对重建模型的误差进行分析。测量距离是通过点云图像上的数据点获取的,实际距离是用激光测距仪在原始物体上测得的距离。对比相同位置的实际距离和测量距离,可得到如表2所示的测量结果。
表 2 实验测量结果Table 2. Experimental measurement results测量次数 实际距离(mm) 误差修正前(mm) 误差修正后(mm) 1 374 389.6 377.2 2 377 396.5 383.4 3 452 471.8 457.1 4 397 414.4 399.9 5 445 465.5 449.2 6 421 439.5 424.6 7 385 404.2 389.3 测量距离的相对误差可以由公式(13)求得:
\lambda =\frac{\left|A-{A}_{a}\right|}{A}\times 100\text{%} \quad, (15) 式中:
\lambda 表示相对误差,A表示实际距离,Aa表示测量距离。将表2中的测量结果带入公式(13)中进行计算,分别计算出了修正前和修正后的相对误差,如图14所示。
通过对比修正前和修正后的相对误差,发现卡尔曼滤波方法的重建精度有3%的提高。二维激光扫描仪的测量误差达到了毫米级,平均误差为4.24 mm,平均误差率也控制在2%以内。
5.3 实验结果对比
为了验证基于二维激光扫描仪和多传感器的重建方法在精度上的优势,使用IMU和深度相机数据融合方法作为对照组进行对比实验。重建出的模型如图15所示。
为了验证本文所提方法相较于深度相机重建方法具有精度优势,在图15的重建模型上进行采样。采样的位置和表2相同,得到的测量结果如表3所示。
表 3 实验结果对比Table 3. Comparison of experimental results测量次数 实际距离
(mm)本文方法
(mm)深度相机的重建方法
(mm)1 374 377.2 379.5 2 377 383.4 383.1 3 452 457.1 447.3 4 397 399.9 402.6 5 445 449.2 440.5 6 421 424.6 417.4 7 385 389.3 391.2 通过表3可以得出基于IMU和深度相机数据融合方法的平均误差为5.17 mm。而本文所提方法的平均误差为4.24 mm,较其降低了0.93 mm。
综上,基于转动式二维激光扫描仪的三维重建方法在精度上要高于深度相机的重建方法。通过设置二维激光扫描仪的扫描范围,不仅能对小场景进行重建,对于大规模场景重建也同样适用。
6. 结 论
本文分析了国内外三维重建方法的研究现状,提出了一种基于转动式二维激光扫描仪的三维重建方法。完成了结构装置、硬件电路、PLC程序和MATLAB程序的设计。设计的结构装置能够保证电机带动激光扫描仪进行同步运动,通过电机带动激光扫描仪做旋转运动的方式完成了三维点云数据的采集。通过对电机的细分驱动增加了运转的平稳性,电机步距角越小,获得的点云数目也越多。利用坐标变换方法,解决了单一位置下点云采集不完整的问题。通过卡尔曼滤波方法进行滤波处理,减小了实验的误差,并对误差进行分析,提高重建精度。最后,通过实验验证了本文所提方法的有效性,不仅保留了物体的外形特征,而且获取到高精度的点云。点云数据的平均误差为4.24 mm,误差率在2%以内。实验证明本文所提重建方法的精度要高于深度相机/IMU的重建方法,而且整套装置的成本也远低于多线激光扫描仪。
-
表 1 根据V′对点云进行分类
Table 1. Categorizion of the point cloud according to V′
分类类别 V′的取值区间 1 [0,0.003) 2 [0.003,0.004) 3 [0.004,0.008) 4 [0.008,0.016) 5 [0.016,0.032) 6 [0.032,0.064) 7 [0.064,1] 表 2 实验测量结果
Table 2. Experimental measurement results
测量次数 实际距离(mm) 误差修正前(mm) 误差修正后(mm) 1 374 389.6 377.2 2 377 396.5 383.4 3 452 471.8 457.1 4 397 414.4 399.9 5 445 465.5 449.2 6 421 439.5 424.6 7 385 404.2 389.3 表 3 实验结果对比
Table 3. Comparison of experimental results
测量次数 实际距离
(mm)本文方法
(mm)深度相机的重建方法
(mm)1 374 377.2 379.5 2 377 383.4 383.1 3 452 457.1 447.3 4 397 399.9 402.6 5 445 449.2 440.5 6 421 424.6 417.4 7 385 389.3 391.2 -
[1] 姚程, 马彩文. 基于平面补丁的自适应八叉树三维图像重建[J]. 光学 精密工程,2022,30(9):1113-1122. doi: 10.37188/OPE.20223009.1113YAO CH, MA C W. Adaptive octree 3D image reconstruction based on plane patch[J]. Optics and Precision Engineering, 2022, 30(9): 1113-1122. (in Chinese) doi: 10.37188/OPE.20223009.1113 [2] PULITI M, MONTAGGIOLI G, SABATO A. Automated subsurface defects' detection using point cloud reconstruction from infrared images[J]. Automation in Construction, 2021, 129: 103829. doi: 10.1016/j.autcon.2021.103829 [3] 赵杰, 陈小梅, 侯玮旻, 等. 基于城市遥感卫星影像对的立体匹配[J]. 光学 精密工程,2022,30(7):830-839. doi: 10.37188/OPE.20223007.0830ZHAO J, CHEN X M, HOU W M, et al. Stereo matching based on urban satellite remote sensing image pair[J]. Optics and Precision Engineering, 2022, 30(7): 830-839. (in Chinese) doi: 10.37188/OPE.20223007.0830 [4] 孙艺洋, 许金凯, 于占江, 等. 微细铣刀位姿同轴全息重建方法[J]. 中国光学,2022,15(2):355-363. doi: 10.37188/CO.2021-0089SUN Y Y, XU J K, YU ZH J, et al. Coaxial holographic reconstruction method of micro-milling tool pose[J]. Chinese Optics, 2022, 15(2): 355-363. (in Chinese) doi: 10.37188/CO.2021-0089 [5] SHUANG Y C, WANG Z Z. Active stereo vision three-dimensional reconstruction by RGB dot pattern projection and ray intersection[J]. Measurement, 2021, 167: 108195. doi: 10.1016/j.measurement.2020.108195 [6] WANG C W, PENG C C. 3D face point cloud reconstruction and recognition using depth sensor[J]. Sensors, 2021, 21(8): 2587. doi: 10.3390/s21082587 [7] WANG B Y, WANG Q, CHENG J C P, et al. Vision-assisted BIM reconstruction from 3D LiDAR point clouds for MEP scenes[J]. Automation in Construction, 2022, 133: 103997. doi: 10.1016/j.autcon.2021.103997 [8] 蔡军, 赵原, 李宇豪, 等. 一种三维激光扫描系统的设计及参数标定[J]. 北京航空航天大学学报,2018,44(10):2208-2216. doi: 10.13700/j.bh.1001-5965.2018.0029CAI J, ZHAO Y, LI Y H, et al. A 3D laser scanning system design and parameter calibration[J]. Journal of Beijing University of Aeronautics and Astronautics, 2018, 44(10): 2208-2216. (in Chinese) doi: 10.13700/j.bh.1001-5965.2018.0029 [9] 钱超杰, 杨明, 戚明旭, 等. 基于摆动单线激光雷达的大场景稠密点云地图创建系统[J]. 机器人,2019,41(4):464-472,492. doi: 10.13973/j.cnki.robot.180543QIAN CH J, YANG M, QI M X, et al. Swinging single-layer LiDAR based dense point cloud map reconstruction system for large-scale scenes[J]. Robot, 2019, 41(4): 464-472,492. (in Chinese) doi: 10.13973/j.cnki.robot.180543 [10] 王锐, 常锴, 符国浩, 等. 单线激光雷达与GNSS/INS的空间重构[J]. 光学 精密工程,2020,28(4):851-858.WANG R, CHANG K, FU G H, et al. Space reconstruction using single-line LIDAR and GNSS/INS fused data[J]. Optics and Precision Engineering, 2020, 28(4): 851-858. (in Chinese) [11] LU H J, XU SH G, CAO SH. SGTBN: generating dense depth maps from single-line LiDAR[J]. IEEE Sensors Journal, 2021, 21(17): 19091-19100. doi: 10.1109/JSEN.2021.3088308 [12] WEN W S, PFEIFER T, BAI X W, et al. Factor graph optimization for GNSS/INS integration: a comparison with the extended Kalman filter[J]. Journal of the Institute of Navigation, 2021, 68(2): 315-331. doi: 10.1002/navi.421 [13] NING X J, LI F, TIAN G, et al. An efficient outlier removal method for scattered point cloud data[J]. PLoS One, 2018, 13(8): e0201280. doi: 10.1371/journal.pone.0201280 [14] 袁小翠, 吴禄慎, 陈华伟. 特征保持点云数据精简[J]. 光学 精密工程,2015,23(9):2666-2676. doi: 10.3788/OPE.20152309.2666YUAN X C, WU L SH, CHEN H W. Feature preserving point cloud simplification[J]. Optics and Precision Engineering, 2015, 23(9): 2666-2676. (in Chinese) doi: 10.3788/OPE.20152309.2666 [15] TIAN Y, XU H, GUAN F, et al. Projection and integration of connected-infrastructure LiDAR sensing data in a global coordinate[J]. Optics &Laser Technology, 2021, 144: 107421. [16] WELCH G F. Kalman filter[J]. Computer Vision:A Reference Guide, 2020: 1-3. [17] NAGUI N, ATTALLAH O, ZAGHLOUL M S, et al. Improved GPS/IMU loosely coupled integration scheme using two kalman filter-based cascaded stages[J]. Arabian Journal for Science and Engineering, 2021, 46(2): 1345-1367. doi: 10.1007/s13369-020-05144-8 期刊类型引用(6)
1. 江政,俞驰威,黄天然,缪佳晖,陈坤杰,黄明,黄继超. 基于三维重建的猪大排定量切片方法. 农业工程学报. 2025(02): 291-299 . 百度学术
2. 王彦,徐浩雨,汪俊亮,朱伟,蒋超. 环形布设光纤布拉格光栅的三维曲面形状重构. 中国光学(中英文). 2024(02): 398-408 . 百度学术
3. 朱婧怡,杨鹏程,孟杰,张津京,崔嘉宝,代阳. 基于曲率特征的文物点云分类降采样与配准方法. 中国光学(中英文). 2024(03): 572-579 . 百度学术
4. 刘宇豪,吴福培,吴树壮,王瑞. 基于插值超分辨的双目三维重建方法. 中国光学(中英文). 2024(04): 862-874 . 百度学术
5. 赖振彬,李昱江,李洋,帅海乐,杨垣. 2D激光雷达室内平面数据预处理方法研究. 现代信息科技. 2024(13): 125-128 . 百度学术
6. 方远翔,江伦,裴惠熠,王锦疆,崔勇,张家铭. 双液晶偏振光栅系统的倾斜误差特性分析. 中国光学(中英文). 2024(06): 1387-1396 . 百度学术
其他类型引用(3)
-