敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024

使用 TensorRT 集成优化 Ultralytics YOLO 模型

Abirami Vina

5 分钟阅读

2025年5月20日

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

设想一辆自动驾驶汽车行驶在繁忙的街道上,只有几毫秒的时间来检测从路边走下来的行人。与此同时,它可能需要识别被树木部分遮挡的停车标志,或者对驶入其车道的附近车辆做出快速反应。在这种情况下,速度和实时响应至关重要。

这就是人工智能 (AI),特别是 计算机视觉(人工智能的一个分支,可帮助机器解释视觉数据)发挥关键作用的地方。为了使计算机视觉解决方案在现实环境中可靠地工作,通常需要快速处理信息、同时处理多个任务并高效地使用内存。

实现这一目标的一种方法是通过硬件加速,使用图形处理单元(GPU)等专用设备来更快地运行模型。NVIDIA GPU以其能够提供低延迟和高吞吐量而闻名。

然而,按原样在GPU上运行模型并不总是能保证最佳性能。视觉AI模型通常需要经过优化才能充分利用硬件设备的功能。为了通过特定硬件实现完整性能,我们需要编译模型以使用该硬件的特定指令集。

例如,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 模型中融合,以减少内存使用,从而实现更快、更高效的推理。

图 2. TensorRT 的层融合技术概览。

TensorRT 导出格式的主要特性

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

  • 輕鬆的框架集成: TensorRT 支援與流行的 AI 框架(如 PyTorch、Hugging Face 和 ONNX)直接集成,從而提供高達 6 倍的性能提升。 它還支援 MATLAB,從而可以在 Jetson、NVIDIA DRIVE 和資料中心等平台上開發高速 AI 引擎。
  • 使用 Triton 进行可扩展的部署: 以 TensorRT 格式优化的模型可以使用 NVIDIA Triton Inference Server 进行大规模部署,该服务器通过输入批处理、并发模型执行、模型集成支持和实时音频/视频流等功能来提高效率。
  • 跨设备的灵活性: 从小型边缘设备到功能强大的服务器,TensorRT 适用于整个 NVIDIA 生态系统,支持 DeepStream(用于视频)、Riva(用于语音 AI)以及其他用于网络安全、推荐等工具。

TensorRT 集成如何运作?

Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 TensorRT 模型格式非常简单。让我们逐步了解所涉及的步骤。

首先,您可以使用诸如“pip”之类的包管理器安装 Ultralytics Python 包。这可以通过在命令提示符或终端中运行命令 “pip install ultralytics” 来完成。

成功安装 Ultralytics Python 包后,您可以训练、测试、微调、导出和部署模型,以用于各种计算机视觉任务,例如目标检测、分类和实例分割。如果在安装软件包时遇到任何困难,您可以参考常见问题解答指南以获取解决方案和技巧。

下一步,您需要一个 NVIDIA 设备。使用下面的代码片段来加载 YOLOv11 并将其导出为 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 文件夹中。

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

何时利用TensorRT集成

Ultralytics Python 软件包支持各种集成,允许将 导出 YOLO 模型为不同的格式,如 TorchScript、CoreML、ONNX 和 TensorRT。那么,何时应该选择使用 TensorRT 集成呢?

以下是一些使 TensorRT 模型格式与其他导出集成选项区分开来的因素:

  • 更小的模型尺寸: 使用 INT8 精度将 YOLO 模型导出为 TensorRT 格式可以显着减小模型尺寸。从 FP32 到 INT8 的量化可以使模型尺寸缩小 4 倍,从而缩短下载时间,降低存储要求并减少部署期间的内存占用。
  • 更低的功耗: INT8量化不仅减小了模型尺寸,还降低了功耗。与FP32模型相比,用于INT8导出的YOLO模型的降精度操作可以消耗更少的功率,这对于无人机、智能手机或边缘设备等电池供电设备尤其有利。
  • 更快的性能: 将 YOLO 的高效架构与 TensorRT 的 INT8 优化相结合,可以提高推理速度。

YOLO11 和 TensorRT 模型格式的应用

导出为 TensorRT 格式的 Ultralytics YOLO 模型可以部署在各种实际场景中。这些优化后的模型在快速、高效的 AI 性能至关重要的情况下尤其有用。让我们来探索一些它们的应用实例。

零售商店中的智能结账柜台

零售商店中的许多任务,例如扫描条形码、称重产品或包装商品,仍然由员工手动处理。 然而,仅仅依靠员工会减慢运营速度并导致客户不满,尤其是在结账时。 长队对于购物者和店主来说都是不方便的。 智能自助结账柜台是解决此问题的好方法。

这些计数器使用计算机视觉和 GPU 来加速处理过程,从而有助于减少等待时间。计算机视觉使这些系统能够通过诸如目标检测之类的任务来观察和理解其环境。当使用 TensorRT 等工具进行优化时,YOLO11 等高级模型可以在 GPU 设备上运行得更快。

这些导出的模型非常适合使用紧凑但功能强大的硬件设备(如专为边缘 AI 应用设计的 NVIDIA Jetson Nano)的智能零售设置。

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

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

像 YOLO11 这样的计算机视觉模型可以经过自定义训练,以检测制造业中的缺陷产品。 经过训练后,可以将模型导出为 TensorRT 格式,以便部署在配备高性能 AI 系统的设施中。 

当产品沿着传送带移动时,摄像头会捕获图像,而以 TensorRT 格式运行的 YOLO11 模型会实时分析这些图像以发现缺陷。这种设置使公司能够快速准确地发现问题,从而减少错误并提高效率。

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

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

使用 TensorRT 时需要记住的注意事项

虽然 TensorRT 集成带来了许多优势,例如更快的推理速度和更低的延迟,但以下是一些需要注意的限制:

  • 准确性略有下降: 当您以 TensorRT 格式导出模型时,导出的模型可能不如原始模型准确。诸如精度、召回率以及模型检测对象的能力(mAP 分数)等性能指标可能会略有下降。可以通过在量化期间使用具有代表性的数据集来缓解这种情况。 
  • 增加调试复杂性:TensorRT 完成的优化会使跟踪错误或理解意外行为变得更加棘手,尤其是在将结果与原始模型进行比较时。
  • 批量大小敏感性:TensorRT 的性能提升在较大的批量大小时更为明显。对于处理单个图像或小批量数据的应用程序,性能改进可能不太显着。

主要要点

将 Ultralytics YOLO 模型导出为 TensorRT 格式可以显著提高其运行速度和效率,使其成为实时任务的理想选择,例如检测工厂中的缺陷、为智能结账系统提供支持或监控繁忙的城市区域。 

这种优化通过加速预测并减少内存和功耗,帮助模型在NVIDIA GPU上表现更好。虽然有一些限制,但性能提升使TensorRT集成成为在NVIDIA硬件上构建高速计算机视觉系统的绝佳选择。

想了解更多关于人工智能的信息吗?请浏览我们的GitHub 仓库,与我们的社区互动,并查看我们的许可选项,以快速启动您的计算机视觉项目。在我们的解决方案页面上,了解更多关于制造业中的人工智能物流行业中的计算机视觉等创新应用。

让我们一起构建人工智能的未来!

开启您的机器学习未来之旅

免费开始
链接已复制到剪贴板