=== Fast RCNN === * 实现大部分end-to-end训练(提proposal阶段除外): 所有的特征都暂存在显存中,就不需要额外的磁盘空。 * 这个网络有两个输入,一个是整张图片,另一个是候选proposals算法产生的可能proposals(region proposal由selective search方法得到)的坐标。(言下之意是候选proposals算法与网络是分离的) * 提出了一个RoI层,算是SPP的变种,SPP是pooling成多个固定尺度,RoI只pooling到单个固定的尺度 (论文通过实验得到的结论是多尺度学习能提高一点点mAP,不过计算量成倍的增加,故单尺度训练的效果更好。) === Faster RCNN === * 在结构上,Faster RCNN已经将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。 * 经典的检测方法生成检测框都非常耗时,如OpenCV adaboost使用滑动窗口+图像金字塔生成检测框;或如R-CNN使用SS(Selective Search)方法生成检测框。而Faster RCNN则抛弃了传统的滑动窗口和SS方法,直接使用RPN生成检测框,这也是Faster R-CNN的巨大优势,能极大提升检测框的生成速度。 **结构** * backbone能够接收整张输入图片并提取特征图。**整张图片经过backbone得到共享特征图feature map**。该feature maps被共享用于后续的RPN层和ROI Pooling * Region Proposal Networks。**RPN网络用于生成region proposals**。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。 * ROIpooling层。该层收集输入的feature maps和proposals,综合这些信息后**提取proposal feature maps,送入后续全连接层判定目标类别**。 * 利用proposal feature maps计算proposal的类别,同时再次bounding box regression**获得检测框最终的精确位置**。 *Faster Rcnn的模型结构如下: {{:faster_rcnn.png?600|}} **实现** *[[https://github.com/bubbliiiing/faster-rcnn-pytorch|pytorch-实现Faster-RCNN代码]] *[[https://github.com/bubbliiiing/faster-rcnn-keras|keras-实现Faster-RCNN代码]] *[[https://github.com/bubbliiiing/faster-rcnn-tf2|TensorflowV2-实现Faster-RCNN代码]] *mmdetetion框架也可以实现Faster-Rcnn目标检测 *[[https://github.com/open-mmlab/mmdetection|mmdetection官方框架]] *[[https://mmdetection.readthedocs.io/|mmdetection框架官方教程文档]] ** 论文** *[[https://arxiv.org/abs/1506.01497|Faster-RCNN论文]]