Robust Ellipse Detection With Gaussian Mixture Models.pdf
Robust Ellipse Fitting Using Hierarchical.pdf

前言

这次看的论文是《Robust Ellipse Fitting Using Hierarchical Gaussian Mixture Models》,讲述的是如何用多层级高斯混合模型去拟合椭圆。

目标

从一些带噪声的数据中检测出椭圆形状。
untitled.svguntitled2.svg

Robust Ellipse Detection With GMM

这一部分我们介绍在原论文《Robust Ellipse Detection With GMM》中,作者是如何用GMM去进行椭圆拟合的。

数据的原始分布

对于给定的一些观测数据点 椭圆检测 - 图3,作者假设数据的真实分布为GMM:
椭圆检测 - 图4
其中 h 为 bandwidth,用来控制噪声方差的大小。 :::danger 📌 改进
作者这里设置每个点的权重都是相等的,但我认为可以改进一下,比如用点的密度作为权重 :::

椭圆分布

首先,确定一个椭圆需要以下5个参数:

  • 半长轴 椭圆检测 - 图5
  • 半短轴 椭圆检测 - 图6
  • 中心坐标 椭圆检测 - 图7#card=math&code=%28x_0%2Cy_0%29)
  • 旋转角 椭圆检测 - 图8

假设我们已经得到了这5个参数 椭圆检测 - 图9 ,我们就能在这个假定的椭圆上进行采样。
如果我们要采集 椭圆检测 - 图10 个点,那么我们从椭圆中心每隔 椭圆检测 - 图11 角度就取一个点,就像下面这样:
image.png
采样点的坐标为:
椭圆检测 - 图13
那么我们可以假设椭圆的分布为高斯混合分布:
椭圆检测 - 图14
其中,均值 椭圆检测 - 图15 和协方差矩阵 椭圆检测 - 图16 定义如下:
椭圆检测 - 图17
其中 椭圆检测 - 图18椭圆检测 - 图19椭圆检测 - 图20 分别代表椭圆在该点处的单位切向量单位法向量
椭圆检测 - 图21
椭圆检测 - 图22
椭圆检测 - 图23 是由 bandwidth 和 椭圆检测 - 图24 组成的对角矩阵:
椭圆检测 - 图25 :::info 这里非常巧妙,h 刚好对应 椭圆检测 - 图26,控制法线方向,也就是对误差的容忍度。
椭圆检测 - 图27 对应 椭圆检测 - 图28,控制相邻两个点之间的距离。
::: 椭圆检测 - 图29 为权重参数。
image.png

目标函数

作者使用 L2 范数来衡量两个分布之间的差异:
椭圆检测 - 图31
将范数展开:
椭圆检测 - 图32
注意,这里作者自己定义了两个高斯分布的内积:
椭圆检测 - 图33 :::danger 📌 疑惑
我很奇怪为什么作者要这样定义内积,说实话有点突兀,看不出来motivation是怎么来的 ::: 由于 椭圆检测 - 图34是固定的,所以只需考虑 椭圆检测 - 图35椭圆检测 - 图36 即可
椭圆检测 - 图37
椭圆检测 - 图38
最终只需要优化 椭圆检测 - 图39 使得目标函数最小即可:
椭圆检测 - 图40 :::danger 📌 想法
衡量两个分布之间的差异,很自然的想法是用 KL散度
椭圆检测 - 图41
其中 d 是维度,考虑对称性,我们可以用 椭圆检测 - 图42来衡量:
椭圆检测 - 图43
用KL来衡量高斯分布之间的差异是很方便的,但这里需要衡量两个高斯混合分布的差异,是非常难计算的。
并且也不能直接作为内积来定义。
所以,能不能根据KL散度来定义一个内积呢?
或者说,有什么近似方法可以计算GMM的差异呢? :::

:::danger 📌 **疑惑
这里既然已经定义好了GMM,为什么不直接用EM算法训练高斯混合模型呢?
因为GMM的参数 椭圆检测 - 图44 都是由 椭圆检测 - 图45 控制的,
因此光是计算 a 的偏导 椭圆检测 - 图46就已经相当复杂了,即使用EM算法也很难求解。 :::


这是更新线

问题解答

疑惑1

此处内积的定义就是单纯的积分,单开了一篇文章讲述
高斯分布的内积推导

想法2

后来看了论文《Robust Point Set Registration Using Gaussian Mixture Models》,里面提到 L2 距离和 KL 散度都是 density power divergence 的一种特例。
image.png