yolov5和yolov4、yolov3对比

性能曲线

MSCOCO数据集的测试结果:
在这里插入图片描述
在这里插入图片描述

模型结构

在这里插入图片描述
在这里插入图片描述

yolov5引入了depth_multiple和width_multiple两个缩放系数来控制网络的层数和channel。

yolov5s: 
    depth_multiple: 0.33
    width_multiple: 0.50
yolov5m: 
    depth_multiple: 0.67
    width_multiple: 0.75
yolov5l: 
    depth_multiple: 1.0
    width_multiple: 1.0
yolov5x: 
    depth_multiple: 1.33
    width_multiple: 1.25

yolov5模型大小:
在这里插入图片描述

正负样本定义

yolov3/yolov4的正负样本定义:
1.保证每个GT有一个唯一的anchor进行对应,匹配规则为IOU最大(没有阈值),选取出来的即为正样本;
2.其余为负样本,但是得从其中选取IOU>0.5(设定阈值)的作为忽略样本,因为负样本中仍有大量IOU与GT很大但是质量不是很高,作为负样本也不合适;
3.正anchor用于分类和回归的学习,正负anchor用于置信度confidence的学习,忽略样本不考虑。

# 置信度loss
# 如果该位置本来有框,那么计算1与置信度的交叉熵
# 如果该位置本来没有框,而且满足best_iou<ignore_thresh,则被认定为负样本
# best_iou<ignore_thresh作为权重系数用于限制负样本数量(ignore_mask)
confidence_loss = object_mask * K.binary_crossentropy(object_mask, raw_pred[...,4:5], from_logits=True)+ \
            (1-object_mask) * K.binary_crossentropy(object_mask, raw_pred[...,4:5], from_logits=True) * ignore_mask

yolov3/yolov4的正负样本定义小细节:
GT需要利用max iou原则分配到不同的预测层yolo-head上去,然后在每个层上单独计算正负样本和忽略样本。不存在某个GT会分配到多个层进行预测的可能性,而是一定是某一层负责的。

yolov5的正负样本定义:
yolov5相比上一代增加了正样本anchor数目,这样可以显著加速收敛。

计算流程:
1.将每个boundingbox重复3份(每层有3个anchor),方便和每个位置的3个anchor单独匹配;
2.没有采用IOU最大的匹配方法,而是通过计算该boundingbox和当前层的anchor的宽高比,如果最大比例大于4(设定阈值),则比例过大,则说明匹配度不高,将该bbox过滤,在当前层认为是背景;
3.对于剩下的bbox,计算其落在哪个网格内,同时利用四舍五入规则,找出最近的两个网格,将这三个网格都认为是负责预测该bbox的,可以发现粗略估计正样本数相比前yolo系列,至少增加了三倍。
yolov5的正负样本定义小细节:
(1) 不同于yolov3和v4,其gt bbox可以跨层预测即有些bbox在多个预测层都算正样本
(2) 不同于yolov3和v4,其gt bbox的匹配数范围从3-9个,明显增加了很多正样本(3是因为多引入了两个邻居)
(3) 不同于yolov3和v4,有些gt bbox由于和anchor匹配度不高,而变成背景

iou-Loss

回归框loss的发展路线:Smooth L1 Loss—— IoU Loss(2016)——GIoU Loss(2019)——DIoU Loss(2020)——CIoU Loss(2020)
在这里插入图片描述

  • 16
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值