前言

你是否对计算机视觉和人工智能感兴趣,想快速实现“目标检测”却无从下手?别担心,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文件夹下会出现结果;