-
地面三维激光扫描作为一种高效、高精度的三维数据采集方法,为数字城市空间数据获取和实时更新提供了可靠的保证。数字城市建设的关键是全面、真实、快速、准确地再现地理空间实体及其环境信息,而机载激光雷达(light detection and ranging, LiDAR)传感器的视觉面较窄,因此将不同视角获取的地面LiDAR点云进行配准是一项十分重要的研究工作[1]。地面LiDAR系统从多个不同视角对同一地面目标进行扫描时,由于受周围各种冲击和振动的影响,扫描仪相对目标会出现不稳定状态,导致不同视角解算出的点云的比例尺不完全相同,因此,带缩放参数的配准模型能够更高精度地实现多站地面LiDAR点云坐标的统一[2-6]。由于结构特征具有旋转、缩放不变性[7],且受LiDAR点云密度影响小,因此以结构特征为基元的配准受到广泛关注。利用线特征的点云初始配准方法,增加了冗余度和几何强度[8]。以顶点与直线段组成的结构特征为配准基元[9],实现了LiDAR点云与航空影像的自动配准。以6独立参数模型为基础,增加点在平面上和平面法线平行两种几何特征约束条件[10],有效地改善了地面建筑物点云的配准结果。然而上述方法仅利用了直线的端点信息或在配准模型中加入不等约束条件,没有充分考虑空间直线的几何拓扑关系,配准模型的几何约束强度弱。
Plücker直线坐标的几何意义明确,形式简洁,利用螺旋的Plücker坐标进行空间直线变换表示更加有效快捷[11-13]。利用Plücker直线表示待配准点云与影像间的同名直线,能够高精度地确定LiDAR点云和影像的相对位姿关系[14]。本文提出了一种基于直线簇的地面LiDAR点云配准方法,根据直线间的相交、平行和异面的拓扑关系对Plücker直线进行聚簇。该方法结构简单,充分考虑了空间直线的拓扑关系,实现了地面LiDAR点云的高精度配准。
-
在欧基里德几何空间中,直线是可以无限延长的,孤立地考虑一条直线,直线的缩放只体现在长度的拉伸上。如图 1所示的平面模型,将黑色小正方形放大2倍,可得到大正方形,直线l1和l′1分别是小正方形与大正方形的对应边,且l′1与下边的距离是l1与下边的距离的2倍。若以两正方形的公共顶点O为坐标系原点,则l′1相对于O的矩矢量大小是l1相对于O的矩矢量大小的2倍,但和l1的方向矢量相同。这表明由直线组成的正方形放大或者缩小时,两正方形中同名直线间的距离发生了变化,且同名直线是相互平行的,直线间夹角不变。可见,将不同直线构成拓扑结构,能够实现直线的“缩放”。因此本文利用直线间的相交、平行和异面的拓扑关系对直线特征进行聚簇,构建直线簇。
根据直线簇的定义,当直线簇缩放时,直线的矩矢量大小按相同比例因子λ同时缩放,但直线的方向矢量和矩矢量方向不变,因此直线簇缩放不改变直线簇中各直线间的夹角,而是将直线簇中直线间的距离变为原来的λ倍。
根据直线簇的特点,本文采用Plücker坐标表示直线,它由直线方向矢量(L, M, N)和直线相对于空间坐标系原点的矩矢量(L0, M0, N0)组成。设l1为直线簇中任意直线,则当直线簇缩放λ倍时,l1的同名直线l′1的Plücke坐标为(L, M, N)和(λL0, λM0, λN0)。
-
为了描述直线簇在三维空间中的坐标变换,通常用单位对偶矢量$\mathit{\boldsymbol{\hat l}}$将Plücke直线表示为:
$$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{\hat l}} = \left( {L + \varepsilon {L_0}} \right){\rm{i}} + \left( {M + \varepsilon {M_0}} \right){\rm{j}} + \left( {N + \varepsilon {N_0}} \right){\rm{k}} = }\\ {\left[ {\begin{array}{*{20}{c}} 0&L&M&N&0&{{L_0}}&{{M_0}}&{{N_0}} \end{array}} \right]} \end{array} $$ (1) 式中,ε为对偶单位,满足ε2=0,ε≠0;i、j、k为虚数单位,满足i2=j2=k2=-1。
如图 2所示,直线簇中直线l1缩放至直线l′1,l′1围绕螺旋轴${\hat{n}}$转动对偶角${\hat{\theta }}$后得到l2,则直线簇中直线螺旋运动方程为:
$$ {{\mathit{\boldsymbol{\hat l}}}_2} = {{\mathit{\boldsymbol{\hat q}}}^{ - 1}} \cdot {{\mathit{\boldsymbol{\hat l'}}}_1} \cdot \mathit{\boldsymbol{\hat q}} $$ (2) $$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{\hat q}} = \cos \frac{{\hat \theta }}{2} + \sin \frac{{\hat \theta }}{2}\mathit{\boldsymbol{\hat n}} = }\\ {\left[ {\begin{array}{*{20}{c}} {{q_1}}&{{q_2}}&{{q_3}}&{{q_4}}&{{q_{01}}}&{{q_{02}}}&{{q_{03}}}&{{q_{04}}} \end{array}} \right]} \end{array} $$ $$ \begin{array}{*{20}{c}} {{{\mathit{\boldsymbol{\hat q}}}^{ - 1}} = \cos \frac{{\hat \theta }}{2} - \sin \frac{{\hat \theta }}{2}\mathit{\boldsymbol{\hat n}} = }\\ {\left[ {{q_1} - {q_2} - {q_3} - {q_4}{q_{01}} - {q_{02}} - {q_{03}} - {q_{04}}} \right]} \end{array} $$ 式中, ${\mathit{\boldsymbol{\hat{q}}}}$为单位对偶四元数;${{{\mathit{\boldsymbol{\hat{q}}}}}^{-1}} $为${\mathit{\boldsymbol{\hat{q}}}}$的共轭;${\mathit{\boldsymbol{\hat{n}}}}$为单位对偶矢量;$\hat{\theta }=\theta +\varepsilon d$,d是l′1沿着螺旋轴${\mathit{\boldsymbol{\hat{n}}}}$的方向平移的距离。
-
LiDAR点云配准是待配准LiDAR点云与基准LiDAR点云之间的空间相似变换。如图 2所示,O1-A1B1C1和O2-A2B2C2分别是待配准LiDAR点云与基准LiDAR点云,O1和O2分别为两LiDAR点云的坐标原点,O1A1、A1B1、B1C1、C1D1与O2A2、A2B2、B2C2、C2D2为两LiDAR点云上提取的同名直线,且O1A1与A1B1垂直相交、O1A1与B1C1平行、O1A1与C1D1异面, 将O1A1、A1B1、B1C1、C1D1进行聚簇,构建待配准LiDAR点云直线簇; 将O2A2、A2B2、B2C2、C2D2进行聚簇,构建基准LiDAR点云直线簇。当待配准LiDAR点云直线簇在空间中螺旋缩放至与基准LiDAR点云直线簇比例尺一致,且同名直线重合时,就能够实现LiDAR点云的配准。
-
设待配准LiDAR点云直线簇中任意直线l1的Plücke坐标为${{{\mathit{\boldsymbol{\hat{l}}}}}_{\rm{1}}}$=[0 L1 M1 N1 0 L10 M10 N10],基准LiDAR点云直线簇中同名直线l2的Plücke坐标为${{{\mathit{\boldsymbol{\hat{l}}}}}_{\rm{2}}}$=[0 L2 M2 N2 0 L20 M20 N20],那么根据式(2),l1到l2的螺旋缩放方程为:
$$ \begin{array}{*{20}{c}} {{{\mathit{\boldsymbol{\hat l}}}_2} = {{\mathit{\boldsymbol{\hat q}}}^{ - 1}} \cdot }\\ {\left[ {\begin{array}{*{20}{c}} 0&{{L_1}}&{{M_1}}&{{N_1}}&0&{\lambda {L_{10}}}&{\lambda {M_{10}}}&{\lambda {N_{10}}} \end{array}} \right] \cdot \mathit{\boldsymbol{\hat q}}}\\ { = {{\mathit{\boldsymbol{\hat q}}}^{ - 1}} \cdot {{\mathit{\boldsymbol{\hat l}}}_1}\left[ {\begin{array}{*{20}{c}} 1&0&0&0&0&0&0&0\\ 0&1&0&0&0&0&0&0\\ 0&0&1&0&0&0&0&0\\ 0&0&0&1&0&0&0&0\\ 0&0&0&0&\lambda &0&0&0\\ 0&0&0&0&0&\lambda &0&0\\ 0&0&0&0&0&0&\lambda &0\\ 0&0&0&0&0&0&0&\lambda \end{array}} \right] \cdot \mathit{\boldsymbol{\hat q}}}\\ { = {{\mathit{\boldsymbol{\hat q}}}^{ - 1}} \cdot \left( {{{\mathit{\boldsymbol{\hat l}}}_1}\left[ {\begin{array}{*{20}{c}} \mathit{\boldsymbol{I}}&\mathit{\boldsymbol{0}}\\ \mathit{\boldsymbol{0}}&{\lambda \mathit{\boldsymbol{I}}} \end{array}} \right]} \right) \cdot \mathit{\boldsymbol{\hat q}}} \end{array} $$ (3) 其中,I为4维的单位矩阵。将式(3)按照对偶四元数的乘法法则展开,得到:
$$ \begin{array}{l} {F_1} = {L_1}\left( {q_1^2 + q_2^2 - q_3^2 - q_4^2} \right) + 2{M_1}\left( {{q_2}{q_3} - } \right.\\ \;\;\;\;\;\;\;\;\;\;\;\left. {{q_1}{q_4}} \right) + 2{N_1}\left( {{q_1}{q_3} + {q_2}{q_4}} \right) - {L_2} = 0 \end{array} $$ $$ \begin{array}{l} {F_2} = {M_1}\left( {q_1^2 - q_2^2 + q_3^2 - q_4^2} \right) + 2{L_1}\left( {{q_2}{q_3} + } \right.\\ \;\;\;\;\;\;\;\;\;\;\;\left. {{q_1}{q_4}} \right) - 2{N_1}\left( {{q_1}{q_2} - {q_3}{q_4}} \right) - {M_2} = 0 \end{array} $$ $$ \begin{array}{l} {F_3} = {N_1}\left( {q_1^2 - q_2^2 - q_3^2 + q_4^2} \right) - 2{L_1}\left( {{q_1}{q_3} - {q_2}{q_4}} \right)\\ \;\;\;\;\;\;\; + 2{M_1}\left( {{q_1}{q_2} + {q_3}{q_4}} \right) - {N_2} = 0 \end{array} $$ $$ \begin{align} & {{F}_{4}}=\lambda {{L}_{10}}\left( q_{1}^{2}+q_{2}^{2}-q_{3}^{2}-q_{4}^{2} \right)+2\lambda {{M}_{10}}\left( {{q}_{2}}{{q}_{3}}-{{q}_{1}}{{q}_{4}} \right)+ \\ & 2{{L}_{1}}\left( {{q}_{1}}{{q}_{01}}+{{q}_{2}}{{q}_{02}}-{{q}_{3}}{{q}_{03}}-{{q}_{4}}{{q}_{04}} \right)- \\ & 2{{M}_{1}}\left( {{q}_{1}}{{q}_{04}}+ \right.\left. {{q}_{01}}{{q}_{4}}-{{q}_{2}}{{q}_{03}}-{{q}_{02}}{{q}_{3}} \right)+ \\ & 2{{N}_{1}}\left( {{q}_{1}}{{q}_{03}}+{{q}_{01}}{{q}_{3}}+{{q}_{2}}{{q}_{04}}+{{q}_{02}}{{q}_{4}} \right)+ \\ & 2\lambda {{N}_{10}}\left( {{q}_{1}}{{q}_{3}}+{{q}_{2}}{{q}_{4}} \right)-{{L}_{20}}=0 \\ \end{align} $$ $$ \begin{align} & {{F}_{5}}=\lambda {{M}_{10}}\left( q_{1}^{2}-q_{2}^{2}+q_{3}^{2}-q_{4}^{2} \right)+2\lambda {{L}_{10}}\left( {{q}_{2}}{{q}_{3}}+{{q}_{1}}{{q}_{4}} \right)+ \\ & 2{{M}_{1}}\left( {{q}_{1}}{{q}_{01}}-{{q}_{2}}{{q}_{02}}+{{q}_{3}}{{q}_{03}}-{{q}_{4}}{{q}_{04}} \right)-2{{L}_{1}}\left( {{q}_{1}}{{q}_{04}}+\left. {{q}_{01}}{{q}_{4}}+{{q}_{2}}{{q}_{03}}+{{q}_{02}}{{q}_{3}} \right) \right. \\ & +2{{N}_{1}}\left( {{q}_{1}}{{q}_{02}}+{{q}_{01}}{{q}_{2}}+{{q}_{3}}{{q}_{04}}-{{q}_{03}}{{q}_{4}} \right)-2\lambda {{N}_{10}}\left( {{q}_{1}}{{q}_{2}}-{{q}_{3}}{{q}_{4}} \right)-{{M}_{20}}=0 \\ \end{align} $$ $$ \begin{align} & {{F}_{6}}=\lambda {{N}_{10}}\left( q_{1}^{2}-q_{2}^{2}-q_{3}^{2}+q_{4}^{2} \right)-2\lambda {{L}_{10}}\left( {{q}_{1}}{{q}_{3}}-{{q}_{2}}{{q}_{4}} \right)+ \\ & 2{{N}_{1}}\left( {{q}_{1}}{{q}_{01}}-{{q}_{2}}{{q}_{02}}-{{q}_{3}}{{q}_{03}}+{{q}_{4}}{{q}_{04}} \right)-2{{L}_{1}}\left( {{q}_{1}}{{q}_{03}}+ \right.\left. {{q}_{01}}{{q}_{3}}-{{q}_{2}}{{q}_{04}}-{{q}_{02}}{{q}_{4}} \right) \\ & +2{{M}_{1}}\left( {{q}_{1}}{{q}_{02}}+{{q}_{01}}{{q}_{2}}+{{q}_{3}}{{q}_{04}}+{{q}_{03}}{{q}_{4}} \right)+2\lambda {{M}_{10}}\left( {{q}_{1}}{{q}_{2}}+{{q}_{3}}{{q}_{4}} \right)-{{N}_{20}}=0 \\ \end{align} $$ (4) -
式(4)是直线簇约束下的LiDAR点云配准方程。为了能用最小二乘法解算,对式(4)的6个方程按照泰勒级数展开取一次项来进行线性化,则有:
$$ \begin{array}{l} {F_1} = {F_{10}} + {a_{11}}{\rm{d}}{q_1} + {a_{12}}{\rm{d}}{q_2} + {a_{13}}{\rm{d}}{q_3} + {a_{14}}{\rm{d}}{q_4} + {a_{15}}{\rm{d}}{q_{01}} + {a_{16}}{\rm{d}}{q_{02}} + {a_{17}}{\rm{d}}{q_{03}} + {a_{18}}{\rm{d}}{q_{04}} \\+ {a_{19}}{\rm{d}}\lambda \\ {F_2} = {F_{20}} + {a_{21}}{\rm{d}}{q_1} + {a_{22}}{\rm{d}}{q_2} + {a_{23}}{\rm{d}}{q_3} + {a_{24}}{\rm{d}}{q_4} + {a_{25}}{\rm{d}}{q_{01}} + {a_{26}}{\rm{d}}{q_{02}} + {a_{27}}{\rm{d}}{q_{03}} + {a_{28}}{\rm{d}}{q_{04}} \\+ {a_{29}}{\rm{d}}\lambda \\ {F_3} = {F_{30}} + {a_{31}}{\rm{d}}{q_1} + {a_{32}}{\rm{d}}{q_2} + {a_{33}}{\rm{d}}{q_3} + {a_{34}}{\rm{d}}{q_4} + {a_{35}}{\rm{d}}{q_{01}} + {a_{36}}{\rm{d}}{q_{02}} + {a_{37}}{\rm{d}}{q_{03}} + {a_{38}}{\rm{d}}{q_{04}} \\+ {a_{39}}{\rm{d}}\lambda \\ {F_4} = {F_{40}} + {a_{41}}{\rm{d}}{q_1} + {a_{42}}{\rm{d}}{q_2} + {a_{43}}{\rm{d}}{q_3} + {a_{44}}{\rm{d}}{q_4} + {a_{45}}{\rm{d}}{q_{01}} + {a_{46}}{\rm{d}}{q_{02}} + {a_{47}}{\rm{d}}{q_{03}} + {a_{48}}{\rm{d}}{q_{04}} \\+ {a_{49}}{\rm{d}}\lambda \\ {F_5} = {F_{50}} + {a_{51}}{\rm{d}}{q_1} + {a_{52}}{\rm{d}}{q_2} + {a_{53}}{\rm{d}}{q_3} + {a_{54}}{\rm{d}}{q_4} + {a_{55}}{\rm{d}}{q_{01}} + {a_{56}}{\rm{d}}{q_{02}} + {a_{57}}{\rm{d}}{q_{03}} + {a_{58}}{\rm{d}}{q_{04}} \\+ {a_{59}}{\rm{d}}\lambda \\ {F_6} = {F_{60}} + {a_{61}}{\rm{d}}{q_1} + {a_{62}}{\rm{d}}{q_2} + {a_{63}}{\rm{d}}{q_3} + {a_{64}}{\rm{d}}{q_4} + {a_{65}}{\rm{d}}{q_{01}} + {a_{66}}{\rm{d}}{q_{02}} + {a_{67}}{\rm{d}}{q_{03}} + {a_{68}}{\rm{d}}{q_{04}} \\+ {a_{69}}{\rm{d}}\lambda \end{array} $$ (5) 式中,
$$ {a_{11}} = 2{L_1}{q_1} + 2{N_1}{q_3} - 2{M_1}{q_4} $$ $$ {a_{12}} = 2{L_1}{q_2} + 2{M_1}{q_3} - 2{N_1}{q_4} $$ $$ {a_{13}} = 2{N_1}{q_1} + 2{M_1}{q_2} - 2{L_1}{q_3} $$ $$ {a_{14}} = - 2{M_1}{q_1} + 2{N_1}{q_2} - 2{L_1}{q_4} $$ $$ {a_{15}} = {a_{16}} = {a_{17}} = {a_{18}} = {a_{19}} = 0 $$ $$ {a_{21}} = 2{M_1}{q_1} - 2{N_1}{q_2} + 2{L_1}{q_4} $$ $$ {a_{22}} = - 2{M_1}{q_2} - 2{N_1}{q_1} + 2{L_1}{q_3} $$ $$ {a_{23}} = 2{M_1}{q_3} + 2{N_1}{q_4} + 2{L_1}{q_2} $$ $$ {a_{24}} = - 2{M_1}{q_4} + 2{N_1}{q_3} + 2{L_1}{q_1} $$ $$ {a_{25}} = {a_{26}} = {a_{27}} = {a_{28}} = {a_{29}} = 0 $$ $$ {a_{31}} = 2{N_1}{q_1} + 2{M_1}{q_2} - 2{L_1}{q_3} $$ $$ {a_{32}} = - 2{N_1}{q_2} + 2{M_1}{q_1} + 2{L_1}{q_4} $$ $$ {a_{33}} = 2{M_1}{q_4} - 2{N_1}{q_3} - 2{L_1}{q_1} $$ $$ {a_{34}} = 2{N_1}{q_4} + 2{M_1}{q_3} + 2{L_1}{q_2} $$ $$ {a_{35}} = {a_{36}} = {a_{37}} = {a_{38}} = {a_{39}} = 0 $$ $$ \begin{array}{l} {a_{41}} = 2{L_1}{q_{01}} + 2\lambda {L_{10}}{q_1} - 2{M_1}{q_{04}} - \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_4} + 2{N_1}{q_{03}} + 2\lambda {N_{10}}{q_3} \end{array} $$ $$ \begin{array}{l} {a_{42}} = - 2{L_1}{q_{02}} + 2\lambda {L_{10}}{q_2} - 2{M_1}{q_{03}} - \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_3} + 2{N_1}{q_{04}} + 2\lambda {N_{10}}{q_4} \end{array} $$ $$ \begin{array}{l} {a_{43}} = - 2{L_1}{q_{03}} + 2\lambda {L_{10}}{q_3} + 2{M_1}{q_{02}} + \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_2} + 2{N_1}{q_{01}} + 2\lambda {N_{10}}{q_1} \end{array} $$ $$ \begin{array}{l} {a_{44}} = - 2{L_1}{q_{04}} - 2\lambda {L_{10}}{q_4} - 2{M_1}{q_{01}} - \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_1} + 2{N_1}{q_{02}} + 2\lambda {N_{10}}{q_2} \end{array} $$ $$ {a_{45}} = {a_{11}},{a_{46}} = {a_{12}},{a_{47}} = {a_{13}},{a_{48}} = {a_{14}} $$ $$ \begin{array}{l} {a_{49}} = {L_{10}}\left( {q_1^2 + q_2^2 - q_3^2 - q_4^2} \right) + 2{M_{10}}\left( {{q_2}{q_3} - } \right.\\ \;\;\;\;\;\;\left. {{q_1}{q_4}} \right) + 2{N_{10}}\left( {{q_1}{q_3} + {q_2}{q_4}} \right) \end{array} $$ $$ \begin{array}{l} {a_{51}} = 2{L_1}{q_{04}} + 2\lambda {L_{10}}{q_4} + 2{M_1}{q_{01}} + \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_1} - 2{N_1}{q_{02}} - 2\lambda {N_{10}}{q_2} \end{array} $$ $$ \begin{array}{l} {a_{52}} = 2{L_1}{q_{03}} + 2\lambda {L_{10}}{q_3} - 2{M_1}{q_{02}} - \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_2} - 2{N_1}{q_{01}} - 2\lambda {N_{10}}{q_1} \end{array} $$ $$ \begin{array}{l} {a_{53}} = 2{L_1}{q_{02}} + 2\lambda {L_{10}}{q_2} - 2{M_1}{q_{03}} - \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_3} - 2{N_1}{q_{04}} - 2\lambda {N_{10}}{q_4} \end{array} $$ $$ \begin{array}{l} {a_{54}} = 2{L_1}{q_{01}} + 2\lambda {L_{10}}{q_1} - 2{M_1}{q_{04}} - \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_4} - 2{N_1}{q_{03}} - 2\lambda {N_{10}}{q_3} \end{array} $$ $$ {a_{55}} = {a_{21}},{a_{56}} = {a_{22}},{a_{57}} = {a_{23}},{a_{58}} = {a_{24}} $$ $$ \begin{array}{l} {a_{59}} = {M_{10}}\left( {q_1^2 - q_2^2 + q_3^2 - q_4^2} \right) + 2{L_{10}}\left( {{q_2}{q_3} + } \right.\\ \;\;\;\;\;\;\;\left. {{q_1}{q_4}} \right) - 2{N_{10}}\left( {{q_1}{q_2} - {q_3}{q_4}} \right) \end{array} $$ $$ \begin{array}{l} {a_{61}} = - 2{L_1}{q_{03}} - 2\lambda {L_{10}}{q_3} + 2{M_1}{q_{02}} + \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_2} + 2{N_1}{q_{01}} + 2\lambda {N_{10}}{q_1} \end{array} $$ $$ \begin{array}{l} {a_{62}} = 2{L_1}{q_{04}} + 2\lambda {L_{10}}{q_4} + 2{M_1}{q_{01}} + \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_1} - 2{N_1}{q_{02}} - 2\lambda {N_{10}}{q_2} \end{array} $$ $$ \begin{array}{l} {a_{63}} = - 2{L_1}{q_{01}} - 2\lambda {L_{10}}{q_1} + 2{M_1}{q_{04}} + \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_4} - 2{N_1}{q_{03}} - 2\lambda {N_{10}}{q_3} \end{array} $$ $$ \begin{array}{l} {a_{64}} = 2{L_1}{q_{02}} + 2\lambda {L_{10}}{q_2} + 2{M_1}{q_{03}} + \\ \;\;\;\;\;\;2\lambda {M_{10}}{q_3} + 2{N_1}{q_{04}} + 2\lambda {N_{10}}{q_4} \end{array} $$ $$ {a_{65}} = {a_{31}},{a_{66}} = {a_{32}},{a_{67}} = {a_{33}},{a_{68}} = {a_{34}} $$ $$ \begin{array}{l} {a_{69}} = {N_{10}}\left( {q_1^2 - q_2^2 - q_3^2 + q_4^2} \right) - 2{L_{10}}\left( {{q_1}{q_3} - {q_2}{q_4}} \right) + \\ \;\;\;\;\;\;\;\;2{M_{10}}\left( {{q_1}{q_2} + {q_3}{q_4}} \right) \end{array} $$ F10、F20、F30、F40、F50、F60分别为${\mathit{\boldsymbol{\hat{q}}}}$的近似值代入式(4)得到的F1~F6的近似值,dq1、dq2、dq3、dq4、dq01、dq02、dq03、dq04、dλ分别为待求的对偶四元数各元素以及比例因子的改正数,至少需要两对同名直线。由于λ在直线簇缩放中只会对直线的矩矢量大小产生影响,而过原点的Plücke直线的矩矢量都为零矢量,导致数乘对其没有任何意义,因此在直线聚簇时,应至少提取两条不过原点的直线。又由于直线簇缩放只改变两直线间的距离,不影响直线间的夹角,因此当直线簇仅包含两条相交的直线时,两直线距离为零,无法求解比例因子。综上所述,直线簇约束下的LiDAR点云配准方程正确解算至少需要两条不相交且不过原点的直线。
-
LiDAR点云配准完成后,同名直线理论上应重合,可利用配准后的同名直线间的距离与夹角进行精度评定。设n为同名直线l1和l2的公共法向量,在l1和l2上各取任意一点,记为A1和A2,则l1和l2间的距离为向量A1A2在n上的投影d:
$$ d = \frac{{\left| {{A_1}{A_2} \cdot \mathit{\boldsymbol{n}}} \right|}}{{\left| \mathit{\boldsymbol{n}} \right|}} $$ (6) l1和l2间的夹角为其方向向量w1和w2间的角度θ:
$$ \theta = \arccos \frac{{{\mathit{\boldsymbol{w}}_1} \cdot {\mathit{\boldsymbol{w}}_2}}}{{\left| {{\mathit{\boldsymbol{w}}_1}} \right|\left| {{\mathit{\boldsymbol{w}}_2}} \right|}} $$ (7) 当完成配准时,理论上d=0 m,θ=0°,d和θ的数值大小反映同名直线的配准程度。
-
利用文献[15]的建筑物数据作为基准点云,如图 3所示,将该模型首先变大为原来的2倍,再绕其Z轴旋转30°,然后在各坐标轴上平移距离1 m,将得到的模型作为待配准点云。分别选取变换前后l1~l4特征直线构建基准点云与待配准点云的直线簇。其中,l4与l1共面,理论上相交;l4与l2异面,l4与l3理论上平行,实验结果见表 1。
表 1 不同方案模拟LiDAR点云配准结果
Table 1. Registration Results of Simulated LiDAR Point Clouds for Different Schemes
实验方案 X/m Y/m Z/m φ/(°) ω/(°) κ/(°) λ l4与l1 迭代不收敛 l4与l3 -0.9 -0.1 1 0 0 30 2 l4与l2 1 1 1 0 0 30 2 从表 1可以看出,利用两相交直线构建直线簇,由于无法求解比例因子,算法不收敛。利用两条平行直线构建直线簇,可以正确解算比例因子和姿态参数,但是位置参数错误,这是因为平行直线之间的方向矢量是一致的,因此用两条平行直线分别列出的6个方程中,前3个决定方向矢量的方程是等价的,这使得有效的方程个数仅为7个,而未知数为9个,导致解算存在错误。分别利用两条异面的直线作为直线簇进行解算,其解算结果与理论值相吻合,其中平移距离最大偏差为0.4 mm,角度最大偏差为0.000 014°,缩放系数偏差为0.000 01,说明直线簇约束下的LiDAR点云配准方法可以实现参数的正确解算,而且其实现正确解算的前提是所采用的直线簇中至少需要包含一对相互异面的直线。
当待配准点云与基准点云完成配准时,同名直线间的距离与夹角应都为零,可见距离与夹角的数值大小反映了同名直线的匹配程度,因此本文配准精度利用二者进行评定。从图 3中选取除l1~l4外的6条直线作为检查直线,对由l4与l2构成的直线簇配准结果进行精度评定,检查直线间的距离均值为0.07×10-6 m,角度均值为(0.2×10-6)°,说明本文方法的精度较高。
由于实验待配准点云是由基准点云整体旋转平移后得到的,未考虑同名直线匹配误差。为此,模拟实际测量中匹配误差,在由l4与l2构成的直线簇包含的两条异面直线的两个端点(6个坐标值)加入高斯白噪声,且加入的白噪声互不相关。由于实际数据LiDAR点云精度为10 mm,噪声标准差设定在0~0.01 m之间变化,为了保证结果的稳定性,在每一个噪声水平上,程序运行100次,得到的噪声标准差对配准结果的影响如图 4、图 5所示,检查直线精度的影响结果如图 6所示。
图 4 噪声标准差对平移与缩放系数的影响
Figure 4. Influence of Noise Standard Deviation on the Pan and Scale Coefficient
从图 4和图 5可以看出,随着噪声水平的增加,配准参数计算值均在理论值附近成震荡变化,噪声水平越大,结果震荡越明显,说明算法的稳定性降低,这与实际情况吻合。缩放系数随着噪声水平的增加,震荡变化相对稳定,说明缩放系数受噪声的影响相对较小。
从图 6中可以看出,当噪声标准差在0~0.01 m之间变化过程中,距离误差和角度误差都呈现线性增大的趋势,但是距离误差均值在0~5 mm之间,角度误差均值在0~0.05°之间,由此可见距离误差小于噪声标准差变化,距离误差和角度误差均可以满足LiDAR点云配准精度要求。
-
为了验证本文方法在LiDAR点云配准中的实用性,利用LMS-Z420地面LiDAR系统采集建筑物点云,采样精度为10 mm,采样率为4 mm[1]。基于点云的直线特征提取方法首先需要进行平面的拟合,然后通过平面相交得到交线,再将提取到的不同拓扑关系的直线构建成直线簇。实验过程中,分别从两个LiDAR点云上提取4对同名直线特征。其中,l4与l1共面,理论上相交;l4与l2异面;l4与l3理论上平行。实验利用l4与l2作为控制数据进行聚簇,解算7个配准参数,通过检查直线l1与l3,对距离精度d与角度精度θ进行评价。为了便于直线特征的欠采样分析,将LiDAR点云进行了抽稀处理,使其采样率为8 mm,配准结果如表 2所示。
表 2 实际LiDAR点云配准结果和精度
Table 2. The Registration Results and Accuracy of Actual LiDAR Point Clouds
方法 四元数法 Plücke直线 直线簇 直线簇(抽稀) XS/m -22.999 -22.993 -23.176 -23.047 YS/m 29.292 29.397 29.322 29.355 ZS/m -2.230 -2.314 -2.182 -2.298 φ/(°) 12.601 12.551 12.624 12.588 ω/(°) 1.0725 1.081 1.054 1.076 κ/(°) 28.900 28.902 28.900 28.862 λ 0.998 1 0.995 0.999 d/mm 8.7 5.7 3.0 3.2 θ/ (°) 0.030 0.024 0.024 0.026 通过表 2可以看出,直线簇约束下的LiDAR点云配准方法与Plücke直线约束的LiDAR点云配准法、四元数法得到的配准结果基本一致,说明本文方法具有实用性。直线簇与Plücke直线方法的角度精度均为0.024°,高于四元数法的0.030°,直线簇与Plücke直线方法的距离精度均高于四元数法,这是因为四元数法采用的是两个端点坐标描述直线,并用端点坐标建立方程,其解算基元本质上仍是点的三维坐标。而直线簇与Plücke直线方法均将直线描述为五维空间中的6个齐次坐标,将直线簇或直线作为解算基元,并且直接利用同名直线重合的空间拓扑关系建立共线条件方程。对比直线簇与Plücke直线两种方法的精度,可以看出直线簇约束下的LiDAR点云配准的距离精度为3.0 mm,高于Plücke直线约束下的LiDAR点云配准方法的5.7 mm,而角度精度基本一致。这是因为缩放系数对直线的方向矢量没有影响,而对直线间的距离会产生影响,缩放系数的加入使得LiDAR点云配准模型更为严密,因此距离精度得到提高。
从尺度分析结果可以看出,点云密度越小,配准距离精度和角度精度越低,抽稀后的距离精度为3.2 mm,角度精度为0.026°,距离误差小于采样精度,距离误差和角度误差均可以满足LiDAR点云配准精度要求。
-
本文针对待配准LiDAR点云和基准LiDAR点云存在位置、姿态和比例缩放差异的问题,提出了基于直线簇的地面LiDAR点云配准方法。首先,分别对待配准和基准LiDAR点云的直线进行聚簇,构建直线簇;然后,分别将同名直线用Plücke坐标表示,通过待配准LiDAR点云的直线簇在空间中的螺旋缩放运动,使其与基准LiDAR点云的直线簇比例尺一致,且同名Plücke直线重合,构建基于直线簇的共线条件方程。模拟LiDAR点云实验验证了本文方法的正确性。实际地面LiDAR点云实验结果表明,配准模型解算至少需要一对相互异面直线构成模型直线,由于考虑了待配准LiDAR点云和基准LiDAR点云的缩放系数,提高了配准精度。
-
摘要: 高精度的地面LiDAR点云配准是空间目标三维表面拓扑重建的关键,针对待配准LiDAR点云和基准LiDAR点云存在位置、姿态和比例缩放差异的问题,提出了基于直线簇的地面LiDAR点云配准方法。首先,根据直线间相交、平行和异面的拓扑关系,分别对待配准和基准LiDAR点云的直线进行聚簇,构建直线簇;然后,分别将同名直线用Plücker坐标表示,通过待配准LiDAR点云的直线簇在空间中的螺旋缩放运动,使其与基准LiDAR点云的直线簇比例尺一致,且同名Plücker直线重合,构建基于直线簇的共线条件方程,实现了比例因子和相对位姿一体化解算。实验结果表明,直线簇的螺旋缩放增强了配准方程的几何约束性,提高了抗噪声能力,实现了高精度的地面LiDAR点云配准。Abstract: The high precision terrestrial LiDAR point clouds registration is the key to ensure 3D topological reconstruction of spatial objects. The reference LiDAR point clouds and the LiDAR point clouds to be registered have the issue of different position, attitude and scale. A registration method based on line cluster is proposed. Firstly, line cluster of the reference LiDAR point clouds and the LiDAR point clouds to be registered is respectively established according to the topological relation of lines. Then conjugate lines of point clouds are represented in Plücke coordinate. Through the spiral zooming motion of line cluster of the LiDAR point clouds to be registered, finally the scale of the two LiDAR point clouds is the same and the conjugate Plücke lines coincide with each other. The collinearity equations based on line cluster can solve the scale factor and the relative position and attitude simultaneously with high precision. The experimental results show that, the spiral and scaling of the line cluster enhances the geometric constraints of the registration equation, improves the ability of anti-noise, and realizes the high precision of terrestrial LiDAR point clouds registration.
-
Key words:
- LiDAR /
- point clouds registration /
- line cluster /
- Plücke coordinate /
- spiral motion
-
表 1 不同方案模拟LiDAR点云配准结果
Table 1. Registration Results of Simulated LiDAR Point Clouds for Different Schemes
实验方案 X/m Y/m Z/m φ/(°) ω/(°) κ/(°) λ l4与l1 迭代不收敛 l4与l3 -0.9 -0.1 1 0 0 30 2 l4与l2 1 1 1 0 0 30 2 表 2 实际LiDAR点云配准结果和精度
Table 2. The Registration Results and Accuracy of Actual LiDAR Point Clouds
方法 四元数法 Plücke直线 直线簇 直线簇(抽稀) XS/m -22.999 -22.993 -23.176 -23.047 YS/m 29.292 29.397 29.322 29.355 ZS/m -2.230 -2.314 -2.182 -2.298 φ/(°) 12.601 12.551 12.624 12.588 ω/(°) 1.0725 1.081 1.054 1.076 κ/(°) 28.900 28.902 28.900 28.862 λ 0.998 1 0.995 0.999 d/mm 8.7 5.7 3.0 3.2 θ/ (°) 0.030 0.024 0.024 0.026 -
[1] 杨荣华, 吕美英, 花向红.一种多站标靶点云整体配准算法[J].武汉大学学报·信息科学版, 2014, 39(10):1189-1193 http://ch.whu.edu.cn/CN/abstract/abstract3093.shtml Yang Ronghua, Lv Meiying, Hua Xianghong.An Algorithm for the Multiview Target Point Cloud Global Registration[J]. Geomatics and Information Science of Wuhan University, 2014, 39(10):1189-1193 http://ch.whu.edu.cn/CN/abstract/abstract3093.shtml [2] 王永波, 杨化超, 刘燕华, 等.线状特征约束下基于四元数描述的LiDAR点云配准方法[J].武汉大学学报·信息科学版, 2013, 38(9):1057-1063 http://ch.whu.edu.cn/CN/abstract/abstract2751.shtml Wang Yongbo, Yang Huachao, Liu Yanhua, et al. Linear -Feature-Constrained Registration of LiDAR Point Cloud via Quaternion[J]. Geomatics and Information Science of Wuhan University, 2013, 38(9):1057-1063 http://ch.whu.edu.cn/CN/abstract/abstract2751.shtml [3] 姚吉利, 贾象阳, 马宁, 等.地面激光扫描多站点云整体定向平差模型[J].测绘学报, 2014, 43(8):835-841 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=chxb201408010&dbname=CJFD&dbcode=CJFQ Yao Jili, Jia Xiangyang, Ma Ning, et al. Overall Orientation Adjustment Model of Terrestrial Laser Scanning Multi-station Point Clouds[J].Acta Geodaetica et Cartographica Sinica, 2014, 43(8):835-841 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=chxb201408010&dbname=CJFD&dbcode=CJFQ [4] 王晏民, 石宏斌.应用三维线特征自动配准建筑物点云数据[J].测绘通报, 2014(9):23-25 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=chtb201409007&dbname=CJFD&dbcode=CJFQ Wang Yanmin, Shi Hongbin. An Automatic Registration Method for Building Point Clouds Based on 3D Line Features[J]. Bulletin of Surveying and Mapping, 2014(9):23-25 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=chtb201409007&dbname=CJFD&dbcode=CJFQ [5] Jen J J, Tzu Y C. Registration of Ground-Based LiDAR Point Clouds by Means of 3D Line Features[J].Journal of the Chinese Institute of Engineers, 2008, 31(6):1031-1045 doi: 10.1080/02533839.2008.9671456 [6] Wang Yongbo, Yang Huachao, Liu Yanhua, et al. A Dual Quaternion-Based, Closed-Form Pairwise Registration Algorithm for Point Clouds[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2014, 94(4):63-69 https://www.sciencedirect.com/science/article/pii/S0924271614001087 [7] 寇媛, 徐景中.基于结构特征的遥感影像匹配[J].中国图象图形学报, 2013, 18(5):565-573 doi: 10.11834/jig.20130511 Kou Yuan, Xu Jingzhong. Algorithm forRemote Sensing Images Matching Based on the Structure Characteristics[J].Journal of Image and Graphics, 2013, 18(5):565-573 doi: 10.11834/jig.20130511 [8] Guan Y, Zhang H. Initial Registration for Point Clouds Based on Linear Features[C]. The 4th International Symposium on Knowledge Acquisition and Modeling, Sanya, China, 2011 [9] 徐景中, 寇媛, 袁芳, 等.基于结构特征的机载LiDAR数据与航空影像自动配准[J].红外与激光工程, 2013(12):42-52 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=hwyj201312061&dbname=CJFD&dbcode=CJFQ Xu Jingzhong, Kou Yuan, Yuan Fang, et al. Auto-Registration of Aerial Imagery and Airborne LiDAR Data Based on Structure Feature[J]. Infrared and Laser Engineering, 2013(12):42-52 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=hwyj201312061&dbname=CJFD&dbcode=CJFQ [10] 郑德华, 岳东杰, 岳建平.基于几何特征约束的建筑物点云配准算法[J].测绘学报, 2008, 37(4):464-468 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=chxb200804013&dbname=CJFD&dbcode=CJFQ Zhen Dehua, Yue Dongjie, Yue Jianping.Geometric Feature Constraint Based Algorithm for Building Scanning Point Cloud Registration[J]. Acta Geodaetica et Cartographica Sinica, 2008, 37(4):464-468 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=chxb200804013&dbname=CJFD&dbcode=CJFQ [11] Funda J, Taylor R H, Paul R P. On Homogeneous Transforms, Quaternions, and Computational Efficiency[J]. IEEE Transactions on Robotics and Automation, 1990, 1(6):382-388 http://citeseerx.ist.psu.edu/showciting?cid=972985 [12] Ronda J I, Gallego G, Valdes A. Camera Autocalibration Using Plücke Coordinates[C]. IEEE International Conference on Image Processing, Genova, 2005 [13] Sariyildiz E, Temeltas H. Solution of Inverse Kinematic Problem for Serial Robot Using Dual Quaterninons and PlückeCoordinates[C]. ASME International Conference on Advanced Intelligent Mechatronics, Singapore, 2009 [14] 盛庆红, 陈姝文, 费利佳, 等.基于Plücke直线的机载LiDAR点云与航空影像的配准[J].测绘学报, 2015, 44(7):761-767 doi: 10.11947/j.AGCS.2015.20140123 Sheng Qinghong, Chen Shuwen, Fei Lijia, et al. Registration of Aerial Image with Airborne LiDAR Data Based on Plücke Line[J]. Acta Geodaetica et Cartographica Sinica, 2015, 44(7):761-767 doi: 10.11947/j.AGCS.2015.20140123 [15] Lasenby J, Fitzgerald W J, Lasenby A N, et al. New Geometric Methods for Computer Vision:An Application to Structure and Motion Estimation[J]. International Journal of Computer Vision, 1998, 26(3):191-213 doi: 10.1023/A:1007901028047 -