yolov7那些事-安装&测试

引言

最近项目情况稍微稳定了,时间比较宽裕,刚好朋友有一些机械学习方面的交流,让我萌生起来学习一波的想法。找了两圈gayhub,在2022年7月6日正式宣布的yolov7发布,其介绍为Implementation of paper - YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors,查看了一下各种对比效果,发现就是基本上完美吊打其他所有的框架,果断选定他来进行一波学习。而在这个整体基础环境部署中,各种踩坑,各种懵逼怀疑人生,总算摸透了其中关键点,特此编写此文,分享给各位,少走弯路。注意,此文主要是针对有显卡的用户进行指导,无显卡的相关小伙伴,可以安装pytorch则直接选择安装cpu版本,同时运行yolov7相关训练、测试命令改成cpu模式进行即可。

image

下载资源准备

其中cuda、pytorch、cunn相关的地址,均建议科学上网来访问,否则可能会访问较慢或无法访问。
具体下载的时候,均可以通过迅雷进行下载,镜像加速效果很给力

版本选择指引

  • 首先打开pytorch查看最新的CUDA版本,可看到最新版本为11.6,记住该版本号

image

  • 英伟达官网下载对应CUDA驱动

image

  • 英伟达官网下载对应的CUNN(需注册账号)

image

  • 下载好四个内容后可以准备下一步操作
    image

Anaconda3安装&配置

安装说明

  • 打开安装包
    image

  • 同意协议
    image

  • 正常下一步
    image

  • 可自定义安装目录
    image

  • 选择默认添加上环境变量
    image

  • 等待安装完成后下一步
    image

  • 取消勾选打开相关内容,结束安装
    image

  • 在命令台查看是否安装成功
    image

基础配置

  • 设置镜像

输入命令
conda config --set show_channel_urls yes
会自动在用户文件夹下创建一个
.condarc文件
覆盖替换为下面的内容,内容为参考清华源配置
同时增加https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
以及 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ 两个仓库声明

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  • 创建虚拟环境

命令输入
conda create -n yolov7 python=3.9 --yes
创建一个虚拟用户为yolov7的python3.9的环境

安装完毕后命令输入
conda activate yolov7
激活选择环境为yolov7

可以看到,我们已正常安装上虚拟环境并且激活选择环境成功

image

CUDA&CUNN安装

CUDA安装

  • 选择CUDA安装临时缓存目录(可默认文件夹,安装完毕后会删除)
    image

  • 同意协议
    image

  • 选择自定义安装并全选所有可安装项
    image

  • 自定义选择安装的路径
    image

  • 确认安装
    image

  • 等待安装完毕后下一步
    image

  • 可查看到程序均已安装完毕
    image

CUNN安装

  • 按照CUDA安装目录,把相关对应的文件内容解压即可
    image

配置环境变量

变量名 变量值
CUDA_SDK_PATH C:\software\cuda(上述部署选择自定义的cuda路径)
CUDA_LIB_PATH %CUDA_PATH%\lib\x64
CUDA_BIN_PATH %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH %CUDA_SDK_PATH%\common\lib\x64
PATH %CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_LIB_PATH%;%CUDA_SDK_BIN_PATH%;【追加的内容】

测试是否安装正常

命令行输入
nvcc -V
可查看到正常安装完毕
image

安装pycharm-community

  • 打开安装包并下一步
    image

  • 选择自定义的安装路径
    image

  • 选择添加环境变量并且关联.py文件
    image

  • 继续下一步开始安装
    image

  • 安装完毕后,重启系统
    image

  • C:\software\PyCharm\bin\pycharm64.exe发送快捷方式到桌面进行方式使用操作即可

下载yolov7相关资源

安装相关资源

  • 解压yolov7源码到工作目录C:\workspace\ai\yolov7
  • 复制yolov7.pt模型文件到解压的源码根目录C:\workspace\ai\yolov7
  • 解压train2017训练图片到C:\workspace\ai\yolov7\coco\images\
  • 解压val2017数值图片到C:\workspace\ai\yolov7\coco\images\

做好相关的基本准备后,则可以开始正式开始做相关项目的依赖安装运行等处理

配置项目内容

  • 打开PyCharm,打开项目,选择刚刚解压的yolov7源码目录
    image

  • 点击File-》Settings进行配置
    image

  • 选择Python Interpreter并添加设置
    image

  • 选择新增一个Python Interpreter
    image

  • 选择Conda环境变量并且选择上文新增的虚拟环境yolov7专用的python3.9
    image

  • 选择后点击确认
    image

  • 在控制台中输入python,可看到能正常执行命令
    image

  • 打开源码中requirements文件,注释掉opencv-python/torch/torchvision/thop四个依赖,后续通过torch的命令进行安装。
    若直接通过pip install -r requirements.txt --extra-index-url https://pypi.douban.com/simple/的方式安装,会安装到cpu的torch版本,则无法使用gpu进行识别、训练。笔者在这上面受到了极大的打击
    image

  • 命令输入 conda install --yes --file .\requirements.txt 安装其他基本依赖

  • 命令输入 conda install pytorch torchvision torchaudio cudatoolkit=11.6 安装pytorch专用的依赖【这部分会走清华源镜像进行快速下载安装】

image

  • 命令输入 python 进入python终端
  • 命令输入 import torch 引入依赖包
  • 命令输入 torch.cuda.is_available() 查看是否可用cuda
    从结果中可以看到,我们的基础依赖已经安装完毕,可以开始进行训练测试等内容,通过 ctrl+z 退出python命令台

image

运行探测类

  • 命令输入 python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg
    程序执行探测类

可以看到能够正确识别出来测试探测图的马匹内容,正常框柱已经标记近似度
image

运行测试类

  • 命令输入 python test.py --data data/coco.yaml --img 640 --batch 32 --conf 0.001 --iou 0.65 --device 0 --weights yolov7.pt --name yolov7_640_val
    程序会执行测试类
    能够正常执行测试类并输出结果
    image

image

总结

虽然有ancoda这种相对较为方便的环境&依赖管理工具,但是对于pytorch等这些安装来讲,依旧存在不少令人困惑的问题,很容易在pip等安装过程中,就只安装了cpu等版本,从而引发一系列的连锁反应,没法使用GPU来加成。至此,我们已经搭建好基本的训练探测环境了,所以,你有什么好idea要实现呢?一起动起来啊!!

坚持原创技术分享,您的支持将鼓励我继续创作!