基于matlab使用迭代方法为语义分割网络生成对抗性示例(附源码)

news2024/11/25 4:24:43

一、前言

此示例说明如何使用基本迭代方法 (BIM) 为语义分割网络生成对抗性示例。

语义分割是将图像中的每个像素分配给类标签的过程,例如汽车、自行车、人或天空。语义分割的应用包括自动驾驶的道路分割和医疗诊断的癌细胞分割。

神经网络可能容易受到一种称为对抗性示例的现象的影响,其中对输入的非常小的更改可能导致其被错误分类。这些变化通常是人类无法察觉的。此示例演示如何为语义分段网络生成对抗性示例。

此示例使用剑桥大学的 CamVid数据集生成对抗性示例。CamVid数据集是包含驾驶时获得的街道级视图的图像集合。该数据集为 32 个语义类(包括汽车、行人和道路)提供像素级标签。

二、负载网络

加载预先训练的语义分割网络。此示例加载在 CamVid 数据集上训练的 Deeplab v3+ 网络,其权重从预训练的 ResNet-18 网络初始化。

三、加载图像

加载图像及其相应的标签图像。该图像是从正在驾驶的汽车获得的街道视图。标注图像包含真实值像素标注。在此示例中,您将创建一个对抗性示例,该示例导致语义分割网络对类中的像素进行错误分类。

使用此示例末尾定义的支持函数将标签图像转换为分类数组。数据集包含 32 个类。使用此示例末尾定义的支持函数,通过将原始数据集中的多个类分组在一起,将类数减少到 11 个。使用支持函数为 11 个类创建颜色图。显示带有真实值标签的像素的叠加层的图像。

四、创建对抗性目标标签

要创建对抗性示例,您必须为希望网络错误分类的每个像素指定对抗性目标标签。在此示例中,目的是让网络将像素错误分类为另一个类。因此,您需要为每个像素指定目标类。

使用此示例末尾定义的支持函数,通过将所有像素标签替换为不在类 [3] 中的最接近像素的标签来创建对抗性目标标签。显示对抗性目标标签。

准备数据,要使用图像和对抗性目标标签创建对抗性示例,必须先准备图像和标签。

五、创建对抗性示例

使用对抗性目标标签通过基本迭代方法 (BIM)创建对抗性示例。BIM 迭代计算梯度∇ X L(X,T)损失函数L关于图像X您要查找对抗性示例和对抗性目标标签T.此梯度的负数描述了“推送”图像以使输出更接近所需类标签的方向。

参数一个控制单个迭代的推送大小。每次迭代后,裁剪扰动以确保幅度不超过E.参数E定义所有迭代中总更改的大小上限。一个更大的E值会增加生成错误分类图像的几率,但会使图像中的更改更加明显。

显示原始图像、添加到图像的扰动和对抗图像。

增加的扰动是难以察觉的,这表明对抗性示例如何利用网络中的鲁棒性问题。

六、预测像素标签

使用语义分割网络预测原始图像和对抗图像的类标签。

显示两个图像的预测叠加。

网络正确识别原始图像中的骑自行车者。但是,由于难以察觉的扰动,网络在对抗图像中错误地标记了骑自行车的人。

七、程序

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

程序下载:基于matlab使用迭代方法为语义分割网络生成对抗性示例资源-CSDN文库

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

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

相关文章

5、架构:通用 Schema 设计

作为前端开发一定会非常熟悉 AST 抽象语法树(Abstract Syntax Tree),当浏览器加载 JS 代码时,它会首先将代码转换为一棵抽象语法树(AST),然后再根据 AST 来渲染对应的 DOM 结构,对于…

接口自动化核心知识点浓缩,为面试加分

日常接触到的接口自动化从实际目标可以划分为两大类: 为模拟测试数据而开展的接口自动化 这种接口自动化大多是单次执行,目的很明确是为了功能测试创造测试数据,节约人工造数据的时间和人工成本,提高功能测试人员的测试效率。 …

Nuendo 12.0.70 资源下载及功能介绍

简介 Nuendo 12是一款屡获殊荣的影视、游戏和沉浸式环绕声音频后期制作软件,Nuendo 12在对白录音和编辑方面做了重大改进,为你的录音带来新声。Nuendo12把“对白”制作放到一个非常重要的位置,比以前更加贴近用户,它甚至起了一个…

读书笔记-《ON JAVA 中文版》-摘要19[第十八章 字符串-2]

文章目录 第十八章 字符串6. 常规表达式6.1 基础6.2 创建正则表达式6.3 量词6.4 CharSequence6.5 Pattern 和 Matcher6.5.1 find()6.5.2 组(Groups)6.5.3 start() 和 end()6.5.4 split()6.5.5 替换操作6.5.6 reset() 7. 扫描输入7.1 Scanner 分隔符7.2 用…

Python 解释器

文章目录 每日一句正能量前言交互式编程脚本式编程 每日一句正能量 不是因为生活太现实,而对生活失望;而是知道生活太现实,所以更要用心的活下去。给自己一个拥抱。 前言 Python 解释器是运行 Python 代码的工具,主要分为官方提供…

MySQL索引结构(面试题)、索引分类、语法

2索引 2.1 索引概述 2.1.1 介绍 ​ 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据&#xff…

【2022吴恩达机器学习课程视频翻译笔记】3.2线性回归模型-part-2

3.2线性回归模型-part-2 Let’s look in this video at the process of how supervised learning works. Supervised learning algorithm will input a dataset and then what exactly does it do and what does it output? Let’s find out in this video. Recall that a tr…

BeanUtils.copyProperties的11个坑

前言 我们日常开发中,经常涉及到DO、DTO、VO对象属性拷贝赋值,很容易想到org.springframework.beans.BeanUtils的copyProperties 。它会自动通过反射机制获取源对象和目标对象的属性,并将对应的属性值进行复制。可以减少手动编写属性复制代码…

高级Android开发人员枯竭,在这个利润丰厚的领域如何蓬勃发展

为什么高级人才供不应求? 技术行业的发展速度非常快,新的技术和工具不断涌现,导致技能需求不断演变。这使得不断更新和学习变得至关重要。行业发展速度超过了教育和培训体系的能力跟进。传统教育往往滞后于最新的技术趋势和实践,…

暑期数学建模赛事总结--小白快速入门数学建模

暑期数学建模赛事总结–小白快速入门数学建模 欢迎各位大神小白一起参加数学建模!!! 这是我自己总结的一些关于数学建模的代码和资料,放在github上供大家参考:https://github.com/HuaandQi/Mathematical-modeling.git…

线程 线程池

大屏展示 10个线程同时查询统计各个表,并行处理, 主线程 把任务投递 给 线程池,线程池中调出一个线程去处理 希望以一种 轻量级的 方式 实现 "i" 线程安全 : compareAndSwap() : 针对某个变量实现 或 -- 确保线程安全 …

QSciintilla_gpl-2.10.8版本在QT6中编译问题解决方案汇总

1. QWheelEvent (1)event->delta()需修改为event->angleDelta().y(); 2. sprintf": 不是 "QString" 的成员 sprintf->asprintf 3. 无法打开QTextCodec .pro文件中添加 greaterThan(QT_MAJOR_VERSION, 5) { …

试运行llama-7B、vicuna-7b-delta-v1.1和vicuna-7b-v1.3

Chatgpt的出现给NLP领域带来了让人振奋的消息,可以很逼真的模拟人的对话,回答人们提出的问题,不过Chatgpt参数量,规模,训练代价都很昂贵。 幸运的是,出现了开源的一些相对小的模型,可以在本地或…

MySQL安装失败starting the sever

MySQL安装失败starting the sever 如果电脑是第一次安装MySQL,一般不会出现这样的报错。starting the sever失败,通常是因为上次安装该软件没有清除干净。 第一种解决方法:完全卸载mysql,重新安装 完全卸载该软件的办法&#…

Linux基础开发工具(yum、vim、gcc/g++、Makefile、gdb、git)

目录 一. yum yum list yum install yum remove 二. vim 命令模式 底行模式 多文件操作 批量注释 三. gcc/g 四. make/Makefile 五.gdb 六. git git clone git commit git push 一. yum 作为一款操作系统,免不了需要一些定制化的内容,这…

工地为什么要做能耗监测?

随着全球气候变化的影响日益严重,环保意识逐渐深入人心,绿色建筑和节能减排成为了建筑行业的热门话题。而在建筑工地中,能耗监测成为了一项不可或缺的任务。本文将从以下几个方面来探讨工地为什么要做能耗监测。 首先,能耗监测有助…

【新星计划·2023】Linux目录与文件之权限意义讲解

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 通过上篇文章,我们知道了Linux 系统内文件的三种身份(拥有者、群组与其他人),还知道每种身份都有三种权限(rwx)…

【小梦C嘎嘎——启航篇】C++ 基础中的精华(一)

C 基础中的精华(一)😎 前言🙌1、namespace(命名空间)的经典知识1.1 namespace 日常如何正确使用?1.2 cout和cin来源,以及为什么相对于C语言中的printf和scanf有自动识别数据类型的功…

记一次用arthas解决springboot项目引入ShardingSphere后启动过慢的问题

背景: springboot项目中由于需要加入了ShardingSphere,之后就发现项目启动时间由之前的十多秒,延长到了70秒左右,去除ShardingSphere之后又恢复十多秒。一直以为是ShardingSphere的问题,网上搜罗了各种信息&#xff0c…

华安联大 | 蓝牙人员定位与UWB人员定位技术的应用案例分析

引言:随着物联网和定位技术的快速发展,蓝牙人员定位和UWB人员定位成为了人员定位领域的两种重要技术,两者都能在安防、工业、矿山、救灾、海航等领域得到广泛的应用。 在这有用户或会问蓝牙人员定位和UWB人员定位谁优谁劣,那么这…