赞
踩
YOLOv9如期而至,现记录安装过程,大家放心走路,我先埋坑为敬:
首先附上YOLOv9的官方下载地址:https://github.com/WongKinYiu/yolov9?tab=readme-ov-file
用一下官方图(os:读书人不能叫Tou,用好叭)
首先安装环境:我这里直接用anaconda(不会的自行百度,不多介绍):
官方要求的torch版本:
这里为了方便我直接统一用自己的版本
conda create -n YOLOV9 python=3.9.17
//(我自己其他用的是这个版本,用其他版本也可,出错不怪我)
达成甩锅达人称号
conda activate YOLOV9
可以看到,原来是处于base环境,激活刚才创建的YOLOV9环境再来装其他包
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
这是赌狗的官方源下载,碰到网络问题就G了,可以参考大佬的换源文章,寻找每一个包,我个人感觉有点麻烦,所以直接赌狗。附上大佬帖Conda 替换镜像源方法尽头,再也不用到处搜镜像源地址_conda换源-CSDN博客
conda临时换源用 -c命令,但是我自己实测,这几个包好像只有官方能一次性下下来,上面大佬方法是逐个包去找估计能找到
2000 years later...
可以看一下有没有安装成功
conda list
看到包好像是有了,测试一下
终端命令:
- python
- import torch
- torch.cuda.is_available()
返回True一般没啥问题了
打开工程,我喜欢直接往脸上拖代码
达成铁头娃称号
我直接给他叉了,看右下角配置解释器:,
点击这个No interpreter--->Add NEW Interpreter----> 添加本地解释器,服务器玩家点On SSH配置刚才创建的环境,其实都差不多
选中刚才创建的环境,看图选中YOLOV9,点击ok
可以看到右下角已经有解释器了
打开pycharm里面的终端,安装剩下的包
可以看到是在工程目录下,直接pip
pip install -r .\requirements.txt
linux是/,windows用\ ,下不了可以换源(这里如果用pip慢的话,要换pip源,自行百度)
附上几个源吧:pip临时换源一般用-i 源地址
https://pypi.tuna.tsinghua.edu.cn/simple
https://mirrors.aliyun.com/pypi/simple/
https://mirrors.163.com/pypi/simple/
使用举例(注意这只是临时换源):
pip install -r .\requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
环境到这里就告一段落了
我用了自己的数据集:注意组织数据集的形式,
原来的yolo格式的数据格式也能训练(我用的yolo格式,如下)
这两个cache不是
但注意一下数据集data.yaml注意和其他版本有某些区别,nc一项不在这个文件中配置。
比如我只有fall一个类,尽可能用绝对路径吧
然后配置nc,比如我想使用models/detect/yolov9.yaml配置文件,可以看到nc在这里,配置成自己的类别数就好了
使用train.py会报错 AttributeError: 'list' object has no attribute 'view',
,官网上说用train_dual.py,目测没有问题,警告的话不用在意
主要改:
cfg:这个是调模型大小的,就是model-->detect中的三个,
weights:默认不使用预训练模型,要的话去github上下载,填进去即可
yolov9.yaml,yolov9-c.yaml,yolov9-e.yaml,
测了一下三个分别模型是50,60,70M左右,
与宣传有一点不符合(版本问题也不能差这么大吧)估计测试参数和flops这里有bug,这里先不讨论
small和tiny作者本人说的是文章接受再释放,可以理解
data:就是刚才要注意的data.yaml这个文件
hyp:超参数,注意目录下只有hyp.scratch-high.yaml,刚才用train.py用的是low.yaml,但是代码没有提供。
epoch:训练的轮次,跑两个意思一下
batch-size和image-size,我用的是3090,所以直接用16,640能跑,如果显存不够出现out ofMemory将batch或者imgsz调小即可
调好之间右键RUN就ok啦,喜欢命令行的自己输入一下,我比较喜欢右键
跑了两轮:
测试一下:best.pt
直接用这个val.py试了一下也有问题,AttributeError: 'list' object has no attribute 'device'
那还是用这个val_dual.py吧
和刚才改的差不多,主要改
data(不说了)
batch和imgsz(出现out of memory调小这两个参数,默认32,我估计跑不动,我用的16)
device(我这里只有一张显卡,所以填0)
右键,run
精度很低毕竟就跑了两个epoch,自己试吧。
这里跑的也是验证集,要跑测试集的把val里的改成test即可
(为了严谨:训练的时候还是改成val,测试改成test吧)
好吧,头铁试一下detect.py,不出所料:AttributeError: 'list' object has no attribute 'device'
直接试这个detect_dual.py吧,
看下效果:
就训练了两个epoch能标出一个框可以了,哈哈。
随手记录,如果有帮助记得三连支持一波,谢谢!!!
1、
烦人的警告:AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
解决方案:pip install Pillow==9.5.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。