位置: IT常识 - 正文

YOLOv7(目标检测)入门教程详解---检测,推理,训练(yolov5目标检测代码)

编辑:rootadmin
YOLOv7(目标检测)入门教程详解---检测,推理,训练

目录

一.前言

二.yolov7源码下载

三.detect(检测)

四.Train(训练)

数据准备:

labellmg:

配置训练的相关文件

 配置数据集文件

正式训练:

推理:

推理效果:

五.总结


一.前言

推荐整理分享YOLOv7(目标检测)入门教程详解---检测,推理,训练(yolov5目标检测代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov5目标检测代码,yolov5目标检测,yolov3目标检测,yolo 目标检测,yolov3目标检测步骤流程图,yolo 目标检测,yolo 目标检测,yolov5目标检测,内容如对您有帮助,希望把文章链接给更多的朋友!

    上篇文章:YOLOv7(目标检测)入门教程详解---环境安装 我们将yolov7外部需要的环境已经全部安装完成,那么这篇文章我们直接进行yolov7的实战----检测,推理,训练。

二.yolov7源码下载

下载网址:GitHub - WongKinYiu/yolov7: Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors

点击Code,Download ZIP  把yolov7的源码包下载下来 

 下载好后打开yolov7源码包

在文件路径输入cmd进入终端

 之后在终端activate进入之前创建的环境,并且输入

pip install -r requirements.txt

强调:关掉电脑VPN 

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple,输入这个指令可能会更快一点

我是之前安装过后,所有再输入安装指令后就会显示全部满足,你们也可以通过这样查看自己是否安装成功

 此时我们来到官网下载权重,一个是Test用的yolov7.pt

一个是之后 Train 用的yolov7_training.pt

 在yolov7的文件夹路径下建一个weights文件夹,然后把刚刚下载好的两个权重放进去。

 此刻基本需要的环境和文件都已经准备完成了,接下来我们就可以进行detect(检测了)

三.detect(检测)

进入虚拟环境,输入以下指令 

python detect.py --weights weights/yolov7.pt --source inference/images

 --weights 指令就是代表权重 --source 是照片存在的路径

 检测过程如下

 这里可以使用GPU和CPU两种方式进行检测,因为我们之前装了cuda和cudnn所以可以用GPU

只不过我们需要输入--device 0 这个指令,不输入则默认为CPU,我是改了detect源码里面的指令

还有更多操作,我们可以打开detect.py进行查看

 

 如果你只有cpu就默认cpu,如果是一个gpu就选择--device 0 两块cpu就--deivce 1,以此类推。

我们来看看我们训练之后的结果,进入runs-->detect-->exp 里面有所有预测好的照片

 

四.Train(训练)

参考博客:【小白教学】如何用YOLOv7训练自己的数据集 - 知乎

数据准备:

我们生成/datasets/文件夹,把数据都放进这个文件夹里进行统一管理。训练数据用的是yolo数据格式,不过多了两个.txt文件,这两个文件存放的,是每个图片的路径,后面会具体介绍。

那么接下来yolo数据集的整体格式如下:

 Helmet是你想检测的东西名称,我检测的是圆环所以命名为circle

 进入circle文件夹之后,会看到有images 和labels的文件夹,一个是拿来放图片的,一个是拿来存images文件夹中处理jpg图片之后的txt数据

打开images文件夹,我们又要建两个文件夹:train 和 val,并且把想要训练的照片放进去,两个都放差不多数量

 打开labels文件夹,同样建两个文件train和val,然后就ok了

YOLOv7(目标检测)入门教程详解---检测,推理,训练(yolov5目标检测代码)

接下来我们就要用到一个软件去处理我们的图片,将其转化为yolo格式

labellmg:

参考博客:labelImg使用教程_G果的博客-CSDN博客_labelimg

 进入终端,输入指令进行下载

输入labellmg打开软件 

 然后我们使用labellmg进行对图片的处理,首先open dir选择图片路径,我们先选择刚刚创建的datasets/circle/images/train  然后change save dir选择datasets/circle/labels/train,这样我们对image的每张图片的处理都会储存进label中  之后val也是同理。

之后就把每一个你想训练的目标给框出来然后进行命名,但是必须要改成YOLO格式

之后打开我们的labels就能发现里面储存了images中每张图片对应的txt文件

然后我们进入datasets/circle文件夹下面,建立两个txt文件,train.txt  val.txt,这两个文件分为写入所有images中train和val中的照片路径

配置训练的相关文件

  总共有两个文件需要配置,一个是/yolov7/cfg/training/yolov7.yaml,这个文件是有关模型的配置文件;一个是/yolov7/data/coco.yaml,这个是数据集的配置文件。

第一步,复制yolov7.yaml文件到相同的路径下,然后重命名,我们重命名为yolov7-Helmet.yaml。

第二步,打开yolov7-circle.yaml文件,进行如下图所示的修改,这里修改的地方只有一处,就是把nc修改为我们数据集的目标总数即可。然后保存。

 配置数据集文件

第一步,复制coco.yaml文件到相同的路径下,然后重命名,我们命名为circle.yaml。

第二步,打开circle.yaml文件,进行如下所示的修改,需要修改的地方为5处。第一处:把代码自动下载COCO数据集的命令注释掉,以防代码自动下载数据集占用内存;第二处:修改train的位置为train.txt的路径;第三处:修改val的位置为val.txt的路径;第四处:修改nc为数据集目标总数;第五处:修改names为数据集所有目标的名称。然后保存。

我的参照上图改好如下 

之后我们就可以进行训练了!!!

正式训练:

此时我们在yolov7文件夹路径下cmd,并且进入虚拟环境,输入指令

python train.py --weights weights/yolov7_training.pt --cfg cfg/training/yolov7-circlr.yaml --data data/circlr.yaml --device 0 --batch-size 8 --epoch 300

这里对里面的参数进行解释

--cfg 接受模型配置的参数

--data 接收数据配置的参数

--device 0  训练类型,我是一块GPU 所以用0

--batch-size 8  GPU内存大小决定

--epoch 训练次数,建议300

--weights 训练的权重

训练到最后我们就会得到一个last 和best的pt文件,那么我们直接把best.pt拿出来使用就ok了

推理:

我们已经获得了自己训练出来的权重了,那么这个时候推理,其实跟之前检测的道理是一样的,唯一变换的就是我们的权重文件和自己检测的照片 。

这个时候我们在datasets文件夹下面建立一个textimages文件夹和textvideo文件夹,分别用来储存要被检测的图片和视频

 

 跟detect一样,进入虚拟环境输入权重路径和图片路径就ok了,指令如下

我是把best.pt直接拉到了yolov7文件夹路径下面,你们刚刚训练出来的在runs/train/circle/weights/best.pt

python detect.py --weights best.pt --source datasets/textimages --device 0

 

 可以看到用gpu训练的yolov7是相当的快,我显卡是3070的,大概一张照片15ms左右的样子,如果用CPU的话,速度要慢十倍左右

推理效果:

我打开runs/detect/exp查看我们的训练效果

 

 可以说效果是非常好的,方框上面的数值就是置信度了,只要训练的好,yolov7的处理能力非常的强大。

五.总结

  那么yolov7的检测,训练,推理的全部流程都已经可以实现了,但是这个是基于python环境下的,如果有特殊的需求需要在c++环境下去进行yolo检测的话,那就又另有一方折腾了,我会在之后的博客中说到如何在c++中去使用yolov7检测。

有相关问题可以私信我进行讨论

本文链接地址:https://www.jiuchutong.com/zhishi/297376.html 转载请保留说明!

上一篇:块元素和行内元素及其元素转换(块元素和行内元素区别)

下一篇:把ChatGPT接入我的个人网站

  • 小米平板5怎么进入电脑模式(小米平板5怎么设置儿童限制功能)

    小米平板5怎么进入电脑模式(小米平板5怎么设置儿童限制功能)

  • 美团帮送订单怎么操作流程(美团帮送订单怎么结算的)

    美团帮送订单怎么操作流程(美团帮送订单怎么结算的)

  • 拼多多拼小圈在哪里找(拼多多拼小圈在哪里关闭)

    拼多多拼小圈在哪里找(拼多多拼小圈在哪里关闭)

  • 微信为啥载入数据99不动了(微信一直在载入数据50%不能使用怎么办)

    微信为啥载入数据99不动了(微信一直在载入数据50%不能使用怎么办)

  • word文档最大字号(word文档最大字号就是72吗)

    word文档最大字号(word文档最大字号就是72吗)

  • 笔记本电脑鼠标指针不见了怎么办(笔记本电脑鼠标失灵一键修复)

    笔记本电脑鼠标指针不见了怎么办(笔记本电脑鼠标失灵一键修复)

  • 路由器用多久需要更换(路由器用多久需要恢复出厂设置)

    路由器用多久需要更换(路由器用多久需要恢复出厂设置)

  • 手机换屏后发热严重怎么办(手机换屏后发热严重)

    手机换屏后发热严重怎么办(手机换屏后发热严重)

  • 群文件下载能看到是谁下载的吗(群文件有下载记录吗)

    群文件下载能看到是谁下载的吗(群文件有下载记录吗)

  • 微信接收消息太多受限(微信接收消息太慢怎么办)

    微信接收消息太多受限(微信接收消息太慢怎么办)

  • ios13验证更新一直失败(ios13更新一直正在验证)

    ios13验证更新一直失败(ios13更新一直正在验证)

  • 为什么抖音突然不涨粉了(为什么抖音突然要实名认证)

    为什么抖音突然不涨粉了(为什么抖音突然要实名认证)

  • 华为开发者模式怎么关(华为开发者模式干嘛的)

    华为开发者模式怎么关(华为开发者模式干嘛的)

  • a1699是苹果6还是6s(a1699s是苹果几)

    a1699是苹果6还是6s(a1699s是苹果几)

  • 网易云音乐会员有什么用(网易云音乐会员和黑胶有什么区别)

    网易云音乐会员有什么用(网易云音乐会员和黑胶有什么区别)

  • 屏幕右上角hd如何取消(右上角显示hd)

    屏幕右上角hd如何取消(右上角显示hd)

  • 手机朋友圈如何定位(手机朋友圈如何点赞)

    手机朋友圈如何定位(手机朋友圈如何点赞)

  • 为什么苹果商店下载一直需要验证(为什么苹果商店登不上去)

    为什么苹果商店下载一直需要验证(为什么苹果商店登不上去)

  • 手机为什么哈罗单车扫不了了啊(为什么我的哈罗单车用不了了)

    手机为什么哈罗单车扫不了了啊(为什么我的哈罗单车用不了了)

  • 网易云音乐相册在哪(网易云音乐相册图库不显示)

    网易云音乐相册在哪(网易云音乐相册图库不显示)

  • ps序列号如何获取(ps 2020序列号)

    ps序列号如何获取(ps 2020序列号)

  • 为什么别人加我qq没有提示(为什么别人加我微信提示异常,对身份进行验证)

    为什么别人加我qq没有提示(为什么别人加我微信提示异常,对身份进行验证)

  • 苹果蓝牙耳机是不是每次连接都有弹窗功能(苹果蓝牙耳机是专用的吗)

    苹果蓝牙耳机是不是每次连接都有弹窗功能(苹果蓝牙耳机是专用的吗)

  • 抖音如何拉到最底部(抖音怎么把人拉高拉瘦)

    抖音如何拉到最底部(抖音怎么把人拉高拉瘦)

  • ipadpro上市时间(最新ipadpro上市时间)

    ipadpro上市时间(最新ipadpro上市时间)

  • 共享单车存在的问题如何改善(共享单车存在的问题及解决措施)

    共享单车存在的问题如何改善(共享单车存在的问题及解决措施)

  • boss直聘如何投递简历(boss直聘如何投简历)

    boss直聘如何投递简历(boss直聘如何投简历)

  • 若依框架前端Vue项目分析实战(若依框架前端发请求)

    若依框架前端Vue项目分析实战(若依框架前端发请求)

  • 工会经费余额在借方怎么办
  • 企业所得税申报表在哪里查询
  • 服务行业适用什么核算
  • 商业企业收取各项费用的税务与会计处理
  • 应交税费应交增值税的三级科目有哪些
  • 单位租个人房屋怎么开票
  • 本月无凭证需要结转吗
  • 食品业企业
  • 逆流交易固定资产折旧实现,为什么按差额
  • 给个人的返利如何交税
  • 固定资产报废税费怎么处理
  • 个人所得税反推器
  • 企业开税票申报个人所得税怎么申报?
  • 6位开票代码是什么意思
  • 发票密码区出来了还能用吗
  • 企业所得税业务招待费扣除比例
  • 商誉在报表中如何填列
  • 建筑工程公司开票如何做收入
  • 固定资产维修费率
  • 银行转账结算凭证按照填制手续和内容
  • 转让金融商品应交增值税计算公式
  • 在win7系统中如何让电脑恢复出厂设置方法
  • 企业筹建期间购置机器设备支出计入什么科目
  • iphone和电脑同步
  • php数据库添加失败的原因
  • mac如何恢复到出厂系统版本
  • 进程控制块PCB不包括( )
  • 托收账款属于什么会计科目
  • 汽车报废残值收入怎么做账
  • php floor()
  • 罚款在企业所得税前可以扣除吗
  • 增值税按简易计价方式
  • 收入和支出怎么合计
  • 会计账簿的启用规则
  • sload命令
  • php做登录界面连接数据库
  • 西部大开发税收优惠政策是什么时候开始的?
  • chrome浏览器快捷方式
  • 应纳税为什么是0
  • 计算机视角技术
  • 分割sw
  • 深度卷积神经网络基本结构
  • thinkphp withjoin
  • 开发票的销售收入,正规的做账怎么做
  • Emiller's Advanced Topics In Nginx Module Development
  • 交易性金融资产的账务处理
  • mysql有什么优势和特点
  • 自产自用车辆购置税组成计税价格
  • 费用发票可以抵税吗
  • 公司首次申报个人所得税
  • 什么叫金税四期呢?
  • 企业购买汽车的进项税可以抵扣吗
  • 广告设计要交文化事业建设
  • 上月暂估的成本这月收到票怎么做
  • 全额事业单位和差额事业单位退休工资有什么区别
  • 税控盘反写是不是说明税都已经成功申报了
  • 商场联营扣点的合作方式
  • 员工房屋租赁合同
  • 应收账款和坏账准备的解题思路
  • win2003远程桌面最大连接数
  • win8进入传统界面
  • autorun.dll
  • win10mobile下载官网
  • linux 杀掉指定用户的进程
  • win7启动应用程序的方式
  • linux给文件赋全部权限
  • android Unable to execute dex问题的解决
  • perl 正则表达式 保留原有字符
  • unity资源文件
  • 怪物掉落物品的获取方式
  • shell脚本中判断入参是否为空
  • 终于实现的图片
  • python字典键值对个数
  • javascript异步编程
  • 纳税人识别号是几位数
  • 用友u8外部凭证怎么删除
  • 国税和地税分别交什么税
  • 个人怎么在网上交医保和养老保险
  • 厦门地税电话客服电话
  • 城市维护建设税法自2021年10月1日起施行
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设