Print

发布时间: 2017-08-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170003
2017 | Volume 22 | Number 8




    医学图像处理    




  <<上一篇 




  下一篇>> 





颅骨点云模型的局部特征配准方法
expand article info 赵夫群1,2, 周明全2,3, 耿国华2
1. 咸阳师范学院教育科学学院, 咸阳 712000;
2. 西北大学信息科学与技术学院, 西安 710127;
3. 北京师范大学信息科学与技术学院, 北京 100875

摘要

目的 点云配准是计算机视觉领域里的一个研究热点,其应用领域涉及3维重建、目标识别、颅面复原等多个方面。颅骨配准是颅面复原的一个重要步骤,其配准的正确与否将直接影响到颅面复原的结果。为了提高颅骨配准的精度和收敛速度,提出一种基于局部特征的颅骨点云模型配准方法。方法 首先提取颅骨点云模型的局部深度、法线偏角和点云密度等局部特征;然后计算局部特征点集的相关性,得到相关候选点集,并通过删减外点实现颅骨点云的粗配准;最后采用基于高斯概率模型和动态迭代系数的改进迭代最近点(ICP)算法实现颅骨的细配准。结果 通过对公共点云数据模型以及颅骨点云数据模型分别进行配准实验,结果表明,基于局部特征的点云配准算法可以完成点云模型的精确配准,特别是对颅骨点云模型具有较好的配准效果。在颅骨细配准阶段,跟ICP算法相比,改进ICP算法的配准精度和收敛速度分别提高了约30%和60%;跟概率迭代最近点(PCP)算法相比,其配准精度差异不大,收敛速度提高了约50%。结论 基于局部特征的点云配准算法不仅可以用于公共点云数据模型的精确配准,而且更适用于颅骨点云数据模型的配准,是一种精度高、速度快的颅骨点云模型配准方法。

关键词

颅面复原; 颅骨配准; 局部特征; 迭代最近点; 高斯概率模型; 动态迭代系数

Local feature registration method of skull point cloud model
expand article info Zhao Fuqun1,2, Zhou Mingquan2,3, Geng Guohua2
1. College of Education Science, Xianyang Normal University, Xianyang 712000, China;
2. College of Information Science and Technology, Northwest University, Xi'an 710127, China;
3. College of Information Science and Technology, Beijing Normal University, Beijing 100875, China
Supported by: National Natural Science Foundation of China (61373117, 61305032); Special Research Fundation of Xianyang Normal University (XSYK17037)

Abstract

Objective Point cloud registration with numerous applications, including 3D modeling, object recognition, scene understanding, 3D shape detection, and craniofacial reconstruction, is a significant and active research topic in computer vision.A 3D scanner can only obtain the partial 3D point cloud of one object associated with a single coordinate system from one viewpoint.The 3D point clouds captured from different viewpoints must be transformed into a common coordinate system according to rigid transformations to reconstruct the overall 3D shape.The 3D point cloud registration aims to compute the rigid transformation between 3D point clouds and automatically obtain the complete 3D shape of the object.Skull registration is an important step in craniofacial reconstruction.The correctness of its registration will directly affect the result of craniofacial reconstruction.Skull registration is the process of searching for one or more reference skulls from the existing skull database that is most similar to an unknown skull.The face of the reference skull can be used as the reference face of the unknown skull to provide a possible basis for craniofacial reconstruction.Thus far, most of the skull registration methods are feature-based method that contains two methods, namely, global and local feature-based methods.The extraction of feature descriptors is extremely important for registration.The global feature descriptor performs excellent discrimination for complete object representation, whereas the local feature descriptor is more robust against noise and outliers.The local feature descriptor is more suitable for the skull model registration than the global feature descriptor because of the complexity of skull point cloud model.Among the local feature descriptors, 3D point-based descriptor has been widely applied to represent a partial object because of its excellent generalization.The 3D point-based descriptor encodes the information of neighboring points of an interest point in a compact and distinctive approach.Then, the 3D points with similar local features can be identified from cluttered scenes through descriptor matching. Method A skull point cloud model registration method based on coarse-to-fine local features is proposed in this study to improve the accuracy and convergence rate of skull registration.The registration method of the skull point cloud model consists of two steps, namely, initial and fine registrations.In the initial registration, local feature representation and alignment are important steps in recovering a coarse rigid transformation.An accurate initial transformation can improve registration efficiency and reduce the optimization error in the following fine registration step.In the fine registration, an improved iterative closest point (ICP) algorithm is used to complete accurate registration.The detailed registration method is described as follows:First, the local features of the skull point cloud model, which consist of local depth and deviation angle between normal and point cloud density, are extracted.Second, the coarse registration of skull point cloud is achieved through local feature extraction, correspondence of local feature calculation, and outlier elimination.The skulls are coarsely aligned through the coarse registration step.Finally, an improved ICP algorithm that integrates Gaussian probability model and active iterative coefficient to the ICP algorithm is used to complete the fine registration of the skull point cloud model, obtaining an accurate registration of the skull point cloud model. Result In the experiment, the public point cloud models (i.e., rabbit and dragon point cloud models) and the skull point cloud model are used to complete the registration.The experimental results showed that the point cloud registration algorithm based on local features can complete accurate registration of either of the point cloud models.Moreover, the registration results are especially remarkable for the skull point cloud model.In the fine registration stage of the skull point cloud model, the registration accuracy and convergence rate increased by 30% and 60%, respectively, compared with the ICP algorithm.The registration accuracy is almost the same and the convergence rate has increased by 50%, compared with the probability ICP algorithm. Conclusion The point cloud registration method based on local features can register public point cloud model accurately, as well as achieve extremely remarkable registration results for skull point cloud model.Thus, the point cloud registration method is an effective skull registration algorithm with high accuracy and convergence rate.

Key words

craniofacial reconstruction; skull registration; local feature; iterative closest point; Gaussian probability model; active iterative coefficient

0 引言

点云配准算法研究已久,其应用领域涉及曲面匹配[1-2]、目标识别[3-4]、姿态估计[5]以及文物复原[6]等多个方面。颅骨配准是点云配准算法的一个重要应用领域,是颅面复原[7]的一个重要步骤。颅骨配准就是从已有的颅骨数据库中找出一个或多个与待复原颅骨U最为相似的颅骨S的过程。找到的颅骨S的面貌即可作为待复原颅骨U的参考面貌,从而为颅面复原提供可能的依据。

对于颅骨的点云数据模型,可以采用点云配准的方法来实现颅骨配准。点云配准方法中应用最多的是基于特征的配准方法,包括基于全局特征的配准方法[8]和基于局部特征的配准方法[9-10]两大类。全局特征描述的是整个点云模型,而局部特征只描述特征点的邻域特征,与全局特征相比,局部特征更适用于部分覆盖的复杂点云的配准。由于颅骨数据模型复杂,且不同个体的颅骨差异很小,因此对其配准精度的要求较高,一般采用基于局部特征的由粗到细的方法来实现颅骨的精确配准。

粗配准就是将两个位于不同坐标系中的颅骨进行粗略对齐的过程,通常采用点云的特征实现,如法向和曲率[11]特征以及由积分不变量[12]计算的或凹或凸的特征区域等。细配准就是在粗配准的基础上,将两个颅骨进行进一步细对齐的过程。目前应用最为广泛的点云细配准算法是由Besl等人[13]提出的最近点迭代(ICP)算法。该算法步骤简单,易于实现,但要求两个待配准的点云之间存在包含关系。鉴于此,国内外学者提出了许多改进的ICP算法,如王欣等人[14]提出了基于点云边界特征点的改进ICP算法,提高了逆向工程中点云数据配准的效率和精度;Li等人[15]提出了一种基于动态调整因子的ICP算法,在不影响配准精度和收敛方向的情况下,可以大大提高算法的配准速度;Mavridis等人[16]提出了一种基于混合优化系统的稀疏ICP算法,提高了点云配准的精度和速度;Du等人[17]提出了尺度ICP算法,解决了含尺度因素的点云配准问题。

以上这些算法在点云的配准精度、速度以及尺度因素等方面有了一定程度的改进,但是对颅骨数据的配准结果却并不十分理想。针对颅骨点云配准中的配准精度和收敛速度的问题,提出一种由粗到细的优化配准方法。首先采用基于局部特征的点云配准算法实现颅骨粗配准,然后通过在ICP算法中加入高斯概率模型和动态迭代系数的方式来改进ICP算法,并将其应用到颅骨点云模型的细配准中,不仅可以解决由噪声引起的配准效果不佳的问题,而且可以大大提高算法的收敛速度,从而实现颅骨的快速精确配准。

1 局部特征描述子

局部特征是指一种快速、鲁棒的点云特征描述子,这里包括局部深度、法线的偏角和点云密度等3个特征,它们都具有旋转和平移不变的特性。

1.1 局部深度特征

设点云$\boldsymbol{P} $$\left\{ {{\boldsymbol{p}_1}, {\boldsymbol{p}_2}, \cdots, {\boldsymbol{p}_N}} \right\} $$N $个点组成,其中任意一点${\boldsymbol{p}_i} $的邻域定义为以${\boldsymbol{p}_i} $为球心$r $为半径的球体,记作$\boldsymbol{p}_n^i = \left\{ {\boldsymbol{p}_i^j|j = 1, 2, \cdots, k} \right\} $。令${\boldsymbol{n}_i} $$\boldsymbol{n}_i^j $分别表示点${\boldsymbol{p}_i} $$\boldsymbol{p}_i^j $的法向量,则设置${\boldsymbol{n}_i} $为局部坐标轴。沿局部坐标轴的正方向,定义2维平面$\boldsymbol{L} $为投影平面,如图 1(a)所示。将${\boldsymbol{p}_i} $邻域内的所有点投影到$\boldsymbol{L} $上,则得到一个新的点集$\boldsymbol{p'}_n^i = \left\{ {\boldsymbol{p'}_i^j|j = 1, 2, \cdots, k} \right\}$。定义$\boldsymbol{p}_i^j $$\boldsymbol{p'}_i^j $之间的距离为局部深度,那么局部深度的取值范围应该为[0,2 $r $]。局部深度的定义式为

$ {d_j} = r-{\boldsymbol{n}_i} \cdot \left( {\boldsymbol{p}_i^j-{\boldsymbol{p}_i}} \right) $ (1)

图 1 局部特征
Fig. 1 Local features ((a) local depth; (b) deviation angle between normals; (c) point cloud density)

1.2 法线的偏角

计算法线的偏角时,首先采用基于局部最小二乘估计的方法计算点的法线。对于点云$\boldsymbol{P} $中任意一点${\boldsymbol{p}_i} $,设其邻域$\boldsymbol{p}_n^i $的质心为${\boldsymbol{\bar p}_i} $,那么${\boldsymbol{p}_i} $的协方差矩阵为

$ Cov\left( {{\mathit{\boldsymbol{p}}_i}} \right) = {\left[ {\begin{array}{*{20}{c}} {\mathit{\boldsymbol{p}}_i^1 - {{\mathit{\boldsymbol{\bar p}}}_i}}\\ \vdots \\ {\mathit{\boldsymbol{p}}_i^k - {{\mathit{\boldsymbol{\bar p}}}_i}} \end{array}} \right]^{\rm{T}}} \cdot \left[ {\begin{array}{*{20}{c}} {\mathit{\boldsymbol{p}}_i^1 - {{\mathit{\boldsymbol{\bar p}}}_i}}\\ \vdots \\ {\mathit{\boldsymbol{p}}_i^k - {{\mathit{\boldsymbol{\bar p}}}_i}} \end{array}} \right] $ (2)

$Cov\left( {{\boldsymbol{p}_i}} \right) $的最小特征值作为${\boldsymbol{p}_i} $的特征向量,如图 1(b)所示,那么法线的偏角可表示为

$ {\theta _j} = \arccos \left( {{\mathit{\boldsymbol{n}}_i} \cdot \mathit{\boldsymbol{n}}_i^j} \right) $ (3)

式中,${\theta _j} \in [0, \pi] $

1.3 点云密度

将3D点投影到2D平面上是一种有效的描述3D点云局部几何形状的方法,可描述点的分布信息,如图 1(c)所示。首先在2D投影平面$\boldsymbol{L} $${\boldsymbol{n}_i} $的交点处绘制一个半径为r的圆;然后将圆用相同距离的宽度分成几个环;最后通过计算落在每个环内的点的数目来生成直方图。

分布在每个环内的点的密度用点${{\boldsymbol{p'}}_i}\; $$\boldsymbol{p'}_i^j $的距离来计算,即水平投影距离$\rho $,其计算式为

$ {\rho _j} = \sqrt {{{\left\| {{{\mathit{\boldsymbol{p'}}}_i} - \mathit{\boldsymbol{p}}_i^{'j}} \right\|}^2} - {\mathit{\boldsymbol{n}}_i} \cdot {{\left. {\left( {{{\mathit{\boldsymbol{p'}}}_i} - \mathit{\boldsymbol{p}}_i^{'j}} \right)} \right)}^2}} $ (4)

式中,${\left\| {{{\boldsymbol{p'}}_i}-\boldsymbol{p'}_i^j} \right\|^2} $表示${\boldsymbol{p}_i} $$\boldsymbol{p}_i^j $之间的距离,${\rho _j} $的取值范围为$[0, r] $

在计算了点的3个局部几何特征后,即得到3个子直方图,将这3个子直方图合成为一个直方图,就得到了局部特征的描述子。

2 粗配准算法

粗配准采用上面介绍的局部特征描述子来实现,主要包含局部特征提取、相关性计算和外点删减等3个步骤。

2.1 局部特征提取

通常初始的颅骨点云数据模型的数据量都很大,使得其计算的时间复杂度和空间复杂度都较高。因此首先采用实时压缩算法对颅骨的源点云${\boldsymbol{P}_S} $和目标点云${\boldsymbol{P}_T} $进行均匀采样,得到两个相应的点集:$\boldsymbol{M} = \left\{ {{\boldsymbol{m}_i}|i = 1, 2, \cdots, {N_M}} \right\} $$\boldsymbol{D} = \left\{ {{\boldsymbol{d}_i}|i = 1, 2, \cdots, {N_D}} \right\} $${N_M} $$ {N_D}$分别表示点集$\boldsymbol{M} $$\boldsymbol{D} $的大小。然后计算点集$\boldsymbol{M} $$\boldsymbol{D} $的局部特征描述子,分别记为${\boldsymbol{F}_M} = \left\{ {\boldsymbol{f}_M^i|i = 1, 2, \cdots, {N_M}} \right\} $${\boldsymbol{F}_D} = \left\{ {\boldsymbol{f}_D^i|i = 1, 2, \cdots, {N_D}} \right\} $

2.2 相关性计算

两个点集$\boldsymbol{M} $$\boldsymbol{D} $的刚体变换可以通过计算点到点的相关性来求解。这里通过求解特征集${\boldsymbol{F}_M} $${\boldsymbol{F}_D} $的相关性来计算刚体变换。

对于特征$\boldsymbol{f}_M^i \in {\boldsymbol{F}_M} $,在${\boldsymbol{F}_D} $中寻找其$ k$最近特征为$\left\{ {\boldsymbol{f}_D^{i1}, \boldsymbol{f}_D^{i2}, \cdots, \boldsymbol{f}_D^{ik}} \right\} $,那么其相关点$\left\{ {{\boldsymbol{d}_{i1}}, {\boldsymbol{d}_{i2}}, \cdots, {\boldsymbol{d}_{ik}}} \right\} $就是点$\boldsymbol{p}_M^i $$k $相关候选点,记作${\boldsymbol{e}_i} = \left\{ {\left( {{\boldsymbol{m}_i}, {\boldsymbol{d}_{ij}}} \right)|j = 1, 2, \cdots, k} \right\} $。那么最终得到点集$\boldsymbol{M} $$\boldsymbol{D} $的相关候选点集为$\boldsymbol{E} = \left\{ {{e_i}|i = 1, 2, \cdots, {N_M}} \right\} $$\boldsymbol{E} $中含$k \cdot {N_M} $个相关点。

2.3 外点删减

目前已经建立了点集$\boldsymbol{M} $$\boldsymbol{D} $的相关候选点集$\boldsymbol{E} $。由于待配准的点云大多是部分覆盖,所以并不是$\boldsymbol{M} $中的所有的点都能在$\boldsymbol{D} $中找到相关点,因此需要从$\boldsymbol{E} $中删除外点。理想情况下,两个点集中正确配准的点的距离为0,但是实际并非如此,因此设置阈值${d_f} $来移除外点。$ {d_f}$的计算式为

$ {d_f} = {\mu _f} - \alpha \cdot {\sigma _f} $ (5)

式中,${\mu _f} $表示均值,${\sigma _f} $表示集合$\boldsymbol{E} $中点对的局部特征描述子间的欧几里德距离的标准偏差;$\alpha $用于控制输出的相关点集的大小,是个常数,通过多次实验的建议取值范围为$\alpha $∈[0.5,1.5]。

通过删除外点就得到了相关性点集$\boldsymbol{C} = \left\{ {\left( {\boldsymbol{c}_M^i, \boldsymbol{c}_D^i} \right)|\boldsymbol{c}_M^i \in {\boldsymbol{P}_M}, \boldsymbol{c}_T^i \in {\boldsymbol{P}_D}, i = 1, 2, \cdots, l} \right\} $$\boldsymbol{C} $包含$l $对相关点,由此实现了点集$\boldsymbol{M} $$\boldsymbol{D} $粗配准。

3 细配准算法

细配准阶段采用改进的ICP算法实现,首先在ICP算法中加入高斯概率模型[18]以提高算法的抗噪性,然后加入动态迭代系数,在不影响配准精度和收敛方向的情况下,提高算法的收敛速度。

3.1 高斯概率模型

对于含噪声的点集$\boldsymbol{M} = \{ {\boldsymbol{m}_i}\} _{i = 1}^{{N_M}} $$\boldsymbol{D} = \{ {\boldsymbol{d}_j}\} _{j = 1}^{{N_D}} $,可将其配准问题转化为概率密度估计的问题。根据全概率定理,点集$\boldsymbol{M} $的概率公式可表示为

$ p\left( \mathit{\boldsymbol{m}} \right) = \sum\limits_{j = 1}^{{N_y}} {p\left( {{\mathit{\boldsymbol{d}}_j}} \right)p\left( {\mathit{\boldsymbol{m}}\left| {{\mathit{\boldsymbol{d}}_j}} \right.} \right)} $ (6)

若点集$\boldsymbol{M} $$\boldsymbol{D} $都满足高斯概率模型,那么它们之间的关系可描述为

$ p\left( {\mathit{\boldsymbol{m}}\left| \mathit{\boldsymbol{d}} \right.} \right) = \frac{1}{{{{\left( {2{\rm{ \mathsf{ π} }}{\sigma ^2}} \right)}^{n/2}}}}{\exp ^{ - \frac{{\left\| {\mathit{\boldsymbol{T}}\left( \mathit{\boldsymbol{m}} \right) - \mathit{\boldsymbol{d}}} \right\|_2^2}}{{2{\sigma ^2}}}}} $ (7)

式中,$n $表示点集的维数,${\sigma ^2} $表示高斯概率模型的方差,$\boldsymbol{T}\left( \boldsymbol{m} \right) $表示$\boldsymbol{m} $的刚体变换,$\left\| {\boldsymbol{T}\left( \boldsymbol{m} \right)-\boldsymbol{d}} \right\|_2^2 $表示点集$\boldsymbol{T}\left( \boldsymbol{m} \right) $$\boldsymbol{d} $之间的距离。

通常3维扫描仪获取的点云数据都是杂乱无章的,需要对其进行模型简化,使其在数据量上适当降低并满足均匀分布。因此对于点集$\boldsymbol{D} $,有

$ p\left( \mathit{\boldsymbol{d}} \right) = \frac{1}{{{N_D}}} $ (8)

目标函数定义为

$ \begin{array}{*{20}{c}} {F\left( {\mathit{\boldsymbol{m}};\mathit{\boldsymbol{R}},\mathit{\boldsymbol{t}},{\sigma ^2}} \right) = - \sum\limits_{i = 1}^{{N_M}} {\log p\left( {{\mathit{\boldsymbol{m}}_i}\left| {\mathit{\boldsymbol{R}},\mathit{\boldsymbol{t}},{\sigma ^2}} \right.} \right)} = }\\ { - \sum\limits_{i = 1}^{{N_M}} {\log } \sum\limits_{j = 1}^{{N_D}} {p\left( {{\mathit{\boldsymbol{m}}_j}} \right)p\left( {{\mathit{\boldsymbol{m}}_i}\left| {{\mathit{\boldsymbol{d}}_j}\mathit{\boldsymbol{R}},\mathit{\boldsymbol{t}},{\sigma ^2}} \right.} \right)} } \end{array} $ (9)

首先建立刚体变换的新目标函数为

$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{M}}\left( {{{\mathit{\boldsymbol{\tilde R}}}_k},{{\mathit{\boldsymbol{\tilde t}}}_k},{{\tilde \sigma }_k}} \right) = \sum\limits_{i = 1}^{{N_M}} {\sum\limits_{j = 1}^{{N_D}} {p\left( {{\mathit{\boldsymbol{d}}_j}\left| {{\mathit{\boldsymbol{m}}_i},{\mathit{\boldsymbol{R}}_{k - 1}},{\mathit{\boldsymbol{t}}_{k - 1}},\sigma _{k - 1}^2} \right.} \right)} } \times }\\ {\log \left( {p\left( {{\mathit{\boldsymbol{d}}_j}} \right)p\left( {{\mathit{\boldsymbol{m}}_i}\left| {{\mathit{\boldsymbol{d}}_j},{{\mathit{\boldsymbol{\tilde R}}}_k},{{\mathit{\boldsymbol{\tilde t}}}_k},\tilde \sigma _k^2} \right.} \right)} \right)} \end{array} $ (10)

$p_i^{k-1} = p\left( {{\boldsymbol{d}_{{c_k}\left( i \right)}}|{\boldsymbol{m}_i}, {{\boldsymbol{\tilde R}}_k}, {{\boldsymbol{\tilde t}}_k}, \tilde \sigma _k^2} \right) $,则式(10) 可简化为

$ \begin{array}{*{20}{c}} {\mathit{\boldsymbol{M}}\left( {{{\mathit{\boldsymbol{\tilde R}}}_k},{{\mathit{\boldsymbol{\tilde t}}}_k},{{\tilde \sigma }_k}} \right) = \sum\limits_{i = 1}^{{N_M}} {\mathit{\boldsymbol{p}}_i^{k - 1} \times \frac{{\left\| {{{\mathit{\boldsymbol{\tilde R}}}_k}{\mathit{\boldsymbol{m}}_i} + {{\mathit{\boldsymbol{\tilde t}}}_k} - {\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}} \right\|_2^2}}{{2{{\tilde \sigma }^2}}} - } }\\ {\sum\limits_{i = 1}^{{N_M}} {\mathit{\boldsymbol{p}}_i^{k - 1}} \times \log \left( {{N_D}{{\left( {2{\rm{ \mathsf{ π} }}\tilde \sigma _k^2} \right)}^{\frac{n}{2}}}} \right)} \end{array} $ (11)

式中,只有$-\sum\limits_{i = 1}^{{N_M}} {\boldsymbol{p}_i^{k-1}} \times \frac{{\left\| {{{\boldsymbol{\tilde R}}_k}{\boldsymbol{m}_i} + {{\boldsymbol{\tilde t}}_k}-{\boldsymbol{d}_{{c_k}\left( i \right)}}} \right\|_2^2}}{{2{{\tilde \sigma }^2}}} $与旋转矩阵和平移矢量有关,因此最大化式(11) 的问题就等价于最大化式(11) 的第1部分的问题,因此求解目标进一步转换为

$ \begin{array}{*{20}{c}} {\left( {{\mathit{\boldsymbol{R}}_k},{\mathit{\boldsymbol{t}}_k}} \right) = \mathop {\arg \min }\limits_{\tilde R_k^{\rm{T}}{{\tilde R}_k} = {I_n},\det \left( {\mathit{\boldsymbol{\tilde R}}} \right) = 1,{{\tilde t}_k}} \sum\limits_{i = 1}^{{N_M}} {\mathit{\boldsymbol{p}}_i^{k - 1}} \times }\\ {\frac{{\left\| {{{\mathit{\boldsymbol{\tilde R}}}_k}{\mathit{\boldsymbol{m}}_i} + {{\mathit{\boldsymbol{\tilde t}}}_k} - {\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}} \right\|_2^2}}{{2{{\tilde \sigma }^2}}}} \end{array} $ (12)

定义均方根误差为

$ RMS = {\left( {\sum\limits_{i = 1}^{{N_M}} {{\mathit{\boldsymbol{p}}_i} \times \left\| {{\mathit{\boldsymbol{R}}_k}{\mathit{\boldsymbol{m}}_i} + {\mathit{\boldsymbol{t}}_k} - {\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}} \right\|_2^2} } \right)^{\frac{1}{2}}} $ (13)

定义方差为

$ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _k^2 = \sum\limits_{i = 1}^{{N_M}} {\mathit{\boldsymbol{p}}_i^{k - 1} \times \frac{{\left\| {{\mathit{\boldsymbol{R}}_k}{\mathit{\boldsymbol{m}}_i} + {\mathit{\boldsymbol{t}}_k} - {\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}} \right\|_2^2}}{n}} $ (14)

那么高斯概率方差的更新公式为

$ \sigma _k^2 = \left\{ \begin{array}{l} \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _{k - 1}^2/\lambda \;\;\;\;\;\mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _{k - 1}^2/\lambda > \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _k^2\\ \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _k^2\;\;\;\;\;\;\;\;\;\;\;\;\mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _{k - 1}^2/\lambda < \mathord{\buildrel{\lower3pt\hbox{$\scriptscriptstyle\frown$}} \over \sigma } _k^2 \end{array} \right. $ (15)

式中,$\lambda $称作退火系数。当$\lambda = 1 $时,方差不会更新,即ICP算法。当$\lambda $取值较大时,可以有效地提高迭代速度,但容易陷入局部最小值。通过多次实验,一般建议$\lambda $的取值在1 2之间。

因此后验高斯概率的计算公式为

$ \begin{array}{*{20}{c}} {p\left( {{\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}\left| {{\mathit{\boldsymbol{m}}_i},{\mathit{\boldsymbol{R}}_k},{\mathit{\boldsymbol{t}}_k},\sigma _k^2} \right.} \right) = }\\ {\frac{{1/{{\left( {2{\rm{ \mathsf{ π} }}\sigma _k^2} \right)}^{\frac{n}{2}}}{{\exp }^{ - \frac{{\left\| {\left( {{\mathit{\boldsymbol{R}}_k}{\mathit{\boldsymbol{m}}_i} + {\mathit{\boldsymbol{t}}_k}} \right) - {\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}} \right\|_2^2}}{{2\sigma _k^2}}}}}}{{\sum\limits_{i = 1}^{{N_M}} {1/{{\left( {2{\rm{ \mathsf{ π} }}\sigma _k^2} \right)}^{\frac{n}{2}}}{{\exp }^{ - \frac{{\left\| {\left( {{\mathit{\boldsymbol{R}}_k}{\mathit{\boldsymbol{m}}_i} + {\mathit{\boldsymbol{t}}_k}} \right) - {\mathit{\boldsymbol{d}}_{{c_k}\left( i \right)}}} \right\|_2^2}}{{2\sigma _k^2}}}}} }}} \end{array} $ (16)

3.2 动态迭代系数

动态迭代系数是一个可以自动调整刚体变换参数的整数值,可以在不影响ICP算法的配准精度和收敛方向的情况下,大大提高算法的收敛速度。

在ICP算法中加入动态迭代系数$h $的步骤如下:

1) 计算刚体变换矢量$\boldsymbol{q} = {\left[{R|t} \right]^{\rm{T}}} $以及${\boldsymbol{q}_{k-1}} $的相邻两次迭代的变化量$\Delta {\boldsymbol{q}_{k-1}} $

2) 用刚体变换矢量$\Delta {\boldsymbol{q}_{k-1}} $更新基本ICP算法中的${\boldsymbol{M}_k} $$h $次,即执行${\boldsymbol{M}_k} = \Delta {\boldsymbol{q}_{k-1}}\left( {{M_{k-1}}} \right) $$h $次。

通常,动态迭代系数$h $取大于等于0的整数。当$h $不同时,算法的收敛速度也不同,如图 2所示。随着动态迭代系数$h $的增大,收敛速度也会越来越快,但是当$h $增大到一定的程度,收敛曲线会出现震荡,可能不再收敛。通过多次实验验证,建议$h $的取值在1 4之间。

图 2 迭代收敛曲线
Fig. 2 Iterative convergence curves

3.3 改进的ICP算法

由3.1节和3.2节的方法描述,改进的ICP算法可描述如下:

1) 给定刚体变换初值$\boldsymbol{q} = {\left[{{\boldsymbol{R}_0}, {\boldsymbol{t}_0}} \right]^{\rm{T}}} $${\boldsymbol{R}_0} $为初始旋转矩阵,${\boldsymbol{t}_0} $为初始平移矢量;

2) 令${\boldsymbol{M}_0} = {\boldsymbol{R}_0}\boldsymbol{M} + {\boldsymbol{t}_0} $,退火系数$\lambda \in \left( {1, 2} \right] $,初始概率为$p_i^0 = \frac{1}{{{N_x}}}, i = 1, 2, \cdots, {N_x} $,迭代次数$k = 0 $,动态迭代系数$h = 0 $

3) 令$k = k + 1 $,采用ICP算法[13]建立点集的相关性${c_k}\left( i \right) \in \left\{ {1, 2, \cdots, {N_D}} \right\} $

4) 利用奇异值分解(SVD)法计算旋转矩阵${\boldsymbol{R}_k} $和平移矢量${\boldsymbol{t}_k} $

5) 计算平移矢量${\boldsymbol{t}_k} = \frac{1}{{{N_M}}}\left( {-{\boldsymbol{R}_k}\sum\limits_{i = 1}^{{N_M}} {{m_i} + \sum\limits_{i = 1}^{{N_M}} {{\boldsymbol{d}_{{c_k}\left( i \right)}}} } } \right) $,以及${\boldsymbol{q}_k} $相邻两次迭代的变化量$\Delta {\boldsymbol{q}_k} $

6) 计算${\boldsymbol{M}_k} = {\boldsymbol{R}_k}\boldsymbol{M} + {\boldsymbol{t}_k} $

7) 判断均方根误差$RMS $,若$RM{S_k}-RM{S_{k-1}} > 0 $,则执行$h = h + 1 $操作,否则执行$h = 0 $操作;

8) 判断动态迭代系数$h $,若$h > 0 $,则执行${M_k} = \Delta {q_k}\left( {{M_k}} \right) $$h $次来更新点集${M_k} $

9) 计算两组点集的方差,并更新高斯概率的方差;

10) 计算后验高斯概率,直到满足$\left| {RM{S_k}-RM{S_{k-1}}} \right| < {\varepsilon _2} $$k > Ste{p_{\max }} $算法终止,否则转到步骤3),这里${\varepsilon _2} $$Ste{p_{\max }} $是预先设置的阈值。

4 实验结果与分析

4.1 公共数据集配准实验

实验1采用的点云数据源于Stanford 3D Scanning Repository[19],如图 3所示。图 3(a)为初始的兔子点云模型,图 3(b)为初始的龙点云模型。首先通过局部特征提取、相关性计算和外点删减等步骤实现粗配准,粗配准结果如图 4(a)所示;然后再采用提出的改进ICP算法实现点云细配准,细配准结果如图 4(b)所示。通过反复实验测试,在细配准阶段动态迭代系数$h = 3 $时的配准结果最佳。

图 3 实验1的待配准点云
Fig. 3 Initial point clouds in experiment 1 ((a) rabbit point clouds; (b) dragon point clouds)

图 4的配准结果可见,提出的基于局部特征的点云配准算法具有良好的配准效果。

图 4 实验1的点云配准结果
Fig. 4 Registration results of point clouds in experiment 1 ((a)coarse registration results; (b)fine registration results)

为了进一步验证该算法的性能,在细配准阶段,再分别采用ICP算法和PICP算法[18]进行细配准。PICP算法是一种抗噪性较强的点云配准算法,具有较高的配准精度。ICP算法、PICP算法和提出的改进ICP算法的配准误差、迭代次数和耗时等参数如表 1所示。

表 1 实验1细配准算法的配准参数
Table 1 Parameters of fine registration algorithm in experiment 1

下载CSV
点云类型 待配焦点云大小/参考点云大小 算法 配准误差/mm 迭代次数 耗时/s
ICP 0.028 6 33 3.3
兔子 20 128/20 048 PICP 0.019 1 21 2.4
改进ICP 0.020 1 11 1.2
ICP 0.029 9 36 3.6
20 920/17 418 PICP 0.020 5 23 2.5
改进ICP 0.021 2 12 1.3

表 1的配准结果可见,ICP算法、PICP算法和改进的ICP算法均能实现点云的细配准,但是PICP算法和改进的ICP算法的配准精度明显要高、耗时明显要短。特别是改进的ICP算法,其配准精度跟PCIP算法不相上下,比ICP算法提高了约30 %;配准速度比ICP算法和PICP算法分别提高了约60 %和30 %。因此说,提出的基于局部区域的点云配准算法是一种精度更高、速度更快的点云配准算法。

4.2 颅骨配准实验

实验2采用西北大学可视化技术研究所采集的308套完整的CT扫描的颅骨点云数据模型。图 5为两个待配准的颅骨,图 5(a)为一个未知颅骨U,图 5(b)为一个参考颅骨S。对于这两个待配准颅骨,首先采用基于局部特征的点云配准算法实现颅骨的粗配准,粗配准结果如图 6(a)所示;然后采用提出的改进ICP算法实现颅骨的细配准,细配准结果如图 6(b)所示。在细配准阶段,通过反复实验验证,动态迭代系数$h = 3 $时的配准效果最佳。

图 5 两个待配准的颅骨
Fig. 5 Two skulls needed to registered ((a) unknown skull U; (b) reference skull S)
图 6 颅骨配准结果
Fig. 6 Registration results of two skulls ((a)coarse registration result; (b)fine registration result)

图 6的配准结果来看,基于特征区域的粗配准算法可以将两个颅骨初步对齐,改进的ICP算法则实现了两个颅骨的精确细配准。为了进一步验证改进ICP算法的性能,细配准过程再分别采用ICP算法和PICP算法[18]实现。ICP算法、PICP算法和改进ICP算法的配准误差、迭代次数以及耗时等参数如表 2所示。

表 2 实验2细配准算法的运行参数
Table 2 Parameters of fine registration algorithm in experiment 2

下载CSV
待配准颅骨 点云大小 算法 配准误差/mm 迭代次数 耗时/s
ICP 0.029 4 69 6.2
未知颅骨U,参考颅骨S 217 897,201 962 PICP 0.013 5 45 4.3
改进ICP 0.014 1 24 2.1

表 2的配准结果来看,改进ICP算法的配准精度和收敛速度都较高。跟ICP算法相比,改进ICP算法的配准精度和收敛速度分别提高了约30 %和60 %;跟PICP算法相比,改进ICP算法的配准速度提高了约50 %,配准精度不相上下。因此说改进ICP算法一种精度更高、速度更快的颅骨点云模型细配准算法,提出的基于局部特征的点云配准算法是一种有效的颅骨配准算法。

5 结论

颅骨配准是计算机辅助虚拟颅面复原技术的重要研究内容之一,其配准结果的准确与否将直接影响到颅面复原的准确性。针对颅骨配准中的配准精度和收敛速度的问题,提出了一种颅骨点云模型的局部特征配准方法。首先采用基于局部特征的配准方法实现颅骨粗配准,然后再采用改进的ICP算法实现颅骨细配准,其细配准阶段的配准精度和收敛速度比ICP算法分别提高了约30 %和60 %,实现了颅骨的最终精确配准。该算法不仅适用于公共点云数据模型的配准,而且对颅骨点云模型的配准效果尤为精确。但是,算法设计中未考虑到尺度因素对配准结果的影响。在今后的研究中,要综合多种因素,进一步优化颅骨配准算法,并利用其配准结果实现颅骨面貌复原以及颅骨软组织厚度的评价方法,实现颅骨面貌的虚拟复原研究。

参考文献

  • [1] Zhao F Q, Zhou M Q, Geng G H. Fracture surface matching method of rigid blocks[J]. Journal of Image and Graphics, 2017, 22(1): 86–95. [赵夫群, 周明全, 耿国华. 刚体碎块的断裂面匹配[J]. 中国图象图形学报, 2017, 22(1): 86–95. ] [DOI:10.11834/jig.20170110]
  • [2] Gong M G, Wu Y, Cai W P, et al. Discrete particle swarm optimization for high-order graph matching[J]. Information Sciences, 2016, 328: 158–171. [DOI:10.1016/j.ins.2015.08.038]
  • [3] Alhamzi K, Elmogy M, Barakat S. 3D object recognition based on local and global features using point cloud library[J]. International Journal of Advancements in Computing Technology, 2015, 7(3): 43–54.
  • [4] Guo Y L, Sohel F, Bennamoun M, et al. A novel local surface feature for 3D object recognition under clutter and occlusion[J]. Information Sciences, 2015, 293: 196–213. [DOI:10.1016/j.ins.2014.09.015]
  • [5] Guo Y L, Bennamoun M, Sohel F, et al. An integrated framework for 3-D modeling, object detection, and pose estimation from point-clouds[J]. IEEE Transactions on Instrumentation and Measurement, 2015, 64(3): 683–693. [DOI:10.1109/TIM.2014.2358131]
  • [6] Li Q H, Zhou M Q, Geng G H. Reassembly of broken 3D solids based on fractured surfaces matching[J]. Journal of Image and Graphics, 2012, 17(10): 1298–1304. [李群辉, 周明全, 耿国华. 断裂面匹配的破碎刚体复原[J]. 中国图象图形学报, 2012, 17(10): 1298–1304. ] [DOI:10.11834/jig.20121015]
  • [7] Zhu X Y, Geng G H, Wen C. Estimate of craniofacial geometry shape similarity based on principal warps[J]. Journal of Image and Graphics, 2012, 17(4): 568–574. [朱新懿, 耿国华, 温超. 利用Principal Warps评估颅面几何相似度[J]. 中国图象图形学报, 2012, 17(4): 568–574. ] [DOI:10.11834/jig.20120416]
  • [8] Wyngaerd J V, Van Gool L, Kock R, et al.Invariant-based registration of surface patches[C]//Proceedings of the 7th IEEE International Conference on Computer Vision.Kerkyra:IEEE, 1999, 1:301-306.[DOI:10.1109/ICCV.1999.791234]
  • [9] Rusu R B, Blodow N, Beetz M.Fast Point Feature Histograms (FPFH) for 3D registration[C]//Proceedings of International Conference on Robotics and Automation.Kobe, Japan:IEEE, 2009:3212-3217.[DOI:10.1109/ROBOT.2009.5152473]
  • [10] Tombari F, Salti S, Di Stefano L.Unique signatures of histograms for local surface description[C]//Proceedings of the 11th European Conference on Computer Vision.Heraklion, Crete, Greece:Springer, 2010:356-369.[DOI:10.1007/978-3-642-15558-1_26]
  • [11] Izumiya S, Nabarro A C, de Jesus Sacramento A. Pseudo-spherical normal darboux images of curves on a timelike surface in three dimensional Lorentz-Minkowski space[J]. Journal of Geometry and Physics, 2015, 97: 105–118. [DOI:10.1016/j.geomphys.2015.07.014]
  • [12] Cao Z C, Ma F L, Fu Y L, et al. A scale invariant interest point detector in Gabor based energy space[J]. Acta Automatica Sinica, 2014, 40(10): 2356–2363. [DOI:10.1016/S1874-1029(14)60364-5]
  • [13] Besl P J, McKay N D. A method for registration of 3D shapes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992, 14(2): 239–256. [DOI:10.1109/34.121791]
  • [14] Wang X, Zhang M M, Yu X, et al. Point cloud registration based on improved iterative closest point method[J]. Optics and Precision Engineering, 2012, 20(9): 2068–2077. [王欣, 张明明, 于晓, 等. 应用改进迭代最近点方法的点云数据配准[J]. 光学精密工程, 2012, 20(9): 2068–2077. ]
  • [15] Li W M, Song P F. A modified ICP algorithm based on dynamic adjustment factor for registration of point cloud and CAD model[J]. Pattern Recognition Letters, 2015, 65: 88–94. [DOI:10.1016/j.patrec.2015.07.019]
  • [16] Mavridis P, Andreadis A, Papaioannou G. Efficient sparse ICP[J]. Computer Aided Geometric Design, 2015, 35-36: 16–26. [DOI:10.1016/j.cagd.2015.03.022]
  • [17] Du S Y, Zheng N N, Xiong L, et al. Scaling iterative closest point algorithm for registration of m-D point sets[J]. Journal of Visual Communication and Image Representation, 2010, 21(5-6): 442–452. [DOI:10.1016/j.jvcir.2010.02.005]
  • [18] Du S Y, Liu J, Zhang C J. Probability iterative closest point algorithm for m-D point set registration with noise[J]. Neurocomputing, 2015, 157: 187–198. [DOI:10.1016/j.neucom.2015.01.019]
  • [19] Stanford University.The stanford 3D scanning repository[EB/OL].1996-09-10 [2017-06-09].http://graphics.stanford.edu/data/3Dscanrep.