基于粒子动力学原理的点集配准
在点集配准领域,传统方法如 CPD 和 KC 存在一些局限性。本文介绍一种新的刚性引力方法(GA),它将点集配准问题转化为能量最小化问题,具有一定的优势。
引力方法概述
在点集配准问题中,给定两个 D 维点集:参考点集 $X_{N×D} = (X_1,…,X_N)^T$ 和模板点集 $Y_{M×D} = (Y_1,…,Y_M)^T$。目标是找到一个刚性变换参数元组 $(R,t,s)$,使模板点集最优地与参考点集对齐。
为实现高效的点集配准,采用 N 体问题并进行了一些假设和修改:
1. 每个点代表一个质量集中在无限小空间区域的粒子。
2. 参考点集 $X$ 诱导一个恒定的非均匀引力场。
3. 粒子 $Y_i$ 在参考点集诱导的引力场中运动,且彼此不相互影响。
4. 模板点集 $Y$ 进行刚性运动,其变换由元组 $(R,t,s)$ 描述。
5. 进行无碰撞的 N 体模拟,因为根据问题定义,粒子数量不能改变。
6. 天体物理常数(如 $G$)和单位被视为算法参数。
7. 一部分动能被耗散并从系统中排出,物理系统不是孤立的。
修改(2)表明参考点集保持静止,可看作受外力固定。修改(7)引入了能量耗散或粘性项,类似于在粘性介质(气体、流体)中运动产生摩擦,部分动能转化为热能。
在 GA 中,势能和动能不断重新分配。二阶常微分方程在无外部刺激时描述了无尽的振荡现象。当一部分由引力场作用从势能转化而来的动能被耗散时,系统逐渐收敛到势能局部最小的最稳定状态,这对应于点集配准问题的局部最优解。此外,粘性项对于确保算法收敛是必要的,否则在接近局部最小值时,模板点集可能具有较高速度,难以细化解。
力的计算
-
引力计算
:粒子 $Y_i$ 受到参考点集 $X$ 中所有粒子的引力为:
- 原始引力公式:$\vec{F} {Y_i} = -Gm {Y_i} \sum_{j=1}^{N} \frac{m_{X_j}}{|\vec{r} {Y_i} - \vec{r} {X_j}|^2} \hat{n} {ij}$
- 为避免碰撞模拟中的奇点,引入软化长度 $\varepsilon$,修正后的引力公式为:$\vec{F} {Y_i} = -Gm_{Y_i} \sum_{j=1}^{N} \frac{m_{X_j}}{(|\vec{r} {Y_i} - \vec{r} {X_j}|^2 + \varepsilon^2)^{3/2}} \hat{n} {ij}$
其中,$m {Y_i}$($m_{X_i}$)和 $\vec{r} {Y_i}$($\vec{r} {X_i}$)分别表示粒子 $Y_i$($X_i$)的质量和绝对坐标,$\hat{n} {ij} = \frac{\vec{r} {Y_i}-\vec{r} {X_j}}{|\vec{r} {Y_i}-\vec{r}_{X_j}|}$ 是力方向上的单位向量。 - 耗散力计算 :耗散项由一个与粒子速度方向相反、大小与速度成正比的阻力表示:$\vec{F} {d {Y_i}} = -\eta \vec{v}_{Y_i}$,其中无量纲常数参数 $\eta$ 综合反映了粒子 $Y_i$ 和粘性介质的特性。
- 合力计算 :粒子 $Y_i$ 所受的合力为:$\vec{f} {Y_i} = \vec{F} {Y_i} + \vec{F} {d {Y_i}}$
速度和位移更新
使用欧拉方法对二阶常微分方程进行前向积分,得到每个粒子 $Y_i$ 的无约束速度和位移更新:
1. 速度更新:$\vec{v}
{t + 1}^{Y_i} = \vec{v}
{t}^{Y_i} + \Delta t \frac{\vec{f}
{Y_i}}{m
{Y_i}}$
2. 位移更新:$\vec{d}
{t + 1}^{Y_i} = \Delta t \vec{v}
{t}^{Y_i}$
无约束的速度和位移可以组合成速度场矩阵 $V_{M×D}$ 和位移场矩阵 $D_{M×D}$:
$V = \begin{bmatrix} \vec{v}
{t + 1}^{Y_1} & \vec{v}
{t + 1}^{Y_2} & \cdots & \vec{v}
{t + 1}^{Y_m} \end{bmatrix}^T$
$D = \begin{bmatrix} \vec{d}
{t + 1}^{Y_1} & \vec{d}
{t + 1}^{Y_2} & \cdots & \vec{d}
{t + 1}^{Y_m} \end{bmatrix}^T$
$V$ 和 $D$ 需要根据点集配准的类型进行进一步的正则化。
引力势能
两个质量分别为 $m_1$ 和 $m_2$ 的物体之间的引力势能(GPE)为:$U_p = -\frac{Gm_1m_2}{r}$,其中 $G$ 是引力常数,$r$ 是两物体质心之间的距离。
对于两个相互作用的刚性粒子系统,能量函数可以定义为:$E(R,t,s) = -G \sum_{i,j} \frac{m_{Y_i} m_{X_j}}{|R r_{Y_i} s + t - r_{X_j}| + \varepsilon}$。在局部极小值点 $(R_{opt},t_{opt},s_{opt})$ 处,系统的总 GPE 和能量函数 $E$ 的值局部最小。因此,可以通过连续几次迭代中 GPE 的差值来表示 GA 的停止准则。
刚性约束
在刚性情况下,需要对位移场 $D$ 施加刚性约束,应用刚体物理原理。
1.
平移求解
:
- 刚体所受的合力等于各个粒子所受合力之和:$\vec{F}
{t + 1}^{Y} = \sum
{i = 1}^{M} \vec{f}
{t}^{Y_i}$
- 合力作用下,刚体的速度变化为:$\vec{v}
{t + 1}^{Y} = \vec{v}
{t}^{Y} + \Delta t \frac{\vec{F}
{t + 1}^{Y}}{m_Y}$
- 由合力速度可计算出合力平移:$\vec{t}
{t + 1} = \Delta t \vec{v}
{t + 1}^{Y}$
2.
尺度求解
:在最小二乘意义下找到尺度 $s$,使得 $Y_{t + 1} = Y_t s$。假设 $\hat{Y}
t$ 和 $\hat{Y}
{t + 1}$ 是长度为 $DM$ 的列向量,分别由 $Y_t$ 和 $Y_{t + 1}$ 的元素垂直堆叠而成。则最优尺度因子 $s$ 等于两个向量点积的比值:$s = \frac{\hat{Y}
t^T \cdot \hat{Y}
{t + 1}}{\hat{Y}
t^T \cdot \hat{Y}_t}$
3.
旋转求解
:严格来说,旋转可以从作用在刚体上的扭矩推断出来,但计算较为复杂。这里采用求解广义正交 Procrustes 问题的方法来找到最优旋转矩阵 $R$。给定矩阵 $Y$ 和 $Y_D = Y + D$,设 $\mu_Y$ 和 $\mu
{Y_D}$ 分别是 $Y$ 和 $Y_D$ 的均值向量,$\hat{Y} = Y - 1\mu_Y^T$ 和 $\hat{Y}
D = Y_D - 1\mu
{Y_D}^T$ 是中心位于坐标系原点的点矩阵,$C = \hat{Y}_D^T \hat{Y}$ 是协方差矩阵。设 $U S \hat{U}^T$ 是 $C$ 的奇异值分解(SVD),则最优旋转矩阵 $R$ 为:$R = U \Sigma \hat{U}^T$,其中 $\Sigma = diag(1, \cdots, sgn(|U \hat{U}^T|))$。
算法流程
以下是刚性点集配准的引力方法算法:
Input: a reference XN×D and a template YM×D
Output: parameters (R,t,s) aligning Y to X optimally
Parameters: G ∈(0,1], ε ∈(0;0.5), η ∈(0;1], mX j, mYi, j ∈{1,...,N}, i ∈
{1,...,M},⃗v0
Y, ρE, Δt, K
1: Initialisation: R = I, t = 0, s = 1, Ecurr = E(R,t,s), Eprev = 0
2: while |Ecurr −Eprev| > ρE do
3:
update force⃗fYi for every particle Yi (Eqs. (9.2)–(9.4))
4:
update velocity and displacement matrices V and D (Eqs. (9.5)–(9.8) )
5:
compute translation tk according to Eqs. (9.11)–(9.13)
6:
compute scale sk as stated in Proposition (2)
7:
update rotation Rk (Eq. (9.17))
8:
Yt+1 = skYtRk +tk (Eq. (9.18))
9:
R = RRk, t = t+tk, s = ssk (optimal parameters)
10:
Eprev = Ecurr, update Ecurr according to Eq. (9.10)
11:
if the current iteration number k exceeds K then
12:
break
13:
end if
14: end while
加速技术
GA 可以采用 N 体模拟和点集配准领域的加速技术,降低计算复杂度并提高运算速度。
1.
N 体模拟加速技术
:
-
Ahmad - Cohen(AC)邻域方案
:为每个粒子采用两个时间尺度,对相邻粒子的力评估更频繁,对远处粒子的贡献进行近似。该方案可实现一定的加速,但复杂度仍为 $O(n^2)$。
-
Barnes - Hut 算法
:基于空间细分和八叉树中的粒子分组进行力的递归计算,N 体模拟复杂度为 $O(nlogn)$,应用于 GA 可将复杂度降低到 $O(M logN)$。
-
快速多极子方法(FMM)
:采用分层空间分解并利用多极展开,可将 GA 的复杂度理论上降低到 $O(M logN)$ 和 $O(M + N)$。
2.
点集配准加速技术
:
-
子采样
:对参考点集和模板点集进行子采样,假设 $s_X$ 和 $s_Y$ 是相应的子采样因子,速度提升约为 $s_X s_Y$,但需注意可能导致信息丢失。
-
粗到细策略
:从粗略尺度开始,逐步引入更多点进行配准,细化解决方案。
-
专用数据结构
:如用于最近邻搜索的 kd - 树,可根据点的空间位置对其进行分层排序,也应用于树代码和 FMM 中。
3.
并行硬件加速
:GA 具有数据和任务并行性,并行代码比例 > 99%,可使用并行硬件加速。例如,GPU 实现的全对 N 体模拟比调优的串行实现快 50 倍。
此外,由于只有模板点集移动且粒子间无相互影响,可在网格中预先计算参考点集诱导的力场,将计算复杂度降低到 $O(M)$,但会增加内存复杂度和预处理时间。
实验评估
在合成数据实验中,使用斯坦福 3D 扫描库中的 Bunny 点云进行测试。复制并下采样 Bunny 点云(1889 点),进行平移和旋转,作为模板点集,原始点集作为参考点集。引入均匀和高斯分布的噪声,每种噪声类型分别设置 5%、10%、20%、40% 或 50% 的噪声比例。对每种噪声组合进行 500 次随机变换,得到 500 个随机初始错位。对每个初始错位和噪声组合,使用 ICP、CPD 和 GA 进行刚性配准。
为确保最高精度,使用无 FGT 的 CPD 版本,CPD 的噪声参数设置为相应的噪声水平,GA 的 $G$ 设置为 $6.67×10^{-5}$。测量参考点集和配准后模板点集之间的平均距离和均方根误差(RMSE),计算指标时去除噪声。将 RMSE 阈值设为 0.3,判断配准是否失败。
实验结果表明,GA 的性能介于 ICP 和 CPD 之间。在解决旋转问题时,GA 平均比 ICP 失败率低,比 CPD 失败率高。导致 GA 失败的初始错位角度在 $[\frac{\pi}{4} ; \frac{\pi}{2}]$ 范围内,角度越大,正确解决旋转的概率越小。CPD 在初始错位角度超过 65° 时开始失败。GA 的运行时间根据噪声水平在 1.5 到 10 分钟之间,最多迭代 100 次收敛。
综上所述,GA 是一种有潜力的点集配准方法,在一定程度上克服了传统方法的局限性,通过加速技术还可进一步提高其性能。
基于粒子动力学原理的点集配准
实验结果分析
为了更直观地展示实验结果,下面用表格呈现不同算法在不同噪声类型和比例下的表现。
| 噪声类型 | 噪声比例 | ICP 失败率 | CPD 失败率 | GA 失败率 |
|---|---|---|---|---|
| 均匀分布 | 5% | [具体失败率] | [具体失败率] | [具体失败率] |
| 均匀分布 | 10% | [具体失败率] | [具体失败率] | [具体失败率] |
| 均匀分布 | 20% | [具体失败率] | [具体失败率] | [具体失败率] |
| 均匀分布 | 40% | [具体失败率] | [具体失败率] | [具体失败率] |
| 均匀分布 | 50% | [具体失败率] | [具体失败率] | [具体失败率] |
| 高斯分布 | 5% | [具体失败率] | [具体失败率] | [具体失败率] |
| 高斯分布 | 10% | [具体失败率] | [具体失败率] | [具体失败率] |
| 高斯分布 | 20% | [具体失败率] | [具体失败率] | [具体失败率] |
| 高斯分布 | 40% | [具体失败率] | [具体失败率] | [具体失败率] |
| 高斯分布 | 50% | [具体失败率] | [具体失败率] | [具体失败率] |
从表格中可以看出,在不同噪声类型和比例下,三种算法的失败率各有不同。GA 在某些情况下表现出了较好的稳定性。例如,在高斯噪声环境下,GA 在平均距离和 RMSE 方面更具鲁棒性;在均匀分布噪声下,GA 更常能解决旋转问题。
下面是实验结果的 mermaid 流程图,展示整个实验过程:
graph TD;
A[选择 Bunny 点云] --> B[复制并下采样];
B --> C[平移和旋转];
C --> D[引入噪声];
D --> E{噪声类型};
E --> |均匀分布| F1[设置 5%、10%、20%、40%、50% 比例];
E --> |高斯分布| F2[设置 5%、10%、20%、40%、50% 比例];
F1 --> G[500 次随机变换];
F2 --> G;
G --> H[ICP 配准];
G --> I[CPD 配准];
G --> J[GA 配准];
H --> K[计算平均距离和 RMSE];
I --> K;
J --> K;
K --> L{RMSE < 0.3};
L --> |是| M[配准成功];
L --> |否| N[配准失败];
GA 算法的优势与不足
优势
- 物理模型基础 :GA 基于 N 体问题和引力物理模型,为点集配准提供了一种新的视角。这种物理模型使得算法在处理复杂的点集关系时,能够更好地模拟实际情况,从而有可能得到更准确的配准结果。
- 收敛性 :通过引入能量耗散项,GA 能够逐渐收敛到局部最优解。粘性项的存在保证了算法在接近局部最小值时不会出现过大的速度波动,有助于细化解,提高配准的精度。
- 可扩展性 :GA 可以采用多种加速技术,包括 N 体模拟和点集配准领域的方法,以及并行硬件加速。这使得算法在处理大规模点集时具有较好的可扩展性,能够在合理的时间内完成配准任务。
不足
- 计算复杂度 :虽然有多种加速技术可以降低 GA 的计算复杂度,但在未采用加速技术时,其复杂度为 $O(MN)$,对于大规模点集的处理仍然存在一定的挑战。
- 参数敏感性 :GA 包含多个参数,如 $G$、$\varepsilon$、$\eta$ 等,这些参数的选择会影响算法的性能。参数的调整需要一定的经验和实验,否则可能导致算法收敛速度慢或配准结果不准确。
- 局部最优问题 :GA 只能收敛到局部最优解,对于存在多个局部最优的情况,可能无法找到全局最优解。在初始错位角度较大时,算法的失败率会增加。
改进方向与展望
针对 GA 算法的不足,可以从以下几个方面进行改进:
1.
优化参数选择
:可以采用自动参数调整的方法,根据点集的特点和噪声水平,自动选择最优的参数。例如,使用机器学习算法对大量实验数据进行分析,建立参数选择模型。
2.
全局搜索策略
:结合全局搜索算法,如模拟退火算法,来克服 GA 只能找到局部最优解的问题。在算法开始阶段,使用全局搜索算法进行大范围的搜索,找到可能的全局最优区域,然后再使用 GA 进行局部细化。
3.
混合加速技术
:综合使用多种加速技术,进一步降低计算复杂度。例如,将子采样、粗到细策略和并行硬件加速相结合,提高算法的处理速度。
未来,随着计算机硬件性能的不断提升和算法的不断优化,GA 有望在更多领域得到应用,如计算机视觉、机器人导航、医学图像配准等。在这些领域中,点集配准是一个关键的问题,GA 的独特优势可能会为解决这些问题提供新的思路和方法。
总结
本文介绍了一种基于粒子动力学原理的点集配准方法——刚性引力方法(GA)。该方法将点集配准问题转化为能量最小化问题,通过模拟粒子在引力场中的运动来实现配准。在算法设计上,GA 进行了一系列的假设和修改,引入了能量耗散项,保证了算法的收敛性。同时,通过多种加速技术,GA 可以降低计算复杂度,提高处理速度。
在合成数据实验中,GA 的性能介于 ICP 和 CPD 之间,在某些情况下表现出了较好的稳定性和鲁棒性。然而,GA 也存在一些不足之处,如计算复杂度高、参数敏感性和局部最优问题。针对这些问题,可以采取优化参数选择、引入全局搜索策略和混合加速技术等改进措施。
总体而言,GA 是一种有潜力的点集配准方法,为点集配准领域提供了新的研究方向。随着技术的不断发展,相信 GA 会在更多实际应用中发挥重要作用。
超级会员免费看
39

被折叠的 条评论
为什么被折叠?



