传统目标检测算法基本流程 

 首先给定一张待检测图片,然后对这张图片进行候选框的提取。候选框的提取通常采用滑动窗口的方法进行,接下来对每个窗口中的局部信息进行特征提取(通常采用一些经典的计算机视觉模式识别中的算法,包括:基于颜色、基于纹理、基于形状的方法,以及一些中层次或高层次语义特征的方法,这些方法有些是需要学习得到的。如:抽取基本的直方图特征,常见的纹理特征)

计算机视觉中常见的特征提取的方法往往分为三类:1.底层特征:颜色,纹理这些最基本的特征;2.中层次特征:基于底层特征利用机器学习的方法进行特征挖掘特征学习过程之后的特征,包括PCA特征,LDA学习之后的特征,等等一些基于优化理论来完成的特征学习;3.高层次的特征:将低层次和中层次特征进行进一步的挖掘和表示,比如对于一个人可以采用是否带帽子戴眼镜等等语义特征进行表示。   目标检测算法中通常使用的方法集中在低层次和中层次两种,也就是基于手工设计的特征和基于学习的特征两大类。

在特征提取后,对候选区域提取出的特征进行分类判定,这个分类器需要进行事先的学习和训练得到。这个过程中,对于单类别目标检测只需要区分当前的窗口中所包含的对象是背景还是目标。对于多分类问题需要进一步的区分当前窗口中对象的类别。在经过对复选框判定后就会得到一系列的可能为检测目标的候选框,这些候选框可能会存在一些重叠的状况,这时需要一个NMS来对候选框进行合并,最终得到需要检测的目标也就是算法最终输出的结果。

常见传统目标检测算法

ViolaJones

HOG+SVM

DPM

Viola-Jones(人脸检测)

Haar特征抽取:特征抽取部分使用Haar特征作为特征表示的算子,属于纹理特征的一种

训练人脸分类器(Adaboost算法等)

滑动窗口:存在的问题,滑动窗口的大小和步长的变化会导致算法出现大量冗余的候选框,这些冗余的候选框就成为了目标检测算法速度上的瓶颈。

Haar特征(value=白-黑)

主要表示为差分的意思,最终特征表示形式为直方图的方式。Haar特征主要包括4种不同种类的积分图特征。

对于不同种类的特征最原始的算法表示为:对于每个像素点会计算一个值,用白色的区域-黑色的区域得到一个结果。这个值也是在统计直方图时会用到得值。

对于第一种特征:表示了对于相邻的两个像素点在做差时会对它的四个方向来进行差值,分别为0度,180度,45度,135度四个方向,将这四个方向上的像素点对作为黑白两个不同像素点来进行差值进行求解value。从图像处理领域看,差分的运算本身是在进行梯度的求解,abcd表示了四个方向的梯度,因此Haar特征属于纹理特征。

Adaboost算法

实际上Adaboost是一种集成学习的方法,集成学习通常是采用样本来训练多个弱的分类器,然后对多个弱的分类器进行分类结果的集成。

  • 初始化样本的权重w,样本呢权重和为1
  • 训练若分类器
  • 更新样本权重
  • 循环第2步
  • 结合多个分类器结果,进行投票

HOG+SVM(行人检测。Opencv)

  • 提取HOG特征:
  • 训练SVM分类器
  • 利用滑动窗口提取目标区域,进行分类判断
  • NMS
  • 输出检测结果

HOG特征

  • 灰度化+Gamma变换:首先对特征进行灰度化,HOG特征主要用在灰度图上;Gamma变换其实就是对值进行根号求解,让每个值变小,也就是让整个数据进行一个平滑。
  • 计算梯度map:就是会计算每一个点在x,y方向上的梯度值,并利用梯度值计算梯度夹角。也就是用x/y得到一个tan,再利用arctan求出当前像素点的方向角。这个方向角会被量化到0到360中的4,9或18个方向。这样每个像素点会转化为一个HOG特征值,也就是梯度Map.
  • 图像划分成小的cell,统计每个cell梯度直方图:对每个cell进行统计,假设角度量化为18段,那么每个cell的维度就是18维
  • 多个cell组成一个block,特征归一化:每一个cell会得到一个18维的特征,然后假设每4个cell组合成一个block,block的维度就是4×18维,维度没有变化。组合的意义在于组合后将特征进行归一化处理,能够使特征变得更加鲁棒对一些峰值的变化更加鲁棒
  • 多个block串联,并归一化:多个block串联时也会进行归一化处理

可以看到HOG特征的维度通常和量化的角度,量化的程度,以及cell的大小有关。cell如果越小对于每一个feature map得到的cell数量就越多,梯度直方图向量的维度就越长。通常HOG特征的维度在几千维。计算的难度会加大,所以使用HOG特征进行计算时可以使用PCA降维的方法进行降维。

SVM

再提取完HOG特征后会使用SVM分类器来对行人和背景进行二分类的建模

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐