目录
1. 基本概念
1.1. 什么是目标检测?
目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。
计算机视觉中关于图像有四大类任务:
- 分类(Classification):解决“是什么”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。
- 定位(Location):解决“在哪里”的问题,即定位出这个目标的位置。
- 检测(Detection):解决“在哪里”,“是什么”的问题,即定位出这个目标的位置并且知道目标物是什么。
- 分割(Segmentation):解决“每个像素属于哪个目标物或场景”的问题,可分为语义分割和实例分割。
1.2. 目标检测的发展脉络
目标检测的发展脉络可以划分为两个周期:传统目标检测算法时期(1998年-2014年)和基于深度学习的目标检测算法时期(2014年-至今)。而基于深度学习的目标检测算法又发展成了两条技术路线:Anchor based方法(一阶段,二阶段)和Anchor free方法。
1.3. 传统目标检测算法
不同于现在的卷积神经网络可以自动提取高效特征进行图像表示,以往的传统目标检测算法主要基于手工提取特征。传统检测算法流程可概括如下:
- 选取感兴趣的区域,选取可能包含的区域
- 对可能包含物体的区域进行特征提取
- 对提取的特征进行检测分类
Viola Jones Detector
VJ检测器采用滑动窗口的方式以检查目标是否存在窗口之中,该检测器看起来似乎很简单稳定,但由于计算量庞大导致时间复杂度极高,为了解决该项问题,VJ检测器通过合并三项技术极大提高了检测速度,这三项技术分别是:1)特征的快速计算方法-积分图,2)有效的分类器学习方法-AdaBoost,3)高效的分类策略-级联结构的设计。
HOG Detector
HOG(Histogram of Oriented Gradients)检测器于2005年提出,是当时尺度特征不变性(Scale Invariant Feature