目标检测--Yolov7

参考博客: https://blog.csdn.net/weixin_44791964/article/details/125827160

参考知乎: https://www.zhihu.com/question/568070366/answer/3030899381

网络结构

彩色图

从网络结构上看和yolov3, yolov5 啥的相差不大,都是通过backbone,neck, head,最后输出三个feature map, 但里面的网络细节上有了不小的改动。最大的特点,据说是将vgg 又重新拉回舞台,能够使用较小的空间,拥有更快的速度和准确率。然后它里面使用的还是Anchor-base,没有像yolox 使用了Anchor-Free 。

主干网络中,使用了ELAN,进行多分支融合

MP 中使用了池化操作和卷积下采样操作,然后将结果融合。

最后在head阶段,使用了REP

这个图的意思就是在训练阶段,使用多分支进行卷积,然后融合到一起;在预测部署的时候只采用中间的卷积输出。

损失函数 还是分为坐标损失,置信度损失,分类损失,其中目标置信度损失和分类损失采用BCEWithLogitsLoss(带log的二值交叉熵损失),坐标损失采用CIoU损失。

使用了SimOTA对预测的锚框与真实框进行匹配,从而选择最优的预测锚框进行训练与损失计算

步骤如下:

首先粗略匹配

  1. 根据训练集中【真实框】 通过k-mean算法,先验获得9个从小到大的排列的 anchor(与yolov5类似)

  2. 将每个【真实框】与得到的9个anchor 匹配: 分别计算【真实框】与这9个anchor 的宽高比(比较大的除以比较小的,比值大于1),得到两个比较值,取最大值,如果最大值小于阈值,就将这个anchor 框设置为正样本(正样本的意思就是说这个框里面有要检测的物体,负样本是说,有个框,但框里没有要检测的物体)。

精细匹配

  1. 找到【真实框】的中心位置,将最近的2个邻域网格也作为预测网格,也即一个【真实框】可以由3个网格来预测

  2. 取与当前【真实框】有top10最大iou的prediction结果。将这top10 (5-15之间均可,并不敏感)iou进行sum,就为当前gt的k。k最小取1。

  3. 根据损失函数计算每个【真实框】和候选anchor损失(前期会加大分类损失权重,后面减低分类损失权重,如1:5->1:3),并保留损失最小的前K个

  4. 去掉同一个anchor被分配到多个GT的情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值