一、特征点检测
(一)特征点定义
图像中具有独特局部性质的点。
(二)特征点性质
具有局部性(对遮挡和混乱场景鲁棒)、数量足够多(一幅图像可产生成百上千个)、独特性(能与其他图像中大多数点区分开)、高效性(可实时检测和比较)、可重复性(图像旋转平移等操作后仍能被检测到)。
(三)角点检测
- 数学表示
在以角点 ( x 0 , y 0 ) (x_{0}, y_{0}) (x0,y0)为中心的局部窗口 W W W内,窗口经 ( u , v ) (u, v) (u,v)微小偏移后,亮度变化量用SSD表示为:
E ( u , v ) = ∑ ( x , y ) ∈ W ( I ( x + u , y + v ) − I ( x , y ) ) 2 E(u, v)=\sum_{(x, y) \in W}(I(x + u, y + v) - I(x, y))^{2} E(u,v)=(x,y)∈W∑(I(x+u,y+v)−I(x,y))2
对 I ( x + u , y + v ) I(x + u, y + v) I(x+u,y+v)进行一阶泰勒展开 I ( x + u , y + v ) ≈ I ( x , y ) + [ I x I y ] [ u v ] I(x + u, y + v) \approx I(x, y)+[I_{x}\ I_{y}]\left[\begin{array}{l}u\\v\end{array}\right] I(x+u,y+v)≈I(x,y)+[Ix Iy][uv] ( I x (I_{x} (Ix、 I y I_{y} Iy为图像梯度,可由Sobel算子计算),代入可得:
E ( u , v ) ≈ ∑ ( x , y ) ∈ W ( I x ( x , y ) u + I y ( x , y ) v ) 2 E(u, v)\approx\sum_{(x, y) \in W}(I_{x}(x, y)u + I_{y}(x, y)v)^{2} E(u,v)≈(x,y)∈W∑(Ix(x,y)u+Iy(x,y)v)2
进一步推导为:
E ( u , v ) ≈ u 2 ∑ x , y I x 2 + 2 u v ∑ x , y I x I y + v 2 ∑ x , y I y 2 = [ u v ] [ ∑ x , y I x 2 ∑ x , y I x I y ∑ x , y I x I y ∑ x , y I y 2 ] [ u v ] E(u, v)\approx u^{2}\sum_{x, y}I_{x}^{2}+2uv\sum_{x, y}I_{x}I_{y}+v^{2}\sum_{x, y}I_{y}^{2}=\left[\begin{array}{ll}u & v\end{array}\right]\left[\begin{array}{cc}\sum_{x, y}I_{x}^{2} & \sum_{x, y}I_{x}I_{y}\\\sum_{x, y}I_{x}I_{y} & \sum_{x, y}I_{y}^{2}\end{array}\right]\left[\begin{array}{l}u\\v\end{array}\right] E(u,v)≈u2x,y∑Ix2+2uvx,y∑IxIy+v2x,y∑Iy2=[uv][∑x,yIx2∑x,yIxIy∑x,yIxIy∑x,yIy2][uv] - 对该二阶矩矩阵的理解
二阶矩矩阵
H = [ ∑ x , y I x 2 ∑ x , y I x I y ∑ x , y I x I y ∑ x , y I y 2 ] H=\left[\begin{array}{cc}\sum_{x, y}I_{x}^{2} & \sum_{x, y}I_{x}I_{y}\\\sum_{x, y}I_{x}I_{y} & \sum_{x, y}I_{y}^{2}\end{array}\right] H=[∑x,yIx2∑x,yIxIy∑x,yIxIy∑x,yIy2]
当 I x = 0 I_{x}=0 Ix=0 时, H = [ 0 0 0 C ] H=\begin{bmatrix}0 & 0\\0 & C\end{bmatrix} H=[000C],代表水平方向边缘;当 I y = 0 I_{y}=0 Iy=0 时, H = [ A 0 0 0 ] H=\begin{bmatrix}A & 0\\0 & 0\end{bmatrix} H=[A000]。其特征值 λ 1 \lambda_{1} λ1、 λ 2 \lambda_{2} λ2 决定椭圆长短轴长度,特征向量决定椭圆角度。通过特征值可对图像中的点分类:若 λ 1 \lambda_{1} λ1 和 λ 2 \lambda_{2} λ2 都较小且相差不大,则为平滑区域;若 λ 2 ≫ λ 1 \lambda_{2} \gg \lambda_{1} λ2≫λ1 或 λ 1 ≫ λ 2 \lambda_{1} \gg \lambda_{2} λ1≫λ2,则为边;若 λ 1 \lambda_{1} λ1 和 λ 2 \lambda_{2} λ2 都较大且相差不大,则为角点。
- 哈里斯角点检测及其流程
(1)哈里斯角点检测器
Harris角点响应函数
R = det ( H ) − k ( trace ( H ) ) 2 R = \det(H) - k(\text{trace}(H))^{2} R=det(H)−k(trace(H))2
其中 trace ( H ) = h 11 + h 22 = λ 1 + λ 2 \text{trace}(H)=h_{11}+h_{22}=\lambda_{1}+\lambda_{2} trace(H)=h11+h22=λ1+λ2, k ∈ [ 0.04 , 0.06 ] k \in[0.04,0.06] k∈[0.04,0.06]。实际计算 H H H时可根据与中心的距离进行加权 ,
H = ∑ ( x , y ) ∈ W w x , y [ I x 2 I x I y I x I y I y 2 ] H=\sum_{(x, y) \in W}w_{x, y}\left[\begin{array}{cc}I_{x}^{2} & I_{x}I_{y}\\I_{x}I_{y} & I_{y}^{2}\end{array}\right] H=(x,y)∈W∑wx,y[Ix2IxIyIxIyIy2]
根据 R R R 值对图像中的点分类, R > 0 R>0 R>0 为角点, R < 0 R<0 R<0 为边, ∣ R ∣ \vert R \vert ∣R∣ 很小为平坦区域。
(2)流程总结
先计算图像梯度(如 Sobel 算子);再根据图像梯度为每个点计算二阶矩矩阵特征值;然后寻找具有较大响应的点( λ min \lambda_{\min} λmin 或者 R R R 大于阈值);最后选择 λ min \lambda_{\min} λmin 或者 R R R 是局部最大值的点作为关键点(非最大值抑制)。 - 角点检测的不变性
具有旋转不变性、亮度值偏移变换不变性,但空间尺度不变性有待探讨。
(四)尺度不变特征变换
- 基本思想
用突出区域滤波器(blob filter)对图像在多个尺度上卷积,在尺度空间寻找滤波器响应的极值。blob是指图像等信号内出现"亮度突变"的区域。 - 高斯拉普拉斯
将拉普拉斯算子作用到高斯平滑过的图像检测Blob,公式为:
∇ 2 g = ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 \nabla^{2}g=\frac{\partial^{2}g}{\partial x^{2}}+\frac{\partial^{2}g}{\partial y^{2}} ∇2g=∂x2∂2g+∂y2∂2g
在信号中blob尺度和LoG中高斯平滑尺度接近时,会在blob中心产生极大值响应,但拉普拉斯算子的绝对响应值会随高斯平滑尺度增加而减小,通过尺度归一化 ( × σ 2 ) (\times\sigma^{2}) (×σ2)解决,二维图像信号的尺度归一化公式为:
∇ n o r m 2 g = σ 2 ( ∂ 2 g ∂ x 2 + ∂ 2 g ∂ y 2 ) ∝ ( x 2 + y 2 − 2 σ 2 ) e − ( x 2 + y 2 ) / 2 σ 2 \nabla_{norm }^{2} g=\sigma^{2}\left(\frac{\partial^{2} g}{\partial x^{2}}+\frac{\partial^{2} g}{\partial y^{2}}\right) \propto\left(x^{2}+y^{2}-2 \sigma^{2}\right) e^{-\left(x^{2}+y^{2}\right) / 2 \sigma^{2}} ∇norm2g=σ2(∂x2∂2g+∂y2∂2g)∝(x2+y2−2σ2)e−(x2+y2)/2σ2 - 高斯差分算子
LoG计算二阶导数复杂度高,可用一阶高斯差分近似。高斯拉普拉斯
L = σ 2 ( G x x ( x , y , σ ) + G y y ( x , y , σ ) ) L=\sigma^{2}\left(G_{xx}(x, y, \sigma)+G_{yy}(x, y, \sigma)\right) L=σ2(Gxx(x,y,σ)+Gyy(x,y,σ))
高斯差分
D o G = G ( x , y , k σ ) − G ( x , y , σ ) DoG = G(x, y, k\sigma)-G(x, y, \sigma) DoG=G(x,y,kσ)−G(x,y,σ)
高斯模糊可去噪,高斯差分操作类似带通滤波,能突显图像中的角、边和其他细节。
二、特征点描述子
(一)好的特征描述子的性质
具有鲁棒性(对多种几何变换和光照变换有一定不变性)、独特性(能与其他区域很好区分)、紧致性(用低维向量描述)、计算高效性(计算和比较速度快)。
(二)SIFT描述子
- 定义
根据尺度空间中局部极值所在的位置和尺度,以及其所在邻域范围内的梯度计算得到的向量。 - 基本计算流程
在邻域计算36bin的梯度方向直方图,选择最大计数桶对应的方向作为描述子主方向;根据主方向、兴趣点尺度和位置确定16×16邻域并计算梯度,将梯度图划分成4×4个小块;对每个小块计算8bin的梯度方向直方图;把每个小块的梯度方向直方图拼接起来,得到128维的特征向量。 - 两幅图像中SIFT兴趣点匹配
(1)定义
通过比较两幅图像中兴趣点的SIFT描述子来确定匹配关系。
(2)原则
对于图1中的兴趣点(q),在图2中找到与其描述子欧式距离最近的两个兴趣点(p1)和(p2);验证最近距离是否小于指定阈值(T),即:
d ( q , p 1 ) < T d\left(q, p_{1}\right)<T d(q,p1)<T
验证最近距离是否显著小于次近距离,即:
d ( q , p 1 ) d ( q , p 2 ) < 1 2 \frac{d\left(q, p_{1}\right)}{d\left(q, p_{2}\right)}<\frac{1}{2} d(q,p2)d(q,p1)<21
满足条件则互相匹配。
(三)HOG特征
- 定义
通过计算梯度的统计信息,较好地反映目标的形状信息。 - 基本计算流程
确定检测窗口(如行人常用 64 × 128 64 \times 128 64×128 的窗口);进行 Gamma 和颜色归一化(如对数归一化 log ( p ) \log(p) log(p)、平方根归一化 p \sqrt{p} p 、方差归一化 p ′ = p − μ σ p'=\frac{p - \mu}{\sigma} p′=σp−μ);计算梯度;将图像划分为若干个 8 × 8 8 \times 8 8×8 的元胞,以其为单位计算梯度直方图;以 2 × 2 2 \times 2 2×2 cell 的 block 为单位进行归一化,每个 block 之间有重叠;最终得到 7 × 15 × 4 × 9 = 3780 7 \times 15 \times 4 \times 9 = 3780 7×15×4×9=3780 维的 HOG 特征描述子。
(四)二进制描述子
- 定义
生成可高效计算且易于比较的二进制串。 - 基本计算流程
为兴趣点选择一个邻域图像块;在图像块内选择一系列像素点对;对于每一对像素点,比较它们之间的亮度 :
b = { 1 , if I ( s 1 ) < I ( s 2 ) 0 , otherwise b=\begin{cases}1, & \text{if } I(s_{1})<I(s_{2})\\0, & \text{otherwise}\end{cases} b={1,0,if I(s1)<I(s2)otherwise
把所有比较值拼接起来得到一个二进制串;通过汉明距离
d H a m m i n g ( B 1 , B 2 ) = ∑ ( xor ( B 1 , B 2 ) ) d_{Hamming }(B_{1}, B_{2})=\sum(\text{xor}(B_{1}, B_{2})) dHamming(B1,B2)=∑(xor(B1,B2))
来快速比较。 - 比较两个二进制描述子的注意事项
邻域内像素对要用同样的选择方式;像素对的选择顺序也要保持一致;不同二进制描述子主要区别在于选择像素对的策略。 - 实例
- BRIEF 描述子 :2010 年提出,是 256bit 二进制串,提供了 5 种不同的采样策略,多数情况下前四种采样策略表现较好。假设特征点的邻域块大小为 S × S S \times S S×S,在其中选择 n n n 个点对 ( p , q ) (p, q) (p,q),包括在图像块内平均采样; p p p 和 q q q 都符合 ( 0 , 1 / 25 S 2 ) ( 0 , 1 / 25 S 2 ) (0, 1/25 S^{2})(0, 1/25 S^{2}) (0,1/25S2)(0,1/25S2) 的高斯分布; p p p 符合 ( 0 , 1 / 25 S 2 ) ( 0 , 1 / 25 S 2 ) (0, 1/25 S^{2})(0, 1/25 S^{2}) (0,1/25S2)(0,1/25S2) 的高斯分布, q q q 符合 ( 0 , 1 / 100 S 2 ) ( 0 , 1 / 100 S 2 ) (0, 1/100 S^{2})(0, 1/100 S^{2}) (0,1/100S2)(0,1/100S2) 的高斯分布;在空间量化极坐标下的离散位置随机采样;把 p p p 固定为 ( 0 , 0 ) (0, 0) (0,0), q q q 在周围平均采样。
- ORB描述子:相比BRIEF描述子,加入了旋转补偿,通过学习的方式获得最优的采样策略。