第七章 原理篇:HOG特征提取

之前面试被问到了然后没有讲出来,所以今天复习一下!
气死我了!

参考教程:

What Is a Feature Descriptor in Image Processing?

https://medium.com/analytics-vidhya/a-gentle-introduction-into-the-histogram-of-oriented-gradients-fdee9ed8f2aa



随着机器学习的发展更迭,优化算法很容易被更先进的算法取代。而Histogram of Oriented Gradient方向梯度直方图检测算法,简称HOG则经历了时间的考验,即使在今天也被频繁使用,因为它的效果真的很好。

Feature Descriptors

“The feature descriptor describes an interest point and encodes the description in the form of a multidimensional feature vector in the vector space.” 特征描述子对图像中的感兴趣区域进行描述,并对描述的结果以多维度特征向量的形式进行编码。

那么什么是感兴趣区域interest point呢?这个区域通常是两个或多个区域的边缘段的交集或者物体的边界的方法发生快速改变的区域。这些区域具有一定的稳定性,在缩放、旋转或者光照改变时它们都具有一不变性,不会受到这些变化的影响。

因此,我们能够准确地找到这些区域,对于我们的图像相关的任务都会带来巨大的帮助。

特征描述子是一种提取对整个图像或者其中的感兴趣区域的特征描述的方法。它是对图像的表达,它提取了图像中有用的信息,抛弃了一些没有用的信息。特征描述子就像是一种数字化的指纹,它对重要信息进行编码,使得我们能使用这个编码结果将不同的特征区分开来。特征描述子在数学上的表达方式就是一维或者多维的向量,被称为特征向量。

从应用层面考虑,特征描述子可以简单分为两类。一种是对局部特征的描述,一种是对全局特征的描述。我们在一些low-level的应用上使用全局特征,比如目标检测和分类。我们在high-level的应用上使用局部特征,比如目标识别。

Local Descriptors

局部特征表达了一个图像的纹理。一个局部描述子通常对image中的一部分进行描述。使用多个局部描述子来处理一张图像要比只使用一个单独的描述子效果更好。常见的局部描述子有SIFT,SURF,LBP等。

Global Descriptors

全局特征将整个图片当作一个整体来进行描述,比如contour representation, shape descriptors, texture features。常见的全局描述子有HOG,HOF和MBH等。

HOG feature descriptor

使用HOG描述子,我们会将一个图像转换成一个长度为n的特征向量。虽然这个你很难通过这个向量得到原始图像的样子,但是它能够被应用在图像相关的任务中,并取得非常不错的结果。

在使用时,它只是简单地使用了梯度直方图作为图像的特征,对图像的局部区域梯度方向的次数进行了统计。

steps to calculate HOG features

在最开始的地方进行一下概念的总结:
window: 进行hog计算的区域称为window,要求宽高比1:2,一般使用64*128。
cell: hog中的最小单元,基于cell进行长度为9的梯度直方图的计算。
block: 2*2个cell组成一个block,基于block进行normalization。

预处理

图像大小:

  • 首先对图像进行预处理,使其拥有一个固定的宽高比,通常这个比例是1:2。在实际使用中,一般选择64*128大小的图像,所以你需要先将你的图像转为64x128的大小。
  • 假如你有一张很大的图片,你需要从图片中crop出一张张你想用来特征提取的小图片,并把它们转为指定大小。
  • 这里的64*128,我们称为window

灰度or RGB:

  • 灰度图像和RGB图像都可以用来计算直方图,因此不是必须将图像转成灰度图的格式。假如使用的是彩色图像,就用多通道中最大的梯度代表当前位置的梯度。

色彩校正:
为减少光照因素的影响,可以对图像进行gamma矫正,调节对比度。
f ( x ) = x γ f(x) = x^{\gamma} f(x)=xγ

计算梯度

计算梯度直方图。使用以下的kernal对图像进行卷积操作,可以得到他们的水平和垂直方向的梯度。

用公式的方法表示就是
G x ( r , c ) = I ( r , c + 1 ) − I ( r , c − 1 ) ; G y ( r , c ) = I ( r − 1 , c ) − I ( r + 1 , c ) G_x(r,c) = I(r, c+1) - I(r, c-1) ; G_y(r,c) = I(r-1, c) - I(r+1,c) Gx(r,c)=I(r,c+1)I(r,c1);Gy(r,c)=I(r1,c)I(r+1,

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值