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

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

图 1。NVIDIA TensorRT 让模型能够在各种 NVIDIA 设备上实现最佳运行效果。
本文将探索 Ultralytics 支持的TensorRT 集成,并介绍如何导出 YOLO11 模型,以便在 NVIDIA 硬件上更快、更高效地部署。让我们开始吧!
TensorRT 概览#
TensorRT 是 NVIDIA 开发的一套工具包,旨在帮助 AI 模型在 NVIDIA GPUs 上更快、更高效地运行。它专为速度和性能至关重要的真实应用而设计,例如自动驾驶汽车、制造业和制药行业的质量控制。
TensorRT 包含编译器和模型优化器等工具,可以在后台运行,确保模型以低延迟运行并处理更高的吞吐量。
Ultralytics 支持的 TensorRT 集成通过降低精度等方法,优化 YOLO 模型,使其在 GPUs 上运行得更加高效。这指的是使用较低位数的格式(例如 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 推理服务器进行大规模部署,并通过输入批处理、模型并发执行、模型集成支持以及实时音视频流等功能提升效率。
-
跨设备灵活运行: 从小型边缘设备到高性能服务器,TensorRT 覆盖整个 NVIDIA 生态系统,支持用于视频处理的 DeepStream、用于语音 AI 的 Riva,以及用于网络安全、推荐系统等领域的其他工具。
TensorRT 集成如何工作?#
将Ultralytics YOLO 模型(例如 Ultralytics YOLO11)导出为 TensorRT 模型格式非常简单。下面让我们逐步了解相关操作。
首先,你可以使用 ‘pip’ 等包管理器安装Ultralytics Python 软件包。在命令提示符或终端中运行 “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 文件夹中。

图 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 性能至关重要的场景。下面让我们了解一些有趣的应用示例。
零售店中的智能结账柜台#
零售店中的许多任务,例如扫描条形码、称量商品或包装物品,仍然由工作人员手动完成。然而,完全依赖员工可能会降低运营效率并导致顾客不满,尤其是在结账时。长队对购物者和店主来说都很不方便。智能自助结账柜台是解决这一问题的理想方案。
这些柜台使用计算机视觉和 GPUs 加快处理流程,有助于缩短等待时间。计算机视觉通过目标检测等任务,使这些系统能够观察并理解周围环境。使用 TensorRT 等工具优化后,Ultralytics YOLO11 等先进模型可以在 GPU 设备上运行得快得多。
这些导出的模型非常适合采用紧凑而强大的硬件设备的智能零售方案,例如专为边缘 AI 应用设计的NVIDIA Jetson Nano。

图 4。智能结账柜台示例。
制造业中的自动化缺陷检测#
像 Ultralytics YOLO11 这样的计算机视觉模型可以通过定制训练,用于检测制造业中的缺陷产品。训练完成后,该模型可以导出为 TensorRT 格式,部署到配备高性能 AI 系统的工厂中。
产品沿传送带移动时,摄像头会采集图像,而以 TensorRT 格式运行的 Ultralytics YOLO11 模型会实时分析这些图像,发现缺陷。这种设置能够帮助企业快速、准确地发现问题,减少错误并提升效率。
同样,制药等行业也在使用这类系统识别药品包装中的缺陷。事实上,全球智能缺陷检测系统市场预计到 2026 年将增长至 50 亿美元。

图 5。使用 YOLO 检测制药行业中的缺陷。
使用 TensorRT 时需要注意的事项#
TensorRT 集成具有许多优势,例如更快的推理速度和更低的延迟,但也有以下一些限制需要注意:
-
准确率略有下降: 将模型导出为 TensorRT 格式后,导出的模型可能不如原始模型准确。精度、召回率以及模型检测对象的能力(mAP 得分)等性能指标可能会略有下降。在量化过程中使用具有代表性的数据集可以缓解这一问题。
-
调试复杂度增加: TensorRT 执行的优化可能会使错误追踪或异常行为分析变得更加困难,尤其是在将结果与原始模型进行比较时。
-
对批大小敏感: TensorRT 在较大批大小下的性能提升更加明显。对于处理单张图像或小批量数据的应用,性能改进可能不太显著。
要点总结#
将 Ultralytics YOLO 模型导出为 TensorRT 格式,可以让模型运行得显著更快、更高效,因此非常适合工厂缺陷检测、智能结账系统支持或繁忙城市区域监控等实时任务。
这种优化能够通过加快预测速度并降低内存和功耗使用量,帮助模型在 NVIDIA GPUs 上实现更好的性能。虽然存在一些限制,但其性能提升使 TensorRT 集成成为在 NVIDIA 硬件上构建高速计算机视觉系统的理想选择。
想进一步了解 AI?探索我们的GitHub 代码库,加入我们的社区,并查看我们的许可选项,快速启动你的计算机视觉项目。你还可以在我们的解决方案页面了解制造业中的 AI和物流行业中的计算机视觉等创新应用。









