L1算法分析和实现(3) 概率迭代的具体推导

说明

在由L1-median算法向Bayes算法过渡的时候,概率化的迭代是十分重要的一步。
在L1算法分析和实现(2)中,我们推导了L1算法中的迭代式的由来,因而本章我们就针对Bayes中的概率计算和迭代式进行推导。

定义

为了方便接下来的讨论,我们先进行一些定义:

  1. 整个点云的点的集合为Q=\{q_j\}_{j\in J}q_j代表点云中的第i个点
  2. 对点云进行分块后得到的分块集合为C=\{c_m\}_{m\in M}c_m代表第m个分块,被分到c_m当中的点云被定义为Q_m=\{q^m_j\}_{j\in J^m}
  3. 整个点云的采样点集合为X=\{x_i\}_{i\in I}q_i代表点云中的第i个采样点,其中骨架点(被固定为骨架的采样点)的集合为X^*=\{x_i\}_{i\in I^*},被分类到分块c_m的骨架点集合为X_m^*=\{x^m_i\}_{i\in I^*_m}
  4. \theta_m代表c_m的相关参数集合

P.S. 骨架点分类方法如下: 首先计算每个c_m的中心点p_m,然后将骨架点归类到最近的中心点所在的类中

概率计算

在Bayes的概率化迭代过程中,我们需要一种评估骨架合理概率的方法,于是我们基于高斯分布假设,提出如下算法:

对于每块分块c_m

计算Q_m内的每个点q^m_jX_m^*中最近的骨架点x^m_i的距离||q^m_j-x^m_i||

计算分块内的距离均值: \mu_{m}=\frac{\sum_{i \in I_{m}^{*}}\left\|q^m_j-x^m_i\right\|}{\left|I_{m}^{*}\right|}

计算分块内的距离方差: \sigma_{m}=\sqrt{\frac{\sum_{i \in I_{m}^{*}}\left(\left\|q^m_j-x^m_i\right\|-\mu_{m}\right)^{2}}{\left|I_{m}^{*}\right|}}

计算每个距离 ||q^m_j-x^m_i||在一维高斯分布(正态分布)中的概率:

P(||q^m_j-x^m_i||)=\frac{1}{\sqrt{2 \pi} \sigma_{m}} e^{-\frac{(||q^m_j-x^m_i||-\mu_{m})^{2}}{2 {\sigma_m}^2}}

最后计算各个距离的概率均值,得到第m个分块的骨架概率:

P(X|\theta_m)=\frac{\sum_{j\in J^m}P(||q^m_j-x^m_i||)}{|J^m|}

整个点云的骨架合理概率为各个分块的加权平均:

P(X|\Omega)=\frac{\sum_{m\in M}|Q_m|P(X|\theta_m)}{|Q|}, \Omega=\{\theta_m\}_{m\in M}

概率化迭代

L1-median使用的迭代式如下:
x_{i}^{k+1}=\frac{\sum_{j \in J} q_{j} \alpha_{i j}^{k}}{\sum_{j \in J} \alpha_{i j}^{k}}+\mu \sigma_{i}^{k} \frac{\sum_{i^{\prime} \in I \backslash\{i\}}\left(x_{i}^{k}-x_{i^{\prime}}^{k}\right) \beta_{i i^{\prime}}^{k}} {\sum_{i^{\prime} \in I \backslash\{i\}} \beta_{i i^{\prime}}^{k}} \\ \alpha_{i j}=\frac{\theta\left(\left\|x_{i}-q_{j}\right\|\right)} {\left\|x_{i}-q_{j}\right\|},\: \beta _{ii^,}=\frac {\theta (||x_i-x_{i^,}||)} {||x_i-x_{i^,}||^3} \tag {1}
对于点q_{j},将它所在的分块c_m的骨架合理概率P(X|\theta_m)设为\delta_j

在确定了骨架合理概率的计算方法之后,我们对L1中的迭代式进行了一些改动:
x_{i}^{k+1}=\frac{\sum_{j \in J} q_{j} \delta_j\alpha_{i j}^{k}}{\sum_{j \in J} \delta_j\alpha_{i j}^{k}}+\mu (1-P(X|\Omega))\sigma_{i}^{k} \frac{\sum_{i^{\prime} \in I \backslash\{i\}}\left(x_{i}^{k}-x_{i^{\prime}}^{k}\right) \beta_{i i^{\prime}}^{k}} {\sum_{i^{\prime} \in I \backslash\{i\}} \beta_{i i^{\prime}}^{k}} \tag {2}

对于平均项添加了概率因子\delta_j之后,相当于neighborhood size内的局部L1中值迭代(通过\alpha_{i j}^{k}中的权重函数实现)的基础上,添加了不同分块的概率化控制。使得合理性较低的分块内的点具有更低的影响力,进而使采样点更倾向于停留在分布更合理的位置,减少了点云复杂形状造成的迭代中的“抖动”现象,从而实现迭代过程的加速。

对于排斥项添加了概率系数(1-P(X|\Omega))后,迭代过程的排斥作用将会随着点云骨架合理性提升而不断降低,伴随着采样点平均项向“合理”区域的靠拢,同样减少了点云上采样点迭代的抖动,实现了迭代过程的加速。

代码实现

[to-do]

总结

这似乎算得上很前沿的研究了。。。写文章发出来会不会被人抄去发论文(害怕.jpg)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。