【目标检测】YOLOv7理论简介+实践测试

举报
zstar 发表于 2022/08/06 00:12:48 2022/08/06
【摘要】 概述 YOLOv7由YOLOv4的作者团队提出,其论文一作也是YOLOR的作者。 论文的风格也和YOLOR一样,比较难懂,因此这里的理论部分也不做仔细研究,仅对论文提出的几个创新点进行翻译概括。 理论...

概述

YOLOv7由YOLOv4的作者团队提出,其论文一作也是YOLOR的作者。
论文的风格也和YOLOR一样,比较难懂,因此这里的理论部分也不做仔细研究,仅对论文提出的几个创新点进行翻译概括。

理论创新

扩展的高效层聚合网络

作者提出了一个网络结构E-ELAN使用expand、shuffle、merge cardinality来实现在不破坏原有梯度路径的情况下不断增强网络学习能力的能力。

在这里插入图片描述

基于concatenate模型的模型缩放

作者提出了一个模型缩放方法,可以保持模型在初始设计时的特性并保持最佳结构。

在这里插入图片描述

计划重参数化卷积

尽管RepConv在VGG基础上取得了优异的性能,但当将它直接应用于ResNet、DenseNet和其他架构时,它的精度将显著降低。作者使用梯度流传播路径来分析重参数化的卷积应该如何与不同的网络相结合。作者还相应地设计了计划中的重参数化的卷积。

在这里插入图片描述

标签匹配

过去,在深度网络的训练中,标签分配通常直接指GT,并根据给定的规则生成硬标签。然而,近年来,如果以目标检测为例,研究者经常利用网络预测输出的质量和分布,然后结合GT考虑,使用一些计算和优化方法来生成可靠的软标签。例如,YOLO使用边界框回归预测和GT的IoU作为客观性的软标签。在本文中,作者将网络预测结果与GT一起考虑,然后将软标签分配为“label assigner”的机制。

在这里插入图片描述

最后,作者进行了一系列模型比较实验,结果如下表所示:

在这里插入图片描述

实验测试

不管前面的理论部分说得多么花里胡哨,最终还是要以实践测试结果来说明。
由于YOLOv7是基于YOLOv5代码进行修改的,因此训过YOLOv5模型的人都可以很容易得跑起来。
这里具体的流程就不再重复了,因为和【目标检测】YOLOv5跑通VisDrone数据集里面的一模一样。

这里我仍是采用VisDrone数据集,使用YOLOv7模型,添加和上篇博文里一样的训练参数,结果训练1个epoch之后,爆显存了。。

在这里插入图片描述
我把batch_size改成1,坚持了2个epoch,显存依旧爆炸。

于是我换用了自己的数据集,和YOLOv5-5.0做对比测试,效果如下:

算法 mAP@.5 mAP@.5:.95s
yolov5-5.0 95.6% 67.6%
yolov7 94.8% 67.4%

可以看到,yolov7的效果在我自己的数据集上,效果还不如yolov5,这可能是由于我的数据集目标较大,较稀疏,检测难度不高。另外,输入的图片是640x640的尺寸,yolov7更好的模型推荐的输入尺寸是1280x1280。不过,对我这个6GB的渣显卡来说,无法进行测试验证。等我以后有机会换设备再尝试。。

代码备份

YOLOv7代码备份:https://pan.baidu.com/s/1gj5TAOH-z8_kLJDDQxlKfg?pwd=8888
包含yolov7.pt,yolov7-e6e.pt两个预训练模型

文章来源: zstar.blog.csdn.net,作者:zstar-_,版权归原作者所有,如需转载,请联系作者。

原文链接:zstar.blog.csdn.net/article/details/125989646

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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