RCNN系列的box regression及其他

    xiaoxiao2023-11-10  148

    RCNN, Fast RCNN, Faster RCNN,针对每一分类做proposal regression,都是与类别相关的。

    Faster RCNN的bbox,第一次粗回归,只有前景、背景2类,第二次位置精修就有n类(n可以是20,80等)类别更多、回归也更精细。

    RCNN

    算法步骤 

    - 一张图像生成1K~2K个候选区域  - 对每个候选区域,使用深度网络提取特征  - 特征送入每一类的SVM 分类器,判别是否属于该类  - 使用回归器精细修正候选框位置

    位置精修

    回归器 针对每一类目标,使用一个线性脊回归器进行精修。正则项λ=10000λ=10000。  输入为深度网络pool5层的4096维特征,输出为xy方向的缩放和平移。 训练样本  判定为本类的候选框中,和真值重叠面积大于0.6的候选框。

    Fast RCNN

    算法步骤 

    - 图像归一化为224×224直接送入网络。使用SS生成候选区域  - 一张图像进入深度网络提取特征  - 在特征图上框出候选区域作为输入,通过ROI pooling统一为NXM大小  - 用深度网络分类和位置精修

    位置精修

    回归器 针对每一类目标,使用深度网络回归

    Faster RCNN

    算法步骤 

    - 使用深度网络提取特征  - 使用RPN网络生成proposal  - 此处相当于Fast RCNN网络。以RPN的输出作为输入,进行分类和位置精修

    位置精修

    回归器 针对每一类目标,使用深度网络回归。

     

    RPN结构

    共享特征

     

     

     

    Fast R-CNN框架与R-CNN有两处不同:

    ① 最后一个卷积层后加了一个ROI pooling layer;

    ② 损失函数使用了multi-task loss(多任务损失)函数,将边框回归直接加到CNN网络中训练。分类Fast R-CNN直接用softmax替代R-CNN用的SVM进行分类。

    Fast R-CNN是端到端(end-to-end)的。

     

    损失函数

    RCNN, Fast RCNN的回归损失函数都是:

    RCNN

    总损失函数:

    分类交叉熵+回归损失函数

     

    Fast RCNN

    总损失函数

    1. CLS使用对数损失函数 

     

    2. REG使用Smooth L1损失函数

                             

    Faster RCNN

    multi-task loss

    其中,

    其他:

    RPN网络的输入可以是任意大小(但还是有最小分辨率要求的,例如VGG是228*228,这是因为图像的有效感受野很大,ZF是171像素,VGG是228像素)的图片

    参考:

    https://blog.csdn.net/shenxiaolu1984/article/details/51066975

    https://blog.csdn.net/shenxiaolu1984/article/details/51036677

    https://blog.csdn.net/shenxiaolu1984/article/details/51152614

    https://www.cnblogs.com/bile/p/9117253.html

    最新回复(0)