颜色特征
颜色直方图
RGB颜色空间不符合人眼对颜色相似度的主观判断,颜色直方图方法中一般转换至HSV空间。
将灰度值分为n个bins,统计每个bins上的像素数目,再归一化,作为颜色特征向量。
Bag of colors
与颜色直方图类似,只是用CIE-Lab颜色空间(更符合人眼视觉感知),并且bins由聚类产生,再统计直方图。
LUCID
(Locally Uniform Comparison Image Descriptor, NIPS 2012)
用归一化小图上的像素颜色的排序作为颜色描述符,从获取描述符到图像pair之间的距离计算,只需要三行matlab代码即可完成。简单快速。
纹理特征
Gabor小波
。。。
共生矩阵
。。。
LBP
应用非常广泛!
算法原理:原始的LBP算子定义在像素3*3的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值,LBP值共有28种可能,因此LBP值有256种。中心像素的LBP值反映了该像素周围区域的纹理信息。
备注:计算LBP特征的图像必须是灰度图,如果是彩色图,需要先转换成灰度图。
局部特征
SIFT
来了!大名鼎鼎的SIFT,应用最广泛的hand-craft特征没有之一了吧。
1、构建尺度空间
用不同的高斯卷积核进行卷积,得到不同模糊程度的图,为了更好地检测关键点,用的是它们的差,称之为高斯差分(DOG)。
构建图像金字塔,对图像通过下采样得到不同尺度的图像(每个尺度都按上文进行高斯差分)
这样可以保证尺度不变性
2、关键点检测
每个点与其26邻域比较,若它是极小、极大值点,则标记为关键点。
3、形成描述符
在关键点周围取一个小邻域(是吧?)统计梯度方向直方图,得到关键点的主方向。
将图像坐标轴旋转至关键点主方向(为了保证旋转不変性),取关键点周围16*16邻域,其中每4*4的小块统计一个8个bins的梯度直方图,共16个直方图,最终形成一个16*8 = 128维的特征向量。
局部特征聚合方法
BOF
。。。
FV
。。。
VLAD
。。。
Hashing算法
ITQ
。。。
PQ
。。。
OPQ
。。。
索引构建
倒排索引
。。。
Inverted MUlti-Index
。。。