【论文笔记】advPattern
【论文题目】
advPattern: Physical-World Attacks on Deep Person Re-Identification via Adversarially Transformable Patterns
Abstract
本文首次尝试对深度reID实施鲁棒的物理世界攻击。提出了一种新颖的攻击算法,称为advPattern,用于在衣服上生成对抗模式,它通过学习不同相机之间图像对的变化来拉近来自同一相机的图像特征,同时将来自不同相机的特征推得更远。通过穿着本文设计的"隐形斗篷",敌手可以逃避人员搜索,或者假冒目标人员来欺骗物理世界中的深度身份识别模型。
使用Market1501和本文建立的PRCS数据集评估本文的可变换模式在对手服装上的有效性。实验结果表明,在逃避攻击下,reID模型匹配对手的rank-1准确率从87.9%下降到27.1%。此外,在模拟攻击下,敌手可以以47.1%的1级准确率和67.9 %的mAP模拟目标人物。结果表明,深度reID系统容易受到我们的物理攻击。
3 System Model
在这一部分中,我们首先介绍了威胁模型,然后介绍了我们的设计目标。
3.1 Threat Model
工作主要集中在对基于DNN的reID系统的物理可实现的攻击上,该系统可以实时捕获行人,并在非重叠的摄像机中自动搜索感兴趣的人。
通过将探测图像(probe image, 查询的图像)提取的特征与从其他相机实时采集的一组不断更新的画廊图像(gallery image)的特征进行比较,reID系统从图库中输出被认为与查询图像最相似的图像。
假设攻击者对训练好的深度reID模型具有白盒访问权限,因此他具有模型结构和参数的知识,并且只在推理阶段对reID模型实施攻击。不允许对手操纵数字查询图像或从相机收集的图库图像。 此外,对手在攻击reID系统时不得改变自己的物理外观,以免引起人类监督者的怀疑。这些合理的假设使得在reID系统上成功实现物质世界攻击具有一定的挑战性。
3.2 Design Objectives
提出两种攻击情境,逃避攻击(Evading Attack)和冒充攻击(Impersonation Attack)。
逃避攻击:躲避攻击是一种无针对性的攻击:reID模型被愚弄,将对手比作一个除自己之外的任何人,看起来好像对手穿着隐形斗篷。形式上,一个reID模型 f θ ( ⋅ , ⋅ ) f_\theta(\cdot,\cdot) fθ(⋅,⋅)输出一对图像的相似度分数,其中 θ \theta θ是模型参数。给定对手的探测图像 p a d v p_{adv} padv,对手的画廊图像 g a d v g_{adv} gadv,尝试找到一个贴到对手衣服上的图案 δ \delta δ,通过下面的优化问题,使得reID模型错误识别:
max D ( δ ) , s . t . R a n k ( f θ ( p a d v + δ , g a d v + δ ) ) > K (1) \max D(\delta), s.t. Rank(f_\theta(p_{adv+\delta},g_{adv+\delta}))>K\tag{1} maxD(δ),s.t.Rank(fθ(padv+δ,gadv+δ))>K(1)
其中 D ( ⋅ ) D(\cdot) D(⋅)用于测量生成的图案的真实性。与以往的工作旨在生成视觉上不明显的扰动不同,本文尝试为摄像头传感生成可见图案,同时使生成的图案与衣服上的自然装饰图案无法区分。只有当图像对 ( p a d v + δ , g a d v + δ ) (p_{adv+\delta},g_{adv+\delta}) (padv+δ,gadv+δ)排在top-K结果后面时,对抗模式才能成功构建,这意味着reID系统无法实现对手的跨相机图像匹配。
冒充攻击:是一种目标攻击(targetted attack),可以看作是逃避攻击的一种扩展:对手试图欺骗身份识别模型,使其将自己识别成目标身份。
给定目标身份图像 I t I_t It,形式上冒充攻击是优化下面的优化过程:
max D ( δ ) , s . t . { R a n k ( f θ ( p a d v + δ , g a d v + δ ) ) > K R a n k ( f θ ( p a d v + δ , I t ) ) < K (2) \max D(\delta), s.t. \begin{equation} \left\{ \begin{aligned} Rank(f_\theta(p_{adv+\delta},g_{adv+\delta}))>K \\ Rank(f_\theta(p_{adv+\delta}, I_t)) < K \end{aligned} \right. \end{equation}\tag{2} maxD(δ),s.t.{Rank(fθ(padv+δ,gadv+δ))>KRank(fθ(padv+δ,It))<K(2)
4 Adversarial Pattern Generation
4.1 Transformable Patterns across Camera Views
对于逃避攻击,给定由对手构建的生成集 X = ( x 1 , x 2 , ⋯ , x m ) X=(x_1,x_2,\cdots,x_m) X=(x1,x2,⋯,xm),包含了从 m m m个不同的摄像机捕捉的对手图片。对于每张 X X X中图像 x i x_i xi,计算对抗图像 x i ′ = o ( x i , T i ( δ ) ) x_i'=o(x_i,T_i(\delta)) xi′=o(xi,Ti(δ))。这表示将变换后的 x i x_i xi对应区域 T i ( ⋅ ) T_i(\cdot) Ti(⋅)与生成的图案 δ δ δ进行叠加。这里 T i ( δ ) T_i(\delta) Ti(δ)是对 δ \delta δ的透视变换操作。
通过优化下面的问题生成可转移的对抗性图案 δ \delta δ:
argmin δ ∑ i = 1 m ∑ j = 1 m f θ ( x i ′ , x j ′ ) , s . t . i ≠ j (3) {\underset{\delta}{\operatorname{arg min}}}\sum_{i=1}^m\sum_{j=1}^m f_\theta(x_i',x_j'),s.t. i\neq j\tag{3} δargmini=1∑mj=1∑mfθ(xi′,xj′),s.t.i=j(3)
迭代地最小化来自不同摄像机的对手图像的相似度分数,以通过生成的对抗模式逐渐进一步提取来自不同摄像机的对手图像的特征。
对于冒充攻击,给定目标行人图像 I t I_t It,优化下面问题:
argmin δ ∑ i = 1 m ∑ j = 1 m f θ ( x i ′ , x j ′ ) − α ( f θ ( x i ′ , I t ) + f θ ( x j ′ , I t ) ) , s . t . i ≠ j (4) {\underset{\delta}{\operatorname{arg min}}}\sum_{i=1}^m\sum_{j=1}^m f_\theta(x_i',x_j')-\alpha(f_\theta(x_i',I_t)+f_\theta(x_j',I_t)),s.t. i\neq j\tag{4} δargmini=1∑mj=1∑mfθ(xi′,xj′)−α(fθ(xi′,It)+fθ(xj′,It)),s.t.i=j(4)
其中 α \alpha α控制不同项的强度。通过在Eq.4中加入第二项,额外最大化敌手图像与目标人物图像的相似性分数,以生成一个更强大的对抗模式来拉近敌手图像与目标人物图像的提取特征。
4.2 Scalable Patterns in Varying Positions
对抗模式应该能够在任何位置实施成功的攻击,这意味着攻击应该与位置无关。为了实现这一目标,本文进一步改进了对抗模式在不同位置上的可扩展性。
由于无法精确捕捉视角变换的分布,因此采用多位置采样策略增加生成集的体量,以近似生成可扩展对抗性图案的图像分布。对抗者的扩展生成集 X C X^C XC是通过收集从各个摄像机视角拍摄的不同距离和角度的对抗者图像,并对原始收集的图像进行平移和缩放等图像变换合成实例构建的。
对于逃避攻击,从 X C X^C XC中给定三元组 t r i k = < x k o , x k + , x k − > tri_k=<x_k^o,x_k^+,x_k^-> trik=<xko,xk+,xk−>,其中 x k o x_k^o xko和 x k + x_k^+ xk+是同一摄像机下的行人图像,和 x k − x_k^- xk−是不同摄像机下的行人图像。对于 t r i k tri_k trik中的每个图像 x k x_k xk,计算对抗图像 x k ′ x_k' xk′为 o ( x k , T k ( δ ) ) o(x_k,T_k(\delta)) o(xk,Tk(δ))。每次迭代时随机选择一个三元组来求解下列优化问题:
argmin δ E t r i k ∼ X C f θ ( ( x k o ) ′ , ( x k − ) ′ ) − β f θ ( ( x k o ) ′ , ( x k + ) ′ ) (5) {\underset{\delta}{\operatorname{arg min}}} \mathbb{E}_{tri_k\sim X^C} f_\theta((x_k^o)',(x_k^-)')-\beta f_\theta((x_k^o)',(x_k^+)')\tag{5} δargminEtrik∼XCfθ((xko)′,(xk−)′)−βfθ((xko)′,(xk+)′)(5)
其中 β \beta β是权衡不同项的超参数。式中:目标式Eq.5是最小化 x k o x_k^o xko与 x k − x_k^- xk−的相似度得分,以区分跨摄像机视角的行人图像,而最大化 x k o x_k^o xko与 x k + x_k^+ xk+的相似度得分,以保持同一摄像机视角下行人图像的相似性。
在优化过程中,生成模式从增广生成集 X C X^C XC中学习可伸缩性,以拉近从同一相机中提取的人物图像特征,同时将来自不同相机的特征推得更远,如图4所示。

图4:可扩展对抗模式如何工作的说明。通过添加生成的对抗模式,将来自同一相机视图的对抗图像在特征空间中聚集在一起。同时,来自不同摄像头的对抗图像的距离变得更远。
对于冒充攻击,给定目标的图像集合 I t I^t It,每个迭代选择一个四元组 q u a d k = < x k o , x k + , x k − , t k > quad_k=<x_k^o,x_k^+,x_k^-,t_k> quadk=<xko,xk+,xk−,tk>,由 t r i k tri_k trik和从 I t I^t It中选择的 t k t_k tk组成。迭代地优化下面的问题:
argmax δ E q u a d k ∼ { X C , I t } f θ ( ( x k o ) ′ , t k ) + λ 1 f θ ( ( x k o ) ′ , ( x k + ) ′ ) − λ 2 f θ ( ( x k o ) ′ , ( x k − ) ′ ) (6) {\underset{\delta}{\operatorname{arg max}}}\mathbb{E}_{quad_k\sim \{X^C,I^t\}}f_\theta((x_k^o)',t_k)+\lambda_1 f_\theta((x_k^o)',(x_k^+)')-\lambda_2 f_\theta((x_k^o)',(x_k^-)')\tag{6} δargmaxEquadk∼{XC,It}fθ((xko)′,tk)+λ1fθ((xko)′,(xk+)′)−λ2fθ((xko)′,(xk−)′)(6)
其中 λ 1 \lambda_1 λ1和 λ 2 \lambda_2 λ2是控制不同目标的强度的超参数。
相关文章:
【论文笔记】advPattern
【论文题目】 advPattern: Physical-World Attacks on Deep Person Re-Identification via Adversarially Transformable Patterns Abstract 本文首次尝试对深度reID实施鲁棒的物理世界攻击。提出了一种新颖的攻击算法,称为advPattern,用于在衣服上生成…...
【鱼眼镜头11】Kannala-Brandt模型和Scaramuzza多项式模型区别,哪个更好?
Kannala-Brandt模型和Scaramuzza多项式模型在描述鱼眼相机畸变时都有其特定的数学表示和应用,但它们之间存在一些区别。以下是对两者区别的分点表示和归纳: 数学表示: Kannala-Brandt模型:它假设图像光心到投影点的距离和角度的多…...
微信小程序仿胖东来轮播和背景效果(有效果图)
效果图 .wxml <view class"swiper-index" style"--width--:{{windowWidth}}px;"><image src"{{swiperList[(cardCur bgIndex -1?swiperList.length - 1:cardCur bgIndex > swiperList.length -1?0:cardCur bgIndex)]}}" clas…...
10.SpringBoot 统一处理功能
文章目录 1.拦截器1.1在代码中的应用1.1.1定义拦截器1.1.2注册配置拦截器 1.2拦截器的作用1.3拦截器的实现 2.统一数据返回格式2.1 为什么需要统⼀数据返回格式?2.2 统⼀数据返回格式的实现 3.统一异常处理4.SpringBoot专业版创建项目无Java8版本怎么办?…...
【八股系列】为什么会有webpack配置?webpack的构建流程是什么?
文章目录 1. webpack是什么?2. 为什么需要webpack?3. webpack构建原理4. 构建流程通常包括以下步骤5. Webpack构建流程图 1. webpack是什么? Webpack是一个模块打包工具,它可以将项目中的各种静态资源,如JavaScript、…...
sdf 测试-2-openssl
任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务,参考网内容 和AI要给出详细过程,否则不得分。 0. 根据gmt0018标准,如何调用接口实现基于SM3求你的学号姓名的SM3值?(5‘) 使用OpenSSL实现SDF接…...
头歌springboot初体验
您好!看起来您可能在询问关于Spring Boot的入门体验。Spring Boot是一个开源的Java框架,它设计用来简化Spring应用程序的初始搭建和开发过程。以下是一些Spring Boot的基本概念和入门步骤: Spring Boot简介: Spring Boot是Spring框…...
矩阵对角化在机器学习中的奥秘与应用
在机器学习的广阔领域中,矩阵对角化作为一种重要的数学工具,扮演着不可或缺的角色。从基础的线性代数理论到复杂的机器学习算法,矩阵对角化都在其中发挥着重要的作用。 矩阵对角化的概念与原理 矩阵对角化是矩阵理论中的一个基本概念&#x…...
操作MySQL数据库
【一】针对库的增删查改(文件夹) 【1】创建数据库 (1)语法 创建一个存储数据表的文件夹。 注意:mysql中的编码字符集中utf-8,要换成utf8mb4。SQL语句中的中括号部分表示可选。 create database [if no…...
Linux shell 文件生成文件脚本(模拟生成文件、生成大量文件)
文章目录 Linux shell 文件生成文件脚本 Linux shell 文件生成文件脚本 TARGET_DIR:生成文件路径 NUM_FILES:生成文件数量 FILE_SIZE:生成文件大小(KB) #!/bin/bashset -e set -u# Directory where files will be cr…...
theharvester一键收集域名信息(KALI工具系列十)
目录 1、KALI LINUX简介 2、theharvester工具简介 3、在KALI中使用theharvester 3.1 用搜索引擎扫描 3.2 扫描并输出结果 3.3 扫描某域名下的所有账号 3.4 使用所有的搜索引擎扫描 4、总结 1、KALI LINUX简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版&…...
「动态规划」删除并获得点数
力扣原题链接,点击跳转。 给你一个整数数组nums。每次操作,可以删除任意一个值n,接着获得点数n,并同时删除所有的n-1和n1。你最多能获取多少点数? 这个问题的解法相当巧妙。我们可以把问题先转化一下。用类似计数排序…...
MongoDB CRUD操作:内嵌文档数组查询
MongoDB 内嵌文档数组查询 文章目录 MongoDB 内嵌文档数组查询查询数组内嵌文档为文档数组中的字段指定查询条件指定文档数组内嵌文档字段的查询条件使用数组索引查询内嵌文档的字段 为文档数组指定多个条件单个内嵌文档满足内嵌字段的多个查询条件符合标准的元素组合 使用 Mon…...
【C++】每日一题 50 Pow(x,n)
实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,x^n )。 当需要计算x的n次幂时,可以使用递归或者迭代的方式来实现。 #include <iostream>double myPow(double x, int n) {if (n 0) {return 1.0;} else if (…...
HG/T 6088-2022 透水道路用涂料检测
透水混凝土是指由水泥、矿物掺合料、骨料、外加剂及水等主要材料经拌合形成的,具有透水功能的混凝土材料,用于其表面的涂料称为透水道路用涂料。 HG/T 6088-2022透水道路用涂料检测项目: 测试指标 测试方法 有害物质限量 GB 38468 在容器…...
linux定时清理docker日志脚本
Linux 定时清理 Docker 日志的脚本与配置指南 在使用 Docker 容器化应用程序时,日志文件可能会迅速增长,占用大量磁盘空间。为了保持系统的稳定性和高效运行,定期清理 Docker 日志文件是必要的。本文将介绍如何编写一个 Linux 脚本来清理 Docker 日志文件,并通过 cron 定时…...
ROS学习笔记(16):夹缝循迹
0.前言 在笔记的第15期对巡墙驾驶的原理进行了简单讲解,而这期我们来讲一下夹缝循迹,也常被叫follow the gap,也更新一些概念。 1.探索式路径规划与避障 1.概念 无预先建图的路径规划叫探索式路径规划,例如巡墙循迹和夹缝循迹&…...
【MySQL精通之路】SQL语句(3)-锁和事务语句
目录 1.START TRANSACTION、COMMIT和ROLLBACK语句 2.无法回滚的语句 3.导致隐含COMMIT的语句 4.SAVEPOINT、ROLLBACK TO SAVEPOINT和RELEASE SAVEPOINT语句 5.LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语句 6.LOCK TABLE和UNLOCK TABLES语句 6.1 表锁获取 6.2 表锁释放…...
211大学计算机专业不考408,新增的交叉专业却考408!南京农业大学计算机考研考情分析!
南京农业大学信息科技学院可追溯至1981年成立的计算中心和1985年筹建的农业图书情报专业。1987年设立了农业图书情报系,1993 年农业图书情报系更名为信息管理系,本科专业名称也于1999年更名为信息管理与信息系统专业。1994年计算中心开始招收计算机应用专…...
利用java8 的 CompletableFuture 优化 Flink 程序,性能提升 50%
你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益: 了解大厂经验拥有和大厂相匹配的技术等 希望看什么,评论或者私信告诉我! 文章目录 一…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
JS手写代码篇----使用Promise封装AJAX请求
15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
