首页 > 其他分享 >使用MATLAB实现信号处理的深度学习

使用MATLAB实现信号处理的深度学习

时间:2024-11-11 23:16:05浏览次数:6  
标签:信号处理 深度 使用 学习 MATLAB 图像 SAR

大家好,深度学习已广泛地应用于人脸检测、语音识别、自动驾驶等多个场景中,成为我们日常生活中的一部分。MATLAB提供深度学习解决方案,帮助将深度学习应用于科研和工程问题。图像和信号是深度学习最主要的数据源。本文将介绍信号处理与深度学习结合,解决研究和工程问题。

大家期望使用深度学习显著提高结果的准确率,甚至解决此前解决不了的问题,然而并不是直接将深度学习模型替换原有显式规则或机器学习模型,就可以达到这一效果。对于以信号为输入数据的问题来说,有效的信号处理对模型预测有很大的帮助。我们可以将深度学习应用于与信号相关的问题,同时通过有效的信号处理,帮助深度模型更好地学习信号的内在模式,提高结果准确率。

深度学习工作流

图片

流程主要包含四个部分:创建和访问数据集、预处理和数据变换、开发预测模型、加速和部署。通常,科研工作者会更关注中间的两部分,而对于工程问题,不仅要考虑算法开发,同时要关注如何获取到真实有效的数据,以及最终将模型部署于商业商品中。

信号处理解决方案

传统的信号处理主要有预处理和数据变换、特征提取两部分。对于深度学习来说,标注数据不可或缺;由于所需数据量很大,数据管理也非常重要。对于实际工程问题,算法通常会以C/HDL代码形式运行于实际产品或设备中,因此还需要代码生成。

图片

MATLAB提供的信号处理解决方案,提供了对深度学习工作流中第二部分——预处理和数据变换的全面支持。以上功能主要使用到的工具箱以Signal Processing Toolbox为主。此外,对于传感器阵列和声音信号,以及时频分析技术中的小波,MATLAB也有特定工具箱作为支持。

标注

标注是应用深度学习不可或缺的一部分,Signal Labeler应用提供了信号的属性、ROI(Region of Interest)、POI(Point of Interest)的标注功能。标注数据以特定格式进行存储。同时提供了基于现有算法进行自动标注的功能,可以减少人工标注工作量。

图片

预处理和数据变换

通过预处理去除数据的异常信息和无用信息,保留有效和关键信息。MATLAB的Signal Analyzer应用提供了可视化的界面,可以进行交互式的信号探查、预处理和信号变换。包括基础的去趋势、平滑、滤波等工具,如需进行定制的滤波器设计,可以使用Filter Designer和Filter Builder应用。

通过信号变换,对信号进行频域和时频分析,探查时域难以获取的信息。其中,Signal Analyzer应用提供了基于傅里叶变换的频域变换,以及基于短时傅里叶变换和小波的时频变换。

图片

开发预测模型

对于以信号作为输入的问题,有两种常用方法。将信号转换为图像,使用卷积神经网络(CNN);直接使用一维序列信号,使用长短时记忆网络(LSTM)。

图片

模型开发可以通过命令形式,或者使用Deep Network Designer进行可视化开发和优化。

图片

深度学习与机器学习的一大区别是,深度学习通常使用的是多层神经网络,具备特征提取的功能。也就是说,深度学习可以覆盖我们原有部分由信号处理工程师手动进行的工作。甚至在某些情况下,我们无需预处理和数据变换,可以直接将原始数据输入深度学习模型中,直接得到我们想要的结果。机器学习需要我们掌握更多的信号处理知识,而深度学习需要更大的数据集和计算资源。根据数据集和领域知识的情况,选择最适合的方法。

利用深度学习分析卫星雷达图像

每年平均有 500 座冰山进入纽芬兰和拉布拉多沿海地区,对航运和海上作业构成了潜在威胁。二十世纪九十年代,一些公司开始使用卫星合成孔径雷达 (SAR) 监测冰川和海上浮冰。SAR 非常适合执行该任务,因为它既能在白天和夜晚拍摄大片海洋的图像,又能克服云、雾和其他不利的气象条件。 

分析 SAR 图像涉及识别图像中的目标(成片的高亮度像素)以及将其分类为冰川或舰船。即使是训练有素的专家,也可能需要数小时的时间分析若干帧图像,尤其是在目标难以辨别的情况下。

图片

在格陵兰岛附近拍摄的 SAR 图像

我们 C-CORE 的团队与挪威国家石油公司 Equinor 合作开发了一款自动化软件,利用深度学习对 SAR 图像中的目标进行分类。我们当时决定通过举办一次 Kaggle 竞赛,充分利用全球 AI 研究员社区的专业知识。我们研究了竞赛中选出的最佳创意,利用 MATLAB® 中的卷积神经网络 (CNN) 实现了这些创意,然后构建了能够在操作层面使用的软件。

冰川识别难题

SAR 图像的分辨率取决于图像覆盖面积大小:聚焦相对较小区域的图像比覆盖大片海洋的图像具有更高分辨率,因此更容易分类。实际上,为了从数据集提取尽可能多的有用信息,我们必须处理所有分辨率级别的图像,哪怕图像中的目标只有几个像素宽。

图片

从多极化信道(标有 HH 和 HV)创建的易于分类的冰川(右上)和舰船(右下)图像

图片

难以分类的冰川(右上)和舰船(右下)的彩色合成图像

在开始使用深度学习之前,我们使用了二次判别分析进行冰川分类,但这涉及图像分割,从背景海洋像素中分离目标像素。图像分割是个挑战,因为海洋情况千差万别,恶劣的情况会造成视觉上的杂乱感,使得难以确定每个目标的轮廓。利用 CNN,不需要从背景中区分目标,因为算法是在完整的 SAR 切片、包含单个目标的固定尺寸图像上训练的。

Kaggle 竞赛

我们的 Kaggle 竞赛给参赛者提出了一个简单的挑战:开发一个算法,需要能自动将 SAR 图像切片中的目标分类为舰船或冰川。为竞赛准备的数据集包括从 Sentinel-1 人造卫星沿拉布拉多和纽芬兰海岸采集的多信道 SAR 数据中提取的 5,000 张图像。

图片

人造卫星沿纽芬兰和拉布拉多海岸采集的 SAR 数据

表现优异的入围作品全都使用了深度学习,他们的模型使用了许多相同的特征和层,包括卷积、ReLU层、最大池化和 softmax 层。另外,最佳入围作品全都使用了集成,将预测准确度从大约 92% 提高到了 97%。

使用 MATLAB 构建深度学习模型

使用最佳 Kaggle 入围作品作为起点,借助 MATLAB 和 Deep Learning Toolbox™ 开发深度学习模型。从修改 Deep Learning Toolbox 中提供的一个简单分类器开始,搭建起一个运作良好的网络。

为了优化网络性能,测试不同的参数值组合,例如,每一层的节点数目、卷积层中使用的滤波器大小、最大池化层中使用的池大小等,取值各不相同。编写一个自动构建、训练和测试 10,000 个不同 CNN 的 MATLAB 脚本,在合理的限制和约束内随机生成这些参数的值。

对结果执行简单的贪心搜索,以找出七个表现最佳的 CNN,并使用它们创建一个集成。像 Kaggle 竞赛优胜者使用的集成一样,我们的集成提高了大约 5% 的总体准确度。

将分类器整合到一个完整系统

目标辨别只是冰川识别多步骤过程的其中一步。该过程还包括陆地掩膜(用来排除由于陆地上物体造成的误检),以及与地理信息系统软件集成(用来生成显示冰川和舰船位置的地图)。

图片

在地图上绘制的冰川位置

当雷达卫星合成体使命 (RADARSAT Constellation Mission) 人造卫星今年开始生成数据时,我们将能够访问更多 SAR 图像 — 这些图像对于通过人工目检进行分析简直太多了。将我们在 MATLAB 中开发的这种深度学习算法融入软件系统中,将会使 C-CORE 能够准确、快速、自动地处理此类数据,从而做到最充分地利用数据。

标签:信号处理,深度,使用,学习,MATLAB,图像,SAR
From: https://blog.csdn.net/2401_88845856/article/details/143654218

相关文章

  • Matlab信号处理:连续小波变换
    小波变换是信号时频分析中浓墨重彩的一笔,本文将介绍连续小波变换(ContinuousWaveletTransform,CWT),对比短时傅里叶变换(STFT),CWT有更多的优势、更加灵活。区别于短时傅里叶变换的正弦基函数,连续小波变换采用小波基函数,通过调整小波基函数的尺度因子和时间平移因子,能分析信号在不......
  • 深度学习(VAE)
    变分自编码器(VAE,VariationalAuto-Encoder)是一种生成模型,它通过学习数据的潜在表示来生成新的样本。在学习潜空间时,需要保持生成样本与真实数据的相似性,并尽量让潜变量的分布接近标准正态分布。VAE的基本结构:1.编码器(Encoder):将输入数据转换为潜在空间的分布,输出潜在变量的均值......
  • Matlab常用的图像属性
    线型、标记和颜色线型、标记和颜色,指定为包含符号的字符串或字符向量。符号可以按任意顺序显示。不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。以下是MATLAB在许多类型的绘图中使用的默认颜色的RGB三元组和十六......
  • (1) Pytorch深度学习—数值处理
    (1)Pytorch——数值处理参考于李沐“动手学深度学习”系列以及网上各路大佬的博客资料,感谢大家的分享,如错改,如侵删。torch中的数值处理数值处理是深度学习中极其重要的一部分,张量(tensor)是后续进行处理和计算的基本单位。张量表示一个由数值组成的数组,这个数组可能有多个维度。......
  • WEB 漏洞 - SQL 注入之 MySQL 注入深度解析
    目录WEB漏洞-SQL注入之MySQL注入深度解析一、从宇宙奇想到SQL注入二、SQL注入原理回顾(一)基本概念(二)以简单PHP代码示例说明三、MySQL注入步骤(一)确定注入点(二)判断注入类型(三)利用注入获取信息或执行恶意操作四、防御MySQL注入的方法(一)使用参数化查询(二)......
  • 基于GSP工具箱的NILM算法matlab仿真
    1.课题概述       基于GSP工具箱的NILM算法matlab仿真。GSP是图形信号处理的缩写,GSP非常适合对未知数据进行分类,尤其是当训练数据非常短时。GSPBox的基本理论是谱图论和图滤波,因此,GSPBox中的主要对象是图,图包括图的基本元素,如节点、边和权重矩阵等。 2.系统仿真结果......
  • 基于MIMO系统的SDR-AltMin混合预编码算法matlab性能仿真
    1.算法仿真效果matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要        基于MIMO(Multiple-InputMultiple-Output)系统的SDR-AltMin混合预编码算法是一种先进的无线通信技术,它结合了凸优化和交替......
  • (水下)目标检测/深度学习/计算机视觉国内外知名课题组
    大方向:目标检测、深度学习、计算机视觉国内课题组:1、港中文MMdetection课题组-号称计算机视觉界的黄埔军校香港中文大学的MMDetection课题组是隶属于香港中文大学多媒体实验室(multimedialaboratory,theChineseUniversityofHongKong)的一个重要研究团队。该多媒体实验......
  • puthon画图|hist()函数深度探索
    【1】引言前述已经对hist()函数有相对深度的探索,但还没有彻底,今天继续探索。前述文章可通过下述链接直达:python画图|hist()函数高阶探索-CSDN博客【2】官网教程在官网的教程中,提供了一种直方图多子图绘制方法,相关链接为:Histogrambins,density,andweight—Matplotli......
  • LangChain 记忆组件深度解析:Chain 组件与 Runnable 深入学习
    在构建复杂的AI应用时,有效管理对话历史和上下文信息至关重要。LangChain框架提供了多种记忆组件,使得开发者能够轻松实现具有记忆功能的聊天机器人。本文将深入探讨LangChain中的记忆组件、Chain组件以及Runnable接口,帮助开发者更好地理解和使用这些强大的工具。LangChain......