Jetson YOLO 实战教程:基于 YOLO11 的实时目标检测与视频录制完整解析

AI赋能编程语言挑战赛 7.9w人浏览 117人参与


📺 B站视频讲解(Bilibili)https://www.bilibili.com/video/BV1k1C9BYEAB/

📘 《Yocto项目实战教程》京东购买链接Yocto项目实战教程


YOLO 实战教程:基于 YOLO11 的实时目标检测与视频录制完整解析

一、概述:基于 YOLO11 的实时检测为何重要

实时目标检测(Real-time Object Detection)是计算机视觉领域应用最广泛的方向之一。在机器人、智能监控、安防分析、工业检测以及嵌入式视觉系统中,实时检测能力直接影响系统的决策速度与可用性。YOLO(You Only Look Once)系列因其高效的一阶段网络结构,在实时检测任务中表现突出。

本章节将围绕如下完整实战代码展开讲解:

from ultralytics import YOLO
import cv2
import time

model = YOLO("yolo11x.pt")
cap = cv2.VideoCapture(0)
if not cap.isOpened():
    raise RuntimeError("无法打开摄像头")

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

fourcc = cv2.VideoWriter_fourcc(*"mp4v")
out = cv2.VideoWriter("yolo_detection_output.mp4", fourcc, 20.0, (1280, 720))

while True:
    ret, frame = cap.read()
    if not ret:
        break

    results = model(frame, conf=0.8)
    annotated = results[0].plot()
    out.write(annotated)

    cv2.imshow("YOLO11n Real-time Detection", annotated)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
out.release()
cv2.destroyAllWindows()

接下来将逐行解析代码结构,并从模型推理逻辑、参数设计、实时检测特性、准确度优化等多个角度,构建一篇可直接用于教学、实战与工程化开发的完整内容。


在这里插入图片描述

二、YOLO11 模型体系与实时推理架构

YOLO11 是 Ultralytics 最新发布的 YOLO 系列模型,在结构设计、特征提取能力、推理效率以及统一 API 体系上均做了系统性优化。针对实时检测,它具备以下特点:

1. 结构轻量化与高效推理

YOLO11 在 Backbone 与 Neck 中引入更高效的特征融合模块,使得模型在同等算力下获得更好的速度与精度表现。

2. 多模型尺寸体系

YOLO11 提供五种模型大小,适用于不同设备:

模型参数量(M)特点使用场景
YOLO11n最轻量推理最快、精度较低边缘设备、移动端
YOLO11s轻量级性能均衡中端 GPU、Jetson
YOLO11m中等规模较高精度、推理速度适中需要精度的通用场景
YOLO11l大模型高精度、需要更高算力工业检测、视频分析
YOLO11x最大模型最强精度但推理最慢服务器端、大型 GPU、AGX Orin

本实战代码选用 YOLO11x,其目标是展示精度最高的检测效果,适合教学演示。


三、逐行解析实战代码结构与核心逻辑

下面从工程视角详细分析每一部分代码的目的与工作机制。

1. 加载 YOLO11 模型

model = YOLO("yolo11x.pt")

模型加载阶段主要执行以下任务:

  • 解析模型结构与权重文件;
  • 根据运行环境选择 CPU/GPU 推理;
  • 初始化推理图与优化配置;
  • 准备后处理模块(NMS、解码器等)。

YOLO11x 以最高精度为目标,在特征层、检测头等结构中包含更多卷积、注意力机制,因此推理速度较 YOLO11n 慢,但检测效果明显更稳定。


2. 打开摄像头与设置分辨率

cap = cv2.VideoCapture(0)

0 表示系统的默认摄像头输入,在大多数设备上为 USB 摄像头。对于 Jetson 设备,CSI 摄像头一般使用 GStreamer 管线,但 USB 摄像头使用 VideoCapture 是最简单的方式。

摄像头打开失败通常表示:

  • 摄像头未连接;
  • 权限不足;
  • /dev/video0 不存在;
  • 驱动未加载。

设置分辨率:

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

720p 在速度与画质之间达到平衡,适合实时展示与录制。


3. 创建视频保存器

fourcc = cv2.VideoWriter_fourcc(*"mp4v")
out = cv2.VideoWriter("yolo_detection_output.mp4", fourcc, 20.0, (1280, 720))

视频保存功能的作用包括:

  • 保存推理结果用于回放;
  • 收集模型误检样本;
  • 用作课程展示素材;
  • 调试检测效果。

这里设置为 20 FPS 输出,是保证视频稳定性的通用选择。


4. YOLO 推理核心逻辑

results = model(frame, conf=0.8)

这一行代码触发了 YOLO11x 的完整推理流程:

(1)预处理阶段

YOLO 自动执行:

  • 图像缩放到模型输入尺寸(默认 640 × 640);
  • 像素归一化;
  • 格式转换(BGR → RGB)。
(2)模型推理阶段

YOLO11x 执行多层卷积、特征融合、检测头输出,生成大量候选框(bounding boxes)。

(3)后处理阶段(NMS)

NMS(非极大值抑制)根据置信度压缩重叠框。

(4)置信度(conf)

本代码设置:

conf=0.8

其意义是:

  • 严格过滤低置信度检测框;
  • 显著减少误检;
  • 适合教学演示“高置信度检测结果”。

常见 conf 数值意义:

conf 值检测数量准确度误检情况
0.25(默认)有误检
0.5基本稳定
0.8很少很高几乎无误检

高置信度适合作为录制视频时的设置,使演示效果更稳定美观。


5. 绘制检测结果

annotated = results[0].plot()

自动绘制以下信息:

  • 边界框(Bounding Boxes);
  • 目标类别;
  • 置信度;
  • 颜色标记(按类别区分)。

无需手动绘图,是初学者最容易接受的可视化方式。


6. 保存处理后的画面

out.write(annotated)

写入视频文件,形成完整的检测录像,可用于:

  • 模型评估;
  • 教学演示;
  • 数据回放。

7. 实时显示检测结果

cv2.imshow("YOLO11n Real-time Detection", annotated)

实时展示检测画面,用于:

  • 观察模型行为;
  • 判断检测稳定性;
  • 视频录制与教程演示。

8. 键盘中断逻辑

if cv2.waitKey(1) & 0xFF == ord("q"):
    break

确保用户可以随时终止推理与录制过程。


四、置信度(Confidence)、NMS 与准确度提升策略

实时检测的核心质量指标由 conf、iou 等参数共同决定。

1. conf(置信度阈值)解析

置信度本质上是模型对某个预测框属于某类别的“确定程度”。

其作用是过滤低可信度框,当 conf 设置越高:

  • 模型越严格;
  • 误检减少;
  • 漏检小物体可能变多。

本代码使用 conf=0.8,适合追求高稳定性的教学演示场景。


关键推理参数解析:conf(置信度阈值)

在实时检测代码中,下面这一行是影响检测质量最关键的参数之一:

results = model(frame, conf=0.8)

conf(confidence threshold)表示 置信度阈值,即模型只有在“检测结果的置信度 ≥ conf” 时,才会将该物体视为有效目标并绘制边界框。

● 为什么置信度阈值重要?

YOLO 的检测输出包含大量候选框,每个框都有一个置信度分数,表示模型对“这个框中确实包含某类物体”判断的可信程度。若不设置阈值,会出现:

  • 误检 / 噪声框(False Positive)增加;
  • 对背景区域产生错误识别;
  • 输出画面混乱;
  • 后处理计算量增加影响 FPS。
● conf 越高越好吗?

不一定,它影响检测性能:

conf 值结果特点适用场景
0.25–0.4(默认)检测更多物体,少量误检通用场景
0.5–0.7边界框更干净、误检更少实际录制、监控应用
≥ 0.8非常干净但可能漏检工业检测、演示视频

你的代码:

results = model(frame, conf=0.8)

适用于 Jetson AGX Orin 的高性能设备,画面稳定且更专业。

● conf 与 NMS 的关系

YOLO 推理包含两步:

  1. 按 conf 过滤低置信度框
  2. NMS 去除重叠框

conf 决定“保留哪些框”,NMS 决定“最终输出哪些框”。

● 场景化建议
场景建议 conf原因
室内人物检测0.6–0.8减少背景误检
工业检测0.8–0.9需要高可靠性
多人户外场景0.4–0.6提高召回率
低光环境0.3–0.5模型置信度下降时仍能检测
● 推荐值

在 Jetson AGX Orin 上进行演示:

results = model(frame, conf=0.75)

可在“干净输出”与“不过度漏检”之间取得平衡。


📺 B站视频讲解(Bilibili)https://www.bilibili.com/video/BV1k1C9BYEAB/

📘 《Yocto项目实战教程》京东购买链接Yocto项目实战教程


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值