大家好,我是孙杰。

最近我和 与非网、贸泽电子 合作,做了一套 Jetson 边缘嵌入式实战课程。前面六讲,我们把 Jetson 的硬件平台、JetPack、L4T、Yocto、Secure Boot,以及 OP-TEE 安全体系都逐步讲清楚了。第七讲和第八讲,我们开始进入 GStreamer,从基础概念讲到 USB 摄像头视频流实战。
到了第九讲,课程正式进入 AI 模型实战。

这一讲的主题是:
Ultralytics YOLO 模型实战:在 Jetson 上理解 YOLO 是什么,并跑通实时目标检测。
第八讲解决的是:
视频流怎么进来?
第九讲要解决的是:
模型怎么识别画面?
也就是把 Jetson 上的摄像头画面送进 YOLO 模型,完成目标检测、置信度判断和实时显示。
本文基于第九讲课程 PPT 内容整理。
文章格式参考前面第八讲 CSDN 博文的结构:开头引入课程背景,中间围绕核心知识点展开,最后给出课程重点、适合人群和课程入口。
一、为什么要讲 YOLO
前面我们已经用 GStreamer 把 USB 摄像头画面跑起来了。
但对于边缘 AI 设备来说,只能"看到画面"还不够。真正有价值的是让设备能够"看懂画面"。
比如:
-
画面中有没有人?
-
有没有车、椅子、杯子、瓶子?
-
每个目标在哪里?
-
模型对这个结果有多大把握?
-
能不能实时检测、实时显示?
这就是目标检测模型要解决的问题。
一条最基础的边缘 AI 视觉链路可以这样理解:
摄像头采集
↓
视频流处理
↓
AI 模型推理
↓
检测框 / 类别 / 置信度
↓
实时显示或业务处理
YOLO 是目前非常常用的目标检测模型,特点是速度快、结构清晰、部署方便,非常适合 Jetson 这类边缘计算平台。
二、这一讲主要讲什么
这一讲内容可以压缩成四件事:
-
AI 模型到底是什么;
-
YOLO 和 Ultralytics 是什么关系;
-
YOLO 的推理流程是怎样的;
-
如何在 Jetson 上用 YOLO11 做实时目标检测。
把这四件事理顺,后面再做模型训练、TensorRT 加速、DeepStream 部署、多路摄像头分析,思路会清楚很多。
三、几个核心知识点
1. AI 模型不是手写规则

很多初学者容易把 AI 模型理解成一堆 if/else 规则。
其实不是。
AI 模型可以简单理解为:
数据 + 神经网络算法 + GPU 训练
↓
模型结构 + 权重参数
↓
输入图片,输出判断结果
模型一般由两部分组成:
| 组成 | 含义 |
|---|---|
| 结构 | 网络骨架,决定模型怎么处理数据 |
| 权重 | 训练得到的参数,决定模型识别能力 |
所以,AI 模型本质上是通过大量数据训练出来的数学函数。
它接收输入,例如一张图片,然后输出目标类别、位置、置信度等结果。
这也是为什么同样是"检测人、车、杯子",不同模型的效果会不一样。
因为它们的网络结构、训练数据、参数规模和训练效果都不同。
2. YOLO 是什么
YOLO 的全称是:
You Only Look Once
意思是:只看一次,就完成目标检测。
传统目标检测方法往往需要先生成候选框,再对候选框分类,流程比较长。
YOLO 则把目标检测转换成一次前向推理问题,一次推理就能输出目标的位置、类别和置信度。
它的优势比较明显:
-
速度快;
-
结构轻;
-
实时性好;
-
易部署;
-
适合边缘设备。
对于 Jetson 来说,YOLO 很适合作为 AI 视觉入门和工程实战模型。
3. YOLO 和 Ultralytics 的关系

很多人容易把 YOLO 和 Ultralytics 混在一起。
可以这样区分:
| 名称 | 定位 | 理解方式 |
|---|---|---|
| YOLO | 模型 | 例如 yolo11n.pt、yolo11x.pt |
| Ultralytics | 框架 | 用来加载、训练、推理、导出 YOLO 模型 |
从代码角度看:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
这行代码的意思是:
用 Ultralytics 框架,加载一个 YOLO 模型文件。
所以,YOLO 更像是"模型本身",Ultralytics 更像是"使用模型的软件框架"。
4. YOLO11 支持哪些任务
Ultralytics YOLO11 不只是目标检测,还支持多种视觉任务:
| 任务 | 输出 | 典型场景 |
|---|---|---|
| 检测 Detect | bbox + class + conf | 人车检测、安防监控 |
| 分割 Segment | mask + bbox | 缺陷检测、区域识别 |
| 分类 Classify | class | 产品识别、图像分类 |
| 姿态 Pose | keypoints | 人体动作、姿态估计 |
| 旋转框 OBB | x/y/w/h/angle | 遥感、无人机航拍 |
对于 Jetson 入门,建议先从 目标检测 Detect 开始。
因为它最直观,也最容易和摄像头、OpenCV、GStreamer 结合起来。
5. YOLO 的推理流程

一张图片进入 YOLO 后,大致会经过下面几个阶段:
输入图像
↓
预处理
↓
Backbone 特征提取
↓
Neck 多尺度特征融合
↓
Head 输出预测框和类别
↓
NMS 筛选重复框
↓
最终检测结果
几个核心模块的作用如下:
| 模块 | 作用 |
|---|---|
| Backbone | 提取图像特征,例如边缘、纹理、形状 |
| Neck | 融合不同尺度特征,增强大小目标识别能力 |
| Head | 输出目标类别、位置和置信度 |
| NMS | 去掉重复框,保留最优结果 |
可以简单理解:
Backbone 负责看特征
Neck 负责融合特征
Head 负责输出结果
NMS 负责筛掉重复框
YOLO 的优势就在于,它不需要复杂的多阶段流程,一次前向推理就能得到检测结果。
6. YOLO 输出结果怎么看
YOLO 最终输出的不是简单的一张图片,而是一组结构化结果。
常见结果包括:
| 字段 | 含义 |
|---|---|
boxes |
目标框位置 |
conf |
置信度 |
cls |
类别索引 |
plot() |
把检测框和标签画到图像上 |
例如:
results = model(frame, conf=0.8)
表示对当前帧执行检测,并过滤掉低于 0.8 置信度的结果。
再调用:
annotated = results[0].plot()
就可以把检测框、类别名称和置信度叠加到画面上。
7. Ultralytics YOLO 安装与常用接口

安装命令很简单:
pip install ultralytics
查看版本:
yolo -v
课程中演示版本为:
8.3.233
不过在 Jetson 上,真正要注意的不只是 Ultralytics 安装成功,还要保证:
JetPack
CUDA
PyTorch
Ultralytics
这些版本之间能够匹配。
否则可能出现:
代码能运行,但 GPU 没有正常加速。
Ultralytics 常用接口如下:

| 功能 | 调用方式 | 说明 |
|---|---|---|
| 检测 | model("img.jpg") |
输入图片,返回检测结果 |
| 预测 | model.predict(source, conf, iou) |
可设置置信度和 IOU |
| 跟踪 | model.track(source, persist=True) |
输出带 ID 的目标跟踪结果 |
| 训练 | model.train(data, epochs, imgsz) |
训练自定义数据集 |
| 验证 | model.val(data="data.yaml") |
计算 mAP、Precision、Recall |
| 导出 | model.export(format="onnx") |
导出 ONNX / TensorRT 等格式 |
训练示例:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.train(
data="path/to/dataset.yaml",
epochs=100,
imgsz=640
)
这也是 Ultralytics 比较适合入门的原因:
训练、检测、跟踪、导出,接口比较统一。
8. YOLO11 实时目标检测实战

本节课的核心实战代码如下:
from ultralytics import YOLO
import cv2
m = YOLO("yolo11x.pt") # 加载 YOLO 模型
c = cv2.VideoCapture(0) # 打开摄像头
c.set(3, 2560)
c.set(4, 1440) # 设置 2K 分辨率
while True:
_, f = c.read() # 读取一帧画面
a = m(f, conf=0.8)[0].plot() # 推理 + 绘制检测结果
cv2.imshow("YOLO Realtime", a)
if cv2.waitKey(1) == ord("q"):
break
c.release()
cv2.destroyAllWindows()
这段代码可以拆成四步:
打开摄像头
↓
读取一帧图像
↓
YOLO 模型推理
↓
绘制检测结果并显示
这就是一个最小可用的实时目标检测程序。
9. conf=0.8 是什么意思
代码中有一个关键参数:
m(f, conf=0.8)
conf 表示置信度阈值。
它决定哪些检测框会被保留下来。
| conf 值 | 检测数量 | 误检情况 | 适合场景 |
|---|---|---|---|
| 0.25 | 多 | 容易误检 | 默认测试 |
| 0.5 | 适中 | 比较稳定 | 常规应用 |
| 0.8 | 少 | 误检更少 | 教学演示、高置信度结果 |
课程中设置 conf=0.8,主要是为了过滤低置信度结果,让演示画面更干净。
10. YOLO11 模型大小怎么选
YOLO11 提供不同大小的模型,常见是 n/s/m/l/x。
| 模型 | 特点 | 适合场景 |
|---|---|---|
| YOLO11n | 最轻量,速度最快 | 边缘设备、移动端 |
| YOLO11s | 轻量级,速度和精度均衡 | Jetson、中端 GPU |
| YOLO11m | 中等规模,精度更高 | 通用检测场景 |
| YOLO11l | 大模型,高精度 | 工业检测、视频分析 |
| YOLO11x | 最大模型,精度最高但最慢 | AGX Orin、服务器 GPU |
课程中使用的是:
YOLO("yolo11x.pt")
它检测效果更强,但推理压力也更高。
如果是在 Orin Nano、Orin NX,或者更关注帧率,可以优先尝试:
yolo11n.pt
yolo11s.pt
模型不是越大越好。
边缘端更重要的是速度、精度和资源占用之间的平衡。
四、这一讲的重点

如果把这一讲再压缩,必须抓住下面几条:
-
AI 模型不是手写规则,而是由数据、算法和算力训练出来的;
-
YOLO 是目标检测模型,Ultralytics 是运行、训练、导出 YOLO 的框架;
-
YOLO 推理流程包括预处理、Backbone、Neck、Head 和 NMS;
-
YOLO 输出结果包括边界框、类别、置信度等信息;
-
conf、iou、imgsz会直接影响检测效果; -
模型越大不一定越适合边缘端,要看实时性和资源占用;
-
Jetson 上运行 YOLO,要关注 JetPack、CUDA、PyTorch 环境匹配。
从第八讲到第九讲,课程完成了一个很重要的衔接:
第八讲:让 Jetson 看到画面
第九讲:让 Jetson 看懂画面
五、适合哪些人学习
如果你正处在下面这些阶段,这一讲会很适合你:
-
想在 Jetson 上跑 YOLO;
-
想理解 AI 模型到底是什么;
-
想搞清楚 YOLO 和 Ultralytics 的关系;
-
想用摄像头做实时目标检测;
-
想把 GStreamer 视频流接到 AI 推理;
-
想做机器人视觉、工业检测、AI Box、智能摄像头;
-
后续准备做模型训练、TensorRT 加速或 DeepStream 部署。
如果第八讲已经把摄像头画面跑起来了,这一讲就可以继续往下走,把画面送进 YOLO 模型。
六、视频与课程入口
B站视频地址:
https://www.bilibili.com/video/BV1TQtB6FELg
与非网课程入口:
【来实战】Jetson 嵌入式系统定制与边缘计算实战_教程视频- 与非网
本系列课程《Jetson 嵌入式系统定制与边缘计算实战》,围绕 Jetson 平台的系统定制、边缘计算、多媒体处理和工程实战展开。
前面课程从 Jetson 硬件平台、JetPack、L4T、Yocto、Secure Boot、OP-TEE,到 GStreamer 视频流逐步展开。
第九讲开始,我们正式把视频流和 AI 模型连接起来。
建议大家重点把这段代码亲自跑一遍:
from ultralytics import YOLO
import cv2
m = YOLO("yolo11x.pt")
c = cv2.VideoCapture(0)
c.set(3, 2560)
c.set(4, 1440)
while True:
_, f = c.read()
a = m(f, conf=0.8)[0].plot()
cv2.imshow("YOLO Realtime", a)
if cv2.waitKey(1) == ord("q"):
break
c.release()
cv2.destroyAllWindows()
跑通之后,再尝试调整:
模型大小:yolo11n / yolo11s / yolo11x
输入分辨率:640 / 1280 / 2560
置信度阈值:conf=0.25 / 0.5 / 0.8
这样你会更直观地理解模型大小、分辨率、置信度和实时性的关系。
七、最后想分享的话
从这一讲开始,Jetson 不只是把摄像头画面显示出来,而是开始真正"看懂画面"。
YOLO 看起来是一个 AI 模型,但在实际项目里,它只是整条边缘视觉链路中的一环:
摄像头
↓
视频流
↓
模型推理
↓
检测结果
↓
业务处理
真正做项目时,不能只看模型能不能识别,还要看视频流是否稳定、推理速度是否够用、误检是否可控、系统资源是否能长期支撑。
这一讲先把 YOLO 的基础概念和实时检测跑起来。后面继续做模型训练、TensorRT 加速、DeepStream 部署、多路摄像头 AI 分析时,这些基础都会反复用到。
如果你对 Jetson、YOLO、GStreamer、Yocto、边缘 AI 和嵌入式 Linux 系统定制感兴趣,欢迎继续关注这个系列。