SKA中CLEAN算法的优化研究

2019-07-15 01:52钱慎一刘慧慧
现代计算机 2019年16期
关键词:旁瓣复原残差

钱慎一,刘慧慧

(郑州轻工业大学计算机与通信工程学院,郑州 450000)

0 引言

平方公里阵列(Square Kilometer Array,SKA)是一项大型国际科研合作项目,比目前最大的射电望远镜JVLA的灵敏度提高约50倍[1]、巡天速度提高10000倍,由2500个反射面天线[2]、250组中频和低频孔径阵列组成[3],分布范围大于3000公里[4],形成旋臂阵列望远镜,其接收面积达一平方公里,能够探测距离地球数百万甚至数十亿光年的物体的无线电波。随着SKA项目的实施,海量的天文数据迅速增加,如何有效、快速地处理这些数据成为了一个研究重点。ARL算法参考库是SKA的候选算法库,数据处理模块是基于Python语言实现的,主要功能是创建校准模型、对数据进行预处理、成像等功能。

CLEAN算法是ARL中的一个重要算法,在射电天文成像中起着至关重要的作用。目前的射电望远镜天线数量有限,导致了空间频率覆盖不完整[5],从而对最终的图像的构建造成影响。由于CLEAN算法可以消除该影响,因此很多学者对CLEAN算法做了相关研究。1974年,Hogbom[6]首次提出了CLEAN算法,一种非线性的迭代方法,用以消除旁瓣干扰。该算法虽然能消除旁瓣的干扰,但需要消耗大量的时间,运算效率低。2004年,Bhatnagar[7]提出了一种用于无线电干涉图像的尺度敏感的反卷积算法(Asp-clean)算法,将图像建模为自适应尺度像素的集合,可以更准确地重建非对称结构的天空图像,但是增加了算法复杂性和计算成本,其计算时间是CLEAN算法的三倍多。2008年,Tim J.Cornwell[8]提出了一种Multiscale CLEAN算法,可以更好地处理扩展源,提高图像质量,但是该算法比Hogbom CLEAN算法需要更长的运行时间。2011年,U.Rau[9]在Multiscale CLEAN算法的基础上,结合了multi-frequency算法,可以在更高的灵敏度和采样频率的情况下,重建天空图像。2011年,Sarod Yatawatta[10]将扁长椭球波函数应用到CLEAN算法中,减少去除扩展源的误差。2015年,A.La Camera[11]提出了将图像域划分成等平面区域,并对每个区域应用具有边界效应校正的CLEAN方法。将该方法应用于以空间可变PSF为特征的恒星系统的模拟图像,通过对去模糊的图像进行光圈测光,获得了良好的图像质量。2017年,Jun Cheng[12]提出了一种小波CLEAN算法,以解决传统CLEAN算法出现的问题,并对小波滤波器的参数进行了优化,提高了图像质量,但没有缩短运行时间,未提高算法运行效率。大部分学者都是针对图像质量问题进行的研究,但是在运算效率方面进行的研究很少。如今随着海量天文数据的产生,CLEAN算法的运算效率的提高变得刻不容缓。

1 CLEAN算法分析

1.1 Multi-Scale CLEAN算法

2008年,Cornwell提出 Multi-Scale CLEAN 算法[13],是对Hogbom CLEAN算法的一种改进,能够较好地处理展源。Multi-Scale CLEAN算法步骤如下所示:

Step1:初始化模型等于0,残差图等于“脏”图。模型:IM=0;残差图:IR=ID。

Step2:对于每个尺度αq,计算尺度卷积残余和尺度偏差 S(α)=1-0.6α/α;对于每

max对尺度αp,αq,计算交叉项 B*m(αp)*m(αq)。

Step3:对于每个尺度,找到残差图的峰值及其位置。

Step4:在乘以比例相关的偏差项之后,选择残差最大的尺度。

Step5:将此组件添加到当前模型中,按循环增益缩放。

Step7:通过洁束对当前模型进行卷积:BG*IM

Step8:添加残差图,得到恢复的图像:BG*IM+IR

在整个算法流程中,尺度的处理至关重要。对于尺度范围的选择,没有明确的定义,但这通常不是太重要。像等差数列这样的尺度范围会浪费计算时间,太大的范围又会导致收敛性差。所以我们通常选取的尺度范围一般是等比数列的形式,如 0、2、4、8、16、32,或者是 0、3、10、30 这样的尺度范围。

1.2 Clark CLEAN算法

CLEAN算法是在天文图像复原中最常用的去卷积算法之一,但是由于其计算量较大,因此Clark提出了一种改进的CLEAN算法,可以降低数据处理过程的计算工作量[14]。CLEAN算法中的大部分计算在于移动和缩放“脏”束,而Clark CLEAN算法用二维傅里叶变换(Fast Fourier Transformation,FFT)可以更有效地完成任务,并且只使用一部分“脏”束就可以找到点源的近似位置和强度。

Clark CLEAN算法提出了两种简化方式,第一种是只考虑图像的最大值,第二种是只考虑“脏”束的中心部分。由于“脏”束是对称的,所以只需要存储一个边长为2:1的矩形区域。为了定位组件,将图像之外的“脏”束计为零。这些简化大大减少了CLEAN算法的计算工作量。

详细来说,Clark CLEAN算法有两个周期,称为次周期和主周期。次周期的过程如下:

Step1:如果图像峰值点的强度大于“脏”束外部的最大旁瓣,则从“脏”图中选择该点,并记录其位置坐标。

Step2:把挑选出来的部分“脏”束与“脏”图中找到的点进行洁化操作。

Step3:当残差图像的点小于外部的最大旁瓣,则停止循环;否则,跳转到Step1继续执行循环。

算法的主周期是首先找到“脏”束的主瓣和外部的最大旁瓣;其次将次循环找到的点进行快速傅立叶变换,并与经过快速傅里叶逆变换(IFFT)的“脏”束相乘,再经过IFFT得到亮度分布;接着从“脏”图中减去该亮度分布;最后判断是否达到阈值,如果达到阈值,则跳出主循环,否则跳转到主循环的第一步继续执行循环。在一定程度上,光束在次周期引入的误差可以在随后的次周期中得到修正。

影响算法计算时间的因素有图像大小、增益值、图像的复杂性和旁瓣等。由于这些因素的存在,计算时间的变化很大,改变其中一个因素,都会对时间造成一定的影响。

2 CLEAN算法优化

2.1 算法描述与实现

Multi-Scale CLEAN算法是CLEAN算法的一个很好的改进算法,可以更好地处理展源,使最终的复原图像更加的清晰,可以获得比CLEAN算法更好的效果。但是由于其算法实现较为复杂,比CLEAN算法多了尺度的计算部分,需要更多的处理步骤,因此算法的运行时间较长。为了减少算法的运行时间,本文提出了一种Multi-Scale CLEAN算法与Clark CLEAN算法相结合的算法,在文中称为MS-Clark CLEAN算法。

MS-Clark CLEAN算法的主要思想就是结合Multi-Scale CLEAN算法与Clark CLEAN算法的优点,来实现一种运算时间快、图像质量高的算法。将Clark CLEAN算法中选取部分“脏”束的思想用于Multi-Scale CLEAN算法。在保证图像质量的同时减少运算时间。

MS-Clark CLEAN算法的部分伪代码如表1所示,该部分伪代码表示的是选取部分“脏”束。根据分析Clark CLEAN算法可知,可以将“脏”束的主瓣作为有效束代替“脏”束进行迭代。

MS-Clark CLEAN算法的部分伪代码:

MS-Clark CLEAN算法的流程图如图1所示。首先是输入“脏”图,“脏”束的主瓣;接着,计算每个尺度的偏差以及交叉项;其次,在“脏”图中找到最大值点及其位置坐标;然后,判断残差图像的最大值是否小于给定的噪声水平,若满足条件,则跳出循环,继续向下执行,否则,继续找残差图像中大于最大旁瓣的点;接着,对满足条件的点组成的函数图和洁束进行卷积;最后加上残差图像,就得到了最终的图像,也就是复原的清晰图像。

图1 MS-Clark CLEAN算法流程图

2.2 参数选取

为了达到最好的复原效果,需要选取合适的参数,通过分析MS-Clark CLEAN算法可知,增益值、“脏”束的大小、尺度以及迭代次数都会对最终的实验效果造成一定的影响。本小节主要针对以上4个参数分别进行了实验,最终选取了最合适的参数值。在实验中采用峰值信噪比[15](Peak Signal to Noise Ratio,PSNR)来衡量算法的效果。

在选取合适参数的实验中,首先进行的是增益值的选取,通过分析比较发现,在0-1范围内,增益值为0.2左右时,图像的PSNR值最小,此时的图像相对来说最清晰,图像质量最好,因此本文选取增益值为0.2。如果增益值选择的不合适,反而会得不到质量最好的图像。

第二个调整的参数是“脏”束的大小,如图2(a)所示是“脏”束的大小与PSNR值的关系,如图2(b)所示是“脏”束的大小对时间的影响。从图中可以看出,时间随着“脏”束的变大而增加,在“脏”束大小为300×300时,变化巨大,其后,趋于平衡。结合“脏”束的大小与PSNR值的关系,可以发现在“脏”束大小为300×300后,PSNR值变化不大,时间的变化也不大,都是趋于平缓的。在“脏”束大小为200×200到300×300之间,PSNR值的变化不是很大,可是时间的变化很大。因此“脏”束大小可以选择在200×200到250×250之间的尺寸,本文选取的大小为200×200。

图2

接下来对尺度这个参数进行实验,根据具体数据发现,0,3,10,30这组尺度PSNR值最小,图像较为清晰,图像质量较高。因此,本文选取的尺度范围为0,3,10,30。

最后对迭代次数进行分析实验,在迭代次数为1000左右时,可以得到较低的PSNR值,此时的图像较为清晰,图像质量较好。迭代次数太少,找出的“脏”图中的点源就少,影响最终的图像质量。迭代次数大于1000次时,PSNR值并没有较大的改变,但迭代次数增多会使计算时间增长,计算代价变大。因此,本文选择的迭代次数为1000。

3 实验结果和分析

实验通过对MS-Clark CLEAN算法进行测试,同时与优化之前的Multi-Scale算法进行对比。主要采用以主观观察评价为主,客观量化评价标准为辅的图像质量评价方法。客观量化评价标准采用PSNR来评价。

为了测试算法的性能,进行了如下的图像实验。选取的图像大小为 512×512,图 3(a)为“脏”图,图 3(b)为CLEAN算法的复原结果,图3(c)为Multi-Scale算法的复原结果,图3(d)为MS-Clark CLEAN算法的复原结果。通过主观观察可以看出,CLEAN算法对于图像的边缘区域处理的效果不好,复原的点源较少。Multi-Scale算法比CLEAN算法对于边缘区域的处理效果更好,复原的点源较多。MS-Clark CLEAN算法的处理效果比CLEAN算法的好,但是对于边缘区域的处理,没有Multi-Scale算法的效果好。

图3

图4 两种算法在不同图像大小下的PSNR值

在图像质量方面,Multi-Scale算法和MS-Clark CLEAN算法的结果相似,但是在时间方面,MS-Clark CLEAN算法的运行时间要低于Multi-Scale算法的运行时间。两种算法的运行时间如表1所示。从表中可以看出,Multi-Scale算法的运行时间随着图像大小的增大而急剧增多,在图像大小为8192×8192时,运行时间达到了一个小时十五分钟左右,每运行一次耗时巨大,代价太大,不利于进行大图像的测试。而MSClark CLEAN算法在图像大小为8192×8192时,运行时间为33分钟左右,大大降低了算法的运行时间。

表1 两种算法的运行时间

4 结语

本文提出了一种MS-Clark CLEAN算法,该算法在Multi-Scale CLEAN算法的基础上,结合了Clark CLEAN算法的优点,将“脏”束的主瓣作为有效束代替“脏”束进行迭代,并通过调整参数使图像复原得到较好的结果。由于选取了部分“脏”束,使得在保证图像质量的情况下,提高了运算速度。实验结果证实了改进后的算法的可行性和有效性。

猜你喜欢
旁瓣复原残差
约束优化的空间变迹算法的旁瓣抑制应用
温陈华:唐宋甲胄复原第一人
基于圆柱阵通信系统的广义旁瓣对消算法
基于残差-注意力和LSTM的心律失常心拍分类方法研究
融合上下文的残差门卷积实体抽取
一起来做颈椎操吧
基于残差学习的自适应无人机目标跟踪算法
一种基于线性规划的频率编码旁瓣抑制方法
基于深度卷积的残差三生网络研究与应用
发掘及复原恐龙化石