大家好,深度学习已广泛地应用于人脸检测、语音识别、自动驾驶等多个场景中,成为我们日常生活中的一部分。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