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

【YOLOv7】使用 YOLOv7 做目标检测 (使用自己的数据集 + 图解超详细)

文章目录

  • YOLOv7
    • 论文+源码
    • 环境搭建
    • 模型训练
      • 修改YOLOV7配置
        • data.yaml
        • weights
        • train.py
      • 开始训练
    • 模型测试
      • 测试自己的数据集
        • AttributeError: 'int' object has no attribute 'lower'
      • 测试单张图片
    • 任何问题,均可评论区留言。

YOLOv7

论文+源码

论文链接:https://arxiv.org/abs/2207.02696

GitHub 链接:https://github.com/WongKinYiu/yolov7

环境搭建

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

模型训练

修改YOLOV7配置

data.yaml

新建data.yaml文件,配置yolov7的数据集,数据集为 YOLO格式

train: D:\pythonProjects\datasets2\train  
val: D:\pythonProjects\datasets2\val 
test: D:\pythonProjects\datasets2\test

# number of classes
nc: 20

# class names
names: ["Akita_Dog", "Basset_Hound", "Beagle_Dog", "Border_Collie", "Chinese_Shar-pei", "Corgi","English_Cocker_Spaniel","English_Sheepdog","German_Shepherd_Dog","Golden_Hair","Labrador","Pomeranian","Redbone_Coonhound","Saint_Bernard","Samoyed","Schnauzer","Schnauzer","Siberian_Husky","Springer_Spaniel","Tibetan_Mastiff"]

weights

新建weights文件夹,下载yolov7.pt https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt。

train.py

修改如下的参数,其中batch-size根据自己GPU的算力进行修改。

在这里插入图片描述

开始训练

运行train.py,然后就可以进行训练了。

但是在训练过程中,我们会看到需要登录wandb的官网进行注册,比较麻烦,我们可以注释掉。

路径在 yolov7-main/utils/wandb_logging/wandb_utils.py ,进行如下的修改。

# try:
#     import wandb
#     from wandb import init, finish
# except ImportError:
#     wandb = None

wandb = None

模型测试

测试自己的数据集

python test.py --data data/data.yaml --img 640 --batch 8 --conf 0.001 --iou 0.65 --device 0 --weights ./runs/train/exp5/weights/best.pt --name yolov7_val

AttributeError: ‘int’ object has no attribute ‘lower’

解决方法:将torch_utils.py中的select_device()中的cpu直接初始化为0.
在这里插入图片描述

测试单张图片

python detect.py --weights ./runs/train/exp5/weights/best.pt --conf 0.25 --img-size 640 --source ./inference/images_test/Corgi1.jpg

任何问题,均可评论区留言。

相关文章:

  • 【C语言】break 关键字
  • sql窗口函数学习笔记
  • 记:谷歌开发者大会2022——共码未来
  • vue3 + vite 性能优化 ( 从5s -> 0.5s )
  • SpringBoot 静态资源(static)无法访问问题404
  • 混合策略改进的麻雀搜索算法-附代码
  • SNARK性能及安全——Prover篇
  • Docker的安装与操作
  • Zabbix监控入门到跑路
  • 无人机中的坐标系与相机姿态计算
  • 100天精通Python(数据分析篇)——第56天:Pandas读写txt和csv文件(read_csv、to_csv)
  • 【开发小记】vue项目优化
  • 1、javaweb学习知识简析
  • 【Linux操作系统】基础概念和常用指令(一)
  • 类和对象·默认成员函数
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Github访问慢解决办法
  • IP路由与转发
  • JavaScript-Array类型
  • js算法-归并排序(merge_sort)
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Magento 1.x 中文订单打印乱码
  • MySQL的数据类型
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • 阿里云前端周刊 - 第 26 期
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 离散点最小(凸)包围边界查找
  • 你真的知道 == 和 equals 的区别吗?
  • 爬虫模拟登陆 SegmentFault
  • 强力优化Rancher k8s中国区的使用体验
  • 实战|智能家居行业移动应用性能分析
  • 项目实战-Api的解决方案
  • 学习ES6 变量的解构赋值
  • 智能合约Solidity教程-事件和日志(一)
  • 终端用户监控:真实用户监控还是模拟监控?
  • AI算硅基生命吗,为什么?
  • linux 淘宝开源监控工具tsar
  • Python 之网络式编程
  • scrapy中间件源码分析及常用中间件大全
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #100天计划# 2013年9月29日
  • %@ page import=%的用法
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (回溯) LeetCode 46. 全排列
  • (六)DockerCompose安装与配置
  • (论文阅读30/100)Convolutional Pose Machines
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (排序详解之 堆排序)
  • (三)mysql_MYSQL(三)