1. 引言

当前最先进的目标检测模型是由区域提案方法和基于区域的卷积神经网络引领的,由于共享计算,卷积网络花费的时间已经大大减小了,所以当前检测系统的瓶颈就是如何减小区域提案生成部分的花费时间。当前流行的区域提案方法之一SS就挺慢的,EdgeBoxes在提案生成的时候也很慢。

作者观察到用来生成特征图的基于区域的检测器(如fast RCNN)同样可以用于生成区域提案,于是作者提出使用一个深度卷积神经网络来计算提案,计算速度快到可以忽略,作者将这个用来计算提案的卷积网络叫做RPNs。它可以和后面的网络共享卷积层,于是计算每一个提案的边际成本就很低了。作者在检测器的前面加了几层卷积层用来生成实时的边框回归和目标置信分数,这几层卷积层构成了RPN。

作者引入了一个概念叫做anchor,它是一系列的尺度(大小)和比例(长宽比)不同的框。通过anchor这个概念所定义的模型避免了无数的图片或者不同尺度、比例的过滤器的使用。

为了将RPNs和Fast RCNN结合起来作者提出了一个交替进行训练和微调的反感,使用这个方案可以是网络寻思地融合并且卷积特征可以在两个模型里共享。

  1. 相关工作

目标提案。当前主流的目标提案方法主要有两类,一是基于超像素的(SS、CPMC、MCG,超像素是用一个个小色块逐渐融合变成较大的色块使计算机处理图片更快且显示出了物体边界),二是基于滑窗的。目标提案模块是独立于检测模块的。

用于目标检测的深度网络。RCNN主要是作为一个分类器,它不预测物体边界,它分类的准确率取决于提案划分的准确率。作者提到两个用深度网络来预测物体边界的网络,一个是overfeat,它在卷积层之前加了个全连接层来预测边界。一个是multibox,它的最后用于分类的全连接层可以同时预测边界,不过它并没有在提案和检测这两个模块之间共享特征。共享卷积计算目前吸引人们的点主要是它带来的速度的提升而不是精度,像overfeat和SPPnet都是为了提升速度才引入的共享计算。

  1. Faster RCNN

Faster RCNN是有两个模块结合而成的,一个是用于生成区域提案的卷积神经网络,一个是用于检测的Fast RCNN,RPN使用注意力机制告诉fast RCNN图片的哪里是重点。

    1. RPN

RPN是一个全卷积网络(FCN)接受任意大小的图片输入,输出一系列的矩形的目标提案,每个框带有一个目标置信分数。为了和fast rcnn层共享一套卷积层,作者使用了ZF和VGG16,分别有5和13层可共享的卷积层。

作者在最后一个共享的卷积层的输出(n*n)上加了一个小的滑窗用来降维,它是3*3大小的(因为这个大小的实验效果最好),ZF和VGG16的滑窗过后的维度分别为256和512。之后的特征图送到两个兄弟网络,一个是用于边框回归的reg模块一个是用于目标分类的cls模块。

      1. anchors

anchors是一系列预设好框,作者用了三种尺度三种比例一共k=9种anchors。

在图片上的每一个像素点用这个9个anchors去划定区域提案,所以reg层有4k个输出(一个框4个点一共k个框),cls层有2k个输出(是不是目标)

拥有平移不变性的anchors

如果改变了图片的大小那么提案还有与其相关的函数都要改变,使用anchors就可以保证平移不变性。对比实验中multibox用的是稀疏的800个anchors,它不能保证平移不变性,而且multibox有(4+1)*800维的全连接层输出,作者的这个方法只有(9+1)*9 维的卷积输出,这样一来参数量也比multibox大大减小了(1536 * (4 + 1) * 800 for GoogleNet  in MultiBox→512 *(4 + 2) * for VGG16)

作为回归引用(Regression References的多尺度的anchors

目前流行的多尺度边框预测主要有两种,一种是基于图像金字塔,这种方法里图片被变换成好几个尺寸,每一个尺寸都计算一个特征图,这种方法是有效的但是很花时间。第二种方法是在特征图上使用多尺度的滑窗,比如DPM,它使用了几种边长比例不同的滑窗,每种滑窗使用不同大小的过滤器分别训练,这种方法可以被叫做过滤器金字塔。第二种方法常常和第一种方法结合在一起。

作者提出的这个anchors也是一种金字塔结构,它只需要使用一种大小的滑窗,这种多尺度的anchors设计使是实现共享卷积计算的关键。

      1. 损失函数

每个anchor被打上1/0标签代表正/负样本,被标记为正样本的anchor有两种,一是和某个GT重叠的所有anchors里IOU最高的那个;二是和一个GT重叠度大于0.7的,一般来说主要是第二种情况,但少数样本会出现第一种情况。和任意一个GT的IOU都小于0.3的被标记为负样本,非正非负的样本不参与后续的训练。损失函数和fast RCNN一样是一个多任务的损失函数:

i是anchor在mini-batch里的索引,pi是预测的框里是否有目标的可能性,是GT标签为0或1,只有它等于1的时候回归损失才会被激活。ti是框的4个定位点,是GT的定位点。作者通过实验得出结果λ=10的时候效果最好,所以λ=10,使reg和cls的权重大致相等。

边框回归计算

x是预测的框,xa是anchor的框,x*是GT框。

有时间了再继续读完

Faster RCNN论文阅读的更多相关文章

  1. Faster R-CNN论文阅读摘要

    论文链接: https://arxiv.org/pdf/1506.01497.pdf 代码下载: https://github.com/ShaoqingRen/faster_rcnn (MATLAB) ...

  2. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

  3. k[原创]Faster R-CNN论文翻译

    物体检测论文翻译系列: 建议从前往后看,这些论文之间具有明显的延续性和递进性. R-CNN SPP-net Fast R-CNN Faster R-CNN Faster R-CNN论文翻译   原文地 ...

  4. Faster R-CNN论文详解 - CSDN博客

    废话不多说,上车吧,少年 paper链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks ...

  5. Faster RCNN论文学习

    Faster R-CNN在Fast R-CNN的基础上的改进就是不再使用选择性搜索方法来提取框,效率慢,而是使用RPN网络来取代选择性搜索方法,不仅提高了速度,精确度也更高了 Faster R-CNN ...

  6. Faster RCNN论文解析

    Faster R-CNN由一个推荐区域的全卷积网络和Fast R-CNN组成, Fast R-CNN使用推荐区域.整个网络的结构如下: 1.1 区域推荐网络 输入是一张图片(任意大小), 输出是目标推 ...

  7. Fast R-CNN论文阅读摘要

    论文链接: https://arxiv.org/pdf/1504.08083.pdf 代码下载: https://github.com/rbgirshick/fast-rcnn Abstract Co ...

  8. Fast R-CNN论文阅读笔记

    论文地址:Fast R-CNN R-CNN的缺陷 (1)训练是一个多级的流水线.R-CNN首先在候选目标上微调一个卷积神经网络,使用log loss.然后使用SVMs充当目标分类器,以取代softma ...

  9. R-CNN论文阅读摘要

    论文链接: https://arxiv.org/pdf/1311.2524.pdf Abstract Our approach combines two key insights: (1) one c ...

  10. RCNN论文阅读笔记

    一摘要: 两个主要工作:1将cnn和自上而下的区域提案结合进行定位和对象分割:2当训练数据稀缺时,先预训练然后微调. rccn工作分为四步:1输入一张图片 2用selective search算法对每 ...

随机推荐

  1. 带你读AI论文丨ACGAN-动漫头像生成

    摘要:ACGAN-动漫头像生成是一个十分优秀的开源项目. 本文分享自华为云社区<[云驻共创]AI论文精读会:ACGAN-动漫头像生成>,作者:SpiderMan. 1.论文及算法介绍 1. ...

  2. Linux基础_1_简介

    Linux是什么 一款优秀的操作系统软件,特性是一切皆文件:一切设备皆文件!一切设备的设置皆修改配置文件!一切服务的搭建皆修改配置文件!(庞大的树形结构文件系统) 根据FHS标准,Linux目录有以下 ...

  3. 打地鼠(susliks) 方法记录

    [SDOI2011]打地鼠 题目描述 2020.4.29 数据更新. 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其 ...

  4. Django系列---理论一

    教程:http://c.biancheng.net/django/ 特点 集成 ORM 组件:Django 的 Model 层自带数据库 ORM 组件,为操作不同类型的数据库提供了统一的方式. URL ...

  5. webpack -- element-ui 的按需引入

    简单说明原理: 使用babel-plugin-component实现按需引入.打包.将webpack配置成多入口,保证最终打包的目录结构符合babel-plugin-component插件的要求,实现 ...

  6. 畅联新接入物联设备的情况:丰宝 智慧消防领域的 NB水压一体机、智能消防栓、NB液位一体机

    我看了一下,似乎三种完全不同的协议额...应该是电信AEP平台,由双美接入. ------------------------------------------------------------- ...

  7. React+echarts (echarts-for-react) 画中国地图及省份切换

    有足够的地图数据,可以点击到街道,示例我只出到市级 以umi为框架,版本是: "react": "^18.2.0", "umi": &quo ...

  8. Kubernetes核心技术Pod

    Kubernetes核心技术Pod Pod概述 Pod是K8S系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在K8S上运行容器化应用的资源对象,其它的资源对象 ...

  9. Windows Server 2019 安装 Oracle 19C RAC(VMWare虚拟机环境)

    软件 Windows Server 2019 Standard Oracle 19C Oracle Grid 19 VMware Workstation 16 规划 共享存储,使用Windows Se ...

  10. .NET实现堆排序

    堆排序及相关知识 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序.首先简单了解下堆结构. 堆 堆是具 ...