面向弹载图像的深度学习网络压缩方法研究
作者: 高一博 杨传栋 陈栋 凌冲
引用格式:高一博,杨传栋,陈栋,等.面向弹载图像的深度学习网络压缩方法研究[J].航空兵器,2023,30(1):95-103.
GaoYibo,YangChuandong,ChenDong,etal.ResearchonDeepLearningNetworkCompressionMethodforMissileBorneImage[J].AeroWeaponry,2023,30(1):95-103.(inChinese)
摘要:针对基于深度学习目标识别算法具有网络结构复杂、参数量大、计算延迟高等特点,难以直接应用于弹载任务的问题,对网络轻量化方法进行了归纳总结。介绍了已有的压缩方法和轻量化网络的优点及各自特点,并选择各个方面优秀的算法进行比较。最后,结合深度学习在目标检测领域中的发展,对轻量化弹载图像目标识别算法进行了展望。
关键词:网络模型压缩;轻量化网络;弹载图像;深度学习模型;算法移植
中图分类号:TJ413+.6
文献标识码:A
文章编号:1673-5048(2023)01-0095-09
DOI:10.12132/ISSN.1673-5048.2022.0079
0引言
精确制导武器是现代战争制胜的关键因素,精确制导武器的核心部件是导引头[1]。制导过程中,导引头行使着观测目标、感知环境、进行识别与跟踪的职责,直到完成对目标的精确打击。然而导引头制导的效果取决于对目标位置判断的精度,半主动制导的激光制导需要前哨站进行对目标的激光指引,隐蔽性极差;被动制导的雷达制导,极易被空间各种信号干扰以及被敌人捕捉。图像制导使用CMOS(ComplementaryMetalOxideSemiconductor)采集目标可见光信息,抗电磁干扰能力强,且不需架设前哨站[2]。与普通的移动终端所使用专用芯片ASIC(ApplicationSpecificIntegratedCircuit)不同,导引头中的弹载计算机核心处理单元架构主要包括DSP(DigitalSignalProcessing),DSP+FPGA(FieldProgrammableGateArray),SoC(SystemonChip)等。DSP资源较少,无法满足目前的算法需求,如今主流方式是使用DSP+FPGA的方式。FPGA具有接口丰富、灵活性高的特点,然而其具有高功耗性,对于本就高消耗的深度学习算法是较难承受的。对此,各大厂商提出SoC,从而提高系统性能,降低系统成本、功耗以及重量和尺寸,但开发周期较长,研制费用较高,不适用于需要快速应用的小型武器系统。嵌入SoC的芯片,既有PL端的资源灵活性,又有PS端的强大处理器功能,适合深度学习算法的部署,但其中参数量和网络结构的巨大是难以实用的难点之一。模型压缩与轻量化是设计的关键步骤,既需要满足软件层面算法足够的精度,又应保证移植硬件时参数量少、速度快。内部空间小、弹丸作用时间短、嵌入式硬件平台处理速度要求高是限制在弹载平台上部署深度学习算法的关键因素[3]。因此,很有必要研究压缩深度学习的算法。
1面向弹载目标的跟踪算法
1.1弹载目标特性
图像制导弹的成像特点包括以下几方面:
(1)尺度变化大。弹体在空中飞行速度非常快,平均速度可达200~300m/s,目标图像在视场内的尺度变化非常大,如图1所示。当弹目距离较远时,目标在视场中成像较小,细节不清晰;当弹目距离较近时,目标在视场内的成像较大,细节不断出现。因此,弹载图像跟踪算法需要有尺度不变性。
(2)目标旋转。由于弹体外形和气动特性影响,图像制导弹在飞行时伴有连续旋转。虽然摄像机获取的图像经过了消旋处理,但是由于弹体舵机控制和消旋精度的影响,弹体仍会出现一定程度的旋转,导致视场中目标图像的位置不断发生变化,如图2所示。弹体的连续旋转导致目标图像连续旋转,可以看出在不同时刻目标所在位置不同。因此,弹载图像跟踪算法需要具有旋转不变性。
(3)目标进出视场(目标进入或离开视场范围)。图像制导弹在高速飞行过程中伴随一定程度的章动,导致目标频繁进出视场。当目标出视场后,由于前后两帧中必定有相同的场景,根据深度学习中前景与背景特征提取方法,可以利用深度学习中掩膜激活,或者特征关联方式预测下一帧目标出现的范围;而对于半出视场或者部分出视场的目标,基于深度学习的方法可以轻松进行识别跟踪。
1.2各种跟踪算法对比
结合上述弹载目标独有的特征,寻找跟踪算法,各种算法的对比如表1所示。
由表1可以看出,背景减除法只适合固定背景下目标的识别,且易受环境光线的影响,不适用于亮度不断变换的弹载图像。帧间差分法通过帧间图像的差别来区分目标区域,但是由于弹体高速运动,弹载图像间的帧间差别太大,很难识别出有效的目标区域。光流法抗噪声能力差,简单模板匹配法实时性差,且此方法鲁棒性较差,缺少模板更新,而弹载图像的尺度处于不断变化当中,准确度较低。SFIT算法对旋转、尺度放缩、亮度变化保持较高水平,对视角变化、仿射变化、噪声的稳定性较差,且不够实时。基于深度学习的算法由于各种目标都是训练出来的,训练好的网络,准确度高,对尺度不变性和旋转不变性,甚至遮挡出视场都有极强的适应能力。由于深度学习训练网络非常多,故速度和准确度相互有所取舍,其通病就是网络结构过大,参数量多,计算量大,对弹载平台有着巨大的负荷。因此,需要寻找各种压缩深度学习网络的方式使之符合弹载平台的承受力。
2模型压缩方法
本节重点介绍当前主流的压缩方法和轻量化网络设计,具体技术如表2所示。
2.1参数量化与共享
大多数操作系统和编程语言默认为32位浮点数组成的单精度数,对内存占用量较大,尤其在深度学习网
络模型中,大量的权值、激活值均需要占4bit的内存。而在弹载环境中,允许保证近似效果的情况下减少参数量。常用量化、哈希、改变计算形式等技术降低参数量,减少冗余。
2.1.1量化参数
量化网络过程常见的有1-bit二值网络,2-bit三值网络,以及将32位浮点数降低为16位浮点数或16位、8位的定点数。
Mohammad等[4]在二进制权重网络中,将滤波器近似为二进制值,结果可节省32×的内存。Guo等[5]提出一种基于二进制权值网络结构和深度优先搜索算法相结合的多类别图像分割模型,将其应用于人脸识别领域,取得较好效果。用二进制权重网络的Alex网络版本与完全准确的AlexNet版本一样准确。
Li等[6]引入了三元权值网络TWNs神经网络,权值限制为+1,0和-1。全精度权重利用欧氏距离最小原则转换为三值权值。另外,对基于阈值的三元函数进行了优化,获得一种快速、简便的近似解,并通过实验证明,该算法在保持较高预测性能和压缩效率的情况下提高了图像质量;TWNs比最近提出的二进制精度对应物等网络更具有表达能力和有效性。同时,TWNs可实现16×或32×的模型压缩率,且在较高维度下也具有良好的压缩效果。因此,TWNs是一个非常有潜力的基于深度学习的图像分类方法。来自MNIST,CIFAR-10和大型ImageNet数据集的标准显示,TWNs只比全精度略低,但比类似的二进制精度要好得多。
Krishnamoorthi[7]提出一种采用非线性量化的方法,将权值和输入值都量化为unit8类型,而激活函数中偏置量化为unit32位。该方法统计了每一层权值的范围分布,非线性地对应每个量化后的权值,同时还提供了一个权值量化训练网络,以确保端到端的精度。
2.1.2权值替代
Han等[8]使用k-means聚类算法将权重分类,并不断微调权值,减少精度损失。根据调整后的权值进行分类,得到各个中心,然后使用所得的中心值替代该类其他值,最后使用霍夫曼编码再次压缩。Chen[9]利用哈希函数,建立HashNet,其建议在训练前对网络权重进行量化和分组,并在每个组内分享权重。HashNet的结构如图3所示。在这种方法下,储存值就是哈希索引以及
少量的权值,减少了大量存储消耗。由于采用了一种新的算
法来处理数据集的相似性度量问题,也减少了对查询结果进行匹配所需的计算量。实验结果表明,该系统能够取得很好的效果,但是该技术无法节省运行时的内存和推理时间,因为需要哈希映射找回共享的权值。
2.1.3降低计算复杂度
与廉价的加法运算相比,乘法运算的计算复杂度要高得多。而深度神经网络中广泛使用的卷积恰好是互相
关的,方便测量输入特征和卷积滤波器之间的相似性,但是这涉及浮点值之间的大量乘法。Chen等[10]提出加法器网络(AdderNets),来替换深度神经网络中的这些大规模乘法,特别是卷积神经网络CNN(ConvolutionalNeuralNetwork),以获得更少的计算复杂度,降低计算成本。AdderNets采用滤波器和输入特征之间的L1范数距离作为输出响应,并提出一种自适应学习速率策略,根据每个神经元梯度的幅度来增强AdderNets的训练过程。AdderNets可以在ImageNet数据集上使用ResNet-50实现74.9%Top-1精度和91.7%Top-5精度,而不会在卷积层中进行任何乘法。
2.2参数剪枝
弹载图像数据量多而复杂,对于目标识别和分类网络是巨大的考验,故需要强大鲁棒的网络,而嵌入式网络部署工程要求网络更加轻量,剪枝可以将原本鲁棒的网络减去大量连接和计算,并维持相当的精度。剪枝模式如图4所示。
剪枝可分为非结构化剪枝和结构化剪枝。非结构化剪枝是细粒度剪枝,即可以去除任意“冗余”的单独神经元权值,以获得高压缩率,实质是稀疏化卷积核矩阵。剪枝粒度示意图如图5所示。但裁剪后的网络结构混乱,难以进行进一步操作,例如移位代替卷积、加法代替乘法等。结构化剪枝的最小单位是滤波器内的一组参数,通过为滤波器或特征图设置评价因子,甚至通过删除整个滤波器或某些通道,网络“缩小”,允许直接对现有的软件/硬件进行有效加速。但如果没有一个合适的优化算法,则不能保证得到最优解。
2.2.1非结构化剪枝
早期的一些方法基本都是基于非结构化的,非结构化剪枝都是细粒度的。以LeCun等[11]提出的最优脑损伤(OptimalBrainDamage)和Hassibi等[12]提出的最优脑手术(OptimalBrainSurgeon)方法为代表,该类方法基于损失函数的海森矩阵判断连接重要程度,减少连接的数量。Neubeck等[13]提出逐层导数修建算法,对每一层的参数计算损失,找到损失最大的参数对其二阶导数进行独立剪枝,修剪后经过再训练以恢复性能。
非结构剪枝常用正则化项作为损失函数的一种惩罚项,用来限制某些参数,因此,利用正则化权重评价非必须参数并裁剪以达到压缩效果。但由于参数的L0范数不可微分,难以参与优化,Louizos等[14]将权重值变为非负数,并设置特定参数权值为0以变为可微问题。Tartaglione等[15]量化权重参数对输出的影响力,并设计正则化项,降低或减少影响力小的权重值。Li等[16]减去L1正则化影响小的卷积核。He等[17]使用L2正则化标准一边训练一边剪枝(即软剪枝)。
Lin等[18]定义BN(BatchNormalize)层系数和滤波器F-范数的乘积作为影响因子,评价各个连接的重要性。Luo等[19]提出一种基于熵的方法来评价滤波器的重要性。Chen等[20]引入硬件约束(例如延迟)后,删除范数值低的权重并调整参数,使任务精度最大化。Yang等[21]将能耗作为优化约束条件,对卷积神经网络的能耗大小进行排序,裁掉大能耗的滤波器。该方法与传统的卷积网络相比大大降低了能耗,精度损失也在可接受范围内。He等[22]以给定的最大硬件资源数量作为约束的模型自动裁剪。