NVIDIA Jetson AGX Xavier在边缘部署AI

 行业动态     |      2023-05-11 17:30:27    |      沥拓

  


  利用NVIDIAJetsonAGXavier在边缘部署AI,以提高铁路安全性


  人工智能(AI)越来越多的用于所有主要行业,包括但不限于医疗卫生、零售、金融和房地产运输。在交通领域,特斯拉、通用汽车、福特、Alphabet、苹果和英伟达等公司已经开始投资开发无人驾驶汽车技术。此外,一些自动驾驶卡车创业公司和美国铁路协会已经制定了无人驾驶汽车的指导方针。


  主动列车控制是一项新技术(PositiveTrainControl,PTC),已经成功部署和实施了100%的1级PTC路线公里网络。该系统使用GPS、为了避免碰撞和脱轨,WiFi和无线电传输在列车和远程计算机之间传输数据。如果发现潜在威胁或违规行为,系统会利用列车速度和当前速度限制等数据自动停止列车。但是这个解决方案并不是很先进,端到端的自动化无法提供,操作人员必须控制列车。


  在这篇博文中,我们介绍了一种用于货运列车自动驾驶车辆的概念验证端到端解决方案,并解释了它是如何实施和部署的。首先,我们描述了如何使用TensorFlow和TensorRT框架对一组模型进行训练和优化,以检查铁路上的侵略者,并识别铁路标志和标志。然后,我们深入讨论边缘设备(NVIDIAJetsonXavierAGX)布局模型所面临的问题,软件架构和设计原理的使用,以及端到端推理延迟基准测试的解决方案。


  简介解决方法


  我们开发了一种端到端解决方案,在运输过程中帮助操作人员检测铁轨上的闯入者、识别信号及其相应含义,从而提高货运列车的安全性。


  在NVIDIAJetsonXavierAGX上部署了我们的解决方案——这是一款外形小巧的计算设备,对能效进行了优化,同时给运行端到端应用带来了强大的硬件堆栈。该设备拥有512核VoltaGPU和TensorCores、32GBRAM、两个深度学习加速器,一个视觉加速器,支持基于硬件的视频编码和解码。你可以在这里获得更多关于设备规格的信息。


  NVIDIA带来了许多SDK,例如DeepStream,以及对CUDA和TensorRT的支持,以帮助开发者入门。DeepStreamSDK是一个构建在GStreamer之上的框架,它允许开发者构建复杂的AI管道。但是,DeepStreamSDK并没有被应用到这个用例中,因为它更适合工作环境,而我们构建端到端解决方案的主要工作是在原型设计阶段。


  TensorRT框架是SDK,用于高性能深度学习优化模型。为了减少延迟和提高模型的吞吐量,它提供了改进,例如降低混合精度和层结合。


  问题阐述


  我们试图解决的主要挑战是通过帮助列车运营商监控环境来提高安全性,尤其是在较长的运输时间内。列车经过的环境非常复杂,因为它可能包括不可预测的事件,如入侵者或轨道上的物体。此外,操作人员还必须了解各种交通法规,如闪烁的信号或靠近信号的特定字母,将附加信息传递给操作人员。


  端到端解决方案旨在满足如图所示的需求。检查跟踪信号、任何相关字母或数字标记,然后将其映射到信号规则中,以提供其含义的信息。此外,系统还必须识别侵略者,并在识别侵略者时发出警报。


  这带来了很多挑战,因为解决方案必须能够在不同的时间段检测和跟踪人员和信号。该解决方案还应确定检测到的人员是现场工作人员还是侵略者,以及相关信号及其含义。我们把我们的解决方案构建成一个模块来整合这个功能。


  端到端的解决方法需要使用机器学习模型来识别铁路信号和人员。


  解决方法要求


  为检测和监控人员和信号,我们应在单个JetsonXavierAGX设备上部署端到端解决方案,端到端延迟不少于10FPS和Web-基于UI的可视化和分析目的。


  所以,我们必须考虑许多深度学习模型,比如MobileNet,而不是ResNet50,它允许较小的内存占用,显著减少推理延迟,而是以降低准确性为代价。另外,深度学习模型在处理大量数据时表现异常出色,但另一个挑战是收集足够的数据。下面,我们将详细介绍如何应对这些挑战。


  客户在构建解决方案时面临上述限制,这在构建和部署解决方案时带来了额外的考验。


  软体结构与设计原理


  由于Python的全局编译器锁(GIL)为确保每一个模块都是非阻塞性的,我们对所有模块都采用了独立的过程。


  使用对象跟踪模块跟踪目标后,使用预处理逻辑为每个后续模块分离目标。例如,只有检测到的人才会被传达到入侵者的分类模块,而检测到的信号会被传达到交通灯检测器。信号修改器分类器检查交通灯的颜色和信号上相应的数字或字母代码。


  由于在任何给定帧中都可能有许多不同的交通信号(参照图2),因此使用启发算法将正确的交通信号与包含信号轨道相关模块的火车轨道相关联。通过交通信号算法和领域模型获取这些信息,识别信号是否闪烁,检测任何入侵者并输出相应的规则代码,操作者可以解释这些代码以做出进一步的决定。这些信息通过MQTTMessageBroker传达给操作者。


  ML模型–优化和基准测试


  显示了图5中每个相应的Python模块的网络结构、分辨率和推理速度。由于需要准确的目标检测器,我们选择了ResNet50主干网作为第一阶段检测器。由于GPU内存和端到端延迟的限制,后续模块采用了较轻的主干。


  使用TensorRT框架转换的模型适用于FP32和FP16精度方法列出的推理速度。由于TensorRT不支持某些操作,所以我们使用了混合TensorFlow-TensorRT模型。当TensorFlow运行不支持的操作时,TensorRT支持的操作就可以得到改进。由于精度明显下降,初始时间较大,所以没有使用INT8精度方法。