绿色检查
链接复制到剪贴板

利用TensorRT 集成优化Ultralytics YOLO 模型

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

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

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

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

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

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

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

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

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、NVIDIA DRIVE 和数据中心等平台上开发高速人工智能引擎。
  • 利用Triton 实现可扩展部署: 以TensorRT 格式优化的模型可利用NVIDIA Triton Inference Server 进行大规模部署,该服务器可通过输入批处理、并发模型执行、模型集合支持和实时音频/视频流等功能提高效率。
  • 跨设备的灵活性: 从小型边缘设备到功能强大的服务器,TensorRT 可在整个NVIDIA 生态系统中运行,支持用于视频的 DeepStream、用于语音 AI 的 Riva 以及用于网络安全、推荐等的其他工具。

TensorRT 集成如何运行?

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

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

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

下一步,您需要一台NVIDIA )设备。使用下面的代码片段将 YOLOv11 加载并导出为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 模型运行推理的结果。

何时利用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 设备上的运行速度会更快。

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

图 4.智能收银台示例。

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

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

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

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

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

使用TensorRT时应注意的事项

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

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

主要收获

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

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

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

LinkedIn 徽标Twitter 徽标Facebook 徽标复制链接符号

在此类别中阅读更多内容

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

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