目标检测介绍

447 阅读7分钟

背景

首先,我们要简单了解下什么是目标检测?简单来说,目标检测任务就是要找出图像或视频中人们感兴趣的物体,同时定位出它们的位置以及检测出物体的大小。与图像分类任务不同的是,目标检测不仅要解决分类问题,还要解决定位问题,属于多任务分支的问题。

2. 目标检测算法发展脉络

其次,我们可以了解下目标检测有哪些主流方法,各自发展的现状如何?

image.png

image.png

image.png

2.1 Manual-based methods

不同于现在的卷积神经网络可以自动提取高效特征进行图像表示,以往的传统目标检测算法主要基于手工提取特征。传统检测算法流程可概括如下:

  1. 选取感兴趣区域,选取可能包含物体的区域;

  2. 对可能包含物体的区域进行特征提取;

  3. 对提取的特征进行检测分类。

这一类的代表性算法主要有:Viola Jones Detector、HOG DetectorDPM Detector.

尽管在某些特定的场合下取得了良好的效果,但手动提取的特征并不足以适应于各种复杂场景,仍然存在以下问题:

  • 识别效果不够好,准确率不高;
  • 计算量较大,运算速度慢;
  • 可能产生多个正确识别的结果。

基于手工提取特征的传统目标检测算法进展缓慢,性能低下。直到2012年卷积神经网络的兴起将目标检测领域推向了新的台阶。基于CNNs的目标检测算法主要有两条技术发展路线:anchor-based和anchor-free方法,而anchor-based方法则包括一阶段和二阶段检测算法(,但)。

2.2 Two-stage anchor-based methods

二阶段目标检测算法一般比一阶段精度要高,算法流程主要分为以下两个阶段:

Stage1:从图像中生成region proposals;

Stage2:从region proposals生成最终的物体边框。

代表性算法主要有:RCNNSPPNetFast RCNNFaster RCNNFPNCascade RCNN.

2.3 One-stage anchor-based methods

一阶段检测算法速度一般比二阶段精度更快,其算法流程不需要区域候选阶段,直接利用端到端的网络回归出物体的类别概率和位置坐标值,经过一个阶段即可直接得到最终的检测结果。

代表性算法主要有:SSD、YOLO v2、RetinaNet、YOLO v3、YOLO v4、YOLO v5.

总的来说,基于anchor-based的目标检测算法主要有以下四大缺点:

  • Anchor的大小,数量,长宽比对于检测性能的影响很大(通过改变这些超参数Retinanet在COCO benchmark上面提升了4%的AP),因此Anchor based的检测性能对于anchor的大小、数量和长宽比都非常敏感。
  • 这些固定的Anchor极大地损害了检测器的普适性,导致对于不同任务,其Anchor都必须重新设置大小和长宽比。
  • 为了去匹配真实框,需要生成大量的Anchor,但是大部分的Anchor在训练时标记为负样本,所以就造成了样本极度不均衡问题。
  • 在训练中,网络需要计算所有Anchor与真实框的IOU,这样就会消耗大量内存和时间。

2.4 Anchor free-based methods

基于Anchor的物体检测问题通常被建模成对一些候选区域进行分类和回归的问题,在一阶段检测器中,这些候选区域就是通过滑窗方式产生Anchor box,而在二阶段检测器中,候选区域是RPN生成的Proposal,但是RPN本身仍然是对滑窗方式产生的Anchor进行分类和回归。基于Anchor的检测算法由于Anchor太多导致计算复杂,及其所带来的大量超参数都会影响模型性能。近年的Anchor free技术则摒弃Anchor,通过确定关键点的方式来完成检测,大大减少了网络超参数的数量。

代表性算法主要有:YOLOv1CornerNetCenterNetFSAFFCOSSAPD.

3. 目标检测常用数据集及评价指标

目标检测领域的四大主流数据集分别为Pascal VOCILSVRCMS-COCO,和OID. 检测任务还包含了很多种,其中比较常见的检测任务有行人检测,脸部检测,文本检测,交通灯与交通标志检测,遥感图像目标检测。

目标检测常用的评价指标有:交并比准确率精度召回率FPRF1-ScorePR曲线-AP值ROC曲线-AUC值,和mAP值FPS.

4. 目标检测任务普遍存在的六大难点与挑战

通过对大部分检测任务加以分析,概括出了以下6点难点与挑战:

  • 待检测目标尺寸很小,导致占比小,检测难度大;
  • 待检测目标尺度变化大,网络难以提取出高效特征;
  • 待检测目标所在背景复杂,噪音干扰严重,检测难度大;
  • 待检测目标与背景颜色对比度低,网络难以提取出具有判别性的特征;
  • 各待检测目标之间数量极度不均衡,导致样本不均衡;
  • 检测算法的速度与精度难以取得良好平衡。

5. 提高目标检测模型精度的五大技术

  • 多尺度技术
  • 边框回归技术
  • 上下文信息提取技术
  • 非极大值抑制技术
  • 困难负样本挖掘技术

6. 目标检测的五大应用场景

  • 轻量化网络设计
  • 模型压缩与量化
  • 模型数值加速

7. 目标检测未来发展的七大趋势

  • 特征提取网络
  • 高效的特征融合
  • 目标定位改进
  • 旋转和尺度变化的鲁棒性检测
  • 结合其它领域

8. 五大应用场景

接下来,回顾下一些重要的检测应用:行人检测、人脸检测、文本检测、交通信号和遥感目标检测。

8.1 行人检测

行人检测作为一种目标检测一项重要的应用,在自动驾驶、视频监控、刑事侦查等诸多领域受到广泛关注。一些早期的行人检测方法(如HOG检测器和ICF检测器)在特征表示、分类器设计和检测加速方面为目标检测技术奠定了坚实的基础。近年来一些通用的目标检测算法,例如Faster RCNN被用于行人检测,这极大地推动了行人检测领域的进步。

8.2 人脸检测

早期的人脸检测(如VJ检测器)极大促进了目标检测的发展,其中许多检测思想即使在今天的目标检测也仍然发昏这重要作用。目前人脸检测已应用到各行各业,如数码相机中的微笑检测,电子商务中的刷脸,手机应用中的面部化妆等等。

8.3 文本检测

文本检测的任务是判断一张图片中是否存在文字,若有文字,则需要计算机对图片中的文字进行定位并识别文字的具体内容,所以文本检测具有两个子任务:文本定位与文本识别。文本检测可以帮助视障人士阅读路牌或货币,在地理信息系统中,门牌号和街道标值的检测与识别也使数字地图的构建变得更加容易。

8.4 交通信号检测

随着自动驾驶技术的发展,交通标志和红绿灯的自动检测近年来备受关注。对于像交通灯和交通标志这样的固定场景的标志检测,仍然具有不小的挑战。

8.5 遥感目标检测

近年来,随着遥感图像分辨率的提高,遥感图像目标检测(如飞机、船舶、油罐等的检测)成为研究热点,遥感图像目标检测具有广泛的应用,如军事侦查、灾害救援、城市交通管理等等。

9. 七大发展趋势

  • 轻量型目标检测
  • 与AutoML结合的目标检测
  • 领域自适应的目标检测
  • 弱监督目标检测
  • 小目标检测
  • 视频检测
  • 信息融合目标检测