Adversarial Examples for Semantic Segmentation and Object Detection 阅读笔记
Adversarial Examples for Semantic Segmentation and Object Detection
(语义分割和目标检测中的对抗样本)
作者:Cihang Xie, Jianyu Wang, Zhishuai Zhang, Yuyin Zhou, Lingxi Xie, Alan Yuille, Department of Computer Science, The Johns Hopkins University, Baltimore, MD 21218 USA Baidu Research USA, Sunnyvale, CA 94089 USA
机构:The Johns Hopkins University(美国约翰霍普金斯大学)
全文链接:https://arxiv.org/abs/1703.08603
摘要:对抗样本:给自然图片加入视觉不可见的噪声,可能导致深层网络无法对图像进行正确分类。
如上样本x的label为熊猫,在对x添加部分干扰后,在人眼中仍然分为熊猫,但对深度模型,却将其错分为长臂猿,且给出了高达99.3%的置信度。
在本文中,我们将对抗样本扩展到语义分割和目标检测中。分割和检测都是建立在对图像目标分类的基础上,比如分割是对目标区域或者像素进行分类,目标检测是对目标proposal分类。思考是否能在一组像素/proposal的基础上优化损失函数,以产生对抗样本。以此为基础,本文提出了一种新的算法:密度对抗生成网络 (DAG),它产生了大量的对抗样本,并应用于最先进的分割和检测深度网络上。实验发现,对抗样本可以在具有不同训练数据、不同架构、甚至不同识别任务的网络之间传递的特性(对抗样本是相对鲁棒的, 即神经网络A生成的对抗样本,在神经网路B下仍然是,即使B是不同的网络结构、超参、和训练数据。因此,神经网络含有一些内在的盲点和非显示的特征,其结构与数据分布相关)。实验证明:具有相同结构的网络的可移植性更强大。对非均匀扰动进行累加,能获得更好的传递性,为黑盒对抗攻击提供了一种有效的方法。
介绍:深度网络在视觉识别和特征表示方面取得了成功,但它们往往对输入图像的微小扰动非常敏感。添加视觉上不可感知的噪声会导致图像分类失败。这些添加噪声的图像,通常被称为对抗样本。噪声落在大的高维特征空间的一些区域,而这些区域在训练过程中没有被探索。因此,研究这一问题不仅有助于理解深层网络的工作机制,而且为提高网络训练的鲁棒性提供了机会。
本文生成了用于语义分割和目标检测的对抗样本,并展示了它们的可移植性。这个问题很难,因为需要考虑更多目标(例如像素或proposal)的数量级。
基于每个目标都需要经历一个单独的分类的过程,作者提出了DAG。DAG是一种同时考虑所有目标并优化整体损失函数的算法。它的实现很简单,只需要为每个目标指定一个对抗性标签,并执行迭代梯度反向传播。
在检测中产生对抗样本比在分割中更困难,因为在目标检测中,目标的数量要大几个数量级。对于有k个像素的图像,可能的proposal数量是O(k^2),而像素只有O(k)。如果只考虑proposal的一个子集,在提取出一组新的proposal后,扰动图像仍然可以被正确识别。为了增加攻击的鲁棒性,在优化中改变IOU率来保护一个在持续增加的合理的proposal数量。在实验中验证了当原始图像上的proposal足够密集时,扰动图像上产生的新proposal很可能也会产生错误的识别结果。
随着网络,数据,任务的差异增大,DAG产生的扰动在一定程度上的传递难度增大,但DAG产生的扰动在一定程度上能够传递。有趣的是,加入两个或更多的扰动可以显著提高可移植性,为一些未知结构和/或属性的网络实施黑盒对抗攻击提供了一种有效的方法。
本文算法:
1. DAG。
X代表图片。
代表X的N个检测目标
代表N个检测目标的标签,用表示。
f( X, tn) ∈RC 去表示X的第n个目标的分类分数向量(在softmax之前)。生成对抗样本的目标是,对所有目标的预测结果都为错。比如对于每个n:
这里的r代表加入X的噪声。
为了这个目的,干脆给每个目标加入一个对抗标签l’n。l’n是从其他错误标签里随机选的。
用表示。
函数π用来表示这一随机选择排列函数。π:。所以:。
包括所有目标的损失函数可以写为:
通过是的所有目标都被错误预测能够使得L最小化:抑制正确分类,促进期望分类(即对抗分类)。
使用梯度下降来实现最优化。在第m次迭代中,表示当前图像(可能在添加了几个扰动之后)为Xm。把正确预测的叫做active target set:
然后计算关于输入数据的梯度,然后累积所有这些扰动:
注意:就算m增大时,这样就大大减少了开销。
为了避免数值不稳定,标准化:
γ=0.5是固定的超参数。
然后,我们将添加到当前图像Xm,并继续下一个迭代。
如果所有的目标都被预测为期望结果(即对抗结果),则算法终止 ,即,;或达到最大迭代次数,分割任务设为200,检测任务设为150。
最后的扰动r=。注意,在实践中我们通常会把原图减 去均值 作为输入图像。所以最终的对抗图像是 。 代表把每个像素归一化到[0,255]之间。
算法流程如下:
2. 为目标检测算法选择输入proposal。
DAG算法的一个关键问题是选择一个合理的τ集作为目标。
在语义分割任务中这个问题容易,目标是对所有像素产生不正确的分类,因此我们可以将每个像素设置为一个单独的目标,比如对图像点阵进行密集采样,这样计算复杂度与像素总数成正比。
在场景中的目标检测中,目标选择就很难了。因为整个可能的目标(边界盒子的proposal)在数量级上比语义分割大。用简单点的方法,只考虑通过一个sideway网络产生的proposal。比如:regional proposal 网络(RPN,是fast-RCNN结构中的一部分)。但是发现在对抗扰动r加入到原图像X中时,可能会因为新的输入X+r产生一个新的proposal,而且网络可能仍然能够正确地对这些新提议进行分类。为了解决这一问题,我们通过增加RPN中NMS(非极大值抑制)的阈值,使proposal变得非常密集。
在实践中把IOU从0.7调到0.9,每张图片的proposal从300张上升到3000张。使用这个更密集的目标集τ,最有可能的目标边界框,至少和一个输入proposal之间的距离只有一个像素,这样可以使得分类错误在相邻边界框之间转移。
从技术上讲,考虑RPN生成的proposal,保留所有positive proposals并丢弃其余的。positive proposals满足以下两个条件:(1)与最接近的真实物体框之间的IOU大于0.1。(2)对应的ground-truth的类别的置信度得分大于0:1。如果两个条件都适用于多个ground-truth 目标,选择IOU大的。proposals的标签被定义为相应的置信度类。该策略旨在为算法1选择高质量的目标。
3. 定量评估。
通过测量识别准确率的下降来评估本文方法,即使用原始测试图像和添加对抗性扰动后的图像,分别测量:均值IOU(mIOU)用于语义分割,均值平均精度(mAP)用于目标检测。
Adversarial Examples for Semantic Segmentation and Object Detection 阅读笔记的更多相关文章
- [YOLO]《You Only Look Once: Unified, Real-Time Object Detection》笔记
一.简单介绍 目标检测(Objection Detection)算是计算机视觉任务中比较常见的一个任务,该任务主要是对图像中特定的目标进行定位,通常是由一个矩形框来框出目标. 在深度学习CNN之前,传 ...
- Flow-Guided Feature Aggregation for Video Object Detection论文笔记
摘要 目前检测的准确率受物体视频中变化的影响,如运动模糊,镜头失焦等.现有工作是想要在框的级别上寻找时序信息,但这样的方法通常不能端到端训练.我们提出了flow-guided feature aggr ...
- Ubuntu18.04下安装、测试tensorflow/models Tensorflow Object Detection API 笔记
参考:https://www.jianshu.com/p/1ed2d9ce6a88 安装 安装conda+tensorflow库 下载protoc linux x64版,https://github. ...
- 《MIDINET: A CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORK FOR SYMBOLIC-DOMAIN MUSIC GENERATION》论文阅读笔记
出处 arXiv.org (引用量暂时只有3,too new)2017.7 SourceCode:https://github.com/RichardYang40148/MidiNet Abstrac ...
- JDK源码阅读:Object类阅读笔记
Object 1. @HotSpotIntrinsicCandidate @HotSpotIntrinsicCandidate public final native Class<?> g ...
- semantic segmentation 和instance segmentation
作者:周博磊链接:https://www.zhihu.com/question/51704852/answer/127120264来源:知乎著作权归作者所有,转载请联系作者获得授权. 图1. 这张图清 ...
- 论文阅读笔记五十五:DenseBox: Unifying Landmark Localization with End to End Object Detection(CVPR2015)
论文原址:https://arxiv.org/abs/1509.04874 github:https://github.com/CaptainEven/DenseBox 摘要 本文先提出了一个问题:如 ...
- 目标检测(一)RCNN--Rich feature hierarchies for accurate object detection and semantic segmentation(v5)
作者:Ross Girshick,Jeff Donahue,Trevor Darrell,Jitendra Malik 该论文提出了一种简单且可扩展的检测算法,在VOC2012数据集上取得的mAP比当 ...
- 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)
Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...
随机推荐
- TCGA一些数据库
最出名,http://www.cbioportal.org/ 特色:最基本的简单分析基因突变.共表达/共突变的基因,下载数据也可以,最常看的应该还是oncoPrint那个. 详细用法:TCGA数据库的 ...
- contenOs7编码问题
- Zookeeper初始(一)
量大,服务器压力大.需要用到分布式,集群. 问题1:三台机器,一个请求如何落到一台机器上?如何协调工作 问题2:集群如何选取leader? 问题3:既然是分布式,集群,一个请求只能有一台机器接接收并处 ...
- 2017-2018 ACM-ICPC German Collegiate Programming Contest (GCPC 2017)
A Drawing Borders 很多构造方法,下图可能是最简单的了 代码: #include<bits/stdc++.h> using namespace std; ; struct ...
- python 绘制点线
plot(x, y) #默认为蓝色实线 plot(x, y, 'r*') #红色星状标记 plot(x, y, 'go-') #带有圆圈标记的绿线 plot(x, y, 'ks:') #带有正方形标记 ...
- gpu相关
1.查看cuda版本 cat /usr/local/cuda/version.txt 2.查看cudnn版本 cat /usr/local/cuda/include/cudnn.h | grep CU ...
- [转]pycharm 2016.2注册码
在网上找了好多都不行,最后还是这个好使.在网上搜索了半天挨个试过来最终找到了License server的方法,由此分享给大家.这个也完全没有使用时间的限制~ 直接打开pycharm,选License ...
- Chrome的Copy Selector中带有\3
F12,右键copy selector就是这个结果. 查询到如下资料: https://stackoverflow.com/questions/20043347/css-css-coding-that ...
- 双目深度估计传统算法流程及OpenCV的编译注意事项
起因: 1. 双目立体视觉中双目深度估计是非常重要且基础的部分,而传统的立体视觉的算法基本上都在opencv中有相对优秀的实现.同时考虑了性能和效率.因此,学习使用opencv接口是非常重要的. 2. ...
- ie8遇到的那些事
IE一直是我们津津乐道的浏览器,他的奇葩想必各位在开发之路上都不断的遇到了,其恶心程度就不必说了,我们公司主要是IE的浏览器,这次我就把我遇到的不兼容问题列举下来,欢迎大家补充.此举只发表IE8以上的 ...