弹载人工智能目标识别算法的嵌入式实现方法研究

2019-05-28 06:33:44侯凯强李俊山王雪博刘靓欢张浩钧
制导与引信 2019年3期
关键词:编译器硬核制导

侯凯强, 李俊山, 王雪博, 刘靓欢, 张浩钧

(上海无线电设备研究所,上海201109)

0 引言

在强调高动态和强对抗的导弹领域,近年来对智能化、自主性和复杂环境自适应等新质能力的需求越来越迫切。在实际应用中,弹载制导平台面临着目标种类多,背景复杂、目标尺度变化剧烈、干扰遮挡等现状,导致传统的信号处理算法失效,已有的算法很难适用上述情况,识别目标能力提升遭遇瓶颈。

相较于传统特征提取方法,人工智能算法拥有更强大的特征学习和表征能力,对于处于对抗环境的弹载制导平台目标识别问题有很好的应用前景。而人工智能算法在完成数据积累和算法训练后,如何将训练好的网络快速部署在对功耗和体积都有严格要求的弹载制导平台上,将成为人工智能技术在军事领域落地的关键技术和瓶颈所在[1]。

国内极少有将人工智能技术应用在导弹中的根本原因在于人工智能芯片与弹载环境的嵌入式适配。这一轮人工智能技术的快速崛起得益于数据、算法、芯片三大支柱的推动,其中数据用于算法训练阶段,本文主要讨论推理阶段的嵌入式适配;AI算法目前的成果颇丰,弹载应用只需从中选择其中无依赖项,轻量、灵活的算法进行适当裁剪即可;芯片是弹载AI嵌入式适配的基石,现有的AI芯片可以总结为ASIC、GPU 和FPGA 三个发展路线。由于实时性、功耗、体积、成本、可靠性等方面的综合考量,FPGA 一直以来都备受弹载嵌入式应用的青睐。所以在AI算法的嵌入式适配上,选择了在FPGA 基础上发展衍生而来的AI芯片。

综上,本文首先选择了适合应用在弹载环境下的AI目标识别算法—YOLO_v2,分析YOLO_v2算法的计算过程,对其进行轻量化裁剪。然后选取了国内自主研发的新一代AI芯片和AI指令集编译器,在国产AI芯片上进行了软硬件协同开发,实现YOLO_v2 算法的快速片上部署,对AI算法在弹载导引系统上的嵌入式应用进行了探索,为之后国产AI芯片的推广及在型号中的应用提供前期验证和技术支撑,最终将把人工智能技术集成并应用到智能导弹导引头中。

1 YOLO_v2算法轻量化设计

通过对比分析最新的人工智能算法和在研的弹载平台制导体制,选择具有目标识别精度高、速度快等符合弹载制导平台要求的YOLO_v2算法作为本文研究的基础。YOLO(you only look once)卷积神经网络是一种基于回归思想的深度学习目标检测算法,在保证检测精度的同时,大幅度提高了检测速度,为推动目标检测研究领域的发展做出了杰出的贡献[2]。但初始版本的YOLO 算法由于在网格划分以及预测边框数量的选取方面不太成熟,出现了定位不精准等问题。YOLO_v2 算法在YOLO 算法的基础上进行了改进,使得检测效果有了进一步提升。

YOLO_v2网络包含了24 个卷积层和5 个池化层,运算次数达30 BFLOPs(billion float point operation)。为了YOLO_v2算法的嵌入式实现,必须对YOLO_v2网络进行算法和硬件设计进行优化,降低其计算复杂度。下面将从计算方式和深度模型压缩两个方面对YOLO_v2算法进行优化。

卷积神经网络运算成本最高的是二维卷积,因此,二维卷积计算的优化是提升算法效率的关键。本文利用im2col快速卷积来减少计算量,利用硬件设计进行计算内存的优化。im2col方法的基本思想是:将卷积操作转换为矩阵乘法,这样可以高效利用优化后的矩阵乘法,牺牲加法运算来替代部分乘法运算,减少对本文选择的AI芯片中DSP硬核的依赖。目前几乎所有的主流计算框架都实现了该方法。

图1展示了im2col方法的计算过程。图中,输入特征(input features)的每一个二维矩阵对应输入图像或特征图中的一个通道。

采用滑窗法,对于每一个滑动窗口,将对应感受野里的矩阵转化成行向量,各个通道的特征按行连接,不同感受野里获得的行矩阵按列连接;将重排后的输入特征矩阵和重排后的核矩阵相乘,获得卷积结果。

图1 滑窗法与im2col方法

神经网络压缩的需求是伴随这神经网络发展和应用规模的拓展出现的,利用统计分析的方法可以发现神经网络模型中存在大量的冗余信息。由于嵌入式设备运行条件的限制,必须对模型进行压缩处理,针对这些冗余和不重要的项,深度模型压缩方法主要有模型量化、参数修剪与共享、关键信息提取、权重矩阵分解等。本文主要进行了模型量化、权重参数修剪与共享。

2 AI芯片简介

随着数据的产生、算法的突破以及硬件的发展,人工智能在最近几年迎来了全面的爆发。硬件的发展,是支撑着人工智能发展的基础。这里的硬件,是指运行AI算法的芯片。

2.1 AI分类

从部署位置来分,AI可以分为:云端和终端。云端,即数据中心,在深度学习的训练阶段需要极大的数据量和大运算量,单一处理器无法独立完成,因此训练环节只能在云端实现;终端,即手机、汽车、智能家居设备、各种IOT 设备等执行边缘计算的智能设备,终端的数量庞大,而且需求差异较大。

云端AI芯片的特点是性能强大、能够同时支持大量运算、并且能够灵活地支持图片、语音、视频等不同AI应用。终端AI芯片的特点是体积小、耗电少,而且性能不需要特别强大,通常只需要支持一两种AI能力[3]。显然,弹载制导平台是一种终端。

从应用场景而言,人工智能主要分为:训练、推理两个方面。训练,是指通过大数据训练出一个复杂的神经网络模型。训练需要极高的计算性能,需要较高的精度,需要能处理海量的数据,需要有一定的通用性,以便完成各种各样的学习任务。推理,是指利用训练好的模型,使用新数据推理出各种结论。即借助现有神经网络模型进行运算,利用新的输入数据来一次性获得正确结论的过程。也有叫做预测或推断。训练芯片,注重绝对的计算能力,而推断芯片更注重综合指标,单位能耗算力、时延、成本等都要考虑[3]。由于实时性、体积、功耗等的限制,弹载制导平台适宜选择推理芯片。

综上考虑,选取了复旦微电子自主研发的国内新一代AI芯片,作为弹载目标识别算法的实时运行环境。

2.2 芯片架构

复旦微电子研发的AI 芯片是一款采用22 nm工艺的全可编程AI芯片,它是在SOPC芯片的基础上发展而来,能高效的执行卷积,激活,池化和全连接操作。主要面向人工智能领域里视频与图像处理的边缘计算和推理任务提供强劲的硬件平台支持。它在单芯片上集成了具有强大处理能力的四核处理器的处理系统(简称PS)、可编程逻辑(简称PL)、弹载AI加速硬核、大容量片上存储器,其芯片结构如图2所示。

图2 AI芯片架构

AI加速硬核集中了大量的DSP 资源,能以GHz级别的频率进行计算,支持卷积神经网络的各个运算层,能高效的执行卷积,激活,池化和全连接操作。

用户使用基于弹载AI指令集和加速硬核开发的编译器,可以容易地实现人工智能应用的快速部署,应用的动态重构和快速升级。具有高效的性能,以及合适的性价比。在该芯片中,CPU、可编程逻辑门阵列和弹载AI加速硬核各司其职。CPU 仍然是未来计算机系统的核心,而可编程逻辑门阵列和AI加速硬核则突破了冯诺依曼架构,专用于处理智能能力、处理速度和能耗,负责智能和认知的部分。在处理器系统和可编程逻辑门阵列部分均分布DDR 存储器,最大化数据交互和共享,完美的实现了“让最适合的单元迅速处理相关任务”。

3 软硬件部署

3.1 YOLO_v2算法的实现

卷积神经网络中,卷积层的计算量占据了总计算量的95%以上,同时存储空间的需求仅占据15%。计算卷积层的处理时间是总时间的90%以上。所以现有的各类CNN 硬件加速主要将加速目标定义在加速卷积层[4]。考虑到芯片中AI加速硬核及PL 部分具有强大的并行计算能力,因此,计算中耗时较多的可并行化的部分应该分配到AI加速硬核及PL逻辑资源中运行。而PS部分顺序执行,有着较高的时钟频率,在流程控制和复杂非线性函数求解的方面有着较为优秀的能力,因此可以用来实现任务调度和非线性函数求解。

弹载YOLO_v2算法,其基础模型为深度特征提取网络Darknet-19,由一系列的卷积层和池化层组成。YOLO_v2算法模型结构的描述文件为*.cfg,模型参数文件为*.weights。只需要将*.cfg和*.weights,结合测试数据文件输入给AI指令集编译器,编译器将完成自动化部署,并输出最终计算结果。

应用复旦微电子公司的AI指令集编译器,可以很方便地进行优化后的弹载AI算法的软硬件划分和自动部署。AI指令集编译器工作流程:

a)解析网络模型描述文件*.cfg,将其转换为编译器的中间层结构体描述;

b)解析Darknet的网络模型参数文件*.weights,制定定点化策略;

c)分析各层网络的计算类型及结构,进行软硬件的划分。针对软件执行部分,输出软件执行函数列表文件;

d)针对硬件执行部分,编译器将自动进行硬件指令编译,输出硬件指令序列;

e)在执行过程中,编译器将指令序列、网络模型参数、定点化后的图片数据下载到硬件平台,并配置硬件;

f)获取软件或硬件计算结果,输出网络最终结果。

3.2 制导算法的部署

导引头主要分为两个舱段—探测舱(光学成像系统)和制导舱(信息处理平台),导引头的系统架构如图3所示。

图3 导引头框图

探测舱包括光学镜头、探测器板、驱动板,制导舱包括控制板、图像处理板和惯测板。AI芯片将嵌入制导舱的图像处理板。

软硬件划分是整个制导算法在AI芯片上进行软硬件部署的首要问题。如何兼顾系统的性能和功耗,达到二者的最佳结合,是软硬件划分要解决的关键问题。如图4 所示,按照功能将系统分为图像处理模块、处理中心、加速计算中心、数据中转站、控制中心和跟踪算法模块、接口驱动。

图4 软硬件划分

成像制导信息处理任务要求实时捕获并跟踪、识别真实目标,实时向导航控制系统提供目标的精确角度信息。为了完成这一任务,可将末制导信息处理任务划分为图像去噪及增强、基于AI算法的目标识别检测、角度信息准确提取、大尺度变化目标跟踪、图像及结果显示等模块协同完成。

由于图像处理的逻辑复杂度较低但数据处理量大,图像处理模块部署在PL 上;处理中心由于串行处理和非线性运算较多,部署在PS上;数据中转站用于PS与PL 之间的通信,以及PL 内各个部分的数据流控。

由于其数据吞吐量大,带宽高,故部署在PL上;控制中心用于控制PL内的各个模块和AI硬核,具有同步、取值译码、模式切换等功能,部署在PL上;加速计算中心负责人工智能算法YOLO_v2的运算,需要超高速处理,是识别算法的核心所在,部署在AI硬核上;制导算法用于多目标跟踪和单目标精确跟踪,部署在PL 上;接口驱动用于与导引头其他组件以及弹载计算机进行通信,部署在PL上。软硬件划分好后就可以分模块来进行部署。

(1)图像处理模块

成像制导信息处理任务要求实时捕获并跟踪、识别真实目标,实时向导航控制系统提供目标的精确角度信息。为了完成这一任务,可将导引头信息处理任务划分为图像采集及处理、基于AI算法的目标识别检测、大尺度变化目标跟踪、图像及结果显示等模块协同完成。

图像处理模块具体包括图像去噪、图像分割、图像增强、空间尺度变化、探测系统参数调整等。

(2)处理中心

处理中心全部在PS上实现。整个末制导信息处理系统有两个部分的功能要求,即系统支持功能和信息处理功能。前者主要包括了系统正常运行所需要的加载、自检、调度等任务处理,这些任务具有很强的顺序执行性。后者负责图像处理模块和加速计算中心的参数配置等。

(3)数据中转站

系统运行过程中,数据由PS 部分传输至PL部分进行信号处理以后再将处理结果返回送至PS 部分进而用于制导跟踪等。整个过程中数据传输量巨大,对于数据传输的实时性要求高。系统中的PS部分处理的数据类型为Memory Map(用户内存映射)类型数据而PL 部分数据为Stream(媒体流)类型数据,因而需要在传输接口上对于PS和PL部分发送的数据进行协议转换。数据中转站设计采用基于DMA 的总线传输方案实现对于PS和PL 之间数据的类型转换和数据高速传输。

用AXI-HP接口和PL 内DMAC 配合传输的总线方案方为其中最为合适的系统传输方式,数据中转站部署在PL 上,不仅具备了很高的数据传输速率,另外还提供了更多的接口选择以供系统设计使用。

(4)加速计算中心

加速计算中心主要在AI软核上实现,负责人工智能算法的运算,实现方案参照3.1节。

(5)跟踪算法模块

一旦系统完成对目标的识别,则系统转入单目标跟踪状态。此时可对特定目标点进行精确的解耦与关联。随目标进一步接近,图像中目标像逐步增大进入斑块目标阶段,此时需要根据目标在空间中的能量分布和运动模型对目标进行精确跟踪滤波[5]。这部分算法在跟踪算法模块中实现。

4 桌面系统调试及验证

算法部署完成后,在桌面原型验证系统中进行了试验验证,桌面系统由景象投影设备、光学探测设备、信号处理板以及显示设备组成。利用景象投影设备模拟典型场景,由光学探测设备进行图像采集并实时输入到信号处理板,完成目标识别后通过HDMI接口连接到显示设备,得到识别结果。

利用真实拍摄数据输入到景象投影设备,试验目标为车辆和飞机,识别结果如图5所示,弹载嵌入式信号处理板能很好的检测出目标。

5 总结

图5 识别结果

本文对国产AI芯片进行了开发,对YOLO_v2算法的硬件实现进行了研究,对AI算法在弹载导引系统上的嵌入式应用进行了探索,为导引技术从特定的、封闭的、基于规则的应用方式向开放的、更加强调自主识别和决策的应用方式过渡做出一定的贡献。通过本文的研究,将加速人工智能技术在国防领域的应用,为武器的智能化发展奠定坚实的基础。

猜你喜欢
编译器硬核制导
硬核爷爷炼成记
学生天地(2020年17期)2020-08-25 09:28:38
“硬核”举措下的暖心举动
人大建设(2020年2期)2020-07-27 02:47:52
用“三个最严”彰显“硬核”担当
公民与法治(2020年6期)2020-05-30 12:44:00
基于相异编译器的安全计算机平台交叉编译环境设计
陕西制造需要“硬核”
当代陕西(2019年14期)2019-08-26 09:42:14
基于MPSC和CPN制导方法的协同制导律
基于在线轨迹迭代的自适应再入制导
带有攻击角约束的无抖振滑模制导律设计
复合制导方式确保精确入轨
太空探索(2014年1期)2014-07-10 13:41:49
通用NC代码编译器的设计与实现