YOLO视觉检测应用入门篇(一)

YOLO视觉检测应用入门篇(一)

写在前面

网上看到很多刚刚入门学习YOLO的,不管是为了论文,还是实际应用,发出的帖子下面基本都是要收费的广告。
YOLO本就是开源的,很多资料也可以免费获取,因此想想写一下入门的应用。

引言

YOLO视觉检测在B站和网络上有大量视频教程、资料。
但绝大部分都关注的是YOLO的原理。从卷积开始讲起,一直讲到神经网络如何优化。上采样下采样让小白云里雾里不知所云。
事实上有一部分人只是想将YOLO进行应用,最开始的时候并不对卷积神经网络的原理理解是否透彻,更关注的是如何应用起来。
唯有应用了,技术才有了价值;唯有应用过,才有进一步学习和使用的动力。

下面,我着重讲一下如何应用,哪怕对YOLO,对卷积神经网络不是很理解也没有关系,能用起来。
当然,不管是写论文还是实际应用,最终都要对YOLO的原理,卷积神经网络有一定的了解。
但最开始入门,我们可以简单一些。

安装

既然要应用,第一步就是安装。最简单的安装方式如下

安装YOLO

1
pip install ultralytics

最简单的就是这样,安装就完成了。理论上已经可以跑起来了。
我相信很多人在Ultralytics GitHub官网上都能看到这一条,也都可以操作。

INFO
如果pip安装速度慢可以使用国内源,举例:

1
pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/

Environment

如果上面的pip安装也报错的话,可能是连基本的安装环境也没有,需要从头搭建。

  • 直接安装python
    或者
  • 安装Anaconda
    具体的安装可以从相关的官网及其他教程获取。

预训练权重

YOLO官方已经给出了一个训练过的Detection模型,初始我们可以基于这个模型来进行训练
官方的模型是基于COCO数据集的,有以下几种:

模型 类别
YOLO11n Tiny
YOLO11s Small
YOLO11m Medium
YOLO11l Large
YOLO11x Extra

模型可以在Ultralytics GitHub官网首页获取
或者8.3.0 Release页面获取
最初始使用的时候我们可以使用最小的Tiny。

Sample应用

下面用官网的Sample程序来解释下如何用起来。
官网程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from ultralytics import YOLO
#这是为了引入YOLO的库

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")
# 这表示使用标准的YOLO模型并使用预先训练的Yolo11n.pt权重。

# Train the model on the COCO8 dataset for 100 epochs
train_results = model.train(
data="coco8.yaml", # 数据集的配置文件,使用了coco8的数据集
epochs=100, # 训练100轮次
imgsz=640, # 图像大小为640
device="cpu", # 仅使用cpu进行训练
)

# Evaluate the model's performance on the validation set
metrics = model.val()
# 将训练好的模型在验证集进行验证

# Perform object detection on an image
results = model("path/to/image.jpg") # 对指定的图像进行检测
results[0].show() #展示检测结果

# Export the model to ONNX format for deployment
path = model.export(format="onnx") # 将训练好的模型输出为onnx模式

sample程序解释完成了,但是初始还是跑不起来。因为官网并没有直接在首页提供coco8数据集

预测应用

我们先降低难度,跑个预测模型。
在我们安装的yolo路径下,有一个ultralytics/assets文件夹,里面有一张bus.jpg图片。
我们就用它来试一下或者下载获得

1
2
3
4
5
from ultralytics import YOLO
model = YOLO("path/to/yolo11n.pt")
#将path/to/yolo11n.pt替换为实际的路径,如果是windows下,注意使用r"path"
results = model("path/to/bus.jpg")
results[0].show() #展示检测结果

等待一会我们会看到如下图片,说明预测已经完成。
预测结果

数据集准备

接下来我们可以从官方下载coco8数据集并进行准备
coco8.yaml文件下载(Download raw file)
coco8.zip文件下载
将coco8.zip解压,然后将coco8.yaml文件放到coco8文件夹内。
coco8.yaml原文件显示部分如下:

1
2
3
4
path: ../datasets/coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

进行修改,改为如下:

1
2
3
4
5
6
# path: ../datasets/coco8 # dataset root dir
# 将path注释掉
train: ../images/train # train images (relative to 'path') 4 images
val: ../images/val # val images (relative to 'path') 4 images
# 修改train和val,表示在yaml一个路径下
test: # test images (optional)

这一步是为了将数据集位置明确告知yolo

NOTE
coco8本身没有准备test数据集
可以自己将val里面两张图片(以及对应的标签)放入自建的test文件夹,并修改yaml

训练模型

这次,我们就可以用首页的sample去跑训练集了。

NOTE
原程序的

1
2
data="coco8.yaml"
#需要修改为实际的地址,如data=r"D:\coco8\coco8.yaml"(yolo11n.pt以及bus.jpg同样)

另外

1
2
# path = model.export(format="onnx")  # Returns the path to the exported model
# 将这一行注释掉,因为暂时用不着

执行后,模型就开始训练了。
我们会在程序所在文件夹内找到run文件夹,里面是训练的结果。
其中weight中的best.pt代表训练最好的模型。我们可以使用best.pt来代替yolo11n.pt试试看
目前并不需要管训练的好与坏,result图如下:
训练结果

模型转换

前面我们将下面的代码注释掉了。这段代码是用来将.pt转为更为通用的.onnx,以便在其他平台和设备下应用训练出来的模型

1
path = model.export(format="onnx")  # 将训练好的模型输出为onnx模式

这里我们需要pip安装onnx,onnxruntime,直接运行报错的内容中可以看到需要安装的库。
注意:
onnx请指定1.16.0,onnxruntime请指定1.19.2,否则会报错

1
2
pip install onnx==1.16.0
pip install onnxruntime==1.19.2

小结

至此,我们以及初步掌握了YOLO训练模型及利用模型进行预测的最基础的应用。
下一篇,我们将介绍下进阶的内容。


YOLO视觉检测应用入门篇(一)
http://kevin.zone.id/2025/04/08/yolobegin1/
作者
Kevin
发布于
2025年4月8日
许可协议