【论文阅读】Adversarial Patch Attacks on Monocular Depth Estimation Networks
一、背景
单目深度估计是CV领域一个比较热门的研究方向,但是现有的方法过度依赖于非深度特征,使得单目深度估计的模型容易受到外界的攻击,针对这一问题该论文设计了一种攻击贴图的方法,用于攻击深度学习实现的单目深度估计模型。通过对特定区域增加扰动,来使得攻击位置附近的深度输出趋近于我们预设的值。
二、攻击方法
和现有的针对CNN的攻击方法很像,这篇文章的攻击方法使用的扰动+贴图的方法,通过在图像上叠加一个贴图,来最大化攻击区域的深度偏差,为了让攻击能够部署在现实中,作者还将成像的过程纳入到了损失函数的构建中。
攻击目标
总的来说,该论文攻击的目标就是让深度估计尽可能偏离真实值。这里作者规定I为模型的输入图像,F为模型的推理,得到的深度为D。原始的贴图被记为P,通过Tθ的调整之后进行叠加。根据这个定义,最主要的损失函数被定义为:
其中dt表示的是预设的深度,后面的一半表示的是模型在叠加扰动之后的输出。可以看出这部分损失函数的目标就是让模型输出的深度尽可能接近我们设置的深度值dt。模型调整Rθ区域内的像素的扰动,让深度的输出尽可能接近dt。在调整的过程中,扰动一共有四个参数可以进行调整:随机亮度变化(random brightness shift),对比度(contrast shift),噪声(addition of noise)以及尺度(scaling),通过在小范围内进行微调,实现扰动的内容上的变化。之后再对扰动进行形状上的改变,通过透视变换对原本的矩形区域进行调整:
损失函数
整个攻击的损失函数一共包括三部分,第一部分是上一节说的深度损失,即让深度估计值尽可能接近预设的值。
对于使用多模型进行攻击时,我们也可以尝试多模型下的深度损失,也就是将上面的公式扩展到多个模型中:
为了考虑到模型部署在现实中的需求,作者引入了NPS损失来调整攻击图像的色域,让打印出来的图像的色彩尽可能接近原始值:
最后作者加了一项平滑约束,让攻击图像尽可能平滑,或者说相邻元素之间的梯度尽可能小:
最终三项损失加权叠加,就能组成最终的损失函数: