论文阅读(Chenyi Chen——【ACCV2016】R-CNN for Small Object Detection)
Chenyi Chen——【ACCV2016】R-CNN for Small Object Detection
目录
- 作者和相关链接
- 方法概括
- 创新点和贡献
- 方法细节
- 实验结果
- 总结与收获点
- 参考文献
作者和相关链接
论文下载
Chenyi Chen , Ming-Yu Liu, Jianxiong Xiao
所有作者的简单信息
方法概括
- 这篇文章主要讨论针对小目标的目标检测
- 文章为了证明:对传统的R-CNN style的方法进行改进,可以用于小目标检测,并且性能比DPM方法好
- 整个检测流程:
- 用改进版的RPN(修改了anchor的尺度,称为modified RPN)提取候选区域;
- 用改进版的CNN(结合了上下文信息的CNN模型,base的CNN可以用AlexNet或者VGG,称为ContextNet)对候选区域进行分类。(不做box regression)
创新点和贡献
- 文章从三个角度对比了小目标检测的方法:
- 候选区域生成:传统RPN vs.modified RPN(更好!)
- 上采样策略:上采样比例小+去掉全连接 vs.上采样比例大+保留全连接(更好!)
- 是否使用上下文信息: 不适用上下文 vs. 使用上下文(更好!)
- 文章的贡献在于:
- 提出了一个专门针对小目标的目标检测benchmark库;
- 提出了一个把传统R-CNN方法进行改进用于小目标检测的思路和流程
- 小目标的难点:
- 一张图中小目标比大目标往往更多
- 小目标的像素少(信息少)
- 目前针对小目标的研究非常有限,大部分文献都是针对VOC库中的大目标
- 文章从三个角度对比了小目标检测的方法:
方法细节
小目标benchmark库的建立
小目标的定义?
- 现实生活中的目标的物理大小相对较小,比如,鼠标,插孔,盘子等等,即实际大小也比较小
- 在图像中所占整张图像的比例小

大库(包含大,小目标)如何做成小库(仅包含小库)?
- 使用Microsoft COCO和SVN库的子集
- 只挑选了10类
- 去掉10类中目标比较大的(即使是鼠标类,在有的图像中鼠标也很大,把这些样本去掉)
数据库大小
- 4925张图像,8393个目标(train:test = 2:1)
- 小目标的相对面积的中位数(media realative area)分布在0.08%~0.58%(约16*16~42*42像素)
- 一般的大目标的media realative area分布在1.38%~46.4%
- 具体的类别,图像数,相对面积分布如下表:
relative area即相对面积 = Area(bounding box of the object) / Area(image)【见Table1和Table2的对比】

评估标准(mAP,和普通的多类目标检测一样)
- 单类的PR曲线(调整IOU的阈值)
- 单类的average precision:(PR曲线求积分,面积)
- 多类的mAP:每类的average precision直接取平均
针对R-CNN style方法进行修改得小目标检测方法和流程
候选区域生成
- 本文方法(modified RPN):普通的RPN修改了anchor大小修改 + feature map选择
- anchor 大小修改:128^2, 256^2,512^2 → 16^2, 40^2, 100^2
- feature map选择:conv5 → conv4_3
- 初始RPN的anchor 和 流程如下:

- 拿来对比的两种方法:DPM(据说在R-CNN出现之前最好的方法,HOG+SVM),原始的RPN(用来检测大目标的)
- 实验对比结果

实验结论:修改anchor尺度(modefied RPN) 比DPM好,比原始RPN好!
上采样策略
- 本文方法(full AlexNet):直接把modefied RPN得到的候选区域resize成分类要用的CNN的原始输入图像(AlexNet是227,VGG是224)
- 对比的方法(Partial AlexNet):把候选区域resize成67*67,输入到分类要用的CNN(因为AlexNet和VGG有全连接层,所以只能处理固定成规定大小的图像,但是如果把全连接层去掉,只取卷积层,就能用于处理大小和规定的固定大小不一样的输入图像),最后接个分类层
- 实验对比结果:
- 因为候选区域的大小很小,如果用full AlexNet(全连接层),则必须resize成227或者224,都是放大了好几倍,所以作者考虑到这样的放大可能引入了artificats,这个部分的实验就是在证明即使这样放大的效果也比不用整个网络只用全卷积层得到的效果更好。作者认为,第一,因为输入图像大小变小了,所以相同的感受野大小(网络结构相同)对小图而言,可能就是对应了原图的很大部分,属于coarse的scale,而对于大图,因为只对应原图的一小部分,所以更加fine,细节更多,信息更丰富;第二,从得到的特征来看,小图的feature更短,大图的feature更长(只考虑卷积层)。

实验结论:取整个(包括fc层)分类网络(Full AlexNet)比只取卷积部分的网络(Partial AlexNet)好
上下文信息的结合
- 本文方法(Context-AlexNet)网络结果如下图:
- 网络结构分为两部分,front-end和back-end。
- front-end由两个并行的CNN组成,一个以proposal region直接作为输入,经过6个conv层(Alex或者VGG)+1个fc层,得到4096维的特征;另一个以proposal region为中心,在原图上取4倍的proposal region的一个context region作为输入,经过6个conv层+1个fc层,得到4096维的特征
- back-end以front-end的两个4096的特征串起来作为输入,经过2个fc层+1个softmax层得到每个proposal region的分类信息。
- 本文方法(Context-AlexNet)网络结果如下图:

- 对比的方法(Baseline AlexNet):普通的AlexNet,没有context信息。另外,作者对比了上下文的尺度大小(放大3倍还是7倍)


- 实验对比结果

实验结论:用了上下文(ContextNet)比不用上下文(Baseline AlexNet)好!7倍和3倍差别不大!
实验结果
- 最终的mAP上和其他方法的对比(比DPM,AlexNet R-CNN,和VGG R-CNN都好)

- 最终的mAP上AlexNet和VGG的对比(VGG好,层数更深),不同proposal个数对比(取300好,false positive少)

总结与收获点
- 做小目标的几个思路:专门建立小目标库,对小目标大小进行统计分析,对网络进行修改(卷积核大小,anchor大小),利用目标周围的上下文信息
论文阅读(Chenyi Chen——【ACCV2016】R-CNN for Small Object Detection)的更多相关文章
- 论文阅读笔记六十三:DeNet: Scalable Real-time Object Detection with Directed Sparse Sampling(CVPR2017)
论文原址:https://arxiv.org/abs/1703.10295 github:https://github.com/lachlants/denet 摘要 本文重新定义了目标检测,将其定义为 ...
- 论文阅读 | RefineDet:Single-Shot Refinement Neural Network for Object Detection
论文链接:https://arxiv.org/abs/1711.06897 代码链接:https://github.com/sfzhang15/RefineDet 摘要 RefineDet是CVPR ...
- 三维目标检测论文阅读:Deep Continuous Fusion for Multi-Sensor 3D Object Detection
题目:Deep Continuous Fusion for Multi-Sensor 3D Object Detection 来自:Uber: Ming Liang Note: 没有代码,主要看思想吧 ...
- 论文阅读笔记五十七:FCOS: Fully Convolutional One-Stage Object Detection(CVPR2019)
论文原址:https://arxiv.org/abs/1904.01355 github: tinyurl.com/FCOSv1 摘要 本文提出了一个基于全卷积的单阶段检测网络,类似于语义分割,针对每 ...
- 【CV论文阅读】:Rich feature hierarchies for accurate object detection and semantic segmentation
R-CNN总结 不总结就没有积累 R-CNN的全称是 Regions with CNN features.它的主要基础是经典的AlexNet,使用AlexNet来提取每个region特征,而不再是传统 ...
- 论文阅读:EGNet: Edge Guidance Network for Salient Object Detection
论文地址:http://openaccess.thecvf.com/content_ICCV_2019/papers/Zhao_EGNet_Edge_Guidance_Network_for_Sali ...
- 论文阅读笔记五十八:FoveaBox: Beyond Anchor-based Object Detector(CVPR2019)
论文原址:https://arxiv.org/abs/1904.03797 摘要 FoveaBox属于anchor-free的目标检测网络,FoveaBox直接学习可能存在的图片种可能存在的目标,这期 ...
- 【论文笔记】YOLOv4: Optimal Speed and Accuracy of Object Detection
论文地址:https://arxiv.org/abs/2004.10934v1 github地址:https://github.com/AlexeyAB/darknet 摘要: 有很多特征可以提高卷积 ...
- 论文阅读(Xiang Bai——【arXiv2016】Scene Text Detection via Holistic, Multi-Channel Prediction)
Xiang Bai--[arXiv2016]Scene Text Detection via Holistic, Multi-Channel Prediction 目录 作者和相关链接 方法概括 创新 ...
随机推荐
- BZOJ4572: [Scoi2016]围棋
Description 近日,谷歌研发的围棋AI—AlphaGo以4:1的比分战胜了曾经的世界冠军李世石,这是人工智能领域的又一里程碑. 与传统的搜索式AI不同,AlphaGo使用了最近十分流行的卷积 ...
- Mybatis拦截器 mysql load data local 内存流处理
Mybatis 拦截器不做解释了,用过的基本都知道,这里用load data local主要是应对大批量数据的处理,提高性能,也支持事务回滚,且不影响其他的DML操作,当然这个操作不要涉及到当前所lo ...
- PHP TCPDF ERROR: [Image] Unable to get image解决办法详解
使用TCPDF输出pdf文件时,有时会直接显示pdf文件不可显示,仔细调试之下会报错TCPDF ERROR: [Image] Unable to get image.问题出现Image()函数中.第一 ...
- android中的回调简单认识
首先说一下最抽象的形式--2个类,A类和B类.A类含有1个接口.1个接口变量.(可能含有)1个为接口变量赋值的方法以及1个会使用接口变量的"地方";B类实现A中的接口,(可能)含有 ...
- java并发编程(四)守护进程 线程阻塞的四种情况
转载请注明出处:http://blog.csdn.net/ns_code/article/details/17099981 守护线程 Java中有两类线程:User Thread(用户线程).Da ...
- javascript学习之运动框架
模仿新浪博客首页的,最新评论: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"&g ...
- XmlUtils.java
package com.vcredit.framework.utils; import java.io.Writer; import org.apache.commons.lang3.StringUt ...
- Codeforces Round #384 (Div. 2) E
给出n个数字 1-8之间 要求选出来一个子序列 使里面1-8的数字个数 极差<=1 并且相同数字必须相邻(112 可以但是121不行)求这个子序列的最长长度 一道状压dp 看不懂别人的dp思想. ...
- Python强化训练笔记(六)——让字典保持有序性
python的字典是一个非常方便的数据结构,使用它我们可以轻易的根据姓名(键)来找到他的成绩,排名等(值),而不用去遍历整个数据集. 例如:{'Lee': [1, 100], 'Jane': [2, ...
- python学习道路(day10note)(线程,进程)
1.计算机的发展史 看alex的博客吧,了解一下可以了 2.线程与GIL简介 #线程 #一道单一的指令的控制流,寄生在进程中 #单一进程里的多个线程是共享数据的 #多个线程涉及修改共享数据的时候需要枷 ...
