使用迭代方法为语义分割网络生成对抗性

简介: 使用迭代方法为语义分割网络生成对抗性。

​一、前言
使用基本迭代方法 (BIM) 为语义分割网络生成对抗性示例。
语义分割是将图像中的每个像素分配给类标签的过程,例如汽车、自行车、人或天空。语义分割的应用包括自动驾驶的道路分割和医疗诊断的癌细胞分割。

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

此示例使用剑桥大学的 CamVid数据集生成对抗性示例。CamVid数据集是包含驾驶时获得的街道级视图的图像集合。该数据集为 32 个语义类(包括汽车、行人和道路)提供像素级标签。
二、负载网络
加载预先训练的语义分割网络。此示例加载在 CamVid 数据集上训练的 Deeplab v3+ 网络,其权重从预训练的 ResNet-18 网络初始化。

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

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

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

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

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

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

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

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

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

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

4.png

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

目录
相关文章
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
407 0
|
2月前
|
机器学习/深度学习 数据采集 边缘计算
基于灰色神经网络的预测方法
基于灰色神经网络的预测方法
178 0
|
3月前
|
算法 Python
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
【EI复现】考虑网络动态重构的分布式电源选址定容优化方法(Matlab代码实现)
102 0
|
4月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
219 0
|
5月前
|
存储 Linux 容器
【Container App】在容器中抓取网络包的方法
本文介绍在Azure Container App中安装tcpdump抓取网络包,并通过Storage Account上传抓包文件的方法。内容包括使用curl和nc测试外部接口连通性、长Ping端口、安装tcpdump、抓取网络包、以及通过crul命令上传文件至Azure Storage。适用于需要分析网络请求和排查网络问题的场景。
208 1
|
5月前
|
机器学习/深度学习 边缘计算 算法
基于BP神经网络的电池容量预测方法研究
基于BP神经网络的电池容量预测方法研究
|
11月前
|
监控 安全 网络安全
深入解析PDCERF:网络安全应急响应的六阶段方法
PDCERF是网络安全应急响应的六阶段方法,涵盖准备、检测、抑制、根除、恢复和跟进。本文详细解析各阶段目标与操作步骤,并附图例,助读者理解与应用,提升组织应对安全事件的能力。
1727 89
|
7月前
计算网络号的直接方法
子网掩码用于区分IP地址中的网络部分和主机部分,连续的“1”表示网络位,“0”表示主机位。例如,255.255.255.0 的二进制为 11111111.11111111.11111111.00000000,前24位是网络部分。通过子网掩码可提取网络号,如 IP 192.168.1.10 与子网掩码 255.255.255.0 的网络号为 192.168.1.0。此外,文档还介绍了十进制与二进制间的转换方法,帮助理解IP地址的组成与计算。
519 11
|
9月前
|
缓存 数据中心 网络架构
5个减少网络延迟的简单方法
高速互联网对工作与娱乐至关重要,延迟和断线会严重影响效率和体验。本文探讨了导致连接缓慢的三个关键因素:吞吐量、带宽和延迟,并提供了减少延迟的实用方法。包括重启设备、关闭占用带宽的程序、使用有线连接、优化数据中心位置以及添加内容分发网络 (CDN) 等策略。虽然完全消除延迟不可能,但通过这些方法可显著改善网络性能。
2415 7
|
9月前
|
Kubernetes Shell Windows
【Azure K8S | AKS】在AKS的节点中抓取目标POD的网络包方法分享
在AKS中遇到复杂网络问题时,可通过以下步骤进入特定POD抓取网络包进行分析:1. 使用`kubectl get pods`确认Pod所在Node;2. 通过`kubectl node-shell`登录Node;3. 使用`crictl ps`找到Pod的Container ID;4. 获取PID并使用`nsenter`进入Pod的网络空间;5. 在`/var/tmp`目录下使用`tcpdump`抓包。完成后按Ctrl+C停止抓包。
355 12

热门文章

最新文章