RCNN, Fast-RCNN, Faster-RCNN联系与区别

RCNN

RCNN使用以下四步实现目标检测: 
a. 在图像中确定约1000-2000个候选框 
b. 对于每个候选框内图像块,使用深度网络提取特征 
c. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类 
d. 对于属于某一特征的候选框,用回归器进一步调整其位置 

RCNN, Fast-RCNN, Faster-RCNN联系与区别

Fast-RCNN

1. 使用selective search算法为每一张待检测的图片提取出2000左右的候选框,这一点和RCNN相同;
2. 特征提取阶段,同样是提取出整张图片的feature map,然后将原图上的候选框映射到feature map上。然后对各个候选框对应3. 的feature map上的块做ROI pooling,提取出固定长度的特征向量;
4. 对于上一步的每一个ROI,网络输出每个类的概率和每个bounding box;
5. 最后,使用NMS算法。
 

Fast R-CNN的RegionProposal是在feature map之后做的。

 损失函数使用了multi-task loss(多任务损失)函数,将边框回归直接加到CNN网络中训练。分类Fast R-CNN直接用softmax替代R-CNN用的SVM进行分类。

 

 

RCNN, Fast-RCNN, Faster-RCNN联系与区别

Faster RCNN

Faster R-CNN这篇论文着重解决了这个系统中的2个问题:
1. 让CNN网络完成region proposal;
2. 让区域生成网络和Fast RCNN网络共享特征提取网络。

在整个Faster R-CNN算法中,有三种尺度:
1. 原图尺度:原始输入的大小。不受任何限制,不影响性能。

2. 归一化尺度:输入特征提取网络的大小,在测试时设置,源码中opts.test_scale=600。anchor在这个尺度上设定。这个参数和anchor的相对大小决定了想要检测的目标范围。
3. 网络输入尺度:输入特征检测网络的大小,在训练时设置,源码中为224*224。

RCNN, Fast-RCNN, Faster-RCNN联系与区别

补充
文中anchors的数目:对于1000×600的一张图像,大约有20000(~60×40×9)个anchors,忽略超出边界的还剩下6000个,利用非极大值抑制去掉重叠区域,剩2000个用于训练(一个epoch,随机从一幅图的2000个anchors采样256个作为一个Mini-batch训练RPN网络,正负样本比例约为1:1); 测试时在2000个区域建议中选择Top-N【文中为300】个区域建议用于Fast R-CNN检测。
 

 

参考:

http://www.cnblogs.com/venus024/p/5717766.html

https://blog.****.net/hust_lmj/article/details/78974348

https://blog.****.net/lk123400/article/details/54343550