整体框架
快速R-CNN网络将整个图像和一组object proposals作为输入。
利用反向传播算法进行训练所有网络的权重是Fast R-CNN很重要的一个能力。
我们提出了一种更有效的训练方法,利用在训练期间的特征共享(feature sharing during training)。
在Fast R-CNN训练中, 随机梯度下降(SGD)小批量分层采样 ,首先通过采样N个图像,然后通过从每个图像采样 R/N个 RoIs。
关键的是,来自同一图像的RoI在向前和向后传递中 共享计算 和存储。
此外为了分层采样,Fast R-CNN使用了一个流水线训练过程,利用一个fine-tuning阶段来联合优化一个softmax分类器和bounding box回归,而非训练一个softmax分类器,SVMs,和regression在三个独立的阶段。
Multi-task loss:
我们利用一个multi-task loss L 在每个被标注的RoI上来联合训练分类器和bounding box regression
Mini-batch sampling:在微调时,每个SGD的mini-batch是随机找两个图片,R为128,因此每个图上取样64个RoI。从object proposal中选25%的RoI,就是和ground-truth交叠至少为0.5的。剩下的作为背景。
Back-propagation through RoI pooling layers:
RoI pooling层计算损失函数对每个输入变量x的偏导数,如下:
y是pooling后的输出单元,x是pooling前的输入单元,如果y由x pooling而来,则将损失L对y的偏导计入累加值,最后累加完R个RoI中的所有输出单元。下面是我理解的x、y、r的关系:
原文:https://www.cnblogs.com/lijianming180/p/12251372.html