RCNN系列之前
传统的detection主流方法:
DPM(Deformable parts models), 在VOC2007上能到43%的mAP,虽然DPM和CNN看起来差别很大,但依旧属于CNN。
CNN流行之后,Szegedy做过将detection问题作为回归问题的尝试(Deep Neural Networks for Object Detection),但是效果差强人意,在VOC2007上mAP只有30.5%。
RCNN
意义
把detection问题转化为CNN在分类问题。
实现
RCNN使用region proposal(具体用的是Selective Search Koen van de Sande: Segmentation as Selective Search for Object Recognition)来得到有可能得到是object的若干(大概10^3量级)图像局部区域,然后把这些区域分别输入到CNN中,得到区域的feature,再在feature上加上分类器,判断feature对应的区域是属于具体某类object还是背景。当然,RBG还用了区域对应的feature做了针对boundingbox的回归,用来修正预测的boundingbox的位置。
效果
RCNN在VOC2007上的mAP是58%左右。
弊端
RCNN存在着重复计算的问题(proposal的region有几千个,多数都是互相重叠,重叠部分会被多次重复提取feature)
Fast RCNN
意义
解决RCNN存在着重复计算的问题。
实现
跟RCNN最大区别就是Fast-RCNN将proposal的region映射到CNN的最后一层conv layer的feature map上,这样一张图片只需要提取一次feature,大大提高了速度,也由于流程的整合以及其他原因。
效果
在VOC2007上的mAP也提高到了68%。
弊端
Fast-RCNN的速度瓶颈在Region proposal上。
Faster RCNN
意义
解决Fast-RCNN在Region proposal上的速度瓶颈。
实现
RBG和Kaiming He一帮人将Region proposal也交给CNN来做,提出了Faster-RCNN。Fater-RCNN中的region proposal netwrok实质是一个Fast-RCNN,这个Fast-RCNN输入的region proposal的是固定的(把一张图片划分成n*n个区域,每个区域给出9个不同ratio和scale的proposal),输出的是对输入的固定proposal是属于背景还是前景的判断和对齐位置的修正(regression)。Region proposal network的输出再输入第二个Fast-RCNN做更精细的分类和Boundingbox的位置修正。
效果
Fater-RCNN速度更快了,而且用VGG net作为feature extractor时在VOC2007上mAP能到73%。
总结
如果都用一句话来描述。
RCNN 解决的是,“为什么不用CNN做classification呢?”(但是这个方法相当于过一遍network出bounding box,再过另一个出label,原文写的很不“elegant”。
Fast-RCNN 解决的是,“为什么不一起输出bounding box和label呢?”(但是这个时候用selective search generate regional proposal的时间实在太长了。
Faster-RCNN 解决的是,“为什么还要用selective search呢?”