目标检测综述

目标检测综述

在这里,首先说下分类、定位和检测的区别:

classify:目标物体是什么?

localization:目标物体在哪里?目标物体是什么?(针对的是单个目标)

detection:目标物体在哪里?目标物体分别是什么?(针对的是多个目标)

目标检测四大任务:

众所周知,R-CNN是使用深度学习进行物体检测开山大作,虽然在此之前,overfeat已经用深度学习的方法做目标检测,但R-CNN是第一个真正为工业级别提供解决方案的深度学习目标检测框架。但是传统的目标检测方法也需要有一定的认识和掌握。

这里,简单提及一些传统目标检测方法的知识。

目标检测,简单来说就是把存在的目标从图片中找到并识别出来。

传统的目标检测方法分为三个部分:1 区域选择 \rightarrow 2 特征提取 \rightarrow 3 分类器

即首先在给定的图像上选择一些候选的区域,然后对这些区域提取特征,最后使用分类器进行分类。下面我们对这三个阶段分别进行介绍。

区域选择

这一步是为了对目标的位置进行定位。由于目标可能出现在图像的任何位置,而且目标的大小、长宽比例也不确定,所以最初采用滑动窗口的策略对整幅图像进行遍历,而且需要设置不同的尺度,不同的长宽比。这种穷举的策略虽然包含了目标所有可能出现的位置,但是缺点也是显而易见的:时间复杂度太高,产生冗余窗口太多,这也严重影响后续特征提取和分类的速度和性能。(实际上由于受到时间复杂度的问题,滑动窗口的长宽比一般都是固定的设置几个,所以对于长宽比浮动较大的多类别目标检测,即便是滑动窗口遍历也不能得到很好的区域)

特征提取

由于目标的形态多样性,光照变化多样性,背景多样性等因素使得设计一个鲁棒的特征并不是那么容易。然而提取特征的好坏直接影响到分类的准确性。(这个阶段常用的特征有SIFT、HOG等)

分类器

主要有SVM,Adaboost等分类器。

传统目标检测方法的缺点:

传统目标检测存在以下两个主要问题:

1 基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余;

2 手工设计的特征对于多样性的变化并没有很好的鲁棒性。

基于传统目标检测方法存在的种种问题,2014随着R-CNN论文的发表,基于深度学习的目标检测方法就此拉来了序幕,引领目标检测领域进入一个新的时代。

深度学习目标检测方法主要有两种发展方向:

two-stage:

以R-CNN为代表的基于Region Proposal的深度学习目标检测算法,还有R-CNN,SPP-NET,Fast-RCNN,Faster-RCNN等目标检测方法。

需要先使用启发式方法(selective search)或者CNN网络(RPN)产生Region Proposal,然后再在Region Proposal上做分类与回归。

one-stage

以YOLO为代表的基于回归方法的深度学习目标检测算法(YOLO,SSD等),其仅仅使用一个CNN网络直接预测不同目标的类别与位置。

接下来,我将详细的介绍的讲述深度学习目标检测论文。

编辑于 2019-08-03

文章被以下专栏收录