目标检测(动手学深度学习)

目标检测是计算机视觉中的重要任务之一。本系列博客将总结目标检测的各类算法,包括传统方法、基于CNN的算法(One stage、Two stage)。本文主要对传统方法进行概述,大部分思想源自网上的博客和论文。

个人观点,广义的目标检测不仅包括物体检测(Object Detection),还包括边缘检测(Border Detection)及关键点检测(Landmark Detection)等。因此本文将涵盖边缘检测及关键点检测的内容。

 

边缘检测

边缘检测,在很多场景下可以看作是图像分割(Segmentation)任务(图像分割的边界往往就是物体的边缘)。而图像分割也包括传统算法和深度学习语义分割;而目标检测类算法(如R-CNN)也经常延伸到语义分割。图像分割与目标检测有着千丝万缕的关系。本部分主要从图像分割的角度介绍边缘检测的方法。传统的图像分割主要包括:阈值分割、区域生长、分水岭算法、微分算子法、主动轮廓模型、小波变换等方法。这些传统图像分割方法是计算机视觉的基础知识,具体此处不赘述。其中微分算子法很有启发意义,采用算子(又称“核”、“过滤器”)检测特定模式,启发我们可以通过设计特定的卷积核来检测特定的刚性目标。

 

感兴趣点检测

此处将关键点(Landmark、Benchmark)、特征点都称为感兴趣点。主要方法包括:Harris角点检测法、SIFT特征点检测法、基于模型的ASM或AAM法、基于级联形状回归CPR,和基于深度学习的算法。其中,Harris角点检测法是设计角点检测算子,对图像每个像素都计算响应值,然后确定一个合适的阈值来检测角点。基于模型的ASM法,是先对标记点所在的物体形状进行配准对齐,然后通过构建的局部特征,进行局部搜索和匹配;AAM法则在ASM法的基础上加了纹理特征。

 

物体检测

物体检测大致流程

提取候选框:在输入图像中提取候选框,通常会采用滑动窗口来进行

提取特征:采用各种经典模式识别的图像特征表示的一些方法,如:基于颜色、纹理的方法等,包括低层次特征,中层次特征等。各种算法的差异也就在于此,当采用CNN进行特征提取时,就形成了R-CNN等一系列深度学习目标检测方法。

分类器分类:分类器是预先训练的,使用“等价于”候选框的图片提取的特征,在筛选特征后建立分类器;常使用SVM建模。将提取的特征输入到分类器后,即可判断当前候选框是某个物体的可能性大小。

 

Viola-Jones

主要是用于人脸检测。采用 Haar 特征抽取,一般技术框架为:Haar-like 特征提取 + Adaboost。

Haar-like特征类似于下图:

      

将白色和黑色的像素值分别求和后再作差,就是Haar-like特征。一幅图中这样的特征非常多,为了优化计算,可以引入积分图的概念,快速对区域像素值求和。

 

HOG

HOGHistogram of Oriented Gridients)主要用于灰度图。采用HOG特征提取,一般技术框架为:HOG+SVM。

HOG通过计算和统计图像局部区域的梯度方向直方图来构建特征。

基本观点:局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述,即使我们不知道对应的梯度和边缘的位置。(本质:梯度的统计信息,梯度主要存在于边缘的地方)

算法框架:首先将图像分成很多小的连通区域(块),我们把它叫做细胞单元,然后采集细胞单元中每个像素点的梯度和边缘方向,然后在每个细胞单元中累加出一个一维的梯度方向直方图。将直方图进行归一化等操作后,得到HOG描述子。将检测窗口中的所有块的HOG描述子组合起来就形成了最终的特征向量,然后使用SVM分类器进行检测。

计算细节——梯度计算:采用微分算子进行卷积运算,可以计算每个像素点的梯度(方向和大小)。

计算细节——生成直方图:将360度根据需要分割成若干个bin,例如:分割成12个bin,每个bin包含30度,整个直方图包含12维,即12个bin。然后根据每个像素点的梯度方向,将其幅值累加到直方图中。

            

 

DPM

DPMDeformable Parts Model)是基于HOG+SVM改进的方法,对目标的形变具有很强的鲁棒性。DPM的本质就是弹簧形变模型。

      

DPM不仅解决了尺度缩放问题,还通过建立多个模板解决旋转(视角)视角问题。

DPM是传统目标检测算法的巅峰之作,但其生不逢时,CNN的出现使得目标检测算法进入深度学习时代。

 

SIFT

SIFT算法比较复杂,笔者了解较少,感兴趣的可以参考这篇博客:SIFT算法详解

 

参考资料:

Histogram of Oriented Gridients(HOG) 方向梯度直方图

基于传统图像处理的目标检测与识别(HOG+SVM附代码)

DPM(Deformable Parts Model)--原理

DPM目标检测算法

SIFT算法详解

 

你可能感兴趣的:(目标检测(动手学深度学习))