|
发布时间: 2017-01-25 |
图像理解和计算机视觉 |
|
|
收稿日期: 2016-07-22; 修回日期: 2016-09-28
基金项目: 国家自然科学基金项目(61373117);陕西省教育厅科学研究项目(16jk2178)
第一作者简介: 赵夫群(1982-), 女, 讲师, 西北大学软件工程专业博士研究生, 主要研究方向为图形图像处理。E-mail:fuqunzhao@126.com
中图法分类号: TP391
文献标识码: A
文章编号: 1006-8961(2017)01-0086-10
|
摘要
目的 刚体碎块匹配已经在考古、生物工程以及遥感数据处理等领域得到了较为广泛的应用,为了进一步提高碎块匹配的精度、速度和算法的抗噪性,提出一种先粗配再细配的刚体碎块匹配方法。 方法 首先采用基于显著性区域的碎块断裂面匹配方法实现碎块的粗匹配,然后通过加入高斯概率模型、角度约束和动态迭代系数的方式来改进迭代最近点(ICP)算法,并采用该算法来实现两个刚体碎块断裂面的细匹配,从而完成两个碎块的最终精确匹配。 结果 通过分别对公共碎块数据集和带有噪声的秦俑碎块数据模型的匹配实验结果表明,与ICP(iterative closest point)算法和概率迭代最近点(PICP)算法相比,提出的改进ICP算法在精度方面分别提高了约50%和15%,在速度方面分别提高了约65%和50%,是一种精度更高、速度更快、抗噪性更强的点集匹配算法。 结论 该方法不仅能够实现公共碎块数据集的完美匹配,而且对于秦俑这种特殊的刚体碎块也具有良好的匹配效果,会有更加广阔的应用领域和发展前景。
关键词
碎块匹配; 显著性区域; 迭代最近点; 高斯概率模型; 角度约束; 动态迭代系数
Abstract
Objective Rigid block matching is the process of searching a 3D rigid transformation that can make the common parts of two surfaces of different blocks in different coordinates match correctly. This process has been widely used in many research fields, such as archaeology, biological engineering, and remote sensing data processing. A new matching method is proposed in this study to further improve the accuracy, convergence speed, and anti-noise capacity of the existing rigid block matching algorithms. Method The method can be divided into two steps, namely, coarse and fine matching processes. First, fracture surfaces are extracted from rigid blocks, and the concave and convex salient regions on fracture surfaces are calculated. Block coarse matching is completed through the matching algorithm based on salient regions. Second, the Gaussian probability model, angle constraint, and dynamic iteration coefficient are added to the iterative closest point (ICP) algorithm to improve ICP performance, and the improved ICP algorithm is used to further match the rigid blocks for fine matching of rigid blocks. Result In the experiment, two types of data models (public blocks and Terracotta Warrior blocks) are used to illustrate the performance of the improved ICP algorithm. Matching results show that the accuracy and convergence speed are increased by 50% and 65%, respectively, compared with the ICP algorithm and 15% and 50%, respectively, compared with the Picky ICP algorithm. The improved ICP algorithm is indeed a much more accurate, faster, and better anti-noise algorithm than other algorithms. Conclusion This improved algorithm can match not only public blocks perfectly but also the special Terracotta Warrior blocks much better than other algorithms. This algorithm is a good method of rigid block matching with extensive applications.
Key words
blocks matching; salient region; iterative closest point; Gaussian probability model; angle constraint; dynamic iteration coefficient
0 引言
具有一定厚度的刚体破碎后会随机形成若干个任意形状的碎块,破碎刚体的复原问题就是将这些碎块按照某种方法进行匹配拼接的过程。两个刚体碎块的匹配就是通过某种方法寻找一个3维刚体变换,使得两个待匹配碎块的曲面的共同部分能够正确地匹配和拼接的过程[1]。目前,刚体碎块匹配已经在文物复原[2-4]、医学研究[5]、对象识别[6]、遥感图像处理[7]以及工程计算[8]等领域得到了较为广泛的应用。
整体来说,碎块的匹配过程可以分为粗匹配和细匹配两个阶段。粗匹配就是将两个碎块的断裂面进行粗略对齐的过程,它能为细匹配带来较好的初值,而细匹配就是指将粗匹配后的两个碎块进一步地对齐,从而完成两个碎块的精确匹配。在众多的碎块匹配算法中,通常采用曲面的特征进行匹配,如曲率[3]和法向[9]特征,它们具有旋转和平移不变性,但是离散曲率对噪声敏感,会带来一定的误差。轮廓曲线[10-11]也是曲面特征描述的一种重要方法,只要正确提取并匹配了刚体碎块断裂面的轮廓曲线,则两个碎块就匹配好了,但是对于轮廓曲线不明显的碎块,该方法并不适合。另外,还可以利用积分不变量[12]来描述刚体碎块断裂面凹凸不平的几何特征,通过对断裂面上或凸或凹的显著性区域的匹配来完成两个碎块断裂面的匹配。
目前,Besl等人[13]提出的迭代最近点(ICP)算法也在刚体碎块匹配中得到了较为广泛的应用,该方法通过对两个断裂面上的顶点进行配准来完成两个碎块的断裂面的匹配。ICP算法步骤简单,易于实现,但是在数据量较大时需要的迭代时间比较长,而且对两个待匹配点集的初始位置要求较高,抗噪性也不好。针对ICP算法中存在的这些问题,国内外学者提出了许多改进的ICP算法[14-19]。比如,Du等人[20]通过在ICP算法中加入高斯概率模型提出了概率迭代最近点(PICP)算法,该算法不仅在一定程度上提高了配准的精度和速度,而且还具有较强的抗噪性,是一种有效的点云配准算法。Mavridis等人[21]将模拟退火搜索与标准稀疏ICP算法结合,提出了一种改进的稀疏ICP算法,该算法高效地解决了优化问题,具有较强的抗噪性,能很好地解决两个几何表面的配准。Du等人[22]提出了尺度迭代最近点算法(SICP),该算法将一个带有边界的尺度矩阵加入到ICP算法中,解决了不同尺度情况的点云数据的配准问题。虽然这些改进的ICP算法在收敛速度、精度和抗噪性等方面都得到了较大程度的提高,但是对于一些特殊刚体碎块(如秦俑碎块)的匹配效果并不理想。
针对具有厚度且断裂面较原始面明显粗糙的刚体碎块,采用先粗配再细配的方法来完成两个刚体碎块的断裂面匹配。首先对碎块进行曲面分割并提取碎块的断裂面,然后根据积分不变量提取断裂面上的显著性区域并对不同碎块断裂面上的特征区域进行匹配,从而实现碎块的粗匹配。最后,通过加入高斯概率模型、角度约束和动态迭代系数的方式来改进ICP算法,并采用该方法实现两个断裂面的细匹配。
1 基于显著性区域的粗匹配
在粗匹配阶段,采用了基于显著性区域的刚体碎块断裂面匹配算法。首先,采用区域生长算法进行曲面分割;然后,根据曲面的粗糙程度提取碎块的断裂面,再根据积分不变量计算断裂面上顶点的凹凸性,进而提取出凹的和凸的显著性区域;最后,通过计算不同碎块的断裂面的显著性区域的相似性对显著性区域进行匹配,从而实现碎块断裂面的粗匹配。
1.1 提取断裂面
在提取碎块的断裂面之前,首先进行碎块外表面分割,即将碎块的外表面以棱边为界限分割成多张曲面,然后再提取碎块的断裂面。
实验中的碎块数据模型均采用三角网格模型进行表示,这里采用区域生长算法[23]实现曲面分割,具体方法描述为:首先判断相邻三角面片法矢的夹角是否大于给定阈值,若大于给定阈值则将这两个三角面片分割在两个不同的曲面上,否则分割在同一曲面上,重复该过程直到所有三角面片分割完为止;然后逐一检查分割曲面,若曲面特别小,则将其合并到相邻的曲面中,否则判断该曲面与其相邻曲面的平均法矢夹角,若小于给定阈值则进行合并,否则不合并。
这里主要研究断裂面较原始面粗糙的刚体碎块的匹配问题,因此在曲面分割后可以根据曲面的粗糙程度来提取断裂面。在几何特征上,较为粗糙的断裂面上顶点的法向量变化较原始面的法向量变化大,因此可以根据断裂面上所有顶点的法向量的变化情况来区分断裂面和原始面。
定义曲面
$ {e_k}(\boldsymbol{p}) = \frac{1}{k}\sum\limits_{i = 1}^k {\frac{{{{\left\| {{\boldsymbol{n}_p}-{\boldsymbol{n}_{qj}}} \right\|}^2}}}{{{{\left\| {\boldsymbol{p}-{\boldsymbol{q}_j}} \right\|}^2}}}} $ | (1) |
式中,
设置一个以
$ {{\bar e}_{k, r}}(\boldsymbol{p}) = \frac{1}{{\left| {{N_r}(\boldsymbol{p})} \right|}}\sum\limits_{\boldsymbol{q} \in {\boldsymbol{N}_r}(\boldsymbol{p})} {{e_k}(\boldsymbol{q})} $ | (2) |
式中,
那么,曲面
$ \rho (\mathit{\boldsymbol{\varphi }}) = \frac{1}{{\left| \mathit{\boldsymbol{\varphi }} \right|}}\sum\limits_{p \in \mathit{\boldsymbol{\varphi }}} {{{\bar e}_{k, r}}(\mathit{\boldsymbol{p}})} $ | (3) |
式中,
1.2 提取显著性区域
断裂面上的显著性区域是指一个连通的或凹或凸的局部区域,平面区域不予考虑。对断裂面上顶点的凹凸性的判断可以根据体积积分不变量来计算。
3维曲面
$ {V_r}(\boldsymbol{p}) = \int_{{B_r}(\boldsymbol{p})} {{I_D}(x){\rm{d}}x} $ | (4) |
式中,局部邻域
这里,
为了方便描述,定义
$ {S_r}(\boldsymbol{p}) = \frac{3}{{4{\rm{\pi }}{r^3}}}({V_r}(\boldsymbol{p})-\frac{2}{3}{\rm{\pi }}{r^3}) $ | (5) |
于是有,当
根据以上顶点凹凸性的判断方法,显著性区域的提取算法描述如下:
1)计算断裂面上每个顶点的体积积分不变量
2)根据
3)对集合
1.3 基于显著性区域的粗匹配
基于显著性区域的粗匹配就是对不同碎块的断裂面上的显著性区域进行匹配。设有两个显著性区域
设显著性区域
$ \bar p = \frac{1}{n}\sum\limits_{i = 1}^n {{\boldsymbol{p}_i}} $ | (6) |
$ \boldsymbol{M} = \sum\limits_{i = 1}^n [ ({\boldsymbol{p}_i} - \boldsymbol{\bar p}){({\boldsymbol{p}_i} - \boldsymbol{\bar p})^{\rm{T}}}] $ | (7) |
假设计算得到的
那么,定义各向异性特征为
$ A(\boldsymbol{R}) = {\left| {\frac{{\lambda _1^R}}{{\lambda _0^R}}} \right|^{\frac{1}{2}}} $ | (8) |
对于两个显著性区域
$ SA({\boldsymbol{R}_1}, {\boldsymbol{R}_2}) = \left| {\frac{{A({\boldsymbol{R}_1})-A({\boldsymbol{R}_2})}}{{A({\boldsymbol{R}_1}) + A({\boldsymbol{R}_2})}}} \right| $ | (9) |
若
设
$ SN({\boldsymbol{R}_1}, {\boldsymbol{R}_2}) = \left| {\frac{{N({\boldsymbol{R}_1})-N({\boldsymbol{R}_2})}}{{N({\boldsymbol{R}_1}) + N({\boldsymbol{R}_2})}}} \right| $ | (10) |
若
根据以上对显著性区域的特征的计算结果,再采用穷举法寻找最优匹配,对每一个可能的匹配计算其3维变换,即可完成刚体碎块断裂面的粗匹配。
2 基于改进ICP的细匹配
在细匹配阶段,采用改进的ICP算法来实现刚体碎块断裂面上顶点的进一步匹配。这里通过在ICP算法中引入高斯概率模型、角度约束和动态迭代系数来对其改进,以进一步提高碎块匹配的速度、精度和抗噪性等,达到两个刚体碎块的精确匹配。
2.1 ICP算法
给定两个待配准的点集
$ \begin{array}{l} \mathop {\min }\limits_{\boldsymbol{R}, \boldsymbol{t}, j \in \{ 1, 2, \cdots, {N_D}\} } (\sum\limits_{i = 1}^{{N_M}} {\left\| {(\boldsymbol{R}{\boldsymbol{m}_i} + \boldsymbol{t})-{\boldsymbol{d}_j}} \right\|_2^2} )\\ \;\;\;\;{\rm{s}}.\;{\rm{t}}.\;\;\;\;{\boldsymbol{R}^{\rm{T}}}\boldsymbol{R} = {\boldsymbol{I}_n}, \det (\boldsymbol{R}) = 1 \end{array} $ | (11) |
式中,
在每次迭代过程中,ICP算法都要在
1)根据第
$ {c_k}(i) = \mathop {\arg \;\min }\limits_{j \in \{ 1, 2, \cdots, {N_D}\} } \left\| {({\boldsymbol{R}_{k-1}}{\boldsymbol{m}_i} + {\boldsymbol{t}_{k-1}})-{\boldsymbol{d}_j}} \right\|_2^2 $ | (12) |
式中,
2)计算点集
$ ({\boldsymbol{R}_k}, {\boldsymbol{t}_k}) = \mathop {\arg \;\min }\limits_{\boldsymbol{R}_k^{\rm{T}}{\boldsymbol{R}_k} = {\boldsymbol{I}_n}, \det (\boldsymbol{R}) = 1} (\sum\limits_{i = 1}^{{N_M}} {\left\| {{\boldsymbol{R}_k}{\boldsymbol{m}_i} + {\boldsymbol{t}_k}-{\boldsymbol{d}_{{c_k}(i)}}} \right\|_2^2} ) $ | (13) |
重复步骤1)2)直到达到迭代终止条件为止。由于ICP算法是一个局部收敛算法,因此旋转矩阵和平移矩阵的初值非常重要。好的初值不仅能保证算法收敛到全局最小值,而且能大大提高算法的执行效率,初值的选取可参考文献[25-26]的方法。
2.2 ICP算法的改进
ICP算法的改进主要分3个步骤进行,首先在ICP算法中加入高斯概率模型[21]以提高算法的抗噪性,然后加入角度约束来解决因旋转角的变化过大而引起的配准效果不佳的问题,最后加入动态迭代系数来提高算法的收敛速度。
2.2.1 高斯概率模型
若点集
$ p(\boldsymbol{m}) = \sum\limits_{i = 1}^{{N_M}} {p({\boldsymbol{d}_j})p(\boldsymbol{m}\left| {{\boldsymbol{d}_j}} \right.)} $ | (14) |
如果点集
$ p(\boldsymbol{m}\left| \boldsymbol{d} \right.) = \frac{1}{{{{(2{\rm{\pi }}{\sigma ^2})}^{n/2}}}}{\exp ^{-\frac{{\left\| {\boldsymbol{T}(\boldsymbol{m})-\boldsymbol{d}} \right\|_2^2}}{{2{\sigma ^2}}}}} $ | (15) |
式中,
一般来说,对于3维扫描仪器获取的初始数据,都是杂乱的3维点云数据,需要对其进行模型简化,使其在数据量上适当降低并满足均匀分布。因此对于点集
$ p(\boldsymbol{d}) = \frac{1}{{{N_D}}} $ | (16) |
那么,似然函数的目标函数可定义为
$ \begin{array}{l} F(\boldsymbol{m};\boldsymbol{R}, \boldsymbol{t}, {\sigma ^2}) =-\sum\limits_{i = 1}^{{N_M}} {{\rm{I}}{{\rm{n}}_e}} (p({\boldsymbol{m}_i}\left| {\boldsymbol{R}, \boldsymbol{t}, {\sigma ^2}} \right.)) = \\ \;\;\;-\sum\limits_{i = 1}^{{N_M}} {{\rm{I}}{{\rm{n}}_e}} (\sum\limits_{i = 1}^{{N_D}} {p({\boldsymbol{m}_j})p({\boldsymbol{m}_i}\left| {{\boldsymbol{d}_j}, } \right.\boldsymbol{R}, \boldsymbol{t}, {\sigma ^2})} ) \end{array} $ | (17) |
首先,建立求解刚体变换的新目标函数为
$ \begin{array}{l} M({{\mathit{\boldsymbol{\tilde R}}}_k}, {{\mathit{\boldsymbol{\tilde t}}}_k}, {{\mathit{\boldsymbol{\tilde \sigma }}}_k}) = \sum\limits_{i = 1}^{{N_M}} {\sum\limits_{j = 1}^{{N_D}} {(p({\mathit{\boldsymbol{d}}_j}\left| {{\mathit{\boldsymbol{m}}_i}, {\mathit{\boldsymbol{R}}_{k - 1}}, {\mathit{\boldsymbol{t}}_{k - 1}}, \sigma _{k - 1}^2} \right.)} } \\ \;\;\;\;\;\;\;\;\;\;\;\;{\rm{log(}}p({\mathit{\boldsymbol{d}}_j})p({\mathit{\boldsymbol{m}}_i}\left| {{\mathit{\boldsymbol{d}}_j}, {{\mathit{\boldsymbol{\tilde R}}}_k}, {{\mathit{\boldsymbol{\tilde t}}}_k}, \tilde \sigma _k^2} \right.){\rm{)}}) \end{array} $ | (18) |
令
$ \begin{array}{l} \mathit{\boldsymbol{M}}({{\mathit{\boldsymbol{\tilde R}}}_k}, {{\mathit{\boldsymbol{\tilde t}}}_k}, \mathit{\tilde \sigma }_k^2) = - \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}(i)}}} \right\|_2^2}}{{2{{\mathit{\tilde \sigma }}^2}}} - \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\sum\limits_{i = 1}^{{N_M}} {\mathit{\boldsymbol{p}}_i^{k - 1}} \times \log ({N_D}{(2{\rm{ \mathsf{ π} }}\tilde \sigma _k^2)^{\frac{n}{2}}}) \end{array} $ | (19) |
式中,只有
$ \begin{array}{l} ({\mathit{\boldsymbol{R}}_k}, {\mathit{\boldsymbol{t}}_k}) = \mathop {\arg \;\min }\limits_{\mathit{\boldsymbol{\tilde R}}_k^{\rm{T}}{{\mathit{\boldsymbol{\tilde R}}}_k} = {\mathit{\boldsymbol{I}}_n}, \det (\mathit{\boldsymbol{\tilde R}}) = 1, {{\mathit{\boldsymbol{\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}(i)}}} \right\|_2^2}}{{2{{\mathit{\tilde \sigma }}^2}}} \end{array} $ | (20) |
2.2.2 角度约束
角度约束是指为刚体变换中的旋转角设置边界(即上界和下界),其目的是为了降低角度变化过大引起的配准失败问题。
首先,定义旋转矩阵
$ \begin{array}{l} {\boldsymbol{R}_x} = \left[{\begin{array}{*{20}{c}} 1&0&0\\ 0&{\cos {\theta _x}}&{-\sin {\theta _x}}\\ 0&{\sin {\theta _x}}&{\cos {\theta _x}} \end{array}} \right]\\ {\boldsymbol{R}_y} = \left[{\begin{array}{*{20}{c}} {\cos {\theta _y}}&0&{\sin {\theta _y}}\\ 0&1&0\\ {-\sin {\theta _y}}&0&{\cos {\theta _y}} \end{array}} \right]\\ {\boldsymbol{R}_z} = \left[{\begin{array}{*{20}{c}} {\cos {\theta _z}}&{-\sin {\theta _z}}&0\\ {\sin {\theta _z}}&{\cos {\theta _z}}&0\\ 0&0&1 \end{array}} \right] \end{array} $ |
这里,采用PCA方法来计算旋转角的主成分矢量。对于3维点集的刚体配准,如果这两个点集能够正确配准,那它们必然具有相似的点分布。因此当它们正确配准时,旋转角的3对主成分矢量都接近0°或180°。所以旋转角可以通过旋转角的3对主成分矢量来估计。
假设点集
$ \begin{array}{l} \boldsymbol{V}_D^1 = \{ {\boldsymbol{V}_{D1}}, {\boldsymbol{V}_{D2}}, {\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^2 = \{ {\boldsymbol{V}_{D1}}, {\boldsymbol{V}_{D2}}, -{\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^3 = \{ {\boldsymbol{V}_{D1}}, -{\boldsymbol{V}_{D2}}, {\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^4 = \{ {\boldsymbol{V}_{D1}}, -{\boldsymbol{V}_{D2}}, - {\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^5 = \{ - {\boldsymbol{V}_{D1}}, {\boldsymbol{V}_{D2}}, {\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^6 = \{ - {\boldsymbol{V}_{D1}}, {\boldsymbol{V}_{D2}}, - {\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^7 = \{ - {\boldsymbol{V}_{D1}}, - {\boldsymbol{V}_{D2}}, {\boldsymbol{V}_{D3}}\} \\ \boldsymbol{V}_D^8 = \{ - {\boldsymbol{V}_{D1}}, - {\boldsymbol{V}_{D2}}, - {\boldsymbol{V}_{D3}}\} \end{array} $ |
为了使点集
$ {\boldsymbol{R}_{opt}} = \left[ {\begin{array}{*{20}{l}} {\;\;\;\cos ({\theta _{yb}})\cos ({\theta _{zb}})}&{ - \cos ({\theta _{yb}})\sin ({\theta _{zb}})}&{\;\;\;\sin ({\theta _{yb}})}\\ {\begin{array}{*{20}{l}} {\;\;\;\sin ({\theta _{xb}}){\rm{sin}}({\theta _{yb}})\cos ({\theta _{zb}}) + }\\ {\;\;\;{\rm{cos}}({\theta _{xb}})\sin ({\theta _{zb}})} \end{array}}&{\begin{array}{*{20}{l}} { - \sin ({\theta _{xb}})\sin ({\theta _{yb}})\sin ({\theta _{zb}}) + }\\ {\;\;\;\cos ({\theta _{xb}})\cos ({\theta _{zb}})} \end{array}}&{ - \sin ({\theta _{xb}})\cos ({\theta _{yb}})}\\ {\begin{array}{*{20}{l}} { - \cos ({\theta _{xb}})\sin ({\theta _{yb}})\cos ({\theta _{zb}}) + }\\ {\;\;\;\sin ({\theta _{xb}})\sin ({\theta _{zb}})} \end{array}}&{\begin{array}{*{20}{l}} {\;\;\;\cos ({\theta _{xb}})\sin ({\theta _{yb}})\sin ({\theta _{zb}}) + }\\ {\;\;\;\sin ({\theta _{xb}})\sin ({\theta _{zb}})} \end{array}}&{\;\;\;\cos ({\theta _{xb}})\cos ({\theta _{yb}})} \end{array}} \right] $ | (21) |
由此,旋转角的均值
那么,点集
$ \left\{ \begin{array}{l} ({\mathit{\boldsymbol{R}}_k}, {\mathit{\boldsymbol{t}}_k}) = \mathop {\arg \;\min }\limits_{\mathit{\boldsymbol{\tilde R}}_k^{\rm{T}}{{\mathit{\boldsymbol{\tilde R}}}_k} = {\mathit{\boldsymbol{I}}_n}, \det (\mathit{\boldsymbol{\tilde R}}) = 1, {{\mathit{\boldsymbol{\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}(i)}}} \right\|_2^2}}{{2{{\mathit{\tilde \sigma }}^2}}}\\ {\rm{s}}{\rm{.t}}{\rm{.}}\;\;\;{\mathit{\boldsymbol{R}}^{\rm{T}}}\mathit{\boldsymbol{R}} = {\mathit{\boldsymbol{I}}_n}, \det (\mathit{\boldsymbol{R}}) = 1\\ \;\;\;\;\;\;\;{\theta _x} \in [{\theta _{xb}}-\Delta {\theta _x}, {\theta _{xb}} + \Delta {\theta _x}]\\ \;\;\;\;\;\;\;{\theta _y} \in [{\theta _{yb}}-\Delta {\theta _y}, {\theta _{yb}} + \Delta {\theta _y}]\\ \;\;\;\;\;\;\;{\theta _z} \in [{\theta _{zb}}-\Delta {\theta _z}, {\theta _{zb}} + \Delta {\theta _z}] \end{array} \right. $ | (22) |
式(22)是一个不等式约束的优化问题,可以采用基于定区间内目标函数单调性的封闭算法[26]来解决。
定义均方根(RMS)、方差为
$ {\rm{RMS = (}}\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}(i)}}} \right\|_2^2{{\rm{)}}^{\frac{1}{2}}} $ | (23) |
$ \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}(i)}}} \right\|_2^2}}{n} $ | (24) |
那么,高斯概率方差的更新为
$ \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. $ | (25) |
式中,
因此,后验高斯概率为
$ \begin{array}{l} p({\mathit{\boldsymbol{d}}_{{c_k}(i)}}\left| {{\mathit{\boldsymbol{m}}_i}\left| {{\mathit{\boldsymbol{R}}_k}, {\mathit{\boldsymbol{t}}_k}, \sigma _k^2} \right.} \right.) = \\ \frac{{1/{{(2{\rm{ \mathsf{ π} }}\sigma _k^2)}^{\frac{n}{2}}}{{\exp }^{ - \frac{{\left\| {{\mathit{\boldsymbol{R}}_k}{\mathit{\boldsymbol{m}}_i} + {\mathit{\boldsymbol{t}}_k} - {\mathit{\boldsymbol{d}}_{{c_k}(i)}}} \right\|_2^2}}{{2\sigma _k^2}}}}}}{{\sum\limits_{i = 1}^{{N_M}} 1 /{{(2{\rm{ \mathsf{ π} }}\sigma _k^2)}^{\frac{n}{2}}}{{\exp }^{ - \frac{{\left\| {{\mathit{\boldsymbol{R}}_k}{\mathit{\boldsymbol{m}}_i} + {\mathit{\boldsymbol{t}}_k} - {\mathit{\boldsymbol{d}}_{{c_k}(i)}}} \right\|_2^2}}{{2\sigma _k^2}}}}}} \end{array} $ | (26) |
2.2.3 动态迭代系数
动态迭代系数是一个可以自动调整刚体变换参数的整数值,它可以在不影响ICP算法的配准精度和收敛方向的情况下,大大减少算法的迭代次数、提高算法的收敛速度。
在ICP算法中加入动态迭代系数
1)计算刚体变换矢量
2)用刚体变换矢量
通常,动态迭代系数
2.2.4 改进的ICP算法
改进的ICP算法可描述如下:
1)给定刚体变换初值
2)估计旋转角度
3)令
4)利用奇异值分解(SVD)的方法来计算旋转矩阵
5)计算最优旋转角
6)计算
7)判断均方根误差RMS,若
8)判断动态迭代系数
9)计算两组点集的方差,并更新高斯概率的方差;
10)计算后验高斯概率,直到满足
3 实验结果与分析
实验中的所有数据均为采用3维扫描仪获取的刚体碎块数据,采用三角网格模型表示,且待匹配碎块满足简单的3维刚体变换。这里进行了两组实验来完成不同类型的碎块匹配。实验1采用的是石头和灰泥碎块数据模型[29],是网络上的公共数据模型;实验2采用的是在秦始皇陵扫描的秦俑碎块数据模型,该模型含有较大的噪声,数据比较复杂,匹配难度较大。具体的匹配过程如下:首先采用第1节介绍的基于显著性区域的粗匹配算法将碎块进行粗略对齐,然后采用第2节提出的改进的ICP算法将碎块的断裂面进一步精确匹配,从而完成碎块的最终匹配。
3.1 实验1
采用了4组石头碎块和灰泥碎块用于匹配实验。首先采用基于显著性区域的粗匹配算法将碎块进行粗略对齐,然后再用改进的ICP算法将碎块的断裂面进行细匹配。实验中选取的旋转角偏差为
从图 3的匹配结果来看,改进的ICP算法能很好地完成碎块的匹配。第1组的石头碎块匹配属于完全匹配类型,第2组的石头碎块匹配属于部分匹配类型,第3组的灰泥碎块匹配属于完全匹配类型,第4组的灰泥碎块匹配属于部分匹配类型。为了进一步验证改进ICP算法的性能,在基于显著性区域粗匹配算法的基础上,再分别采用ICP算法和PICP算法[21]进行细匹配。ICP算法、PICP算法和改进的ICP算法等3种算法的匹配点数、RMS、迭代次数以及匹配耗时等匹配参数如表 1所示。
表 1
实验1中3种ICP算法的匹配参数
Table 1
Matching parameters of three algorithmsin experiment 1
实验1 | 两断裂面 上的点数 |
算法 | 匹配 点数 |
RMS | 迭代 次数 |
耗时/s |
第1组 | 3 641 3 497 |
ICP | 1 201 | 0.028 6 | 35 | 4.2 |
PICP | 1 965 | 0.015 6 | 27 | 3.7 | ||
改进ICP | 2 149 | 0.013 7 | 12 | 1.8 | ||
第2组 | 4 011 2 183 |
ICP | 928 | 0.030 1 | 37 | 4.5 |
PICP | 1 296 | 0.016 6 | 28 | 3.8 | ||
改进ICP | 1 408 | 0.013 1 | 13 | 2.0 | ||
第3组 | 3 307 3 011 |
ICP | 1 103 | 0.027 2 | 33 | 4.1 |
PICP | 1 521 | 0.014 6 | 27 | 3.5 | ||
改进ICP | 1 771 | 0.012 1 | 11 | 1.6 | ||
第4组 | 2 587 1 603 |
ICP | 542 | 0.024 2 | 35 | 4.3 |
PICP | 782 | 0.012 6 | 26 | 3.8 | ||
改进ICP | 925 | 0.010 8 | 12 | 1.7 |
从表 1的匹配结果来看,ICP算法、PICP算法以及改进的ICP算法均能完成碎块的细匹配,但是PICP算法的匹配精度和速度明显优于ICP算法,而改进的ICP算法的匹配精度和速度又明显优于PICP算法,特别是在匹配速度方面的提高尤其明显。因此,改进的ICP算法是一种高精度、快速的匹配算法。
3.2 实验2
两组实验数据采用3D扫描仪获取的秦俑碎块数据,采用3维网格模型表示,如图 4所示。
图 4中第1组的实验数据是秦俑的两个腿部碎块数据模型(图 4(a)),这两个碎块相对保存完整,没有明显的损坏或缺失。图 4中第2组的实验数据是秦俑的两个胸部碎块数据模型(图 4(b)),这两个碎块在拼接的断裂面处存在一定的细小碎块的缺失,不能完全光滑拼接,因此匹配难度较大。该实验中选取的旋转角偏差为
与实验1的碎块匹配流程类似,实验2也是首先采用基于显著性区域的粗匹配算法将碎块进行粗略对齐,然后再采用ICP算法、PICP算法以及改进的ICP算法将碎块的断裂面进一步细匹配,从而完成碎块的最终匹配。对于图 4的两组秦俑碎块,这3种ICP算法的匹配结果和参数(包括匹配的点数、RMS、迭代次数和耗时)分别如图 5和表 2所示。
表 2
实验2中3种ICP算法的匹配参数
Table 2
Matching parameters of three algorithms in experiment 2
实验2 | 两断裂面 上的点数 |
算法 | 匹配 点数 |
RMS | 迭代 次数 |
耗时/s |
第1组 | 3 501 3 714 |
ICP | 1 426 | 0.029 2 | 38 | 4.6 |
PICP | 1 965 | 0.018 9 | 28 | 3.4 | ||
改进ICP | 2 145 | 0.015 2 | 15 | 1.6 | ||
第2组 | 2 712 7 849 |
ICP | 1 031 | 0.031 1 | 42 | 4.9 |
PICP | 1 329 | 0.020 1 | 35 | 3.7 | ||
改进ICP | 1 596 | 0.017 1 | 16 | 2.0 |
从图 5和表 2的匹配结果来看,ICP算法不能很好地完成秦俑碎块的匹配,存在较大的匹配误差,而PICP算法和改进的ICP算法能较好地实现秦俑碎块的匹配,并且改进的ICP算法在匹配精度和匹配速度方面比PICP算法又有了很大程度的提高。这是由于PICP算法能够克服噪声对匹配结果的干扰,而改进的ICP算法不仅能够克服噪声对匹配结果的干扰,还由于角度约束和动态迭代系数的加入而大大提高了匹配的精度和收敛速度。因此,改进的ICP算法是一种高精度、快速、抗噪的刚体碎块匹配算法。
4 结论
破碎刚体复原问题是计算机图形学、计算机视觉和模式识别中一个有待解决的问题。目前,国内外研究的较多是厚度不计的碎片拼接,对于具有一定厚度的刚体碎块的拼接研究较少。针对具有厚度的刚体碎块数据模型,文中采用了先粗配再细配的方法来完成碎块的断裂面匹配。在粗匹配阶段,首先采用区域生长算法进行曲面分割,将碎块外表面分割成一张张的曲面,然后根据曲面的粗糙程度提取出碎块的断裂面,再根据积分不变量提取断裂面上的显著性区域,最后通过计算不同碎块的断裂面的显著性区域的相似性对显著性区域进行匹配,从而实现碎块断裂面的粗略对齐。在细匹配阶段,提出了一种改进的ICP算法来对两个刚体碎块的断裂面进行进一步精确对齐。该算法是在ICP算法的基础上加入高斯概率模型、角度约束和动态迭代系数的方式来改进ICP算法的,使得算法在匹配精度、速度和抗噪性等方面的性能都得到了很大的提高,能够将两个断裂面进行更加精确的对齐。该算法不仅能对公共数据集中的刚体碎块进行完美匹配,而且还能对复杂的秦俑碎块数据进行较好的完全匹配和部分匹配,是一种非常有效的刚体碎块断裂面匹配算法,具有更广阔的应用领域和应用前景。在今后的研究中,要进一步考虑秦俑碎块在部分缺失、风化、二次断裂、受潮和变形等方面的问题,针对更加复杂的情况提出更加高效、精确的秦俑碎块匹配算法,使其能够实现秦俑等特殊刚体碎块数据模型的完美匹配,最终实现自动的虚拟秦俑复原。
参考文献
-
[1] Li T T, Tang J, Jiang B, et al. Iterative graph transformation matching algorithm[J]. Journal of Image and Graphics , 2014, 19 (5) : 723–729. [ 李婷婷, 汤进, 江波, 等. 迭代的图变换匹配算法[J]. 中国图象图形学报 , 2014, 19 (5) : 723–729. DOI:10.11834/jig.20140510 ]
-
[2] 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 ]
-
[3] Lin S Z, Wang D J, Zhong J R, et al. Approach to reassembling virtual small bronze fragments using the curvature feature[J]. Journal of Xidian University , 2016, 43 (6) : 151–156. [ 蔺素珍, 王栋娟, 钟家让, 等. 利用曲率特征虚拟拼接青铜器小碎片的方法[J]. 西安电子科技大学学报:自然科学版 , 2016, 43 (6) : 151–156. DOI:10.3969/j.issn.1001-2400.2016.06.024 ]
-
[4] Zhang K, Yu W Y, Manhein M, et al. 3D fragment reassembly using integrated template guidance and fracture-region matching[C]//Proceedings of the 2015 IEEE International Conference on Computer Vision. Washington:IEEE, 2015:2138-2146.[DOI:10.1109/ICCV.2015.247.]
-
[5] Crookshank M, Beek M, Singh D, et al. Can a semi-automated surface matching and principal axis-based algorithm accurately quantify femoral shaft fracture alignment in six degrees of freedom[J]. Medical Engineering & Physics , 2013, 35 (7) : 1028–1036.
-
[6] Kim D H, Park S K. Texture-less object recognition using contour fragment-based features with bisected local regions[C]//Proceedings of the 2014 IEEE International Conference on Consumer Electronics. Las Vegas, Nevada, USA:IEEE, 2014:388-389.[DOI:10.1109/ICCE.2014.6776053.]
-
[7] Chen S Y, Wang X L, Zhang Y C, et al. Multi-scale registration of LiDAR data and aerial image[J]. Journal of Beijing Institute of Technology , 2016, 36 (2) : 186–190. [ 陈思颖, 王晓鲁, 张寅超, 等. 城区机载激光雷达点云数据与航空影像的多尺度配准方法[J]. 北京理工大学学报 , 2016, 36 (2) : 186–190. DOI:10.15918/j.tbit1001-0645.2016.02.015 ]
-
[8] Xiao Y J, Ding M Y, Peng J X. ICP-based B-spline curve fitting[J]. Journal of Image and Graphics , 2000, 5 (7) : 585–588. [ 肖轶军, 丁明跃, 彭嘉雄. 基于迭代最近点的B样条曲线拟合方法研究[J]. 中国图象图形学报 , 2000, 5 (7) : 585–588. DOI:10.11834/jig.20000709 ]
-
[9] Sun J H, Zhou L S, An L L. Optimal algorithm for normal adjustment of point clouds[J]. Journal of Image and Graphics , 2013, 18 (7) : 844–851. [ 孙金虎, 周来水, 安鲁陵. 点云模型法矢调整优化算法[J]. 中国图象图形学报 , 2013, 18 (7) : 844–851. DOI:10.11834/jig.20130711 ]
-
[10] Wang Y, Zhang Q. Using contour edge curve's Fourier transform method to faster match W-shaped pattern[J]. Computer Science , 2016, 43 (6A) : 116–117. [ 王洋, 张琴. 利用傅里叶变换边缘曲线法进行W型轮廓的快速匹配[J]. 计算机科学 , 2016, 43 (6A) : 116–117. ]
-
[11] Li Q H, Zhang J Z, Geng G H, et al. Fracture surfaces matching based on contour curve[J/OL]. Journal of Xi'an Jiaotong University, 2016, 50(9), http://www.cnki.net/kcms/detail/61.1069.T.20160714.1117.006.html. [李群辉, 张俊祖, 耿国华等.以轮廓曲线为特征的断裂面匹配[J/OL].西安交通大学学报, 2016, 50(9), http://www.cnki.net/kcms/detail/61.1069.T.20160714.1117.006.html.]
-
[12] Pottmann H, Wallner J, Huang Q X, et al. Integral invariants for robust geometry processing[J]. Computer Aided Geometric Design , 2009, 26 (1) : 37–60. DOI:10.1016/j.cagd.2008.01.002
-
[13] Besl P J, McKay H D. A method for registration of 3-D shapes[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence , 1992, 14 (2) : 239–256. DOI:10.1109/34.121791
-
[14] Li S L, Lee D. Fast visual odometry using intensity-assisted iterative closest point[J]. IEEE Robotics and Automation Letters , 2016, 1 (2) : 992–999. DOI:10.1109/LRA.2016.2530164
-
[15] Marani R, Renò V, Nitti M, et al. A modified iterative closest point algorithm for 3D point cloud registration[J]. Computer-Aided Civil and Infrastructure Engineering , 2016, 31 (7) : 515–534. DOI:10.1111/mice.12184
-
[16] Zheng L H, Mai C Y, Liao W, et al. 3D point cloud registration for apple tree based on Kinect camera[J]. Transactions of the Chinese Society for Agricultural Machinery , 2016, 47 (5) : 9–14. [ 郑立华, 麦春艳, 廖崴, 等. 基于Kinect相机的苹果树三维点云配准[J]. 农业机械学报 , 2016, 47 (5) : 9–14. DOI:10.6041/j.issn.1000-1298.2016.05.002 ]
-
[17] Kwok T H, Tang K. Improvements to the iterative closest point algorithm for shape registration in manufacturing[J]. Journal of Manufacturing Science and Engineering , 2015, 138 (1) : #011014. DOI:10.1115/1.4031335
-
[18] Liu J, Du S Y, Qu D, et al. Fast and robust isotropic scaling probability iterative closest point algorithm[C]//Chinese Automation Congress. Wuhan, China:Huazhong University of Science and Technology, 2015:680-685.
-
[19] Omori S, Nishida T, Kurogi S. Point cloud matching using singular value decomposition[J]. Artificial Life and Robotics , 2016, 21 (2) : 149–154. DOI:10.1007/s10015-016-0265-x
-
[20] Du S Y, Liu J, Zhang C J, et al. 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
-
[21] 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.]
-
[22] 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
-
[23] Li Q H, Zhou M Q, Geng G H. Fractured surface segmentation of triangular mesh of fragments for solid reconstruction[J]. Journal of Computer Applications , 2011, 31 (8) : 2204–2205. [ 李群辉, 周明全, 耿国华. 破碎刚体三角网格模型的断裂面分割[J]. 计算机应用 , 2011, 31 (8) : 2204–2205. DOI:10.3724/SP.j.1087.2011.02204 ]
-
[24] Huang Q X, Fl ry S, Gelfand N, et al. Reassembling fractured objects by geometric matching[J]. ACM Transactions on Graphics , 2006, 25 (3) : 569–578. DOI:10.1145/1141911.1141925
-
[25] Stewart C V, Tsai C L, Roysam B. The dual-bootstrap iterative closest point algorithm with application to retinal image registration[J]. IEEE Transactions on Medical Imaging , 2003, 22 (11) : 1379–1394. DOI:10.1109/TMI.2003.819276
-
[26] Liu L Z, Hu X J, Chen Y F, et al. A new close-form solution for initial registration of ICP[J]. Advanced Materials Research , 2011, 143-144 : 287–292. DOI:10.4028/www.scientific.net/AMR.143-144.287
-
[27] Rotation matrix, Wikipedia. The free encyclopedia[EB/OL]. 2014-09-09[2016-07-14].http://en.wikipedia.org/w/index.php?title=Rotation_matrix&oldid=624815514.
-
[28] 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
-
[29] Huang Q X. 3D Puzzles-reassembling fractured objects by geometric matching[EB/OL]. 2010-11-29[2016-07-14]. http://www.geometrie.tuwien.ac.at/ig/3dpuzzles.html.