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

试想一辆自动驾驶汽车行驶在繁忙的街道上,它只有几毫秒的时间来探测横穿马路的行人。与此同时,它可能还需要识别被树木部分遮挡的停车标志,或者对附近突然变道进入车道的车辆做出快速反应。在这种情况下,速度和实时响应至关重要。
这就是人工智能(AI),具体来说是计算机视觉(AI的一个分支,帮助机器理解视觉数据)发挥关键作用的地方。为了让计算机视觉解决方案在真实世界环境中可靠运行,它们通常需要快速处理信息、同时处理多项任务并高效利用内存。
实现这一目标的方法之一是通过硬件加速,使用诸如图形处理器(GPU)之类的专用设备来更快地运行模型。NVIDIA GPU 因其能够提供低延迟和高吞吐量而非常适合此类任务。
然而,直接在 GPU 上运行模型并不总能保证最佳性能。视觉 AI 模型通常需要经过优化,才能充分发挥硬件设备的功能。为了在特定硬件上实现满意的性能,我们需要编译模型以调用该硬件的特定指令集。
例如,TensorRT 是 NVIDIA 开发的一种导出格式和优化库,旨在提升高端机器上的性能。它使用先进技术在保持准确性的同时显著降低推理时间。

图 1. NVIDIA TensorRT 使模型能够在各种 NVIDIA 设备上以最佳状态运行。
在这篇文章中,我们将探讨由 Ultralytics 支持的TensorRT 集成,并演示如何导出你的 YOLO11 模型,以便在 NVIDIA 硬件上实现更快、更高效的部署。我们开始吧!
TensorRT 概述#
TensorRT 是 NVIDIA 开发的一款工具包,旨在帮助 AI 模型在 NVIDIA GPUs 上运行得更快、更高效。它专为那些对速度和性能要求极高的现实应用而设计,例如自动驾驶汽车以及制造业和制药业的质量控制。
TensorRT 包含编译器和模型优化器等工具,可以在后台工作,确保你的模型以低延迟运行,并能处理更高的吞吐量。
Ultralytics 支持的 TensorRT 集成通过使用降低精度等方法来优化你的 YOLO 模型,使其在 GPU 上运行得更高效。这指的是使用较低位格式(例如 16 位浮点数 (FP16) 或 8 位整数 (INT8))来表示模型数据,从而在对准确率影响极小的情况下减少内存使用并加速计算。
此外,兼容的神经网络层会在优化的 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(视频)、Riva(语音 AI)以及其他用于网络安全、推荐系统等的工具。
TensorRT 集成是如何工作的?#
将 Ultralytics YOLO 模型(例如 Ultralytics YOLO11)导出为 TensorRT 模型格式非常简单。让我们来了解一下相关步骤。
首先,你可以使用像 “pip” 这样的包管理器安装 Ultralytics Python package。只需在你的命令提示符或终端中运行命令 “pip install ultralytics” 即可完成。
成功安装 Ultralytics Python 包后,你可以为目标检测、分类和实例分割等各种计算机 vision 任务训练、测试、微调、导出和部署模型。在安装该包的过程中,如果遇到任何困难,你可以参考常见问题指南以获取解决方案和提示。
下一步,你需要一台 NVIDIA 设备。使用下方的代码片段来加载并将 YOLO11 导出为 TensorRT 模型格式。它会加载预训练的 YOLO11 纳米版本 (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 格式导出的 Ultralytics YOLO11 模型运行推理的结果。
何时利用 TensorRT 集成#
Ultralytics Python 包支持各种集成,允许将 YOLO 模型导出为 TorchScript、CoreML、ONNX 和 TensorRT 等不同格式。那么,你什么时候应该选择使用 TensorRT 集成呢?
以下是使 TensorRT 模型格式区别于其他导出集成选项的一些因素:
-
更小的模型尺寸: 以 INT8 精度将 YOLO 模型导出为 TensorRT 格式可以显著减小模型尺寸。从 FP32 量化到 INT8 可以使模型尺寸缩小 4 倍,从而实现更快的下载速度、更低的存储需求以及部署时更小的内存占用。
-
更低的功耗: INT8 量化不仅能减小模型尺寸,还能降低功耗。相比 FP32 模型,INT8 导出的 YOLO 模型由于使用了低精度运算,功耗更低,这对于无人机、智能手机或边缘设备等电池供电的设备尤为有利。
-
更快的性能: 将 YOLO 的高效架构与 TensorRT 的 INT8 优化相结合,可以提升推理速度。
Ultralytics YOLO11 与 TensorRT 模型格式的应用#
导出为 TensorRT 格式的 Ultralytics YOLO 模型可部署在广泛的现实场景中。这些优化后的模型在需要快速、高效 AI 性能的地方特别有用。让我们来看看它们可以如何应用的一些有趣示例。
零售商店的智能结账柜台#
零售商店中的许多任务,如扫描条形码、称重产品或打包商品,仍然由员工手动完成。然而,仅仅依赖员工会减慢运营速度并导致客户不满,特别是在结账时。排长队对顾客和店主来说都是不便的。智能自助结账柜台是解决这一问题的绝佳方案。
这些计数器使用计算机视觉和 GPU 来加速处理流程,从而帮助减少等待时间。计算机视觉使这些系统能够通过目标检测等任务来观察和理解其环境。像 Ultralytics YOLO11 这样先进的模型,在经过 TensorRT 等工具优化后,可以在 GPU 设备上运行得更快。
这些导出的模型非常适合使用紧凑但强大的硬件设备(例如专门为边缘 AI 应用设计的 NVIDIA Jetson Nano)的智能零售设置。

图 4。智能收银台的一个例子。
制造业中的自动缺陷检测#
可以对像 Ultralytics YOLO11 这样的计算机视觉模型进行自定义训练,以检测制造业中的缺陷产品。训练完成后,模型可以导出为 TensorRT 格式,以便部署在配备高性能 AI 系统的工厂中。
当产品在传送带上移动时,摄像头捕捉图像,以 TensorRT 格式运行的 Ultralytics YOLO11 模型对其进行实时分析以发现缺陷。这种设置使企业能够快速准确地发现问题,从而减少错误并提高效率。
类似地,制药等行业正在使用这些类型的系统来识别医疗包装中的缺陷。事实上,全球智能缺陷检测系统市场预计将在 2026 年增长到 50 亿美元。

图 5。在制药行业中使用 YOLO 检测缺陷。
使用 TensorRT 时需要考虑的事项#
虽然 TensorRT 集成带来了许多优势,例如更快的推理速度和更低的延迟,但也需要记住以下几点限制:
-
准确率略有下降: 当你以 TensorRT 格式导出模型时,导出的模型可能不如原始模型准确。性能指标(如 precision、recall 以及模型检测对象的准确度(mAP 得分))可能会略有下降。通过在量化过程中使用代表性数据集,可以缓解这种情况。
-
调试复杂性增加: TensorRT 所做的优化可能会使追踪错误或理解意外行为变得更加困难,尤其是在将结果与原始模型进行比较时。
-
批处理大小敏感性: TensorRT 的性能提升在较大的批处理大小下更为明显。对于处理单张图像或小批量数据的应用程序,性能提升可能不那么显著。
关键要点#
将 Ultralytics YOLO 模型导出为 TensorRT 格式可以使其运行得显著更快、更高效,从而使其成为工厂缺陷检测、支持智能结账系统或监控繁忙城市区域等实时任务的理想选择。
这种优化通过加速预测并减少内存和功耗,帮助模型在 NVIDIA GPUs 上表现得更好。尽管存在一些限制,但性能的提升使得 TensorRT 集成成为在 NVIDIA 硬件上构建高速计算机视觉系统的绝佳选择。
想了解更多关于 AI 的信息吗?浏览我们的 GitHub 仓库,连接我们的社区,并查看我们的许可选项以启动你的计算机视觉项目。在我们的解决方案页面上了解更多关于制造业中的 AI 和物流行业的计算机视觉等创新技术。






