基于matlab使用深度学习的SAR目标分类

news2024/10/2 13:40:41

一、前言

此示例演示如何创建和训练一个简单的卷积神经网络,以使用深度学习对 SAR 目标进行分类。

深度学习是一种强大的技术,可用于训练健壮的分类器。它已经在从图像分析到自然语言处理的不同领域显示出其有效性。这些发展对SAR数据分析和SAR技术具有巨大的潜力,正在慢慢实现。SAR相关算法的一项主要任务一直是目标检测和分类,称为自动目标识别(ATR)。在这里,我们使用一个简单的卷积神经网络来使用深度学习工具箱对SAR目标进行训练和分类。

深度学习工具箱提供了一个框架,用于设计和实现具有算法、预训练模型和应用程序的深度神经网络。

此示例演示如何:

  • 下载数据集。

  • 加载和分析图像数据。

  • 数据的拆分和扩充。

  • 定义网络体系结构。

  • 训练网络。

  • 预测新数据的标签并计算分类精度。

为了说明此工作流程,我们将使用空军研究实验室发布的移动和静止目标获取和识别 (MSTAR) 混合目标数据集 [1]。我们的目标是开发一个模型,根据SAR图像对地面目标进行分类。

二、下载数据集

此示例使用的 MSTAR 目标数据集包含来自 8688 个地面车辆的 7 个 SAR 图像和一个校准目标。数据是在聚光灯模式下使用X波段传感器收集的,分辨率为1英尺。我们使用的目标类型是BMP2(步兵战车),BTR70(装甲车)和T72(坦克)。图像以15度和17度两种不同的俯角拍摄,具有190~300种不同的宽高比版本,是360度以上的全纵横覆盖。这三类目标及其复制目标的光学图像和SAR图像如下图所示。

使用此示例末尾定义的帮助程序函数从给定 URL 下载数据集。数据集的大小为 28MiB。

根据您的互联网连接,下载过程可能需要一些时间。代码暂停 MATLAB® 执行,直到下载过程完成。或者,您可以使用 Web 浏览器将数据集下载到本地磁盘并提取文件。如果这样做,请将代码中的 outputFolder 变量更改为下载文件的位置。

三、加载和分析图像数据

将 SAR 图像数据作为图像数据存储加载。根据文件夹名称自动标记图像,并将数据存储为对象。图像数据存储使您能够存储大型图像数据(包括内存中不适合的数据),并在卷积神经网络训练期间高效读取成批的图像。

MSTAR数据集包含来自7辆地面车辆的SAR返回和一个校准目标。这8个目标的光学图像和SAR图像如下所示

让我们通过随机显示一些芯片图像来探索数据存储。

该变量现在包含与每个图像关联的图像和类别标签。标签是从图像文件的文件夹名称自动分配的。用于汇总每个类别的图像数。

首先,指定网络输入大小。选择网络输入大小时,请考虑系统的内存约束和训练中产生的计算成本。

四、创建用于训练、验证和测试的数据存储对象

将数据分为训练集、验证集和测试集。我们将使用 80% 的数据集进行训练,10% 用于训练期间的模型验证,10% 用于训练后的测试。将数据存储拆分为三个新数据存储:、 和 。在这样做时,它会考虑不同类的不同图像数量,以便训练、验证和测试集具有每个类的相同比例。

五、数据增强

数据存储中的映像大小不一致。要使用我们的网络训练图像,图像大小必须与网络输入层的大小相匹配。我们可以使用 ,而不是自己调整图像大小,它将在将图像传递到网络之前自动调整图像大小。还可用于将转换(如旋转、反射或缩放)应用于输入图像。这对于防止网络过度拟合我们的数据很有用。

六、定义网络架构

定义卷积神经网络架构。定义网络结构后,使用训练选项(深度学习工具箱)指定训练选项。使用具有动量的随机梯度下降 (SGDM) 训练网络,初始学习率为 0.001。我们将最大纪元数设置为 3。epoch 是整个训练数据集的完整训练周期。通过指定验证数据和验证频率来监控训练期间的网络准确性。每个纪元随机播放数据。该软件根据训练数据训练网络,并在训练期间定期计算验证数据的精度。验证数据不用于更新网络权重。我们设置了一个临时位置。这样可以在训练过程中节省部分训练的检测器。如果训练中断,例如停电或系统故障,您可以从保存的检查点恢复训练。

使用 、训练数据和训练选项定义的体系结构训练网络。默认情况下,如果 GPU 可用,则使用 GPU(需要并行计算工具箱和具有 3.0 或更高版本的启用 CUDA 的 GPU®)。有关支持的计算功能的信息,请参阅按版本划分的 GPU 支持(并行计算工具箱)。否则,它将使用 CPU。还可以使用 的名称-值对参数指定执行环境。

训练进度图显示小批量损失和准确性以及验证损失和准确性。

训练过程如上图所示。上图中的深蓝色线表示模型对训练数据的准确性,而黑色虚线表示模型对验证数据的准确性(与训练分开)。验证准确率超过97%,这对于一个八类分类器来说是相当不错的。此外,请注意,验证准确性和训练准确性相似。这表明我们有一个健壮的分类器。当训练精度远高于验证精度时,模型过度拟合(即记忆)训练数据。

七、对测试图像进行分类并计算准确性

使用经过训练的网络预测验证数据的标签并计算最终准确性。准确度是网络正确预测的标签的比例。

测试精度非常接近验证精度,这使我们对模型的预测能力充满信心。

我们可以使用混淆矩阵来更详细地研究模型的分类行为。强中心对角线表示准确的预测。理想情况下,我们希望看到对角线之外随机定位的小值。对角线以外的较大值可能表示模型挣扎的特定场景。

在八个类别中,该模型似乎在正确分类ZSU-23 / 4方面最困难。ZSU-23/4和2S1具有非常相似的SAR图像,因此我们观察到我们训练的模型存在一些错误分类。但是,它仍然能够达到该类的90%以上的精度。

八、程序

程序获取:下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/352522.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv5简介

YOLOv5 一、输入端 1. Mosaic数据增强: CutMix 数据增强:随机生成一个裁剪框Box,裁剪掉A图中的相应位置,然后用B图相应位置的ROI放到A中被裁剪的区域中形成新的样本。采用加权求和的方式计算损失,将A区域中被cut掉的…

Kubernetes安全

Kubernetes RBAC授权 Kubernetes 安全框架 K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。1. Authentication(鉴权) K8s Apiserver提供三种客户端身份认证:• H…

JVM08执行引擎

执行引擎属于JVM的下层 执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则…

JavaWeb5-线程常用属性

目录 1.ID 2.名称 3.状态 4.优先级 5.是否守护线程 5.1.线程类型: ①用户线程(main线程默认是用户线程) ②守护线程(后台/系统线程) 5.2.守护线程作用 5.3.守护线程应用 5.4.守护线程使用 ①在用户线程&am…

基础篇(-1)-java特点、JDK、JRE、JVM区别、字节码编译、跨平台、程序运行

文章目录1.Java的特点有哪些?2.JDK和JRE和JVM的区别3.Java为什么采用字节码编译?4.什么是跨平台?5.Java程序从源代码到运行需要三步?1.Java的特点有哪些? Java是一种编程语言,被特意设计用于互联网的分布式…

windwos安装spring-cloud-alibaba-nacos

windwos安装spring-cloud-alibaba-nacos前言一、预备环境二、下载源码或者安装包1.启动2.关闭总结前言 这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。 一、预备环境 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos&#x…

[ vulhub漏洞复现篇 ] Drupal Core 8 PECL YAML 反序列化任意代码执行漏洞(CVE-2017-6920)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

Django框架进阶版

一、Django介绍 1.起源 2005年发布,采用python语言编写的。 早期Django主要做新闻和内容管理 重量级python web框架,配备了大量组件 2.组件 包含组件如下 基本配置文件/路由系统 MTV设计模式 Cookies和Session 分页和发邮件 Admin管理后台 3…

2023美赛A题完整数据!思路代码数据数学建模

选取内蒙古河套灌区(典型干旱区)2010-2020年气温,降雨,蒸散发和水汽压月数据 包括四种主要作物及其占比 内容截图如下: 链接为:https://www.jdmm.cc/file/2708703 同时还提供参考代码和参考文章的选项~…

格式化字符串

组包&#xff1a;按照需要的格式组成字符串解包&#xff1a;解析特定格式的数据网络信息传输解析字符串的格式使用较多&#xff01;1、sprintf用于组包将零散的数据格式按照固定的格式组成字符串#include <stdio.h> int sprintf(char *str, const char *format, ...); …

博客排名的影响是什么? 说明优点、注册方法和推荐网站

如果您经营博客&#xff0c;您是否在博客排名网站上注册&#xff1f;博客排名网站是以排名格式介绍各种注册博客的网站。如果您注册博客&#xff0c;您将有更多机会被人们看到&#xff0c;并且可以期望增加访问权限。对于那些刚刚打开博客并担心访问量不会轻易增加的人来说&…

王道考研——计算机网络(第一章 计算机网络体系结构)

1.0认识计算机网络 在下载电影&#xff08;不会出现乱序问题&#xff09;和微信收发消息&#xff08;比如表情包乱序了&#xff09;所使用的协议是不同的 1.1-1概念和功能 &#xff08;1&#xff09;计算机网络的概念 &#xff08;2&#xff09;计算机网络的功能 &#xff08;…

酸回收树脂的应用

酸洗废水 在轧钢、金属表面处理、电子元件制造等过程中需要清除钢材表面氧化铁皮而使用酸进行酸洗&#xff0c;酸洗过程中会产生废酸液和酸洗废水。 这些废酸产量大、酸度高&#xff0c;而且由于酸洗废水来自钢铁和金属表面处理的清洗水&#xff0c;水中含有多种重金属离子&am…

2023年美赛F题

关键点1.绿色GDP(GGDP)是否比传统GDP更好好的衡量标准?2.如果GGDP成为经济健康的主要量标准&#xff0c;可能会对环境产生什么影响?3建立一个简单的模型&#xff0c;估计GGDP取代GDP作为经济健康的主要衡量标准&#xff0c;对减缓气候变化产生的影响。4.GGDP取代GDP可能会遇到…

复旦-华盛顿大学EMBA项目二十年20人丨赵中华:“拓荒”新天地

复旦大学-华盛顿大学EMBA项目20周年校友系列访谈。      从业十八载&#xff0c;赵中华的身上始终葆有一种开拓创新的拼劲和韧劲。身为德国威卡集团计量校准事业部中国区销售总监&#xff0c;他认为无论是在开辟新市场时勇敢接受不确定性带来的挑战&#xff0c;还是在遭遇新…

打印不同的图形-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)

【案例4-1】打印不同的图形 记得 关注&#xff0c;收藏&#xff0c;评论哦&#xff0c;作者将持续更新。。。。 【案例介绍】 案例描述 本案例要求编写一个程序&#xff0c;可以根据用户要求在控制台打印出不同的图形。例如&#xff0c;用户自定义半径的圆形和用户自定义边长的…

MyBatis-Plus快速入门篇

入门篇1.快速入门1.1数据库准备1.2创建SpringBoot工程&#xff0c;引入MyBatis-Plus和MySQL依赖&#xff0c;可以使用 Spring Initializer快速初始化一个 Spring Boot 工程1.3编写DataSource相关配置&#xff08;配置MySQL数据库连接&#xff09;1.4编码1.5测试2.使用MybatisPl…

【论文阅读】Frustratingly Simple Few-Shot Object Detection

从几个例子中检测稀有物体是一个新出现的问题。 先前的工作表明Meta-Learning是一种有希望的方法。 但是&#xff0c;微调技术很少引起注意。 我们发现&#xff0c;在稀有类上只对现有探测器的最后一层进行微调对于 Few-Shot Object Detection至关重要。 这样一种简单的方法在当…

Yaklang XSS 检测启发式算法(被动扫描插件)

背景 上一篇介绍了XSS 启发式检测基础设施&#xff0c;本篇通过yak提供的基础设施编写一个xss检测插件。 本次xss靶场使用pentesterlab的xss靶场。 环境部署 git clone https://github.com/yaklang/vulinone cd php-web-for-pentester docker-compose up -d编写思路 参考上…

matlab-汽车四分之一半主动悬架模糊控制

1、内容简介汽车四分之一半主动悬架模糊控制651-可以交流、咨询、答疑2、内容说明半主动悬架汽车 1/4 动力学模型建立 本章主要对悬架类型进行简要介绍&#xff0c;并对其进行对比分析&#xff0c;提出半主动悬架的优越性&#xff0c;论述半主动悬架的工作原理&#xff0c;并对…