特征提取和分类是典型计算机视觉系统的两个关键阶段。
视觉系统的准确性、稳健性和效率在很大程度上取决于图像特征,和分类器的质量。因此,目标是从输入图像中提取信息丰富的、可靠的特征,以便能够开发出很大程度上独立于领域理论的分类。
特征
特征是任何独特的方面或特性,用于解决与特定应用相关的计算任务。
n 个特征的组合可以表示成 n 维向量,称为特征向量。特征向量的质量取决于其区分不同类别的图像样本的能力。
来自同一类的图像样本应该有相似的特征值,来自不同类的图像应具有不同的特征值。
分类器
分类器是现代计算机视觉和模式识别的核心。
分类器的任务是使用特征向量对图像或感兴趣区域(RoI)划分类别。
分类任务的困难程度取决于来自相同类别的图像的特征值的可变性,以及相对于来自不同类别图像的特征值的差异性。
但是,完美的分类性能通常是不可能的。这主要是因为:
- 噪声(以阴影、遮挡、透视扭曲等形式)
- 异常值
- 模糊性
- 缺少标签
- 仅有小训练样本可用
- 训练数据样本中正 / 负覆盖的不平衡
传统特征描述符
传统(手工设计)特征提取方法可分为两大类:
- 全局
- 局部
全局特征提取方法定义了一组有效描述整个图像的全局特征。因此形状细节被忽略。全局特征也不适用于识别部分遮挡的对象。
局部特征提取方法提取关键点周围的局部区域,由此可以更好的处理遮挡。
检测关键点,并在他们周围构建描述符的方法:
局部描述符(如 HOG、SIFT、SURF、FREAK、ORB、BRISK、BRIEF、LIOP)
方向梯度直方图
HOG 是一个特征描述符,用于自动检测图像中的对象。HOG 描述符对图像中局部部分的梯度方向的分布进行编码。
HOG 背后的想法是可以通过边缘方向的直方图来描述图像内的对象外观和形状。
1. 梯度计算
第一步是计算梯度值。在图像的水平和垂直方向上,执行一维中心点离散微分模板。具体的说,该方法需要用以下滤波器内核处理灰度图像:
因此给定一个图像
因此,梯度的方向
- CNN 也在层中使用卷积运算,然而主要区别在于不使用手工设计的滤波器,CNN 使用可训练的滤波器,使其具有高度的自适应性。
- CNN 也在层中使用卷积运算,然而主要区别在于不使用手工设计的滤波器,CNN 使用可训练的滤波器,使其具有高度的自适应性。
2. 单元方向直方图
第二步是计算单元直方图。首先将图像分成小的(通常是 8X8 像素)单元。每个单元都有固定数量的梯度方向区间,他们均匀分布在
单元内的每一个像素基于该像素处梯度的模对每一个梯度方向区间偷加权票。对于投票权重,可以是梯度大小,梯度大小的平方根或梯度大小的平方。
3. 描述符块
为了处理光照和对比度的变化,通过将单元组合在一起形成更大的空间上相连的块,局部的归一化梯度强度。然后,HOG 描述符是来自所有块区域内的、归一化的单元直方图部件的向量。
4. 块的归一化
最后一步是块描述符的归一化。设 v 是包含给定块中所有直方图的非归一化向量,‖为它的 (k) 阶范数((k=1,2) ),(\epsilon) 是一个小常量。归一化因子可以是如下之一:
或者
或者
还有另一个归一化因子 L2-Hys, 它通过削减 v 的 L2 范数得到(将 v 的最大值限制为 0.2),然后重新归一化。
最终的图像 / RoI 描述符是通过连接所有归一化的块描述符而形成的。
L2 范数、L2-Hys 和 L1 范数平方根(L1-sqrt)归一化方法提供了类似的性能,而 L1 范数提供了可靠性稍差的性能。