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

保姆级复现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.kler.cn/news/323239.html

相关文章:

  • class 026 哈希表、有序表和比较器的用法
  • Linux云计算 |【第四阶段】PROJECT2-DAY2
  • Nginx+Tomcat负载均衡、反向代理
  • C语言编程-经典易错题1
  • 若依开源系统多数据源整合clickhouse数据库详细步骤
  • C++远端开发环境安装(centos7)
  • 【网络安全安全管理入门必知必会】应急响应之服务器入侵排查,零基础入门到精通,收藏这篇就够了
  • 游戏厅计时器ps5计算时间的软件 佳易王电玩计时计费管理系统操作教程
  • 【有啥问啥】深度理解主动学习:机器学习的高效策略
  • 927解决WSL2上UBuntuz终端卡顿
  • Vue中集中常见的布局方式
  • 赋值运算符重载
  • python 实现harmonic series调和级数算法
  • 现代LLM基本技术整理
  • Android13高通平台拨打/接听只有免提模式,无听筒模式
  • unsqueeze函数、isinstance函数、_VF模块、squeeze函数
  • 爆火!大模型算法岗 100 道面试题全解析,赶紧收藏!
  • STM32CUBEIDE FreeRTOS操作教程(五):mutex互斥信号量
  • Python中的null是什么?
  • 基于SpringBoot+Vue的小儿推拿培训管理系统
  • MySQL按照经纬度排序 查询出商家信息
  • Cisco ASA 9.22.1 发布下载,新增功能概览
  • Mysql—主从复制的slave添加及延迟回放
  • 2024年7月大众点评乌鲁木齐美食店铺基础信息
  • 物理学基础精解【26】
  • .NET MAUI(.NET Multi-platform App UI)上下文菜单
  • 【Redis入门到精通六】在Spring Boot中集成Redis(含配置和操作演示)
  • 机器学习查漏补缺(5)
  • 【刷题5】在排序数组中查找元素的第一个和最后一个位置
  • Android CCodec Codec2 (十五)C2DmaBufAllocator