Faster RCNN论文阅读
- 引言
当前最先进的目标检测模型是由区域提案方法和基于区域的卷积神经网络引领的,由于共享计算,卷积网络花费的时间已经大大减小了,所以当前检测系统的瓶颈就是如何减小区域提案生成部分的花费时间。当前流行的区域提案方法之一SS就挺慢的,EdgeBoxes在提案生成的时候也很慢。
作者观察到用来生成特征图的基于区域的检测器(如fast RCNN)同样可以用于生成区域提案,于是作者提出使用一个深度卷积神经网络来计算提案,计算速度快到可以忽略,作者将这个用来计算提案的卷积网络叫做RPNs。它可以和后面的网络共享卷积层,于是计算每一个提案的边际成本就很低了。作者在检测器的前面加了几层卷积层用来生成实时的边框回归和目标置信分数,这几层卷积层构成了RPN。
作者引入了一个概念叫做anchor,它是一系列的尺度(大小)和比例(长宽比)不同的框。通过anchor这个概念所定义的模型避免了无数的图片或者不同尺度、比例的过滤器的使用。
为了将RPNs和Fast RCNN结合起来作者提出了一个交替进行训练和微调的反感,使用这个方案可以是网络寻思地融合并且卷积特征可以在两个模型里共享。
- 相关工作
目标提案。当前主流的目标提案方法主要有两类,一是基于超像素的(SS、CPMC、MCG,超像素是用一个个小色块逐渐融合变成较大的色块使计算机处理图片更快且显示出了物体边界),二是基于滑窗的。目标提案模块是独立于检测模块的。
用于目标检测的深度网络。RCNN主要是作为一个分类器,它不预测物体边界,它分类的准确率取决于提案划分的准确率。作者提到两个用深度网络来预测物体边界的网络,一个是overfeat,它在卷积层之前加了个全连接层来预测边界。一个是multibox,它的最后用于分类的全连接层可以同时预测边界,不过它并没有在提案和检测这两个模块之间共享特征。共享卷积计算目前吸引人们的点主要是它带来的速度的提升而不是精度,像overfeat和SPPnet都是为了提升速度才引入的共享计算。
- Faster RCNN
Faster RCNN是有两个模块结合而成的,一个是用于生成区域提案的卷积神经网络,一个是用于检测的Fast RCNN,RPN使用注意力机制告诉fast RCNN图片的哪里是重点。
- RPN
RPN是一个全卷积网络(FCN)接受任意大小的图片输入,输出一系列的矩形的目标提案,每个框带有一个目标置信分数。为了和fast rcnn层共享一套卷积层,作者使用了ZF和VGG16,分别有5和13层可共享的卷积层。
作者在最后一个共享的卷积层的输出(n*n)上加了一个小的滑窗用来降维,它是3*3大小的(因为这个大小的实验效果最好),ZF和VGG16的滑窗过后的维度分别为256和512。之后的特征图送到两个兄弟网络,一个是用于边框回归的reg模块一个是用于目标分类的cls模块。
- 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设计使是实现共享卷积计算的关键。
- 损失函数
每个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论文阅读的更多相关文章
- Faster R-CNN论文阅读摘要
论文链接: https://arxiv.org/pdf/1506.01497.pdf 代码下载: https://github.com/ShaoqingRen/faster_rcnn (MATLAB) ...
- [原创]Faster R-CNN论文翻译
Faster R-CNN论文翻译 Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...
- k[原创]Faster R-CNN论文翻译
物体检测论文翻译系列: 建议从前往后看,这些论文之间具有明显的延续性和递进性. R-CNN SPP-net Fast R-CNN Faster R-CNN Faster R-CNN论文翻译 原文地 ...
- Faster R-CNN论文详解 - CSDN博客
废话不多说,上车吧,少年 paper链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks ...
- Faster RCNN论文学习
Faster R-CNN在Fast R-CNN的基础上的改进就是不再使用选择性搜索方法来提取框,效率慢,而是使用RPN网络来取代选择性搜索方法,不仅提高了速度,精确度也更高了 Faster R-CNN ...
- Faster RCNN论文解析
Faster R-CNN由一个推荐区域的全卷积网络和Fast R-CNN组成, Fast R-CNN使用推荐区域.整个网络的结构如下: 1.1 区域推荐网络 输入是一张图片(任意大小), 输出是目标推 ...
- Fast R-CNN论文阅读摘要
论文链接: https://arxiv.org/pdf/1504.08083.pdf 代码下载: https://github.com/rbgirshick/fast-rcnn Abstract Co ...
- Fast R-CNN论文阅读笔记
论文地址:Fast R-CNN R-CNN的缺陷 (1)训练是一个多级的流水线.R-CNN首先在候选目标上微调一个卷积神经网络,使用log loss.然后使用SVMs充当目标分类器,以取代softma ...
- R-CNN论文阅读摘要
论文链接: https://arxiv.org/pdf/1311.2524.pdf Abstract Our approach combines two key insights: (1) one c ...
- RCNN论文阅读笔记
一摘要: 两个主要工作:1将cnn和自上而下的区域提案结合进行定位和对象分割:2当训练数据稀缺时,先预训练然后微调. rccn工作分为四步:1输入一张图片 2用selective search算法对每 ...
随机推荐
- Hbase创建表参数说明
Hbase创建表操作及参数说明 1.创建命名空间 create_namespace 'test' 2.创建user表,列族:info create 'test:user', 'info' 3.查看表结 ...
- 函数柯里化实现sum函数
需求 实现sum函数,使其可以传入不定长参数,以及不定次数调用 //示例 console.log(sum(1,2)(3)()) //6 console.log(sum(2,3,4,5)(1,2)(3) ...
- 系统整理K8S的配置管理实战-建议收藏系列
目录 一.ConfigMap 1.1.创建 1.1.1.from-file 1.1.2.from-env-file 1.1.3.from-literal 1.1.4.基于yaml文件创建 1.2.Po ...
- VUE2 学习(推荐直接学习VUE3)
概念区分: 前端框架:Vue.AngularJS.React 界面模板:Bootstrap.easyUI.adminlte 学习地址: b站:https://space.bilibili.com/39 ...
- 二叉搜索树 - C++ 实现
二叉搜索树 - C++ 实现 概述 Overview 二叉查找树(英语:Binary Search Tree, 后文中简称 BST), 也称为二叉搜索树.有序二叉树(ordered binary tr ...
- 接入监控视频,为啥还需要对接厂商的SDK呢,不是有onvif这样的标准协议吗?
不少人问过我这个问题,这真是一个好问题. 我举两个例子,让您仔细品: ① 快速打开视频和极致操控的问题. onvif协议很科班,但厂商的sdk可能会给你一些独特的方法,譬如先make一个I帧,这样第一 ...
- 46.drf过滤、搜索、排序
DRF的过滤类 drf过滤器在filters模块中,主要有四个类 BaseFilterBackend:过滤基类,留好占位方法待后续继承 SearchFilter:继承BaseFilterBackend ...
- springboot使用jira-rest-java-client-api集成jira,自定义对查询board和sprint的支持
公司内部使用jira作项目管理,我接到新的需求,要在测试报告上获取jira的所有项目,再根据项目获取board看板,再根据看板获取Sprint,最后获取未完成的bug信息.效果如下: 第一次接入jir ...
- mindxdl--common--web_cert_utils.go
// Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common this file ...
- mindxdl--common--head_handler.go
// Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common the commo ...