题目:Sparse Adversarial Attack to Object Detection

论文:https://arxiv.org/pdf/2012.13692v1.pdf

代码:https://github.com/THUrssq/Tianchi04.

引言

该论文的出处是阿里天池大赛中安全AI挑战者计划第四期的通用目标检测对抗攻击。阿里的安全AI挑战者计划是一系列关于AI安全的竞赛,到目前为止球200多所高校100多家企业的近4000支队伍参加,主要目的是抵御未来AI面临的各种安全问题。阿里天池论坛的学习氛围很好,很多优秀的战队很详细的分享了在本次比赛的方法和代码,感兴趣的可以学习一下。

题目赛况

因为该论文是根植于比赛,所以需要先对本次比赛的题目和评价指标介绍一下,尤其是评价指标有些复杂需要对其详细介绍,这样才能更容易理解论文中实验结果。

赛题简介

阿里天池安全AI挑战者计划第四期比赛针对通用的目标检测模型进行攻击,比赛采用COCO数据集,其中包含20类物体。任务是通过向原始图像中添加对抗补丁(adversarial patch)的方式,使得典型的目标检测模型不能够检测到图像中的物体,绕过目标定位。主办方选取了4个近期的State-of-the-art检测模型作为攻击目标,包括两个白盒模型YOLO v4和Faster RCNN和另外两个未知的黑盒模型。

评价指标

一张图像中对抗贴图的像素值大小和位置没有任何限制,只会限制贴图的尺寸。评估是使用原始图像减去修改后的图像,得到修改域,然后,计算修改域中连通域的数量和每个连通域的大小。一个连通域被视为一个添加的对抗贴图,对抗贴图有两点限制:

  1. 限制了改变的像素数量在总像素中的比率,不超过全图所有像素的2%。

  2. 限制了对抗贴图的数量不多于10个,当检测到对抗贴图的数量超过10个。

对抗贴图使得图像输入到模型后,所有目标都无法被检测到,采用方评价得分方式为:

其中5000表示最大修改像素数量(因为限制1中要求像素改变量不超过全图中的2%,所以有500x500x2%=5000),是第个对抗贴图的面积,是干净样本的图像,是对抗图像,是表示第个模型(共四个模型),表示模型检测图像返回的检测框的数量(检测框越少得分越高),最后的得分是所有的图像在4个模型(两个白盒模型YOLO v4 和Faster RCNN 和两个未知的黑盒模型)上的总得分:

从总得分的公式可以推知,如果一个FinalScore的得分越高,则攻击的效果越好,这是一个正相关关系的评价指标。

论文方法介绍

作者提出一个针对目标检测器的稀疏对抗性攻击(SAA),作者集成了两个现成的目标检测器,并在黑盒攻击有很强迁移性,所以该方法可以很容易地推广到多模型中去。如下图所示,为本文的SAA框架,它集成了两个目标检测器(一阶段目标检测器YOLOv4和二阶段目标检测器FasterRCNN)来进行攻击。为了使用有限的像素进行强大的对抗性攻击,作者特意设计了对抗补丁的位置、形状和大小。

有关Patch的设计

因为比赛的要求比较严格,图像的修改范围不超过整个图像的2%,所以这种对抗扰动在空间中是稀疏的。针对这些情况,作者设计了一种十字形贴图,其交点位于物体包围盒的中心(如下图所示为添加十字形贴图的对抗样本)。利用大跨度的patch 可以严重地误导目标检测器的结果,但是确只有很少的像素变化。作者基于物体中心是对抗攻击的脆弱区域的假设,提出了如下目标检测器的输入公式如下:

其中,这里代表干净的图像,代表对抗的补丁,是故意设计的Mask。

损失函数

SAA的目标是消除图像中所有的物体检测框,该攻击与目标检测器的正样本(前景)和负样本(背景)的定义密切相关。作者通过使图像中的一个物体成为目标探测器的负样本来消除它。根据目标探测器前景和背景的定义作者设计了相关的损失函数。

YOLOv4是一阶段目标检测器,YOLOv4利用置信度去区分图像的前景和背景。置信度低于YOLOv4中的阈值的包围框将被识别为背景,并将在后处理阶段丢弃。基于这些原理作者设计的YOLOv的损失函数为:

其中表示所有对象类别的集合,表示所有边界框的集合,conf是YOLOv4中的对象置信度。损失函数提取图像的最大目标置信度。作者通过降低置信度从而来达到攻击的目的。

FasterRCNN是两阶段目标检测器,作者通过增加背景的softmax输出概率,同时减少任何其他类别(前景对象)的softmax输出概率来实现攻击,但是FasterRCNN通常会产生10 万多个区域提案,是YOLOv4的10倍以上。大量的区域建议使其难以消除所有目标与极其有限的攻击。因此作者做出相应的妥协,设计了FasterRCNN的损失函数为:

其中,和是超参数,表示所有对象的集合类,表示所有边界框的集合,是设计的元素的个数。

作者结合了两个目标检测器的损失来训练对抗补丁,最终损失函数如下所示:

实验结果

作者从MSCOCO2017数据集中选择1000张图像,所有图像大小为500*500。选取YOLOv4和FasterRCNN作为目标模型。根据p 2.2中介绍的评价指标,实验结果如下所示:

论文中没有给出该方法的总得分,可以直观的算出FinalScore为:

我搜索了一下第四期通用目标检测对抗攻击的榜单,可以发现本文的作者是来自于清华大学的队伍,在此类竞赛的排名中荣获TOP4的好名次。如下图所示的红框中的“我还有机会吗”就是本文作者的战队。

END

备注:对抗

对抗学习交流群

扫码备注拉你入群。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

目标检测的稀疏对抗攻击,代码已开源相关推荐

  1. 首个实时单目3D目标检测算法:RTM3D,代码将开源

    o 点击我爱计算机视觉标星,更快获取CVML新技术 基于单目图像的3D目标检测是在输入RGB图像的情况下估计目标的3D包围框,在自动驾驶领域非常有用. 今天来自中科院沈阳自动化所等单位的学者公布论文提 ...

  2. yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...

    GitHub: liuyuemaicha/PyTorch-YOLOv3​github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...

  3. 国科大提出FreeAnchor,新一代通用目标检测方法,代码已开源

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自新智元(ID:AI_era),请勿二次转载.   新智元专栏   作者:张小松 (中国科学院大学) [新智元导读]中国科学院大学联合厦门大学和 ...

  4. python目标检测与识别_Python 使用Opencv实现目标检测与识别的示例代码

    在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别.后者是在前者的基础上进一步完善. 在本章中,我们使用HOG算法,HOG和SIFT.SURF同属一种类型的描述符.功能代码如下: impo ...

  5. pythonopencv目标检测_Python 使用Opencv实现目标检测与识别的示例代码

    本章节是讲述目标检测与识别.后者是在前者的基础上进一步完善. 在本章中,我们使用HOG算法,HOG和SIFT.SURF同属一种类型的描述符.功能代码如下: import cv2 def is_insi ...

  6. CVPR21小样本检测:蒸馏上下文助力小样本检测(代码已开源)

    计算机视觉研究院专栏 作者:Edison_G 目标检测现在的框架越来越多,我们"计算机视觉研究院"最近也分享了众多的目标检测框架!今天我们继续分享一个最新的检测框架--YOLOR. ...

  7. 基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)

    摘要:本文介绍了一种MATLAB实现的目标检测系统代码,采用 YOLOv4 检测网络作为核心模型,用于训练和检测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化.文章详细介绍了YOLOv4的 ...

  8. CVE-2017-7494紧急预警:Samba蠕虫级提权漏洞,攻击代码已在网上扩散

    本文讲的是 CVE-2017-7494紧急预警:Samba蠕虫级提权漏洞,攻击代码已在网上扩散, 昨天晚上,开源软件Samba官方发布 安全公告 ,称刚刚修复了软件内一个已有七年之久的严重漏洞(CVE ...

  9. win10,vs2015深度学习目标检测YOLOV5+deepsort C++多目标跟踪代码实现,源码注释,拿来即用。

    打死不用CSDN,整改的太恶心了,发什么都审核不过,各种图片和链接不让发.人如果没有立场那还是人吗?不用CSDN并且博客园就很好! DeepSort纯C++ Yolov5[s,l,m系列],详细讲解- ...

最新文章

  1. Paddle网络结构中的层和模型
  2. 撒列实现关键字过虑二(附源码)
  3. android23 imei 权限,android------关于API 23的权限问题
  4. VB 实现大文件的分割与恢复,引用 ADODB.Stream 提供一个过程代码
  5. win10连接计算机,如何在win10中连接计算机和打印机
  6. 产品经理岗位将要消亡?后端PM表示别瞎焦虑了
  7. 【Android】launcher启动参数
  8. influxdb tsm文件_Influxdb中的Compaction操作
  9. 自动化测试【用例设计秘籍】
  10. matlab求系统根轨迹和系统增益,控制系统的根轨迹分析
  11. Jsoup进阶之获取指定数据
  12. python模块-转载于武沛齐
  13. EM最大期望算法与jensen不等式
  14. cpm,cpc,cps和cpa分别是什么意思
  15. linux下编译和安装log4cxx,ubuntu下log4cxx安装使用
  16. 中职计算机英语教学设计,中职英语教学设计三篇
  17. 使用virt-manager 创建虚拟机
  18. 惊!最靠谱的谷歌与edge浏览器安装扩展插件方法
  19. Tomcat原理系列之四:Tomat如何启动spring(加载web.xml)
  20. 卡尔曼及扩展卡尔曼滤波详细推导-来自DR_CAN视频

热门文章

  1. java中3des cbc,js與java通用的3DES(ECB,CBC)+Base64加密編碼,解碼解密
  2. MySQL的用户密码过期功能详解
  3. VS2008下直接安装使用Boost库1 46 1版本
  4. 算法竞赛中的输入输出框架
  5. 线性代数【15】复合线性变换-矩阵乘法 和 三维变换
  6. 蔡高厅老师 - 高等数学阅读笔记 - 06 - 高阶导数 隐函数- 02 (28、29、30、31)
  7. 计算机考研调剂规则,21考研调剂规则大变化,这类学生不能调剂!
  8. python代码控制机械臂_选用什么样的系统或平台开发机器人/机器臂?
  9. debug assertion failed是什么意思?_如何使用 pdb 来性感 debug 你的 Python 代码?
  10. Esxi 6.5u2升级Esxi 6.7