fast-rcnn主要有如下改变:
1.引入ROI-pooling层
2.并行进行classification和bonnd box regression
下面详细介绍
1.引入ROI-pooling层
R-CNN 在网络前半部分提取特征时,对每个候选区域都进行了特征提取,导致大量重复计算,速度极低。
在fast-rcnn中提出roi-pooling层,有效解决这一问题。
![](https://img2018.cnblogs.com/blog/1447356/201905/1447356-20190519233042391-493932259.jpg)
roi_pool层将每个候选区域均匀分成M×N块,对每块进行max pooling。将特征图上大小不一的候选区域转变为大小统一的数据,送入下一层。
![](https://img2018.cnblogs.com/blog/1447356/201905/1447356-20190519233159577-1307041654.jpg)
注意:特征提取网络的参数训练过程类似于RCNN网络中的过程,即将网络尾端加上1000类的分类层,用image-net数据集训练,然后冻结网络前半部分参数作为特征提取网络的参数。
2.并行进行classification和bonnd box regression
特征提取网络得到的feature-map送入两个并行的网络进行classification和bonnd box regression。
![](https://img2018.cnblogs.com/blog/1447356/201905/1447356-20190519234042771-320450475.jpg)
cls_score层用于分类,输出K+1维数组p,表示属于K类和背景的概率。
bbox_prdict层用于调整候选区域位置,输出4*K维数组t,表示分别属于K类时,应该平移缩放的参数。