面向车辆应用的嵌入式板边缘计算人工智能设计

摘要

本文提出了一种基于NXP S32V234车辆平台并结合边缘计算的嵌入式板上采用YOLO v3-tiny神经网络的高级驾驶辅助系统(ADAS),用于检测行人和骑士。所实现的嵌入式板在执行大量卷积操作方面存在限制。因此,提出的设计需减少运算量,同时考虑了精度降低的问题。所提出的架构采用Squeeze Net方法和量化技术,使运算量减少了约46%,且精度仅有轻微下降。所提出的方法包括图像转列(Im2col)和内存高效卷积(MEC),用于重排连续矩阵空间以实现高效访问。所设计的APEX硬件可用于加速运算,与 YOLO v3-tiny架构相比,可将执行时间减少,并使检测速度提升十倍。

关键词

人工智能,边缘计算,嵌入式,车辆。

一、引言

从高级驾驶辅助系统的安全性出发,文献[1]和 [2]中的行人检测系统如表I所示。所提出的评估方法采用YOLO [3]和Squeeze [4]的神经网络。卷积神经网络的优化方法包括英伟达量化[5], 、Im2col [6], 、 MEC [7]、ġ Winograd [8]以及卷积[9]和[10]。所提出的Squeeze Net架构减少了卷积神经网络的卷积核及参数数量。减少池化层可保留更多原始数据。图1(a)说明了通过Fire模块方法减少精度损失并增加特征图数量以提高计算速度。图1(b)说明输入数据和权重通过 KL散度量化并转换为8位整数,从32位浮点数转换为英伟达量化格式。

表I 文献综述

示意图0

(a) Squeeze Net Fire模块
(b) 英伟达量化。

在传统卷积中,存在数据排列不连续的缺点。图2展示了所提出的通用矩阵乘法(GEMM)方法,可通过 Im2col方法连续读取数据,用于神经网络的前向传播。

示意图1

图2. Im2col和GEMM方法。

图3展示了增强性能的Im2col方法,所提出的内存高效卷积(MEC)方法减少了垂直步幅移动,并将数据访问量减少了50%。

示意图2

图3. MEC数据排列操作示意图。

II. 所提出的方法

提出的设计包括神经网络和卷积方法。所提出的神经网络通过融合Yolov3‐tiny和Squeeze Net,在减少运算量的同时保持精度。同时,所提出的卷积方法优化了数据排列。这两种设计结合使用Im2col方法,以连续读取数据并转换为通用矩阵乘法的运算形式。针对内存较小的APEX所提出的目标可减少内存大小。该目标还通过减少在内存较小的APEX中Im2col的大量重复,从而降低MEC的内存占用。NXP S32V234评估板的实现包含四核Arm Cortex‐A53、APEX‐2,MIPI 1080p 在 30fps。实验摄像头的分辨率为约 1280 x720,视场角(FOV)约为 70度,通过低压差分信号(LVDS)接口进行开发。图4展示了发布该提出的设计时的硬件状态。

示意图3

图4。 NXP S32V234与摄像头进行图像处理的 proposed condition。

A. 所提出的架构 The proposed architecture

从原始数据的一万次采样中生成特征和权重,如表II所示,使用C++语言在x86个人计算机(PC)上通过神经网络进行训练和标注。训练和标注完成后,将优化后的特征和权重从PC发布到S32V234平台。图5展示了通过S32V234平台前向传播神经网络后,来自摄像头的融合图像的显示输出屏幕。

示意图4

图5。架构的流程图。

Gjsf!Npevmf!2)t2-f2-f4* Gjsf!Npevmf!2)t2-f2-f4* Gjsf!Npevmf!2)t2-f2-f4* Gjsf!Npevmf!2)t2-f2-f4* Gjsf!Npevmf!2)t2-f2-f4* Gjsf!Npevmf!2)t2-f2-f4*
! !
! ! Dpow!4y4yt2 Dpow!4y4yt2 Dpow!4y4yt2
! !
! !
Dpow!4y4yf2 Dpow!4y4yf2 Dpow!2y2yf4 Dpow!2y2yf4
Dpodbufobuf Dpodbufobuf Dpodbufobuf
Nbyqppm Nbyqppm Nbyqppm Nbyqppm Nbyqppm
Gjsf!Npevmf!3)t2-f2-f4* Gjsf!Npevmf!3)t2-f2-f4* Gjsf!Npevmf!3)t2-f2-f4* Gjsf!Npevmf!3)t2-f2-f4*
! !
! ! Dpow!4y4yt2
! !
Dpow!4y4yf2 Dpow!2y2yf4 Dpow!4y4yf2 Dpow!2y2yf4 Dpow!4y4yf2 Dpow!2y2yf4

输入
416x416x3
4,64)

火模块2 (s1,e1,e3)=(64,1
火模块2 (s1,e1,e3)=(64,1

B. 网络架构所提出的 YOLO v3

微型对于改进文献[1]综述中关于小目标检测的不足是必要的。表III说明了所提出的文章降低了检测速度并计算了大量的数据浮点。图6展示了将YOLO v3 tiny和Squeeze Net融合的提出的设计,以提升检测速度。通过英伟达的量化,运算量从5.449十亿浮点运算每秒减少至2.917十亿浮点运算每秒,降低了46%。

表II 网络层准确率

表III 性能对比表

示意图5

图6。 YOLO v3 tiny 和 Squeeze Net 的流程图。

C. APEX上的通用矩阵乘法所提出的通用矩阵乘法 任务

在APEX上,由并行数据的每个计算单元(CU)处理的矩阵乘法(GEMM)的分布是相同的。数据分布的方法包括两种情况,如图7和图8所示。所提出的两种情况扩展了数据分布范围,并最大限度地利用了APEX上的计算单元数量。图8描述了情况II中数据的连续访问和转置处理。图8还描述了选择较大的 或 值进行并行分布,如果选择了 ,则执行转置。关于 、 和 的质因数分解需考虑内存大小,这取决于硬件限制(端口数据不能为特定字节数)。由于与所使用的计算单元数量、块大小设置以及数据大小相关,本文重点关注速度和最大计算单元数量的使用。通过组合利用率因素,找到了输入A、B和输出C最合适的块大小。本文间接确定了所使用的计算单元数量和迭代次数。图9描绘了在APEX上GEMM的设计流程图。

示意图6

图7。 情况I:GEMM 并行数据分布。

示意图7

图8。情况II:GEMM并行数据分布。

131
授权许可使用仅限:爱德华王子岛大学。于2021年5月16日13:41:06 UTC从IEEE Xplore下载。适用限制。
示意图8

图9. GEMM在APEX上的设计流程图。

D. MEC在APEX上 所提出的ġ将原始MEC排列设计为一维类型,并增加了通道维度。图10展示了修改后的APEX并行操作、CU方法的MEC分布以及GEMM,三者几乎相同。由于MEC操作的步幅为3(块宽度是3的倍数),掩码大小为9。图11显示每个CU的块宽度应与下一个CU共享6个像素。图10中红色块因填充而产生更多点。图12和图13说明了每个CU所需的GEMM和MEC的核设置及数据操作。图14展示了向量输入(VEC)、静态变量(STATIC)和标量输入(SCL)。

示意图9

图10. MEC数据矩阵排列及在APEX上的操作。

示意图10

图11. MEC并行数据分布。

示意图11

图12. GEMM核配置

示意图12

图13. MEC核配置。

示意图13

图14.阵列处理单元(APU)内部架构。

III. 实验

在将加速GEMM移植到嵌入式板后,图15显示网络架构在9层前向传播所占用的时间约为90%。图16和图17描述了所提出的用于并行加速和放大的APEX,使9层占用的时间从90%减少到70%。当MEC执行APEX加速时,实验会出现准确率下降以及YOLO架构与MEC在 APEX中的设计合并问题。对于计算单元分配,MEC数据排列在一个APEX上进行了优化。本文提出采用两个 APEX进行加速,因为一个APEX依赖于设置计算单元数量而容易产生误操作。如果文章试图寻找正确位置并修复此问题,将耗费更多时间且性能比GEMM差。

YOLO架构的特征图大小为13的倍数,例如13、26、52、104。经过MEC排列后,在MEC APEX设计下考虑了3的组合及相关因素。APEX硬件限制块宽度为3的倍数。本文提出的网络架构仅在17层上进行APEX加速。

结果如表IV所示,出现准确率下降且检测时间比 GEMM慢。APEX平台从摄像头图像计算并通过神经网络前向传播,如图18所示,加速度率如图19所示。表 V描述了与其他已发表论文的性能比较。

示意图14

图15.各层的时间占比。

层 0=17.41% 层 5=4.34% 层 11=3.72% 层 17=2.71% 层 23=2 .60% 层 29=3 .04%
层 35=12 .10% 层 42=12 .10%
层 53=29 .66%
剩余层 =12 .32%
每层的时间

示意图15

图16。 APEX‐2加速:各层的时间占比。

示意图16

图17。 Gemm的加速放大在各层中的表现。

表IV MEC与GEMM之间的加速结果比较。

示意图17

图18。检测结果。

表V 性能比较。

示意图18

图19。加速度ġ优化后的 精度损失。

IV. 结论

本文提出了在APEX上与原始APEX硬件加速和文献相比的卷积方法的实现与分析。性能结果提升了平滑性,并将原始速率提高了十倍。所提出的设计通过文献[2]中的Squeeze Net与Yolov3‐tiny结合网络架构,提高了精度和检测率。所提出的性能优化包括卷积核压缩,有效减少了参数数量,但由于在嵌入式板上采用边缘计算的MEC设计,精度未出现显著下降。图像感知处理在 APEX嵌入式开发板上消耗了最长卷积操作。在算法部分,通过并行处理优化了空间安排。尽管在每秒帧数 (FPS)性能上并不突出,但所提出的解决方案在更密集物体的场景中更容易区分。当本文减小网络层的输入尺寸和层数时,结合自动紧急制动(AEB)的FPS可进一步提升,适用于近期功能中的车辆应用。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐