YOLOv3 精度复现的训练技巧

猴行天下 发表于 2021/06/08 15:14:57 2021/06/08
【摘要】 文件主要介绍目标检测的评价指标 以及 复现yolov3时所用的训练技巧。

1. 目标检测中的评价指标mAP

 目标检测中主要以mAP为评价指标,说到mAP,需提前了解TP、FP、FN、TN评价指标

TP:(实际为正样本,预测也为正样本)对ground-truth框正确的检测(分类正确 and 预测框体与GT框体的IOU大于预设的阈值(如果阈值是0.5,后面对应AP50))。

FP:(实际为负样本, 预测为正样本)对不存在的东西做了错的预测 or 预测框体与GT框体的IOU小于预设阈值。

FN:(实际为正样本,预测为负样本)漏检测。

TN:(实际为负样本,预测也为负样本)在目标检测里是不考虑TN的,因为他有无数个(一张图片可以画无数个框)。

pr.JPG

AP值为 P - R 曲线的面积(横坐标为(召回率), 纵坐标为P(精确率)

举个例子,假设实际有真实标签有10boxPR曲线为右图,曲线面积为AP值。

1.JPG2.JPG

AP50 IOU的阈值为0.5 时的APAP75 为  IOU预设的阈值为0.75AP值。

所以,可以得出AP50对应的TP值  要比 AP75对应的TP值要大, 所以同样条件下AP50P(精确率要比AP75P(精确率所以同样条件下,AP50一定大于AP75

mAP = (AP50 + AP55 + AP60 + AP65 + AP70 + AP75 + AP80 + AP85 + AP90 + AP95) / 10

以上的APmAP,均为单类APmAP,多类的精度指标为所有类别取平均。

2.复现精度所用的小trick。

(1)EMA测试

△w = -  [d (loss) / d(w) *  (1- momentum) +  w* momentum )]* lr

w = w + △w

w_ema = w_ema * ema_decay  + w * (1 – ema_decay)

多维护一个w_ema变量,计算lossw计算,所以ema不影响训练。

3.JPGself._config.moving_ave_decay = 0.9999

ema_decay值先小后大。  刚开始让w_ema多更新点。

(2) 最后一层初始化bias加负偏置

输出的85维  前四维box, 第五维  obj_conf   80class_conf,目标检测真实框的数量有限,所以预测的置信度  应少数较高,其余地方均较低, bias加负偏置,配合这一点。

(3) 遇到分阶段训练时,如第一阶段只训练yolo_head, 第二阶段训练全部参数。

注意:两个阶段optimizer要用2个对象,否则第二阶段会继承第一阶段的维护的w_momentum变量,导致精度不达标。

(4)训练时loss小概率出nan的情况, 大概率是分母没加epsilon,  计算iou那很大可能。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。