基于轻量化YOLOv5算法的目标检测系统
2023-10-30刘宇伟
刘宇伟
(中国矿业大学徐海学院,江苏 徐州 221009)
我国民航正进入高速发展关键时期,国内各机场航班数量逐渐呈现井喷增势,大型机场地面交通基本处于密集型高位运行。为了能够适应逐渐增加的运输压力,提高机场的整体运作管理效率,打造适用于机场的检测系统至关重要。计算机视觉技术成为场景检测的重要方法,而目标检测作为主要技术研究方向之一,可以对画面中目标所在位置进行精准定位,还拥有识别目标所属种类的技术能力[1]。智能技术不断创新,研究人员对目标检测算法精准度的需求逐渐增加。该文试图将轻量化YOLOv5算法引入目标检测系统,应用YOLOv5 识别机场的人、车和飞机,以提高塔台管理机场的调度效率。同时,该文还基于大量基础数据进行计算机深度学习,以发挥YOLO部署在嵌入式设备中的优势。
1 轻量化YOLOv5算法理论基础
1.1 YOLOv5概述
YOLO 算法利用图片预测,可以一次性获得全部检测结果,在更新中推出YOLOv5,YOLOv5 可以根据模型大小递增划分为s、m、l 和x,不同模型的深度、宽度也不同,均包括输入端、Backbone、Neck 以及Head 4 个部分。在输入端采用Mosaic 数据增强、自适应初始锚框计算以及图片缩放等图像预处理方法。Backbone 采用Focus 下采样、SPP 池化金字塔结构以及改进CSP 结构等,可以成功提取图片特征信息[2]。Neck 采用FPN+PAN 特征金字塔结构传递不同尺寸目标物的特征信息。Head 主要应用3 类损失函数分别完成计算、分类、定位以及置信度损失任务,经NMS 可以提高网络预测精准度。YOLOv5 的基本架构如图1所示。
1.2 轻量化YOLOv5算法改进
为了精准检测机场的目标物,基于YOLOv5 提出轻量化YOLOv5 网络结构,模型量化就是将32 位浮点运算转化为定点运算,该方法可以有效压缩参数、减少占用内存。以目前使用领域最广泛的3 类量化方法(二三值化、对数量化以及线性量化)为例,首先,采用二三值化仅可以进行简单的运算操作,如果运算步骤比较复杂,就会影响结果精度。其次,对数量化运算过程需要将同底幂指数相乘,该计算过程也比较复杂,因此并不利于AI 芯片底层加速。基于对上述2 种算法的分析并结合已有文献的观点可知,2 种算法均将32 位浮点数据映射至8 位定点,零点值Z偏移就是2 种计算方法的不同之处[3]。
量化后的具体数值Q如公式(1)所示,零点值Z如公式(2)所示。
式中:Q为量化后的具体数值;R为权重参数值;Z为零点值;xf为输入float 32 类型数据;n为量化处理后数值的bit 位数。
通过应用不同量化模型处理,8 位定点量化模型明显变小,将FP32 浮点数张量转化为unit8 张量,可以减少存储空间及内存带宽,可以进一步提高系统吞吐量,还可以缓解系统可能导致的延时问题。
2 网络结构轻量化
该文建立目标检测系统GhostNet的基本理念就是以特征图存在的关联拆分一般卷积,并将其与Ghost 卷积进行对比(如图2所示)。在Ghost 模块内包括1 个少量卷积、1 个总体恒等映射以及m×(s-1)个线性运算,经一般卷积生成的少量特征图完成廉价线性操作,成功获得Ghost 特征图,再拼接2 组特征图,成功获得更多特征图并匹配给定输出通道数。
图2 一般卷积与Ghost 卷积的对比
2.1 特征提取网络
该轻量化YOLOv5 算法采用Conv 卷积模块取代原本YOLOv5 的Focus 模块,并采用MobileNetv2 替换原本Backbone 内的CSP 模块。其中,MobileNetv1 所用深度可分离卷积经堆叠可以取代标准卷积,主要包括深度卷积、逐点卷积2 个部分,可以在输入同等卷积基础条件上,减少模型的参数量[4]。假设定义标准卷积、深度可分离卷积,深度卷积在标准卷积的基础上更改N为1,再与送入1×1逐点卷积模块最终所获卷积结果相加,两者的计算和参数量相比如公式(3)所示[5]。
式中:Wc、Hc分别为输入特征图的宽、高;N为卷积核素,共计N条通道;M为卷积核数;Ho为卷积模块高度;Wo为卷积深度。
经过计算可知,输出特征图的大小为Wc×Hc×N。
MobileNetv2 在MobileNetv1 的基础上加入Expansion layer 和线性链接Bottleneck layer,以完成低维、高维特征映射,但是网络模型体积却明显变小,仅为Mobilev1 的1/4,因此可以实现网络结构轻量化的目标。
2.2 模型减枝
针对卷积网络压缩领域,可以采用网络减枝方法达到降低网络复杂度与过拟合的效果,还可以提高量化算法的推理速度。基于卷积核的结构化减枝是指从卷积核层面进行考虑,初始时正常训练网络,再一处权重链接低于判断阈值的卷积核或通道,并进行适当地稀疏调整网络处理,就可以成功获取轻量化模型。以往文献中判断卷积核重要性所用的方法各不相同[6],该文主要针对网络BN 层内可学习参数完成L1 正则化稀疏训练,成功获得与0 接近的稀疏缩放因子,使用L1 范数评价卷积核的重要性,即完成了减枝流程。也就是根据递减顺序和每个卷积层滤波器矩阵的绝对值总和排列去除那些比预定阈值低的卷积核。
2.2.1 主干网络改进
为了避免阈值参数评价方法过于单一,导致出现误减、结构通道数发生明显变化以及降低目标检测精度的情况,再加上嵌入式平台MAC 硬件单元,对优化模型加速时所要求的卷积通道数量最好是3 的倍数,因此减枝设计判断函数,如公式(4)所示。
式中:N为网络减枝后通道数;x为原网络卷积核通道数;f(x)为在减枝后小于x并为9 的倍数的最大值。
为了提高网络预测速度和效率,在保留网络DenseNet网络特征提取能力的基础上,采用一次性聚合模块,删除密集连接方式,在最后一层聚合浅层特征,采用这种改进方式可以使整个网络性能比改进前的网络模型更高,还可以提高小目标检测的性能。
2.2.2 颈部网络改进
颈部网络与输出层、主干网络相连,经特征增强模块提取主干网络特征后,完成特征增强处理向输出层输出,以提高网络检测精准度。目前,运用范围较广的深度学习领域中的特征增强模块为特征金字塔网络(FPN)模块,该模块可以在目标检测、实例分割等任务中灵活运用,可以添加自顶至下的网络结构,增强双方之间的横向连接,向浅层传递深层语义信息,融合每个特征层后进行单独预测,就可以实现多尺度目标检测,以提高网络对小目标的检测能力。
3 系统试验
3.1 试验设计
采用PyTorch 框架的硬件环境配置如下:RTX2060 GPU,i7 处理器,16G 内存,Python:3.6,CUDA10.1,opencv:3.4.5。采用RKNN 框架的硬件环境配置为嵌入式设备Rk3399pro。将交叉编译环境安装在PC 终端,利用ssh 协议可以在手机、平板设备远程登陆,使用CMake 工具编写Cmakelist.txt 配置文件,就可以实现跨平台管理编译的功能。采用phcharm 完成Python 代码编写训练,并落地C++程序。由mAP 评价模型精准度,控制模型训练中每类检测目标精准率相应召回率为0~1,后续完成积分求和与总检测目标相处后就可以得到结果。完成5 次试验后获得平均值对比(见表1)。
表1 不同网络模型性能相较
3.2 数据集预处理
为了验证不同目标检测模型的性能,选择常用于目标检测试验的PASCAL VOC 数据集[7]。所检测目标有丰富的样本数量、不同的特征背景,可以完成不同环境需求下的深度目标检测测试,可以对重叠或较小图片进行筛选和目标增强检测操作。首先,转化试验选择的数据集标签格式,加工PASCALVOC 格式转化为YOLO 文本格式,成功生成id、x、y、w 和h 归一化处理,之后以训练集、验证集的存储方式成功存储转换结果。其次,基于大小相同的2 张图片完成聚类产生全部anchors 的2 000 轮变异,保证最终所得召回率结果最大化。最后,在该试验中随机增减图片亮度、饱和度、对比度和色调等,并使用裁剪、随机缩放、裁减、翻转以及擦除等方法对图像目标数据进行增强处理。Mosaic 数据增强共计选取4 张图片进行随即编排拼接,BatchSize 明显增加,内存占用率也明显变小,可以有效预防出现过拟合情况。
3.3 试验结果
3.3.1 轻量化效果
该文实现了基于YOLOv5算法的强量化改进设计,YOLOv5在训练模型阶段仍然采用Mosaic 数据增强方法,该算法改进了cutmix 数据扩展方法。cutmix 仅使用2 个图像来拼接,而mosaic data augmentation 通过随机缩放、修剪和布局的方法来连接4 个图像[8],该增强方法可以将几张图片组合成1 张,不仅可以丰富数据集,而且还可以提高网络的训练速度并降低模型的内存需求。
为了进一步提高YOLOv5 算法的推理速度,该算法提出一种方法,该方法能够自适应地添加最少的黑边到缩放之后的图片中。将416×416 的图像输入该目标检测系统,对比替换特征提取网络、网络减枝及量化处理后的网络结构。采用PC 端模型与pytorch 框架进行对比,在RKNN 框架操作Rk3399pro 端,采用RKNN 模型取代pt 模型,RKNNToolkit可以精准识别op 算子,提供必要的硬件条件支持。由表1可知,改进特征提取、减枝以及轻量化处理后的网络结构模型的检测速度比基础的polov5 模型高,由原本的140 f/s 升至370 f/s,模型精度降至6.74%[9]。
3.3.2 算法通用性
为了验证轻量化YOLOv5 算法在机场目标检测中的通用性和普适性,检测数据预处理后KITTI 数据集训练的YOLOv2 系列算法(见表2),检测效果证实基于轻量化YOLOv5 算法的目标检测方法可以基于Rk3399pro 进行轻量化部署,为后续探索其他改进方法提供理论数据支撑。
表2 改进yolo 系列轻量化模型前后目标检测效果对比
3.3.3 小目标检测效果
为了对设计轻量化YOLOv5 改进算法目标检测系统的性能进行验证,探索不同改进方法的应用实效性,基于YOLOv5 设计分辨难度较大的小目标检测试验,共计4 组,检测效果见表3。试验结果格式表现为mAP@0.5/mAP@0.5:0.96。由表3 可知,WCAL-PAN 的小目标检测效果更好,mAP@0.5 提高了3.3%,mAP@0.5:0.95 提高了5.2%。该文设计的系统小目标检测效果提高了2.7%,证实了该系统小目标检测效果的显著性。
表3 小目标检测效果
4 结语
综上所述,基于轻量化YOLOv5 改进算法的目标检测系统可以保障机场运行安全,可以提高业务效率,还可以为塔台员工提供优质服务。通过塔机运行管理系统保证飞机和人员调度功能正常运行。通过塔机现场调度信息、飞行计划、流量动态控制、雷达通信管理天气预报以及唤醒服务等功能,可以帮助企业实现以下3 个目标:1)对塔机进行控制,以提高综合管理能力。2)有效协调塔现场调度及机场吞吐量。3)降低航班管理人员的业务负荷,实现风险管理。