基于Jetson Nano嵌入式平台的YOLOV3-tiny模型部署

1. 嵌入式平台简介

嵌入式是指可以嵌入设备或装置的特殊计算机系统。一般来说,具有数字接口的设备都有嵌入式系统,如手机、车载电脑、智能手表等,而嵌入式人工智能则是使人工智能算法能够在终端设备上运行的技术概念。目前,人工智能算法可以部署在云端和终端。 在终端上运行检测算法有很多优点,比如只传输有价值的信息,而不是原始的大容量视频,可以有效降低后端部署服务器的传输带宽和计算存储量,使系统的整体架构更具可移植性。嵌入式人工智能也面临许多挑战,比如需要综合考虑芯片的各个方面来评价芯片的性能,然后根据神经网络算法来做特殊的处理,实现嵌入式设备的无缝对接。目前,嵌入式人工智能面临着计算能力、功耗和散热三大挑战,这些也是经典嵌入式设备面临的问题。

嵌入式人工智能硬件包括GPU、DSP、ASIC、FPGA和神经元芯片等,需要求更快的指令周期和更低的功耗。多核中央处理器并不适合进行深度学习,因为由于中央处理器对分析大量非结构化数据建立和训练深度学习模型此类任务的能力不足。与中央处理器相比,图形处理器(graphics processor ,GPU)由于可以同时容纳数千个核心,进行并行计算处理大量数据,更适合深度学的训练和测试。NVIDIA的Jetson Nano平台包含性能更高、功能更强大的图形处理器。Jetson Nano平台它是一种高性价比的嵌入式人工智能设备,售价99美元,可以在其上有效地部署基于深度学习理论的各种任务模型。许多常见的人工智能框架如Tensorflow和Pytorch等都可以部署到Jetson Nano平台上,这使得开发人员可以很方便地将模型和框架集成到产品中。Jetson Nano平台可以接上高分辨率的视频传感器,而且可以并行处理多个传感器。Jetson Nano平台硬件是一个四核Cortex-A57CPU,图形处理器是最小的Maxwell架构图形卡,只有128个CUDA单元、4GB LPDDR4内存和16GB存储空间

2. 部署加速

2.1Gstreamer编解码加速 嵌入式平台在执行行人检测任务时,获得的原始图像数据是视频流,但是模型检测时需要图片数据,因此需要视频编解码方法将输入视频解码转换为图片数据格式。 Jetson Nano平台可以连接使用CSI摄像头。Jetson Nano平台开发条件支持IMX219摄像头模块,包括Leopard Imaging的LI_IMX219-MIPI-FF-NANO摄像头模块以及树善派的Camera Modulev2模块,本文将采用树莓派摄像头。采集到的视频流需要进一步操作。本文使用Gstreamer组件对输入的视频流进行编解码以及输出等操作,以降低视频流编解码耗时,减少行人检测的任务延时。

2.2 TensorRT模型加速

TensorRT是NVIDIA公司推出的GIE(GPU Inference Engine)C++库,其主要目的是要提高深度神经网络在其公司硬件产品上的推理速度,主要方式是通过更低精度的运算、神经网络计算结构的调整优化等。

深度学习模型的训练包括两个阶段:前向推理并计算损失函数、后向梯度传播和参数更新。为了获得更准确的网络参数,模型的训练阶段参数精度要求较高,深度神经网络的参数需要使用32位浮点(Floating-point,FP32)计算并存储。模型训练完成后,只需要前向的推理步骤即可完成相关任务。在模型推理阶段,可以适当降低了模型参数的精度,加快模型推理的速度,对模型推理结果影响不大。

一种常用的方法是用半精度浮点(FP16)和8位整数(INT8)代替模型中的单精度值进行运算,用0-1二进制量化网络参数加速部分卷积神经网络模型的计算。Jetson Nano平台支持半精密浮点运算。半精度浮点运算速度是单精度浮点运算速度的两倍。在本节中,将使用半精确模型参数来减少目标检测模型的推理时间。

基于Jetson Nano嵌入式平台的YOLOV3-tiny模型部署_第1张图片

你可能感兴趣的:(深度学习,图象处理,深度学习)