1、|75软件开发0 引言 高频多波束图像声纳因其卓越的图像质量,在海洋工程、环境监测等民用领域以及反水雷、反潜等军用领域都得到了广泛的应用1。高频多波束图像声纳的探测页面是一个以声基阵2开角为圆心角的扇形区域,只有采用扇形显示方式,才能最大限度地还原水下环境的真实面貌,因此需要将信号处理输出的二维矩阵图像转换成扇形图像。声纳作为一种专用设备,集成度较高,配备的软硬件资源有限,很难适配通用扇形插值软件3,且大部分通用软件的扇形插值功能非专为声纳设计,在图像质量和实时性4方面无法满足使用要求。RTheta 数字扫描变换算法5的插值效果逼真,能满足声纳图像质量要求,但其复杂的计算过程无法满足声纳的实时
2、性要求,故优化算法是本文研究的重要内容。本文以高频多波束声纳图像为研究对象,以 R-Theta数字扫描变换算法为基础建立扇形插值的数学模型;使用“查表法”6“图形对称法”“通用化设计”优化数学模型;使用面向对象的程序设计方法完成了软件设计;最后通过声纳设备的试验结果,说明方法的有效性。1 扇形插值原理本文讨论的扇形插值原理基于 R-Theta 数字扫描变换算法,它是一种二维线性插值算法7,该算法最先应用于B 超仪,其原理是利用极坐标与直角坐标的转换关系,将 B超探头扫描获得的波束数据8映射到矩形的显示区域中。高频多波束图像声纳与 B 超仪的工作原理类似。本文以某型前视声纳为例进行说明,该声纳的
3、探测开角为100度,探测扇面内均匀分布了 200 个波束,波束宽度9为 0.5,每个波束上等间隔分布 600 个样本点,假设扇形的右侧半径为角度参考线,即=0,由此可求得任意波束上的任意样本点的径向距离R和波束偏移角(波束与参考线的夹角)。算法的目的是把如图 1 所示的扇形波束图映射到存贮器矩阵中。为了说明上的方便,将图 1 中的局部存贮空间进行放大,局部放大图见图2,每个存贮单位(+号所在位置)中应填入合适的像素值。见图2200个波束每个波束有600个样本点100 图 1 扇形波束图对于处在相邻两个波束之间的所有像素值,使用下列 3个方程来插值。(,)()(1)(1)f x yz ierrz
4、 ierr=+式(1)()(,)(,1)(1)z is i j Rerrs i jRerr=+式(2)(1)(1,)e(1,1)(1e)z is ij R rrs ijR rr+=+式(3)相邻波束存贮器单元样本点RerrerrRS(i+1,j+1)S(i,j+1)S(i+1,j)S(i,j)Z(i+1)Z(i)(x,y)图 2 扇形图像的局部放大图(x,y)是扇形显示区域内的任意一点,s(*,*)是(x,y)相邻的四个样本点的值。而 z(i)和 z(i+1)是计算 f(x,y)的过渡值,Rerr 是径向距离误差,err 是方位角相对误差,由下式确定:|RRRRerr=式(4)应用于声纳的高性
5、能扇形插值方法研究席伟光,童大为,费玉杰,徐天柏(海鹰企业集团有限责任公司,江苏无锡,214115)摘要:高频多波束图像声纳的探测页面为扇形,而信号处理输出的图像数据为二维矩阵,为避免探测目标变形失真,应将二维矩阵转换成扇形,目前一些商用软件或开源软件提供了二维矩阵转扇形的功能,但存在以下几类问题:1、自主可控问题:商用软件多为进口软件;2、版权问题:开源软件闭源商用面临版权风险;3、运行平台限制:声纳作为专用设备,软硬件资源余量较低,无法满足软件运行要求;4、效果不理想:实时性或图像质量不满足要求。因此提出一种基于R-Theta算法的高性能扇形插值方法,并完成了软件设计。试验结果表明该方法平
6、台适应性强,且图像质量和实时性均能满足声纳使用要求。关键词:声纳;图像;扇形插值;查表;分类识别;波束;样本DOI:10.16589/11-3571/tn.2023.05.01876|电子制作 2023 年 3 月软件开发|err=式(5)其中 R 为点(x,y)的径向距离,为(x,y)与角度参考线的夹角,R 为同一波束上相邻采样点(远端)的径向距离差,为波束宽度。综上,将(x,y)相邻两个波束上的 4 个样本点 s(i,j)、s(i,j+1)、s(i+1,j)、s(i+1,j+1)代入公式,可得:(,)(,)(1,1)(,1)(1,)(,1)(1,1)(1,)(1,1)(1,1)f x ys
7、 i js ijs i js ij Rerr errs i js ijerrs ijs ijerrs ijR=+式(6)由公式可求得显示区域扇形范围内任意一点的像素值。2 方法设计 2.1 建立数学模型结合某型前视声纳,以扇形的圆心为原点建立直角坐标系,如图 3 所示。200个波束每个波束有600个样本点100 xy 图 3 建立直角坐标系的扇形波束图在直角坐标系中,矩形显示区中的任意一点都可以用(x,y)表示。根据扇形插值原理:6001600R=式(7)100180200360=式(8)直角坐标系内的任意一点(x,y)可以转化为极坐标形式(R,)。22Rxy=+式(9)()yarttanx=
8、式(10)的取值范围为(,)22,根据图 2 设 s(i+1,j+1)对应点的极坐标为(R,),则 s(i,j+1)对应的极坐标为(R,-),(i,j)对应的极坐标为(R-R,-),(i+1,j)对应的极坐标为(R-R,),根据图 2 中(x,y)和 s(i+1,j+1)的位置关系易推出:1RRRR=+|式(11)291=+|式(12)将代入可知 s(i+1,j+1)的极坐标可由(x,y)确定,同理 f(x,y)周围的其余三个样本点的极坐标均可由(x,y)确定。将代入可知Rerr和err由(x,y)确定。由式可知,f(x,y)的值可由周围四点 s(*,*)的值、Rerr 和err 确定,因此只
9、需求得 s(*,*)的值,即可得到 f(x,y)的值。下文介绍了通过 s(*,*)的极坐标获取 s(*,*)的值的方法。如图 4 所示,将待进行扇形插值的 200600(WH)个样本点的声纳波束数据按顺序分布到内存中。设图 2 中点 s(i+1,j+1),s(i,j+1),s(i,j),s(i+1,j)对应图4中点A、B、C、D;波束样本点j的取值范围为(0,599),波束号 i 的取值范围为(0,199)。设内存中波束数据的起始地址为 pBmembuf0,则图4 中点 A、B、C、D 对应的内存值如下:A:pBmembuf200(j+1)+200 i-1;B:pBmembuf200(j+1)
10、+200 i;C:pBmembuf200j+200-i;D:pBmembuf200j+200 i-1;02004001201195196197199399599波束数199号n号0号波束第0点DACBCBDA样本点第m第599第ji+1号起始内存终止内存第j+1i号图 4 声纳波束数据内存分布图|77软件开发上文设 s(i+1,j+1)对应的极坐标为(R,),且由可知 R 是 R 的整数倍,是 的整数倍,结合可进一步推出:221RRjxyRR=+式(13)291360 arctan()80iyx=|式(14)由可知 i 和 j 可通过(x,y)计算获得,则点 A、B、C、D 的内存序号也可通过
11、(x,y)计算获得。由此可实现将直角坐标系的扇形波束图中的任意一点(x,y)周围的四点映射为波束域数据中对应的内存值,再根据公式计算得到 f(x,y)的值。将图 3 扇形显示区内的像素点按此方法逐一赋值,即可完成扇形插值。2.2 优化数学模型在用软件实现R-Theta算法中,需要多次调用三角函数、浮点运算等大开销算子,为了节省运算资源,提高图像刷新率和系统实时性,需优化数学模型。由可知,计算任意一个 f(x,y)的值,至少需要进行一次和一次()yarttanx计算,以图 3 显示区尺寸为 800650(WH)为例,需分别进行 52 万次22xy+和()yarttanx计算,采用查表法和图形对称
12、法可大幅降低计算量。通过上述优化,在奔 4 处理器上测试扇形插值算法,150 米量程的单图刷新时间从 140ms 降为 80ms,性能明显提高。本例列举的数学模型是根据某型前视声纳的专用需求设计的,不同声纳对扇形显示的需求不同,具体体现在扇形圆心角、扇形半径、显示区尺寸、显示量程等参数有差异。为了使数学模型更具通用性,应进行通用化设计。2.2.1 查表法查表法的原理是通过预处理10的方式提前计算复杂算法在一定范围的运算结果,并按规律储存到指定内存中,当程序需要调用算法时,查询并访问内存中的运算结果即可,因计算机访问内存地址的速度远高于执行算法本身11,故可达到降低计算量的目的。使用查表法的约束
13、条件是:算法输入值的范围有限且可确定。本数学模型中被频繁调用的复杂算法为22xy+和()yarttanx,它们的算法输入值(x,y)有限且可确定,适用于查表法。图 3 显示区尺寸为 800650(WH),则 x 的取值范围为-400,400,y 的取值范围为 0,650,可通过以下方法将取值范围内的22xy+和()yarttanx进行预处理。初始化预处理结果存储数组:float m_sqrtTable 401651;float m_atanTable 401651;预处理伪代码如下:for(int i=0;i401;i+)for(int j=0;j651;i+)22_ jmsqrtTliab
14、e ij+=;()_ jarttanimatanTable ij=;只需预处理 x 和 y 均为正值的结果,当 x 为负值时可根据22xy+和()yarttanx的属性,分别查询m_sqrtTable-xy和-m_atanTable-x y 即可。2.2.2 图形对称法图形对称法的原理是利用显示区左右两侧以 y 轴对称的特性,首先使用数学模型计算得到显示区一侧像素点相邻四点的内存序号以及 Rerr 和 err 的值,再利用轴对称性质,推算出另一侧对称点相邻四点的内存序号及 Rerr 和 err 的值,该方法可将复杂算法22xy+和()yarttanx的运算次数降低 50%,大幅提升运算效率。举
15、例说明:图 4 中点 A、B、C、D 为(x,y)的四个相邻点,由轴对称性质可知,一定存在对称点 A、B、C、D、(x,y),已知点 A 对应的内存序号为 200(j+1)+200i-1,则很容易推出点A的内存序号为200(j+1)+i,同理可推出点B、C、D 的内存序号,且 Rerr=Rerr;err=err。然后根据公式计算得到,f(x,y)的值。2.2.3 通用化设计高频多波束图像声纳的探测开角、波束数、采样点数均为声纳固有参数,不同型号的声纳设备或有差异;而显示量程为声纳工作参数,可在声纳使用过程中根据按需设置。以上参数均为扇形插值的输入值,参与了扇形插值的计算过程,只有将这些参数对用
16、户开放,才能使扇形插值算法更具通用性。下文介绍了声纳固有参数通用化和显示量程参数通用化的详细设计方法。2.2.3.1 声纳固有参数通用化本节只讨论显示起始量程为0米的情况,非0情况在“显78|电子制作 2023 年 3 月软件开发示量程参数通用化”中介绍。探测开角决定了扇形圆心角,扇形圆心角结合波束数决定了,采样点数决定了扇形半径和 R,声纳图像显示区尺寸可通过以上参数估算获得。在程序中,声纳固有参数的用户接口,可通过宏定义设定:/*用户参数配置区*/*配置波束数*/#define SRC_WIDTH 200/*配置采样点数*/#define SRC_HEIGHT 600/*配置探测开角(即扇形圆心角)*/#define DEST_ANGLE 100/*预估显示区宽度(即 2x):不小于 SRC_HEIGHT DEST_ANGLE/180 且为偶数*/#define DEST_WIDTH 354/*预估显示区高度(即 y):不小于 SRC_HEIGHT*/#define DEST_HEIGHT 6122.2.3.2 显示量程参数通用化图像声纳的距离分辨率12较高,可达厘米级,假设某声纳