基于国产平台的轻量化遥感图像目标检测方法
2023-10-19周春云吴叶呈
周春云,吴叶呈
(扬州万方科技股份有限公司,江苏 扬州 225000)
0 引言
近年来,端智能正逐渐变为趋势,与服务端智能相比,具有低延时、兼顾数据隐私、节省云端资源等优势,目前已经在工业质检、无人巡检等应用场景中发挥了巨大价值。随着无人机技术的快速发展,针对光学遥感图像的实时检测需求也日益增多,尤其是针对遥感图像的飞机目标检测技术可广泛用于侦察、救援等方面,具有十分重要的研究意义。随着传感器设备的发展,遥感图像数据的分辨率以及规模不断扩展,如何在端侧设备中实现精准、快速检测目标成为一个亟须解决的问题。
传统光学遥感图像信息提取主要依赖人工传统机器学习算法对光谱、纹理、形状等底层特征进行描述,如SIFT(Scale Invariant Feature Transform)、HOG(Histogram of Oriented Gradients)、SURF(Speeded-Up Robust Features)等[1],该检测方法包含了特征区域提取、特征提取、分类器分类以及检测结果处理等步骤,存在流程复杂、时间复杂度高等问题。此外,在实际应用中,由于数据采集过程中存在遮挡、抖动、辐射等因素的影响,导致收集的遥感图像数据差异较大、质量不高,此时的检测精度将会受到严重影响。深度学习技术的出现,为遥感图像目标检测提供了新思路。基于深度学习的目标检测模型能够自动提取特征,不仅避免人工设计特征的复杂流程,并且能够学习到遥感图像中更加丰富的高层语义特征[2],同时基于深度学习的目标检测技术在具有复杂背景的情况下依然能够保持较高的精度和速度。基于深度学习的目标检测模型主要分为基于区域提议网络(Region Proposal Network,RPN)的两阶段算法和直接回归边界框(Bounding Box)的单阶段算法,单阶段算法虽然精度稍差,但具有较快的速度,近年来涌现了多种针对单阶段目标检测进行优化的算法,精度和速度都有了较大提升。YOLO(You Only Look Once)系列是典型的one-stage(单阶段)目标检测模型,该方法通过特征提取网络对输入图像提取特征后,直接对目标位置和类别信息进行预测,与两阶段方法相比具备更快的检测速度[3],能够为端侧实现遥感图像目标快速精准检测提供有利的技术支撑。
受软、硬件条件的限制,人工智能技术在国产处理器平台中的发展明显滞后于国外X86等商用平台,嵌入式设备算力资源、存储空间以及续航等有限,而智能化应用又对速度和精度都有着很高的要求,深度卷积神经网络目标检测模型具有网络层次深、参数量大等特点,这就为其在算力不足的国产平台上执行训练以及在端侧部署应用带来了巨大挑战。目前在人工智能计算领域,国产平台上传统的芯片计算架构已无法支撑深度学习等模型计算需求,需要新的底层硬件来更好地储备数据、加速计算过程。在国外,英伟达主打的GPU加速模块较为成熟,Intel围绕FPGA构建产业,推出模仿人脑的人工智能芯片,谷歌也推出了第二代TPU芯片。但上述芯片所配套软件栈没有进行开源,因此在国产平台中无法完成适配且无法实现从硬件到软件的技术完全自主可控。国产人工智能处理器起步较晚,但已有多家单位相继推出了适应于深度神经网络计算的AI芯片,如华为的昇腾系列产品、百度的昆仑芯等,且其配套生态较为成熟,为其在国产平台完成适配提供了保障。通过形成CPU+协处理器的异构计算系统,可有效解决国产设备计算能力不足的问题,规避了传统的芯片计算架构难以支撑深度学习模型计算需求的问题,为遥感图像目标检测模型的部署应用提供了加速支撑能力。
本文首先针对遥感图像目标检测模型的开发和部署,基于国产飞腾服务器以及昇腾Atlas200dk智能终端构建基础开发和推理运行环境,在充分考虑国产平台算力以及AI加速卡算子支持等因素的情况下,提出了一种基于改进YOLOv5s轻量化深度学习网络的遥感图像飞机目标检测方法,不仅能够减轻深度学习模型在国产平台上的训练压力、提升模型的运行效率,同时也能够保证模型在端侧场景下的检测精度和实时性。
1 改进YOLOv5s目标检测模型
YO L O v 5 模型是当前通用的目标检测算法之一,被广泛应用于各类对象检测中,与YOLOv4模型相比,YOLOv5结合了近几年深度学习领域多种较为优秀的思想,具备更高的检测精度和速度。YOLOv5主要由输入模块、Backbone骨干网络、Neck颈部模块以及Head头部检测模块四个部分组成。其中Backbone骨干网络由CSPDarkNet53构成,主要用于实现目标特征提取。Neck颈部模块由FPN和PAN结构构成,主要用于实现目标特征的融合处理。Head头部检测模块主要用于最终的回归预测,输出检测目标的位置和类别信息。YOLOv5网络有s、m、l、x四种版本结构,其中,YOLOv5s模型是YOLOv5系列中深度最小、特征图宽度最小的网络模型,对部署硬件设备的要求较低。
在深度神经网络模型中,模型参数越多虽然其表达能力也越强,但也同时带来了信息过载问题,为进一步提升模型的精度,通过引入注意力机制使得网络更加关注感兴趣区域,忽略目标以外的复杂背景干扰信息。注意力机制起源于自然语言处理领域,其本质与人类观察事物的机制类似,能够使得模型在提取特征时更加具有针对性。注意力机制是通过掩码实现,不同位置具有不同的注意权重,在训练过程中模型将学习每张图片中的关键区域,并通过权重将关键特征标识出来,从而过滤掉无用信息。其中,CBAM[4]模(Convolutional Block Attention Module)是一种轻量级的、即插即用的注意力模块。CBAM模块结构主要包含了通道注意力(Channel Attention Module,CAM)模块和空间注意力(Spacial Attention Module,SAM)模块两个独立的子模块,能够在通道和空间两个维度上生成注意力图。增加该模块不会产生过多的参数,可在各类网络中进行使用,且能够提高模型对小目标的检测能力[5]以及提升模型的泛化能力。
因此,本文在YOLOv5s模型基础上通过增加CBAM模块实现优化,改进后的模型结构如图1所示。
图1 改进YOLOv5s模型网络结构
通过在YOLOv5s模型的Backbone部分的C3后面添加CBAM,以此提升特征图中的目标在通道和空间上的注意力。由于遥感图像具有数据量大、小目标多且含有复杂的背景信息的特点,通过增加通道和空间注意力模块,能够捕捉和检测目标强相关的关键特征,弱化其他不重要的无关信息,从而实现模型精度的提升。
2 实验与分析
2.1 国产环境搭建
模型训练环境基于国产飞腾2 0 0 0+服务器进行搭建,适配国产麒麟操作系统、P y t hon开发环境、CANN5.0.3、开源Pytorch1.8.1计算框架,通过国产多核处理器完成轻量化模型训练和验证,模型训练环境中的CANN主要用于模型转换。
模型推理运行环境基于国产华为Atlas200dk智能终端设备搭建,适配AI芯片驱动、CANN5.0.3,训练完成的模型最终在Atlas200dk中进行部署和推理测试,模型推理运行环境中的CANN主要提供了模型推理运行加速库。
2.2 实验数据
本文数据集选用的是开源RSOD遥感图像数据集,以其中的飞机目标作为检测对象。通过旋转、添加噪声、对比度变换、缩放等操作对数据集进行扩增,最终得到共2 230张图像,并按照8∶1∶1将数据集切分为训练集、验证集和测试集。
2.3 模型评价指标
本文中的目标检测模型采用平均精度(Average Precision,AP)、模型大小(MB)、每秒检测帧数(Frames Per Second,FPS)作为评价指标。其中,AP为IoU阈值为0.5时的值。
2.4 模型训练与转换
根据国产平台的设备性能,模型训练配置批处理大小Batch Size为16,训练周期Epoch为200,初始学习率为0.01,采用SGD随机下降梯度法训练模型,输入尺寸大小为640×640。
Atlas200dk支持的部署模型格式为om模型,基于Pytorch框架训练好的模型格式为pt格式,将其部署到Atlas200dk智能终端上,需要进行模型格式转换。具体实现步骤如下。
①首先将训练好的pt格式模型转换为onnx中间表示格式,onnx是一种开放式的文件格式,能够使得不同类型的模型在各类主流框架间实现互转。
②采用CANN中的模型转换工具ATC(Ascend Tensor Compiler,昇腾张量编译器)将onnx中间格式模型转换为昇腾AI处理器支持的om格式离线模型。ATC工具支持将onnx、pb、caffe等格式模型转换为om模型,在进行模型转换时,会在权重数据、内存使用、算子调度等方面对原始模型进行优化,从而使得模型能够在昇腾AI处理器上实现更高的性能。
③基于CANN中的模型推理接口开发模型推理程序,将om模型和推理运行程序部署在Atlas200dk中执行测试。
2.5 实验结果与分析
本文采用模型的训练结果如表1所示,本文的模型AP达到了96.9%,转换前模型的大小为17 MB,由于ATC工具在模型转换过程中会对部分算子进行融合处理,通过ATC转换工具转换后的om模型大小缩减到了15.33 MB。将om模型在Atlas200dk终端设备中进行部署测试,其检测效率达到了48.5 FPS,能够满足实时性检测要求。
表1 不同模型指标对比情况
为了验证本文采用模型的性能,将采用本文模型与改进前的YOLOv5s-baseline、兼顾精度和体积的NanoDet轻量化模型的性能进行了对比。与YOLOv5s-baseline相比,本文采用模型的精度提升了1.2%,转换前的YOLOv5s-baseline模型大小与本文采用模型相差较大,转换后的模型仅比本文采用模型减少了0.53 MB,由于增加了3个CBAM模块,本文采用模型的推理性能略差于YOLOv5s-baseline。本文采用模型与轻量级模型NanoDet进行相比,虽然检测速率远不及NanoDet,但检测精度比NanoDet模型提高了6.8%,NanoDet在小目标以及重叠目标的检测上效果不及本文采用模型,存在较多漏检情况。
为充分说明本文采用模型的优越性,挑选了具有不同背景、含有小目标样本以及包含重叠目标的测试结果图片。该模型基本能够准确地标注出遥感图像中所有的飞机目标,针对部分小目标以及重叠目标也能够实现准确标注。
3 结束语
本文中首先基于国产飞腾2000+平台和Atlas200dk智能终端构建了训练模型并部署运行环境,在充分考虑国产平台算力和AI芯片算子支持等因素基础上,针对遥感图像目标检测提出了一种基于改进YOLOv5s轻量化深度学习网络的目标检测方法,并在智能终端设备中验证了模型的检测性能。实验表明,本文提出的方法在遥感图像飞机目标检测应用中,AP值达到了96.9%,在Atlas200dk终端设备中部署的模型仅为15.33 MB,其检测效率达到了48.5FPS,与改进前的模型相比,虽然模型大小有少部分增加,但提高了模型的检测精度,且在资源受限的终端设备中也能够具备较高的检测效率,虽然牺牲了检测效率,但仍然能够满足端侧部署的实时性检测要求。本研究成果可推广至红外、雷达等图像目标检测应用场景。■