了解如何使用TensorRT 集成导出Ultralytics YOLO 模型,以便在NVIDIA ®)GPU 上为实时应用提供更快、更高效的人工智能性能。
考虑到一辆自动驾驶汽车在繁忙的街道上行驶时,只有几毫秒的时间来检测从路边走过的行人。与此同时,它可能还需要识别被树遮住一部分的停车标志,或者对附近驶入其车道的车辆做出快速反应。在这种情况下,速度和实时响应至关重要。
这正是人工智能(AI),特别是计算机视觉(帮助机器解释视觉数据的人工智能分支)发挥关键作用的地方。计算机视觉解决方案要想在现实环境中可靠地工作,通常需要快速处理信息、同时处理多项任务并高效地使用内存。
实现这一目标的方法之一是通过硬件加速,利用图形处理器(GPU)等专用设备更快地运行模型。NVIDIA )图形处理器因其低延迟和高吞吐量的能力,在此类任务中尤为出名。
然而,在GPU 上按原样运行模型并不总能保证最佳性能。视觉人工智能模型通常需要优化才能充分利用硬件设备的功能。为了充分发挥特定硬件的性能,我们需要对模型进行编译,以便使用硬件的特定指令集。
例如,TensorRT 是NVIDIA 开发的一种导出格式和优化库,用于提高高端机器的性能。它采用先进技术,在保持准确性的同时大幅缩短推理时间。
在本文中,我们将探讨Ultralytics 支持的TensorRT 集成,并介绍如何导出YOLO11 模型,以便在NVIDIA 硬件上进行更快、更高效的部署。让我们开始吧!
TensorRT 是NVIDIA ®)开发的一款工具包,可帮助人工智能模型在NVIDIA )GPU 上更快、更高效地运行。它专为速度和性能非常重要的实际应用而设计,例如自动驾驶汽车、制造业和制药业的质量控制。
TensorRT 包括编译器和模型优化器等工具,它们可以在幕后工作,确保模型以较低的延迟运行,并能处理较高的吞吐量。
Ultralytics 支持的TensorRT 集成通过优化YOLO 模型,使用降低精度等方法在 GPU 上更高效地运行。这是指使用 16 位浮点(FP16)或 8 位整数(INT8)等低位格式来表示模型数据,从而减少内存使用,加快计算速度,同时将对精度的影响降至最低。
此外,兼容的神经网络层被融合到优化的TensorRT 模型中,以减少内存使用,从而实现更快、更高效的推理。
在讨论如何使用TensorRT 集成导出YOLO11 之前,让我们先来看看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文件夹中。
Ultralytics Python 软件包支持多种集成,可以将 YOLO 模型导出为不同的格式,如TorchScript、CoreML、ONNX和TensorRT。那么,什么时候应该选择使用TensorRT 集成呢?
以下是TensorRT 模型格式有别于其他导出集成选项的几个因素:
以TensorRT 格式导出的Ultralytics YOLO 模型可广泛应用于现实世界的各种场景。在快速、高效的人工智能性能非常关键的情况下,这些优化模型尤其有用。让我们来探讨一些如何使用它们的有趣例子。
零售店中的许多工作,如扫描条形码、称重或包装商品等,仍由员工手工操作。然而,仅仅依靠员工可能会减慢运营速度,导致顾客不满,尤其是在结账时。排长队对购物者和店主来说都很不方便。智能自助收银台可以很好地解决这个问题。
这些计数器利用计算机视觉和 GPU 加快处理速度,有助于减少等待时间。计算机视觉使这些系统能够通过物体检测等任务来观察和了解环境。利用TensorRT 等工具进行优化后,像YOLO11 这样的高级模型在GPU 设备上的运行速度会更快。
这些导出的模型非常适合智能零售设置,它们使用的是专为边缘人工智能应用设计的NVIDIA Jetson Nano 等小巧但功能强大的硬件设备。
虽然TensorRT 集成带来了许多优势,如更快的推理速度和更低的延迟,但也有一些限制需要注意:
将Ultralytics YOLO 模型导出为TensorRT 格式后,其运行速度和效率大大提高,是检测工厂缺陷、支持智能结账系统或监控繁忙城区等实时任务的理想选择。
这种优化通过加快预测速度、降低内存和功耗,帮助模型在NVIDIA ®)图形处理器上发挥更好的性能。虽然存在一些限制,但性能的提升使TensorRT 集成成为在NVIDIA 硬件上构建高速计算机视觉系统的最佳选择。
想了解有关人工智能的更多信息?探索我们的GitHub 存储库,与我们的社区建立联系,了解我们的许可选项,启动您的计算机视觉项目。请访问我们的解决方案页面,了解更多有关制造业中的人工智能 和物流业中的计算机视觉等创新的信息。