Fast R-CNN解读
来源:互联网 发布:软件架构设计的软件 编辑:程序博客网 时间:2024/06/07 10:28
Introduction
由于检测的复杂性,目前的一些模型都是多阶段的训练过程,首先是得到region proposals,然后提取region feature,预测bounding box, 最后进行精修,这一系列过程并不是端到端的,需要存储大量的中间特征,耗费大量的空间,并且训练过程很慢,也不elegant.
因此,rgb大神把这整个过程串起来了,提出一个单阶段训练算法,同时把object proposals分类和精修一起做了,相比于R-CNN和SPP-Net,训练速度和测试速度都快了很多。
R-CNN 缺点:
1.训练时多阶段的;首先微调卷积神经网络获得object proposals,然后把卷积网络特征喂给SVM,SVM作为物体检测器,代替了原有的softmax分类器,最后学习到bounding box;
2.训练的时间复杂度和空间复杂度很高;为了SVM和bound-box regrossor的训练,每个proposal特征提出出来并存在了磁盘上,5000张图片就需要2.5天,这些特征存储也需要好几百G的存储空间;
3.物体检测很慢;测试的时候,需要计算每个proposal的特征,VGG 16在GPU模式下检测一张图片需要47s;
SPP-Net通过加入SPP层大大加速了R-CNN的速度,并且每张图片只需要计算一次特征;但是SPP-Net依旧是多阶段的,并且不能对卷积层进行微调,这绝对是限制了深度网络的准确率。
Fast R-CNN architecture and training
可以看到,Fast R-CNN的网络结构有一个比较大的变化,输入时一张图片和一系列的proposals,经过CNN提取特征,输入到ROI pooling层变成大小相同的特征向量(大小为H*W,可以看成是SPP层的一种特殊情况,单pooling),然后到FC层,但是最后是两个输出层,一个产生proposal的类别,一个产生bounding-box的位置;
Fast R-CNN用预训练好的网络,需要做三个方面的修改:
1. 最后一层的max pooling变成RIO pooling,比如VGG16的H=W=7;
2. 最后一层的输出从1000变成了K+1(类别+背景) 和bounding box regrossor;
3. 网络又两个输入,一个是图片,另一个是图片的ROI;
Fast R-CNN的优点:
1.比R-CNN和SPP-Net更高的检测质量(map);
2.训练时单个阶段的,使用多任务损失函数(multi-task loss);
3.训练可以更新所有网络层的参数;
4.不需要feature caching的存储;
SPP-Net不能BP的原因:
根本原因在于当每个训练样本来自于不同 的图片通过SPP层BP效率是极其低的,低效率又是因为每个ROI有很大的感受野(receptive field),经常是横跨整个输入图片的;
本文提出一种利用特征共享的更加高效的训练方式。在训练过程中,SGD的mini-batch首先抽样N张图片,然后每张图片抽样R/N个ROIs,同一张图片的ROI在forwad和backward的过程中都是共享参数的;
Multi-task loss
相比于训练softmax分类器,SVM,regrossor三个阶段,fast R-CNN把这些过程都一起优化。
多任务损失函数:
L1 loss对异常值更不敏感相比于L2 loss;
超参数lambda控制两个loss的平衡,在使用中取1;
多尺度训练的方法可以近似大小不变;
Fast R-CNN detection
SVD for faster detection
对于整个图片的分类,相比于卷积层,FC层画的时间很少,但是在检测中,由于ROI的数量很大,有一半的时间画在了FC层,通过简单的奇异值分解对FC层进行加速;
假设某层的参数可以分解为:
U大小为u*t,V为v*t,中间为t*t,这样的话参数个数可以从u*v降为t(u+v),如果t远远小于min(u,v)就更显而易见了;把SVD用于两层FC层,可以很好的加速,并且mAP只下降了0.3%;
Main results
fine-tune conv3_1以上的卷积层;
更多的训练数据可以提升mAP;
softmax和SVM的比较:
- Fast R-CNN解读
- 转载大神的文章,解读FAST R-CNN(fast r-cnn)
- Fast R-CNN
- Fast R-CNN笔记
- Fast R-CNN笔记
- Fast R-CNN
- Fast R-CNN
- Fast R-CNN
- Fast R-CNN
- Fast R-CNN笔记
- Fast R-CNN
- Fast R-CNN
- 论文:Fast R-CNN
- fast r-cnn笔记
- Faster R-CNN(~ RPN + Fast R-CNN)
- R-CNN、Fast-R-CNN和Faster-R-CNN
- R-CNN,Fast R-CNN,Faster R-CNN
- R-CNN,Fast R-CNN,Faster R-CNN
- 覆盖
- Recyclerview 实现listView的代码
- msysgit初次安装
- org.apache.ibatis.builder.IncompleteElementException: Could not find parameter map com.vo.app
- PS_BaseUse_两张图片置入融合
- Fast R-CNN解读
- spring源码附录(6)解析子元素property
- Ncurses 5.9 Compilation Error
- redis缓存基本介绍
- Android -- Audio系统之AudioTrack内部实现简析(二)
- scanf、gets、getchar、cin、cin.get、cin.getline、getline总结
- 用ps把图片变成素描画
- Linux内核分析(六)
- SWPUACM省赛other团队校内选拔赛暨第一次蓝桥杯国赛集训题解