目标检测RCNN到SSD学习总结.doc

上传人:11****ws 文档编号:3706942 上传时间:2019-07-07 格式:DOC 页数:11 大小:694.50KB
下载 相关 举报
目标检测RCNN到SSD学习总结.doc_第1页
第1页 / 共11页
目标检测RCNN到SSD学习总结.doc_第2页
第2页 / 共11页
目标检测RCNN到SSD学习总结.doc_第3页
第3页 / 共11页
目标检测RCNN到SSD学习总结.doc_第4页
第4页 / 共11页
目标检测RCNN到SSD学习总结.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、第一部分从RCNN 开始介绍基于候选区域的目标检测器,包括Fast R-CNN、Faster R-CNN 和 FPN等。第二部分则重点讨论了包括YOLO、SSD和RetinaNet等在内的单次检测器。深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD从零开始PyTorch项目:YOLO v3目标检测实现像玩乐高一样拆解 Faster R-CNN:详解目标检测的实现过程后RCNN时代的物体检测及实例分割进展物体检测算法全概述:从传统检测方法到深度神经网络框架基于候选区域的目标检测器滑动窗口检测器一种用于目标检测的暴力方法是从左到右、从上到下滑动窗口,利用分类识别目标。为了

2、在不同观察距离处检测不同的目标类型,我们使用不同大小和宽高比的窗口。滑动窗口(从右到左,从上到下)根据滑动窗口从图像中剪切图像块。由于很多分类器只取固定大小的图像,因此这些图像块是经过变形转换的。但是,这不影响分类准确率,因为分类器可以处理变形后的图像。将图像变形转换成固定大小的图像。变形图像块被输入 CNN 分类器中,提取出 4096 个特征。之后,我们使用 SVM 分类器识别类别和该边界框的另一个线性回归器。滑动窗口检测器的系统工作流程图。我们创建很多窗口来检测不同位置的不同目标。要提升性能,一个简单的办法就是减少窗口数量。选择性搜索用候选区域方法(region proposal meth

3、od)创建目标检测的感兴趣区域(ROI)。在选择性搜索(selective search,SS)中,首先将每个像素作为一组。然后,计算每一组的纹理,并将两个最接近的组结合起来。但是为了避免单个区域吞噬其他区域,我们首先对较小的组进行分组。我们继续合并区域,直到所有区域都结合在一起。下图第一行展示了如何使区域增长,第二行中的蓝色矩形代表合并过程中所有可能的 ROI。(作者为了保证能够划分的完全,对于相似度,作者提出了可以多样化的思路,不但使用多样的颜色空间(RGB,Lab,HSV等等),还有很多不同的相似度计算方法。论文考虑了颜色、纹理、尺寸和空间交叠这4个参数)R-CNNR-CNN 利用候选区

4、域方法创建了约 2000 个 ROI。这些区域被转换为固定大小的图像,并分别馈送到卷积神经网络中。该网络架构后面会跟几个全连接层,以实现目标分类并提炼边界框。使用候选区域、CNN、仿射层来定位目标。以下是 R-CNN 整个系统的流程图:通过使用更少且更高质量的 ROI,R-CNN 要比滑动窗口方法更快速、更准确。边界框回归器候选区域方法有非常高的计算复杂度。为了加速这个过程,通常会使用计算量较少的候选区域选择方法构建 ROI,并在后面使用线性回归器(使用全连接层)进一步提炼边界框。使用回归方法将蓝色的原始边界框提炼为红色的。Fast R-CNNR-CNN 需要非常多的候选区域以提升准确度,但其

5、实有很多区域是彼此重叠的,因此 R-CNN 的训练和推断速度非常慢。如果我们有 2000 个候选区域,且每一个都需要独立地馈送到 CNN 中,那么对于不同的 ROI,我们需要重复提取 2000 次特征。此外,CNN 中的特征图以一种密集的方式表征空间特征,那么我们能直接使用特征图代替原图来检测目标吗?直接利用特征图计算 ROI。Fast R-CNN 使用特征提取器(CNN)先提取整个图像的特征,而不是从头开始对每个图像块提取多次。然后,我们可以将创建候选区域的方法直接应用到提取到的特征图上。例如,Fast R-CNN 选择了 VGG16 中的卷积层 conv5 来生成 ROI,这些关注区域随后

6、会结合对应的特征图以裁剪为特征图块,并用于目标检测任务中。我们使用 ROI 池化将特征图块转换为固定的大小,并馈送到全连接层进行分类和定位。因为 Fast-RCNN 不会重复提取特征,因此它能显著地减少处理时间。将候选区域直接应用于特征图,并使用 ROI 池化将其转化为固定大小的特征图块。以下是 Fast R-CNN 的流程图:在下面的伪代码中,计算量巨大的特征提取过程从 For 循环中移出来了,因此速度得到显著提升。Fast R-CNN 的训练速度是 R-CNN 的 10 倍,推断速度是后者的 150 倍。Fast R-CNN 最重要的一点就是包含特征提取器、分类器和边界框回归器在内的整个网

7、络能通过多任务损失函数进行端到端的训练,这种多任务损失即结合了分类损失和定位损失的方法,大大提升了模型准确度。ROI 池化因为 Fast R-CNN 使用全连接层,所以我们应用 ROI 池化将不同大小的 ROI 转换为固定大小。为简洁起见,我们先将 88 特征图转换为预定义的 22 大小。下图左上角:特征图。右上角:将 ROI(蓝色区域)与特征图重叠。左下角:将 ROI 拆分为目标维度。例如,对于 22 目标,我们将 ROI 分割为 4 个大小相似或相等的部分。右下角:找到每个部分的最大值,得到变换后的特征图。输入特征图(左上),输出特征图(右下),ROI (右上,蓝色框)。按上述步骤得到一个

8、 22 的特征图块,可以馈送至分类器和边界框回归器中。Faster R-CNNFast R-CNN 依赖于外部候选区域方法,如选择性搜索。但这些算法在 CPU 上运行且速度很慢。在测试中,Fast R-CNN 需要 2.3 秒来进行预测,其中 2 秒用于生成 2000 个 ROI。Faster R-CNN 采用与 Fast R-CNN 相同的设计,只是它用内部深层网络代替了候选区域方法。新的候选区域网络(RPN)在生成 ROI 时效率更高,并且以每幅图像 10 毫秒的速度运行。Faster R-CNN 的流程图与 Fast R-CNN 相同外部候选区域方法代替了内部深层网络候选区域网络候选区域

9、网络(RPN)将第一个卷积网络的输出特征图作为输入。它在特征图上滑动一个 33 的卷积核,以使用卷积网络(如下所示的 ZF 网络)构建与类别无关的候选区域。其他深度网络(如 VGG 或 ResNet)可用于更全面的特征提取,但这需要以速度为代价。ZF 网络最后会输出 256 个值,它们将馈送到两个独立的全连接层,以预测边界框和两个 objectness 分数,这两个 objectness 分数度量了边界框是否包含目标。我们其实可以使用回归器计算单个 objectness 分数,但为简洁起见,Faster R-CNN 使用只有两个类别的分类器:即带有目标的类别和不带有目标的类别。对于特征图中的每

10、一个位置,RPN 会做 k 次预测。因此,RPN 将输出 4k 个坐标和每个位置上 2k 个得分。下图展示了 88 的特征图,且有一个 33 的卷积核执行运算,它最后输出 883 个 ROI(其中 k=3)。下图(右)展示了单个位置的 3 个候选区域。此处有 3 种猜想,稍后我们将予以完善。由于只需要一个正确猜想,因此我们最初的猜想最好涵盖不同的形状和大小。因此,Faster R-CNN 不会创建随机边界框。相反,它会预测一些与左上角名为锚点的参考框相关的偏移量(如x、y )。我们限制这些偏移量的值,因此我们的猜想仍然类似于锚点。要对每个位置进行 k 个预测,我们需要以每个位置为中心的 k 个

11、锚点。每个预测与特定锚点相关联,但不同位置共享相同形状的锚点。这些锚点是精心挑选的,因此它们是多样的,且覆盖具有不同比例和宽高比的现实目标。这使得我们可以以更好的猜想来指导初始训练,并允许每个预测专门用于特定的形状。该策略使早期训练更加稳定和简便。Faster R-CNN 使用更多的锚点。它部署 9 个锚点框: 3 个不同宽高比的 3 个不同大小的锚点框。每一个位置使用 9 个锚点,每个位置会生成 29 个 objectness 分数和 49 个坐标。R-CNN 方法的性能如下图所示,Faster R-CNN 的速度要快得多。基于区域的全卷积神经网络(R-FCN)假设我们只有一个特征图用来检测

12、右眼。那么我们可以使用它定位人脸吗?应该可以。因为右眼应该在人脸图像的左上角,所以我们可以利用这一点定位整个人脸。如果我们还有其他用来检测左眼、鼻子或嘴巴的特征图,那么我们可以将检测结果结合起来,更好地定位人脸。现在我们回顾一下所有问题。在 Faster R-CNN 中,检测器使用了多个全连接层进行预测。如果有 2000 个 ROI,那么成本非常高。R-FCN 通过减少每个 ROI 所需的工作量实现加速。上面基于区域的特征图与 ROI 是独立的,可以在每个 ROI 之外单独计算。剩下的工作就比较简单了,因此 R-FCN 的速度比 Faster R-CNN 快。现在我们来看一下 5 5 的特征图

13、 M,内部包含一个蓝色方块。我们将方块平均分成 3 3 个区域。现在,我们在 M 中创建了一个新的特征图,来检测方块的左上角(TL)。这个新的特征图如下图(右)所示。只有黄色的网格单元 2, 2 处于激活状态。在左侧创建一个新的特征图,用于检测目标的左上角我们将方块分成 9 个部分,由此创建了 9 个特征图,每个用来检测对应的目标区域。这些特征图叫作位置敏感得分图(position-sensitive score map),因为每个图检测目标的子区域(计算其得分)。生成 9 个得分图下图中红色虚线矩形是建议的 ROI。我们将其分割成 3 3 个区域,并询问每个区域包含目标对应部分的概率是多少。

14、例如,左上角 ROI 区域包含左眼的概率。我们将结果存储成 3 3 vote 数组,如下图(右)所示。例如,vote_array00 包含左上角区域是否包含目标对应部分的得分。将 ROI 应用到特征图上,输出一个 3 x 3 数组。将得分图和 ROI 映射到 vote 数组的过程叫作位置敏感 ROI 池化(position-sensitive ROI-pool)。该过程与前面讨论过的 ROI 池化非常接近。将 ROI 的一部分叠加到对应的得分图上,计算 Vij。在计算出位置敏感 ROI 池化的所有值后,类别得分是其所有元素得分的平均值。ROI 池化假如我们有 C 个类别要检测。我们将其扩展为

15、C + 1 个类别,这样就为背景(非目标)增加了一个新的类别。每个类别有 3 3 个得分图,因此一共有 (C+1) 3 3 个得分图。使用每个类别的得分图可以预测出该类别的类别得分。然后我们对这些得分应用 softmax 函数,计算出每个类别的概率。 以下是数据流图,在我们的案例中,k=3 。单次目标检测器单次目标检测器(包括 SSD、YOLO 、YOLOv2 、YOLOv3 )我们将分析 FPN 以理解多尺度特征图如何提高准确率,特别是小目标的检测,其在单次检测器中的检测效果通常很差。然后我们将分析 Focal loss 和 RetinaNet,看看它们是如何解决训练过程中的类别不平衡问题的

16、。单次检测器Faster R-CNN 中,在分类器之后有一个专用的候选区域网络。Faster R-CNN 工作流基于区域的检测器是很准确的,但需要付出代价。Faster R-CNN 在 PASCAL VOC 2007 测试集上每秒处理 7 帧的图像(7 FPS)。和 R-FCN 类似,研究者通过减少每个 ROI 的工作量来精简流程。作为替代,我们是否需要一个分离的候选区域步骤?我们可以直接在一个步骤内得到边界框和类别吗?YOLOYOLO将全图划分为 SXS的格子,每个格子负责中心在该格子的目标检测,采用一次性预测所有格子所含目标的bbox、定位置信度以及所有类别概率向量来将问题一次性解决(on

17、e-shot)。YOLO 的核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别。将一幅图像分成 SxS 个网格(grid cell),如果某个 object 的中心落在这个网格中,则这个网格就负责预测这个 object。让我们再看一下滑动窗口检测器。我们可以通过在特征图上滑动窗口来检测目标。对于不同的目标类型,我们使用不同的窗口类型。以前的滑动窗口方法的致命错误在于使用窗口作为最终的边界框,这就需要非常多的形状来覆盖大部分目标。更有效的方法是将窗口当做初始猜想,这样我们就得到了从当前滑动窗口同时预测类别和边界框的检测器。基于滑动窗口

18、进行预测这个概念和 Faster R-CNN 中的锚点很相似。然而,单次检测器会同时预测边界框和类别。例如,我们有一个 8 8 特征图,并在每个位置做出 k 个预测,即总共有 8 8 k 个预测结果。在每个位置,我们有 k 个锚点(锚点是固定的初始边界框猜想),一个锚点对应一个特定位置。我们使用相同的 锚点形状仔细地选择锚点和每个位置。使用 4 个锚点在每个位置做出 4 个预测。以下是 4 个锚点(绿色)和 4 个对应预测(蓝色),每个预测对应一个特定锚点。4 个预测,每个预测对应一个锚点。在 Faster R-CNN 中,我们使用卷积核来做 5 个参数的预测:4 个参数对应某个锚点的预测边框

19、,1 个参数对应 objectness 置信度得分。因此 3 3 D 5 卷积核将特征图从 8 8 D 转换为 8 8 5。使用 3x3 卷积核计算预测。在单次检测器中,卷积核还预测 C 个类别概率以执行分类(每个概率对应一个类别)。因此我们应用一个 3 3 D 25 卷积核将特征图从 8 8 D 转换为 8 8 25(C=20 )。每个位置做出 k 个预测,每个预测有 25 个参数。单次检测器通常需要在准确率和实时处理速度之间进行权衡。它们在检测太近距离或太小的目标时容易出现问题。在下图中,左下角有 9 个圣诞老人,但某个单次检测器只检测出了 5 个。SSDSSD 是使用 VGG19 网络作为特征提取器(和 Faster R-CNN 中使用的 CNN 一样)的单次检测器。我们在该网络之后添加自定义卷积层(蓝色),并使用卷积核(绿色)执行预测。YOLO在卷积层后接全连接层,即检测时只利用了最高层feature maps(包括Faster RCNN也是如此);而SSD采用了特征金字塔结构进行检测,在多个feature maps上同时进行softmax分类和位置回归。SSD使用低层feature map检测小目标,使用高层feature map检测大目标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。