引言
相比于图像分类,目标检测不仅需要确定物体的类别,还需要确定物体的位置。如图1所示为传统的目标检测框架,传统目标检测方法通过在图片上滑动窗口(或提取大量的区域候选框)遍历目标可能所在的位置,然后使用人工设计的方法提取特征,最后使用分类器对每一个窗口的特征进行分类,判断是否包含目标并得到目标类别。
常见的手工提取特征包括SIFT、HOG和Haar-like等,分类器包括支持向量机(SVM)和Adaboost等。根据分类器结果和滑动窗口位置得到目标类别和位置。
区域选择
滑动窗口是一种非常直观的获取物体位置信息的方法。如图2所示,滑动窗口检测器是一种暴力检测方法,从左到右,从上到下滑动窗口。通过窗口滑动的方式,能够确保某些窗口能够命中目标物体。由于图片中物体的大小差异较大,为了能够匹配到不同大小、不同长宽比的物体,常常会采用不同大小的窗口。
使用滑动窗口方法获取物体位置信息的缺点非常明显,即该算法的计算复杂度非常高,而且冗余度非常高,不是一个高效的方法。同时,为了提高目标检测算法召回率,常常会将滑动窗口的步长设置较小,这样会产生更多的图片窗口,会使得后续特征提取和分类任务计算量暴增。
为了解决滑动窗口方法获取窗口数量多、冗余性大的问题,在滑动窗口算法基础上,提出了选择性搜索算法,其基本思想是通过对滑动窗口算法得到的图片按照某种规则计算其相似度,剔除那些相似度大的图片,从而减少获得的图片数目,减少算法的计算复杂度。
特征提取
由于目标检测中存在物体形态多样、光照多样、背景多样等问题,手工设计鲁棒性高的特征较难,往往需要相关领域的专家。在传统目标检测时代,比较出名的手工设计特征包括SIFT、Haar-like、HOG等特征。
(一) Haar-like
2001年Paul Viola和Michael Jones基于Haar-like特征提出了一种快速且有效的人脸检测方法,如图3所示。检测器采用滑动窗口的方式以检查目标是否存在窗口之中。该检测器看起来似乎很简单稳定,但由于计算量庞大导致时间复杂度极高。为了解决该项问题,检测器通过合并三项技术极大提高了检测速度,这三项技术分别是:
- 特征的快速计算方法-积分图;
- 有效的分类器学习方法-AdaBoost;
- 高效的分类策略-级联结构的设计。
(二) HOG
为了满足尺度不变性,方向梯度直方图(Histogram of Oriented Gradient, HOG)特征于2005年被提出,是当时尺度特征不变性(Scale Invariant Feature Transform)和形状上下文(Shape Contexts)的重要改进。为了平衡特征不变性(包括平移,尺度,光照等)和非线性(区分不同的对象类别),通过在均匀间隔单元的密集网格上计算重叠的局部对比度归一化来提高检测准确性,因此检测器是基于本地像素块进行特征直方图提取的一种算法,它在目标局部变形和受光照影响下都有很好的稳定性。为后期很多检测方法奠定了重要基础,相关技术被广泛应用于计算机视觉领域中的各大应用。
如图4所示为HOG( histogram of oriented gradients)梯度方向直方图。它可以用来表示图像的物体特征,因此能够检测出这类物体。如图5所示为基于HOG特征的目标检测流程图。
(三) SIFT
SIFT(Scale-invariant feature transform,尺度不变特征变换),由David Lowe在1999年提出,在2004年加以完善。SIFT算法是一种基于局部兴趣点的算法,因为它将图像数据转换为相对于局部特征的尺度不变坐标,因此被称为尺度不变特征变换。
SIFT特征计算步骤如下:
(1) 特征提取之候选关键点
SIFT在空间尺度中寻找极值点特征并进行对比。该算法首先利用高斯微分算子检测极值点,如图6所示,即使用高斯差分函数来计算并搜索所有尺度上的图像位置,用于识别对尺度和方向不变的潜在兴趣点,这些极值点具有尺度和旋转不变性。
(2) 特征提取之关键点定位
如图7所示,通过一个拟合精细的模型在每个候选位置上确定关键点的位置和尺度。
(3) 特征描述之方向匹配
为每个关键点指定一个基准方向,从而使描述子能实现图像旋转不变性。具体操作是使用方向直方图统计关键点邻域内的梯度方向和梯度幅值;将0~360度划分成36个区间,每个区间为10度,统计得出的直方图峰值代表关键点的主方向。
同时需要确定辅方向,梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该特征点的辅方向。(一个主方向,一个以上辅方向,增强匹配的鲁棒性)
(4) 特征描述之局部特征描述
在不同分辨率的图片上分别计算极值点领域像素的方向,领域像素的方向被转换为相对于主方向的变化量,从而提供对于这些变换的不变性。同时计算极值点邻近像素的梯度信息,通过对这些梯度信息进行映射,得到对局部变形和光强变化不变性较强的表示。最后对极值点的表示进行整合即可得到SIFT特征。
在每个关键点周围的区域内以选定的比例计算局部图像梯度。论文中选取极值点16X16邻域,得到4*8*4=128维描述向量,这个向量是该区域图像信息的一种抽象,具有唯一性。
分类器
在得到特征后,便可以输入到分类器中进行分类。常见的分类器有:线性判别分析(LDA)、二次判别分析(QDA)、支持向量机(SVM)、KNN算法、神经网络(NN)、朴素贝叶斯算法(Naive Bayes)、决策树算法(Decision Tree)、随机森林(Random Forest)、GBDT(Gradient Tree Boosting)等等。
参考文献
[1]路齐硕. 基于深度学习的目标检测方法研究[D].北京邮电大学,2020.
[2]https://github.com/scutan90/DeepLearning-500-questions
前期回顾
最全的目标检测入门系列(一)概述
最全的目标检测入门系列(二)评价指标
后期预告
欢迎点、藏、关三连
有共同兴趣的同学,可以私信探讨
本文暂时没有评论,来添加一个吧(●'◡'●)