当前位置: 首页 > news >正文

保姆级复现yolov7(论文复现)

保姆级复现yolov7(论文复现)

本文所涉及所有资源均在传知代码平台可获取

所需环境

当然深度学习环境的搭建是基础,详情可见(win10):
【深度学习】windows10环境配置详细教程anaconda3环境变量配置win10-CSDN博客
Unbutun搭建深度学习环境可以参考:
Ubuntu20.04配置pytorch深度学习环境(亲测有效)_ubuntu20.04 cuda 11.6 torch安装哪个版本-CSDN博客
PyCharm:2022.2.2版本
torch==1.2.0+
为了使用amp混合精度,推荐使用torch1.7.1以上的版本。
其他所需依赖包可见:requirements.txt

训练步骤

a、训练VOC07+12数据集
数据集的准备
本文使用VOC格式进行训练,训练前需要下载好VOC07+12的数据集,解压后放在根目录
VOC数据集下载地址如下,里面已经包括了训练集、测试集、验证集(与测试集一样),无需再次划分:

在这里插入图片描述

数据集链接请见readme.txt文件

数据集的处理
修改工程主目录中的voc_annotation.py里面的annotation_mode=2,运行voc_annotation.py生成根目录下的2007_train.txt和2007_val.txt

在这里插入图片描述

在这里插入图片描述

开始网络训练
train.py的默认参数用于训练VOC数据集,直接运行train.py即可开始训练。
不出意外,接下来就一定有意外:

在这里插入图片描述

很明显,我的笔记本显卡不行哦,显卡内存太小,可以调整batch_size。

在这里插入图片描述

看到batch_size等于Freeeze_batch_size,将Freeze_batch_size=2

在这里插入图片描述

开始训练

在这里插入图片描述

训练结果预测
训练结果预测需要用到两个文件,分别是yolo.py和predict.py。我们首先需要去yolo.py里面修改model_path以及classes_path,这两个参数必须要修改。
model_path指向训练好的权值文件,在logs文件夹里。
classes_path指向检测类别所对应的txt。
完成修改后就可以运行predict.py进行检测了。运行后输入图片路径即可检测

训练自己的数据集

数据集的准备
本文使用VOC格式进行训练,训练前需要自己制作好数据集,
训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。

数据集的处理
在完成数据集的摆放之后,我们需要利用voc_annotation.py获得训练用的2007_train.txt和2007_val.txt。
修改voc_annotation.py里面的参数。第一次训练可以仅修改classes_path,classes_path用于指向检测类别所对应的txt。
训练自己的数据集时,可以自己建立一个cls_classes.txt,里面写自己所需要区分的类别。
model_data/cls_classes.txt文件内容为

在这里插入图片描述

预测

a、使用预训练权重

下载完库后解压,在百度网盘下载权值,放入model_data,运行predict.py,输入img/street.jpg

在这里插入图片描述

在predict.py里面进行设置也可以进行fps测试和video视频检测。

在这里插入图片描述

b、使用自己训练的权重
按照训练步骤训练。
在yolo.py文件里面,在如下部分修改model_path和classes_path使其对应训练好的文件;model_path对应logs文件夹下面的权值文件,classes_path是model_path对应分的类。
更改位置如下:

在这里插入图片描述

四、评估步骤
a、评估VOC07+12的测试

本文使用VOC格式进行评估。VOC07+12已经划分好了测试集,无需利用voc_annotation.py生成ImageSets文件夹下的txt。
在yolo.py里面修改model_path以及classes_path。model_path指向训练好的权值文件,在logs文件夹里。classes_path指向检测类别所对应的txt。
运行get_map.py即可获得评估结果,评估结果会保存在map_out文件夹中。
b、评估自己的数据集
本文使用VOC格式进行评估。
如果在训练前已经运行过voc_annotation.py文件,代码会自动将数据集划分成训练集、验证集和测试集。如果想要修改测试集的比例,可以修改voc_annotation.py文件下的trainval_percent。trainval_percent用于指定(训练集+验证集)与测试集的比例,默认情况下 (训练集+验证集):测试集 = 9:1。train_percent用于指定(训练集+验证集)中训练集与验证集的比例,默认情况下 训练集:验证集 = 9:1。
利用voc_annotation.py划分测试集后,前往get_map.py文件修改classes_path,classes_path用于指向检测类别所对应的txt,这个txt和训练时的txt一样。评估自己的数据集必须要修改。
在yolo.py里面修改model_path以及classes_path。model_path指向训练好的权值文件,在logs文件夹里。classes_path指向检测类别所对应的txt。
运行get_map.py即可获得评估结果,评估结果会保存在map_out文件夹中。

文章代码资源点击附件获取


http://www.mrgr.cn/news/38011.html

相关文章:

  • [数据集][目标检测]辣椒缺陷检测数据集VOC+YOLO格式695张5类别
  • 设计模式、系统设计 record part02
  • Java安全最佳实践:防御常见网络攻击
  • Study--Oracle-09--部署Openfiler存储服务器
  • 【机器学习】---深入探讨图神经网络(GNN)
  • 深信服2025届全球校招研发笔试-C卷(AK)
  • 一不小心,给腾讯云提了一个Bug
  • 学习ubuntu 24.10系统目录架构
  • uniapp view增加删除线
  • Python 统计学
  • 黑马头条day5- 延迟任务精准发布文章
  • 提升效率的秘密武器选择指南
  • 舒舒活动图片 小暑至,暑气湿气缠身怎么办?中医教你消暑宁心,健脾祛湿
  • 1.6 物理层
  • OpenAI o1-preview:详细分析
  • PIKACHU —— 靶场笔记合集
  • Eureka注册中心如何实现集群
  • 学校周赛(1)
  • 【hot100-java】【划分字母区间】
  • yolov10安装体验