一、前言
此示例演示如何使用深度学习工具箱和并行计算工具箱™™训练基于区域的卷积神经网络 (R-CNN) 以识别大场景合成孔径雷达 (SAR) 图像中的目标。
深度学习工具箱提供了一个框架,用于设计和实现具有算法、预训练模型和应用程序的深度神经网络。
并行计算工具箱允许您使用多核处理器、GPU 和计算机集群解决计算和数据密集型问题。它使您能够直接从 MATLAB 使用 GPU®,并加速深度学习算法所需的计算能力。
基于神经网络的算法在从自然场景检测到医学成像等多个领域都取得了显著成就。与标准检测算法相比,它们显示出巨大的改进。受这些进步的启发,研究人员努力将基于深度学习的解决方案应用于SAR成像领域。在本例中,该解决方案已应用于解决目标检测和识别问题。本文采用的R-CNN网络不仅解决了检测和识别一体化的问题,而且提供了可扩展到大场景SAR图像的有效且高效的性能解决方案。
此示例演示如何:
下载数据集和预训练模型
加载和分析图像数据
定义网络架构
指定训练选项
训练网络
评估网络
为了说明此工作流,该示例使用了空军研究实验室发布的移动和静止目标采集和识别 (MSTAR) 杂波数据集。数据集可在此处下载。或者,该示例还包括用于展示工作流的数据子集。目标是开发一个可以检测和识别目标的模型。
二、下载数据集
此示例使用 MSTAR 待筛选数据数据集的子集,该子集包含 300 个训练和 50 个测试待筛选图像,具有五个不同的目标。数据是在聚光灯模式下使用X波段传感器以一英尺分辨率收集的。数据包含农村和城市类型的杂乱。使用的目标类型是BTR-60(装甲车),BRDM-2(战车),ZSU-23 / 4(坦克),T62(坦克)和SLICY(多个简单的几何形状静态目标)。这些图像是在15度的凹陷角下拍摄的。杂波数据存储在 PNG 图像格式中,相应的真实数据存储在文件中。该文件包含五个类的二维边界框信息,它们是SLICY,BTR-2,BRDM-60,ZSU-2 / 23和T4用于训练和测试数据。数据集的大小为 62.1 GB
使用此示例末尾定义的帮助程序函数下载数据集。
根据您的互联网连接,下载过程可能需要一些时间。代码暂停 MATLAB® 执行,直到下载过程完成。或者,使用 Web 浏览器将数据集下载到本地磁盘并提取文件。使用此方法时,请将示例中的 <outputFolder> 变量更改为下载文件的位置。
三、下载预训练网络
使用此示例末尾定义的帮助程序函数从此处的链接下载预训练网络。预训练模型允许您运行整个示例,而无需等待训练完成。
四、加载数据集
加载真实数据(训练集和测试集)。这些图像的生成方式是,它将目标芯片放置在背景杂波图像上的随机位置。待筛选图像是根据下载的原始数据构建的。生成的目标将用作地面实况目标来训练和测试网络。
真实数据存储在六列表中,其中第一列包含图像文件路径,第二列至第六列包含不同的目标边界框。
显示其中一个训练图像和框标签以可视化数据。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
五、定义网络架构
为五个目标创建一个 R-CNN 对象检测器:SLICY、BTR_60、BRDM_2、ZSU_23_4、T62。
网络必须能够对五个目标和一个背景类进行分类,以便使用深度学习工具箱™中提供的函数进行训练。添加到下面的代码中以包含背景类。网络的最后一个全连接层定义了它可以分类的类数。
现在,这些网络层可用于训练基于R-CNN的五类对象检测器。
六、训练速度更快 R-CNN
用于训练 R-CNN 对象检测器(如果为 true)。否则,请加载预训练网络。如果训练,请进行调整并确保训练样本与基本事实紧密重叠。
七、在测试图像上评估检测器
要定性了解检测器的功能,请从测试集中选择一个随机图像并通过检测器运行它。检测器应返回它认为检测到的目标所在的边界框集合,以及指示每次检测置信度的分数。
要了解获得的结果,请将结果与测试图像叠加。一个关键参数是检测阈值,即检测器检测到目标的分数。阈值越高,误报越少;但是,它也会导致更多的假阴性。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
八、评估模型
通过按顺序查看图像,您可以了解探测器的性能。要使用整个测试集执行更严格的分析,请通过检测器运行测试集。
测试集中所有图像的可能检测及其边界框可用于计算每个类的检测器平均精度 (AP)。AP是检测器在不同召回级别的精度平均值,因此让我们定义精度和召回率。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
大多数班级的AP大于0.9。其中,经过训练的模型似乎在检测 SLICY 目标方面最困难。但是,它仍然能够实现该类的 AP 为 0.7。
九、总结
此示例展示了如何训练 R-CNN 进行 SAR 图像中的目标识别。预训练网络达到了0.9以上的准确率。
十、程序
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
打开下面的“XXX.mlx”文件,点击运行,就可以看到上述效果。
方式一:程序下载
方式二:程序下载二