FasterRCNN 提升分类精度(转)
近年来,随着深度学习的崛起,计算机视觉得到飞速发展。目标检测作为计算机视觉的基础算法,也搭上了深度学习的快车。基于Proposal的检测框架,从R-CNN到Faster R-CNN,算法性能越来越高,速度越来越快。另一方面,直接回归Bounding Box的框架,从YOLO到SSD,在保持速度优势的同时,性能也逐渐得到提升。“深度学习大讲堂”往期介绍过这方面的进展,在此不再赘述。
近期,我们在PASCAL VOC2012目标检测上提交的结果mAP性能达到87.9,刷新了世界记录,排名第一名。
1.寻找更优的网络结构
”Features matter.” 去年MSRA凭借ResNets [2]取得了多项任务性能上的突破。以ResNet-101为基准,有没有网络可以提供更优的特征?我们验证了以下几个网络。
2. 改进RPN Proposal
在Faster R-CNN框架里面,RPN提取Proposal和FRCN对Proposal进行分类其实是2个独立的问题。针对RPN,我们做出了以下2处改进:
3. 全局上下文建模
每个Proposal对应原始图像中的一个ROI区域。对这个ROI区域进行分类时, FRCN先把ROI映射到中间特征图上,然后在中间特征图上做裁剪(RoIPooling)。裁剪出来的小特征图输入到CNN分类器中。可以看到,CNN分类只使用了ROI区域内的局部特征。实际上,ROI周围的上下文信息对于判断这个ROI类别是很有帮助的。例如对一个乒乓球分类,很容易和光源混淆。如果知道周围有乒乓球拍、乒乓球台等目标,则更容易判断这是个乒乓球。 全局上下文建模是从整幅图像提取特征,然后和每个Proposal的局部特征相融合,用于分类。去年MSRA
[2]使用全局上下文,得到了1个点的性能提升。然而他们没有发布具体的实现细节。我们实现的全局上下文网络结构如图 2所示。
我们发现,对于图中的全局上下文网络分支,训练时如果采用随机初始化,性能提升非常有限。如果用预训练的参数初始化,在ImageNet DET验证集上可以得到超过3个点的性能提升。对于ResNets,RoIPooling后面的conv5有9层卷积。而Faster R-CNN finetune时一般初始学习速率又会设得比较小(0.001)。这就导致从头训练这9层卷积比较困难。因此,这里预训练显得尤为重要。另外,[2]还把全局上下文特征同时用于分类和Bounding
Box回归。我们发现全局上下文特征对于Bounding Box回归没有帮助,只对分类有帮助。
4. 训练技巧
a) 平衡采样。很多数据集存在样本不均衡的问题,有些类别特别多,有些类别特别少。训练模型时,从一个图像列表中依次读取样本训练。这样的话,小类样本参与训练的机会就比大类少。训练出来的模型会偏向于大类,即大类性能好,小类性能差。平衡采样策略就是把样本按类别分组,每个类别生成一个样本列表。训练过程中先随机选择1个或几个类别,然后从各个类别所对应的样本列表中随机选择样本。这样可以保证每个类别参与训练的机会比较均衡。在PASCAL
VOC数据集上,使用平衡采样性能可以提升约0.7个点。
5. 预测技巧
预测阶段,我们用了多尺度预测,水平翻转,和检测框投票。这些策略的具体实现在很多文献中都有描述。这里我们可以分享一下多个检测结果的融合策略。当使用多尺度预测,水平翻转,还有多模型Ensemble时,对于同一张测试图像,我们会得到好几组结果。对于这些结果,最直观的融合方式就是把所有的检测框放在一起,然后用非极大值抑制(NMS)处理一下。但是我们发现另一种方式效果更好,就是把RPN和FRCN分开来做。先对RPN做多尺度、水平翻转、多模型的融合,得到一组固定的Proposal之后,再对FRCN进行多尺度、水平翻转、多模型的融合。RPN的融合用NMS更好,FRCN的融合用对Proposal的置信度和Bounding
Box位置取平均值的方式更好。 总结
本文总结了我们做出的一些Faster R-CNN改进技巧,并分享了算法实现过程中遇到的细节问题。正如谚语所言,”The devil is in the details.” 希望我们的这些算法细节对同行以及相关的算法爱好者们提供一定的帮助和指引。我们抛砖引玉,期待同行们也可以分享自己的经验
FasterRCNN 提升分类精度(转)的更多相关文章
- ECCV 2018 | Bi-Real net:超XNOR-net 10%的ImageNet分类精度
这项工作由香港科技大学,腾讯 AI lab,以及华中科技大学合作完成,目的是提升二值化卷积神经网络(1-bit CNN)的精度.虽然 1-bit CNN 压缩程度高,但是其当前在大数据集上的分类精度与 ...
- 10. 混淆矩阵、总体分类精度、Kappa系数
一.前言 表征分类精度的指标有很多,其中最常用的就是利用混淆矩阵.总体分类精度以及Kappa系数. 其中混淆矩阵能够很清楚的看到每个地物正确分类的个数以及被错分的类别和个数.但是,混淆矩阵并不能一眼就 ...
- 手工设计神经MNIST使分类精度达到98%以上
设计了两个隐藏层,激活函数是tanh,使用Adam优化算法,学习率随着epoch的增大而调低 import tensorflow as tf from tensorflow.examples.tuto ...
- 《Self-Attention Generative Adversarial Networks》里的注意力计算
前天看了 criss-cross 里的注意力模型 仔细理解了 在: https://www.cnblogs.com/yjphhw/p/10750797.html 今天又看了一个注意力模型 < ...
- 全国30m精度二级分类土地利用数据
数据下载链接:数据下载链接 引言 全国土地利用数据产品是以Landsat TM/ETM/OLI遥感影像为主要数据源,经过影像融合.几何校正.图像增强与拼接等处理后,通过人机交互目视解译的方法,将全国 ...
- 写给程序员的机器学习入门 (十) - 对象识别 Faster-RCNN - 识别人脸位置与是否戴口罩
每次看到大数据人脸识别抓逃犯的新闻我都会感叹技术发展的太快了,国家治安水平也越来越好了
- 【Python与机器学习】:利用Keras进行多类分类
多类分类问题本质上可以分解为多个二分类问题,而解决二分类问题的方法有很多.这里我们利用Keras机器学习框架中的ANN(artificial neural network)来解决多分类问题.这里我们采 ...
- 提升学习算法简述:AdaBoost, GBDT和XGBoost
1. 历史及演进 提升学习算法,又常常被称为Boosting,其主要思想是集成多个弱分类器,然后线性组合成为强分类器.为什么弱分类算法可以通过线性组合形成强分类算法?其实这是有一定的理论基础的.198 ...
- 机器学习(七)—Adaboost 和 梯度提升树GBDT
1.Adaboost算法原理,优缺点: 理论上任何学习器都可以用于Adaboost.但一般来说,使用最广泛的Adaboost弱学习器是决策树和神经网络.对于决策树,Adaboost分类用了CART分类 ...
随机推荐
- 2017-9-15-Linux移植:WinSCP软件 & SSH Server开启
在Linux电脑上面安装了TFTP server,但是各种不给力,决定寻找其他办法在Windows和Linux之间传输文件. WinSCP 是一个 Windows 环境下使用 SSH 的开源图形化 S ...
- curl获取结果乱码的解决方法之CURLOPT_ENCODING(curl/Post请求)
//php脚本开始 /*POST请求远程内容函数*/ function ppost($url,$data,$ref){ // 模拟提交数据函数 $curl = curl_init( ...
- POJ 水题(刷题)进阶
转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...
- 安装vmware 已经配置Centos7
一:安装vmware VMware14 安装CentOS7及其配置;CentOS7配置网桥,做远程连接; 1.VMware14安装 进入百度链接,按照图形安装就好了.https://ji ...
- 考前停课集训 Day7 嘞
Day7 正如一个大佬提醒的那样,棕名是会被嘲讽的 果然…… 在洛谷里…… 算了. 不必在意. 马上就要退役了. NOIP,开始的地方,也是结束的地方. 如果一群OIer比你小 还会嘲讽你, 你就该退 ...
- yii2 basic版 MVC 部分
一.model 1.什么是模型 模型是 MVC 模式中的一部分,是表现业务数据.规则和逻辑的对象 可通过继承 yii\base\Model 或它的子类(activeRecord)来定义模型类,基类 y ...
- Some interesting facts about static member functions in C++
Ref http://www.geeksforgeeks.org/some-interesting-facts-about-static-member-functions-in-c/ 1) stati ...
- 转 Multiple outputs from T4 made easy t4生成多文件
原文:http://damieng.com/blog/2009/11/06/multiple-outputs-from-t4-made-easy-revisited Usage Initializat ...
- 虚拟串口VSPD破解版 亲测win10 64可用
虚拟串口VSPD破解版 亲测win10 64可用 点击下载
- 减少apk包大小的一种思路
现在apk大小主要是决定于两个:一个是图片一个是.SO文件(这个尽量用release包),而对于图片,既要越小,又要保持质量. 之前是PNG --> JPG, 现在直接是PNG ---> ...