一种基于深度学习的光学遥感影像在轨目标检测方法
2022-11-02璩泽旭方火能肖化超张佳鹏
璩泽旭,方火能,肖化超,张佳鹏,袁 玉,张 超
西安空间无线电技术研究所,西安 710000
0 引 言
随着现代航天遥感技术的飞速发展,卫星对地观测能力大幅提升,分辨率越来越高,随之产生大量的图像数据.由于卫星在轨获取的图像数据当中存在大量的无效数据,如果将所有的图像数据全部回传地面进行处理,必然占用大量星地链路的宝贵资源,而且时效性也会大打折扣.在轨目标实时检测技术可以对星上数据进行实时处理,提取用户感兴趣的目标图像,筛除无效数据,提高从数据到信息的时效性.同时基于光学遥感影像的在轨目标检测技术能够及时发现陆地和海面的显著性目标,相比于电子侦察手段具有抗干扰能力强、目标切片可译性高、场景适应广等优点.目前该技术已成为遥感领域研究的一大热点.
目标检测是遥感信息处理和模式识别的重要研究方向,该方向的研究主要分为传统检测方法与基于深度学习的检测方法.传统的检测方法分为3部分:区域选择(滑窗)、特征提取(SIFT、HOG等)和分类器(SVM、Adaboost等).YANG等[1]提出一种基于显著性分割与舰船结构的LBP算子结合的检测算法.孙皓等[2]使用HOG提取舰船的边缘特征并使用SVM分类器进行舰船检测.李晓博等[3]针对高轨低分辨率图像舰船检测提出了相应的方法.基于手工设计特征的传统检测方法依赖目标相关的先验信息,往往只针对某一特定场景,难以泛化至通用遥感目标检测任务.
自深度学习出现以后,目标检测取得了巨大的突破.通过卷积神经网络对遥感影像进行训练,提取出目标特征,检测速度快、精度高,已经成为目标检测领域的主流方法[4].目前流行的方法按照流程可划分为2类:一类是基于区域的目标检测算法,如R-CNN,SPP-NET,Fast R-CNN,Faster R-CNN等.这些算法为2阶段检测方法,该方法首先生成目标候选框,之后对候选框分类与回归得到精确目标框.另一类是基于回归的目标检测算法,以YOLO系列与SSD系列为代表[5].这些算法为一阶段检测方法,是由图像直接产生目标位置与类别概率,略过了生成候选区域这一步骤,可以极大提高检测速度.2种方法各有优势,两阶段算法精度更高,而一阶段算法速度更快.一阶段算法更容易满足遥感卫星对检测实时性的需求,因此本文选择一阶段算法作为研究对象.
一阶段算法直接产生物体的类别概率和位置坐标,单次检测就能得到最终的检测结果.文献[6]提出的YOLOv1,核心思想是将目标检测视为一个回归任务,检测速度达到45FPS,比两阶段算法快了一个量级.但缺点是难以检测密集目标.文献[7]提出的SSD算法在继承YOLO的核心思想基础上整合不同深度的特征层上预测不同尺度目标,并引入Faster R-CNN的锚点概念等,检测速度和YOLO相当,而且精度可以匹敌Faster R-CNN.但是在小目标检测上未能得到明显改善.文献[8]对YOLO进行全面升级,推出了YOLOv2,通过对所有卷积层引入批量标准化、采用多尺度训练、设计Darknet-19作为骨架网络等改进措施,最终在速度和精度上均得到进一步提升.但是与顶尖的两阶段算法相比,检测精度仍有差距.文献[9]再次对算法进行改进,如采用多个逻辑回归分类器取代Softmax分类器、引入特征金字塔网络架构、设计了Darknet-53作为新网络骨架等,在精度上与Rednet-101、Resnet-152不相上下,且速度更快.但是星载设备处理资源有限,YOLOv3网络模型面临无法直接在轨部署的难题,需要对原始模型进行裁剪和优化.文献[10]提出了一种基于改进YOLOv3的舰船目标检测算法,在原网络结构基础上额外从主干网络引出一个输出尺度,并与上一个输出尺度进行特性拼接,平均检测精度达到83.98%,但检测速度只有19FPS.文献[11]在YOLOv3快速检测神经网络中加入改进的DWFPN特征融合检测部件,达到89.07%的平均检测精度,获得了较高的目标检测率,但实验环境为GPU GTX1060Ti,平均检测速度只有16FPS,与在轨实时性应用存在一定的差距.文献[12]提出基于网络轻量化处理及并行流水设计方法实现轻量化部署,目标检测检出率在85%以上,检测速率可达200FPS,但对于排列密集目标容易出现漏检.
针对上述问题,本文提出了一种基于深度学习的光学遥感影像在轨目标检测方法,主要贡献如下:
1)设计FPGA+DSP为架构的星上智能处理平台,支持网络参数在轨上注,实现了检测模型在轨优化.
2)在YOLOv3特征提取网络(DarkNet-53)的基础上引入深度分离卷积(depthwise separable convolution),有效压缩了模型参数与推理计算量;并设计局部再检测模块,提高了密集目标的检测精度.
1 星上硬件处理方案
从卫星应用需求来看,对于高达几十Gbps的原始遥感影像数据要求具有实时处理的能力,传统的遥感数据处理流程多为星上存储→星地数传→地面处理.有限的数传带宽与效率成为遥感观测卫星发展的制约因素.遥感数据在轨实时处理可有效提取热点目标图像,提高卫星系统利用效率.但目前主流的深度学习算法计算量大和访存密集的特性与星上低功耗、有限资源的现状之间存在较大的部署障碍.如何将深度学习算法部署至星载环境成为了一个不小的挑战.在硬件平台选择上,本文从芯片缓存、算力、抗辐照设计、功耗等层面对比分析了主流硬件芯片CPU、GPU、FPGA、ASIC的优缺点.下表为几种处理器的性能对比.
表1 几种处理器的性能对比Tab.1 Performance comparison of several processors
深度学习需要大量的浮点运算[13],但是CPU包含的浮点计算单元比较少,因此CPU不适合深度学习场景.GPU具有大量的浮点计算单元,并行计算能力强,可以提供较高算力,并且有众多开发框架和开源库支持,如TensorFlow,PyTorch等.在神经网络算法训练和推理过程中都能起到有效加速[14].同时,NVIDIA公司推出的基于高并行运算架构CUDA的GPU,拥有更强的解决复杂计算问题的能力.但缺点是功耗大,单片可达50W,对于星上真空环境下主要通过热传导和辐射方式进行散热的情况,采用GPU会带来更大的工程化应用难题.而且可获得的高性能GPU芯片不具备抗辐照等级,受空间辐射环境影响,易引发总剂量和单粒子效应,进而影响卫星的可靠性.FPGA具有大量的逻辑、DSP和缓存资源,具备快速并行处理能力,同时功耗低、可编程、可重构,有抗辐照等级.ASIC同样具备大量的运算资源,是不可配置的高度定制化专用计算芯片,不同于GPU和FPGA的灵活性,一旦制造将不能更改.
FPGA高并行、可编程的特性使其可适应不断变化的遥感任务,非常适合在星载环境下作为深度学习的计算芯片.因此本文选择FPGA作为深度学习的载体,设计了基于FPGA的硬件计算平台用于实现在轨目标检测功能.每个计算单元采用VPX-6U标准化设计,配置2片高性能FPGA并行处理以提升检测速度,同时采用多核DSP实现目标定位的浮点运算功能,总算力超过5.5TOPS.每片FPGA各配备一片高可靠或非型闪存用于存放网络模型参数,可以反复擦写,掉电数据不丢失.同时每片FPGA外设DDR缓存,单元实现超80 Gbps的读写速率.多核DSP与每片FPGA之间具备双通道双向RapidIO接口,单通道线速率可达5Gbps,采用RapidIO v2.0通信协议.原理如图1所示.
图1 星上智能处理平台的原理框图Fig.1 Block diagram of the intelligent processing platform on board
2 星上软件设计
2.1 软件总体架构
星上目标检测架构采用星地协同的遥感数据智能处理方案,首先在地面对已获取的遥感目标样本库进行深度网络模型参数训练,然后根据测试结果进行深度学习参数优化,并将生成的目标检测模型上注到星上智能处理平台的存储器中.最后利用训练好的目标检测网络,输入待检测遥感影像,得到目标的位置、种类,以及切片信息.本方案的总体框架如图2所示,支持网络参数在轨可上注功能,保障在轨功能性能不断优化演进.
星上典型目标信息生成模式下,星上智能处理平台接收载荷数据,通过前级路由单元进行辐射校正,以提升图像的均匀性,再将辐射校正后的数据送到FPGA计算单元进行实时目标检测处理,并将检测结果(目标切片、行列号信息)发送给多核DSP进行行列号-经纬度解算和目标识别处理,最后将处理结果送路由单元生成目标情报信息进行对地传输或广播分发.采用可编程逻辑设计语言VHDL实现了YOLOv3目标检测算法.采用全并行流水、模块化、参数化、硬件资源复用等设计思想,有效提升了算法实现的效率和可移植性.FPGA框架设计及数据流向如图3所示.
图2 基于遥感影像的目标检测总体方案Fig.2 The overall scheme of target detection based on remote sensing image
图3 FPGA框架设计及数据流向Fig.3 Target detection and recognition framework design
2.2 性能优化
YOLOv3是一种多目标检测算法[15],主要针对自然图像设计.遥感影像不同于自然图像中的目标,具有目标尺寸小、排列密集的特点[16],直接采用YOLOv3算法进行目标检测,检测精度(average precision,AP)较低.同时受限于星上处理资源,难以实现实时目标检测.为此,在2个方面对YOLOv3算法进行性能优化:1)基于深度分离卷积的模型轻量化,将普通的卷积操作分为纵向卷积(Depthwise卷积)和1×1卷积(Pointwise卷积)2部分,极大地减少了模型的计算量,提升了模型的实时性;2)局部再检测设计,结合通道注意力与空间注意力进行目标的细粒度识别,解决判别性特征难以定位与提取的问题.
2.2.1 基于深度分离卷积的模型轻量化
在YOLOv3算法中,将一张图片划分成S×S个网格,如果待检测目标物体存在于某网格中,那么此网格就负责检测该目标.YOLOv3的主干网络是Darknet-53,因为包含53个卷积层,所以称为Darknet-53[17],相比于YOLOv2的Darknet-19,网络增加了残差单元,并且卷积层数从19增加到了53,因而对图片的特征提取能力更强.但是深度学习网络层数的增多会带来网络的参数量与计算量大幅增加,从而造成模型的运行速度大大降低,进而影响检测结果的实时性.因此,为了实现更快的检测速度,本文在深层网络中将普通卷积替换为深度分离卷积,检测框架更加轻量.深度分离卷积比普通卷积的训练参数少,而且区域和通道相互独立,流程上采用先区域后通道的方式.深度分离卷积的过程如图4所示.
图4 深度分离卷积过程Fig.4 Depth separation convolution process
深度分离卷积将普通的卷积操作分为了纵向卷积和1×1卷积2部分,又称为Depthwise卷积和Pointwise卷积,如图5所示[18].深度分离卷积减少计算量的原理如下:假设DK×DK为卷积核大小,DF×DF为输入数据的大小,M为输入通道数,N为输出通道数,则一组普通卷积的计算量如式(1)所示,深度分离卷积的计算量如式(2)所示.
普通卷积计算量=
DK×DK×M×N×DF×DF
(1)
深度分离卷积计算量=
DK×DK×M×DF×DF+N×M×DF×DF
(2)
由此可得知,在深层网络中用深度分离卷积对普通卷积进行适当地替换,可以极大地减小计算量,使得模型更加轻量化,实时性更强.本文优化的YOLOv3算法模型结构如图6所示.
图5 普通卷积、Depthwise卷积与Pointwise卷积Fig.5 Ordinary convolution,Depthwise convolution and Pointwise convolution
图6 优化的YOLOv3算法模型结构Fig.6 Optimized model structure of YOLOv3 algorithm
2.2.2 局部再检测机制
通过对获取的遥感影像进行分析和测试,在某些飞机、车辆等目标排列比较密集的图像中,平均检测精度(mean average precision,mAP)相对较低.YOLO系列算法具有简单灵活、检测速度快等优势[19].但受限于末端检测结构,在多类别复杂情形下的目标定位方面仍有较大改进空间[20].本文针对该问题设计了端到端的基于YOLOv3的多目标检测算法.针对遥感影像数据中排列密集目标的mAP较低问题,设计了局部再检测模块,并结合通道与空间注意力进行目标的细粒度检测,解决密集目标难以定位与提取的问题.具体的算法流程图见下图.
图7 检测与细粒度识别算法流程图Fig.7 Flow chart of detection and fine-grained recognition algorithm
为了提高遥感影像中排列密集目标的检测精度,本文设计了局部再检测模块,在检测过程中加入局部再检测子网络.首先对带有检测框信息的特征图进行上采样,将图像放大,使得排列密集的目标相对原始图像变得更大更分散.然后对目标再次进行特征提取,从而实现密集目标的局部再检测功能.再通过非极大值抑制(non-maximum suppression,NMS)算法和坐标回归对检测框进行优化,最后输出检测结果.该子网络的结构图如图8所示.
图8 局部再检测子网络结构图Fig.8 Local re-detection sub-network structure diagram
2.2.3 网络参数在轨上注优化
根据不同的任务需求,通过上注相应的网络参数信息,可以实现在轨处理算法性能不断优化.
上注数据经地面控制系统处理后,通过可靠的传输途径发送给在轨星务系统,星务系统根据约定标识识别为对应设备的上注数据后,将该数据传递给星上智能处理设备.星上智能处理设备对接收到的上注网络参数的有效性进行判断,如果有效,就进行处理,否则丢弃.星上智能处理设备接收上注的数据后根据特定的格式将上注数据进行集中式的高速存储,完成存储后根据相应的指令,完成上注数据的配置,进而实现目标检测网络参数的在轨更新.上注原理如图9所示.
图9 网络参数上注原理Fig.9 Network parameters on the principle
3 性能实测
3.1 遥感影像目标样本训练
由于深度学习算法的训练需要依赖大量的样本库数据,目前中国空间技术研究院西安分院以陕西省高分中心的数据为依托,对不同类遥感目标进行了标注与样本图像库建立,目前已标注样本类别:48,样本总数:50000+.前期算法网络参数由现有卫星遥感影像数据进行训练,待卫星在轨后,可根据获取卫星数据制作训练样本,生成新的网络参数,上注到卫星后实现对算法性能不断优化.样本库建立情况如图10所示.
图10 深度学习样本库Fig.10 Deep learning sample library
建立样本库后,对深度学习网络进行训练.在深度学习中,一般要求有充足的样本数量.样本数量越多,训练出来的模型越好,模型的泛化能力越强.
3.2 评价指标
在目标检测算法中,常用的评价指标是准确率Precision、召回率Recall和平均精度mAP[21],用于度量模型预测框类别和位置是否准确[22].评价公式如下:
(3)
式中:TP(true positive)为IoU(intersection over union)>0.5的检测框数量(同一真值框只计算一次),即正确检测出的目标个数;FP(false positive)为IoU≤0.5的检测框数量,即误检的目标个数;FN(false negative)为没有检测到的真值框的数量,即漏检的目标个数.准确率Precision表示正确检测的个数在全部检测结果中的占比;召回率Recall表示正确检测的个数在图像中所有目标中的占比;PR曲线表示Precision-Recall曲线;平均检测精度mAP是从准确率和召回率两个指标进行衡量[23],是评价检测模型准确性的直观评价标准,mAP值越大说明检测效果越好.
3.3 测试结果与分析
针对目标排列比较密集的区域,本文设计了局部再检测机制,并进行了测试验证.针对排列密集的目标图像,利用局部再检测子网络可以明显提高目标的检测精度,测试结果如图11所示.从测试结果可知,未采用局部再检测模块时,检测结果容易受到目标排列方式的影响,进而导致漏检.采用局部再检测模块后可以大大提高密集目标的检测精度.
图11 密集目标未采用局部再检测/采用局部再检测结果图Fig.11 Dense target not adopting local re-detection/adopting re-detection result map
测试数据来自Google Earth、高分1号、高分2号等数据.Google Earth图像转换为单色图像.部分影像的测试结果如图12所示,其中绿框为舰船,蓝框为飞机,红框为车辆,以示区分.
硬件处理时延:
在本文设计的智能处理平台上进行典型目标检测测试,利用Xilinx XDC工具抓取每张图片检测所需时间,信号“Current_state”由状态1跳转状态2表示单张测试图检测结束,时钟频率120 MHz(周期8.33 ns),单张测试图在单片FPGA所需时钟个数为2873662,如图13所示.
图12 目标检测结果(包含舰船、飞机、车辆检测结果)Fig.12 Target detection results (including ship,aircraft and vehicle test results)
图13 检测硬件实测Fig.13 Measured detection and identification hardware
如图14所示为2个检测核所占资源情况,其中关键的LUT、LUTRAM、DSP资源不到30%,由于程序中BRAM都按最大深度设计,优化后可以降到40%,因此单FPGA可以实现4个检测核并行处理.单核实测检测速率为1/(2873662×8.33)×109≈41.78 FPS,对于单块处理单元2片FPGA的检测速率预计可以达到41.7842×4×2=334.24 FPS.
图14 FPGA资源使用情况Fig.14 FPGA resource usage
利用Google Earth、高分1号、高分2号等数据进行测试,通过对不同的典型目标(舰船、飞机、车辆)进行测试,本文算法与Faster R-CNN模型[24]和YOLOv3模型测试结果得到的AP值,画出PR曲线,如图15所示,准确率和mAP的数值如表2所示.
图15 3种算法在典型目标测试集上的PR曲线对比Fig.15 Comparison of PR curves of three algorithms on typical target sets
表2 算法的网络性能测试结果Tab.2 Network performance test results of the algorithm
从表2所示的测试结果可知,相比于Faster R-CNN和YOLOv3 2个模型,本文算法在准确率、召回率和mAP上都有明显的提升.本文算法中最深的5个普通卷积层替换成深度分离卷积可以提高模型的运行速度,同时采用局部再检测机制可以提升模型的检测精度.最终测试的结果mAP值为92.43%,单元检测帧频达到334.24 FPS,满足实时性要求.
4 结 论
本文针对遥感影像采用传统方法目标检测精度较低的问题,提出了一种基于深度学习的光学遥感影像在轨典型目标检测方法.通过研究目标特征,设计了适应卫星环境的高性能智能处理硬件平台,并在该平台上构建了并行化、模块化和参数化的软件架构.在软件层面上,对YOLOv3特征提取网络引入深度分离卷积以压缩模型参数,降低处理计算量,在保持检测精度前提下极大提高了运算速率.在检测阶段加入局部再检测模块以提升算法对密集目标的AP.同时采用网络参数在轨上注更新,实现在轨目标检测算法性能不断优化演进.最后在设计的硬件平台上进行不同目标类型的测试,试验结果表明,相比于Faster R-CNN、YOLOv3算法,本文设计的算法在mAP和实时性上均有明显提升,对复杂背景下排列密集的目标有更好的检测效果.该技术通过了硬件平台的地面测试和验证,下一步将在轨应用.