使用 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 硬件上实现更快速、更高效的部署。让我们开始吧!
Link to this sectionTensorRT 概述#
TensorRT 是 NVIDIA 开发的一款工具包,旨在帮助 AI 模型在 NVIDIA GPUs 上运行得更快、更高效。它专为那些对速度和性能要求极高的现实应用而设计,例如自动驾驶汽车以及制造业和制药业的质量控制。
TensorRT 包含编译器和模型优化器等工具,可以在后台工作,确保你的模型以低延迟运行,并能处理更高的吞吐量。
Ultralytics 支持的 TensorRT 集成通过降低 精度 等方法来优化你的 YOLO 模型,从而使其在 GPU 上运行得更高效。这指的是使用低位格式(例如 16 位浮点数 (FP16) 或 8 位整数 (INT8))来表示模型数据,从而在对准确性影响极小的情况下减少内存使用并加快计算速度。
此外,兼容的神经网络层会在优化的 TensorRT 模型中进行融合,以减少内存使用,从而实现更快、更高效的推理。

图 2。TensorRT 层融合技术概览。
Link to this sectionTensorRT 导出格式的主要功能#
在讨论如何通过 TensorRT 集成导出 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)以及其他用于网络安全、推荐系统等的工具。
Link to this sectionTensorRT 集成是如何工作的?#
将 Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 TensorRT 模型格式非常简单。让我们来逐步了解相关步骤。
首先,你可以使用像 ‘pip’ 这样的包管理器安装 Ultralytics Python 包。只需在你的命令提示符或终端中运行命令 “pip install ultralytics” 即可。
成功安装 Ultralytics Python 包后,你可以针对各种计算机视觉任务(如目标检测、分类和实例分割)进行训练、测试、微调、导出和部署模型。如果在安装过程中遇到困难,可以参考 常见问题指南 获取解决方案和建议。
下一步,你需要一台 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 格式中导出的 YOLO11 模型运行推理的结果。
Link to this section何时利用 TensorRT 集成#
Ultralytics Python 包支持多种集成,允许将 YOLO 模型 导出 为不同的格式,如 TorchScript、CoreML、ONNX 和 TensorRT。那么,你什么时候应该选择使用 TensorRT 集成呢?
以下是 TensorRT 模型格式区别于其他导出 集成 选项的几个因素:
-
更小的模型尺寸: 以 INT8 精度将 YOLO 模型导出为 TensorRT 格式可以显著减小模型尺寸。从 FP32 量化到 INT8 可以使模型尺寸缩小 4 倍,从而实现更快的下载速度、更低的存储需求以及部署时更小的内存占用。
-
更低的功耗: INT8 量化不仅能减小模型尺寸,还能降低功耗。相比 FP32 模型,INT8 导出的 YOLO 模型由于使用了低精度运算,功耗更低,这对于无人机、智能手机或边缘设备等电池供电的设备尤为有利。
-
更快的性能: 将 YOLO 的高效架构与 TensorRT 的 INT8 优化相结合,可以提升推理速度。
Link to this sectionYOLO11 和 TensorRT 模型格式的应用#
导出为 TensorRT 格式的 Ultralytics YOLO 模型可部署在广泛的现实场景中。这些优化后的模型在需要快速、高效 AI 性能的地方特别有用。让我们来看看它们可以如何应用的一些有趣示例。
Link to this section零售商店的智能结账柜台#
零售商店中的许多任务,如扫描条形码、称重产品或打包商品,仍然由员工手动完成。然而,仅仅依赖员工会减慢运营速度并导致客户不满,特别是在结账时。排长队对顾客和店主来说都是不便的。智能自助结账柜台是解决这一问题的绝佳方案。
这些柜台利用计算机视觉和 GPUs 来加速处理过程,有助于减少等待时间。计算机视觉使这些系统能够通过目标检测等任务“看到”并理解其环境。像 YOLO11 这样先进的模型,当使用 TensorRT 等工具进行优化时,在 GPU 设备上运行速度会快得多。
这些导出的模型非常适合使用紧凑但功能强大的硬件设备(如 NVIDIA Jetson Nano)的智能零售设置,该设备专为边缘 AI 应用而设计。

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

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






