《深度学习》之 目标检测 最全详解 (一)

目标检测

一.简介

在这里插入图片描述
目标检测,也叫目标提取,是一种基于目标几何和统计特征的图像分割,它将目标的分割和识别合二为一,其准确性和实时性是整个系统的一项重要能力。尤其是在复杂场景中,需要对多个目标进行实时处理时,目标自动提取和识别就显得特别重要。
随着计算机技术的发展和计算机视觉原理的广泛应用,利用计算机图像处理技术对目标进行实时跟踪研究越来越热门,对目标进行动态实时跟踪定位在智能化交通系统、智能监控系统、军事目标检测及医学导航手术中手术器械定位等方面具有广泛的应用价值。

在这里插入图片描述
(图片来自网络)

二.发展历程

在这里插入图片描述
(图片来自网络)在这里插入图片描述
(图片来自网络)
在这里插入图片描述
(图片来自网络)

1、基于传统图像处理和机器学习算法的目标检测与识别方法

传统的目标检测与识别方法主要可以表示为:目标特征提取->目标识别->目标定位。

这里所用到的特征都是认为设计的,例如SIFT (尺度不变特征变换匹配算法Scale Invariant Feature Transform), HOG(方向梯度直方图特征Histogram of Oriented Gradient), SURF( 加速稳健特征Speeded Up Robust Features),等。通过这些特征对目标进行识别,然后再结合相应的策略对目标进行定位。

2、基于深度学习的目标检测与识别方法

如今,基于深度学习的目标检测与识别成为主流方法,主要可以表示为:图像的深度特征提取->基于深度神经网络的目标识别与定位,其中主要用到深度神经网络模型是卷积神经网络CNN。

目前可以将现有的基于深度学习的目标检测与识别算法大致分为以下三大类:

基于区域建议的目标检测与识别算法,如R-CNN, Fast-R-CNN, Faster-R-CNN;
基于回归的目标检测与识别算法,如YOLO, SSD;
基于搜索的目标检测与识别算法,如基于视觉注意的AttentionNet,基于强化学习的算法。

在这里插入图片描述

三.目标检测基本思路与步骤

3.1 基本思路在这里插入图片描述

目标检测的基本思路:同时解决定位(localization) + 识别(Recognition)。
多任务学习,带有两个输出分支。一个分支用于做图像分类,即全连接+softmax判断目标类别,和单纯图像分类区别在于这里还另外需要一个“背景”类。另一个分支用于判断目标位置,即完成回归任务输出四个数字标记包围盒位置(例如中心点横纵坐标和包围盒长宽),该分支输出结果只有在分类分支判断不为“背景”时才使用。详细结构如下图所示:

在这里插入图片描述
(图片来自网络)

扫描二维码关注公众号,回复: 14600695 查看本文章

3.2 步骤在这里插入图片描述

传统的目标检测框架,主要包括三个步骤:

  1. 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域;
  2. 提取候选区域相关的视觉特征。比如人脸检测常用的Harr特征;行人检测和普通目标检测常用的HOG特征等;
  3. 利用分类器进行识别,比如常用的SVM模型。

3.3 两类深度学习 方法

目前目标检测领域的深度学习方法主要分为两类:两阶段(Two Stages)的目标检测算法;一阶段(One Stage)目标检测算法。

两阶段(Two Stages):首先由算法(algorithm)生成一系列作为样本的候选框,再通过卷积神经网络进行样本(Sample)分类。

常见的算法有R-CNN、Fast R-CNN、Faster R-CNN等等。

一阶段(One Stage ):不需要产生候选框,直接将目标框定位的问题转化为回归(Regression)问题处理(Process)。

常见的算法有YOLO、SSD等等。

这些算法又可以根据是否基于候选区来划分成两类

3.4 基于候选区的算法

基于候选区域(Region Proposal)的,如R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN;
使用候选区域方法(region proposal method)创建目标检测的感兴趣区域(ROI)。在选择性搜索(selective search,SS)中,首先将每个像素作为一组。然后,计算每一组的纹理,并将两个最接近的组结合起来。但是为了避免单个区域吞噬其他区域,首先对较小的组进行分组。继续合并区域,直到所有区域都结合在一起。下图第一行展示了如何使区域增长,第二行中的蓝色矩形代表合并过程中所有可能的 ROI。
在这里插入图片描述
(图片来自网络)

基于区域的全卷积网络检测目标在这里插入图片描述

3.5 基于端到端的算法

端到端指的是输入是原始数据,输出是最后的结果,原来输入端不是直接的原始数据,而是在原始数据中提取的特征,这一点在图像问题上尤为突出,因为图像像素数太多,数据维度高,会产生维度灾难,所以原来一个思路是手工提取图像的一些关键特征,这实际就是就一个降维的过程。
  
端到端的目标检测算法
在这里插入图片描述
基于端到端(End-to-End),无需候选区域(Region Proposal)的,如YOLO、SSD。

对于上述两种方式,基于候选区域(Region Proposal)的方法在检测准确率和定位精度上占优,基于端到端(End-to-End)的算法速度占优。相对于R-CNN系列的“看两眼”(候选框提取和分类),YOLO只需要“看一眼”。总之,目前来说,基于候选区域(Region Proposal)的方法依然占据上风,但端到端的方法速度上优势明显。

四.目标检测精准度的评价指标

在这里插入图片描述
    在这里插入图片描述
(图片来自网络)

P-R 曲线
    在这里插入图片描述在这里插入图片描述

计算 mAP 过程

对于一张图片中的c类目标

算法检测出来 T 个c类的目标

而真值是 TP+FN 个c类的目标

检测结果中有 TP 个结果和真值的 IOU 达到某个设定的阈值

那么Precision定义为:
在这里插入图片描述

对所有图片求平均得到Average Precision 的定义值:

在这里插入图片描述

对所有类求平均就得到mean Average Precision的定义值:
在这里插入图片描述

参考:《深度学习》 花书
复旦大学 《深度学习》

猜你喜欢

转载自blog.csdn.net/DFCED/article/details/105005563