yolov5与Faster-RCNN 训练过程正负样本和评价指标

图1  训练和预测过程流程

  画这张图是为了体现在模型训练过程和预测过程中的具体流程,很多刚了解目标检测的同学对于模型的训练阶段和测试验证阶段分不清。  比如正负样本是什么?干嘛用的?  看了这个流程图就大概能清楚的理解了, 只需要记住正负样本是在训练过程中计算损失用的,而在预测过程和验证过程是没有这个概念的,模型生成anchor然后经过非极大值抑制等处理就会直接得到预测结果,然后预测结果再送入评价指标,如coco、voc来评价模型的map等。 下面以Faster-RCNN和YOLOV5 两个模型为例来分析图1的具体过程。

 Faster-RCNN

一 、 RPN流程

 图2

  ps: 图2给出了Faster-RCNN的 RPN训练过程和正向传播过程的,Faster-RCNN结构细节这里不再赘述。

1.1  Proposal的生成:

   RPN网络给特征图的每个网格生成9个anchor(3中尺度x3个高宽比)忽略掉跨越边界的anchor以后,剩下的anchor通过边界框回归参数调整为候选框,然后采用极大值抑制过滤掉一部分框,剩下的2k个候选框作为输出传递给ROI网络进行预测。

1.2  RPN的正负样本和损失

   如图2所示,正负样本是从生成的所有anchor中选取并采样计算损失,可以理解为在生成anchor以后就根据iou=0.7来区分正负样本,然后通过正负样本比例1:1采集256个anchor计算损失,如果正样本不足,则采集负样本弥补。一句话概况就是训练RPN时是从所有的anchor中选取正负样本。

   补充一下这里正负样本选取规则:

      ①和GT(真实框)有最大iou的anchor为正样本;

      ②和GT的iou超过0.7的anchor为正样本;

      ③和GT的iou小于0.3的anchor为负样本;

      ④iou在0.3~0.7之间的anchor会被忽略;

二、  ROI 流程

 图3 ROI训练流程图

2.1   ROI预测

    如图3所示,将RPN网络生成的proposals结合特征图送入ROIpoling进行下采样,然后通过两个并行卷积对proposals分别预测其可能属于的类别和边界框回归参数,注意是每个都要预测,可以理解为1个proposal预测了N个类别和4N个边界框回归参数。

2.2   ROI训练

   训练时,设置阈值为0.5来区分正负样本,与GT的iou大于0.5为正样本,小于0.5为负样本,这里和训练RPN的正负样本有一点不同,没有忽略样本,然后再按照正负样本比例为1:1采集512个样本用来计算损失,同样,如果正样本不足,则采集所有正样本,剩下的用负样本弥补,然后计算损失做梯度下降更新RPN的权重。

2.3  预测后处理

   测试阶段或验证阶段,即预测结果后处理过程,会将全部的proposals做边界框回归, 假如有M个proposals,类别数为N,每个proposal预测N+1个边界框回归参数和N+1个概率,加1是因为还预测了背景,那么就会得到Mx(N+1)个预测框,然后去除背景框,还有MxN个框,然后设置一个置信度阈值,一般是0.05,有的代码这个值可能是0,然后再进一步去除一部分小框,剩下的框做nms非极大值抑制,再取前100个框作为最终的输出。这100个框有两个作用,一是用来绘制最终打印在原图上的框,绘制前会再设置一个置信度阈值(0.5)来选择最后用于绘制的框;二是用来传入评价指标计算map,计算map会将这100个框直接传入coco等评价指标,进一步计算AP、MAP。

三、  Yolov5 训练和预测流程

 图4  yolov5训练预测流程

3.1  正负样本分配

    首先会为特征图的每个网格生成三个anchors,然后确定GT中心所在网格,计算该网格所有anchor与GT的高宽比,取最大值对比超参数anchor_t=4,若小于则为正样本,反之为负样本。

3.2  正样本扩充

   3.1筛选出的正样本会所在网格会根据网格位置选择邻近两个网格的anchor作为正样本。

3.3  预测后处理

   如图4,anchors进过置信度阈值筛选再经过非极大值抑制分别会将输出送入评价指标和画框打印,但是需要注意的是,送入评价指标的置信度筛选阈值是0.001,最终的输出打印置信度阈值为0.25,这里的超参数都是我看的源码,我的模型送入评价指标的时候还有大约300个预测框用来评估不同模型会有差异,最终输出的就是打印在图片上的框。

四、  结语

本博客没有具体深入的分析两个模型的结构以及训练过程中的损失函数等,写这篇博客的主要目的是为了巩固自己在学习过程中对于模型训练过程和评估过程容易混淆这一点,比如正负样本只在训练过程中才有,送入评价指标的预测结果和最终输出在图片上的框是不同的。同时也希望对有同样问题的读者给予帮助。

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值