论文部分内容阅读
[摘 要]近年来,随着我的国的快速发展,随着海洋开发进程的不断推进,成像声呐也得到了长足的发展,水声成像技术在声呐系统中担当重要的角色,水声成像是采用计算机图像学处理手段将水下声波所包含的信息呈现在计算机客户端的视觉技术,多波束成像声呐显控软件是构成多波束成像声呐系统的重要部分。本文软件采用C++编程语言,通过Vis-ual Studio集成开发环境,在windows7操作系统下进行研发。
[关键词]多波束成像声呐; 显控软件; 图像处理;
中图分类号:TE995 文献标识码:A 文章编号:1009-914X(2017)36-0064-02
1、软件总体架
本软件要求根据网口进行数据传输、保存与显示,对软件的人机交互性能有较高的要求,所以选择适当的软件开发平台和计算机开发环境十分重要。微软研发的Visual Studio集成开发环境,适用于数据采集和分析以及MFC用户界面开发,它可提供支持Windows SDK二次开发的Win32API接口,还支持DLL,Activc X和.NET等技术,而且能够与Microsoft Visual C ++语言集成共同进行程序开发。为了便于采用直观的界面设计来实现人机交互,本系统选择Visual Studio作为开发平台。
多波束成像声纳系统显示控制软件通过网络接口系统各个设备进行连接,对各设备的状态进行控制,调整声呐系统所属设备的运行状态和参数;同时它还可以接收各个设备通过网口打包传送来的数据,确保硬件获得的波束形成文件成功显示在用户界面。根据分析,成像声纳系统的显示控制软件需要具有以下功能(见图1)。
(1)通过网络接口从FPGA读取基元数据和图像数据;
(2)通过单帧位图和伪彩编码的方式将接收到的原始图像数据以图片的形式呈现出来;
(3)以TXT或DAT格式保存网络接口接收到的数据,并对数据进行回放,其中包括图像数据和基元数据两种类型;
(4)对成像系统的FPGA硬件进行控制,通过UDP通信设置声纳工作参数配置、声纳工作模式配置、连接湿端声纳设备、幅相校正系数配置、声速修正等;
(5)将过网口接收到的数据显示为扇形图像后,可以对实时播放的图像数据进行缩放、暂停、截图、录制为视频,单击显示坐标,划线测距等功能。
2、通信模块
显控软件不仅需要接收、处理和显示图像数据,同时还需要响应修改控制参数或停止的指令。为了保证指令和参数的安全准确接收,本系统采用UDP网络通信协议。如果图像数据的接收、处理和显示步骤依次顺序执行,那么下一帧图像数据只能等上一帧图像显示完成后才可开始接收,帧速率明显太低。所以本系统在采用多线程技术的基础上,再采用双缓存技术,两种技术相叠加,以确保多波束图像数据接收、处理和显示的实时性。
2.1 多线程技术
线程指的是进程中的一个执行流程。多线程技术即在软件进程中创建多个线程,同一进程中的多个线程并发运行,避免单个处理逻辑占用CPU时间过长,充分利用进程的空闲时间[3]。
为了确保本系统的实时性,显控软件一共创建了三个进程:主线程,用于存储数据的数据接收线程和用于处理图像数据的数据处理线程。
多个线程访问共享资源时会发生冲突问题,本系统采用CMutex互斥量对象[4]来确保线程获取共享资源访问权的互斥性。Cmutex对象的初始状态为有信号状态。开始接收图像数据时,两个Cmu-tex对象都被接收线程占用,某一帧图像数据接收完后则释放对应的Cmutex对象;处理线程初始处于无限等待的状态,一旦检测到存在被释放的Cmutex对象,立即占有这个Cmutex对象,然后处理缓冲区中的多波束图像数据,处理结束后再释放这个Cmutex对象。
2.2 双缓存技术
双缓存技术经常应用于处理数据流,数据流的输入缓冲区与输出缓冲区依次相互切换,将缓冲区中的数据无间断地输送到数据处理单元。双缓存技术可以使数据的输入与输出保持连续性,可应用于数据的流水线操作,达到数据的实时处理[5]。双缓存操作的本质是分配两个存放数据的缓冲数据区。第一个时间周期,将图像数据缓存在第一个数据区;第二个周期,将图像数据缓存在第二个数据区,同时对第一个数据区中的数据进行处理;第三个周期,将图像数据缓存在第一个数据区,同时对第二个数据区中的数据进行处理[5]……循环往复,实现数据的无间断处理。
本系统中的显控软件需要先接收多波束图像数据,然后对图像数据依次进行一系列的处理,本质上也是一种流水线操作,因此本系统采用双缓存技术以实现多波束图像数据的实时接收、处理与显示。
3 显示模块
3.1 显示模块功能浅述
显示模块是整个显控软件的核心部分和最终目的,用于显示声呐传送过来的数据最终处理结果,即目标的显示。为了方便用户操作,显示模块实现了一些显示的基本功能比如开始、暂停、视频录制等。为了让用户清晰的了解目标的状况信息,本系统不仅允许用户查看当前位置的坐标信息,还为用户实现了测距功能。
显示模块不仅实现了基本功能,还实现一些强化功能。数据的回放功能,使用户在脱机不联网的情况下浏览本地数据。数据的保存功能和截图功能更是便于用户根据自己的需求选择需要保存的某帧图像。
另外,本系统还为用户实现了一些基本的图像处理功能,便于用户清晰地查看图像和了解目标状况信息。包括图像的二值化处理、伪彩色变换处理、图像增强处理、形态学处理等。
最后,显示模块还为用户提供了输入控制指令的入口。控制指令主要包括程序的运行状态控制、显示速率、暂停、声纳自检测、声纳工作参数配置、声纳工作模式配置、连接湿端声纳设备、幅相校正系数配置、声速修正等基本功能。
3.2 矩阵转换扇形
圖像数据是由波束形成后得到的,每个距离点由64个波束得到,两点之间距离为2.5cm。每一帧图像数据都是一个矩阵,横轴x方向成像角度为90°,64个波束,即横轴x方向有64列,一个角度构成一列数据,纵轴y方向为距离向上的点,同一个距离上的点构成一行数据,行与行之间的间隔为2.5cm,为极坐标下的数据。但是实际的数据是扇形的,如图2所示,以接收点为圆心,64个波束值构成同一距离覆盖范围为90°的扇形上的点。若想把图像数据直接显示为符合人眼视觉特性的矩形,需要做视图转换,即将图像数据从极坐标系转换到直角坐标系。
矩形图宽为波束值64,高为rnum,距离分辨率为2.5cm,则rnum=40R。扇形图宽为width,高为height,根据矩形图大小可以得到扇形图的宽和高。
将图像数据从极坐标系转换到直角坐标系有两种方案:一是从矩形极坐标转换为扇形直角坐标,二是从扇形直角坐标转换为矩形极坐标。经实验验证,由矩形极坐标转换为扇形直角坐标所得到的映射图,视觉效果不佳[4],故本系统采用从扇形直角坐标转换为矩形极坐标的方法映射图像数据。扇形图像中的每一点,根据其角度和距离,都可以映射到矩形图像中的一個点。对应关系见图3。
设扇形图像中点的坐标为(x,y),对应的角度为θ,距离为r,则
4 结语
声呐是采用声波对水下目标进行探测、定位等操作设备,是水声研究领域应用范围最广的设备。相比于光波和电磁波,水下声波在水中的衰减速度更低,通常情况下,水下声波的探测距离可以达到几十千米,因此,水声是水下信息传播的重要载体。通过换能器获得丰富的声波信息,经过信号处理,就可以呈现出被探测物体的基本形态。因此,声呐被广泛地应用在沉船打捞、水下救援、蛙人探测、特种作战等领域。
参考文献
[1] 王静娇.成像声纳数据实时传输与显示控制技术研究[D].南京:南京航空航天大学,2013.
[2] 张小平.高分辨率多波束成像声呐关键技术研究[D].哈尔滨:哈尔滨工程大学,2013.
[关键词]多波束成像声呐; 显控软件; 图像处理;
中图分类号:TE995 文献标识码:A 文章编号:1009-914X(2017)36-0064-02
1、软件总体架
本软件要求根据网口进行数据传输、保存与显示,对软件的人机交互性能有较高的要求,所以选择适当的软件开发平台和计算机开发环境十分重要。微软研发的Visual Studio集成开发环境,适用于数据采集和分析以及MFC用户界面开发,它可提供支持Windows SDK二次开发的Win32API接口,还支持DLL,Activc X和.NET等技术,而且能够与Microsoft Visual C ++语言集成共同进行程序开发。为了便于采用直观的界面设计来实现人机交互,本系统选择Visual Studio作为开发平台。
多波束成像声纳系统显示控制软件通过网络接口系统各个设备进行连接,对各设备的状态进行控制,调整声呐系统所属设备的运行状态和参数;同时它还可以接收各个设备通过网口打包传送来的数据,确保硬件获得的波束形成文件成功显示在用户界面。根据分析,成像声纳系统的显示控制软件需要具有以下功能(见图1)。
(1)通过网络接口从FPGA读取基元数据和图像数据;
(2)通过单帧位图和伪彩编码的方式将接收到的原始图像数据以图片的形式呈现出来;
(3)以TXT或DAT格式保存网络接口接收到的数据,并对数据进行回放,其中包括图像数据和基元数据两种类型;
(4)对成像系统的FPGA硬件进行控制,通过UDP通信设置声纳工作参数配置、声纳工作模式配置、连接湿端声纳设备、幅相校正系数配置、声速修正等;
(5)将过网口接收到的数据显示为扇形图像后,可以对实时播放的图像数据进行缩放、暂停、截图、录制为视频,单击显示坐标,划线测距等功能。
2、通信模块
显控软件不仅需要接收、处理和显示图像数据,同时还需要响应修改控制参数或停止的指令。为了保证指令和参数的安全准确接收,本系统采用UDP网络通信协议。如果图像数据的接收、处理和显示步骤依次顺序执行,那么下一帧图像数据只能等上一帧图像显示完成后才可开始接收,帧速率明显太低。所以本系统在采用多线程技术的基础上,再采用双缓存技术,两种技术相叠加,以确保多波束图像数据接收、处理和显示的实时性。
2.1 多线程技术
线程指的是进程中的一个执行流程。多线程技术即在软件进程中创建多个线程,同一进程中的多个线程并发运行,避免单个处理逻辑占用CPU时间过长,充分利用进程的空闲时间[3]。
为了确保本系统的实时性,显控软件一共创建了三个进程:主线程,用于存储数据的数据接收线程和用于处理图像数据的数据处理线程。
多个线程访问共享资源时会发生冲突问题,本系统采用CMutex互斥量对象[4]来确保线程获取共享资源访问权的互斥性。Cmutex对象的初始状态为有信号状态。开始接收图像数据时,两个Cmu-tex对象都被接收线程占用,某一帧图像数据接收完后则释放对应的Cmutex对象;处理线程初始处于无限等待的状态,一旦检测到存在被释放的Cmutex对象,立即占有这个Cmutex对象,然后处理缓冲区中的多波束图像数据,处理结束后再释放这个Cmutex对象。
2.2 双缓存技术
双缓存技术经常应用于处理数据流,数据流的输入缓冲区与输出缓冲区依次相互切换,将缓冲区中的数据无间断地输送到数据处理单元。双缓存技术可以使数据的输入与输出保持连续性,可应用于数据的流水线操作,达到数据的实时处理[5]。双缓存操作的本质是分配两个存放数据的缓冲数据区。第一个时间周期,将图像数据缓存在第一个数据区;第二个周期,将图像数据缓存在第二个数据区,同时对第一个数据区中的数据进行处理;第三个周期,将图像数据缓存在第一个数据区,同时对第二个数据区中的数据进行处理[5]……循环往复,实现数据的无间断处理。
本系统中的显控软件需要先接收多波束图像数据,然后对图像数据依次进行一系列的处理,本质上也是一种流水线操作,因此本系统采用双缓存技术以实现多波束图像数据的实时接收、处理与显示。
3 显示模块
3.1 显示模块功能浅述
显示模块是整个显控软件的核心部分和最终目的,用于显示声呐传送过来的数据最终处理结果,即目标的显示。为了方便用户操作,显示模块实现了一些显示的基本功能比如开始、暂停、视频录制等。为了让用户清晰的了解目标的状况信息,本系统不仅允许用户查看当前位置的坐标信息,还为用户实现了测距功能。
显示模块不仅实现了基本功能,还实现一些强化功能。数据的回放功能,使用户在脱机不联网的情况下浏览本地数据。数据的保存功能和截图功能更是便于用户根据自己的需求选择需要保存的某帧图像。
另外,本系统还为用户实现了一些基本的图像处理功能,便于用户清晰地查看图像和了解目标状况信息。包括图像的二值化处理、伪彩色变换处理、图像增强处理、形态学处理等。
最后,显示模块还为用户提供了输入控制指令的入口。控制指令主要包括程序的运行状态控制、显示速率、暂停、声纳自检测、声纳工作参数配置、声纳工作模式配置、连接湿端声纳设备、幅相校正系数配置、声速修正等基本功能。
3.2 矩阵转换扇形
圖像数据是由波束形成后得到的,每个距离点由64个波束得到,两点之间距离为2.5cm。每一帧图像数据都是一个矩阵,横轴x方向成像角度为90°,64个波束,即横轴x方向有64列,一个角度构成一列数据,纵轴y方向为距离向上的点,同一个距离上的点构成一行数据,行与行之间的间隔为2.5cm,为极坐标下的数据。但是实际的数据是扇形的,如图2所示,以接收点为圆心,64个波束值构成同一距离覆盖范围为90°的扇形上的点。若想把图像数据直接显示为符合人眼视觉特性的矩形,需要做视图转换,即将图像数据从极坐标系转换到直角坐标系。
矩形图宽为波束值64,高为rnum,距离分辨率为2.5cm,则rnum=40R。扇形图宽为width,高为height,根据矩形图大小可以得到扇形图的宽和高。
将图像数据从极坐标系转换到直角坐标系有两种方案:一是从矩形极坐标转换为扇形直角坐标,二是从扇形直角坐标转换为矩形极坐标。经实验验证,由矩形极坐标转换为扇形直角坐标所得到的映射图,视觉效果不佳[4],故本系统采用从扇形直角坐标转换为矩形极坐标的方法映射图像数据。扇形图像中的每一点,根据其角度和距离,都可以映射到矩形图像中的一個点。对应关系见图3。
设扇形图像中点的坐标为(x,y),对应的角度为θ,距离为r,则
4 结语
声呐是采用声波对水下目标进行探测、定位等操作设备,是水声研究领域应用范围最广的设备。相比于光波和电磁波,水下声波在水中的衰减速度更低,通常情况下,水下声波的探测距离可以达到几十千米,因此,水声是水下信息传播的重要载体。通过换能器获得丰富的声波信息,经过信号处理,就可以呈现出被探测物体的基本形态。因此,声呐被广泛地应用在沉船打捞、水下救援、蛙人探测、特种作战等领域。
参考文献
[1] 王静娇.成像声纳数据实时传输与显示控制技术研究[D].南京:南京航空航天大学,2013.
[2] 张小平.高分辨率多波束成像声呐关键技术研究[D].哈尔滨:哈尔滨工程大学,2013.