这篇文章主要讲解了“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.)
R-CNN提出以前,各式各样的目标检测算法大都基于SIFT和HOG算子,二者都是 blockwise orientation histograms,我们可以大致地将它们与哺乳动物视觉联系起来。但大脑的识别过程应该是多层传递的,因此识别程序也应该有一个多层结构。基于此,Fukushima 提出了“neocognitron”方法,Lecun 也提出了“missing algorithm”。
鉴于13年CNN的火爆,作者认为:CNN在图像分类上的结果也可以扩展应用到PASCAL VOC的挑战上。为了达成目标,需要解决两个问题:
用深度网络定位目标。目标检测首先需要定位物体(localization)。定位的实现方式一般为滑动窗检测(用窗口截取图像的一部分,每次都做一个定位回归),但对于较大感受野和步长的CNN是一个不小的挑战。
用小容量的标记数据训练大容量的网络。解决方式上面其实已经说了,就是在ILSVRC这个大的辅助训练集上进行监督训练,接着在PASCAL上domain-specific fine-tuning。
另外,作者的系统也十分有效:The only class-specific computations are a reasonably small matrix-vector product and greedy non-maximum suppression。
作者还发现,即使去除94%的参数,CNN模型检测的准确率只会有略微的下降。通过一个检测分析工具,发现只需要通过简单的边界框回归就可以显著地降低定位错误率。
整个检测系统分为三个部分:
生成独立分类的候选区域。作者的方法是use selective search to enable a controlled comparison with prior
用CNN,对每个候选区域提出固定长度的特征向量。输入的图片固定为227*227,且提前进行mean-subtracted处理。之后用一个5卷积层,2全连接层的CNN来提取4096维特征向量。
用SVM对特征向量进行分类。
一开始,系统先用selective search提取2000个候选区域,并将其warp到277*277大小,进入CNN提取特征,并用SVM分类。最后,再用 greedy non-maximum suppression 把那些高度重叠的框剔除。
R-CNN运行时间很短,这归功于两点:1. CNN对于每个分类的参数都是共享的;2. 与其他方法相比,4096维的特征向量算是很小的了。
运行结果是,即使有100k个分类,一张图在多核CPU上也只要10秒;生成的低维特征图只占1.5GB。
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方法
作者提交了两个版本,一个没有bounding box regression(RCNN),一个有(RCNN BB),结果如下:
简而言之,就是MAP显著提高了不少(从35.1%到53.7%),而且运行时间也短。
感谢各位的阅读,以上就是“R-CNN模型是怎样的”的内容了,经过本文的学习后,相信大家对R-CNN模型是怎样的这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。