目录
yolov7源码地址,把ZIP文件下载后解压,打不开链接记得使用魔法,魔法自己找这个没办法教。或者也可以选择通过我分享的网盘下载:链接:百度网盘下载链接,提取码:yam3。

打开解压后的文件夹应该可以看到这个页面。

我的环境是:WIN10、RTX2060、Python=3.7。
这里推荐使用Anaconda来创建环境,自己先在电脑上安装好conda的运行环境,这里特别注意在安装的时候记得把conda添加到环境变量中。具体怎么安装Anaconda网上教程一大堆,随手一搜都有,如果这都搞不定建议暂时先别学深度学习了。
再检查一下自己有没有安装好conda,win+r输入cmd再按Enter,进入命令行界面后输入conda -V,如果报错了就可能安装了anaconda但是没配置环境变量,或者是其他问题导致的报错,建议先想办法解决一下这个问题,如果显示的和下面一样那就是正常的,可以继续往下看。

下一步新创建一个yolov7的环境,命令行输入:
conda create -n yolov7 python=3.7
激活环境:
conda activate yolov7

下一步根据项目文件夹的requirements.txt下载安装所需要的包和库,在yolov7的环境下运行这条命令:
pip install -r 项目绝对路径/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
安装好后注意,如果你是用GPU来训练的话,需要重新安装pytorch框架,上面通过requirements.txt安装的pytorch包不是GPU版本的,需要另外重新安装GPU版本的pytorch,命令行运行这条命令重新安装pytorch:
pip install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html -i https://pypi.tuna.tsinghua.edu.cn/simple
另外提醒一下这个pytorch的版本要根据自己GPU的型号来确定,有可能会因为cuda版本问题在train的时候出现报错,不过这个问题我自己没遇到过,现在安装的这个版本在2060和3090上都能直接跑数据集不会出现报错。
安装好后打开Pycharm,依次点击文件(file)-- 打开(open)-- 选择到项目文件夹(名字是yolov7-main)。

最后再去设置里面把Python的解释器设置成刚开始用conda创建的yolov7环境





再提醒以下文件结构,如果是初学者的话,最好是按照我上面说的,如果因为把文件摆在其他地方而导致了报错。。。。至此数据集就准备完毕了。’
首先在cfg/deploy里面选一个yolo的版本

我选的是yolov7x.yaml,打开这个文件,只需要改一个地方。

下一步是在github上下载对应的权重文件,看清楚你在上一步选择的是哪个yolov7的模型,然后下载对应的权重文件。如果下载不下来可以看看我分享的百度网盘,提取码:oz0g。

然后在yolov7-main里面创建一个叫weights的文件夹,把你下载的权重文件放进去。

打开train.py,下拉找到代码里设置的命令行参数项,按照自己的情况进行修改。

上面这些设置好之后运行train.py,如果一切顺利的话,慢慢等训练完成就行了。如果你没有改代码其他设置,那么你可以在runs/train/exp文件夹下获取这次训练的有关信息,runs/train/exp/weights文件夹里面保存了这次训练结束后整个网络模型的权重,后面进行检测时会用到。

打开test.py,找到命令行参数设置项

设置好后点运行就是了,运行结果会保存在runs/test/exp文件夹里面,我自己没有设置测试集,所以不展示运行结果了。注意如果你要测试的话一定要在自己数据集的.yaml文件里面写清楚test.txt文件的路径,在文章上面也提到了。
首先把需要预测的图片放在inference/images文件夹下

然后打开detect.py文件,修改命令行参数,和上面的一样,就不赘述了

设置好后点击运行,运行结果保存在runs/detect/exp文件夹里面


以上就是yolov7训练的整个过程,有问题可以在评论区提问或者私信我。也欢迎也欢迎私信和我讨论有关目标检测和目标跟踪方向的内容!
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模
是否有self验证的问题列表。看着那个,我可以确定我知道。我应该复习一下。在学习的过程中,我列了一个这样的list,但它只包含我在某处听说过的项目。我需要一段时间才能找到新的东西。 最佳答案 以下是针对ruby和Rails的一些测试列表。证书名称:RubyonRails谁提供:oDeskIncorporation认证费用:免费网站:https://www.odesk.com/tests/985?pos=0证书名称:RubyonRails提供者:Techgig.com(TimesBusinessSolutionsLimited(T
我想知道我的代码是否在rspec下运行。这可能吗?原因是我正在加载一些错误记录器,这些记录器在测试期间会被故意错误(expect{x}.toraise_error)弄得乱七八糟。我查看了我的ENV变量,没有(明显的)测试环境变量的迹象。 最佳答案 在spec_helper.rb的开头添加:ENV['RACK_ENV']='test'现在您可以在代码中检查RACK_ENV是否经过测试。 关于ruby-检测由RSpec、Ruby运行的代码,我们在StackOverflow上找到一个类似的问题
我正在使用rubydaemongem。想知道如何向停止操作添加一些额外的步骤?希望我能检测到停止被调用,并向其添加一些额外的代码。任何人都知道我如何才能做到这一点? 最佳答案 查看守护程序gem代码,它似乎没有用于此目的的明显扩展点。但是,我想知道(在守护进程中)您是否可以捕获守护进程在发生“停止”时发送的KILL/TERM信号...?trap("TERM")do#executeyourextracodehereend或者你可以安装一个at_exit钩子(Hook):-at_exitdo#executeyourextracodehe
我是Ruby新手,并被要求在我们的新项目中使用它。我们还被要求使用Padrino(Sinatra)作为后端/框架。我们被要求使用Rspec进行测试。我一直在寻找可以指导在Padrino上使用RspecforRuby的教程。我得到的主要是引用RoR。但是,我需要RubyonPadrino。请在任何入门/指南/引用/讨论等方面指导我。如有不妥之处请指正。可能是我没有针对我的问题搜索正确的词/短语组合。我正在使用Ruby1.9.3和Padrinov.0.10.6。注意:我还提到了SOquestion,但它没有帮助。 最佳答案 我没用过Pa
我有一个定义类的Ruby脚本。我希望脚本执行语句BoolParser.generate:file_base=>'bool_parser'仅当脚本作为可执行文件被调用时,而不是当它被irbrequire(或通过-r在命令行上传递)时。我可以用什么来包装上面的语句,以防止它在我的Ruby文件加载时执行? 最佳答案 条件$0==__FILE__...!/usr/bin/ruby1.8classBoolParserdefself.generate(args)p['BoolParser.generate',args]endendif$0==_