设置清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes # 设置搜索时显示通道地址
# 恢复原来的源:
conda config --remove-key channels
创建环境
首先先的在本地环境下搭建一个我们的环境,名字设为yolov5-first
# 创建环境
conda create -n yolov5-first python=3.6
# 切换yolov5-first环境
conda activate yolov5-first
# 完成之后通过如下查看已创建的环境
conda env list
下载yolov5源码
# 先创建并进入workspace文件夹
cd d:/ai/yolov5
# 拉取最新代码
git clone https://github.com/ultralytics/yolov5 # clone
# 进入代码
cd yolov5
安装
据官方所说,我们要从克隆的存储库目录安装所需的软件包。但是如果是使用外国的pip,下载速度会满到离谱,故我们使用清华园进行下载。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
使用pip list指令让我们看下yolo需要运行的包是否已经装好。
(yolov5-first) D:\ai\yolov5>pip list
Package Version
----------------------- --------------------
absl-py 1.1.0
backcall 0.2.0
cachetools 4.2.4
certifi 2020.6.20
charset-normalizer 2.0.12
colorama 0.4.5
cycler 0.11.0
dataclasses 0.8
decorator 5.1.1
google-auth 2.8.0
google-auth-oauthlib 0.4.6
grpcio 1.47.0
idna 3.3
importlib-metadata 4.8.3
importlib-resources 5.4.0
ipython 7.16.3
ipython-genutils 0.2.0
jedi 0.17.2
kiwisolver 1.3.1
Markdown 3.3.7
matplotlib 3.3.4
numpy 1.19.5
oauthlib 3.2.0
opencv-python 4.6.0.66
pandas 1.1.5
parso 0.7.1
pickleshare 0.7.5
Pillow 8.4.0
pip 21.2.2
prompt-toolkit 3.0.29
protobuf 3.19.4
psutil 5.9.1
pyasn1 0.4.8
pyasn1-modules 0.2.8
Pygments 2.12.0
pyparsing 3.0.9
python-dateutil 2.8.2
pytz 2022.1
PyYAML 6.0
requests 2.27.1
requests-oauthlib 1.3.1
rsa 4.8
scipy 1.5.4
seaborn 0.11.2
setuptools 59.6.0
six 1.16.0
tensorboard 2.9.1
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.1
thop 0.1.0.post2206102148
torch 1.10.2
torchvision 0.11.3
tqdm 4.64.0
traitlets 4.3.3
typing_extensions 4.1.1
urllib3 1.26.9
wcwidth 0.2.5
Werkzeug 2.0.3
wheel 0.37.1
wincertstore 0.2
zipp 3.6.0
下载预训练权重
一般为了缩短网络的训练时间,并达到更好的精度,我们一般加载预训练权重进行网络的训练。而yolov5的版本给我们提供了几个预训练权重,我们可以对应我们不同的需求选择不同的版本的预训练权重。预训练权重越大,训练出来的精度就会相对来说越高,但是其检测的速度就会越慢。
下载之后放入到yolov5根目录
安装Pytorch
参考:深度学习-第一章-window下PyTorch安装教程
可以安装GPU或者CPU版本二选一
建议按照GPU版本,训练速度快
如果安装了英伟达显卡,可以通过如下命令查看显卡信息
nvidia-smi
注意,去掉-c pytorch
因为加了该参数会默认从国外下载,很慢
# 基于GPU的CUDA 10.2
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=10.2 -c pytorch
# 基于CPU版本
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cpuonly -c pytorch
测试
通过detect.py测试识别人
detect.py中参数说明
准备
提前准备好如下文件和照片
执行默认推理代码detect.py
,代码中默认指定了权重文件是根目录下yolov5s.pt
和数据集文件夹/data/images
推理
python detect.py --save-txt --view-img --class 0
加粗样式–save-txt:表示生成labels文件
–view-img:表示弹框显示标注图片
–class:指定识别类型
执行完成之后会在runs/detect/exp
目录下生成标注后的图片和label
通过自定义代码识别
需要在根目录下存在yolov5s.pt和zidane.jpg
import torch
# Model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # or yolov5m, yolov5l, yolov5x, custom
# Images
# img = 'https://ultralytics.com/images/zidane.jpg' # or file, Path, PIL, OpenCV, numpy, list
img = 'zidane.jpg' # or file, Path, PIL, OpenCV, numpy, list
# Inference
results = model(img)
# Results
results.show() # or .print(), .save(), .crop(), .pandas(), etc.
执行
(yolov5-first) D:\ai\yolov5>python test_first.py
效果
推理视频
在/data/video目录下准备test.mp4素材
python detect.py --save-txt --view-img --source data/video --class 0 1 2
# 或者
python detect.py --save-txt --view-img --source data/video