【动手学计算机视觉】第五讲:传统目标检测之特征工程
点击上方↑↑↑“平凡而诗意”关注我们
近几年深度学习大行其道,因此,很多新入门计算机视觉的同学往往会忽略传统的目标识别算法。虽然,深度卷积网络使得特征提取这项工作变得简单,甚至不需要人为干预,但是我认为了解传统目标检测的详细内容更有助于理解计算机视觉的原理和理论体系。因此,接下来几讲会详细讲一下传统目标识别算法中比较经典的几个特征描述子。本文不详细展开每种算法,只是概括性的介绍一下特征工程的内容。
随着2012年AlexNet在ImageNet挑战赛一举夺魁,让深度卷积网络迅速霸占了目标识别和计算机视觉的头把交椅。随后的VGG、R-CNN、SSD、YOLO让深度卷积网络在计算机视觉领域的地位更加稳固。
由于深度卷积网络在目标识别方面表现得太过于抢眼,所以,很多入门计算机视觉的同学会选择从深度学习切入,目前惯用的学习套路莫过于如下几条:
吴恩达《机器学习》《深度学习工程师》
李飞飞《cs231n》
clone开源代码
微调代码跑模型
......
整个过程中很少涉及图像底层的内容,甚至知名的cs231课程对传统目标识别也未丝毫提及。
对于这个问题不难理解,深度学习与传统目标识别有着最根本的区别。
传统目标识别有两个非常重要的步骤:特征提取和机器学习。尤其是特征提取需要人为选取特征和特征后处理,特征的好坏对于识别的精确度有着至关重要的作用。而深度学习只需要对数据进行预处理输入到卷积神经网络中,特征提取由卷积神经网络自行完成,不需要人为干预特征的选取。
避免了人为特征提取的确给目标识别带来了质的飞跃,但是我认为计算机视觉依然脱离不了图像的范畴,它依然是一门以图像为根本的技术。目前深度计算机视觉模型的可迁移性差也体现出这一点,不能忽略不同类型图像之间的差异性。
例如,
自然图像
遥感图像
医学图像
三者之间有着巨大的差异性,在进行模型的学习过程中需要充分考虑不同类型图像的特点,这样对于模型的学习也有着非常大的益处。
特征工程在传统目标识别中占据着举足轻重的地位,甚至可以说,特征工程做的好坏能够直接影响最终识别的精度。
特征工程主要包括三个部分:
数据预处理
特征提取
特征后处理
数据预处理主要用一些手段和技术对数据做一下处理:
无量纲化
缺失值
归一化
标准化
......
这项工作基础而且重要,数据的准确性是识别效果的前提条件。
特征后处理主要包括如下几项:
主成分分析
奇异值分解
线性判别分析
目前常用的特征后处理手段就是对特征进行降维,由特征降维主要有如下几项优点:
降低计算开销
获取有价值的信息
去除噪声
使得数据更加易用
......
关于图像预处理的内容前面已经用几讲进行阐述,这里就不再阐述。关于特征降维的知识后续会详细介绍,本阶段主要围绕特征提取进行讲解。
特征提取主要的目的是在图像中提取出一些有价值的信息,在传统目标识别中所占地位丝毫不亚于支持向量机、Adaboost这类机器学习算法。在特征选择的过程中需要充分考虑目标的相关性,这样才能提取更加能够描述目标类别的特征,进而影响到目标检测的精度。
目前的特征种类有非常多,颜色特征、纹理特征、区域特征、边缘特征等,本文不过多介绍这类概念性的内容,主要概括一些常用的特征描述子,后续文章会逐个对这些经典的特征提取算法进行展开和详解。
传统目标识别中常用的特征描述子有:
Harris
SIFT
SURF
LBP
HOG
DPM
Harris是一种角点特征描述子,角点对应于物体的拐角,道路的十字路口、丁字路口等,在现实中非常常见,因此,Harris一直以来都是一个非常热门的特征检测算法。
SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),该方法于1999年由David Lowe发表在ICCV。由于该算法对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性,使其备受关注,
SIFT有着非常多的优点,但是也有一点致命的缺陷--实时性不足。SURF(Speeded Up Robust Features)改进了特征的提取和描述方式,用一种更为高效的方式完成特征的提取和描述。
方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,这个名气就更大了。它是一种基于统计的特征提取算法,通过统计不同梯度方向的像素而获取图像的特征向量。
LBP(Local Binary Pattern,局部二值模式),它是首先由T. Ojala, M.Pietikäinen,和 D. Harwood 在1994年提出,是一种纹理特征描述算子,旋转不变性和灰度不变性等显著的优点。
DPM(Discriminatively Trained Part Based Models)是Felzenszwalb力作,作者在这个算法中提出了很多对后续目标识别甚至深度学习影响深远的思想,作者也因此一举获得VOC挑战赛的终身成就奖。
由于时间问题,本文仅仅是概括性的介绍一下传统目标检测中常用的特征描述子,后续会单独对每个算法详细展开并一步一步编程实践。
往期回顾
·end·
—如果喜欢,快分享给你的朋友们吧—
我们一起愉快的玩耍吧