【CV 目标检测】Fast RCNN模型③——模型训练/预测
(2)模型训练
R-CNN中的特征提取和检测部分是分开进行的,Fast R-CNN提出一个高效的训练办法:多任务训练
Fast R-CNN有两种输出:
- 一部分输出在K+1个类别上的离散概率分布(每个候选区域),p=(p0,p1,…,pk)p = (p_0,p_1,\dots,p_k)p=(p0,p1,…,pk)。通常,通过全连接层的K+1个输出上的Softmax来计算概率值
- 另一部分输出对于由K个类别中的每一个检测框回归偏移,tk=(txk,tyk,twk,thk)t^k = (t_x^k, t_y^k, t_w^k, t_h^k)tk=(txk,tyk,twk,thk)。其中tkt_ktk指定相对于候选框的尺寸不变转换和对数空间高度/宽度位移,与在RPN网络中是一样的
将上面两个任务的损失函数放在一起:
L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]LIoc(tu,v)L(p, u,t^u, v) = L_{cls}(p,u)+\lambda[u \ge 1]L_{Ioc(t^u,v)}L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]LIoc(tu,v)联合训练fast-RCNN网络。
● ppp:网络预测分类结果
● uuu:每个候选区有一个目标值,即uuu为类别的真实值
● tut^utu:每个候选框对应的框的真实值
● vvv:网络预测出来的结果
● u≥1u\ge1u≥1:只用类别不是背景的,才会计算回归损失
(3)模型预测
● 输入图像
● 图像被送入到卷积网络进行特征提取,将通过选择性搜索获取的候选区域映射到特征图中
● 在特征图上Rol中应用RolPooling,获取尺寸相同的特征向量
● 将这些区域传递到全连接的网络中进行分类和回归,得到目标检测的结果
(4)模型总结
Fast R-CNN是对R-CNN模型的一种改进:
- CNN网络不再是对每个候选区域进行特征提取,而是直接对整张图像进行出路,这样减少了很多重复计算
- 用ROI Pooling进行特征的尺寸变换,来满足FC全连接层对输入数据尺度的要求
- 将目标的回归和分类统一在一个网络中,使用FC+softmax进行目标分类,使用FC layer进行目标框的回归
在Fast R-CNN中使用的目标检测识别网络,在速度和精度上都有了不错的结果。但是,其候选区域提取方法耗时较长,而且和目标检测网络是分离的,并不是端到端的。因此,在2016年又提出了Faster R-CNN模型用于目标检测