利用 TensorRT 集成优化 Ultralytics YOLO 模型

阿比拉米-维纳

5 分钟阅读

2025 年 5 月 20 日

了解如何使用 TensorRT 集成导出 Ultralytics YOLO 模型,以便在英伟达™(NVIDIA®)GPU 上为实时应用提供更快、更高效的人工智能性能。

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

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

实现这一目标的方法之一是通过硬件加速,利用图形处理器(GPU)等专用设备更快地运行模型。英伟达™(NVIDIA®)图形处理器因其低延迟和高吞吐量的能力,在此类任务中尤为出名。

然而,在 GPU 上按原样运行模型并不总能保证最佳性能。视觉人工智能模型通常需要优化才能充分利用硬件设备的功能。为了充分发挥特定硬件的性能,我们需要对模型进行编译,以便使用硬件的特定指令集。

例如,TensorRT 是英伟达开发的一种导出格式和优化库,用于提高高端机器的性能。它采用先进技术,在保持准确性的同时大幅缩短推理时间。

图 1.英伟达™ TensorRT 可使模型在各种英伟达™(NVIDIA®)设备上以最佳状态运行。

在本文中,我们将探讨 Ultralytics 支持的TensorRT 集成,并介绍如何导出 YOLO11 模型,以便在英伟达硬件上进行更快、更高效的部署。让我们开始吧!

TensorRT 概述

TensorRT 是英伟达™(NVIDIA®)开发的一款工具包,可帮助人工智能模型在英伟达™(NVIDIA®)GPU 上更快、更高效地运行。它专为速度和性能非常重要的实际应用而设计,例如自动驾驶汽车、制造业和制药业的质量控制。 

TensorRT 包括编译器和模型优化器等工具,它们可以在幕后工作,确保模型以较低的延迟运行,并能处理较高的吞吐量。

Ultralytics 支持的 TensorRT 集成通过优化 YOLO 模型,使用降低精度等方法在 GPU 上更高效地运行。这是指使用 16 位浮点(FP16)或 8 位整数(INT8)等较低位格式来表示模型数据,从而减少内存使用并加快计算速度,同时将对精度的影响降至最低。 

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

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

TensorRT 导出格式的主要特点

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

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

TensorRT 集成如何运行?

Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 TensorRT 模型格式非常简单。让我们来了解一下相关步骤。

要开始使用,可以使用 "pip "之类的软件包管理器安装Ultralytics Python软件包。在命令提示符或终端运行"pip install ultralytics"命令即可。

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

下一步,您需要一台英伟达(NVIDIA)设备。使用下面的代码片段将 YOLOv11 加载并导出为 TensorRT 模型格式。它加载了 YOLO11 模型的预训练纳米变体 (yolo11n.pt),并将其导出为 TensorRT 引擎文件 (yolo11n.engine),使其可以在英伟达设备上部署。

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 模型格式有别于其他导出集成选项的几个因素:

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

YOLO11 和 TensorRT 模型格式的应用

以 TensorRT 格式导出的 Ultralytics YOLO 模型可广泛应用于现实世界的各种场景。在快速、高效的人工智能性能非常关键的情况下,这些优化模型尤其有用。让我们来探讨一些如何使用它们的有趣例子。

零售店的智能收银台

零售店中的许多工作,如扫描条形码、称重或包装商品等,仍由员工手工操作。然而,仅仅依靠员工可能会减慢运营速度,导致顾客不满,尤其是在结账时。排长队对购物者和店主来说都很不方便。智能自助收银台可以很好地解决这一问题。

这些计数器利用计算机视觉和 GPU 加快处理速度,有助于减少等待时间。计算机视觉使这些系统能够通过物体检测等任务来观察和了解环境。利用 TensorRT 等工具进行优化后,像 YOLO11 这样的高级模型在 GPU 设备上的运行速度会更快。

这些导出的模型非常适合智能零售设置,它们使用的是专为边缘人工智能应用设计的英伟达 Jetson Nano 等小巧但功能强大的硬件设备。

图 4.智能收银台示例。

制造过程中的自动缺陷检测

像 YOLO11 这样的计算机视觉模型可以进行定制训练,以检测制造业中的缺陷产品。训练完成后,模型可导出为 TensorRT 格式,以便在配备高性能人工智能系统的设施中进行部署。 

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

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

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

使用 TensorRT 时应注意的事项

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

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

主要收获

将 Ultralytics YOLO 模型导出为 TensorRT 格式后,其运行速度和效率大大提高,是检测工厂缺陷、支持智能结账系统或监控繁忙城区等实时任务的理想选择。 

这种优化通过加快预测速度、降低内存和功耗,帮助模型在英伟达™(NVIDIA®)图形处理器上发挥更好的性能。虽然存在一些限制,但性能的提升使 TensorRT 集成成为在英伟达硬件上构建高速计算机视觉系统的最佳选择。

想了解有关人工智能的更多信息?探索我们的GitHub 存储库,与我们的社区建立联系,查看我们的许可选项,启动您的计算机视觉项目。请访问我们的解决方案页面,了解更多有关制造业中的人工智能 物流业中的计算机视觉等创新的信息。

让我们共同打造人工智能的未来

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

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