APP下载

基于高分三号卫星的实时船舶检测算法

2021-08-03凌伟程刘亚波王晓蓓

科学技术与工程 2021年19期
关键词:杂波像素点分辨率

肖 枚, 凌伟程, 刘亚波*,刘 霖, 王晓蓓, 刘 翔

(1.中国科学院空天信息创新研究院,北京 100094;2.中国科学院大学电子电气与通信工程学院,北京 100049)

中国拥有超过18 000 km2的海岸线和超300万km2的管辖海域,海洋资源极其丰富。船舶作为开发和利用海洋的主要工具,对其进行实时监测监视至关重要。传统的海洋目标监测监视手段,如船舶巡航和飞机航拍等,监测监视范围有限,成本高,易受海况、气候等的影响,无法有效地大面积应用。而星载合成孔径雷达(synthetic aperture radar, SAR)可以全天时全天候地对大范围区域开展高分辨观测。因此相比于传统手段,其在海洋态势感知、渔业管理、执法维权等方面具有更重要的意义。

目前,星载SAR船只检测主要基于地面处理系统,如加拿大海洋监测监视工作站(Ocean-monitoring Workstation, OMW)[1],美国阿拉斯加SAR演示验证系统(Alaska SAR Demonstration System,AKDEMO)[2-3]和意大利e-GEOS公司SEnSE SAR海洋监视软件平台等。然而基于地面处理的方法使得传输链路过长,无法适应面向用户直接应用的信息服务要求,更无法满足卫星组网、星上实时任务规划和星间协同引导的发展需求,因此有必要进行星上实时处理的研究。与大气内部环境不同,太空环境更为恶劣,对于处理系统的硬件要求更高,综合考虑高性能和空间环境适应性的需求,目前较常采用的星上处理技术架构为异构架构,具体为现场可编程门阵列+高级精简指令集机器(field programmable gate array+advanced RISC machine, FPGA+ARM),或FPGA+DSP(digital signal processor)的组合方式。这种异构技术得益于当前FPGA高性能、高集成度的优势,处理性能得到大幅提升。使用ARM或者DSP等通用处理器进行任务资源调度,提高了系统可重构性和灵活性,从而使整个系统体积、重量和功耗得到进一步优化。根据公开报告,美国NASA下属JPL(Jet Propulsion Laboratory)于2005年搭建了一套基于FPGA的高性能、容错SAR星上实时处理系统;美国SEAKR公司2016年研制基于Virtex-7可重配置计算技术的星载SAR宇航级信号处理平台。以上SAR星上实时处理系统主要完成SAR成像处理,并不包括目标检测。

SAR船舶目标检测较常使用的主要有两类方法。一类是基于恒虚警率(constant false alarm rate, CFAR)[4-7],如单元平均CFAR(cell averaging CFAR, CA-CFAR)[8]、有序统计CFAR(order statistics CFAR, OS-CFAR)[8-9]、双参数CFAR[10]等。CFAR类算法复杂度低、应用范围广泛但算法精度较低。另一类是基于机器学习[11-14]的方法,如区域卷积神经网络(region convolutional neural network, R-CNN)[15]、支撑向量机(support vector machine, SVM)[16]等。该类方法精度较高但需要一定量人工标记数据进行模型训练。目前实时检测主要基于以下三种处理器件:DSP、FPGA和GPU。DSP编程开发难度较低但处理能力相对较弱,只能用于数据吞吐量较小的应用场景,并不适用于星载SAR数据实时处理;GPU计算能力强,但相应的运算功耗大,抗辐照性弱,也不适用于星上环境。FPGA功耗低、并行处理以及内部丰富存储资源的集成的优点,适用于星上SAR实时处理系统。据此,综合考虑船舶检测算法实时开发的可行性和时效性,基于FPGA处理架构,设计一套用于星载SAR实时处理系统的星载SAR船舶目标检测算法。首先对CFAR类检测算法进行考察分析,结合典型星载SAR对海观测参数指标,最终确定对数正态的CA-CFAR算法。进一步,基于FPGA硬件平台对所提算法进行设计优化,最终形成用于实时处理系统的SAR船舶目标检测算法。实验阶段,使用来自高分三号的59幅SAR图像数据对所设计算法在实时处理系统的性能进行详尽的验证。

1 CFAR类检测算法分析

CFAR算法主要是基于滑窗结构,在给定测试数据区间内顺序滑动窗口。在每次测试过程中,利用窗内训练像素点自适应估计最优阈值,当测试像素点大于该阈值时,则判定为目标点,否则认为是背景噪声点。CFAR类检测算法主要有两个要素,虚警率和杂波背景统计建模,前者与具体CFAR算法无关,为人为设置期望值。后者涉及杂波样本选取、杂波模型选取和模型参数估计。杂波样本选取方法大致包含CA-CFAR、最大选择CFAR(greatest of CFAR, GO-CFAR)、最小选择CFAR(smallest of CFAR, SO-CFAR)、OS-CFAR等。CA-CFAR适用于单目标和均匀杂波背景;SO-CFAR和OS-CFAR适用于多目标但在杂波边缘出现虚警;GO-CFAR抗边缘杂波性能强但会边缘会出现漏检;船舶检测区域为远海区域或者经过海陆分割后的海面区域,一般不会出现待检单元位于或靠近不同反射率区域边界处时所带来的杂波边缘效应。同时,星载SAR测绘范围广,尤其对海观测过程中极少会出现多个船舶目标位于一个处理窗口的情况,且滑窗检测过程中一般设立保护单元避免多目标干扰。并且GO-CFAR、SO-CFAR和OS-CFAR由于检测原理,阈值计算过程中需要比较或者排序,会增加算法存储空间。因此,考虑对海观测,船舶检测实际情况与星上系统资源空间,选用CA-CFAR作为杂波样本选取方法。考虑应用场景为海面船舶目标,为了与实际环境更为贴近以提高检测性能,对海杂波分布加以分析。

目前常用的对海杂波分布主要有:K分布、对数正态分布和韦布尔分布。根据Nathanson等[17]对过去几十年间海量的海杂波实测数据统计建模拟合的结果,频率覆盖0.5~30 GHz,擦地角0.1°~90°,海况(以风速表示)等级为2~6级,如表1所示,给出不同频率、入射角和海况下的海杂波的最优统计分布模型。结合目前星载SAR系统对海观测典型参数,即载荷一般为C波段,观测入射角一般低于45°,因此结合表1,优先考虑对数正态分布和韦布尔分布。表2给出对数正态分布和韦布尔分布统计模型和相关参数估计结果。通过高分三号数据实际测试统计,测试过程中确保处理窗口、虚警率等参数都相同。图1所示为测试中的一组星载SAR图像数据对应的两种分布检测结果。其中红色标记区域为算法检测出的船舶目标,黄色标记框为人工解译原图中所有船舶目标,因此剩下未标记的检测出的红色框为虚假目标。由此看出,韦布尔分布同对数正态分布一样,能在图像相同位置检测出目标,但韦布尔分布会检测出更多虚警,这会大大加重分类识别处理的计算负担。更进一步,测试SAR图像数据中最大数据量为2 G左右,最小数据量为100 M左右,但两种分布检测耗费时间差一般在 10 s 以内且图像数据量越小时间差越小,可忽略。因此,从时间消耗和检测结果综合考虑选择对数正态分布。综上,选取基于对数正态的CA-CFAR作为船舶检测算法。

图1 数据1原图与测试结果图

表1 不同频率、不同入射角和不同海况下杂波幅度的最佳分布

表2 两种分布统计模型和相关参数估计结果

基于上述分析,SAR船舶检测算法具体描述如下:首先对图像做海陆分割等预处理,如基于主动轮廓模型[18]或Ostu[19]分割;然后利用基于对数正态分布的CA-CFAR对图像进行粗检测,其中涉及CFAR参数的设置和对数正态分布参数计算,每个滑动窗口检测阈值计算获取目标像素点和通过腐蚀膨胀消除孤立的像素点;最后通过连通域检测,得到目标区域的等几何参数,利用长宽比、区域面积,长度等特征进行虚假目标剔除,输出检测结果。具体流程如图2所示。

图2 船舶检测流程图

2 实时船舶检测算法设计

基于上述对船舶检测算法描述,整个船舶目标检测过程实时实现的主要模块包括:对数正态分布参数计算;DDR数据缓存与分块读取;滑窗检测;大模板腐蚀与大模板膨胀;连通域检测标记;标记结果筛选剔除。考虑到实时实现的可行性与时效性,对船舶检测算法加以优化,主要体现在以下几点。

2.1 降分辨率

星载SAR数据量大,并且星载SAR对海检测一般关注尺寸大于100 m的船只,在高分辨SAR图像中船只呈现出分布式特征,一般占据几十至数百个像素点。CFAR检测算法主要是船舶目标的后向散射一般明显强于海洋杂波背景,反映到图像中即为船舶目标的像素点灰度值明显高于海洋杂波背景。从理论上来讲,数百个像素点对于检测而言有足够的冗余,因此可以通过对距离向和方位向进行降分辨处理,在保证检测性能同时提高检测效率。

利用高分三号卫星图像数据,对多幅图像开展试验。图3、图4给出两景图像不同分辨率下的检测结果。表3、表4给出两景星载SAR数据不同分辨率下同一计算机平台仿真运行时间。图3、图4原始数据距离向×方位向像素点数分别为18 268×21 112和16 766×21 953,分辨率分别为3 m和 5 m。原始图像检测结果经人工判别为场景中所有真目标。从检测结果可看出同一景星载图像,原图检测和降低分辨率检测对应位置都能检测到目标。降低分辨率后可能会引入虚假目标,因为该过程中船舶占据的像素越来越少,极有可能与高强度海洋杂波一起被检测为目标,形成虚假目标,如图4(a)所示人工判别的非船目标。因此,从检测率来说,降低分辨率不会影响检测概率但检测速率会提高。统计几十景星载图像数据,结合实测数据分析,一般检测过程中原始图像分辨率可下降一半。因此,为提高检测速率,可在数据读入后检测之前,实时检测算法方案中设计2倍抽取模块。

图3 数据2不同分辨率测试结果

图4 数据3不同分辨率测试结果

表3 数据2不同分辨率仿真运行时间结果

表4 数据3不同分辨率仿真运行时间结果

2.2 存储优化

检测算法输入为一景大小M×N数据类型uint16的单极化SAR图像,所需存储空间一般为几百MB,需存储在DDR中。根据算法原理需对原始数据进行对数变换,图像数据类型转为double。检测过程中滑窗检测、腐蚀膨胀、连通域检测等操作都需要对中间数据进行存储且多次进行读写操作。如处理窗口参数为:背景窗大小(bgh×bgw)、保护窗大小(proh×prow)和目标窗口大小(targ×tarh)。滑窗检测过程中需要开辟大小为bgh×bgw-proh×prow的空间存储参考单元数据,并且在每次滑窗过程中需要对该区域重新进行读写,同时需要开辟大小Nr×Na的区域用来存储检测后的逻辑值。该过程一般需要存储数据量为几个MB,一般 FPGA 自身所带的RAM足够存储,且其读写速率优于DDR,因此,一般中间数据存储直接在RAM里。同时考虑到FPGA并行处理的优势,为提高检测速率,采用分块处理,分块处理过程中,分块区域应该有重叠,确保处在边缘的船舶目标不会被分割,尤其是图像分辨率高的情况。具体分块原理如图5所示。其中灰色填充区域为SAR图像数据区域,红色实线与黄色实线代表SAR图像数据的每一个处理分块(大小为NB×NB,可设置为1 024×1 024),红色虚线与黄色虚线代表从DDR中读取SAR图像数据的每一个读取分块(大小为N×N,N=NB+bgh-tarh,其中bgh和tarh分别表示正方形CFAR处理窗口的背景窗口高度和检测窗口高度),SAR图像数据区域外,无论在背景窗还是检测窗内,均不予考虑,相邻两块之间重叠NB/4。

图5 分块原理示意图

2.3 算法优化

理论上,CFAR检测过程中膨胀腐蚀主要是为了去除很小面积的一些孤立的像素点(可能是海面检测出占据很少像素点的高强度杂波),不会去除面积大、高亮的船舶目标不会影响CFAR检测结果。在腐蚀膨胀过程中,仿真常用的有椭圆形模板和钻石型模板(菱形模板),在模板尺寸为3和5时两者完全相同;尺寸超过5时,钻石型模板相比椭圆形模板更具规律性,例如在模板尺寸为7时,椭圆模板如图6(a)所示,钻石型模板如图6(b)所示。星载SAR图像数据测试,两种模板检测结果相同,如图7所示。在腐蚀膨胀过程中,模板大小会随着图像和检测参数而改变,因此FPGA编程开发过程中模板不再是给出固定大小的0、1矩阵,相比于椭圆形模板更具规律的钻石型模板更易实现。

图6 尺寸为7的两种模板示意图

图7 数据4两种模板检测结果

基于以上优化分析,实时船舶检测算法方案示意图如图8所示。

图8 实时船舶检测算法方案示意图

3 实验验证与分析

实验过程中,高性能异构实时处理平台主要由主控及图像处理单元、信号处理单元组成,主控与图像处理单元峰值计算能力为5TFLOPS,快速数据缓存容量为160 GB。信号处理单元板卡内部有128 GB的DDR4高速存储芯片,每个Ultrascale+FPGA芯片配置64 GB的内部存储,用于缓存处理数据,5 Gbit的NOR Flash芯片,用于存储FPGA程序。考虑整个系统性能,对高性能异构实时处理系统资源合理有效分配是至关重要的。主控与图像处理单元接收SAR原始数据,并进行BAQ解码等预处理,将处理后的数据传到信号处理单元进行成像得到SAR图像。SAR图像传输到主控及图像处理板单元进行目标检测、识别和确认,获取高价值目标信息。最后处理结果以信息简报、切片图像和子带图像三种方式输出到数据传输分系统。具体资源分配如图9所示。

图9 平台资源分配示意图

实验首先对船舶检测算法在计算机仿真平台与硬件处理平台检测结果进行对比分析。图10、图11给出2景星载SAR图像数据的缩略图、计算机仿真检测结果与FPGA实时测试检测结果,检测结果以红色框标记。结果表明,船舶检测算法在硬件平台与计算机仿真检测结果基本一致。验证了算法在硬件平台的可实现性。其次,采用分辨率为3、5、8、10、25 m的GF3图像数据在硬件平台上实时验证,共使用59幅SAR图像,具体测试结果如表5所示。总检测率和总虚警率定义为

表5 GF3图像数据FPGA检测性能测试结果

图10 数据5仿真与FPGA测试结果

图11 数据6仿真与FPGA测试结果

Pd=Ndt/Ngt×100%

(1)

Pfa=Nfa/(Nfa+Ndt)×100%

(2)

式中:Ngt表示相同分辨率的测试的所有星载SAR图像场景中真实舰船目标个数;Ndt表示正确检测到的舰船目标个数;Nfa表示检测到的虚警个数。测试统计结果表明,典型分辨率下,船舶检测算法实时实现检测率在95%以上,虚警率在28%以下。最后,在计算机平台上使用仿真软件处理测试,平台处理器为AMD Ryzen7 4800H with Radeon Graphics,主频为2.90 GHz,内存为16 GB,系统为 Windows 10 教育版64位操作系统。经多次测试,不同尺寸、64位宽的SAR原始数据检测消耗时间如表6所示。FPGA测试过程中,检测输入长度(方位向)占据32 768个像素点,宽度(距离向)占据16 384个像素点的SAR原始复数图像,数据流为I和Q两路数据,每一路数据类型为单精度浮点数,共64 bit位宽,即输入星载SAR数据大小为4 GB。对此,数据累计和处理时间在12 s左右,实时率为1,即数据传输完成检测即完成。相比于仿真软件测试,硬件平台处理速度可提高10倍,满足时效性需求。

表6 不同尺寸64位宽的SAR原始数据检测消耗时间

4 结论

结合星上SAR实时处理系统,综合考虑船舶检测算法实时开发的可行性和时效性,基于FPGA处理架构,设计了一套用于星上SAR实时系统的星载SAR船舶目标检测算法。首先对现存的检测算法进行考察分析,结合星载SAR实时处理的性能指标,最终确定基于对数正态的CA-CFAR算法。进一步,基于FPGA硬件平台上对所提算法进行设计优化,最终形成一套可用于用于星上SAR实时系统的星载SAR船舶目标检测算法。实验阶段,使用来自高分三号的59幅SAR图像数据对所设计算法在实时处理系统上的性能进行了详尽的验证。测试结果表明,算法能满足平台可行性和时效性需求。

猜你喜欢

杂波像素点分辨率
基于生成对抗网络的无监督图像超分辨率算法
STAR2000型空管一次雷达杂波抑制浅析
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
一种改进的基于背景自适应的杂波图算法
一种自适应双参数杂波图检测方法
某雷达杂波数据分析及杂波图技术研究
基于像素点筛选的舰船湍流尾迹检测算法
原生VS最大那些混淆视听的“分辨率”概念
基于canvas的前端数据加密