赞
踩
本篇将介绍几种特征提取算法,特征提取算法的本质是从数据中找出具有特定特征或者信息的部分,并将其表示为更简单、更易于处理的形式。这里将介绍图像处理中的Harris,SUSAN和SIFT(Scale-Invariant Feature Transform)算法,点云处理中的ISS(Intrinsic Shape Signatures)
特征点是在图像处理和点云中具有特定特性的点。1)在图像处理中,特征点通常是指图像中具有显著变化或者重要信息的位置,比如角点、边缘点、纹理点等。这些点通常被用来进行图像配准、目标跟踪、物体识别等任务,因为它们能够提供重要的位置和结构信息。2)在点云中,特征点指的是具有显著几何特性的点,比如曲率变化明显的点、表面法向变化明显的点、高度变化大的点等。这些特征点在点云处理中非常重要,可以用来进行点云配准、目标检测、三维重建等任务,因为它们能够提供点云的关键几何信息。
Harris角点检测算法是一种经典的图像特征检测算法,用于在图像中检测角点,即具有显著变化的位置,暂时可以理解为角点(Corner点)。一张图片中的点,在某个尺度上进行划分,可以划分为"flat"点,“edge"点和"corner"点,这三种点的直观理解参见下图:
直观上来理解,给你一张图,让你来标出你认为的几个"独特"点,我想大概率你会标出与周围邻域内像素点的“颜色"或者"形状"反差较大的点吧。这里用到的“颜色“和“形状“就是上文说的尺度。
在Harris算法中,也是这种思想,记像素点
(
x
,
y
)
(x,y)
(x,y)处的特征(多使用颜色值)为
I
(
x
,
y
)
I(x,y)
I(x,y)。选用移动值
(
δ
x
,
δ
y
)
(\delta_x,\delta_y)
(δx,δy)计算像素点
(
x
,
y
)
(x,y)
(x,y)处的颜色值变化为
I
(
x
,
y
)
−
I
(
x
+
δ
x
,
y
+
δ
y
)
I(x,y)-I(x + \delta_x,y+\delta_y)
I(x,y)−I(x+δx,y+δy),也可以理解为
(
x
,
y
)
(x,y)
(x,y)处的梯度,但因像素点位置空间是离散的,因此采用差分的方式表达变化率。 设想一下,给你一张1200*900分辨率的图片,你能比较出一个像素点与周围像素点的区别?比较单个像素点,不仅耗时而且对噪声点也不够鲁棒,所以Harris算法中,是选用的一个"path”,也就是一小片区域
Ω
\Omega
Ω,用这个区域在移动前后的颜色值变化记为:
E
(
u
,
v
)
=
∑
x
,
y
∈
Ω
w
(
x
,
y
)
[
I
(
x
+
u
.
y
+
v
)
−
I
(
x
,
y
)
]
2
E(u,v) = \sum_{x,y\in\Omega}w(x,y)[I(x+u.y+v)-I(x,y)]^2
E(u,v)=x,y∈Ω∑w(x,y)[I(x+u.y+v)−I(x,y)]2其中,
(
u
,
v
)
(u,v)
(u,v)是offset,代表区域
Ω
\Omega
Ω的移动,就是求梯度时的增量。
w
(
x
,
y
)
w(x,y)
w(x,y)是权重,代表区域
Ω
\Omega
Ω内像素点的梯度给区域中心点的贡献度,多采用下图右侧高斯分布的形式。
到这里,就已经完成了问题的定义,给定一张图片,Harris算法就是通过每个像素位置 ( x , y ) (x,y) (x,y)的 E ( u , v ) E(u,v) E(u,v)来判断该位置是否为特征点,是什么类型的特征点。
承接上文,
E
(
u
,
v
)
E(u,v)
E(u,v)可以作如下推导:
E
(
u
,
v
)
=
∑
x
,
y
∈
Ω
(
I
(
x
+
u
,
y
+
v
)
−
I
(
x
,
y
)
)
2
E
(
u
,
v
)
=
∑
x
,
y
∈
Ω
(
I
(
x
,
y
)
+
u
I
x
(
x
,
y
)
+
v
I
y
(
x
,
y
)
−
I
(
x
,
y
)
)
2
E
(
u
,
v
)
=
∑
x
,
y
∈
Ω
u
2
I
x
2
+
v
2
I
y
2
+
2
u
v
I
x
I
y
E
(
u
,
v
)
=
[
u
v
]
(
∑
x
,
y
∈
Ω
[
I
x
2
I
x
I
y
I
x
I
y
I
y
2
]
)
[
u
v
]
,
M
=
∑
x
,
y
∈
Ω
[
I
x
2
I
x
I
y
I
x
I
y
I
y
2
]
E
(
u
,
v
)
=
[
u
v
]
M
[
u
v
]
可见,已经将
E
(
u
,
v
)
E(u,v)
E(u,v)转化为了谱定理的形式,也就是说这个区域
Ω
\Omega
Ω移动前后的特征变化可以用区域内所有像素点的颜色梯度
I
x
,
I
y
I_x,I_y
Ix,Iy的分布来表示,见下图
记矩阵
M
M
M的特征值为
λ
1
,
λ
2
\lambda_1,\lambda_2
λ1,λ2。“flat“点均为0,"edge"点其中一个为零,"corner"两者均不为零。因此Harris的本质就是求某点周围邻域内所有点的颜色颜色梯度构成的协方差均值的特征值。
承接上文,得到矩阵
M
M
M的特征值以后,特征值的阈值怎么设置?,如果有多个特征值,怎么来判断这个点是否维特征值?1988年,1994年1998年,三位作者给出了特征值Response的三种不同计算方法,使用Pesponse值来代表所有特征值,通过Response值的阈值直接判断是否为特征点。
在使用Harris算法的时候,如果Response阈值设置的比较小,就会造成特征点太多的问题,这个时候可以采用NMS算法的思想进行去重。1)首先找到R值最大的特征点,删除周围邻域r内的特征点。然后重复步骤1)。结果实例如下:
阶段 | 结果 |
---|---|
原始图片 | |
Harris处理 | |
NMS处理 |
Harris3D算法是Harris2D的推广,也就是Harris算法从图像处理到点云处理的转化。承接上文,Harris算法应用在3D点云中需要明确几个问题:
针对1,与2D图像中的像素点都是离散的,只不过点云是稀疏的,并不是每个位置都有点。
针对2,在2D图片中,通过领域来确定某个点的邻域空间
Ω
\Omega
Ω。
针对3,在2D图片中,通过增量
(
u
,
v
)
(u,v)
(u,v)来完成patch的移动,求得像素点的梯度
I
x
,
I
y
I_x, I_y
Ix,Iy。在3D点云中,
I
x
,
I
y
,
I
z
I_x,I_y,I_z
Ix,Iy,Iz应该怎么求解?
记点
P
(
x
,
y
,
z
)
P(x,y,z)
P(x,y,z)周围的小邻域为
Ω
\Omega
Ω, 点
P
P
P的激光反射强度为
I
(
x
,
y
,
z
)
I(x,y,z)
I(x,y,z),增量记为
(
u
,
v
,
w
)
(u,v,w)
(u,v,w),则增量前后区域
Ω
\Omega
Ω的反射强度变化为:
E
(
u
,
v
,
w
)
=
∑
u
,
v
,
w
∈
Ω
[
I
(
x
+
u
,
y
+
v
,
z
+
w
)
−
I
(
x
,
y
,
z
)
]
2
E(u,v,w) = \sum_{u,v,w\in\Omega}[I(x+u,y+v,z+w)-I(x,y,z)]^2
E(u,v,w)=u,v,w∈Ω∑[I(x+u,y+v,z+w)−I(x,y,z)]2
进一步推导得,
E
(
u
,
v
,
w
)
=
∑
x
,
y
,
z
∈
Ω
[
u
I
x
(
x
,
y
,
z
)
+
v
I
y
(
x
,
y
,
z
)
+
w
I
z
(
x
,
y
,
z
)
]
2
=
[
u
v
w
]
(
∑
x
,
y
,
z
∈
Ω
[
I
x
2
I
x
I
y
I
x
I
y
I
x
I
y
I
y
2
I
y
I
z
I
x
I
z
I
y
I
z
I
z
2
]
)
[
u
v
w
]
,
M
=
∑
x
,
y
∈
Ω
[
I
x
2
I
x
I
y
I
x
I
y
I
x
I
y
I
y
2
I
y
I
z
I
x
I
z
I
y
I
z
I
z
2
]
=
[
u
v
w
]
M
[
u
v
w
]
其中,
I
x
,
I
y
,
I
z
I_x,I_y,I_z
Ix,Iy,Iz就为某位置在对应尺度上三个方向的梯度,图像中尺度可以选择颜色空间,但是点云中即可以使用反射强度尺度,也可以选择空间位置尺度。使用空间位置的尺度的话,Harris3D求出的特征点就是几何空间的特征点。下边将分别介绍以反射强度为尺度和以空间位置尺度的Harris 3D算法。称为Harris3D with Intensity和Harris3D without Intensity。
结合harris2d算法的理解,重点还在求出区域 Ω \Omega Ω内所有点在三个方向上的反射强度梯度构成的协方差矩阵M的特征值,图像中 I x , I y I_x,I_y Ix,Iy可以通过差分的方式求解,在3D点云中,邻域中心点P还在反射强度尺度上的 I x , I y 和 I z I_x,I_y和I_z Ix,Iy和Iz需要怎么求出来;因为点云的稀疏特性,不能单纯使用增量完成差分求解。
综上,就可以得到Harris 3D with intensity算法中,点p的反射强度梯度 [ I x , I y , I z ] [I_x,I_y,I_z] [Ix,Iy,Iz]的求解,然后进一步求出反射强度梯度构成的协方差矩阵的特征值,就能算出点p是否为特征点(在反射强度空间)。
不考虑反射强度的前提下,3D点云的harris特征点,可以直接通过点云的法向量
(
n
x
,
n
y
,
n
z
)
(n_x,n_y,n_z)
(nx,ny,nz)求解。构建邻域范围内点的法向量的协方差矩阵,计算协方差矩阵的特征值即可。
Harris3D without intensity和Harris3D with intensity两种尺度下,判读点是否特征点的策略如下:
如果,需要综合考虑反射强度和空间位置来进行harris特征点的判断,就需要一个包含发射强度梯度和法向量的协方差矩阵,并且Response值的判读也更为复杂,请看下图:
Input
Covariance Matrix
Criteria
Intuition
Harris Image
Image
Intensity gradient
λ
2
is small
Intensity corners
Harris 3D
PC with Intensity
Intensity gradient
λ
2
is small
Intensity corners in local surface
Harris 3D
PC
Surface normals
λ
3
is small
Corners in 3D space
Harris 6D
PC with Intensity
Intensity gradient
+
surface normals
λ
4
is small
Corners in either 3D space /
local surface intensity
Harris3D算法是从2D图片的hsrris算法延伸而来的,ISS算法是3D点云原生特征点提取算法,思路与Harris 3D without intensity的思路类似。只不过ISS算法中的空间位置协方差矩阵使用了距离权重,Harris3D没有使用距离权重。
写不动了
Input
Covariance Matrix
Criteria
Intuition
Harris Image
Image
Intensity gradient
λ
2
is small
Intensity corners
Harris 3D
PC with Intensity
Intensity gradient
λ
2
is small
Intensity corners in local surface
Harris 3D
PC
Surface normals
λ
3
is small
Corners in 3D space
Harris 6D
PC with Intensity
Intensity gradient +
surface normals
λ
4
is small
Corners in either 3D space /
local surface intensity
ISS
PC
Weight point
coordinates
λ
i
2
λ
i
1
<
γ
21
,
λ
i
3
λ
i
2
<
γ
32
Point distribution is different in
3 dimensions
在图片和点云中,特征点可以应用在二维图像驱动三维物体,提取视频中人脸的特征点对应在三维空间中的脸上,就可以实现动画人表情的变换。两者需要二维到三维的转换关系。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。