面向嵌入式系统的轻量级目标检测算法

2022-12-23 12:03刘鸿志王耀力常青
电子设计工程 2022年24期
关键词:剪枝阈值精度

刘鸿志,王耀力,常青

(太原理工大学,信息与计算机学院,山西太原 030000)

航空图像上由于目标尺寸小、拥挤以及被遮挡等因素而引起的精度下降问题是考验算法性能的一大挑战。另外,模型复杂度直接影响了目标检测算法在内存和计算能力有限的无人机平台上的部署工作,如何平衡检测精度和算法复杂度是该文的出发点。

基于深度学习的主流目标检测算法根据有无候选框生成分为双阶段目标检测算法[1-2]和单阶段目标检测算法[3-7]两类。基于低功耗和低能耗的需求[8],选择速度更快、精度有保证的一阶段YOLO 系列作为基准检测算法,使用参数剪枝的方法对过参数化[9]的网络模型进行缩减[10-13];同时,在多分类目标检测任务后处理中提出了NCW 的方法,通过对分类目标采用加权框融合(Weighted Boxes Fusion,WBF)[14]与非极大值抑制(Non-Maximum Suppression,NMS)[15]相结合的方法进一步提升了模型检测精度。

1 相关工作

1.1 YOLOv5相关理论

YOLOv5 是YOLO 系列检测算法中的第五版,并有v5s、v5m、v5l、v5x四种不同大小的模型,其中v5s是网络深度和宽度最小的模型,权重大小仅14.1 MB。YOLOv5 整体架构分为输入端、Backbone 主干网络、Neck 特征融合网络、输出端四部分,其中相较于YOLOv4 和YOLOv3 的Backbone 主干网络,改动最大的部分在于YOLOv5 添加了Focus 结构。

Focus 结构将图片进行类似临近下采样的切片操作,然后进行通道拼接,切片操作如图1 所示。

图1 切片操作示意图

1.2 加权框融合

加权框融合(WBF)与NMS 直接过滤掉重复的边界框不同,WBF 利用所用的边界框,将多个框加权融合,通过式(1)调整置信度分数,通过式(2)、(3)融合边界框坐标,生成新的目标框。最后通过式(4)或者式(5)对融合的框进行调整。

其中,T为每个目标预测出的Box 的数量,C为Box 的置信度分数,C'为Box 的原始置信度分数,x、y为Box 的坐标,N为预测模型的数量。

WBF 算法的运行步骤如下:

输入:所有模型推理出的所有预测Bounding Boxes。

输出:通过加权融合调整后的Bounding Boxes。

1.3 模型简化

利用基于参数剪枝的方法对模型进行简化,灵活性高,无需训练复杂网络,直接对训练好的网络进行剪枝。其具体步骤如下:

步骤1 设定参数稀疏化率阈值和剪枝率。

步骤2 使用预训练模型初始化权重,进行网络稀疏化训练。

步骤3 通过观察参数变化,根据剪枝率进行通道裁剪。

步骤4 对网络进行适应性训练。

步骤5 判断是否符合性能要求,符合则结束剪枝,否则重复整个流程。

2 网络算法设计

2.1 输出端简介

在目标检测的后处理过程中,通常使用NMS对每个位置冗余框进行筛选,在YOLOv5 的输出端,使用DIOU_NMS对处理目标重叠有很好的效果,相比于经典NMS,DIOU_NMS将IOU的计算方式更换为DIOU。

IOU 计算如式(6)所示:

其中,B为预测框的面积,Bgt为真实框的面积。

式(6)清晰地表达出了IOU 是两个框的交并比,图2 所示为两种拥有相同IOU 不同位置分布的情况,显然这种计算方式没有考虑到预测框和目标框之间的归一化距离,导致预测结果不准确。

图2 相同IOU不同位置示意图

中心点距离约束示意图如图3 所示,不仅考虑了两个框之间的重叠面积,而且还考虑了两个框的中心点距离。计算方式如式(7)所示:

图3 中心点距离约束示意图

其中,b是预测框中心点,bgt是真实框中心点,ρ是欧式距离,c是最小外接矩形的对角线长度。

无论是NMS 还是DIOU_NMS,都无法对模型推理出的预测框进行修正,导致网络只能从错误中寻找最优解,影响了模型精度,因此,该文提出NCW 方法来改进目标框的预测。

2.2 输出端改进

为了应对YOLOv5 推理预测出的目标框定位不准确问题,该文提出NCW 算法,在NMS 的基础上,提出错误筛选算法,将明显不符合矩形规则的预测框去除,进一步利用WBF 的方法调整预测框的置信度和坐标,提高预测精度。

模型推理会产生很多无效的边界框,比如坐标x1<x2,y1<y2或者x1=x2,y1=y2等,如果将这些明显不符合矩形规则的预测框加入到后续算法中,则增加了无用的计算量,影响算法检测精度,因此通过提出的错误过滤算法对预测框进行处理。

由于WBF 不只是简单地根据阈值删除边界框,而是重新对预测框进行加权计算,从而增加了算法复杂度,因此先使用NMS 进行预筛选,然后利用WBF 进行边界框调整,以提高目标检测精度。NCW算法流程如图4 所示。

图4 NCW算法流程

2.3 具体压缩实现

文中采用的是基于批归一化层通道数的剪枝方法,通过稀疏化训练后,将对输出结果影响较小的通道去掉,在最大限度保证精度的情况下对模型进行压缩,从而减少了参数量的计算量,提高了推理速度。

在实现压缩的过程中,稀疏化训练是非常重要的一步,因为合适的缩放因子γ直接决定了剪枝率的选择,进而导致了模型压缩率和模型精度。根据先验知识,γ从0.000 1 到0.001 不等,根据IOU 取0.5时的平均精度(mAP@0.5)指标和通道权重变化示意图,将低于阈值的通道删除,通过剪枝率得到阈值,一般认为剪枝率大于0.8时,模型精度会出现显著下降。剪枝完成后,对模型进行微调,使其恢复精度。通道剪枝如图5 所示。

图5 通道剪枝示意图

在进行稀疏化训练之前,有一个重要的步骤就是将卷积层(Conv Layer)和批归一化层拆分,方可对批归一化层进行剪枝,因为YOLOv5 会将卷积层和BN 层进行融合。

3 实验验证

3.1 实验数据及环境

该实验通过Pytorch 深度学习框架实现NCWSYOLO 模型算法,训练环境为Window10 操作系统,CPU 为Inter Core i9-9900K,GPU 为Nvidia RTX2080 Super,在嵌入式设备Nvidia Jetson TX2 上完成推理和测试。该文所用的数据集为10 分类的VisDrone 2019 无人机数据集[16],其训练和验证图片共7 019张,测试图片有1 610 张。

3.2 数据预处理

由于VisDrone 的标注方式与YOLO 标注不同,先将txt 标注形式转换为VOC 格式的xml,然后将VOC 格式转换为YOLO 格式,即每张图片保存为一个txt 文件,每一行为一个目标,包括目标类别、真实框中心点(x,y)坐标,以及框的宽度和长度。

官方配置文件给出的是基于COCO 数据集得出的3 组Anchor,并不适用于该文数据集,因此通过K-means 聚类方法对VisDrone 重新生成3 组共9 个Anchor。

3.3 NCW算法

在推理阶段,NMS 会根据所设置的阈值,将重复的框去除,若IOU 阈值设置过大,则会保留过多的框,不仅会降低精度,同时会对WBF 算法造成大量的计算,增加模型的推理时间;如果IOU 阈值设置过小,则会出现漏标的情况,对模型精度造成很大影响,导致推理失败,所以寻找一个合适的阈值是非常关键的一步。该文从官方给定的阈值0.7 开始,以0.05 为间隔探索最合适的阈值,选定置信度为0.5 时所有类别的精度(Precision,Pr)为主要评判指标,将F1值设为辅助指标。实验结果如表1 所示。

表1 各阈值推理精度分析比较

通过实验数据可以看出,当IOU 阈值为0.45时,精度为0.923,IOU 阈值为0.4 时精度增加了0.001,只发生了微量变化,从0.4 开始,尽管IOU 继续降低,NMS 对预测框位置要求也越严格,对预测框的过滤程度也越高,但是精度并不会继续增大。反之,当IOU 阈值增大,从0.5 开始,精度相应地开始降低,到0.7时,精度下降了接近两个百分点,IOU 阈值从0.65到0.7,精度大幅降低了接近一个百分点,阈值增大精度下降,说明了NMS 保留了过多的冗余框,影响了网络的预测精度。

从整个过程可以看出,虽然F1 保持在0.95 的高水平,但是预测精度最高为0.924,当网络的推理效果不理想时,NMS 只能从错误的候选框中寻找最优的结果,也就是说最终结果的好坏早已由网络决定,NMS 只是选定了相对最好的一组结果,因此将推理结果充分利用并加以修正,改善模型的检测精度是该文引入WBF,提出NCW 算法的重要原因。

与NMS 的功能类似,WBF 也是对推理结果做最后筛选的,不同的是WBF 将多个框加权融合,生成一个新的预测框。如果只将NMS 替换成WBF,会引入大量的计算,使网络推理变慢,增加不必要的开销,NMS 可以快速过滤掉一些冗余框,因此将NMS作为WBF 的数据预处理部分引入到YOLOv5 中。

如前文所述,NMS 的IOU 设置过大,会保留大量的冗余框,无形中加大了WBF 的计算量;IOU 设置过小,保留的预测框过少,WBF 又起不到融合调整的作用;因此,选取一个合适的IOU 阈值,是NCW 算法发挥作用的关键。利用实验获得的先验知识进行实验,以F1 和Pr 为平价指标,其中F1 反映精度和召回率(Re)之间的平衡关系,先验知识如表1所示,实验数据如表2所示。

如表2 所示,某些Pr 很高,但是F1 值却很低(如阈值为0.7 和0.4),说明Pr 和Re 之间没有达到平衡,牺牲召回率换取精度的提升,所以应该舍弃,同理舍弃F1值很高但是Pr很低的情况(如阈值为0.5和0.7)。因此,在F1 大于0.925时,模型推理精度从0.93 到0.945 不等,选取F1 值和Pr 值最平衡的一组,当NMS/WBF为0.7,IOU 阈值为0.6时,F1 和Pr都为0.941,0.941 比原始网络推理精度提升了3.9%,因此说明NCW 算法是有效的。

表2 不同NMS/WBF下各阈值推理精度分析比较

3.4 模型压缩训练

模型稀疏化训练和通道剪枝是一个追求平衡的过程,稀疏化率过大,剪枝时会删除过多有价值的通道,导致模型推理精度下降,稀疏化率过小,无差别的剪枝会损失大量的信息,因此寻找稀疏化率和剪枝率的平衡点是模型压缩至关重要的环节。该文根据先验知识,选取稀疏化率从0.005 到0.000 05 进行稀疏训练,BN 层权重的变化图如图6 所示。在不同稀疏化率下,稀疏训练精度(Pr)、召回率(Re)、平均精度(mAP@0.5)如表3 所示。

图6 BN层权重变化示意图

如图6 所示,随着稀疏化率的增大,BN 层权重逐渐趋近于0,当稀疏化率为0.000 05时,BN 层权重趋于正态分布,说明稀疏程度不够,没有把不重要的通道区分开;随着稀疏化率的提高,BN 层权重逐渐向0靠近,结合表3 来分析,当稀疏化率为0.000 1时,mAP@0.5 最高,同时比原始训练精度提升了2.8%,说明稀疏化训练可以在一定程度上有效缓解训练过拟合。但是随着稀疏化率的进一步提升,mAP@0.5下降明显,到0.001 时已经低于原始训练精度,到0.005 时mAP@0.5 出现严重下降,当BN 层权重基本接近0,网络过于密集,丢失了大量的信息。

稀疏化训练完成后,根据设置的剪枝率进行剪枝,通道权重的绝对值小于设定剪枝率对应的阈值时,则删除,如果出现某一层中所有通道的γ因子均小于阈值,为了保证网络完整性,则保留该层中γ因子最大的一个通道。完成通道剪枝后,通过50 轮微调训练恢复模型精度。该文选用mAP@0.5、参数量、浮点运数数、模型大小、阈值5 个指标来衡量剪枝效果。如表3 所示,选择稀疏化率为0.000 1 时的模型进行剪枝实验。

表3 不同稀疏化率下训练结果

如表4 所示,剪枝率为0.7时,相比于0.6,平均精度出现了大幅度下降,说明剪枝率过大,剪掉了太多的通道。剪枝率为0.6 和0.5时,平均精度近似相同,但是参数量降低了24.3%,浮点数减少了11%,模型大小缩减了21.6%,相对于剪枝率为0.4,平均精度减少了1%,但是参数量降低了41.6%,浮点数减少了19.6%,模型大小缩减了39.4%,因此选取剪枝率为0.6 时的模型作为最终的模型。通过不同输入尺寸的图片进行测试,模型推理时间分别加快了29.8%、31.4%、43.9%。具体实验结果如表5 所示。

表4 不同剪枝率分析比较

表5 嵌入式端模型推理时间

4 结束语

该文设计了一种面向嵌入式系统的轻量级目标检测方法,提高了检测精准度和速度。其中,所提的NCW 目标框过滤算法,弥补了NMS 算法对预测框过滤效果的不足,在保证召回率的前提下提升了精度;通过参数剪枝技术,使深度神经网络可以部署到嵌入式端;通过K-means 聚类方法,针对VisDrone 数据集重新设计了三组Anchor。实验结果证明了该方法的有效性,算法可以部署在嵌入式设备Nvidia Jetson TX2上,能够在低功耗场景中对无人机图像进行实时解析。下一步将继续优化算法,以满足更为复杂的高空视角下对小目标的检测任务,使算法具有强大的泛化性。

猜你喜欢
剪枝阈值精度
人到晚年宜“剪枝”
热连轧机组粗轧机精度控制
基于YOLOv4-Tiny模型剪枝算法
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
超高精度计时器——原子钟
小波阈值去噪在深小孔钻削声发射信号处理中的应用
分析误差提精度
基于DSPIC33F微处理器的采集精度的提高
剪枝