分享自:

基于FPGA的CNN架构用于甚高分辨率遥感图像在轨处理

期刊:IEEE Journal of Selected Topics in Applied Earth Observations and Remote SensingDOI:10.1109/jstars.2022.3169330

本文属于类型a,即单一原创研究的学术论文。以下是对该研究的学术报告。

这篇题为《fpga-based implementation of a cnn architecture for the on-board processing of very high-resolution remote sensing images》的研究论文发表于《ieee journal of selected topics in applied earth observations and remote sensing》第15卷,2022年,第3740至3750页。论文作者为romén neris、adrián rodríguez、raúl guerra、sebastián lópez和roberto sarmiento,他们均来自西班牙拉斯帕尔马斯大学(university of las palmas de gran canaria)的应用微电子研究所(institute for applied microelectronics,iuma)。该研究是在欧盟“地平线2020”计划资助的“地球观测视频成像演示器”(video imaging demonstrator for earth observation,video)项目框架下开展的。

一、研究背景与目标

近年来,卷积神经网络(convolutional neural networks,cnns)在遥感应用中得到了广泛使用,例如海洋监视、交通管理和道路网络检测等。然而,cnn对计算量、带宽和存储资源的需求极高,而星载硬件设备(如现场可编程门阵列,field-programmable gate array,fpga)的计算能力有限,因此在空间级fpga上实现cnn以进行在轨处理面临巨大挑战。该研究旨在将一种高效的cnn架构部署到空间级fpga上,以便在传感器提供数据后立即对甚高分辨率遥感图像进行在轨目标检测。研究目标具体包括:在video项目约束下提出一套设计方法学;评估多种最先进的cnn架构;提出一种新的效率度量指标;引入一种新的高效cnn架构;并通过高层次综合(high-level synthesis,hls)工具实现优化的硬件部署。

二、研究流程与方法

研究首先分析了video项目的目标应用工作流与系统约束。项目中的传感器提供分辨率为48兆像素(6000×8000像素)的大幅图像,且采用按行波段交织(band-interleaved by line,bil)的编码方式。由于无法将整幅图像一次性存储并输入cnn,研究提出采用滑动窗口(sliding window)策略,将图像划分为独立的小块并利用流水线方式尽早处理。窗口尺寸选定为512×512和256×256像素,并分别采用249和125像素的步长以提供足够的重叠,确保长度达169像素的最长船舶(seawise giant,458.45米)不会被遗漏。传感器视场角为2.5度,卫星轨道高度约500公里,据此计算得到的像元尺寸在垂直方向为3.636米,水平方向为2.727米。

在架构选择阶段,研究评估了五种cnn架构:alexnet、vgg19、resnet18/34/50、mobilenetv1/v2和densenet。为降低可训练参数和计算量,作者对alexnet和mobilenetv1进行了修改,分别得到alexnetlite和mobilenetv1lite。其中alexnetlite移除了原网络末端三个全连接层中的两个,使可训练参数减少了98.32%;mobilenetv1lite将滤波器数量减少为原来的四分之一,并启用浅层选项移除五个阶段,使可训练参数减少了96.15%。论文中表一详细描述了mobilenetv1lite的各层结构。

训练数据方面,研究使用了三个数据集:船舶数据集由masati数据集和hrsc2016数据集的子集组成,共8558幅512×512的rgb图像,标记为“ship”和“no-ship”;飞机数据集由uc merced土地利用数据集和航空图像数据集(aid)组合而成,共2695幅256×256图像,标记为“airplane”和“no-airplane”;混合数据集将船舶与飞机数据集混合,共8235幅图像。所有数据集均按80%训练、10%验证、10%测试的比例随机划分。

在性能评估中,由于数据集不平衡,研究采用f1分数(f1score)而非准确率作为主要指标。同时,作者提出了一种新的效率因子(efficiency factor),定义为f1score除以处理每个窗口所需的浮点运算次数(flops per window,wfs),用于衡量架构在检测性能与计算成本之间的折中。总浮点运算数(tfs)则由wfs乘以每行和每列的窗口数计算得到。

每个架构均使用python和keras实现,并训练25个轮次(epochs)。实验比较了各架构在船舶和飞机数据集上的f1score、可训练参数数量和flops。

三、主要结果

实验结果表明,在船舶数据集上,mobilenet系列架构获得了最高的f1score。其中mobilenetv1lite不仅获得了第三高的f1score,而且是最轻量的架构。在飞机数据集上,mobilenetv1lite同样获得了第三好的结果,同时仍为最轻量架构。根据表四的效率因子结果,mobilenetv1lite在船舶数据集上的效率比mobilenetv2提高了557%,在飞机数据集上提高了3469%。因此mobilenetv1lite被选为最适合fpga实现的架构。论文还估算出,对于512×512输入和249步长,处理整幅图像需要33.37 gflops;对于256×256输入和125步长则需要34.22 gflops,因此512×512窗口在计算量上略有优势。

在带宽优化方面,研究采用迁移学习(transfer learning)方法,先使用混合数据集训练mobilenetv1lite的前7个阶段,然后固定这些权重,仅对第8至第10阶段使用船舶或飞机数据集重新训练。结果显示,船舶数据集的效率因子下降了10.043%,飞机数据集下降了5.342%,但仍远高于其他架构。该方法的优势在于,在轨设备只需上传少量末端层的新权重即可切换检测目标,大幅节省上行链路带宽和重配置时间。

在fpga实现阶段,目标器件为xilinx kintex ultrascale xcku040-2ffva1156e。研究进行了两项主要优化:数据类型转换和批归一化(batch normalization)层优化。数据类型从32位浮点转换为16位定点(ap_fixed<16,6,ap_rnd,ap_wrap>),以减少存储占用和计算成本。批归一化层优化通过将均值、方差等运算提前在高层次keras实现中完成,将原公式化简为仅需一次乘法和一次减法的形式,使该层参数数量减半。表六和图十六展示了两种实现的fpga资源消耗结果:16位定点实现消耗的clb、lut、bram和ff分别为41%、25%、39%和15%,而32位浮点实现则分别为66%、38%、68%和27%。dsp使用率在16位定点实现中更高(31%对13%),说明定点数据类型能更有效地利用dsp资源。两种实现均达到200 mhz的工作频率。

四、结论与意义

研究结论认为,mobilenetv1lite是video项目中最适合在空间级fpga上进行在轨目标检测的cnn架构。该研究提出的效率因子为在资源受限条件下选择cnn架构提供了一种实用的量化方法。迁移学习实验证明了该架构可以通过仅重新训练末端层来适应不同检测任务,显著降低了在轨重配置的带宽需求。16位定点实现相较32位浮点实现大幅降低了fpga资源消耗,证明了定点量化在星载硬件部署中的有效性。

该研究的科学价值在于提出了一套从架构评估、效率度量、迁移学习到硬件优化的完整方法学,为遥感图像在轨处理中的cnn部署提供了可复用的设计流程。应用价值方面,该工作直接服务于欧盟video项目,为甚高分辨率遥感图像的在轨船舶和飞机检测提供了可行的硬件实现方案,有助于减少下行链路数据量并提高响应速度。

五、研究亮点

本研究的亮点包括:第一,提出了一种新的效率因子,综合考虑检测性能与计算成本,为架构选择提供了明确依据。第二,通过修改alexnet和mobilenetv1,分别减少了98.32%和96.15%的可训练参数,显著降低了存储需求。第三,批归一化层的化简方法在不损失精度的情况下将硬件实现中的运算简化为一次乘法和一次减法,并减少了参数存储量。第四,16位定点实现相比32位浮点实现显著降低了fpga资源消耗,且保持200 mhz的工作频率。第五,迁移学习方法使在轨设备只需更新末端层权重即可切换检测目标,大幅节省带宽。

此外,作者指出单次检测器(如yolo)虽然速度快,但由于卫星图像中输入图像巨大、目标空间范围小以及目标旋转不变性等挑战,并不适用于卫星图像中的目标检测,因此滑动窗口加cnn分类的方法更为合适。未来工作方向包括开展消融研究以评估各组件对整体系统的贡献,以及优先实现mobilenetv2架构,并推动从高层次到硬件的自动化实现流程。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com