目录
HOG特征
HOG特征是纹理特征的一种,处理流程:
首先会对HOG特征进行灰度化,(HOG特征主要是用在了灰度图上,),然后,进行Gamma变换(其实就是对我们的值,进行根号求解,这样整个像素的值就会变小,实际上也是对数据的一个平滑),接下来计算梯度map(会计算每一个点,在x方向以及在y方向,这样的两个方向的梯度值,并利用这两个梯度值来计算梯度夹角,即:tan = x/y,再利用tan求出方向角,而这个方向角可以被量化到0~360,或者说四个方向或者说18个方向),以十八个方向为例,0°~19°量化为第一个方向,20°~39°量化为第二个方向。。。。。。。,这样,每个像素点都可以转换为一个HOG特征值,也就是所谓的梯度map,接下来将整张图片划分为小的cell,并且统计每个cell里面的梯度直方图,假设还是18个方向,那每个cell统计出来的直方图的维度就是18维。再把每四个cell组合成一个block,那每个block的特征计算4*18维,这样组合的意义在于,通过将特征组合后,来进行归一化处理,使特征变的更加鲁棒,最好,将多个block进行串联,组合成一个整体的特征。
实际上HOG特征的维度通常会和我们所量化的角度和所划分的cell的个数,如果cell的大小越小, 数量就越多,那么向量的梯度直方图的维度也会越长。通常HOG特征的维度会在几千维。是很高的,那么计算的时候复杂度是非常大的,我们在使用的时候要先用PCA进行降维。
LBP特征
Local Binary Pattern,局部二值模式,LBP是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。
原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。如下图所示:
对LBP特征向量进行提取的步骤
(1)首先将检测窗口划分为16×16的小区域(cell);
(2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;
(3)然后计算每个cell的直方图,即每个数字(假定是十进制数LBP值)出现的频率;然后对该直方图进行归一化处理。
(4)最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量;
然后便可利用SVM或者其他机器学习算法进行分类了。
详见:
https://blog.youkuaiyun.com/hongbin_xu/article/details/79924961
SURF特征
详见https://blog.youkuaiyun.com/weixin_38404120/article/details/73740612