[Fast R-CNN]

Overview

1、Detection挑战

        1)Candidate proposal数量众多,运算量大

        2)Candidate proposal定位不准,需要矫正

2、文章主要贡献

        1)End-to-end single-stage training,而不是CNN+SVM + BBox

                - Jointly learn classification & regression(multi-task loss)

                - No extra SVM for finer classification

        2)mAP ↑

        3)提出roi pooling,无须对每个proposal提取一次特征并写入disk,节省时间和空间

        4)可以实现梯度回传,而不像SPPnet无法更新参数

3、流程

image(full)-> ConvNet produce conv feature map -> RoI pooling(fixed-length feature vector)-> FCs -> CLS (K + 1)

                                                                                                                                                                       -> BBox(per class(r,c,h,w))

proposals(pre-computed)       _________________/|\                                                                             

技术细节

1、RoI pooling

        1)输入RoI(r,c,h,w),对应着左上角坐标和高/宽

        2)将h和w分为H x W个大小为h/H x w/W的子窗口,然后每个子窗口max pooling,得到H x W (7 x 7)大小的输出

        3)channel-wise

2、训练

    1)预训练网络,将最后的max pooling+fc+softmax,替换为roi pooling + fc + cls/bbox

    2)网络输入采用Hierarchical sample方式:N个full images + 每个full image上提取的R/N个RoIs,同一个image上提取的RoI可以共享computation和memory

          * 加速运算 · 节省存储空间 · 不影响收敛(N=2, R=128时)

          * SPPnet的每个roi来自不同图片,且由于每个roi的感受野很大,往往需要对全图进行特征提取,非常inefficient,因此在参数pretrain之后,无法进行fine-tuning,从而使网络的准确性较低

    3)Joint loss

        对于每个RoI,其GT类别为u,GT框的回归值为v。

        cls输出,分别对应着K + 1类的概率值;bbox reg输出K个,对应着每一类的回归值。总的loss为

        

        其中,,background的u设为0 (IoU >= 0.5为FG;0.1 <= IoU < 0.5为BG,便于进行hard example mining)。对于背景类,没有GT框,无法计算回归loss。实验中设置\lambda为1

        - 分类用log loss:

           

        - 回归用用smooth l1 loss,因为L2 loss容易发生梯度爆炸

3、Scale invariance

    1)训练:随机scale图片,作为数据增强

    2)测试:使用image pyramid,每个RoI匹配的图片scale使得对应的面积≈224^2

        * 文中使用single-scale的训练和测试

4、class-specific操作

        1)NMS

        2)BBox(仅选取gt/pred类对应的bbox)

5、truncated SVD

        使用两层FC代替单层FC,第一层不含bias,中间无非线性层,加速运算

其他结论

    1、multi task > single task

    2、single scale > multi scale

    3、training data ↑,mAP ↑

    4、softmax > 1 vs. rest SVM,不同class之间存在竞争关系

    5、sparse proposals > dense proposals,随着proposal的增加,AR ↑, mAP未必增加,即便用SVM,结果仍旧不好

Q & A(待解决)

1、为什么RCNN需要额外的SVM,而fast-rcnn就避免了这一操作?

        1)multi-task约束更强?加入bbox回归分支,有效改善了>0.5 IoU为正样本的定位不准问题?

        2)RoI的context信息更丰富,有助于分类

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值