一种快速合成孔径声纳图像相干斑抑制方法*

2016-08-11 06:19庞晓楠钟何平
舰船电子工程 2016年4期

庞晓楠 钟何平

(1.海军潜艇学院 青岛 266000)(2.海军工程大学海军水声技术研究所 武汉 430033)



一种快速合成孔径声纳图像相干斑抑制方法*

庞晓楠1钟何平2

(1.海军潜艇学院青岛266000)(2.海军工程大学海军水声技术研究所武汉430033)

摘要针对合成孔径声纳图像相干斑抑制效率低的问题,提出了一种GPU异构环境下的合成孔径声纳图像相干斑抑制方法。首先将合成孔径声纳图像上传至GPU存储器,然后根据滤波窗口大小将图像分割为重叠小块后采用多个线程块同时进行Lee滤波处理,最后对处理结果进行拼接获得最终结果并下载到主机内存。对真实合成孔径声纳图像相干斑抑制试验验证了所提方法的可行性和高效性。

关键词合成孔径声纳; 相干斑抑制; Lee滤波; GPU

Class NumberP237

1 引言

合成孔径声纳(Synthetic Aperture Sonar,SAS)是一种新型的高分辨率水下成像声纳,由于其高分辨率特点,被广泛应用于水下小目标搜索、航道测绘、水下战场精细测绘与侦察、海洋湖泊河流地形/地貌测绘等[1~4]。合成孔径声纳图像中存在一种固有的散斑噪声,但是与普通图像处理中的噪声有着本质的区别,它是包括合成孔径雷达在内的所有相干系统固有的噪声[5]。相干斑的存在严重影响合成孔径声纳图像质量,使得SAS图像的自动后续处理变得非常困难。目前关于SAS图像相干斑抑制算法研究比较少,主要是借鉴合成孔径雷达中的相干斑抑制方法。SAS相干斑抑制一方面要保持图像中的细节和纹理,另一方面也要兼顾信号处理速度,尤其是抑制算法较为复杂时。常用的相干斑抑制方法有局部统计自适应方法[6~7]、小波方法[8]和扩散方程方法[9~10]。在统计自适应方法中,Lee滤波算法[5]是一种有效的SAS图像相干斑算法,其缺点是运算量大,尤其是当SAS图像数据量大时,难以实现快速处理。GPU技术[9]的出现,为采用Lee滤波算法进行SAS图像快速相干斑抑制提供了新的手段。

本文借助图形处理器的高速计算特点,提出了一种异构环境下的合成孔径声纳图像相干斑快速抑制方法。首先将待处理的合成孔径声纳图像整块载入图型处理器,然后将整块数据分割为规则小块,块与块之间数据保持一定重叠,重叠大小根据Lee滤波窗口大小确定。然后在主机端调用GPU 核函数,利用多个流处理器同时对分块后的SAS图像块进行Lee滤波,并将计算后的小块滤波结果进行拼接,重组最终处理结果并下载到主机内存。最后通过实际SAS成像结果的相干斑抑制试验验证了所提算法的有效性和高效性。

2 CUDA编程模型

CUDA编程模型中,通常把CPU端称为主机端(Host),把运行CUDA程序的GPU端称为设备端(Device)。计算任务是通过CPU和GPU协同处理来共同完成的,一般逻辑性强和串行计算工作由CPU来处理,GPU则专注于线程间可以高度并行的数据处理工作。一个完整的CUDA程序通常是由CPU执行的串行代码部分和GPU执行的若干个核函数组成。核函数的并行执行是通过CUDA的多处理线程来实现的,CUDA通过thread-block-grid三个层次结构来运行和管理多线程。执行相同任务的一定数量的线程(thread)组织为一维、二维或者三维的线程块(block),一定数量的block又组成一维或者二维的线程网格(grid)。一个核函数中存在两个层次的并行:grid中的block之间的粗粒度并行和block中各个thread之间的细粒度并行。核函数运行时,设备端并行运行的每个thread按照指令的顺序串行执行一次kernel函数,而每一个线程通过自身的索引和其它thread相区分,一个线程块内的线程之间可以互相通信,但线程块之间是不可以进行通信的,它们之间通过同步指令进行通信。CUDA编程模型中的线程层次结构如图1所示。

图1 CUDA编程模型中线程层次结构

3 Lee滤波算法

3.1基本原理

Lee滤波是利用图像局部统计特性进行SAS图像相干斑抑制的典型方法之一,它不需建立精确的统计模型,而是基于完全发育的乘性噪声模型,并假设相干斑噪声是白噪声。该方法选择一定大小的窗口区域作为局部区域来处理,并假定先验均值和方差可以通过计算局域的均值和方差得到。

var(Z)=E[(Z-E(Z))2]

=E[(XV-E(XV))2]

=E[(XV)2]-E2(XV)

=E(X2)E(V2)-E2(X)E2(V)

var(Z)=E(X2)E(V2)-E2(X)E2(V)

因此,局部窗口中的噪声方差:

3.2算法并行化

图2 窗口大小为5×5时坐标点(5,7)和(12,5)处的Lee滤波示意图

GPU为采用Lee滤波进行快速相干斑抑制提供了可能,在GPU环境下采用Lee滤波进行相干斑抑制的流程如图3所示。

图3 计算流程

1) 根据SAS图像数据的行数和列数,调用cudaMalloc函数分配显存空间。

2) 调用cudaMemcpy函数,将主机内存中SAS图像数据上传至显存。

3) 在主机端调用核函数,启动Lee滤波的并行计算函数。首先各个线程块根据当前块的线程索引和局部窗口大小,计算当前线程块处理的局部SAS图像块。然后利用当前线程块中的线程将滤波过程中所需要的局部SAS图像数据块载入共享存储器,并进行线程同步操作。最后每个线程根据其局部线程索引,计算对应点的估计值,并将计算结果写入全局存储器。

4) 调用cudaMemcpy函数,将存储在显存中的计算结果下载到主机内存。

5) 释放GPU上分配的显存空间。

由于硬件限制,这里将线程块的大小设置为16×16。每个线程计算一个点的滤波值,为了准确计算边缘点的滤波结果,需要将局部SAS图像数据块边界进行扩展,其大小根据局部计算窗口确定。由于对局部数据块进行了扩展,因此在将局部数据块载入共享存储器时,部分线程需要载入多个数据。为实现线程均衡载入数据,块内线程索引为(i/16,j/16)的线程载入局部索引为(i,j)的数据,这样线程之间可以实现最大限度的实现数据载入平衡。

4 实验结果分析

为了验证所提GPU环境下的快速相干斑抑制算法性能,在如下环境进行了合成孔径声纳成像结果的相干斑抑制试验:CPU X5650 2.67G(12核);内存16G;显卡Tesla C2050;操作系统Windows 7;软件环境VS2008+CUDA5.0。试验数据选用一幅合成孔径声纳样机试验所得成像结果数据,其大小为8800×1440,对应的合成孔径声纳图像如图4(a)所示。

采用Lee滤波算法进行相干斑抑制后的结果如图4(b)~(d)所示,为比较不同大小图像的处理效率,截图了4400×1440和2200×1440不同大小数据进行滤波处理。滤波处理时滤波窗口大小设定为7×7,从处理结果可以看出,图像相干斑得到了较好抑制,滤波后图像轮廓清晰,细节也保持较好。

图4 试验结果图

参数数值参数数值带宽(kHz)20脉冲间隔(ms)320载频(kHz)150子阵长(m)0.04脉宽(ms)20子阵个数40声速(m/s)1446速度(m/s)2.5采样率(kHz)40采样距离(m)51-231

表2给出了CPU和GPU计算方式下Lee滤波算法的计算时间。从表2中可以看出采用CPU计算不需要进行数据传输,采用GPU计算需要进行数据的上传和下载操作,但由于传输带宽大,可以在非常短的时间内完成。在CPU计算环境下,合成孔径声纳图像大小为8800×1440,计算窗口为7×7时,Lee滤波算法的计算时间为5326 ms。但是在GPU计算环境下,Lee滤波算法的计算时间与CPU中计算时间相比显著降低。当合成孔径声纳图像大小变为4400×1440和2200×1440时,采用CPU和GPU的计算时间分别需要2876 ms和1350 ms、21 ms和11 ms,相比在CPU环境下,计算效率也是显著提高。Lee滤波算法的计算加速比如图4所示,对于8800×1440数据大小的合成孔径声纳图像,在计算窗口为7×7时,其加速比高达69。

表2 Lee滤波算法计算效率比较

图4 加速比

5 结语

本文提出了一种GPU环境下的快速Lee滤波合成孔径声纳图像相干斑抑制方法。首先将合成孔径声纳图像整体上传至GPU全局存储器,然后采用多个线程块同时计算每个分块图像的滤波结果,并将每个线程块的滤波结果进行合并。最后将滤波后的合成孔径声纳图像下载到主机内存。试验结果表明,对于大小为8800×1440的合成孔径声纳图像,采用GPU进行Lee滤波相干斑抑制,即可得到极大速度提升。

参 考 文 献

[1] 佟宏伟,钟何平,唐劲松,等.基于GPU的SAS成像算法并行实现研究[J].舰船电子工程,2014,34(3):134-140.

[2] Hayes P M,Gough T P. Synthetic Aperture Sonar: A Review of Current SAS Status [J]. IEEE Journal of Oceanic Engineering,2009,34(3):207-224.4, 34(3):137-140.

[3] 赵永祯,唐劲松,钟何平.基于声纳图像纹理特征的海底底质分类方法研究[J].海洋测绘,2015,35(3):60-63.

[4] 钟何平,唐劲松,张森,等.基于图形处理器的合成孔径声纳实时距离多普勒成像算法[J].电子与信息学报,2014,36(8):1899-1904.

[5] Lee J S. Speckle suppression and analysis for synthetic aperture radar images [J]. Optical Engineering, 1986, 25(5):636-642.

[6] Kuan D T, Sawchuk A A, Strand T C et al. Adaptive noise smoothing filter for images with signal-dependent noise[J].IEEE Trans. Pattern Analysis and Machine Intelligence, 1985, 7(2):793-802.

[7] Frost V S, Stiles J A, Shanmugan K S et al. A model for radar images and its application to adaptive digital filtering of multiplicative noise[J].IEEE Trans. Pattern Analysis and Machine Intelligence, 1982,PAMI-4:157-166.

[8] Bhuiyanr M, Ahmad M, and Swamy M. Spatially adaptive wavelet-based method using the cauchy prior for denoising the SAR images[J]. IEEE Transactions on Geoscience and Remote Sensing, 2007, 17(4): 500-507.

[9] Yu Y, Acton S. Speckle reducing anisotropic diffusion[J]. IEEE Transactions on Image Processing,2002,11(11):1260-1270.

[10] 黄攀,岳军,陈鸣,等.基于偏微分方程的InSAS干涉图去噪技术研究[J].青岛理工大学学报,2011,32(6):104-106.

*收稿日期:2015年10月3日,修回日期:2015年11月24日

作者简介:庞晓楠,男,博士,研究方向:导航制导与控制。钟何平,男,博士,研究方向:干涉合成孔径声纳信号处理。

中图分类号P237

DOI:10.3969/j.issn.1672-9730.2016.04.026

A Fast Speckle Reduction Algorithm for Synthetic Aperture Sonar

PANG Xiaonan1ZHONG Heping2

(1. Naval Submarine Academy, Qingdao266000)(2. Naval Institute of Underwater Acoustic Technology, Naval University of Engineering, Wuhan430033)

AbstractA fast speckle reduction algorithm for synthetic aperture sonar (SAS) is proposed in GPU environment, which helps to solve the low efficiency of speckle reduction of SAS image. Firstly, the whole SAS image is uploaded to the memory of GPU, and partitioned into small rectangular blocks with partly overlapped according to the size of the local window. Secondly, the Lee filtering process is performed on every blocked SAS image by block of threads simultaneously. Finally, the whole processed result is obtained by merging those local filtered images and downloaded to the memory of the host. The feasibility and efficiency of the proposed method are verified through experiment of real SAS image speckle reduction.

Key Wordssynthetic aperture sonar, speckle reduction, Lee Filter, GPU