一、目标检测之Faster R-CNN
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
- 论文链接:http://arxiv.org/abs/1506.01497
- 论文翻译:https://blog.csdn.net/Quincuntial/article/details/79132251
- 论文详解:
1、https://blog.csdn.net/WZZ18191171661/article/details/79439212
2、https://blog.csdn.net/u011746554/article/details/74999010 - 论文代码:(Tensorflow)
1、https://github.com/smallcorgi/Faster-RCNN_TF
2、https://github.com/CharlesShang/TFFRCNN
二、Faster R-CNN算法
1、Faster R-CNN基本结构
Faster R-CNN分为以下四个内容:
- Conv layers:作为一种CNN网络目标检测方法,Faster R-CNN首先使用一组基础的conv+relu+pooling层提取image(任意大小)的feature maps。常用一些预训练好的网络(VGG、Inception、Resnet等);该feature maps被共享用于后续RPN层和全连接层。
- Region Proposal Networks:RPN网络用于生成region proposals。该层通过softmax判断anchors属于foreground或者background,再利用bounding box regression修正anchors获得精确的proposals。
- RoI Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
- Classifier:利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。
2、Faster R-CNN网络结构
上图展示了Python版本中的VGG16模型中的faster_rcnn_test.pt的网络结构:
- 该网络对于一副任意大小PxQ的图像,首先缩放至固定大小MxN,然后将MxN图像送入网络;而Conv layers中包含了13个conv层+13个relu层+4个pooling层;
- RPN网络首先经过3x3卷积,再分别生成foreground anchors与bounding box regression偏移量,然后计算出proposals;
- ROI Pooling层则利用proposals从feature maps中提取proposal feature送入后续全连接和softmax网络作classification(即分类proposal到底是什么object)。