Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
集成

利用 TensorRT 集成优化 Ultralytics YOLO 模型

了解如何使用 TensorRT 集成导出 Ultralytics YOLO 模型,让 NVIDIA GPU 在实时应用中实现更快、更高效的 AI 性能。

Abirami VinaAbirami Vina6 分钟阅读
了解如何使用 TensorRT 集成导出 Ultralytics YOLO 模型,让 NVIDIA GPU 在实时应用中实现更快、更高效的 AI 性能。

想象一辆自动驾驶汽车在繁忙的街道上行驶,它只有几毫秒的时间来检测一个正要走下路缘的行人。与此同时,它可能还需要识别被树木部分遮挡的停车标志,或迅速应对附近一辆突然并入车道的车辆。在这些情况下,速度和实时响应至关重要。

这正是人工智能 (AI) 发挥关键作用的地方,尤其是计算机视觉这一人工智能分支,它能帮助机器解读视觉数据。要让计算机视觉解决方案在真实环境中可靠运行,通常需要快速处理信息、同时执行多项任务,并高效利用内存。

实现这一目标的一种方式是通过硬件加速,使用图形处理器 (GPUs)等专用设备来更快地运行模型。NVIDIA GPU 尤其适合这类任务,因为它们能够提供低延迟和高吞吐量。

然而,直接在 GPU 上运行模型并不总能保证最佳性能。视觉 AI 模型通常需要经过优化,才能充分发挥硬件设备的能力。为了充分利用特定硬件的性能,我们需要编译模型,使其使用该硬件专用的一组指令。

例如,TensorRT 是 NVIDIA 开发的一种导出格式和优化库,旨在提升 NVIDIA GPU 上的性能。它采用先进技术,在保持准确性的同时显著缩短推理时间。

NVIDIA TensorRT 可让模型在 NVIDIA 设备上以最佳状态运行

图 1. NVIDIA TensorRT 可让模型在各种 NVIDIA 设备上以最佳状态运行。

本文将介绍 Ultralytics 支持的 TensorRT 集成,并演示如何导出 YOLO11 模型,以便在 NVIDIA 硬件上更快、更高效地部署。开始吧!

TensorRT 概述#

TensorRT 是 NVIDIA 开发的工具包,旨在帮助 AI 模型在 NVIDIA GPU 上运行得更快、更高效。它专为速度和性能至关重要的实际应用而设计,例如自动驾驶汽车,以及制造和制药行业的质量控制。

TensorRT 包含编译器和模型优化器等工具,可以在后台工作,确保模型以低延迟运行并处理更高的吞吐量。

Ultralytics 支持的 TensorRT 集成会通过降低精度等方法优化 YOLO 模型,使其在 GPU 上运行得更加高效。降低精度是指使用 16 位浮点数 (FP16) 或 8 位整数 (INT8) 等较低位宽格式表示模型数据,从而减少内存用量并加快计算,同时尽可能降低对准确性的影响。

此外,经过优化的 TensorRT 模型会融合兼容的神经网络层,以减少内存使用,从而实现更快、更高效的推理。

TensorRT 层融合技术一览

图 2. TensorRT 层融合技术一览。

TensorRT 导出格式的主要特性#

在讨论如何使用 TensorRT 集成导出 Ultralytics YOLO11 之前,我们先来看看 TensorRT 模型格式的一些主要特性:

  • 轻松集成框架:TensorRT 支持与 PyTorch、Hugging Face 和 ONNX 等热门 AI 框架直接集成,性能最高可提升 6 倍。它还支持 MATLAB,可在 Jetson、NVIDIA DRIVE 和数据中心等平台上开发高速 AI 引擎。
  • 借助 Triton 实现可扩展部署:使用 TensorRT 格式优化的模型可以通过 NVIDIA Triton Inference Server进行大规模部署。该服务器通过输入批处理、并发模型执行、模型集成支持以及实时音视频流等功能提高效率。
  • 适用于多种设备:从小型边缘设备到强大的服务器,TensorRT 均可在整个 NVIDIA 生态系统中运行,并支持用于视频的 DeepStream、用于语音 AI 的 Riva,以及用于网络安全、推荐等领域的其他工具。

TensorRT 集成如何工作?#

将 Ultralytics YOLO 模型(例如 Ultralytics YOLO11)导出为 TensorRT 模型格式非常简单。下面来看看具体步骤。

要开始使用,请通过 Ultralytics Python 包进行安装,可以使用 pip 等包管理器。你可以在命令提示符或终端中运行命令 pip install ultralytics 来完成安装。

成功安装 Ultralytics Python 包后,你就可以训练、测试、微调、导出和部署模型,用于目标检测、分类和实例分割等各种计算机视觉任务。安装过程中如果遇到困难,可以参阅常见问题指南,获取解决方案和建议。

下一步,你需要一台 NVIDIA 设备。使用下面的代码片段将 YOLO11 加载并导出为 TensorRT 模型格式。该代码会加载 YOLO11 模型的预训练 Nano 变体 (yolo11n.pt),并将其导出为 TensorRT 引擎文件 (yolo11n.engine),以便在 NVIDIA 设备上部署。

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.export(format="engine")

将模型转换为 TensorRT 格式后,你就可以将其部署到各种应用中。

以下示例展示如何加载导出的 YOLO11 模型 (yolo11n.engine) 并运行推理。推理是指使用训练好的模型对新数据进行预测。在本例中,我们将使用一张狗的图像作为输入来测试模型。

tensorrt_model = YOLO("yolo11n.engine")
results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)

运行此代码后,以下输出图像将保存在 runs/detect/predict 文件夹中。

使用 TensorRT 格式的导出 Ultralytics YOLO11 模型运行推理

图 3. 使用 TensorRT 格式的导出 Ultralytics YOLO11 模型运行推理的结果。

何时使用 TensorRT 集成#

Ultralytics Python 包支持多种集成,可将 YOLO 模型导出为 TorchScript、CoreML、ONNX 和 TensorRT 等不同格式。那么,什么时候应该选择 TensorRT 集成?

以下是 TensorRT 模型格式区别于其他导出集成选项的几个因素:

  • 模型体积更小:将 YOLO 模型以 INT8 精度 (quantize=8) 导出为 TensorRT 格式,可以显著减小模型体积。从 FP32 量化到 INT8 可将模型体积缩小至原来的四分之一,从而缩短下载时间、降低存储需求,并减少部署时的内存占用。
  • 功耗更低:INT8 量化不仅能缩小模型尺寸,还能降低功耗。与 FP32 模型相比,使用 INT8 精度导出的 YOLO 模型执行低精度运算时耗电更少,这对无人机、智能手机或边缘设备等电池供电设备尤其有益。
  • 性能更快:将 YOLO 高效的架构与 TensorRT 的 INT8 优化相结合,可以提高推理速度。

Ultralytics YOLO11 和 TensorRT 模型格式的应用#

导出为 TensorRT 格式的 Ultralytics YOLO 模型可以部署在各种真实场景中。这些经过优化的模型尤其适用于快速、高效的 AI 性能至关重要的场景。下面来看看一些有趣的应用示例。

零售门店中的智能结账柜台#

零售门店中的许多工作仍由员工手动完成,例如扫描条形码、称量商品或包装物品。然而,完全依赖员工可能会拖慢运营速度并引起顾客不满,尤其是在结账时。排长队对顾客和店主都很不方便。智能自助结账柜台是解决这一问题的绝佳方案。

这些柜台利用计算机视觉和 GPU 加快结账流程,帮助缩短等待时间。计算机视觉通过目标检测等任务,让这些系统能够观察并理解周围环境。Ultralytics YOLO11 等先进模型经过 TensorRT 等工具优化后,可以在 GPU 设备上运行得快得多。

这些导出模型非常适合用于智能零售场景,可搭配 NVIDIA Jetson Nano 等小巧而强大的硬件设备;这类设备专为边缘 AI 应用设计。

顾客在配有摄像头的智能结账亭刷卡付款,托盘上放着零食和一根香蕉

图 4. 智能结账柜台示例。

制造业中的自动化缺陷检测#

Ultralytics YOLO11 这样的计算机视觉模型可以通过自定义训练来检测制造业中的缺陷产品。训练完成后,可以将模型导出为 TensorRT 格式,并部署在配备高性能 AI 系统的工厂中。

产品沿传送带移动时,摄像头会拍摄图像,而以 TensorRT 格式运行的 Ultralytics YOLO11 模型则会实时分析图像并发现缺陷。这样的配置有助于企业快速、准确地发现问题,减少错误并提高效率。

同样,制药等行业也在使用这类系统识别药品包装中的缺陷。事实上,到 2026 年,全球智能缺陷检测系统市场预计将增长至 50 亿美元。

使用 YOLO 检测制药行业中的缺陷

图 5. 使用 YOLO 检测制药行业中的缺陷。

使用 TensorRT 时需要注意的事项#

TensorRT 集成有许多优势,例如提高推理速度和降低延迟,但也有一些局限性需要注意:

  • 准确性略有下降:将模型导出为 TensorRT 格式后,导出的模型可能不如原始模型准确。性能指标,例如精确率、召回率以及模型检测物体的能力 (mAP 分数),都可能略有下降。可以在 INT8 量化过程中使用有代表性的校准数据集(data 参数)来缓解这一问题。
  • 调试复杂度增加:TensorRT 执行的优化会让错误追踪或异常行为分析变得更加棘手,尤其是在与原始模型比较结果时。
  • 对批量大小敏感:批量大小越大,TensorRT 的性能提升越明显。对于处理单张图像或小批量数据的应用,性能提升可能不那么显著。

要点#

将 Ultralytics YOLO 模型导出为 TensorRT 格式,可以显著提升运行速度和效率,因此非常适合实时任务,例如检测工厂缺陷、支持智能结账系统,或监控繁忙的城市区域。

这项优化可以加快预测速度并减少内存和功耗,从而提升模型在 NVIDIA GPU 上的表现。虽然存在一些限制,但性能提升使 TensorRT 集成成为任何在 NVIDIA 硬件上构建高速计算机视觉系统的人的理想选择。

想进一步了解 AI?浏览我们的 GitHub 代码仓库,加入我们的社区,并查看我们的许可选项,开启你的计算机视觉项目。在我们的解决方案页面了解更多创新应用,例如制造业中的 AI和物流行业中的计算机视觉。

作者

Abirami Vina
Abirami Vina

内容创作者 · Ultralytics

Abirami Vina 职业生涯始于计算机视觉工程师,由此在视觉 AI 和机器学习领域打下了坚实基础。她是 Ultralytics 的内容创作者,也是 Scribe of AI 的创始人兼首席撰稿人,为专注 AI 的公司撰写高质量技术内容。她热衷于让 AI 更易理解、更具吸引力,通过自己的作品连接前沿技术与现实影响。

评论

提出问题、分享你的结果,或帮助其他人。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来