传统目标检测算法综述

image_1dkibfme518qrs1fep36f6ms69.png-188.5kB

首先,给定一张待检测图片,将这张图片作为我们检测算法的输入,然后,对这张图片进行候选框的提取。候选框的提取通常会采用滑动窗口的方法,接下来,对每一个滑动窗口中的局部的图像信息进行特征抽取,特征抽取部分通常会采用计算机视觉、模式识别中的关于图像特征表示的一些方法,常见的有:基于颜色的方法、基于纹理的方法、基于形状的方法、以及基于一些中层次或者高层次的语义特征方法。这些方法中,有的是需要经过学习才能得到,比如说在抽取基本的直方图特征以及常见的纹理特征(例如 HOG 特征、double 特征等类似的稠密的特征),之后通过 PCA 算法进行特征的降维,或者我们可以采用 LDA 这样的算法来对特征进行空间的投影,对抽取出来的基本特征进行进一步的学习,从而挖掘出更加鲁棒性的特征出来。因此,对传统的计算机视觉中常见的特征提取的方法,往往会分为以下三大类:

  1. 底层特征:颜色、纹理等这些最基本的特征。
  2. 中层特征:基于底层特征使用机器学习的方法来进行特征挖掘、特征学习等这些过程之后得到的特征,这些特征通常包括:PCA特征、LDA 学习之后的特征等等基于优化理论来完成特征的学习。
  3. 高层特征:将低层次特征和中层次特征进行进一步挖掘和表示,将它们表示为一个人是否戴帽子、长短头发、服装样式等等这些语义特征,这些特征就被称为高层次特征。

注意:在目标检测算法中,通常使用的方法主要是集中在低层次特征和中层次特征。也就是说,基于手工设计的特征以及基于学习的特征。

接下来,对候选区域所提取出来的特征,针对这些特征进行分类判定。当然,分类器需要事先经过学习和训练才能得到。在这个过程中,对于单类别目标的检测,我们只需要区分当前的窗口中所包含的对象,是否为背景还是我们所要检测的目标这样的一个二分类问题。对于多分类问题,我们需要进一步区分当前的窗口中是否为背景,如果不为背景的话,它属于哪一类?也就是一个多分类问题。在我们对候选框进行判定之后,我们就会得到一系列可能为当前检测目标的候选框。这些候选框可能会存在一些重叠的状况,接下来就需要 NMS(非极大抑制)的算法来对候选框进行合并,最后得到我们需要检测的目标,这就是算法最终输出的结果。

通常传统的目标检测算法主要包括以上基本流程。

对于深度学习的目标检测算法其中有一系列的算法也会遵循以上过程,区别就在于将特征提取的部分换成一个卷积神经网,而候选框提取的部分则是通过一个 RPN 网络来完成,这就是我们经常所说的 Two-Stage 目标检测算法。而 One-Stage 的目标检测算法往往会通过一个直接回归的方法来获得一个可能的目标区域(或目标的位置)以及目标的类别。

Last modification:September 12th, 2019 at 05:39 pm
如果觉得我的文章对你有用,请随意赞赏