图像尺度空间-SIFT
1.尺度空间的获取通常使用高斯模糊来实现
L ( x , y , σ ) = G ( x , y , σ ) ∗ I ( x , y ) L(x,y,\sigma)=G(x,y,\sigma)*I(x,y) L(x,y,σ)=G(x,y,σ)∗I(x,y)
G ( x , y , σ ) = 1 2 π σ 2 e x 2 + y 2 2 σ 2 G(x,y,\sigma)=\frac{1}{2\pi \sigma ^{2} } e ^{\frac{x^2+y^2}{2\sigma ^2}} G(x,y,σ)=2πσ21e2σ2x2+y2
不同sigma的高斯函数决定了对图像的平滑程度,越大的sigma值对应的图像越模糊。
2.多分辨率金字塔
3.高斯差分金字塔(DOG)
D ( x , y , σ ) = [ G ( x , y , k σ ) ∗ I ( x , y ) − G ( x , y , σ ) ∗ I ( x , y ) ] = L ( x , y , k σ ) − L ( x , y , σ ) D(x,y,\sigma)=[G(x,y,k\sigma)*I(x,y)-G(x,y,\sigma)*I(x,y)]=L(x,y,k\sigma)-L(x,y,\sigma) D(x,y,σ)=[G(x,y,kσ)∗I(x,y)−G(x,y,σ)∗I(x,y)]=L(x,y,kσ)−L(x,y,σ)
4.DoG空间极值检测
为了寻找尺度空间的极值点,每个像素点要和其图像域(同一尺度空间)和尺度域(相邻的尺度空间)的所有相邻点进行比较,当其大于(或者小于)所有相邻点时,该点就是极值点。
5.关键点的精确定位
候选关键点是DOG空间的局部极值点,而且这些极值点均为离散的点,精确定位的一种方法是,对尺度空间DoG函数进行曲线拟合,计算其极值点。
6.消除边界响应
Hessian矩阵。
令
α
=
λ
m
a
x
为
最
大
的
特
征
值
,
β
=
λ
m
i
n
为
最
小
的
特
征
值
令\alpha = \lambda max 为最大的特征值, \beta = \lambda min 为最小的特征值
令α=λmax为最大的特征值,β=λmin为最小的特征值
论文中的
γ
=
10
\gamma = 10
γ=10 假设
α
β
>
10
的
特
征
点
将
被
删
除
\frac{\alpha}{\beta} > 10的特征点将被删除
βα>10的特征点将被删除
7.特征点的主方向
每 个 点 L ( x , y ) 的 梯 度 的 模 m ( x , y ) 以 及 方 向 θ ( x , y ) 每个点 L(x,y) 的梯度的模m(x,y)以及方向\theta(x,y) 每个点L(x,y)的梯度的模m(x,y)以及方向θ(x,y)
m ( x , y ) = [ L ( x + 1 , y ) − L ( x − 1 , y ) ] 2 + L ( x , y + 1 ) − L ( x , y − 1 ) ] 2 m(x,y)=\sqrt{[L(x+1,y)-L(x-1,y)]^2 + L(x,y+1)-L(x,y-1)]^2} m(x,y)=[L(x+1,y)−L(x−1,y)]2+L(x,y+1)−L(x,y−1)]2
θ ( x , y ) = a r c t a n L ( x , y + 1 ) − L ( x , y − 1 ) L ( x + 1 , y ) − L ( x − 1 , y ) \theta (x,y) = arctan \frac{L(x,y+1)-L(x,y-1)}{L(x+1,y)-L(x-1,y)} θ(x,y)=arctanL(x+1,y)−L(x−1,y)L(x,y+1)−L(x,y−1)
每个特征点可以得到三个信息 ( x , y , σ , θ ) (x,y,\sigma, \theta) (x,y,σ,θ) 即位置、尺度和方向。具有多个方向的关键点可以被复制成多份,然后将方向值分别赋给复制后的特征点,一个特征点就产生了多个坐标、尺度相等,但是方向不同的特征点。
8.生成特征描述
在完成关键点的梯度计算后,使用直方图统计领域内像素的梯度和方向
为了保证特征矢量的旋转不变性,要以特征点为中心,在附近领域内将坐标轴旋转theta角度,即将坐标轴旋转为特征的主方向
旋转之后的主方向为中心取8x8的窗口,求每个像素的梯度幅值和方向。箭头方向代表梯度方向,长度代表梯度幅值,然后利用高斯窗口对其进行加权运算,最后在每个4x4的小块上绘制8个方向的梯度直方图,计算每个梯度方向的累加值,即可形成一个种子点,即每个特征由4个种子点组成,每个种子点有8个方向的向量信息。