目标检测一部分基础术语笔记

一、基本知识

目标检测中RP什么意思

在目标检测中,RP通常指的是Recall-Precision,即召回率和精确率。召回率是指模型正确识别出的正样本数占所有正样本数的比例,而精确率是指模型正确识别出的正样本数占所有被模型识别为正样本的样本数的比例。RP是评估目标检测模型性能的重要指标之一。

目标检测中Region Proposals什么意思

在目标检测中,Region Proposals指的是一种算法,用于生成可能包含目标的区域。这些区域通常是由图像中的像素组成的矩形或多边形区域。Region Proposals算法的目的是减少目标检测算法需要处理的图像区域数量,从而提高检测速度和准确性。常见的Region Proposals算法包括Selective Search、EdgeBoxes和RPN等。

目标检测中bbox什么意思 

bbox是bounding box的缩写,指的是目标检测中用于框定目标位置的矩形框。bbox通常由四个值表示,分别是左上角的x坐标、左上角的y坐标、框的宽度和框的高度。在目标检测中,bbox用于标注出图像中的目标位置,方便后续的分类、识别和跟踪等任务。

目标检测中mAp什么意思

mAP(mean Average Precision)是目标检测中常用的评价指标,表示平均精度。它是对所有类别的精度进行平均得到的值,用于评估目标检测算法的性能。mAP越高,说明算法在检测目标方面的性能越好。

目标检测中VOC什么意思

VOC是Visual Object Classes的缩写,指的是视觉对象类别。在目标检测中,VOC通常指的是PASCAL VOC数据集,该数据集包含20个常见的物体类别,如人、车、飞机等。PASCAL VOC数据集是目标检测领域中广泛使用的基准数据集之一。

目标检测中fine-tunning什么意思

目标检测中的fine-tuning是指在已经训练好的模型基础上,通过在新的数据集上进行微调,以提高模型在新数据集上的性能。通常情况下,fine-tuning是在一个预训练模型的基础上进行的,这个预训练模型通常是在大规模数据集上进行训练的,如ImageNet。在fine-tuning过程中,我们会使用新的数据集来重新训练模型的最后几层或者全部层,以适应新的数据集的特征。这样可以大大减少训练时间和数据量,同时提高模型的准确性。

目标检测中ground truth什么意思

目标检测中,ground truth指的是真实的目标位置和类别信息,通常由人工标注或者其他可靠的方法得到。在训练和评估目标检测模型时,需要使用ground truth作为参考,来计算模型的准确率、召回率等指标。

目标检测中IOU什么意思

IOU是Intersection over Union的缩写,中文翻译为交并比。在目标检测中,IOU用于衡量预测框和真实框之间的重叠程度。具体来说,IOU是预测框和真实框的交集面积除以它们的并集面积。IOU的值范围在0到1之间,值越大表示预测框和真实框的重叠程度越高。在训练过程中,通常将IOU作为损失函数的一部分,以帮助模型更好地学习目标检测任务。 

目标检测SS搜索方法

目标检测中的SS搜索方法是指使用Selective Search算法来生成候选框的方法。Selective Search算法是一种基于图像分割的方法,它将图像分割成多个区域,并将这些区域组合成候选框。SS搜索方法的基本思想是在图像中使用Selective Search算法生成一组候选框,然后对每个候选框进行分类,以确定其中是否包含目标物体。

SS搜索方法的优点是能够生成大量的候选框,覆盖了图像中的大部分区域,从而提高了目标检测的召回率。同时,SS搜索方法还能够处理各种尺度和形状的目标物体,适用于不同场景和应用。

然而,SS搜索方法也存在一些缺点,例如生成的候选框数量过多,需要进行筛选和合并,增加了计算复杂度;同时,Selective Search算法的性能也会受到图像质量和复杂度的影响。因此,在实际应用中,需要根据具体情况选择合适的目标检测方法和参数设置。

二、R-CNN的训练过程:

step1:Region proposal的确定
VOC测试图像输入后,利用SS搜索方法,根据相似度从大到小排序,筛选出2000个region proposals 。

step2:RP的Features提取
将RP通过resize成227×227,然后分别输入进CNN特征提取网络,得到了2000个4096维features。

step3:SVM分类
将(2000,4096)维矩阵输入进SVM分类器中,最终得到(2000,21)矩阵。每一行的21个列值,分别代表了这个RP属于每一个类的可能性。通过提前设置好的backgroud阈值 α αα 和所属于类的阈值 β ββ,筛选出满足条件的 m mm 个RP区域。

step4:BoundingBox-Regression
将(2000,4096)维矩阵输入进 (4096,4)的回归矩阵 d dd 中,最后输出(2000,4)偏移矩阵。代表RP中心点的位置偏移 和 bbox的尺寸变换。
将SVM筛选出的 m mm 个RP区域对应的特征向量,组成(m,4096)矩阵 代入 (4096,4)的回归矩阵 d dd 中,最后输出(m,4)偏移矩阵。

step5:Non-maximum suppression处理
只画出SVM筛选出的 m mm 个RP区域的修正后的检测框。考虑到bbox的大量累赘重叠,进行非极大值抑制(NMS),得到最终检测结果

R-CNN存在的问题:
1.训练时间长:主要原因是分阶段多次训练,而且对于每个region proposal都要单独计算一次feature map,导致整体的时间变长。
2.占用空间大:每个region proposal的feature map都要写入硬盘中保存,以供后续的步骤使用。
multi-stage:文章中提出的模型包括多个模块,每个模块都是相互独立的,训练也是分开的。这会导致精度不高,因为整体没有一个训练联动性,都是不共享分割训练的,自然最重要的CNN特征提取也不会做的太好。
3.测试时间长,由于不共享计算,所以对于test image,也要为每个proposal单独计算一次feature map,因此测试时间也很长。
 

目标检测NMS

目标检测中的NMS(Non-Maximum Suppression)是一种用于去除重叠框的技术。在目标检测中,通常会生成多个候选框来表示可能包含目标的区域。但是,这些候选框可能会有重叠的部分,因此需要使用NMS来去除冗余的候选框。

NMS的基本思想是,对于每个类别,首先按照置信度从高到低排序,然后选择置信度最高的框作为基准框,将与该框重叠度高于一定阈值的其他框删除。这个过程会不断迭代,直到所有框都被处理完毕。

NMS的阈值通常设置为0.5或0.6,可以根据具体应用场景进行调整。NMS可以有效地去除冗余的候选框,提高目标检测的准确率和效率。

目标检测SPPNet什么意思

SPPNet是一种基于深度学习的目标检测算法,全称为Spatial Pyramid Pooling Network。SPPNet的特点是在卷积神经网络的最后一层加入了空间金字塔池化层,可以对不同大小的输入图像进行处理,从而提高了检测精度。SPPNet的主要思想是将不同大小的特征图进行金字塔池化,将不同尺度的特征信息进行整合,从而得到更加丰富的特征表示。SPPNet在目标检测领域取得了很好的效果,被广泛应用于各种实际场景中。

三、Fast RCNN

经典目标检测算法:RCNN、Fast RCNN、 Faster RCNN 基本思想和网络结构介绍_r-cnn、fast r-cnn和faster r-cnn流程图_ctrl A_ctrl C_ctrl V的博客-CSDN博客
3.1 Fast RCNN简介


在RCNN之后,SPPNet解决了重复卷积计算和固定输出尺寸两个问题,SPPNet的主要贡献是在整张图像上计算全局特征图,然后对于特定的建议候选框,只需要在全局特征图上取出对应坐标的特征图就可以了。但SPPNe仍然存在一些弊端,如仍然需要将特征保存在磁盘中,速度还是很慢。

Fast RCNN算法是2015年Ross Girshick(还是这位大佬)提出的,在RCNN和SPPNet的基础上进行了改进。根据名字就知道,Fast RCNN更快更强。其训练步骤实现了端到端,基于CGG16网络,其训练速度比RCNN快了9倍,测试速度快了213倍,在PASCAL VOC2012数据集达到了68.4%的准确率。

论文:《Fast R-CNN》
源码(作者提供):https://github.com/rbgirshick/fast-rcnn

3.2 Fast RCNN算法流程


(1)一张图像生成1K~2K个候选区域(使用Selective Search算法,简称SS算法),我们将某个候选区域称为ROI区域。

(2)将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵。

R-CNN vs Fast-RCNN:

R-CNN依次将2000个候选框区域输入卷积神经网络得到特征,存在大量冗余,提取时间很长。
Fast-RCNN将整张图像送入网络,一次性计算整张图像特征,这样就可以根据特征图的坐标获得想要的候选区域的特征图,不需要重复计算。

(3)将每个特征矩阵通过 ROI pooling 层缩放到7x7大小的特征图。

前面讲到RCNN需要将候选区域归一化到固定大小(227x227),而Fast RCNN并不需要这样的操作,Fast RCNN通过pooling层将每个候选区域的特征图都变为7x7

(4)将特征图展平(reshape)为向量,通过一系列全连接层和 softmax得到预测结果。

3.3 Fast RCNN流程图

3.3.1 总体流程

如图,将一张图像输入到 Deep ConvNet 中得到图像的特征图,根据ROI区域与整体图像的坐标映射关系 (RoI Projection)进行特征映射(Conv feature map),能够得到每一个候选区域(ROI区域)的特征矩阵。

将每一个特征矩阵通过RoI pooling layer,池化到固定尺寸(7*7),然后展平为向量(vector)。再经过两个全连接层(fully connected layers,FC),得到ROI特征向量(ROI feature vector)。

之后 ROI feature vector 并联两个FC,其中一个用于目标概率预测(softmax),另一个用于边界框参数的回归(bbox regressor,bbox 表示 bounding box)。

3.3.2 softmax 分类器

softmax 分类器输出N+1个类别的概率,如下图所示。PASCAL VOC2012数据集中有20个分类,因此会输出21个类别的概率,其中第一个为背景概率,其余20个为每个分类的概率。所以softmax的FC中有N+1个节点。

在这里插入图片描述

3.3.3 边界框回归器(bbox regressor )

一幅图片中会画出N+1个分类的候选框,每个候选框都有x、y、w、d四个参数,所以 bbox regressor 的FC中有 4(N+1) 个节点。

在这里插入图片描述

边界框参数回归的计算方法:

3.3 Fast RCNN 中 loss 的计算

因为在Fast RCNN 中需要预测N+1个类别的概率以及边界框的回归参数,所以定义了两个损失函数:分类损失和边界框回归损失。

在这里插入图片描述

3.4 Fast RCNN框架

首先回顾一下RCNN的框架:

RCNN由四部分组成,因此需要多步训练,非常繁琐。

Fast RCNN将CNN特征提取,SVM边界框分类,bbox regression边界框回归三部分结合到了一起,都融合到同一个CNN中。那么Fast RCNN就只有两部分了:先通过SS算法获取候选框,再通过CNN完成特征提取、分类和边界框回归。

那么自然而然的,在接下来的 Faster RCNN 算法中,就要考虑如何将 Region proposal 也融入到CNN中,将整个算法合并为一个网络,这样就可以实现端到端的目标检测。

3.5 Fast RCNN的缺点


1、尽管用到了GPU,但Region proposal还是在CPU上实现的。在CPU中,用SS算法提取一张图片的候选框区域大约需要2s,而完成整个CNN则只需要0.32s,因此Fast RCNN 计算速度的瓶颈是Region proposal。

2、无法满足实时应用,没有真正实现端到端训练测试;

四、Faster RCNN


4.1 Faster RCNN简介


Faster RCNN 是作者 Ross Girshick 继 RCNN 和 Fast RCNN后的又一力作。同样使用 VGG16作为网络的backbone,推理速度在GPU上达到5fps(包括候选区域的生成),准确率也有进一步的提升。在2015年的ILSVRC以及cOco竞赛中获得多个项目的第一名。

4.2 Faster RCNN算法流程


Faster RCNN = RPN + Fast RCNN

RPN 是指 Region Proposal Network,建议区域生成网络。 Faster RCNN 中用 RPN 来代替了 Fast RCNN 中的SS算法。

算法流程:

(1)将图像输入网络得到相应的特征图。

(2)使用RPN网络生成候选框,将RPN生成的候选框投影到特征图上获得ROI区域的特征矩阵。

(3)将每个ROI区域的特征矩阵通过 ROI pooling 层缩放到7x7大小的特征图,接着将特征图展平为vector,之后通过一系列全连接层得到预测结果。

Faster RCNN 网络的基本结构如下:

4.2 RPN网络

4.2.1 RPN网络结构

 

图中的 conv feature map 是图像输入网络得到相应的特征图,通过sliding window处理之后产生一个256d的一维向量。该向量通过两个全连接层,分别输出分类概率scores和边界框回归参数coordinates,其中k是指 k个 anchor boxes,2k个scores是每个 anchor box 分别为前景和背景的概率(注意这里只区分前景和背景,所有的类别都归为前景),4k个coordinates是因为每个anchor box 有四个参数。
 

4.2.2 anchor的定义


那么什么是 anchor呢?

首先要明确,anchor不是候选框(Proposal)

我们在特征图中找一个点,就可以在原图中找到对应的一个像素点,以该像素点为中心,画出9个不同大小和长宽比的框,称为anchor 。如下图所示,这些anchor里面可能包含目标,也可能没有目标。因为我们在一张图中想找的的目标的大小和长宽比并不是固定的,所以这里用9个不同大小和长宽比的anchor来进行预测。

那么为什么是9个anchor呢?

论文中给出了每个anchor的面积和长宽比:

在这里插入图片描述

所以特征图中的每个位置在原图中都会生成 3x3=9 个anchor,如下图所示,蓝色的三个anchor是面积为128x128的,红色是面积为256x256的,绿色是512x512的。 

在这里插入图片描述

4.2.3 RPN生成proposal的过程 

对于一张 1000x600x3 的图像(三通道),用3x3的卷积核进行特征提取得到60x40的特征图,则共有 60x40x9 (约2w个)个anchor。忽略超过图片边界的 anchor 后,剩下约 6000 个anchor。

对于这6000 个 anchor,通过RPN生成的边界框回归参数将每个 anchor 调整为proposal(前面提到了每个anchor经过RPN都输出2个概率和4个边界框回归参数),这里就能看到anchor和proposal的区别。这个过程就是 RPN 生成候选框的过程。

RPN 生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩下 2000 个候选框。


4.3 Faster RCNN框架

五、三者的比较:RCNN、Fast RCNN、 Faster RCN 

三者的优缺点比较:在这里插入图片描述 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值