论文地址:https://arxiv.org/pdf/1504.08083.pdf
前记: 在此论文之前,作者就已经提出R-CNN算法,在性能上已经是state of the art,但是无论是在训练还是测试都十分耗时,主要是该算法模型是由多个不同的部分组成,每一部分都需要单独训练,包括卷积网络特征提取,SVM分类器训练,回归框训练,过程较为繁琐导致效率低下,而且对每一张图片通过selective search提取的2K个region proposal都需要输入到网络中进行特征提取,导致一张图片中有很多重复的内容被计算,为了避免这些问题,作者提出了Fast R-CNN算法,使得在R-CNN中测试一张图片需要47s,而Fast R-CNN只需要0.32s.
文章的主要贡献:
- 比R-CNN 、SPP-net更高的准确率和速度
- 单级训练,使用的是联合损失函数
- 训练更新所有网络层参数(SPP-net只更新全连接层)
- 不再需要额外的硬盘存储特征值(R-CNN训练SVM分类器需要额外的硬盘存储卷积层提取的特征)
网络结构:
如下图,Fast R-CNN网络由卷积层+ROI池化层+全连接层(并联)组成
- 输入任意size 的图片通过卷积池化层后得到特征图
- 对任意size的图片提取2k个region proposal
- 在ROI池化层中输入特征图和region proposal,根据region proposal在原图的位置找到对应于特征图的区域,即特征图的region proposal
- 经过ROI池化层使得特征图的每一个region proposal变成固定的 H ∗ W H*W H∗Wsize,在原文中ROI池化层输出的大小为7*7. 具体操作为:对特征图的每一个region proposal区域都先划分为 H ∗ W H*W H∗W个网格,然后对每一个网格使用max pooling 池化,这样输出的特征框大小为 H ∗ W H*W H∗W,此方法取代了R-CNN中的直接对region proposal resize的操作
- 将经过ROI池化处理后的特征输入到全连接层,此时要经过两个并联的全连接网络,一个是用于分类的softmax网络,输出每一个候选框的分类得分,一个是用于bbox回归的网络,获得每一个bbox的位置
训练:
1. The RoI pooling layer
ROI pooling层将特图固定到
H
∗
W
H*W
H∗W大小,具体操作为:对特征图的每一个region proposal区域都先划分为
H
∗
W
H*W
H∗W个网格,然后对每一个网格使用max pooling 池化,这样输出的特征框大小为
H
∗
W
H*W
H∗W,因此假设特征图的大小为
h
∗
w
h*w
h∗w,则经过ROI层特征图的缩放比例为
h
/
H
∗
w
/
W
h/H * w/W
h/H∗w/W,在原文中H和W均为超参数,设置为7x7。
2. Initializing from pre-trained networks
文中采用AlexNet【S for small】、VGG_CNN_M_1024【M for medium】、VGG-16【L for large】这三种网络分别进行训练测试,同时进行了相应的调整,主要表现为使用ROI池化层代替卷积网络最后一层的max pooling,将网络的全连接层以及softmax输出层替换为两个并联的全连接层,调整网络的输入为两部分,即图像本身以及对应的感兴趣区域。
3.Multi-task loss
多任务损失由部分组成,即分类损失以及bounding_box回归损失:
分类损失:
L
c
l
s
(
p
,
u
)
=
−
l
o
g
p
u
L_{cls}(p, u) = -logp_{u}
Lcls(p,u)=−logpu
回归损失:L1损失
结果:
-
PASCAL VOC 2007训练集上,使用VGG-16【L for large】网络Fast R-CNN训练时间为9.5h,同等条件下R-CNN需要84h,快8.8倍;
-
PASCAL VOC 2007测试集上,使用VGG-16【L for large】网络不采用SVD Fast R-CNN测试时间为0.32s/image【不包括候选区域提取时间】,同等条件下R-CNN需要47.0s/image,快146倍;采用SVD测试时间为0.22s/image【不包括候选区域提取时间】,快213倍;
-
PASCAL VOC 2007测试集上,使用VGG-16【L for large】网络不采用SVD Fast R-CNN mAP为66.9%,同等条件下R-CNN mAP为66.0%;Fast R-CNN采用SVD mAP为66.6%。
存在的问题:
region proposal相对于网络的整个检测过程太费时,而且因为region proposal的存在(通过selective research方法提取)导致网络无法实现真正的端到端。