深度学习目标检测Object Detection--基本知识概念

0. 目标检测介绍

这部分摘自《百度人工智能课程-目标检测
对计算机而言,能够“看到”的是图像被编码之后的数字,但它很难理解高层语义概念,比如图像或者视频帧中出现的目标是人还是物体,更无法定位目标出现在图像中哪个区域。目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框,标示出每个目标的位置,如 图1 所示。
在这里插入图片描述

图1:图像分类和目标检测示意图
  • 图1(a)是图像分类任务,只需识别出这是一张斑马的图片。
  • 图1(b)是目标检测任务,不仅要识别出这是一张斑马的图片,还要标出图中斑马的位置。

0.1 目标检测发展历程

图像分类处理基本流程,先使用卷积神经网络提取图像特征,然后再用这些特征预测分类概率,根据训练样本标签建立起分类损失函数,开启端到端的训练,如 图2 所示。
在这里插入图片描述

图2:图像分类流程示意图

但对于目标检测问题,按照 图2 的流程则行不通。因为在图像分类任务中,对整张图提取特征的过程中没能体现出不同目标之间的区别,最终也就没法分别标示出每个物体所在的位置。

为了解决这个问题,结合图片分类任务取得的成功经验,我们可以将目标检测任务进行拆分。假设我们现在有某种方式可以在输入图片上生成一系列可能包含物体的区域,这些区域称为候选区域,在一张图上可以生成很多个候选区域。然后对每个候选区域,可以把它单独当成一幅图像来看待,使用图像分类模型对它进行分类,看它属于哪个类别或者背景(即不包含任何物体的类别)。

上一节我们学过如何解决图像分类任务,使用卷积神经网络对一幅图像进行分类不再是一件困难的事情。那么,现在问题的关键就是如何产生候选区域?比如我们可以使用穷举法来产生候选区域,如图3所示。
在这里插入图片描述

图3:候选区域

A为图像上的某个像素点,B为A右下方另外一个像素点,A、B两点可以确定一个矩形框,记作AB。

  • 如图3(a)所示:A在图片左上角位置,B遍历除A之外的所有位置,生成矩形框A1B1, …, A1Bn, …
  • 如图3(b)所示:A在图片中间某个位置,B遍历A右下方所有位置,生成矩形框AkB1, …, AkBn, …

当A遍历图像上所有像素点,B则遍历它右下方所有的像素点,最终生成的矩形框集合{AiBj}将会包含图像上所有可以选择的区域。

只要我们对每个候选区域的分类足够的准确,则一定能找到跟实际物体足够接近的区域来。穷举法也许能得到正确的预测结果,但其计算量也是非常巨大的,其所生成的总候选区域数目约为 W 2 H 2 4 \frac{W^2 H^2}{4} 4W2H2,假设H=W=100H=W=100H=W=100,总数将会达到 2.5 × 1 0 7 2.5 \times 10^{7} 2.5×107
个,如此多的候选区域使得这种方法几乎没有什么实用性。但是通过这种方式,我们可以看出,假设分类任务完成的足够完美,从理论上来讲检测任务也是可以解决的,亟待解决的问题是如何设计出合适的方法来产生候选区域。

科学家们开始思考,是否可以应用传统图像算法先产生候选区域,然后再用卷积神经网络对这些区域进行分类?

  • 2013年,Ross Girshick 等人于首次将CNN的方法应用在目标检测任务上,他们使用传统图像算法Selective Search产生候选区域,取得了极大的成功,这就是对目标检测领域影响深远的区域卷积神经网络(R-CNN)模型。
  • 2015年,Ross Girshick 对此方法进行了改进,提出了Fast R-CNN模型。通过将不同区域的物体共用卷积层的计算,大大缩减了计算量,提高了处理速度,而且还引入了调整目标物体位置的回归方法,进一步提高了位置预测的准确性。
  • 2015年,Shaoqing Ren 等人提出了Faster R-CNN模型,提出了RPN的方法来产生物体的候选区域,这一方法不再需要使用传统的图像处理算法来产生候选区域,进一步提升了处理速度。
  • 2017年,Kaiming He 等人提出了Mask R-CNN模型,只需要在Faster R-CNN模型上添加比较少的计算量,就可以同时实现目标检测和物体实例分割两个任务。

以上都是基于R-CNN系列的著名模型,对目标检测方向的发展有着较大的影响力。此外,还有一些其他模型,比如SSD、YOLO(1, 2, 3)、R-FCN等也都是目标检测领域流行的模型结构。

R-CNN的系列算法分成两个阶段,先在图像上产生候选区域,再对候选区域进行分类并预测目标物体位置,它们通常被叫做两阶段检测算法。SSD和YOLO算法则只使用一个网络同时产生候选区域并预测出物体的类别和位置,所以它们通常被叫做单阶段检测算法。

1. Bounding Box(bbox)

bbox是包含物体的最小矩形,该物体应在最小矩形内部。
物体检测中关于物体位置的信息输出是一组(x,y,w,h)数据,其中x,y代表着bbox的左上角(或者其他固定点,可自定义),
对应的w,h表示bbox的宽和高.一组(x,y,w,h)可以唯一的确定一个定位框。

2. Intersection over Union(IoU)

对于两个区域R和R′,则两个区域的重叠程度overlap计算如下:
O ( R , R ′ ) = ∣ R ∩ R ′ ∣ ∣ R ∪ R ′ ∣ O(R,R′)=\frac{|R∩R′|}{|R∪R′|} O(R,R)=RRRR
在训练网络的时候,我们常依据侯选区域和标定区域的IoU值来确定正负样本。
在这里插入图片描述

3. 非极大值抑制(Non-Maximum Suppression又称NMS)

非极大值抑制(NMS)可以看做是局部最大值的搜索问题,NMS是许多计算机视觉算法的部分。
如何设计高效的NMS算法对许多应用是十分关键的,例如视频跟踪、数据挖掘、3D重建、物体识别以及纹理分析等。
这里我们主要针对非极大值抑制在物体检测上的应用,非极大值抑制就是把不是极大值的抑制掉,在物体检测上,
就是对一个目标有多个标定框,使用极大值抑制算法滤掉多余的标定框。
下图一个小猫有多个红框标定:
在这里插入图片描述
使用非极大值抑制算法后,结果如下:
在这里插入图片描述
先假设有N个矩形框,根据分类器的类别分类概率做排序,假设从小到大属于猫的概率 分别为 A 1 , A 2 , A 3 , . . . A N A_{1},A_{2},A_{3},...A_{N} A1,A2,A3,...AN。,

(1)从最大概率矩形框 A i A_{i} Ai(假设 A i A_{i} Ai最大)开始,分别判断 A 1 , . . . , A i − 1 , A i + 1 , . . . A N A_{1},...,A_{i-1},A_{i+1},...A_{N} A1,...,Ai1,Ai+1,...AN A i A_{i} Ai的重叠度IOU是否大于某个设定的阈值;

(2)假设 A 1 , A 2 A_{1},A_{2} A1,A2 A i A_{i} Ai的重叠度超过阈值,那么就扔掉 A 1 , A 2 A_{1},A_{2} A1,A2;并标记第一个矩形框 A i A_{i} Ai,这个是我们保留下来的。

(3)从剩下的矩形框中,选择概率最大的 A j A_{j} Aj,然后判断 A j A_{j} Aj与剩余框的重叠度,重叠度大于阈值,就扔掉;并标记 A j A_{j} Aj是我们保留下来的第二个矩形框。

就这样一直重复,找到所有被保留下来的矩形框。

4. mAP

mAP 是 Mean Average Precision 的缩写,即均值平均精度。通常它作为 object dection 中衡量检测精度的指标。其计算公式为:

mAP = 所有类别的平均精度求和 / 所有类别。

5. 锚框(Anchor box)

“anchor”意为“锚点”。是在Faster R-CNN的RPN中提出的。在RPN里,anchor是一个固定的矩形框,因此也可称作为“anchor box”。
先设定好锚框的大小和形状,再以图像上某一个点为中心画出矩形框。
在这里插入图片描述

在目标检测任务中,通常会以某种规则在图片上生成一系列锚框,将这些锚框当成可能的候选区域。模型对这些候选区域是否包含物体进行预测,如果包含目标物体,则还需要进一步预测出物体所属的类别。还有更为重要的一点是,由于锚框位置是固定的,它不大可能刚好跟物体边界框重合,所以需要在锚框的基础上进行微调以形成能准确描述物体位置的预测框,模型需要预测出微调的幅度。在训练过程中,模型通过学习不断的调整参数,最终能学会如何判别出锚框所代表的候选区域是否包含物体,如果包含物体的话,物体属于哪个类别,以及物体边界框相对于锚框位置需要调整的幅度。

5.1K均值聚类锚框

采用的距离模型如下:
d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t r o i d ) d(box, centroid) = 1- IOU(box, centroid) d(box,centroid)=1IOU(box,centroid)

首先初始化类别数量和聚类中心:

Step 1: 计算每个boundingbox与所有聚类中心的距离(1-iou),选择最近的那个聚类中心作为它的类别
Step 2: 使用每个类别簇的均值来作为下次迭代计算的类别中心
重复步骤1和2,直至每个类别的中心位置不再发生变化。

猜你喜欢

转载自blog.csdn.net/duanyuwangyuyan/article/details/114004067
今日推荐