当前位置:网站首页>【目标检测】YOLOv7理论简介+实践测试
【目标检测】YOLOv7理论简介+实践测试
2022-08-01 04:16:00 【zstar-_】
概述
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做对比测试,效果如下:
算法 | [email protected] | [email protected]:.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两个预训练模型
边栏推荐
- Take you to experience a type programming practice
- 最新 955 不加班的公司名单
- Mysql基础篇(约束)
- scheduleWithFixedDelay和scheduleAtFixedRate的区别
- leetcode6132. 使数组中所有元素都等于零(简单,周赛)
- 黑客到底可以厉害到什么程度?
- leetcode:126. Word Solitaire II
- Flink 1.13 (8) CDC
- 基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置
- MLP neural network, GRNN neural network, SVM neural network and deep learning neural network compare and identify human health and non-health data
猜你喜欢
随机推荐
软件测试面试(三)
风险策略调优中重要的三步分析法
使用ts-node报错
【云原生之kubernetes实战】kubernetes集群的检测工具——popeye
Introduction to Oracle
The Principle Of Percona Toolkit Nibble Algorithm
button remove black frame
second uncle
A way to deal with infinite debugger
MLP neural network, GRNN neural network, SVM neural network and deep learning neural network compare and identify human health and non-health data
黑客到底可以厉害到什么程度?
<JDBC> 批量插入 的四种实现方式:你真的get到了吗?
JS new fun(); class and instance JS is based on object language Can only act as a class by writing constructors
Flutter Tutorial 02 Introduction to Flutter Desktop Program Development Tutorial Run hello world (tutorial includes source code)
Article summary: the basic model of VPN and business types
lambda
Software Testing Weekly (Issue 82): In fact, all those who are entangled in making choices already have the answer in their hearts, and consultation is just to get the choice that they prefer.
微软 Win10 照片磁贴后的又一“刺客”,谷歌 Chrome 浏览器将在新标签页展示用户照片
RSA主要攻击方法
PMP子过程定义总结