这篇文章主要讲解了“R-CNN模型是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“R-CNN模型是怎样的”吧!
摘要
目标识别与检测数据库:PASCAL VOC在12年以前一直进展缓慢,一些新提出的优化方法只是把之前的方法线性地结合在一起。Ross Girshick提出的R-CNN直接将识别准确率提高了30%。作者主要利用两个因素:一个是CNN可以应用于区域候选,以便定位和分割物体;另一个是当标记的训练数据很少时,辅助任务的预训练加以fine-tuning,可以显著提高性能。(when labeled training data is scarce, supervised pre-training for an auxiliary task, followed by domain-specific fine-tuning, yields a significant performance boost.)
1. 介绍
R-CNN提出以前,各式各样的目标检测算法大都基于SIFT和HOG算子,二者都是 blockwise orientation histograms,我们可以大致地将它们与哺乳动物视觉联系起来。但大脑的识别过程应该是多层传递的,因此识别程序也应该有一个多层结构。基于此,Fukushima 提出了“neocognitron”方法,Lecun 也提出了“missing algorithm”。
鉴于13年CNN的火爆,作者认为:CNN在图像分类上的结果也可以扩展应用到PASCAL VOC的挑战上。为了达成目标,需要解决两个问题:
另外,作者的系统也十分有效:The only class-specific computations are a reasonably small matrix-vector product and greedy non-maximum suppression。
作者还发现,即使去除94%的参数,CNN模型检测的准确率只会有略微的下降。通过一个检测分析工具,发现只需要通过简单的边界框回归就可以显著地降低定位错误率。
2. R-CNN模型介绍
2.1 模型设计
2.2 Test-time detection
一开始,系统先用selective search提取2000个候选区域,并将其warp到277*277大小,进入CNN提取特征,并用SVM分类。最后,再用 greedy non-maximum suppression 把那些高度重叠的框剔除。
R-CNN运行时间很短,这归功于两点:1. CNN对于每个分类的参数都是共享的;2. 与其他方法相比,4096维的特征向量算是很小的了。
运行结果是,即使有100k个分类,一张图在多核CPU上也只要10秒;生成的低维特征图只占1.5GB。
2.3 Training
Supervised pre-training:先将CNN在ILSVRC 2012上进行预训练(with image-level annotations (i.e., no bounding box labels)),框架采用的是Caffe。由于训练过程的简单化,作者不小心就达到了ILSVRC最低错误率;
Domain-specific fine-tuning:微调过程,以0.001的学习速率进行SGD训练。对某个分类只要IOU>0.5就视该边框为正值。每次SGD迭代都采样38个正边框和96个背景。
Object category classifiers:对某个分类,高IOU和IOU都很好区分,但IOU处于中值时则很难定义生成的候选框是否包含了该物体。作者设定了一个阈值0.3,低于它的一律视为背景(负数)。另外,每个分类都优化一个SVM。由于负样本很多,因此还采用了hard negative mining方法
2.4 Results on PASCAL VOC 2010-12
感谢各位的阅读,以上就是“R-CNN模型是怎样的”的内容了,经过本文的学习后,相信大家对R-CNN模型是怎样的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是天达云,小编将为大家推送更多相关知识点的文章,欢迎关注!