基于matlab使用神经网络清除海杂波

Posted 珞瑜·

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于matlab使用神经网络清除海杂波相关的知识,希望对你有一定的参考价值。

一、前言

此示例演示如何使用深度学习工具箱™训练和评估卷积神经网络,以消除海上雷达 PPI 图像中的杂波返回。深度学习工具箱提供了一个框架,用于设计和实现具有算法、预训练模型和应用程序的深度神经网络。

二、数据集

该数据集包含 84 对合成雷达图像。每对都包含一个输入图像和一个期望的响应图像,前者既有海杂波和扩展目标返回,又有期望的响应图像,前者仅包含目标返回。这些图像是使用带有旋转均匀线性阵列(ULA)的模拟创建的。每个图像包含两个不重叠的扩展目标,一个表示小型集装箱船,另一个表示较大的集装箱船。这些船由长方体表面上的一组点散射器建模。

以下参数在图像之间固定:

雷达系统参数

频率 (10 千兆赫)

脉冲长度 (80 ns)

距离分辨率 (7.5 m)

PRF (1 千赫)

方位角波束宽度(0.28度)

雷达平台参数

高度 (55 m)

转速 (50 转/分)

目标参数

目标尺寸小(120 x 18 x 22 m)

大目标尺寸(200 x 32 x 58 m)

以下参数在图像之间随机化:

表面参数

风速(7 至 17 米/秒)

风向(0 至 180 度)

目标参数

目标位置(表面上的任何位置)

目标航向(0 至 360 度)

目标速度(4 至 19 米/秒)

小目标RCS(8至16米)2)

大型目标RCS(14至26米)2)

这种变化确保了根据这些数据训练的网络将适用于这种雷达配置的相当广泛的目标剖面和海况。下载海事雷达 PPI 图像数据集,并将数据和许可证文件解压缩到当前工作目录中。

将图像数据和预训练网络加载到名为 .imdata

三、准备数据

您可以使用预训练网络来运行示例,而无需等待训练。

图像集 1-70 用于训练,71-80 用于验证。最后 4 张图像将用于网络评估。

将数据格式化为 4D 数组,以便与网络训练器和培训选项一起使用。前两个维度被视为空间维度。第三个维度用于通道(如颜色通道)。单独的图像样本沿第 4 维排列。杂乱的输入简单地称为图像,所需的输出称为响应。使用单精度,因为它是神经网络训练器的本机。

格式化后,清除加载的数据结构以节省RAM。

四、网络架构

网络由一系列图层对象定义,包括输入层和输出层。将 用作输入层,以便无需重新格式化即可使用图像。A 用于输出以评估简单的均方误差 (MSE) 损失函数。隐藏层使用具有归一化和非线性激活的 2D 卷积层级联。imageInputLayerregressionLayer

首先创建输入图层。指定输入图像的空间大小。

添加 3 组卷积 + 归一化 + 激活。每个卷积层由一组空间过滤器组成。对每个小批量进行偏差和缩放,以提高数值鲁棒性并加快训练速度。这是一个非线性激活层,可将值缩放到 0 以下,同时保持大于 0 的值不变。这是一个由双曲正切函数组成的 S 形激活层,输出介于 -1 和 1 之间的值。batchNormalizationLayerleakyReluLayertanhLayer

必须注意确保空间和通道维度在层与层之间保持一致,并且最后一层输出的通道大小和数量与所需响应图像的大小和通道数量相匹配。将卷积层的属性设置为 ,以便过滤过程不会更改图像的空间大小。Padding'same'

架构可以总结如下:

1x 5×5 卷积

批量规范化

泄漏的ReLU,0.2缩放

4x 6×6 卷积

批量规范化

泄漏的ReLU,0.2缩放

1x 5×5 卷积

批量规范化

泄漏的ReLU,0.2缩放

立即添加这些图层。

请注意,每个卷积层的通道数必须与前一个卷积层中使用的滤波器数匹配。

最后,添加输出层,这是一个简单的回归层。

五、训练网络

使用该函数准确配置网络的训练方式。除了指定要使用的训练方法外,这还可以控制学习率计划和小批次的大小等内容。还可用于指定验证数据集,该数据集用于确定运行性能。由于网络的性能可能不会随着迭代而单调提高,因此这也提供了一种在验证误差最小的迭代时返回网络的方法。trainingOptionstrainingOptions

设置随机种子以提高可重复性。定义用于训练和验证的集的 ID。

现在创建 .使用自适应矩估计 (Adam) 求解器。最多训练 80 个时期,迷你批量大小为 20。将初始学习率设置为 0.1。验证集是使用包含验证图像和响应数组的 1×2 单元格数组指定的。将 设置为 25 以评估每 25 次迭代一次验证集的损失。指定 as 在验证损失最小的迭代中返回网络。设置为 true 可打印训练进度。

使用提供的帮助程序函数在对数刻度上绘制训练和验证损失。

训练和验证损失稳步下降,直到在中间200左右达到误差底线。

六、评估网络

现在网络已经训练完毕,使用最后 4 张图像来评估网络。

使用提供的帮助程序函数将输入图像与网络输出的响应一起绘制。结果经过归一化处理,并且裁剪了低于 -60 dB 的像素,以便于比较。

该网络完全消除了低于一定返回功率阈值的海杂波,同时保留了目标信号,由于所使用的卷积滤波器的大小,只有很小的膨胀效应。图像中心附近的剩余高功率杂波可以通过空间感知层(例如全连接层)或通过预处理原始图像来消除与范围相关的损耗。

七、结论

在此示例中,您了解了如何在 PPI 图像上训练和评估级联卷积神经网络,以消除海杂波,同时保留目标回报。您了解了如何配置输入和输出层、隐藏卷积、规范化和激活层以及训练选项。

八、参考文献

[1] Vicen-Bueno, Raúl, Rubén Carrasco-Álvarez, Manuel Rosa-Zurera, and José Carlos Nieto-Borge. “Sea Clutter Reduction and Target Enhancement by Neural Networks in a Marine Radar System.”Sensors (Basel, Switzerland)9, no. 3 (March 16, 2009): 1913–36.

九、程序

使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)

程序下载(点我)

以上是关于基于matlab使用神经网络清除海杂波的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB教程案例61使用matlab实现基于ResNet残差网络的数据分类仿真分析

使用 Matlab 进行基于神经网络的分类的参数设置

MATLAB教程案例59使用matlab实现基于LSTM网络的数据分类预测功能与仿真分析

MATLAB教程案例62使用matlab实现基于PointNet++网络的点云数据分类仿真分析

MATLAB教程案例60使用matlab实现基于GRU网络的数据分类预测功能与仿真分析

求基于BP神经网络的图像复原算法的matlab代码