小样,加张图你就不认识我了?“补丁”模型骗你没商量!| 技术头条
作者 | Simen Thys, Wiebe Van Ranst(共同一作)
译者 | 刘畅
编辑 | Rachel、Jane
出品 | AI科技大本营(id:agznai100)
【导语】本文介绍了一个可以生成欺骗性补丁的系统模型,通过将该补丁放置在固定位置,人们能够使自己在行人检测器中获得“隐身”的效果。作者对比了三个不同的生成补丁的方法,并在实际场景中进行了评估,发现基于最小化目标分数的方法产生的补丁表现最优。
在过去几年中,机器学习中的对抗攻击方向吸引了越来越多的研究者。仅需要对卷积神经网络的输入进行细微的改变,模型就会被扰动,然后输出完全不同的结果。一种攻击方式是通过轻微改变输入图像的像素值来欺骗分类器,使其输出错误的类。其他的方法则是试图学习一个“补丁” (patches),这个补丁可以应用于某个对象去欺骗检测器和分类器。其中的一些方法的确成功地欺骗了分类器和检测器,这种欺骗性攻击在现实生活中也是可行的。但是,现有方法都是针对几乎没有类内变化的目标(例如停止标志)。对于此类目标,常用的方法为使用对象的已知结构在其上生成一个对抗性补丁。
在本文中,作者提出了一种方法,它可以针对具有许多类内变化的目标生成对抗补丁,比如人。本文的目标是生成能够成功地将行人隐藏在行人检测器中的补丁。例如,入侵者可以通过在他们的身体前方拿着一块小纸板,绕过监视系统。
从本文的实验结果可以看到,该系统能够显著降低行人检测器的准确性。当使用摄像头时,其方法在现实生活场景中也能很好地运行。该文章是第一篇对类内变化较多的目标进行攻击的研究。
图1:论文算法创建的一个能够成功躲避行人检测器的对抗补丁。 左:成功检测到没有补丁的人。 右:持有补丁的人未被检测到。
卷积神经网络(CNNs)的兴起在计算机视觉领域取得了巨大成功。 CNN在图像数据中进行端到端的学习在各种计算机视觉任务中都获得最佳结果。由于这些网络结构的深度,神经网络能够从网络底部(数据进入的地方)学习到非常基本的过滤器特征,并在网络顶部学习出非常抽象的高级特征。典型的CNN结构往往包含数百万个学习参数。虽然这种方法可以得到非常精确的模型,但模型的可解释性却大大降低。人们很难准确理解网络将人的图像分类为人的原因。通过对很多人类图像的学习,神经网络能够了解了一个人看起来是什么样子的。我们可以通过比较模型的输出与人类注释的图像,来评估模型对行人检测的效果。然而,以这种方式评估模型仅告诉我们检测器在某个测试集上的执行情况。并且,测试集通常不包含诱导模型进行错误判断的样例,也不包含专门欺骗模型的样例。对于不太可能发生攻击的应用程序(例如老年人的跌倒检测),这个问题无可厚非,但在安全系统中可能会带来问题。安全系统的人员检测模型中的漏洞可能被用于绕过建筑物中的监视摄像机。
该文章对人类检测系统遭受攻击的风险进行了探讨。作者创造了一个小的(40厘米×40厘米)对抗性补丁(adverserial patch),用于使人躲过目标检测器的检测。演示如图1所示。
工作简述
已有的基于CNN的对抗攻击主要针对分类任务、面部识别和物体探测。对于分类任务的攻击,Szegedy等人的研究较为成功,他们通过给图像进行轻微的像素调整,使得模型将图像归为错误的分类,而这种像素调整对于人眼来说是无法分辨的。在关于面部识别攻击的研究中,Sharif等人使用印刷的眼镜图像骗过了人脸识别系统。
现有的物体检测模型主要包括FCN和Faster-RCNN两种,一些研究尝试对上述两种模型进行欺骗和攻击。Chen等人利用交通标志中的停止标志,尝试对Faster-RCNN这一物体探测模型进行欺骗,并获得了成功。但是,已有的工作主要是针对没有类内变化的目标。对适用于类间变化大的类的目标攻击方法的探讨是较少的。
在现有的攻击算法中,主要包括白盒攻击和黑盒攻击两种。其中,使用黑盒攻击的攻击者不了解模型的具体参数和算法,仅通过观察模型的输入和输出进行攻击。而白盒攻击的攻击者对模型结构、参数都较为了解,可以直接对模型进行针对性的攻击。无论是黑盒攻击还是白盒攻击,都可以用于生成针对模型的对抗性样本,使得样本对模型具有欺骗性。
方法
这项工作的目标是创建一个能够生成可打印的对抗补丁的系统,该补丁可用于欺骗行人检测器。已有研究表明,对现实世界中的物体探测器进行对抗性攻击是可能的。在这项工作中,作者专注于为人生成对抗性补丁。 本文通过图像像素的优化过程,尝试在大型数据集上找到能够有效降低行人检测的准确率的补丁。在下面的部分中,作者深入解释了生成这些对抗补丁的过程。
优化目标主要包含三部分:
不可打印性得分公式,这个表示补丁中的颜色可以进行普通打印的程度
图像的总变化度,该函数确保优化器支持颜色过渡更加平缓的图像,并能防止噪声图像。如果相邻像素值的颜色相似,该分数就低,相邻像素值的颜色差异大,该分数就高。
Lobj是图像中的最大目标分数。该补丁的目标是隐藏图像中的人,因此,模型的训练目标是最小化检测器输出的物体或类别分数。
总损失函数由上面三部分内容构成。在计算时引入了缩放因子alpha和beta。模式使用的优化算法为Adam优化。针对Lobj的计算,可以参考图2.
图2:获取目标损失的概述
最小化检测器的输出概率
为了让检测器不能检测出人,作者尝试了三种不同的方法:一是仅最小化人这一类别的分类概率,二是仅最小化目标分数,三是结合着两者同时进行。通过第一种方法学到的补丁在视觉上类似于泰迪熊,由于补丁使得人类图像看起来类似于另一分类,其结果很难迁移到不包含该分类的模型中。另一种最小化目标分数的方法则不存在这种问题。
训练数据
与之前为交通标志生成对抗补丁的研究相比,为人创建对抗补丁更有挑战性:
人的外表变化很大:衣服,肤色,身材,姿势......与始终具有相同八角形状且通常是红色的停车标志不同。
人可以出现在许多不同的背景中。 而停车标志大多出现在街道一侧的相同环境中。
当人是朝向或者背对摄像头时,人的外观会有所不同。
在人身上放置补丁没有一致的位置。而在停止标志上,可以很容易地计算出补丁的确切位置。
为应对上述挑战,作者没有像已有研究那样人工修改目标对象的单个图像并进行不同的变换,二是使用了很多人的真实图像进行训练。在模型的训练中,具体步骤如下:首先在图像数据集上运行目标人物检测器。探测器会根据人在图像中出现的位置显示人的边界框。然后,作者将经过多种变换的补丁应用于图像中,补丁与边界狂的相对位置是固定不变的。之后,作者将得到的图像与其他图像一起批量送入检测器,并基于仍然被检测到人的图像计算损失函数。最后,在整个模型中进行反向传播,使用优化器进一步更改补丁中的像素,以便能更好的欺骗检测器。
上述方法的一个优势为,模型可使用的数据集不仅限于已标注的数据集。目标检测器可以对任何视频或图像集合生成边界框,这使得系统可以进行更有针对性的攻击。当模型从定位的环境中获得数据时,可以简单地使用该素材生成特定于该场景的补丁。
模型的测试使用了Inria 数据集的图像。这些图像主要是行人的全身图像,更适用于监控摄像头的应用。另外,MS COCO 和Pascal VOC 也是两个关于行人的数据集,但它们包含太多种类的人(例如一只手被注释为人),很难固定补丁的放置位置,因此没有使用。
使补丁具有更高的鲁棒性
本文的目标是针对必须在现实世界中使用的补丁。这意味着首先需要将这些布丁打印出来,然后由摄像机对其进行拍摄。在进行上述处理时,很多因素都会影响补丁的外观:光线可能会发生变化,补丁可能会稍微旋转,补丁相对于人的大小会发生变化,相机可能会稍微增加噪点或模糊补丁,视角可能不同......为了尽可能地考虑这一点,在将补丁应用到图像之前,作者对补丁进行一些转换。作者主要进行了以下随机转换,用于数据增强:
将补丁单向旋转20度
随机放大和缩小补丁
在补丁上添加随机噪声
随机改变补丁的亮度和对比度
需要强调的是,在对补丁进行随机更改的过程中,必须保证可以上述操作进行反向传播。
实验结果
在本节中,作者对补丁的有效性进行了评估。评估使用的数据集是Inria数据集的测试集,对补丁的评估过程与训练过程相同,并且包含了对补丁的随机转换。在实验中,作者试图使一些有可能把人隐藏起来的参数达到其最小值。作为对照,作者还将结果与包含随机噪声的补丁进行了比较,该补丁的评估方式与随机补丁的评估完全相同。图3显示了不同补丁的结果。 OBJ-CLS的目标是最小化目标得分和类得分的乘积,在OBJ中仅最小化目标得分,在CLS中仅最小化类得分。NOISE是用于对比的包含随机噪声的补丁,CLEAN是没有应用补丁的试验基线。 从这条PR曲线,我们可以清楚地看到生成的补丁(OBJ-CLS,OBJ和CLS)与随机生成的补丁的效果对比。我们还可以看到,与使用类分数相比,最小化目标分数(OBJ)带来的影响最大(即具有最低的平均准确度(AP))。
图3:与随机噪声补丁(NOISE)和原始图像(CLEAN)相比,不同方法下(OBJ-CLS,OBJ和CLS)的PR曲线。
作者对于在现实情况中补丁的的效果也进行了检验,在大多数情况下补丁都能成功欺骗行人检测器。由于在模型的训练中,补丁相对于边界框的位置使固定的,因此补丁放置的位置会对模型效果产生一定影响。
结论
在本文中,作者提出了一个可生成行人检测器对抗补丁的系统,该系统生成的补丁可以打印出来并在现实世界中使用。作者在实验中对比了不同的补丁生成方法,并发现最小化目标损失能产生最有效的补丁。
从文中对打印出来的补丁在真实世界中的测试实验中可以发现,该系统产生的补丁非常适用于欺骗行人检测器,这表明使用类似检测器的安全系统可能易受到这种攻击。
作者还提到,如果将这种技术与衣服结合起来,就可以设计出一种T恤印花,让穿上这种衣服的人能成功的躲避使用YOLO检测器的智能摄像头。
在未来,作者希望在以下方面进一步探讨此问题。一是通过对输入数据进行更多(仿射)变换或使用模拟数据,进一步提高补丁生成系统的鲁棒性。 二是尝试提高模型的迁移能力。该系统产生的补丁尚不能很好地迁移到完全不同的模型结构中,作者希望在未来通过使用多种结构的模型进行训练,来提高迁移能力。
原文链接:
https://www.arxiv-vanity.com/papers/1904.08653/
代码:
https://gitlab.com/EAVISE/adversarial-yolo
◆
CTA核心技术及应用峰会
◆
5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。
目前,确认出席的演讲嘉宾有漆桂林(东南大学教授、博士生导师)、李涓子(清华大学长聘教授、博士生导师,藏经阁计划学术负责人)、肖仰华(复旦大学教授、博士生导师)、谢殿侠(海知智能创始人&CEO)、谢晓辉(Hulu首席研究主管)、刘杉(腾讯音视频实验室负责人)、王昊奋(深圳狗尾草智能科技有限公司(Gowild)CTO)、朱其立(上海交通大学电子信息与电气工程学院教授)等。
目前会议早鸟票发售中(原票价1099元),点击阅读原文即刻抢购。扫码添加小助手微信 15101014297,备注CTA,了解大会详情。
推荐阅读
写代码这条路,能走多远?阿里算法专家告诉你
深度解析:特斯拉「最强」自动驾驶芯片?
我去面试Python岗位了,和你分享一些经验
Python、Java、C#、Perl 创始人聚首,编程语言要变天?
最强编程语言 Java 和最受欢迎之 Python 的巅峰对决
开发者如何写好技术简历?
回报率29%! 大神用情感分析创建一个比特币交易算法, 原来交易玩的是心理战
和 996 对着干的百亿巨头:不打卡,不设 KPI,福利好到爆,却称霸行业 20 年!
她说:为啥程序员都特想要机械键盘?这答案我服!
❤点击阅读原文,了解「CTA核心技术及应用峰会」
相关文章:

【经验】如何查看gcc、g++不加-std时的默认版本
一、测试gcc 1、测试代码:c.c #include <stdio.h>int main(void) { #ifdef __STDC_VERSION__printf("__STDC_VERSION__ %ld \n", __STDC_VERSION__); #endif #ifdef __STRICT_ANSI__printf("__STRICT_ANSI__ %d \n", __STRICT_ANSI__); #endifre…

发布开源框架到CocoaPods入坑指南
个人原文博客地址: 发布开源框架到CocoaPods入坑指南在开发过程中一定会用到一些第三方框架, 只要安装了CocoaPods, 然后通过pod install命令, 就可以集成框架到项目中了可是如果想要把自己的框架或者组件也开源出去, 让别人也可以使用, 那该如何入手 ?对于CocoaPods还不是很了…

linux下打印机共享及监控
操作系统:centos6.0 主要软件:cups,samba,ghostpostscript 打印机:richo 3025 主要功能:通过samba将打印机共享给局域网用户,并实现对打印内容的监控 主要有三大步:本机安装打印机,通…

【H.264】x264命令详解:x264 --fullhelp
1、简述 宏区块: macroblock:。是一种图像压缩的术语。 宏区块是运动预测的基本单位,一张完整的图像(frame)通常会被切割成几个宏区块。h.264 的宏区块大小是可变的,常用 16x16 pixels。 帧类型 “帧”基础知识: 影片可以看作是由一张张连续的图片组成的,每幅图片就…

东大漆桂林、清华李涓子、复旦肖仰华等大牛确认出席CTA峰会!5月一起打卡杭州...
5月26日-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心召开。首届CTA核心技术及应用峰会将聚焦人工智能,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。20…

【Oracle Database】数据库用户管理
创建用户 SQL> create user soe identified by soe default tablespace soe temporary tablespace temp; User created.查询用户的默认表空间 SQL> set line 200 SQL> col username for a30 SQL> col account_status for a20 SQL> select username,account_stat…

MySQL两主多从,且故障转移配置
一、角色划分1、MySQL数据库规划主机名 IP地址 角色 mysql_server_idweiliaodb1 192.168.1.233 master1 1weiliaodb2 192.168.1.234 master2 2weiliaodb3 192.168.1.235 slave1 3monitor 192.168.1.240 mmm_mon -2、虚拟IP规划IP地址 角色192.168.1.10 writer192.168.1.20 read…

Go开发者路线图2019,请收下这份指南
整理 | Rachel责编 | 阿司匹林出品 | AI科技大本营(ID: rgznai100)Go是Google开发的一种静态、强类型、编译型、并发型,并具有垃圾回收功能的类C编程语言。2009以开源项目的形式发布,2012年发布1.0稳定版本,距今已经十…

【Ubuntu】在Ubuntu中设置永久的DNS
1、问题描述 ping不通域名,比如“ping www.baidu.com”时,报错“ping: unknown host www.baidu.com”。这是因为ubuntu默认情况下没有设置DNS。 在ubuntu上设置DNS的方法,修改“/etc/resolv.conf”,添加“nameserver 8.8.8.8”&a…

实习期间问题总结
主要针对实习期间,接触的部分问题进行总结,后续会不间断的补充,作为实习期间的回顾。 1,git ,github和gitlab的关系 git 是一个版本控制工具,github是一个用git做版本控制的项目托管平台,他是一个网站&…

在windows sever 2008系统中如何添加桌面体验功能
1.开启THEMES服务:运行-services.msc -找到Themes服务项,默认是禁用,改为自动。 2.运行服务器管理器:左窗口选择功能-右边点“添加功能”在弹出的“添加功能向导”窗口中拖到最下面,…

17篇论文入选CVPR 2019,百度AI都在关注什么?(附论文地址)
整理 | 阿司匹林出品 | AI科技大本营(公众号id:rgznai100)计算机视觉和模式识别大会CVPR 2019即将于6月在美国长滩召开,作为人工智能领域计算机视觉方向的重要学术会议,CVPR每年都会吸引全球最顶尖的学术机构和公司的研…

【GStreamer】在x264enc中设置profile级别
1、问题描述 在使用GStreamer生成h.264的rtmp流时,不知道怎么设置h.264的profile级别。默认一直是“high”: video/x-h264, ... profile=(string)high, ...2、解决方法 查看官网手册中,有如下解释 The H264 profile that is eventually used depends on a few settings. …

js 使用a标签 下载资源
文档 let data new Blob([hello ajanuw], {type: application/text})let src window.URL.createObjectURL(data)let dl document.createElement(a)dl.href src;dl.download hello.txtdl.click() 切片下载 let data new Blob([hello ajanuw], {type: application/text }) …

linux 新增swap分区
由于用vmware 物理机转换成虚拟机时 忘记把swap 分区转过来了,只能手动在系统里添加了 1建立1G 大小的交换分区 # dd if/dev/zore of/opt/swapfile bs1M count1024 2,设置交换分区文件 # mkswap /opt/swapfile 3.立即启用交换分区文件 # swapon /opt/swapfile 4.使系…

通过cookies跳过验证码登陆页面,直接访问网站的其它URL
我每次手动访问去NN网的一家酒店,就不需要登陆,一旦我用脚本打开就会让我登陆,而登陆页面又有验证码,不想识别验证码,所以就想:“通过cookies跳过验证码登陆页面,直接访问网站的其它URL”转载虫…

可视化深入理解损失函数与梯度下降 | 技术头条
作者 | Hugegene译者 | 刘畅责编 | Rachel出品 | AI科技大本营(id:rgznai100)【导语】本文对梯度函数和损失函数间的关系进行了介绍,并通过可视化方式进行了详细展示。另外,作者对三种常见的损失函数和两种常用的激活函…

【Qt】Linux上设置自启动后qApp->applicationDirPath()的返回值问题
1、问题描述 开发程序过程中,使用qApp->applicationDirPath()返回程序所在目录,一直没问题。但是在设置自启动后,qApp->applicationDirPath()返回的目录不是程序所在目录。 2、原因分析 查看qApp->applicationDirPath()官方手册&…

sqlserver 行转列
还写了一篇Linq 实现 DataTable 行转列有时间大家可以看一下 sqlserver把行转成列在我们编码中是经常遇到的我做一个小例子大家看一下 1 --创建一个表 2 create table PayPhoneMoney 3 ( 4 id int identity(1,1), 5 userName Nvarchar(20), 6 payType nvarchar(20)…

Javascript闭包和闭包的几种写法及用途
好久没有写博客了,过了一个十一长假都变懒了,今天总算是恢复状态了。好了,进入正题,今天来说一说javascript里面的闭包吧!本篇博客主要讲一些实用的东西,主要将闭包的写法、用法和用途。 一、什么是闭包和闭…

【GStreamer】使用capsfilter设置x264enc中的profile级别
1、问题描述 在【GStreamer】在x264enc中设置profile级别中,通过设置x264enc的属性,只将profile由high级别切换到main,但是在切换到baseline时,失败了。 2、解决方法 这里使用capsfilter,直接指定x264enc的profile。相关代码如下: // 创建元素 GstElement *h264enc =…

一文帮你梳理清楚:奇异值分解和矩阵分解 | 技术头条
作者 | K. Delphino译者 | Linstancy编辑 | Rachel出品 | AI科技大本营(id:rgznai100)【导读】在推荐系统的相关研究中,我们常常用到两个相关概念:矩阵分解和奇异值分解。这两个概念是同一种算法吗?两者到底…

[转]程序员技术练级攻略
2019独角兽企业重金招聘Python工程师标准>>> 月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我࿰…

聊天机器人落地及进阶实战 | 公开课速记
嘉宾 | 邵浩编辑 | suiling来源 | AI科技大本营在线公开课近年来,聊天机器人技术及产品得到了快速的发展。聊天机器人作为人工智能技术的杀手级应用,发展得如火如荼,各种智能硬件层出不穷。本次公开课中,AI科技大本营联合电子工业…

【GStreamer】官网基本教程学习(basic-tutorial)
目录 下载和编译basic-tutorial-1.c 直接创建管道播放视频basic-tutorial-2.c 创建元件-->装入管道-->连接元件0、gstreamer 函数调用顺序1、元素 videotestsrc 的 pattern 属性详解2、GST_BIN 将其它类型指针转换成 GstBin*basic-tutorial-3.c 信号触发后再连接元件0、g…

IdentityServer4关于多客户端和API的最佳实践【含多类型客户端和API资源,以及客户端分组实践】【中】...
上一篇文章中,我们已经完成了服务端数据库的搭建,本篇主要处理多【传统HTTP】【依赖CORE环境】客户端之间协同在线【SSO】以及不需要SSO的场景处理。 目标: 1)实现多类型客户端接入IdentityServer 后文简称【IDSV】 2)…

WEB SSH Ajaxterm客户端配置(1)
Ajaxterm是一款基于Web的SSH客户端软件,它是采用Python编写的,这也就保证了它能在多种Linux发行版的系统中使用,同时它的安装非常简单。实验环境:Centos 5.5 ip:192.168.20.165pcre-7.8.tar.gzAjaxterm-0.10.tar.gzn…

如何为回归问题选择最合适的机器学习方法?
作者 | 何从庆本文经授权转载自 AI算法之心(id:AIHeartForYou)在目前的机器学习领域中,最常见的三种任务就是:回归分析、分类分析、聚类分析。在之前的文章中,我曾写过一篇《15分钟带你入门sklearn与机器学…

【Qt】获取本地IP(IPv4)
1、问题描述 获取本地IP列表有“127.0.0.1”、IPv4、IPv6等,一般使用IPv4,如何从已经获取的IP列表中挑出IPv4。 2、解决方法 QString ipv4; auto ips = QNetworkInterface::allAddresses(); foreach (auto ip, ipps) {if ( (ip.

2.2元组介绍+字符串操作
元组可以理解为“一旦创建就不能再修改的列表”,所以也叫只读列表 语法:names("A","B","C","D") 他只有两个方法: ①count ②index 字符串操作: 示例:name"chan" 1…