Plane Detection in Point Cloud Data
使用RANSAC + MDL
1.1、 Interpreting a Set of Points in a Plane
通过一个简单的例子介绍最小描述长度(MDL)编码的原理:
设平面内n0个点(xi, yi)如图1.1所。这个图表明
n
0
=
14
n_0 = 14
n0=14个点中
n
=
9
n = 9
n=9点大约位于一条直线上,而另一个
n
‾
=
n
0
−
n
=
5
{\overline{n}} = n_0−n = 5
n=n0−n=5个点则不属于这条直线。
图1.2显示了另一种不同的模式,我们不确定图中间的5个点属于一条直线,还是应该将图看作是由14个随机分布的点或者是3条垂直的近乎直线组成的。
我们想要推导描述长度的位,当没有模型,只有离群值,假设的情况下,当数据基本上假设是由点组成,位于一条直线上,允许一些离群值。
- 让坐标的分辨率为(1像素)和在R范围内(如256像素);
- 然后通过 l b ( R / ϵ ) lb(R/\epsilon) lb(R/ϵ)位来描述一个坐标,这里 l b ( ⋅ ) = l o g 2 ( ⋅ ) lb(·)=log2(·) lb(⋅)=log2(⋅);
- 因此,当假设异常值
(
O
)
(O)
(O)时,
n
0
n_0
n0个点的描述长度为:
因此,在256·256像素图像或图1.1中224位的图中没有点的情况下, 2 ⋅ n 0 ⋅ 8 = 16 n 0 2·n_0·8 = 16n_0 2⋅n0⋅8=16n0。
如果我们现在假设n个点位于一条直线上,而另一个
n
‾
=
n
0
−
n
{\overline{n}} = n_0−n
n=n0−n个点是异常值
(
1
L
+
O
)
(1L+O)
(1L+O),我们需要
- 第一项表示用于指定一个点是好还是坏的 n 0 n_0 n0位,
- 第二项是描述坏点的比特数,
- 第三项是描述优点点的比特数,
- 最后一项是描述直线的2个参数,是描述模型复杂度的比特数,是(Rissanen, 1978)的变体。
我们假设好的点随机位于的直线上,也就公式中
n
∗
l
b
(
R
/
ϵ
)
n*lb(R/\epsilon)
n∗lb(R/ϵ),并从这条线得到高斯分布的导数
v
i
v_i
vi,其标准导数为
σ
σ
σ。
其中
当
µ
µ
µ和
σ
2
σ^2
σ2四舍五入取
ϵ
\epsilon
ϵ的倍数,是描述变量x必须的。
在图1.1的例子中,当假设有异常值的直线时,
n
=
9
n = 9
n=9,
n
‾
=
5
\overline{n} = 5
n=5,我们平均需要209,对点集进行编码。它小于224位,因此支持了这个解释。
对于图1.2,我们需要229位>224,假设5个点在一条直线上,这假设显然不成立。
1.2、Interpreting a Set of Points in 3D Space
在本节中,推导三维空间中解译点的描述长度。
给定一组点,我们假设几个相互竞争的假设,即离群点
(
O
)
(O)
(O)、1个平面和离群点
(
1
P
+
O
)
(1P+O)
(1P+O)、2个平面和离群点
(
2
P
+
O
)
(2P+O)
(2P+O)、3个平面和离群点
(
3
P
+
O
)
(3P+O)
(3P+O)等。
设
n
0
n_0
n0个点
(
x
i
,
y
i
,
z
i
)
(x_i, y_i, z_i)
(xi,yi,zi)在三维坐标中给出坐标的分辨率为
ϵ
\epsilon
ϵ,在R范围内。当假设离群值
(
O
)
(O)
(O)时,对
n
0
n_0
n0个点的描述长度为:
其中
l
b
(
R
/
ϵ
)
lb(R/\epsilon)
lb(R/ϵ)位描述一个坐标所必须的
如果我们现在假设一个平面上有n个点,而另一个
n
‾
=
n
0
−
n
{\overline{n}} = n_0−n
n=n0−n个点是离群值,我们需要:
- 第一项表示用于指定一个点是好还是坏的 n 0 n_0 n0位,
- 第二项是描述坏点的比特数
- 第三项是描述平面3个参数的比特数,是描述模型复杂度的比特数
- 假设好的点随机分布在平面上,也就是公式中第四项产生的原因,并且服从高斯分布 N ( µ, Σ ) N(µ,Σ) N(µ,Σ)。
- 括号内是描述服从高斯分布的变量x的必须项
- 其中 x = ( x 1 , ⋅ ⋅ ⋅ , x k ) x = (x_1,···,x_k) x=(x1,⋅⋅⋅,xk),则能算出 µ µ µ和 Σ Σ Σ,四舍五入取 ϵ \epsilon ϵ倍数。
1.3、Plane Detection Algorithm
点云被划分为小的矩形块,以确保在一个块中最多有三个平面。
- ϵ \epsilon ϵ 为每次选取点为局外点的概率
- p t s 2 p l a n e pts2plane pts2plane从三个选定的点计算平面参数
-
d
i
s
t
2
p
l
a
n
e
dist2plane
dist2plane计算点集到给定平面之间的有符号距离
应用RANSAC提取每个块中的平面,MDL原理用于确定每个块中有多少个平面。最终,每个区块有0到3个平面。
进一步,我们可以应用区域增长来合并一定局部范围内的相邻平面。然后提取几何特征来解释人造物体