-
在点云配准过程中,通常会受到噪声点以及点云密度分布不均对配准效果的影响,VCCS算法首先利用体素化与网格化选取点云中的初始种子点,并利用半径滤波降低初始种子点中的噪声干扰,最后利用流约束聚类提取出点云中的特征点。VCCS算法首先利用八叉树数据结构对点云进行体素化(如公式(1)所示),将点云最小包围盒V划分成分辨率为
$ {R_v} $ 的若干立方体,利用立方体内所有点云数据的重心点来近似表示所有点,与处理点数据相比,基于体素的数据结构可以抑制点云中存在的噪声、异常值和不均匀点密度的负面影响,同时大大降低计算成本,提高分割过程的效率和稳健性。另外,体素化处理可以部分减少三维激光雷达扫描物体因距离变化引起的点的各向异性密度影响。如图1所示,最小包围盒V被划分为n个体素$ {v_i} $ ,其中体素分辨率表示为$ {R_v} $ 。$$ \sum\limits_{i = 0}^n {{v_i} = V} $$ (1) 对体素化后的点云,选用分辨率为
$ {R_s} $ ($ {R_v} $ <<$ {R_s} $ )的体素网格来进行网格化处理,将距离体素网格中心最近的体素作为初始种子体素。为了剔除初始种子体素中的错误体素,需要删除体素空间中因漂移噪声点造成的孤立的体素。VCCS算法针对每一个种子体素建立一个半径为$ {R_{search}} $ 的搜索区域,计算在该区域内的体素数目,对数目小于固定阈值的种子体素予以剔除,如图2所示。VCCS算法通过计算搜索半径
$ {R_{search}} $ 区域内的体素数目来剔除噪声种子体素,而单一限制条件无法取得良好的去噪效果。搜索半径过小,虽保证了噪声种子体素的正确剔除,但也会错误剔除空间中正确种子体素;而搜索半径过大,则导致剔除效果不理想,无法有效去除空间中紧密的漂移噪声体素,而错误种子体素会使得后续流约束聚类算法在初始化的过程中产生误差,并且在聚类迭代的过程中不断增加,最终导致错误分割。对去噪后的体素云,为了保证后续分割具有宏观结构特性,对体素之间的空间连通性进行约束,通过相邻体素中心距离不超过
$ \sqrt 3 {R_v} $ 这一约束条件,保证流过的体素具有26邻接[17]的空间关系,在上述基础之上,又综合考虑体素云数据的颜色信息、几何特征和空间距离来衡量体素之间的相似性,通过相似性距离D[16]计算邻接体素与聚类中心所有体素的距离均值,对平均距离最近的体素进行标记,通过逐层向外搜索至下一个体素,直至所有体素均得到遍历。当所有体素的邻接图搜索结束后,对已经聚类的超体素进行更新,当聚类中心稳定或达到最大的迭代次数时完成体素云的连通性分割。流约束聚类算法[18]搜索顺序如图3所示。 -
通过VCCS原理可知,该算法与以往通过投影进行分割的方法不同,通过考虑空间连通性,保证了分割的超体素具有宏观的结构特征,其中关键在于对种子体素的正确选取,文中为解决去噪过程中单一限制条件的局限性,将二维的canny思想延伸到三维,通过大小两阈值分别对孤立漂移噪声体素与紧密漂移噪声体素针对性地剔除,首先选用小阈值对初始种子体素进行分层去噪,以达到去除孤立噪声种子体素的目的。接着为了防止小阈值对紧密漂移噪声体素剔除效果不理想,对小阈值去噪后的体素云再通过大阈值进行分层去噪,进一步对紧密噪声种子体素进行剔除,通过双阈值两个限制条件,防止因后续聚类迭代过程导致误差不断增加,为噪声种子体素的正确剔除提供保障;双阈值体素去噪在保证去噪效果的同时解决了传统迭代去噪算法速度慢的问题,通过对体素云进行大小阈值分层并行处理,大大减少了去噪时间,加快了整体的运算速率。具体算法如下。
双阈值体素去噪算法包括三个步骤:归一化处理、种子体素分层处理和双阈值去噪。
首先,为了规范种子体素的去噪过程,对体素云P和Q进行归一化操作,步骤如下。
Step1:根据公式(2)计算参数M;
Step2:根据公式(3)计算归一化系数s;
Step3:根据公式(4)分别对体素云P和Q进行归一化处理,得到归一化后的体素云集合
$ P' $ 和$ Q' $ 。$$ M = \max \{ {x_{\max }},{x_{\min }},{y_{\max }},{y_{\min }},{{\textit{z}}_{\max }},{{\textit{z}}_{\min }}\} $$ (2) $$ s = 1/M $$ (3) $$ P' = P \times s Q' = Q \times s $$ (4) 对于归一化后体素云集合
$ P' $ 和$ Q' $ 的最小包围盒分别用U1和U2表示。为了增加体素去噪的运算速度,对体素云进行分层处理,将体素云
$ P' $ 和$ Q' $ 按照Z轴方向距离信息从小到大进行排序。针对体素空间特性,将Zhou Shengtao[19]等人分层去噪的思想加以改进,利用体素分辨率$ {R_v} $ 设置大小阈值分层厚度,减少Zhou Shengtao[19]等人算法中针对点云分层厚度的计算,提高去噪运算速率,如公式(5)所示,其中待配准两片体素云数据在Z轴方向的层数分别为$ {m_i} $ 和$ {h_i} $ ;$ \left| {{L_i}} \right| $ 为体素云Z轴距离信息方向的长度。$$ {m_i} = \left| {{L_i}} \right|/{R_v} {h_i} = \left| {{L_i}} \right|/{R_v} $$ (5) 为了加快体素云运算速度,忽略Z方向上的影响,将体素云按照体素分辨率
$ {R_v} $ 进行分层,在第$ i\left( {i = 1,...,m{{\left( h \right)}_i}} \right) $ 层剔除孤立种子体素的过程中,小阈值设置如公式(6)所示,由于小阈值主要处理的是空间中孤立的漂移体素噪声,根据孤立漂移体素噪声的空间特性,其一定不具有空间连续关系,因此,通过判断初始种子体素小阈值包围正方体内是否有唯一体素来剔除孤立噪声体素,其包围正方形S的示意图如图4所示。$$ \eta = 3/2 \times {R_v} $$ (6) 为防止小阈值去噪后的体素云中含有紧密漂移噪声体素,对小阈值去噪后的体素云,判断其大阈值包围盒内初始种子体素是否空间连续,来去除空间中的紧密漂移噪声体素,大阈值设置如公式(7)所示。若初始种子体素是空间连续的,则如图5所示,图中深蓝色为初始种子体素,浅蓝色为相邻体素;若种子体素不是噪声体素,即使处在体素云边缘,其大阈值包围盒内最少应当存在9个体素。因此,通过大阈值
$ \rho $ 计算初始种子体素$P(Q)\left( {x,y,{\textit{z}}} \right)$ 的正方体包围盒V中体素是否小于9,对紧密噪声体素进行去除。$$ \rho = 5/2 \times {R_v} $$ (7) 为了减少大阈值去噪时间,加快运算速率,对小阈值去噪后的体素云,依据厚度
$\; \rho $ 对体素云进行分层,同时为了去除分层边缘对去噪的影响,对Z轴进行体素云分层时应保证分层体素云与邻层存在厚度为2$ {R_v} $ 的嵌套关系。 -
通过双阈值体素去噪将VCCS算法进行改进,使其在面对复杂噪声时依旧有良好的去噪效果,减少在后续聚类运算的误差,保证其分割效果。实验算法流程如图6所示。
首先将体素进行体素化与网格化,降低混合噪声的干扰并提取出初始种子体素,通过对初始种子体素小阈值
$ \eta $ 产生的包围盒进行判定,剔除包围盒中孤立的种子体素,接着通过大阈值$ \;\rho $ 进行判定,将包围盒中仅包含少量体素的种子体素进行再次剔除,最后将正确的种子体素通流约束聚类分割成若干个超体素。基于双阈值体素去噪的IVCCS算法通过正确选取种子体素,保证了后续良好的分割效果。从图7实验结果可以看出,IVCCS算法对噪声剔除效果更强,分割效果明显优于VCCS算法。 -
通过聚类的思想,将具有相同属性的体素聚在一起,使体素云的宏观结构信息保留在数据之中。利用宏观信息提取点云特征点,提出一种改进的ICP算法(WICP),根据最近邻距离比这一匹配特征验证点云两片点云中点是空间重叠,将重合点与非重合点设置不同权重,优化ICP最小目标函数,减小在迭代过程中丢失点云信息对配准的影响,在保证算法效果的同时提高运行效率。
-
不同于目前基于最近邻(NN)和最近邻距离比(NNDR)[19]的特征匹配,利用双向最近邻距离比[14],通过双向搜索最近邻点判断是否为重合点云。其匹配过程如下:
(1)正序查找。针对原始点云
$ P'' $ 中任一点$ {p_j} $ ,在目标点云$Q''$ 中寻找其最近邻点,其最近距离可以定义为$ \overrightarrow {{d_j}} $ 。(2)逆序查找。针对目标点云
$ Q'' $ 中搜索到的最近邻点,令其在原始点云$ P'' $ 中反向搜索最近邻点,并将最近距离定义为$ \overrightarrow {{d_\varepsilon }} $ 。(3)由于激光雷达扫描的里两片点云存在角度差异,该双向距离存在一种现象:在重叠区域中,一个点的双向对应关系是其本身或者相邻点,所以该点的后向距离等于或者略小于前向距离;在非重叠区域内,一个点的双向距离对应点相聚较远,所以前向距离远大于后向距离。
(4)循环执行步骤(2)~(4),找到所有点的双向最近距离点,比较双向距离的
$ \overrightarrow {{d_j}} /\overrightarrow {{d_\varepsilon }} $ ,如果$ \overrightarrow {{d_j}} /\overrightarrow {{d_\varepsilon }} $ 小于阈值thr,将其视为重合点赋予较高的概率值,同时对于双向最近邻距离比大于thr的点,降低非重叠的点的概率值,降低其对配准影响。阈值thr代表的是两片点云前向距离与后向距离的比值,其值越大,则证明该点距重合点云距离越远,也证明该点对配准效果的影响越大;反之,其值越小(最小值为1),证明其距重合点云越近或该点就是重合点云。
-
传统的ICP算法将待配准两片点云分别定义为
$ P = \{ {p_j}\} _{j = 1}^w $ 和$ Q = \{ {q_\varepsilon }\} _{\varepsilon = 1}^n $ ,其中w和n分别为原始点云和目标点云的数量,利用公式(8)最小化点云距离求取旋转矩阵R和平移矩阵T。$$ \min \Bigg(\sum\limits_{j = 1}^w {\left\| {\left( {R{p_j} + T} \right) - {q_\varepsilon }} \right\|_2^2} \Bigg) $$ (8) 将传统的ICP算法利用双向最近邻距离比进行改进,利用点云重合信息将每个点赋予不同的权重来最小化目标函数,用于部分重叠的点云配准,优化后的公式如下:
$$ \underset{R,T}{\mathrm{min}}\Bigg({\displaystyle \sum _{j=1}^{w}{\Vert (R{p}_{j}+T)-{q}_{\epsilon }\Vert }_{2}^{2}}·\overrightarrow{{\omega }_{j}}\Bigg) $$ (9) 其中,
$\overrightarrow {{\omega _j}} $ 表示赋予每个点权重,其定义如下:$$ \overrightarrow {{\omega _j}} = {{\rm{e}}^{ - \lambda ({\varphi _j} - 1)}} $$ (10) $$ {\varphi _j} = \overrightarrow {{d_j}} /\overrightarrow {{d_\varepsilon }} $$ (11) 式中:
$\lambda $ (大于0)为预设参数。可知随着比率${\varphi _j}$ 的增加,权重$\overrightarrow {{\omega _j}} $ 在1~0范围内逐渐减小,并且$\overrightarrow {{\omega _j}} $ 的减小速率与$\lambda $ 的值相关。因此,将公式(9)与ICP算法相结合,其主要步骤如下。(1) 将由体素质心构成的点云
$P''$ 中的每个点${p_j}$ 建立双向搜索对应关系:$$ {c_{k + 1}}(j) = \mathop {\arg }\limits_{\varepsilon \in (1,...,n)} \min \left\| {({R_k}{p_j} + {T_k}) - {q_\varepsilon }} \right\|_2^2 $$ (12) $$ f = \mathop {\arg }\limits_{\varepsilon \in (1,...,w)} \min \left\| {{q_\varepsilon } - ({R_k}{p_j} + {T_k})} \right\|_2^2 $$ (13) (2) 计算各点的权重:
$$ {\overrightarrow \omega _{j,k + 1}} = {{\rm{e}}^{ - \lambda ({\varphi _{j,k + 1}} - 1)}} $$ (14) $$ {\varphi _{j,k + 1}} = \frac{{{{\overrightarrow d }_{j,k + 1}}}}{{{{\overrightarrow d }_{\varepsilon ,k + 1}}}} $$ (15) 式中:
${\overrightarrow d _{j,k + 1}}$ 和${\overrightarrow d _{\varepsilon ,k + 1}}$ 为点云由${R_k}$ 和${T_k}$ 转换后${p_j}$ 的向前最近距离和向后最近距离。(3) 通过最小化加权最小二乘函数来计算最佳的旋转平移矩阵:
$$ ({R}_{k+1},{T}_{k+1})=\mathrm{arg}\mathrm{min}\Bigg({\displaystyle \sum _{j=1}^{m}{\Vert ({R}_{k}{p}_{j}+{T}_{k})-{q}_{{c}_{k}(j)}\Vert }_{2}^{2}·{\overrightarrow{\omega }}_{j,k+1}}\Bigg) $$ (16) 将前文分割得到的超体素提取关键点,通过迭代地执行上述三个步骤来获得最优解,直到满足收敛标准。为了加快算法运行,采用最优节点优先(Best Bin First, BBF)优化K-D Tree近邻搜索[20],加速对应点对搜索。
(1)分割结点确定:统计所有特征点在(x, y, z)各维度方差,方差最大的维度为主维度,将特征点按主维度排序,正中间特征点为分割结点。
(2)搜索对应关系点对:待查询点值与分割结点值比较,若小于等于则进左子树,否则进右子树,沿K-DTree搜索,直至叶子结点,在该子空间内查找与待查询点距离最近的点,同时建立优先级,点的优先级
${T_{pri}}$ 定义为:$$ {T_{pri}} = \left| {{s_i} - {r_i}} \right|,i \in (x,y,{\textit{z}}) $$ (17) 式中:
${s_i}$ 为待查询点第i维值;$ {r_i} $ 为特征点第i维值;i为分割维度。${T_{pri}}$ 越小,优先级越大。(3) “回环”搜索:按优先级大小查找是否存在于该点距离更近的对应点,若在其他分割子空间中存在,则进入该空间继续搜索。
综上,基于IVCCS的三维点云配准算法的伪代码如算法1所述。
算法1 基于IVCCS的三维点云配准算法
(1) 对三维点云数据进行体素化与网格化处理,降低混合噪声点干扰的同时提取初始种子体素,其中体素与网格分辨率分别为
$ {R_v} $ 与$ {R_s} $ ;(2) 通过大阈值
$ \rho $ 与小阈值$ \eta $ 对种子体素去噪,剔除初始种子体素中的噪声体素;(3) 将剩余种子体素以26邻接为约束条件,通过在39维的特征空间描述得到相邻体素间的相似性距离D;
(4) 计算种子体素与相邻体素相似性距离均值,将距离最近的邻接体素进行标记;
(5) do;
(6) For 标记体素 do;
(7) 依据邻接图遍历标记体素所有邻接体素,计算标记体素与其相邻未标记体素相似性距离均值,标记距离最近的邻接体素;
(8) End for;
(9) 更新聚类中心;
(10) Until 聚类中心稳定或者达到最大迭代次数;
(11) 提取分割后超体素的质心生成待配准的点云
$ P'' $ 和$ Q'' $ ;(12) 通过最近邻距离比判断点云中的点是否为重合点;
(13) 将不同重叠情况的点云赋予不同的权重,优化最小目标函数:
$\underset{R,T}{\mathrm{min}}\Bigg({\displaystyle \sum _{j=1}^{w}{\Vert (R{p}_{j}+T)-{q}_{\epsilon }\Vert }_{2}^{2}}·\overrightarrow{{\omega }_{j}}\Bigg)$ 。 -
为了验证文中算法的有效性,实验仿真在AMD R5 4600H CPU、16 GB内存的计算机上以C++为基础,在PCL1.8.1环境下进行,采用Sydney等扫描数据集作为配准模型,利用实采数据进行实验验证,将文中算法与传统ICP、FPFH+ICP配准算法进行对比。实验采用迭代次数、均方根误差(RMSE)和配准时间来衡量配准的精度与效率。
-
理想数据实验部分选用扫描数据片段尺寸大小如表1所示。
表 1 数据集中部分点云模型片段尺寸
Table 1. Segment size of partial point cloud model in the data set
Model Model Fragment Number Gazebo Gazebo_0 135842 Gazebo_1 135589 Scans Scan_3582 54934 Scan_3725 54818 对Gazebo数据进行对比实验,由图8和表2可以看出,三种方法均得到了很小的误差值,文中算法相对于传统的ICP和FPFH+ICP算法误差更低,时间更快。在配准过程中,由于传统ICP并未对点云进行筛选,导致迭代次数较多,配准时间较为缓慢。FPFH+ICP虽然对点云进行了有效的筛选,降低了点云迭代次数和配准时间,但该方法依旧需要遍历所有点云数据。文中算法利用体素、网格化对点云进行降采样,减少了处理点云数据,利用超体素的宏观特性提取对应点,相比于FPFH+ICP算法减少了迭代次数,配准精度提高了17.1%,配准时间缩短了87%,迭代次数减少了16.6%。
表 2 Gazebo理想数据实验结果统计
Table 2. Statistics of experimental results of Gazebo ideal data
Algorithm RMSE Time/s Iterations ICP 1.49×10−5 298.996 29 FPFH+ICP 1.28×10−5 17.65 24 IVCCS+WICP 1.06×10−5 2.294 20 为了验证文中算法的优势,利用Gazebo数据集将文中算法、VCCS和ICP相结合以及VCCS与ICP分别改进相结合的算法进行对比,如表3所示,通过时间、均方根误差以及迭代次数来验证文中算法的优越性。
表 3 改进前后算法实验结果统计
Table 3. Statistics of experimental results of the algorithm before and after improvement
Algorithm RMSE Time/s Iterations VCCS+ICP 2.14×10−5 7.682 30 VCCS+WICP 1.34×10−5 2.441 27 IVCCS+ICP 1.76×10−5 7.518 30 IVCCS+WICP 1.16×10−5 2.294 20 通过表3可知,文中算法通过改进,在均方根及时间方面均有所提高。经过双阈值体素去噪后的分割算法精度提高了13.4%,时间缩短了6%;加权最近邻距离比优化后的ICP算法精度提高了34%,速度提高了69.4%。优化后的总体算法,在精度方面提高了45.8%,速度提高了70.1%。
-
考虑到雷达在对实际物体进行扫描时,由于环境等因素采集到的数据会存在噪声点影响后续的配准,为了检验文中算法对含有噪声点云数据的配准效果,利用激光雷达两帧数据对每一片点云在x和y轴上分别添加强度为5%、10%、15%的随机噪声,通过多组实验求取平均值,实验可视化结果及数据如图9和表4所示。
表 4 加噪数据结果统计
Table 4. Statistics of noise data results
Algorithm Noise RMSE Time/s Iterations ICP 5% 3.57×10−3 485.125 133 FPFH+ICP 2.83×10−3 24.827 24 IVCCS+WICP 2.47×10−3 1.896 15 ICP 10% 4.18×10−3 533.17 142 FPFH+ICP 3.41×10−3 25.748 27 IVCCS+WICP 3.12×10−3 2.224 21 ICP 15% 1.08×10−2 942.03 157 FPFH+ICP 9.57×10−3 27.253 37 IVCCS+WICP 8.68×10−3 2.468 25 从表4可以看出,文中算法相比于传统ICP和FPFH+ICP算法受噪声影响程度较小。传统ICP算法在添加噪声之后虽能保证配准效果,但受噪声点的影响较为严重。对于上述的三组实验分别在迭代49、63和82次后,受混合噪声影响极为明显,导致后续配准过程中出现坐标变换尺度变小、迭代次数增多、配准时间加长等问题;FPFH+ICP算法迭代次数虽然没有明显增加,但是由于噪声点的干扰,增加其筛选特征点的时间;而文中算法通过体素化与双阈值密度去噪分别降低混合噪声点与漂移噪声点对后续配准的影响,在点云数据受噪声点干扰的情况下实现良好的配准结果,相对于FPFH+ICP算法在处理噪声数据方面精度提高了8.5%~12.7%,配准速度提高了90.9%~92.3%,迭代次数减少了22.2%~37.5%。
-
为了验证文中算法在实际应用中的准确性与可行性,利用RS-LiDAR-M1(B2)型号雷达对实际采集的三组数据进行实验验证。三组实验仿真数据片段尺寸如表5所示。
表 5 实采数据片段尺寸
Table 5. Actual collected data segment size
Model Model fragment Number Car Car_view1 61699 Car_view2 65015 Library Library_view1 18933 Library_view2 18925 Panzer Panzer_view1 10828 Panzer_view2 9298 (1)首先对实际采集的车辆数据进行对比实验,相机拍摄和雷达扫描点云图如图10和图11所示。将文中算法与传统ICP算法和FPFH+ICP算法进行对比实验,仿真可视化效果与实验结果统计如图12和表6所示。
表 6 车辆数据结果统计
Table 6. Statistics of car data results
Algorithm RMSE Time/s Iterations ICP 6.39×10−4 185.125 41 FPFH+ICP 3.88×20−4 5.978 21 IVCCS+WICP 2.92×10−5 1.474 13 由表6可知,在处理实际点云数据时,由于两片点云视角相差较小,点的数量相对较多,宏观结构大致相似,文中算法相比于其他两种算法在配准速度上具有明显的优势,在针对大规模点云数据配准问题上,相对于FPFH+ICP精度提高了24.7%,处理速度上加快了75.3%,迭代次数减少了38%。
(2)为了验证文中算法的适用性,以大视场图书馆为对象,利用不同视角下采集的数据进行实验验证,雷达扫描点云图如图13所示。将文中算法与传统ICP算法和FPFH+ICP算法进行对比实验,仿真可视化效果与实验结果统计如图14和表7所示。
表 7 图书馆数据结果统计
Table 7. Statistics of library data results
Algorithm RMSE Time/s Iterations ICP 8.011×10−4 84.828 59 FPFH+ICP 6.243×10−4 3.165 31 IVCCS+WICP 5.386×10−4 0.945 20 由表7可知,在处理大视场实际点云数据时,文中算法相比于其他两种算法在配准速度上具有明显的优势,相对于FPFH+ICP精度提高了13.7%,处理速度上加快了70.1%,迭代次数减少了35.4%。
(3)为了验证文中算法的抗干扰能力,以装甲车为对象,通过路人和树人为增加遮挡,降低两幅点云重复率,将不同视角下采集的数据进行实验验证,雷达扫描点云图如图15所示。将文中算法与传统ICP算法和FPFH+ICP算法进行对比实验,仿真可视化效果与实验结果统计如图16和表8所示。
表 8 图书馆数据结果统计
Table 8. Statistics of library data results
Algorithm RMSE Time/s Iterations ICP 2.199×10−4 31.116 38 FPFH+ICP 1.652×10−4 2.112 21 IVCCS+WICP 1.388×10−4 0.726 14 由表8可知,在对含有遮挡的实采数据进行点云配准时,文中算法相比于其他两种算法在配准速度上具有明显的优势,在针对大规模点云数据配准问题上,相对于FPFH+ICP精度提高了15.9%,处理速度上加快了65.6%,迭代次数减少了33.3%。
通过对实际采集数据进行多组实验,验证算法在面对在不同视场、遮挡以及数据丢失的情况下的配准能力,由实验结果可知,文中算法在面对以上几种情况下依旧能够达到良好的配准效果。相比于ICP算法具有鲁棒性强、速度快以及迭代次数少的优势,相比于FPFH+ICP算法,文中算法在精度方面提高了13.7%~24.9%,速度提高了65.6%~75.3%。
3D point cloud registration algorithm with IVCCS
-
摘要: 针对传统迭代最近点(ICP)算法在数据丢失以及存在噪声点的情况下配准时间过长、精度较低等问题,提出了一种基于改进的体素云连通性分割(IVCCS)与加权最近邻距离比相结合的配准算法。利用双阈值体素去噪剔除初始种子体素中的噪声体素,解决原本体素云连通性分割算法(VCCS)中因单一约束条件导致种子体素错误剔除的问题,同时将体素云分层去噪来加快配准的运算速度;利用流约束聚类提取点云中的特征点,并依据最近邻距离比验证特征点是否为重合点,赋予不同的权重优化ICP最小目标函数,从而加快配准速度。实验结果表明,该算法相对于传统ICP算法迭代次数减少,在精度与速度方面均有显著提升,相比于基于快速点特征直方图(FPFH)的ICP算法配准精度提高了8.5%~24.7%,速度上提高了65.6%~92.3%,迭代次数减少了16.6%~38%。Abstract: In order to solve the problems of long registration time and low accuracy in the case of data lossing and noise points existing in the traditional iterative closest point (ICP) algorithm, a new registration algorithm based on improved voxel cloud connectivity segmentation (IVCCS) combined with weighted nearest neighbor distance ratio was proposed. Double threshold voxel denoising was used to remove the noise voxel in the initial seed voxel, which was caused by a single constraint in the original voxel cloud connectivity segmentation algorithm (VCCS). Meanwhile, layered voxel cloud denoising was used to speed up the operation speed of registration. The feature points in the point cloud were extracted by flow constrained clustering, and whether the feature points were coincidence points was verified according to the nearest neighbor distance ratio. The minimum objective function of ICP was optimized by giving different weights, so as to accelerate the registration speed.Experimental results show that compared with the traditional ICP algorithm, the algorithm has reduced the number of iterations, and significantly improved the accuracy and speed. Compared with the ICP algorithm based on fast point feature histogram (FPFH), the algorithm has improved the registration accuracy by 8.5%-24.7%, the speed by 65.6%-92.3%, and the number of iterations decrease by 16.6%-38%.
-
表 1 数据集中部分点云模型片段尺寸
Table 1. Segment size of partial point cloud model in the data set
Model Model Fragment Number Gazebo Gazebo_0 135842 Gazebo_1 135589 Scans Scan_3582 54934 Scan_3725 54818 表 2 Gazebo理想数据实验结果统计
Table 2. Statistics of experimental results of Gazebo ideal data
Algorithm RMSE Time/s Iterations ICP 1.49×10−5 298.996 29 FPFH+ICP 1.28×10−5 17.65 24 IVCCS+WICP 1.06×10−5 2.294 20 表 3 改进前后算法实验结果统计
Table 3. Statistics of experimental results of the algorithm before and after improvement
Algorithm RMSE Time/s Iterations VCCS+ICP 2.14×10−5 7.682 30 VCCS+WICP 1.34×10−5 2.441 27 IVCCS+ICP 1.76×10−5 7.518 30 IVCCS+WICP 1.16×10−5 2.294 20 表 4 加噪数据结果统计
Table 4. Statistics of noise data results
Algorithm Noise RMSE Time/s Iterations ICP 5% 3.57×10−3 485.125 133 FPFH+ICP 2.83×10−3 24.827 24 IVCCS+WICP 2.47×10−3 1.896 15 ICP 10% 4.18×10−3 533.17 142 FPFH+ICP 3.41×10−3 25.748 27 IVCCS+WICP 3.12×10−3 2.224 21 ICP 15% 1.08×10−2 942.03 157 FPFH+ICP 9.57×10−3 27.253 37 IVCCS+WICP 8.68×10−3 2.468 25 表 5 实采数据片段尺寸
Table 5. Actual collected data segment size
Model Model fragment Number Car Car_view1 61699 Car_view2 65015 Library Library_view1 18933 Library_view2 18925 Panzer Panzer_view1 10828 Panzer_view2 9298 表 6 车辆数据结果统计
Table 6. Statistics of car data results
Algorithm RMSE Time/s Iterations ICP 6.39×10−4 185.125 41 FPFH+ICP 3.88×20−4 5.978 21 IVCCS+WICP 2.92×10−5 1.474 13 表 7 图书馆数据结果统计
Table 7. Statistics of library data results
Algorithm RMSE Time/s Iterations ICP 8.011×10−4 84.828 59 FPFH+ICP 6.243×10−4 3.165 31 IVCCS+WICP 5.386×10−4 0.945 20 表 8 图书馆数据结果统计
Table 8. Statistics of library data results
Algorithm RMSE Time/s Iterations ICP 2.199×10−4 31.116 38 FPFH+ICP 1.652×10−4 2.112 21 IVCCS+WICP 1.388×10−4 0.726 14 -
[1] Xiao J, Qu W, Jiang H, et al. Three-dimensional fractal characterization of concrete surface subjected to sulfuric acid attacks [J]. Journal of Nondestructive Evaluation, 2020, 39(3): 39-57. [2] Xu S Q, Jia X L, Choi Y, et al. Three-dimensional scanning technique in the congenital microtia reconstruction with tissue expander [J]. Chinese Medical Journal, 2021, 134: 842-844. [3] Peng Y, Zhou Y, Yao J, et al. Three-dimensional shape reconstruction via an objective function optimization-based point cloud registration method [J]. Optical Engineering, 2017, 56(11): 113108. [4] Aldoma A, Marton Z C, Tombari F, et al. Tutorial: point cloud library: three-dimensional object recognition and 6 DOF pose estimation [J]. IEEE Robotics & Automation Magazine, 2012, 19(3): 80-91. [5] Hu Yanwei, Wang Jianjun, Fan Yuanyuan, et al. Lidar-based three-dimensional modeling and volume calculation for space objects [J]. Chinese Journal of Lasers, 2020, 47(5): 0510001. (in Chinese) [6] Lu Tieding, Yuan Zhicong, Zheng Kun. Super 4PCS point cloud registration algorithm combining scale invariant features [J]. Remote Sensing Information, 2019, 34(5): 15-20. (in Chinese) [7] Liu Jian, Bai Di. 3D point cloud registration algorithm based on feature matching [J]. Acta Optica Sinica, 2018, 38(12): 1215005. (in Chinese) [8] Blais G, Levine M D. Registering multiview range data to create 3D computer objects [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1995, 17(8): 820-824. [9] Huber D F, Hebert M. Fully automatic registration of multiple 3D data sets [J]. Image & Vision Computing, 2003, 21(7): 637-650. [10] Besl P J, Mckay H D. A method for registration of 3-D shapes [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1992, 14(2): 239-256. [11] Rusu R B, Blodow N, Beetz M. Fast point feature histograms (FPFH) for 3D registration[C]//IEEE International Conference on Robotics & Automation. IEEE, 2009: 3212-3217. [12] Rusu R B, Blodow N, Marton Z C, et al. Aligning point cloud views using persistent feature histograms [C]//EEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, 2008: 3384-3391. [13] Weber T, Hänsch R, Hellwich O. Automatic registration of unordered point clouds acquired by Kinect sensors using an overlap heuristic [J]. ISPRS Journal of Photogrammetry & Remote Sensing, 2015, 102: 96-109. [14] Xiong Fengguang. Research on registration technology of 3D point cloud[D]. Taiyuan: North University of China, 2018. (in Chinese) [15] Lin Junyi, Wu Lei, Yang Meiying, et al. Rapid robot vision positioning method for large free-form surface parts [J]. Computer Integrated Manufacturing Systems, 2021, 27(7): 1951-1958. (in Chinese) [16] Papon J, Abramov A, Schoeler M, et al. Voxel cloud connectivity segmentation-supervoxels for point clouds [C]//Computer Vision & Pattern Recognition. IEEE, 2013: 2027-2034. [17] Jiang Yuanyuan. Research on supervoxel based region growing segmentation for point cloud data[D]. Xi'an: Xidian University, 2017. (in Chinese) [18] Liu Xiaoni. Research on 3D data segmentation method based on supervoxel[D]. Changchun: Jilin University, 2019. (in Chinese) [19] Zhou Shengtao, Liu Xuelian, Wang Chunyang. Non-iterative denoising algorithm based on a dual threshold for a 3D point cloud [J]. Optics and Lasers in Engineering, 2020, 126: 105921. [20] Wang Jianjun, Lu Yunpeng, Zhang Jiyun, et al. Optimization and performance verification of high efficiency ICP registration for laser point clouds[J]. Infrared and Laser Engineering, 2021, 50(10): 20200483. (in Chinese)