【Faster RCNN源码解读/复现】Faster RCNN网络总览

写在前面

博主是一名刚转行CV不久的一枚小硕,大约半年前对目标检测相关的几个经典网络(RCNN, Fast RCNN, Faster RCNN, YOLO, SSD)等有一些简单的了解(听说而已)。这学期转行以来,准备从Faster RCNN着手,研读论文,理解并努力复现源码。经过大约一个月的努力,Faster RCNN已基本上覆现完成,借CSDN平台,分享自己的一些理解和感悟,希望和大家一起进步。

网络框图

在读完Faster RCNN论文之后,可以知道,Faster RCNN总体上可分为三部分,如下图所示,

  1. 用于提取图像特征,实现参数共享的多个卷积层;
  2. 用于得到Proposal(候选框)的RPN层,这也是Faster RCNN最经典的部分;
  3. 用于完成分类和边界框回归的RoI Pooling层和分类层。

Faster RCNN结构图
在实现网络的过程中,必定会将这三部分进一步地划分为最小的功能单元。

对于提取特征的卷积层,通常使用VGG、ResNet等预训练模型,当前,也可使用ShuffleNet、Inception等实现,只需要在搭建出相应网络的基本结构,下载预训练模型并在源码上做出相应的更改即可;

对于RPN层,又可分为产生anchors的generate_anchors层,对anchors进行前景/背景分类和boungding box回归的rpn_anchor_target层,以及产生最终用于目标检测的proposals的proposal_layer;

对于ROI_Pooling层,则需要将尺寸不一的proposals通过相关的Pooling技术,转换为同样的尺寸,只有这样,才能将这些proposals作为一个batch输入分类层;

对于分类层,不单单是分类的功能,要同时实现分类和bounding box回归的功能,通过两个全连接层实现,完美地将分类任务和回顾任务相结合。

写在后面

接下来一段时间,将会基于PyTorch源码及自己复现源码,对Faster RCNN各部分进行解析。
欢迎关注!

参考

  1. https://www.cnblogs.com/wangyong/p/8513563.html
  2. Faster R-CNN: Towards Real-Time Object
    Detection with Region Proposal Networks
  3. https://github.com/jwyang/faster-rcnn.pytorch
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章