一种面向遥感图像目标检测的神经网络压缩方法与流程

    专利2022-07-08  125


    本发明涉及神经网络压缩技术领域,具体是一种面向遥感图像目标检测的神经网络压缩方法。



    背景技术:

    人工智能技术的飞速发展使智能卫星的实现成为可能,将智能认知与自主决策实现在星上也成为智能化卫星的必然趋势。作为智能卫星的认知和决策的基础,目标检测算法能够迅速完成遥感图像中的特征提取并检测出其中的待测目标,近年来基于卷积神经网络的目标检测算法不断刷新传统模型的性能。针对遥感图像的目标检测算法可以为政府应用、军事情报等提供定制服务,例如自然灾害的评估、资源的勘探以及军事目标的检测等,在军用和民用领域都有着重要的应用前景。

    然而,基于神经网络的遥感图像目标检测算法对芯片的运算能力、存储空间与功耗都提出了很大挑战。近年来,为了不断提高目标检测精度,神经网络的层数不断增大,参数数目也已达到千万甚至亿级,对硬件的运算能力、存储和功耗都提出了严峻的挑战,成为制约星载人工智能技术应用的重要因素。因此,在保证现有神经网络模型准确度的前提下,如何有效降低网络冗余、减小模型运算量与存储量成为一个亟待解决的问题,这对有效提高我国航天工程智能化水平也具有十分重要的战略意义。

    为了降低网络冗余,进行网络压缩,近年来研究者已经提出一些网络压缩算法。例如剪枝、量化、权重分解和知识蒸馏等方法。但这些方法依然存在一些问题。目前,这些网络模型压缩算法主要是针对图片分类任务的,在其他计算机视觉任务上的尝试和研究较少,例如在目标检测任务上,其表现仍然是未知数。此外,遥感图像中由于目标大小不一、旋转角度多样,增加了网络压缩的难度,采用单一的网络压缩方法会引入较大性能损失。第三,星上人工智能系统的硬件资源十分有限,压缩算法的压缩率仍需进一步提高。以pravendrasingh等人在2018年的压缩工作为例,他们在目标检测网络上实现了稀疏性感应、卷积核选择、卷积核剪除的剪枝框架,在目标检测网络ssd(singleshotmultiboxdetector)上仅达到6.7倍的压缩率,远不能达到实际应用的压缩率需求。



    技术实现要素:

    为解决上述现有技术中对遥感图像目标检测算法网络压缩的研究不足、压缩率不高的问题,本发明基于深度可分离卷积替换、tpe优化的自适应剪枝和动态固定点量化,提出了一种面向遥感图像目标检测的神经网络压缩方法,该方法能够显著降低网络的参数量和计算量,同时保持网络map指标损失不到1%。

    本发明的技术解决方案如下:

    一种面向遥感图像目标检测的神经网络压缩方法,其特点在于,包括以下步骤:

    步骤1:进行基准网络训练。基于深度学习框架对目标检测神经网络进行训练,得到基准网络模型和基准map(meanaverageprecision)指标。

    步骤2:进行深度可分离卷积替换。按照卷积层参数量大小顺序,逐层将传统卷积层拆分为一层深度卷积和一层逐点卷积两个参数量更小的卷积层,直至超过map指标损失阈值。

    步骤3:基于步骤2得到的替换后的网络模型,进行基于tpe(tree-structuredparzenestimator)优化的自适应剪枝。

    步骤4:基于步骤3得到的剪枝后的网络模型,对权重进行基于层的动态固定点量化,对输入特征图进行基于区域的动态固定点量化,进一步压缩网络模型。在尽可能不影响网络检测性能的前提下,逐步降低量化位宽,直至map指标损失超过阈值,得到最终压缩模型。

    具体的所述步骤1中基准网络训练步骤为:

    步骤1-1:基于神经网络框架搭建目标检测网络;

    步骤1-2:在训练集上进行训练,loss不再下降时,在测试集上进行测试,得到目标检测基准map指标。

    具体的,所述步骤2中深度可分离卷积替换步骤为:

    步骤2-1:计算目标检测网络中每个卷积层的参数量,公式如下:

    params=(k×k×cin)×cout

    其中,k为卷积核尺寸,cin和cout分别为卷积的输入通道和输出通道;

    步骤2-2:选择当前参数量最大的卷积层,修改网络架构,将其替换为对应的一层深度卷积和一层逐点卷积;

    步骤2-3:修改目标检测网络的权重文件,除了新替换的层权重为随机生成外,其余层权重保持不变。

    步骤2-4:利用修改后的网络架构及权重文件进行网络重训练,loss函数不再降低后得到重训练后的权重文件;在测试集上进行测试,得到map指标;

    步骤2-5:与基准map指标相比,若map指标损失不超过阈值,则保留此层替换,返回步骤2-2,进行下一层替换。若map指标损失超过阈值,则恢复本次替换前的网络架构和权重。

    具体的,所述步骤3中基于tpe优化算法的自适应剪枝的步骤为:

    步骤3-1:利用步骤2中得到的权重文件,对每层网络权重进行可视化,选择参数有大量冗余的层作为进行剪枝的层;

    步骤3-2:随机生成m组初始网络剪枝阈值{c1,c2,c3,…,cm},其中ci={c(1),c(2),…,c(l)},其中c(j)代表第j层的剪枝阈值,网络共l层;

    步骤3-3:针对步骤3-1得到的要进行剪枝的层进行剪枝和重训练,更新未被剪除的权重;在测试集上进行测试,得到在不同剪枝阈值设定下模型的map指标损失值{y1,y2,y3,…,ym};构建剪枝阈值及结果集合d={(c1,y1),(c2,y2)),(c3,y3),…,(cm,ym)};

    步骤3-4:tpe算法依据当前剪枝阈值及结果集合d,确定下一次迭代的剪枝阈值c*。针对c*进行剪枝和重训练,得到当前剪枝阈值下的map指标损失值y*

    步骤3-5:更新剪枝阈值及剪枝结果集合:d←d∪{(c*,y*)};

    步骤3-6:重复步骤3-4,3-5,直到超过最大迭代次数n;

    步骤3-7:将剪枝完毕后的稀疏的权重转化为按行压缩格式(csr,compressedsparserow)进行存储。

    具体的,所述步骤4中基于层的动态固定点量化方法步骤为:

    步骤4-1:设定权重初始量化位宽bw为8bit;

    步骤4-2:针对目标检测网络中每层权重进行统计,寻找到每层权重的最大值;

    步骤4-3:依据每层权重最大值,按照公式il=[lg2(max[w] 1)]和fl=bw–il设定该层权重的整数部分位宽il和小数位宽fl,其中w指该层权重张量;

    步骤4-4:按照整数位宽il、小数位宽fl对每层权重进行量化;

    步骤4-5:利用量化得到的权重文件,在测试集上进行测试,若map指标损失不超过阈值,则降低量化位宽bw,重复步骤4-2到4-5;否则,恢复本次位宽降低前的网络权重;

    步骤4-6:利用步骤3-7所述的csr格式进行存储,得到量化后的稀疏权重文件。

    具体的,所述步骤4中基于区域的动态固定点量化方法步骤为:

    步骤5-1:设定输入特征图初始量化位宽bi为8bit;

    步骤5-2:将输入特征图拆分为30×30的网格区域;

    步骤5-3:针对输入特征图的每个网格,确定每区域像素的最大值;

    步骤5-4:依据各区域最大值,按照公式il=[lg2(max[i] 1)]和fl=bi–il设定该区域输入特征图的整数部分位宽il和小数位宽fl,其中i指输入特征图网格区域张量;

    步骤5-5:按照整数位宽il、小数位宽fl对输入特征图各区域进行量化,从而尽可能保留各区域更多的细节特征;

    步骤5-6:利用量化得到的权重文件,在测试集上进行测试,若map指标损失不超过阈值,则降低量化位宽bi,重复步骤5-2到5-6;否则,恢复本次位宽降低前的位宽bi;

    步骤5-7:记录输入特征图量化位宽bi,在推理过程中按照该值进行实时量化。

    与现有技术相比,本发明的有益效果为:

    1)基于tpe优化算法的自适应剪枝方法,能够自动对网络各层剪枝阈值进行调节,从而减少剪枝引起的性能损失;

    2)对输入特征图的基于区域的动态固定点量化和针对网络权重的基于层的动态固定点量化方法,能够在量化过程中尽可能保留更多细节信息,减少量化引起的性能损失;

    3)引入深度可分解卷积方法,与以上两种压缩方法结合,最终在遥感图像目标检测网络上达到25倍以上的压缩率,map指标损失不到1%。

    附图说明

    图1为本发明面向遥感图像目标检测的神经网络压缩方法的流程图。

    图2为深度可分离卷积替换传统卷积示意图

    图3为剪枝示意图

    图4为稀疏矩阵csr存储格式示意图

    图5为动态固定点量化示意图

    图6为map指标与权重量化位宽的关系示意图

    图7为ssd网络压缩前目标检测结果示意图

    图8为ssd网络压缩后目标检测结果示意图

    具体实施方式

    为了使本发明实现的措施、创作特征、达成目的与功效易于明白了解,以下结合附图对本发明的实施例作详细说明,但不应以此限制本发明的保护范围。

    以目标检测网络ssd为实施例,采用的深度学习框架caffe,训练与测试选用的数据集为遥感图像数据集nwpuvhr-10,输入图片大小为300*300,具体网络结构如表1所示:

    表1ssd网络结构

    请参阅图1,图1为本发明面向遥感图像目标检测的神经网络压缩方法的流程图,如图所示,本发明包括以下步骤:

    步骤1:基准网络训练:基于深度学习框架对目标检测神经网络进行训练,得到基准网络模型和基准map(meanaverageprecision)指标;

    步骤1-1:基于神经网络框架搭建目标检测网络;

    步骤1-2:在训练集上进行训练,loss不再下降时,在测试集上进行测试,得到目标检测map指标。具体的,所采用的ssd网络在nwpu-vhr数据集上10类物体的总map指标为76.0%,权重大小为95.18mb。

    步骤2:深度可分离卷积替换:按照卷积层参数量大小顺序,逐层将传统卷积层拆分为一层深度卷积和一层逐点卷积两个参数量更小的卷积层,直至超过map指标损失阈值。

    步骤2-1:计算目标检测网络中每个卷积层的参数量,公式如下:

    params=(k×k×cin)×cout

    其中,k为卷积核尺寸,cin和cout分别为卷积的输入通道和输出通道;

    步骤2-2:选择当前参数量最大的卷积层,修改网络架构,将其替换为对应的一层深度卷积和一层逐点卷积,图2是传统卷积替换为深度可分离卷积的示意图,通过替换,参数量的压缩比为

    具体的,在深度学习框架caffe下进行深度可分离卷积替换需要以下步骤:

    步骤2-2-1:在caffe源码中加入新的层深度卷积层depthwiseconvolution;

    步骤2-2-2:编写该层头文件、实现前向和反向传播代码,一个卷积核仅与一个输入通道进行卷积,一个输入通道仅和一个卷积核卷积;

    步骤2-2-3:设定层名称为“depthwiseconvolution”即可调用深度卷积层;调用caffe内置的卷积层,并将卷积核尺寸设定为1,即可实现逐点卷积层。

    步骤2-3:修改ssd网络的权重文件caffemodel,除了新替换的层权重为随机生成外,其余层权重保持不变。

    步骤2-4:利用修改后的网络架构及权重文件进行网络重训练,直至训练集的loss函数不再降低后得到重训练后的权重文件;在测试集上进行测试,得到map指标;

    步骤2-5:与基准map指标相比,若map指标损失不超过阈值,则保留此层替换,返回步骤2-2,进行下一层替换。若map指标损失超过阈值,则恢复本次替换前的网络架构和权重。表2为深度可分解卷积压缩效果,展示了最终替换得到的6组深度可分解卷积及其压缩比。整个网络的压缩率达到了2.01倍,map指标为77.5%,提高了1.5%。

    表2.深度可分解卷积压缩效果

    步骤3:基于步骤2得到的替换后的网络模型,进行基于tpe(tree-structuredparzenestimator)优化的自适应剪枝,具体是:

    步骤3-1:利用步骤2中得到的权重文件,对每层网络权重进行可视化,选择参数有大量冗余的层作为进行剪枝的层。具体的,经过深度可分解卷积的替换后,并非所有卷积层的参数都有大量冗余,在剪枝过程中,深度可分解卷积中的深度卷积层不再参与压缩;

    步骤3-2:随机生成m组初始网络剪枝阈值{c1,c2,c3,…,cm},其中ci={c(1),c(2),…,c(l)},其中c(j)代表第j层的剪枝阈值,网络共l层;

    步骤3-3:针对步骤3-1得到的要进行剪枝的层进行剪枝和重训练,更新未被剪除的权重;在测试集上进行测试,得到在不同剪枝阈值设定下模型的map指标损失值{y1,y2,y3,…,ym};构建剪枝阈值及结果集合d={(c1,y1),(c2,y2)),(c3,y3),…,(cm,ym)};

    步骤3-4:tpe算法依据当前剪枝阈值及结果集合d,确定下一次迭代的剪枝阈值c*;针对c*进行剪枝和重训练,得到当前剪枝阈值下的map指标损失值y*

    具体的,tpe算法基于贝叶斯优化框架,能够根据已有超参数(剪枝阈值)的模型评估结果(map指标损失)选择下一组超参数,其执行步骤如下:

    步骤3-4-1-1:将当前剪枝阈值集合分为2个类别,分别代表性能好和性能差:

    其中y*代表目前得到的所有map指标的γ分位数,即p(y<y*)=γ。

    步骤3-4-1-2:在tpe算法中,优化标准是期望提升ei,定义为:

    由于下式成立:

    得到:

    因此,选择具有最小值的超参数(剪枝阈值)作为下一次迭代的剪枝阈值c*

    具体的,图2为剪枝示意图,实现剪枝需要进行以下步骤:

    步骤3-4-2-1:定义和第l层权重矩阵w(l)同等大小的第l层mask矩阵m(l)用于表示剪枝状态,mask矩阵中数值只能取0或1,0代表权重被剪除而1代表权重被保留。

    步骤3-4-2-2:通过比较剪枝阈值和权重更新m(l)

    步骤3-4-2-3:得到剪枝后的权重w′(l)=w(l)⊙m(l)

    步骤3-5:更新剪枝阈值及剪枝结果集合:d←d∪{(c*,y*)};

    步骤3-6:重复步骤3-4,3-5,直到超过最大迭代次数n;

    步骤3-7:将剪枝完毕后的稀疏的权重转化为按行压缩格式(csr,compressedsparserow)进行存储。图4是csr存储格式示意图,具体的,a数组存储所有非零元素,ja数组存储各个非零元素再原稀疏矩阵中的列索引,ia数组的第n个元素存储原始稀疏矩阵前n行的非零元素个数,第0个元素ia[0]恒为0。在步骤3完成后,ssd网络通过深度可分解卷积替换和剪枝,压缩率达到11.4倍,map指标为76.4%。

    步骤4:基于步骤3得到的剪枝后的网络模型,对权重进行基于层的动态固定点量化,对输入特征图进行基于区域的动态固定点量化,进一步压缩网络模型。在尽可能不影响网络检测性能的前提下,逐步降低量化位宽,直至map指标损失超过阈值,得到最终压缩模型。图5为动态固定点量化示意图,其特征是总量化位宽不变,小数点的位置可以依据各组数据的分布而变化。

    具体的,基于层的动态固定点量化方法步骤为:

    步骤4-1:设定权重初始量化位宽bw为8bit;

    步骤4-2:针对目标检测网络中每层权重进行统计,寻找到每层权重的最大值;

    步骤4-3:依据每层权重最大值,按照公式il=[lg2(max[w] 1)]和fl=bw–il设定该层权重的整数部分位宽il和小数位宽fl,其中w指该层权重张量;

    步骤4-4:按照整数位宽il、小数位宽fl对每层权重进行量化。具体的,在caffe框架下进行量化需要对权重文件caffemodel进行解析,读取权重和偏置数据,量化后再写入新的权重文件;

    步骤4-5:利用量化得到的权重文件,在测试集上进行测试,若map指标损失不超过阈值,则降低权重量化位宽bw,重复步骤4-2到4-5;否则,恢复本次位宽降低前的网络权重。具体的,ssd网络在不同位宽下的量化结果如图6所示。最终选择的量化位宽为6bit,map指标为75.42%,损失为0.58%;

    步骤4-6:利用步骤3-7所述的csr格式进行存储,得到量化后的稀疏权重文件。需要的存储空间为3.62mb,压缩率达26.29倍。

    具体的,所述步骤4中基于区域的动态固定点量化方法步骤为:

    步骤5-1:设定输入特征图初始量化位宽bi为8bit;

    步骤5-2:将输入特征图拆分为30×30的网格区域;

    步骤5-3:针对输入特征图的每个网格,确定每区域像素的最大值;

    步骤5-4:依据各区域最大值,按照公式il=[lg2(max[i] 1)]和fl=bi–il设定该区域输入特征图的整数部分位宽il和小数位宽fl,其中i指输入特征图网格区域张量;

    步骤5-5:按照整数位宽il、小数位宽fl对输入特征图各区域进行量化,从而尽可能保留各区域更多的细节特征;

    步骤5-6:利用量化得到的权重文件,在测试集上进行测试,若map指标损失不超过阈值,则降低量化位宽bi,重复步骤5-2到5-6;否则,恢复本次位宽降低前的位宽bi;

    步骤5-7:记录输入特征图量化位宽bi,在推理过程中按照该值进行实时量化。具体的,nwpuvhr-10数据集作为ssd网络输入,可以量化至8bit,无map指标损失,可以进一步降低硬件计算资源开销。

    挑选数据集中的样本进行展示,压缩前的检测结果为图7,压缩后的检测结果为图8,左下角的港口在网络压缩后被检测出,由此可见,本发明将网络压缩后,map指标损失很低。且去掉冗余后,网络在某些物体的检测上甚至可以取得更好效果。


    技术特征:

    1.一种面向遥感图像目标检测的神经网络压缩方法,其特征在于,该方法包括以下步骤:

    步骤1:基准网络训练:基于深度学习框架对目标检测神经网络进行训练,得到基准网络模型和基准map指标;

    步骤2:深度可分离卷积替换:按照卷积层参数量大小顺序,逐层将传统卷积层拆分为一层深度卷积和一层逐点卷积两个参数量更小的卷积层,直至超过map指标损失阈值;

    步骤3:根据步骤2得到的替换后的网络模型,进行基于tpe优化的自适应剪枝;

    步骤4:根据步骤3得到的剪枝后的网络模型,对权重进行基于层的动态固定点量化,对输入特征图进行基于区域的动态固定点量化,进一步压缩网络模型,逐步降低量化位宽,直至map指标损失超过阈值,得到最终压缩模型。

    2.根据权利要求1所述的面向遥感图像目标检测的神经网络压缩方法,其特征在于,所述步骤2深度可分离卷积替换,具体是:

    步骤2-1:计算目标检测网络中每个卷积层的参数量,公式如下:

    params=(k×k×cin)×cout

    其中,k为卷积核尺寸,cin和cout分别为卷积的输入通道和输出通道;

    步骤2-2:选择当前参数量最大的卷积层,修改网络架构,将其替换为对应的一层深度卷积和一层逐点卷积;

    步骤2-3:修改目标检测网络的权重文件,新替换的层权重为随机生成,其余层权重保持不变;

    步骤2-4:利用修改后的网络架构及权重文件进行网络重训练,loss函数不再降低后得到重训练后的权重文件;在测试集上进行测试,得到map指标;

    步骤2-5:与基准map指标相比,若map指标损失不超过阈值,则保留此层替换,返回步骤2-2,进行下一层替换,若map指标损失超过阈值,则恢复本次替换前的网络架构和权重。

    3.根据权利要求1所述的面向遥感图像目标检测的神经网络压缩方法,其特征在于,所述步骤3进行基于tpe优化的自适应剪枝,具体步骤是:

    步骤3-1:利用步骤2中得到的权重文件,对每层网络权重进行可视化,选择参数有大量冗余的层作为进行剪枝的层;

    步骤3-2:随机生成m组初始网络剪枝阈值{c1,c2,c3,...,cm},其中ci={c(1),c(2),...,c(l)},其中c(j)代表第j层的剪枝阈值,网络共l层;

    步骤3-3:针对步骤3-1得到的要进行剪枝的层进行剪枝和重训练,更新未被剪除的权重;在测试集上进行测试,得到在不同剪枝阈值设定下模型的map指标损失值{y1,y2,y3,...,ym};构建剪枝阈值及结果集合d={(c1,y1),(c2,y2)),(c3,y3),…,(cm,ym)};

    步骤3-4:通过tpe算法依据当前剪枝阈值及结果集合d,确定下一次迭代的剪枝阈值c*,针对剪枝阈值c*进行步骤3-3得到各层剪枝阈值,进行剪枝和重训练,得到当前剪枝阈值下的map指标损失值y*

    步骤3-5:更新剪枝阈值及剪枝结果集合:d←d∪{(c*,y*)};

    步骤3-6:重复步骤3-4,3-5,直到超过最大迭代次数n;

    步骤3-7:将剪枝完毕后的稀疏的权重转化为按行压缩格式(csr,compressedsparserow)进行存储。

    4.根据权利要求1所述的面向遥感图像目标检测的神经网络压缩方法,其特征在于,所述步骤4对权重进行基于层的动态固定点量化,具体是:

    步骤4-1:设定权重初始量化位宽bw为8bit;

    步骤4-2:针对目标检测网络中每层权重进行统计,寻找到每层权重的最大值;

    步骤4-3:依据每层权重最大值,按照公式il=[lg2(max[w] 1)]和fl=bw-il设定该层权重的整数部分位宽il和小数位宽fl,其中w指该层权重张量;

    步骤4-4:按照整数位宽il、小数位宽fl对每层权重进行量化;

    步骤4-5:利用量化得到的权重文件,在测试集上进行测试,若map指标损失不超过阈值,则降低量化位宽bw,重复步骤4-2到4-5;否则,恢复本次位宽降低前的网络权重;

    步骤4-6:利用步骤3-7所述的按行压缩格式进行存储,得到量化后的稀疏权重文件。

    5.根据权利要求1所述的面向遥感图像目标检测的神经网络压缩方法,其特征在于,所述步骤4对输入特征图进行基于区域的动态固定点量化,具体是:

    步骤5-1:设定输入特征图初始量化位宽bi为8bit;

    步骤5-2:将输入特征图拆分为30×30的网格区域;

    步骤5-3:针对输入特征图的每个网格,确定每区域像素的最大值;

    步骤5-4:依据各区域最大值,按照公式il=[lg2(max[i] 1)]和fl=bi-il设定该区域输入特征图的整数部分位宽il和小数位宽fl,其中i指输入特征图网格区域张量;

    步骤5-5:按照整数位宽il、小数位宽fl对输入特征图各区域进行量化,尽可能保留各区域更多的细节特征;

    步骤5-6:利用量化得到的权重文件,在测试集上进行测试,若map指标损失不超过阈值,则降低量化位宽bi,重复步骤5-2到5-6;否则,恢复本次位宽降低前的位宽bi;

    步骤5-7:记录输入特征图量化位宽bi,在推理过程中按照该值进行实时量化。

    技术总结
    一种面向遥感图像目标检测的神经网络压缩方法,包括基于深度学习框架对目标检测神经网络进行训练,得到基准网络模型和基准mAP指标;按照卷积层参数量大小顺序,逐层将传统卷积层拆分为一层深度卷积和一层逐点卷积两个参数量更小的卷积层,直至超过mAP指标损失阈值;进行基于TPE优化的自适应剪枝;对权重进行基于层的动态固定点量化,对输入特征图进行基于区域的动态固定点量化,进一步压缩网络模型,逐步降低量化位宽,直至mAP指标损失超过阈值。本发明能够自动对网络各层剪枝阈值进行调节,从而减少剪枝引起的性能损失;通过动态固定点量化,减少量化引起的性能损失;最终在遥感图像目标检测网络上达到25倍以上的压缩率,mAP指标损失不到1%。

    技术研发人员:范茜;贺光辉;李杰;郑思杰;蒋剑飞;景乃锋;绳伟光;王琴
    受保护的技术使用者:上海交通大学;上海航天测控通信研究所
    技术研发日:2020.12.21
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-19357.html

    最新回复(0)