Jetson边缘嵌入式实战课程第九讲:Ultralytics YOLO模型实战,从目标检测到实时推理

大家好,我是孙杰。

最近我和 与非网、贸泽电子 合作,做了一套 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 这类边缘计算平台。


二、这一讲主要讲什么

这一讲内容可以压缩成四件事:

  1. AI 模型到底是什么;

  2. YOLO 和 Ultralytics 是什么关系;

  3. YOLO 的推理流程是怎样的;

  4. 如何在 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.ptyolo11x.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

模型不是越大越好。

边缘端更重要的是速度、精度和资源占用之间的平衡。


四、这一讲的重点

如果把这一讲再压缩,必须抓住下面几条:

  1. AI 模型不是手写规则,而是由数据、算法和算力训练出来的;

  2. YOLO 是目标检测模型,Ultralytics 是运行、训练、导出 YOLO 的框架;

  3. YOLO 推理流程包括预处理、Backbone、Neck、Head 和 NMS;

  4. YOLO 输出结果包括边界框、类别、置信度等信息;

  5. confiouimgsz 会直接影响检测效果;

  6. 模型越大不一定越适合边缘端,要看实时性和资源占用;

  7. 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 系统定制感兴趣,欢迎继续关注这个系列。

相关推荐
土星云SaturnCloud1 小时前
VILA 视觉语言模型边缘部署实战
服务器·人工智能·语言模型·自然语言处理·边缘计算
木卫四科技1 小时前
从函数劫持到智能体控制平面:Hook 如何从 Linux-Android 演化到 Agent Runtime
android·linux·人工智能·安全
YFJ_mily1 小时前
第四届成熟系列会议|SPIC2026信号处理与智能计算 IEEE会议|连续两届完成EI&Scopus检索|广州会议
人工智能·机器人·信号处理·智能计算·ieee会议·rdlink研发家·高届数会议
SL-staff1 小时前
离散制造企业如何应对频繁插单?智能排产系统带来新思路
大数据·数据库·人工智能·技术教程·智能排产·jvs-aps·排产系统
GEO实战经验分享1 小时前
GEO王涛解码智能核心:详解Transformer与注意力机制的工作原理
人工智能·深度学习·transformer
KKKlucifer1 小时前
AI深度赋能认证、授权、账号、审计全流程——智能身份安全防护体系实践
人工智能·安全
TMT星球1 小时前
IFA2026丨TCL华星携多款显示产品亮相,创新显示科技开启未来视界
大数据·人工智能·科技
Web极客码1 小时前
Pydantic 校验通过不等于答案正确:如何识别 LLM 的语义错误
服务器·人工智能·ai·llm
江苏赛融科技1 小时前
边缘计算:园区能耗管理系统的“最后一公里”突围
人工智能·边缘计算·智慧园区·园区智能化·能耗管理系统·能耗计算·园区能耗