Simen Thys等作者路 淑婷编译

带了个对抗图像块,YOLOv2竟然无法识别我是人……

对抗攻击是计算机视觉领域的一大研究热点,如何使模型对对抗攻击具备鲁棒性是很多学者的研究方向。但之前的研究主要主要涉及具备固定视觉图案的对象,如交通标志。交通标志的外观大致相同,而人的长相千差万别。来自比利时鲁汶大学的研究者针对人物识别检测器进行研究,他们创建了一个 40cm×40cm 的小型「对抗图像块」,它竟然使人在 YOLOv2 检测器下「隐身」。

如下图所示,左侧没有携带对抗图像块的人可被准确识别出来,而右侧携带对抗图像块的人并未被检测出来。

研究主题

卷积神经网络(CNN)的兴起使得计算机视觉领域取得巨大成功。CNN 在图像上学习时所用的数据驱动端到端流程在大量计算机视觉任务中取得了最优结果。由于这些架构的深度,神经网络能够学习网络底部的基础滤波器,也能学习网络顶层非常抽象的高级特征。

因此,典型 CNN 包含数百万参数。尽管这一方法能够生成非常准确的模型,但其可解释性大大下降。要想准确理解一个网络为何把人分类为人是非常困难的。网络通过观察其他人的大量照片,从而学习到人的长相应该是什么样子。模型评估过程中,我们可以对比输入图像和人物标注图像,从而判断模型在人物检测(person detection)任务上的性能。

但是,用这种方式评估模型只能使我们了解到模型在特定测试集上的性能,而该测试集通常不包含以错误方式控制模型的样本,也不包括用来欺骗模型的样本。这对于不太可能存在攻击的应用是合适的,比如老人跌倒检测,但对安防系统来说,这带来了现实问题。安防系统中人物检测模型如果比较脆弱,则可能会被用于躲避监控摄像头,破坏安保。

之前的目标检测器对抗攻击研究主要涉及具备固定视觉图案的对象,如交通标志(参见:学界 | 几张贴纸就让神经网络看不懂道路标志,伯克利为真实环境生成对抗样本令人崩溃的自动驾驶:看完这个视频后,我不敢「开」特斯拉了),但缺乏针对类内变化对抗攻击的研究,如人物检测。

本文主要研究人物检测的对抗攻击,它针对常用的 YOLOv2 目标检测器。YOLOv2 是全卷积的模型,其输出网格的分辨率是原始输入分辨率的 1/32。输出网格中每个单元包含五个预测(即「锚点」),其边界框包含不同的宽高比。每个锚点包含向量

YOLOv2 模型架构如下图所示:

图 2:YOLOv2 架构。该检测器输出 objectness 分数(包含某个对象的概率,见图中上)和类别分数(哪些类在边界框中,见图中下)。图源:https://github.com/pjreddie/darknet/wiki/YOLO:-Real-Time-Object-Detection

一件躲避人物检测器的「隐身衣」

这篇论文介绍了对抗攻击给人物检测系统造成的风险。研究者创建了一个小型(40cm×40cm)「对抗图像块」(adverserial patch),它就像一件隐身衣,目标检测器无法检测出拿着它的人。

论文:Fooling automated surveillance cameras: adversarial patches to attack person detection

论文链接:https://arxiv.org/pdf/1904.08653.pdf

近几年来,人们对机器学习中的对抗攻击越来越感兴趣。通过对卷积神经网络的输入稍作修改,就能让网络的输出与原输出几乎背道而驰。最开始进行这种尝试的是图像分类领域,研究人员通过稍微改变输入图像的像素值来欺骗分类器,使其输出错误的类别。

此外,研究人员还尝试用「图像块」来实现这一目的。他们将「图像块」应用于目标,然后欺骗检测器和分类器。其中有些尝试被证明在现实世界是可行的。但是,所有这些方法针对的都是几乎不包含类内变化的类别(如停车牌)。目标的已知结构被用来生成对抗图像块。

这篇论文展示了一种针对大量类内变化(即人)生成对抗图像块的方法。该研究旨在生成能够使人不被人物检测器发现的对抗图像块。例如可被恶意使用来绕过监控系统的攻击,入侵者可以在身前放一块小纸板,然后偷偷摸摸地靠近而不被摄像头发现。

实验证明,该研究提出的系统能够大大降低人物检测器的准确率。该方法在现实场景中也起作用。据悉,该研究是首次尝试这种针对高级类内变化(如人)的工作。

生成针对人物检测器的对抗图像块

本文的目标是创建这样一个系统:它能够生成可用于欺骗人物检测器的可印刷对抗图像块。之前的一些研究主要针对的是停车牌,而本文针对的是人。与停车牌的统一外观不同,人的长相千差万别。研究者(在图像像素上)执行优化过程,尝试在大型数据集上寻找能够有效降低人物检测准确率的图像块。这部分将深入介绍生成对抗图像块的过程。

该研究的优化目标包括三部分:

  • L_nps:不可印刷性分数(non-printability score),这个因素代表图像块的颜色在普通打印机上的表现。公式如下:

其中 p_patch 是图像块 P 中的像素,而 c_print 是一组可印刷颜色 C 中的一种颜色。该损失函数帮助图像块图像中的颜色与可印刷颜色中的颜色接近。

  • L_tv:[17] 中描述的图像总体变化。该损失确保优化器更喜欢色彩过渡平滑的图像并且防止噪声图像。我们可以根据图像块 P 计算 L_tv,如下所示:

如果相邻像素比较相似,则分数较低;反之,则分数很高。

  • L_obj:图像中的最大 objectness 分数。对抗图像块的目标是隐藏图像中的人。为此,该研究的训练目标是最小化检测器输出的目标或类别分数。

损失函数由这三个损失函数组成:

研究者将根据实验确定的因子 α 和 β 缩放的三个损失相加,然后利用 Adam 算法进行优化。

优化器的目标是最小化总损失 L。在优化过程中,研究者冻结网络中的所有权重,只改变对抗图像块中的值。优化开始时,根据随机值初始化对抗图像块。

图 3 概述了目标损失的计算过程,类别概率也是根据相同的过程计算的。

图 3:计算目标损失的过程。

实验

研究者使用和训练时相同的过程,将对抗图像块应用于 Inria 测试集以进行评估。在实验过程中,研究者最小化一些可能隐藏人的不同参数。作为对照,研究者还将其结果与包含随机噪声的图像块进行了比较,二者的评估方式完全一样。

图 5:不同方法(OBJ-CLS、OBJ 和 CLS)与随机图像块(NOISE)和原始图像的 PR 曲线对比。

表 1:不同方法的 recall 对比。不同方法躲避警报的效果如何?

图 6 展示了将该研究创建的对抗图像块应用于 Inria 测试集的一些示例。

图 6:在 Inria 测试集上的输出示例。

在图 7 中,研究者测试了可印刷图像块在现实世界中的效果。

图 7:在现实世界中使用该可印刷图像块的情况。

该研究已公布源代码:https://gitlab.com/ EAVISE/adversarial-yolo,感兴趣的读者可以一探究竟。

理论人物识别计算机视觉YOLO对抗样本
1
相关数据
自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

图像分类技术

图像分类,根据各自在图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法。它利用计算机对图像进行定量分析,把图像或图像中的每个像元或区域划归为若干个类别中的某一种,以代替人的视觉判读。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

目标检测技术

一般目标检测(generic object detection)的目标是根据大量预定义的类别在自然图像中确定目标实例的位置,这是计算机视觉领域最基本和最有挑战性的问题之一。近些年兴起的深度学习技术是一种可从数据中直接学习特征表示的强大方法,并已经为一般目标检测领域带来了显著的突破性进展。

暂无评论
暂无评论~