R-CNN理解

来源:互联网 发布:php 用pack打包数据包 编辑:程序博客网 时间:2024/06/12 02:57

Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587. —— [ 论文链接]

简介

 在R-CNN之前的对象检测方法一般都是将低层图像特征和高层上下文相结合,相比于R-CNN,在对象检测过程中最好的mean average precision也不超过30%。R-CNN方法结合了两个关键点:(1)将高容量卷积神经网络(CNN)应用于自下而上的区域候选集,以便对对象进行定位和分割;(2)当带标签的训练数据稀缺时,使用带监督信息的预训练CNN网络,并对特定领域进行微调,可以显著提示性能。

R-CNN

模块设计

区域候选集:近来有一系列文章提出了生成与类别无关的区域候选集的方法,例如select search、multi-scale combinatorial grouping等。本文中作者使用的是selective search方法;
特征提取:使用一个CNN网络提取每个候选区域的特征向量(4096维)。因为神经网络的输入需要是一个固定尺寸,因此每次都需要把候选区域调整成227×227

训练

监督预训练:在辅助数据(ILSVRC 2012)上预训练一个CNN网络,其标签是图像级别的,而不是边框的标签、
特定领域微调:为了使CNN网络能够适应新的任务(对象检测)和新领域。将之前的CNN网络的最后一层从1000类改为21类(20个对象类+1个背景),若候选区域与groundtruth重叠度IOU0.5则定义该候选区域为正例。设置batchsize128,其中包含32个正例和96个负例。
对象分类器:对每一种类别的对象都训练一个SVM二分类器,判断一个候选区域是否属于该类。在训练的时候,给IoU设定一个阈值,低于该阈值的候选区域就是负例。由于参与训练的。为适应训练数据过大,SVM训练时采用standard hard negative mining method。

实验结果


这里写图片描述

原创粉丝点击