前言
你是否对计算机视觉和人工智能感兴趣,想快速实现“目标检测”却无从下手?别担心,YOLO(You Only Look Once)正是你需要的“开箱即用”利器!作为当前最流行的实时目标检测算法之一,YOLO以其速度快、精度高、操作简单著称。本文以Ultralytics版YOLO11为例,手把手教你完成从安装到实战的全流程,专为新手设计,0基础也能轻松上手!
下载YOLO源码
先到下面链接下载官方的YOLO代码包
https://github.com/ultralytics/ultralytics
可以使用Download ZIP下载安装包,解压到你想用的文件夹中;
或者直接用命令行cd到你想要的文件路径然后git clone https://github.com/ultralytics/ultralytics.git
注意:文件路径不能有中文和空格
下载好之后,先放着不动,我们先进行环境的搭建。
YOLO的环境搭建
1.Anaconda的安装
首先我们要清楚,我们下载Anaconda软件,主要是为了创建虚拟环境,方便对yolo环境的管理,以免我们操作出错之后,直接把电脑本地环境破坏了,造成比较麻烦的情况。
接下来是安装Anaconda的详细步骤:
首先,到官方网址下载安装包。
https://www.anaconda.com/download#
如果,官网太慢还可以选择清华的镜像网址(推荐,可以选版本),挑一个适合你的安装包https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
下载好之后双击打开
Next——>I Agree,选Just me
选择安装地址(自行斟酌),点Next
第一个是创建快捷方式(勾选,不然开始菜单没有Anaconda文件夹),第二个是加入环境变量(勾选),第三个是将 Anaconda 设为系统的默认 Python 3.12 解释器(勾选),第四个是安装完成后自动清理下载的缓存包,可节省磁盘空间(可勾可不勾),点击Install开始安装。
等待完成安装,点击finish即可。
2.创建虚拟环境
在开始菜单内找到Anconda3—>Anaconda Prompt,打开命令窗格
输入下面的命令行创建虚拟环境,your_env_name是你的虚拟环境的名字,后面的python=3.9是指定虚拟环境内的python版本,如果不写Python版本,则自动安装Anaconda支持的最高版本(亲测>=3.9即可)。
conda create -n your_env_name python=3.9 ##创建虚拟环境
conda activate your_env_name ##激活虚拟环境
##补充:conda deactivate ##退出虚拟环境
3.安装pytorch
接着输入nvidia-smi命令
查看自己的显卡支持CUDA的最高版本;
接着进入pytorch官网(网址如下),选择自己合适的pytorch版本,CUDA版本不能超过上面所查的;如果官网首页没有合适的版本就点击下方Previous versions of PyTorch,
找到合适的,只要看对应的CUDA版本和操作系统。
https://pytorch.org/
回到Anaconda的命令行,粘贴刚刚的复制的安装命令,等待pytorch安装;
PS:直接使用官网的命令行会下载很慢,如果可以的话可以“科学上网”;或者使用镜像,方法如下:
###把官网的网址改成国内镜像网站
###以cuda12.6的命令举例
原来:pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
改成:pip3 install torch torchvision torchaudio --index-url https://mirrors.nju.edu.cn/pytorch/whl/cu126
接下来,验证pytorch是否验证成功,依次输入下面的命令行验证:
python
import torch
torch.cuda.is_available()
>>>>True ###成功
>>>>exit() ###退出
4.安装其他依赖
首先,新建一个requirements.txt文件,复制下面的代码到文件中;
# Ultralytics requirements
# Example: pip install -r requirements.txt
# Base ----------------------------------------
matplotlib>=3.3.0
numpy==1.24.4 # pinned by Snyk to avoid a vulnerability
opencv-python>=4.6.0
pillow>=7.1.2
pyyaml>=5.3.1
requests>=2.23.0
scipy>=1.4.1
tqdm>=4.64.0
# Logging -------------------------------------
# tensorboard>=2.13.0
# dvclive>=2.12.0
# clearml
# comet
# Plotting ------------------------------------
pandas>=1.1.4
seaborn>=0.11.0
# Export --------------------------------------
# coremltools>=7.0 # CoreML export
# onnx>=1.12.0 # ONNX export
# onnxsim>=0.4.1 # ONNX simplifier
# nvidia-pyindex # TensorRT export
# nvidia-tensorrt # TensorRT export
# scikit-learn==0.19.2 # CoreML quantization
# tensorflow>=2.4.1 # TF exports (-cpu, -aarch64, -macos)
# tflite-support
# tensorflowjs>=3.9.0 # TF.js export
# openvino-dev>=2023.0 # OpenVINO export
# Extras --------------------------------------
psutil # system utilization
py-cpuinfo # display CPU info
thop>=0.1.1 # FLOPs computation
# ipython # interactive notebook
# albumentations>=1.0.3 # training augmentations
# pycocotools>=2.0.6 # COCO mAP
# roboflow
然后,cmd
进入官方包所在文件夹中的命令窗口,进入虚拟环境,然后安装依赖,命令行如下:
conda activate yolo_env
pip install -r requirements.txt
5.PyCharm加载虚拟环境
首先需要安装Pycharm,可以自行在网上找教程,或者参照下面我给的教程来操作
注意:文章末尾的网址写错了https://www.jetbrains.com/idea/download/other.html
要改成https://www.jetbrains.com/pycharm/download/other.html
https://www.quanxiaoha.com/pycharm-pojie/pycharm-pojie-202424.html#%E4%B8%8B%E8%BD%BD-pycharm-%E5%AE%89%E8%A3%85%E5%8C%85
安装完Pycharm后,在项目文件夹里右键选择Open File as PyCharm project
在界面右下角点击解释器配置区→添加新的解释器→添加本地解释器
然后,左侧选择Conda环境→使用现有环境→选择你配置的虚拟环境名→确定
环境配置完成。
YOLO的训练
在看YOLO训练之前,可以先看看下一部分——推理,验证环境是否配置完成。
首先要准备训练集,下面的网站是一个专门的视觉图像数据集的网站,里面可以搜索大量你想要的数据集,还可以进行图像标注。
https://universe.roboflow.com/
编写数据集配置文件
编写测试脚本:在pycharm里新建一个Python文件,写入下面的脚本代码;
# -*- coding: utf-8 -*-
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO(model=r'D:\2-Python\1-YOLO\YOLOv11\ultralytics-8.3.2\ultralytics\cfg\models\11\yolo11.yaml') #神经网络配置文件地址,官方包自带
# model.load('yolo11n.pt') # 加载预训练权重,改进或者做对比实验时候不建议打开,因为用预训练模型整体精度没有很明显的提升
model.train(data=r'D:\01_KenShan\ultralytics\rock-paper-scissors.v14i.yolov11\data.yaml', #数据集配置文件地址
imgsz=640,
epochs=50,
batch=4,
workers=0,
device='',
optimizer='SGD',
close_mosaic=10,
resume=False,
project='runs/train',
name='exp',
single_cls=False,
cache=False,
)
·model参数:该参数填入模型配置文件的路径,,改进的话建议不需要填预训练模型权重
·data参数:该参数可以填入训练数据集配置文件的路径
·imgsz参数:该参数代表输入图像的尺寸,指定为640x640像素
·epochs参数:该参数代表训练的轮数
·batch参数:该参数代表批处理大小,电脑显存越大,就设置越大,根据自己电脑性能设置
·workers参数:该参数代表数据加载的工作线程数,出现显存爆了的话可以设置为o,默认是8
·device参数:该参数代表用哪个显卡训练,留空表示自动选择可用的GPU或CPU
·optimizer参数:该参数代表优化器类型
·close_mosaic参数:该参数代表在多少个epoch后关闭mosaic数据增强
·resume参数:该参数代表是否从上一次中断的训练状态继续训练。设置为False表示从头开始新的训练。如果设置为True,则会加载
上一次训练的模型权重和优化器状态,继续训练。这在训练被中断或在已有模型的基础上进行进一步训练时非常有用。
·project参数:该参数代表项目文件夹,用于保存训练结果
·name参数:该参数代表命名保存的结果文件夹
·single_cls参数:该参数代表是否将所有类别视为一个类别,设置为False表示保留原有类别
·cache参数:该参数代表是否缓存数据,设置为False表示不缓存。
推理
yolo的官网下滑到README的部分可以下载模型,把下载的模型放到合适的位置,记住路径
然后再PyCharm里新建一个Python文件,来编写模型推理的代码,代码如下
# -*- coding: utf-8 -*-
from ultralytics import YOLO
if __name__ == '__main__':
# Load a model
model = YOLO(model=r'D:\01_KenShan\ultralytics\ultralytics\cfg\models\yolo11n.pt')
model.predict(source=r'ultralytics/assets/bus.jpg',
save=True,
show=True,
)
右键“运行”,然后在runs文件夹下会出现结果;
评论区