YOLOV5环境搭建
windows 10 64
NVIDIA GeForce GTX 1070(3以下显示全部装CUDA10.2)
NVIDIA CUDA 12.0.94 driver(显卡最高支持的CUDA Version)
pycharm
anaconda
cuda=10.2.89 cuDNN=8.5.0.96
torch=1.8.2
torchvision=0.9.2
python=3.7
yolo v5_6.0
(注意:cuda+torch+torchvision+python有相互对应的版本关联关系)
(注意:建议先看pytorch所支持的最高cuda版本,因为这个更新最慢)
## 0. 安装Pycharm :
https://www.jetbrains.com/pycharm/download/#section=windows
## 1. 下载YoloV5源码:
https://github.com/ultralytics/yolov5
github下载yolo v5源码,格式zip,注意版本号,branches tags=6.0
在pycharm中打开项目
## 2. 安装Anaconda3:
https://docs.conda.io/en/latest/miniconda.html
## 3.创建虚拟环境yolov5并激活
打开pycharm
conda list
conda create -n yolo5 python==3.7
conda info -e
activate yolo5 前面出现(yolo5)代表当前在yolo5环境
## 4. 安装CUDA :
(30系显卡建议装CUDA11.4 30系显卡以下建议装CUDA10.2)
(默认目录,精简模式安装)
https://developer.nvidia.com/cuda-toolkit-archive
NVIDIA控制面板-帮助-系统信息-组件-NVCUDA.DLL后面有版本号表示最高可以装哪个CUDA版本
cmd中输入 nvidia-smi 右上角:CUDA Version: 版本号 表示最高可以装哪个CUDA版本
cmd 输入 nvcc -V
出现 nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
....
....
CUDA安装完成后,去系统设置-高级-环境变量里找是否有如下
CUDA_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
CUDA_PATH_V10_1 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
有则安装成功
## 5. 安装cuDNN(GPU N卡):
https://developer.nvidia.com/rdp/cudnn-archive#a-collapse805-101
找到对应CUDA版本的CUDNN后,展开选windows的。右击复制链接,然后打开迅雷直接下载。不用注册账号
解压下载好的cuDNN包,并解压,得到bin include lib 三个文件夹
打开这个目录直接覆盖:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1[这里是版本号]
## 6. pip批量安装requirements.txt
先删除requirements.txt文件中2行(主要原因是下面这2个库和显卡cuda,python版本有关联,注意查表,后面安装)
torch>=1.7.0
torchvision>=0.8.1
打开pycharm手动激活yolo5环境(activate yolo5)
批量安装:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
等待安装完成......
手动安装缺少的库:(下面是可能用到的命令)
python版本不一致的时候
conda uninstall python
conda install python=3.7
conda install opencv-python
hydra
pip install hydra-core --upgrade
thop
pip install thop
gitpython
conda install -c conda-forge gitpython -y
可视化
pip install tensorboard
tensorflow有cpu和gpu
conda install tensorflow==2.6.0
![在这里插入图片描述](https://img-blog.csdnimg.cn/e84d2ec7bb97425ea6f7cff6df8412d1.jpeg#pic_center)
## 7. 安装pytorch:
https://pytorch.org/get-started/previous-versions/
查找对应CUDA版本的pytorch
卸载torch
pip uninstall torch -y
pip uninstall torchvision -y
安装
pip3 install torch==1.8.2 torchvision==0.9.2 torchaudio==0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu102
安装完成后环境校验
import torch
print(torch.__version__)
print(torchvision.__version__)
print(torch.cuda.is_available())#查看GPU是否可用
print(torch.cuda.device_count())#返回GPU个数
## 8. 设置虚拟内存
建议最多不超过3倍实际内存 16*3=48G 40G
https://blog.csdn.net/qq_29508575/article/details/121331922?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-5-121331922-blog-124373968.pc_relevant_landingrelevant&spm=1001.2101.3001.4242.4&utm_relevant_index=8
## 8.Arial.ttf文件
(yolo5需要将Arial.ttf文件放入C:\Users\Administrator\AppData\Roaming\Ultralytics\目录)
## 9. 注意事项
1.环境相关
1.1 TypeError: Descriptors cannot not be created directly.[pip install protobuf==3.20.0] 装 pip install protobuf==3.20.1
1.2 CUDA out of memor 更改batch_size值
1.3 yolo5源码里\utils\datasets.py 或 dataloader.py 里 num_workers=0
1.4 windows运行库
1.5 UserWarning: Glyph yolo5源码里\utils\general.py 里 with open(data, errors='ignore') as f: 改为with open(data, errors='ignore', encoding='UTF-8') as f:
1.6 报错里有yolo5s.pt 下载群文件的yolo5s.pt放到yolo5源码里
1.7 RuntimeError: result type Float can‘t be cast to the desired output type long int 看链接https://blog.csdn.net/limengshi138392/article/details/127496757
1.8 UserWarning:torch.meshgrid: pytorch降级 【一般在YOLO7里,显卡16XX系列容易出这个问题】
1.9 yolo7的detect.py如果推理不了的话 将detect.py里的所有的.half()改为.float()或者把half赋值为False
1.10 RuntimeError: There were no tensor arguments to this function
1.11 requirements: protobuf==3.20.1 not found: pip install protobuf==3.20.1
2.模型转换相关
2.1 onnx依赖 pip install onnx coremltools onnx-simplifier -i https://pypi.tuna.tsinghua.edu.cn/simple
2.2 转onnx失败时,去miniconda环境下D:\Miniconda3\envs\yolo5\Lib\site-packages\torch\nn\modules 把activation.py 里的class SiLU(Module) 下return F.silu(input, inplace=self.inplace) 替换为return input * torch.sigmoid(input)
2.3 pip install onnxsim -i https://pypi.tuna.tsinghua.edu.cn/simple
2.4 AttributeError: 'Upsample' 解决方法:https://blog.csdn.net/Thebest_jack/article/details/124723687
2.5 export failure:Unsupported ONNX opset version:13 解决办法:将export.py里的opset_version=opset修改为opset_version=12
3.其他
3.1 出现下载字符集,可以将Arial.ttf文件放入C:\Users\Administrator\AppData\Roaming\Ultralytics\目录
3.2 不管运行什么pip 开头的命令 发现失败 直接按上键 重新执行该命令即可(python很多插件都是外网下载,有时候网络波动,下载失败就会报错 多执行几次安装命令就行了)
3.3 页面文件太小,无法完成操作 解决方案:我的电脑->右击 属性->高级系统设置->高级 性能 设置->高级->虚拟内存 更改->当前已分配的数值和内存大小差不多就行了
3.4 路径里不要有中文或者空格
3.5 No module named numpy:pip install numpy
3.6 cannot import name 'OrderedDict' from 'typing':https://blog.csdn.net/qq_41368074/article/details/119491483
## 10.模型转换相关依赖
1. onnx依赖 pip install onnx coremltools onnx-simplifier -i https://pypi.tuna.tsinghua.edu.cn/simple
2. onnxsim依赖 pip install onnxsim -i https://pypi.tuna.tsinghua.edu.cn/simple
2. onnxruntime
## 11.开始yolo
# 标记数据集
使用labelImg 标记数据集,生成label
https://www.makesense.ai/
# 训练数据集
python train.py --batch-size 4 --epochs 200 --data VOCdevkit\data.yaml --weights weight\yolov5s.pt
#测试
python .\detect.py --source C:\Users\gf66\Pictures\luoye --weights runs/train/exp15/weights/best.pt
## 12.detect重要参数:
weights yolov5s.pt
source data/images 支持文件(image|video)或者文件夹,可以使用相对路径
img-size 640
conf-thres 0.25
iou-thres 0.45 0-1值越大,框数量越多,框越容易重合
device "" 会自动检测值
view-img 显示结果 命令行带--view-img,会自动显示结果,对视频也有效
save-txt 保存结果 命令行带--save-txt,会自动保存结果
classes 选择检测 --class 0 || --class 0 2
project runs/detect 结果保存的目录
name exp 结果保存的目录/exp
exsit-ok 命令行带--exsit-ok,如果project/name存在会追加写入
pycharm命令行举例 Parameters:--view-img --save-txt --classes 0
## 13.结果可视化
TensorBoard数据可视化的工具
安装
pip install tensorboard
使用
tensorboard --logdir=logdir
tensorboard --logdir ”D:\projects\pycharm_projects\yolo_v8\ultralytics-main\runs\detect\train“
损失函数loss曲线:
train_loss
预测与实际数据的差距程度
准确率accuracy曲线:
train_accuracy
precision:模型预测为正的样本中,真实为正的样本的比例。精度越高,性能越好。
recall:真实为正的样本中,被模型预测为正的样本的比例。召回率越高,性能越好。
box_loss:与目标范围box有关,越小方框越准;
dfl_loss:与目标检测有关,越小目标检测越准;
cls_loss:与目标分类有关,越小分类越准;
tensorboard可视化后x轴:epochs # 迭代轮数
## 14.bili视频下载工具:
https://github.com/iawia002/annie
yolov5笔记之windows 10 64系统环境搭建
于 2022-12-31 09:50:30 首次发布