社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

无所不能的 MATLAB | 使用深度学习实现海上雷达数据质量控制自动化

MATLAB • 3 年前 • 542 次点击  

作者:Dr. Rune Gangeskar, Miros

    ◆  

对海上船只来说,精确测量海浪、水流和对水航速非常利于执行各种任务,包括优化燃油以及在受限海域内航行。例如,即使对水航速测量失之毫厘,船舶性能计算结果也可能谬以千里,并且日耗油量可能增加数十吨。

一直以来,对水航速都是通过水下测速仪测量的。这些仪器利用船体的水压差(水压计程仪),通过声呐信号的多普勒频移(多普勒测速仪),或通过通电线圈与运动的水体之间的交互所生成的信号(电磁式测速仪)来估计航速。这些系统可能维护起来成本高昂,并且容易受到气泡、紊流或其他由船只运动引起的干扰的影响。

Miros 设计了 Wavex 这款传感器系统,可以精确测量海浪、水流和对水航速。该系统可处理来自传统海洋 X 波段导航雷达的数字化图像,从而消除与水下传感器相关的干扰问题和维护开销。我们进一步提高了 Wavex 的性能和可靠性,方法是使用深度学习网络来自动识别在恶劣测量条件(例如强降水)下拍摄的雷达图像(图 1)。

图 1. 雷达图像上半部分显示受降水干扰的浪形。

在有阵雨的情况下,我们可以忽略雷达图像中受干扰的区域,而只使用未受干扰的区域来获得测量结果。我们使用 MATLAB® 和 Deep Learning Toolbox™ 创建了深度学习网络。该网络可准确识别降水和风降,其准确度分别超过了 97% 和 99%。

传统的图像处理算法需要针对不同测量条件、几何形状和雷达类型进行校准。与之不同的是,我们在 MATLAB 中设计的深度学习网络无需进行调整或校准,即可在各种测量场景下得到高度准确的结果。在 MATLAB 中对该网络进行训练并验证后,我们便使用 MATLAB Compiler™ 将其作为独立应用部署到 Wavex 系统中。该系统可近实时地测量对水航速、水流、定标方向波谱以及浪高等综合波浪参数(图 2)。

图 2. Wavex 用户界面示例,显示对水航速、风和海浪的测量结果。

基于雷达的海况测量以及风雨的影响

典型的海用 X 波段雷达天线以每分钟 15 至 48 转的速度旋转,从而生成浪形清晰可见的数字化图像(图 3)。Wavex 系统从数字化图像中提取笛卡尔图像部分,然后使用在 MATLAB 中开发的算法处理这些部分。这些算法应用噪声滤波技术,并对笛卡尔图像的时间序列执行三维快速傅里叶变换 (FFT),从而生成三维波谱,其中包含关于各种波数和频率下的功率的信息。然后,它们使用波数-频率谱来估计水流和对水航速,以及定标波谱和综合波浪参数。

图 3. 来自海用 X 波段导航雷达的数字化图像输出,显示提取的笛卡尔图像部分。

某些环境条件,如低风速和阵雨,会导致数字化图像失真,因而难以提取有意义的信息(图 4)。我们使用深度学习是为了创建一个网络,以便自动识别那些过于失真而无法用于各种海况测量的笛卡尔图像部分。

图 4. 有降水(上图)和风速下降(下图)的情况下拍摄的数字化雷达图像。

深度学习在图像分类中的应用

要应用深度学习处理图像分类问题,第一步是获取并标注具有这些特征组合的图像以训练网络。为此,我们从六个不同的 Wavex 系统中采集了 700 多万个笛卡尔图像部分,这些图像部分的时间跨度长达十年以上。

我们将每个图像部分标注为下面五个类别之一:无风速下降或降水、有显著降水、有显著风速下降、有显著降水和风速下降,以及未分类。为了减少所需的工作量并使标注切实可行,我们采用了目测评估和自动标注相结合的方法。其中,自动标注使用其他来源的可用数据,如从船载传感器采集的风数据。

与团队其他成员一样,我用过 MATLAB 并对更经典的机器学习主题有所了解,但我之前没有深度学习应用经验。我先从 Deep Learning Toolbox 教程入手,学习了使用简单的卷积神经网络进行深度学习图像分类的示例。作为第一步,我试用了一些预训练模型,但我很快发现,如果基于之前看到的代码示例构建自己的深度学习网络,效果可能会更好。我试验了各种网络配置,最终选定具有 23 层的配置。该网络具有相当标准的结构。图像输入层后面有五个组,每个组都有一个二维卷积层、一个批量归一化层、一个修正线性单元 (ReLU) 层和一个最大池化层。在最后一个组中,使用全连接层来代替最大池化层。此组后面接着 softmax 层和分类输出层(图 5)。

图 5. 用于雷达图像分类的网络的结构。

起初,我使用来自各个 Wavex 系统的数据来训练网络,然后确认该网络可以对来自其他系统的图像进行准确的分类。然后,我结合使用来自所有系统的图像对它进行了训练,以提高针对各种雷达类型和工况的准确度。最后,我试着对该网络进行了更改,以进一步提高其准确度。例如,我尝试对第一个卷积层使用了不同大小,对图像输入层进行了不同的归一化,以及采用了不同的网络深度。

部署和未来计划

为了将最终经过训练的网络和算法集成到 Wavex 系统中,我使用 MATLAB Compiler 生成了独立应用。这样,我们便能快速地将研发工作(模型开发和训练)迁移到生产环境中,以实现质量控制自动化。

生成的应用会扫描从船载雷达系统生成的极坐标图像中提取的每个笛卡尔图像部分,并对这些部分进行分类,然后将结果连同所有其他测量结果一起存储在 Wavex 软件可访问的数据库中。

在完成此集成后,我使用 MATLAB 可视化验证了系统在各种条件下的性能:将使用自动风降和降水检测时的系统性能与禁用该检测时的基准性能进行比较。图 6 举例说明了在情况复杂的一段时间内,基于深度学习的检测如何准确区分各种情况并正确标注数据,从而实现优化的处理和改进的用户信息流。

图 6. 浪高测量结果图,蓝线表示启用了降水和风降检测,红线表示未启用。

现在,独立深度学习应用正在多艘船上的生产级 Wavex 系统中接受测试。目前,我的团队正在研究如何在多个新的不同应用中使用类似的深度学习方法进行图像和信号分类。
MATLAB 在地球、海洋和大气科学的应用是不是也远远超过了你所想象? 关注 MATLAB 公众号,和 MATLAB 一起看到更多更酷的科学前沿故事~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/149203