图像特征与描述笔记

1. 颜色特征

1.1 量化颜色直方图

对HSV颜色空间使用统计 bin 进行划分。用 bin 中心代表颜色,统计 bin 上的像素数量。bin 均匀的划分。缺点可能在少量的 bin 上有某个颜色的数量比较多。整体比较稀疏。

1.2 聚类颜色直方图

对颜色进行聚类。由聚类中心代表 bin。不会列出所有的颜色,直方图只展示图像中出现的颜色。对与直方图相似的图像比较差异,先比较颜色的差异再比较直方图高低。

Lab空间
三维颜色空间 ((L, a, b))
(Lin [0,100]) 表示像素的亮度从纯黑到纯白
(ain[-128, 127]) 深绿到品红
(bin[-127, 128]) 蓝色到黄色

2. 几何特征

Edge, Corner, Blog

边缘的定义,像素明显变化的区域用于物体识别。数学上为像素值快速变化的区域,一阶导数的极值区域。灰度值拟合的函数(f)的一阶导数的极值。噪声和颜色过度不均匀也会有一阶导数极值。解决方法是去噪。先高斯(g)平滑去掉噪声,然后再求一阶导数的极值。(frac{mathrm{d}}{mathrm{d}x}(f*g)=f*frac{mathrm{d}}{mathrm{d}x}g),相当于直接高斯滤波一阶导。

二维式子,在x, y横竖两个方向上高斯滤波的一阶导
(g_x(x,y)=frac{partial g(x,y)}{partial x}=frac{-x}{2pi sigma^4}e^{-frac{x^2+y^2}{2sigma^2}})
(g_y(x,y)=frac{partial g(x,y)}{partial y}=frac{-y}{2pi sigma^4}e^{-frac{x^2+y^2}{2sigma^2}})
对于任意方向上的变化使用向量([g_x(x,y), g_y(x,y)])
梯度方向上函数变化最快
(arctan frac{g_y(x,y)}{g_x(x,y)})
平滑的地方梯度的值比较小,边缘的地方梯度值最大
梯度(模)
(g_x(x,y)^2 + g_y(x,y)^2)

对于边缘的尺度是粗的边缘还是细的边缘,用高斯的标准差(sigma)参数。

3. 基于关键点的特征描述子

同一件物体的理想特征描述子,识别不同图像的不同角度光线等的同一件物体。稳定的局部特征点是可重复性、稳定的、显著的。有了这些点可以拼接,运动跟踪,导航等。
Harris 角点,给定一个观察窗,在角上任意方向移动((u,v)),导致像素较大的变化。窗口的大小是个经验值。
(E(u,v)=sumlimits_{x,y}w(x,y)[I(x+u,y+v)-I(x,y)]^2)
权重为观察点(比如黑点)在范围内为1,不在为0. 或者用高斯平滑作为权重。
(E(u,v))大的情况。转化成矩阵表达式。
(E(u,v)=[u,v]M[u,v]^T) (M)的特征值相差很大,表示是直线。如果平面位置,两个特征值都很小且相近。角点是两个特征值都较大的情况。Harris 角点没有FAST 快,也没有FAST 效果好。

FAST角点 若某像素点与其周围领域内足够多的像素点处于不同的区域,则该与众不同的像素点可能为角点。对兴趣点所在圆周上的16个像素点进行判断,圆周半径为3个像素,若圆周上有连续n(通常 n=12)个像素点比当前圆中心像素点的灰度(I_p)加上阈值t还要亮或者比(I_p-t)还要暗,则 (p) 是角点。这一类直接像素操作计算快,但是没有多尺度特征也没有方向信息。

一阶导数极值突然变化即二阶导数零点(应该是拐点)是边缘。二阶导数极值点可能是原函数的驻点或极值点。二阶导数极值区域为班点.拉普拉斯梯度(Delta f=frac{partial^2f}{partial x^2}+frac{partial^2f}{partial y^2})
同样先高斯平滑再找斑点,相当于高斯拉普拉斯滤波(Laplacian of Gaussian),高斯滤波的二阶导然后再找极值点
(g(x,y,sigma)=frac{-x}{2pi sigma^2}e^{-frac{x^2+y^2}{2sigma^2}})

[g^2=frac{partial^2g}{partial x^2}+frac{partial^2g}{partial x^2} ]

拉普拉斯导数对边缘非常敏感。高斯的(sigma)大一点,模糊一点,拉普拉斯不那么敏感,才能够比较稳定的识别边界和斑点。高斯的(sigma)也可以控制寻找不同尺度的斑点,比如手指尖,手指,手掌等。
高斯平滑->拉普拉斯->二阶导数极值点->斑点

SIFT, SURF, ORB

SIFT 斑点就是关键点。
差分(高斯差分DOG,Difference of Gaussian)代替微分,减少计算量。

[sigma igtriangledown^2 g = frac{partial g}{partial sigma}approxfrac{g(x,y,ksigma)-g(x,y,sigma)}{ksigma-sigma} ]

意义:两幅同样尺度的不同的高斯滤波的图像相减, 两张清晰度不同的图像相减,剩下的是边缘。

SIFT 的高斯金字塔
每层有一组图像。每组层内图像从下到上 (sigma) 增大(sigma^n),越来越模糊,最下面最清晰。上层的最下面图像(最清晰图像),由下层倒数第3张隔点降采样得(上层尺度变小)。采样后再做高斯平滑。每组内(相同尺度),相邻图像做DOG。下层大尺度找小特征,上层小尺度找大特征。 层之间的差(ksigma).

层内高斯差分,相邻两两做差得到DOG,相同尺度的图像不同尺度的边缘相减。确定极值点要与该点周围8个点和上一DOG图像以及下一DOG图像比较。极值点就是关键点。
以特征点为圆心,以(3 imes 1.5sigma)为半径,找到所有的点的梯度方向,对方向做直方图统计。直方图最高的方向,即某个方向点最多就是主方向,直方图里这个数量的80%的那方向作为辅方向。
操作是图像x轴旋转到主方向。然后旋转后再做复杂的插值恢复到正常的格子。
再统计邻近区域(1616像素(再划分44个网络))点的梯度方向,8 个梯度方向上的统计值(直方图)。每个网络有16个像素在8个方向上的统计值。得到该点主方向上的邻近区域的特征描述。每个网格有8个方向的值的向量。总共有448 =128个值的向量。
计算量太大。
Haar
有各种各样的特征模板反映灰度变化情况(Haar 小波)。白色矩形区域像素的和减去黑色矩形区域像素的和。如果有大的值说明是颜色的突变。使用积分图(动态归划)计算。
Speeded-Up Robust Features
比SIFT快3倍。把SIFT中的高斯二阶微分(Hessian矩阵(判断是不是稳定的特征点))的模板进行简化。先用 Hessian 矩阵判断是不是关键点,再与上下图像比较是不是极大值极小值。
高斯后求边界的过程,直接用各种Haar小波作为模板。再与上下图比较,如果是最大值或者最小值,则是关键点。
找关键点的主方向。看邻域统计Haar小波模板的响应总和。,以6scale为半径,以关键点为圆心,统计60度扇形内所有点在 x和y方向上的haar小波响应总和。最大值的那个扇形的方向作为该关键点的方向。
邻域做旋转。正方形边长 20scale。旋转。邻域分成16个子区域,每个区域内25个像素的相对于水平方向和垂直方向的Haar小波特征。得到关键点主方向上的邻近区域的特征描述。

这种替代了高斯的尺度不变性不好。由于主方向的操作比较粗糙。旋转不变性效果也不好。

ORB
(1) 有一个点与周围的点显著不同,是FAST角点。
(2) BRIEF描述关键点的邻域像素特征。先平滑图像,然后在关键点周围选择一个方块区域。在方块内随机选择 n 个点对,n 个对比较灰度值大小,(p_x<p_y, au=1,~else~ au=0), 得到 n 个二进制数值。
点对可以用均匀分布或者高斯(以关键点为中心)分布选。
(3) 找主方向。以关键点为圆心选定区域。形心计算的质量用点的灰度值作为权重进行计算。关键点指向形心即为主方向。

4. 其它特征提取 LBP、Gabor

LBP
(1) 先局部二值化。每个像素点,周围的8个像素点与它比较(也可以是半径为R的圆上均匀采样P个点),小于它为0,大于它为1,依次从左上角顺时针得到8bit二进制,再转换成10进制数值。
(2)旋转不变性。不同的起始bit所形成的10进制数值中最小的那个。
灰度不变性,亮度差异不影响。旋转不变性。
Gabor
用于边缘提取的滤波器。三角波(正弦平面波)和高斯的乘积。
有高斯的一般尺度都是可以变的。
有利于发现纹理。

有了关键点的特征描述,比如两个描述特征的向量比较相似性。特征点是斑点中的中心点。

原文地址:https://www.cnblogs.com/cntech/p/15332761.html