[置顶] 常用目标检测算法loss总结(持续更新)

R-cnn,Fast Rcnn

输入层设置

特征输入分别输出到两个并行的全连接层,即传统意义上的,分类+回归

  • cls_score层:分类层,输出K+1维的数组, p i 表示是分类还是背景的概率
  • bbox_predict层: 候选框需要调整层,输出4*K维数组,表示属于第K类时应该缩放平移的参数

Loss fuction

  • loss_cls : 对分类进行评估,采用真实分类概率决定: L c l s = l o g p u
  • loss_bbox:对bbox定位进行评估,用于比较真实分类对应的预测参数 t u 和真实平移缩放参数为 v 的差别: L l o c = Σ i = 1 4 g ( t i u v i )
    • 其中,g为L1正则,故对离群点不敏感: g ( x ) = { 0.5 x 2 | x | < 1 | x | 0.5 o t h e r w i s e

总代价为两个loss加权和: L = { L c l s + λ L l o c u L c l s u
并且,当分类为背景的时候不考虑加权loss

Faster Rcnn

  • loss_cls : 分类loss和前者不同,这里是两类(是物体和不是物体)的loss, L c l s ( p i , p i ) = log [ p i p i + ( 1 p i ) ( 1 p i ) ]
  • loss_bbox:同fast rcnn使用L1正则
    • 注:在bounding box regression中,对四个参数化坐标需要进行约束以防差值过大,即相减后还分别除以各自的宽高。

Yolo

所有的参数计算都纳入回归中, 每个格子都有B个bounding box信息,以及C个物体属于某类别的概率。且每个bounding box有五个参数 x , y , w , h , C o n f i d e n c e ,confidence反应的是bounding box是否包含物体和物体位置的准确性, C o n f i d e n c e = P ( o b j e c t ) I o u ,由于只有在包含物体 P ( o b j e c t ) = 1 奏效,因此如果不包含则置信度为0

  • L o s s = Σ i = 0 s 2 c o o r d E r r o r + i o u E r r o r + c l a s s E r r o r
    • 作者认为位置(坐标,IOU)相关误差和分类误差贡献不同, λ c o o r d = 5 c o o r d E r r o r 修正。之所以对 w , h 开根号是因为图像宽高可能会很大,相减差距过大导致平方爆炸
    • 计算IOU误差时,将包含和不包含分成了两个部分进行概率计算,但二者IOU的误差会变相改变对立IOU的值导致难训练,因此使 λ n o o b j = 0.5 来修正不包含物体的IOU框。
    • 引用别人的一张图,解释的很好,重点是confidence的预测

参考博文:
https://blog.csdn.net/shenxiaolu1984/article/details/51036677
https://zhuanlan.zhihu.com/p/25236464
https://blog.csdn.net/u014381600/article/details/55505231

猜你喜欢

转载自blog.csdn.net/qq_33638791/article/details/79957092