【目标检测】Fast RCNN算法

论文地址:https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Girshick_Fast_R-CNN_ICCV_2015_paper.pdf

代码地址:https://github.com/rbgirshick/fast-rcnn

 Fast RCNN是在RCNN的基础上进行的改进,整体的算法思路是一样的,改进之处如以下几点:

  • 引入ROI pooling层,第一避免resize特征图到224*224,由于ROI pooling是可导的,所以实现了端到端的学习;
  • CNN网络提前做了预训练,初始化权重是进过ImageNet数据集的训练得到,大大提高网络效率;
  • 采用了多任务损失函数,一个任务是用softmax进行分类,另一个任务是边界框回归;
  • 利用截断的奇异值分解加速网络。

Fast RCNN的总体框架图:

【目标检测】Fast RCNN算法

便于理解,借鉴了一个其他人的图:

【目标检测】Fast RCNN算法

  • 读入一张图像,有两个步骤要做,第一利用selective search提取候选框,另一步是输入到FCN网络中提取特征,得到特征图;
  • 根据RCNN的原理,提取的候选框都对应一个ground truth的回归框和此框的类别,回归框用(x,y,h,w)表示,(x,y)表示左上角坐标,(h,w)表示框的长宽,坐标框都是在原图像的坐标系下,特征图是网络下采样后得到的,所以坐标框坐标也应该相应缩小对应倍数,如VGG16下采样4次,缩小16倍,对应候选框也缩小16倍;
  • 候选框框起来的特征图部分输入到ROI pooling层中,得到固定大小的输出特征图,ROI pooling层中将候选框划分为2*2的网格,并进行max pooling操作,由于后选矿缩小时,不一定是得到整数,所以需要就近取整,可能导致划分网格不均匀,如下:

    【目标检测】Fast RCNN算法

  •  得到的特征图通过全连接层,利用softmax得到一个类别标签,同时回归得到一个边框坐标,利用robust L1损失函数计算回归损失。

 

上一篇:有关.NET链接Oracle数据库,使用连接池pooling=true时问题


下一篇:jsp 出现cannot be resolved to a type问题解决办法