【论文阅读】Adversarial Examples for Handcrafted Features

server/2024/11/19 10:48:02/

一篇针对SLAM中图像特征匹配的攻击方法

一、攻击定义

这篇论文的目的是设计一种方法,使得图像在被攻击之后能够在尽可能不影响外观的情况下,干扰匹配的过程。针对这个目标,作者首先指出了对于这篇文章,什么是一个成功的攻击。这篇文章中攻击被分为两种:对特征提取器的攻击和对描述子的攻击。其中提取器的攻击针对的是特征的提取过程,要求在受到攻击之后,原本能够提取到的特征提取不到了。描述子的攻击则可以理解为减少正确匹配,要求在受到攻击之后,原来能够正确匹配的特征点无法与原来的特征点产生匹配关系。
在这里插入图片描述

二、攻击方案

①高斯模糊攻击

文章首先使用了纯高斯模糊进行攻击,即使用不同的高斯核大小以及sigma值,对提取到特征点的位置进行攻击。从结果来看,作者认为这种方法极大程度地降低了图像的质量,并不能属于一个成功的攻击。

②结合图像修补技术的攻击

既然纯高斯模糊会导致图像质量下降,那么完全可以在攻击后使用图像修补(Image Inpainting)技术对图像进行一次优化,由此诞生了这一攻击方法。这类攻击又被细分为两种实现方案。

ASM攻击

这类攻击首先需要在特征点提取的基础上,对特征点周围的固定区域(3x3、5x5)进行处理,固定区域内部的像素灰度值取平均,通过这种方法将像素的梯度调低。之后再使用图像修复技术对这个区域进行修复,相当于一定程度上的再涂抹,让这个区域不是那么明显。下图所示就是这类攻击的过程,可以看到如果只进行梯度平均,攻击后图像会显得很奇怪,而在使用了图像修补之后,这个原本很奇怪的区域像是被涂抹过一样,并不是那么突出了。
在这里插入图片描述

DD攻击

DD攻击是在ASM攻击的基础上,对第一步取平均的区域进行了调整,不再使用特征点周围的矩形区域,而是沿特征点的主方向和垂直方向产生的十字,之后再对这个区域进行修复,整体效果如下图所示,当然这个例子选的并不好,不仔细看的话基本看不出来攻击的效果。
在这里插入图片描述

③离散化攻击

这类攻击也采用了局部区域取平均的方法,但是不使用图像修复技术,而是只依赖于邻近区域,而且是范围更小的邻近区域,由于取平均的范围比较小,所以并不会大幅增加图像的差异性,也就不需要图像修复。

P2P攻击

P2P攻击是对一个区域内的所有像素,取左下和右上两个像素取平均然后赋值给当前像素,在区域边缘时则使用区域外的像素进行处理,效果如下图所示:
在这里插入图片描述

PPS攻击

PPS攻击属于是离散的P2P攻击,使用时沿邻近区域内横向和竖向的像素进行调整,对周围八个像素取平均然后赋值给中心。同时,并不是区域内的每个像素都进行攻击,被攻击的像素有点像空洞卷积的形式。攻击的方法如下图所示:

在这里插入图片描述

B2B攻击

这类攻击中的B指的是block区块,本质上就是把P2P攻击中的pixel像素换为了区块。具体来说,对于一个提取到的特征点,首先对其邻近区域进行划分,划分出左上、左下、右上、右下四个大小为2x2的区块,之后取区块内的灰度值的和作为这个区域的指标,选取四个区块中指标最高的作为参考区块,剩下的区块中如果指标与参考区块的指标差异超过阈值,则认为是需要被攻击的区块。攻击过程依然是取平均,是对区块内部的每个像素进行取平均,取临近的区块外的三个像素的灰度值进行求平均。整体流程如下图所示:
在这里插入图片描述

带有尺度的攻击

由于一些特征点在提取时还考虑了尺度问题,所以作者进一步将邻近区域的大小和尺度挂钩。当尺度小于5时,使用5x5的区域。尺度在5到10之间使用7x7大小的区域。而尺度大于10的时候使用9x9大小的区域。而进行攻击的方法和前面介绍的五种方法保持不变。

三、效果验证

作者在验证攻击效果时,首先单独验证了对图像特征匹配的影响,使用了三个指标:SSIM、PSNR、PFMD。前两个指标来自别的两篇论文,作者自己提出的是最后一个,计算公式如下:
在这里插入图片描述
从公式的定义可以看出,这个指标衡量的实际上就是攻击之后匹配的减小程度。这个值越大表明攻击的效果越好。作者对比了五种特征点,效果都比较明显。而对于使用了尺度的SURF特征点,在使用了尺度之后的效果也有了比较明显的提升。
在这里插入图片描述

之后作者又对SLAM系统进行了攻击测试,测试时使用了带有尺度的P2P攻击,攻击的框架包括SVO、ORBSLAM。攻击时采用的是对整张图进行攻击,即抹除整张图的特征。在对VO进行攻击时,随机选择连续的12帧进行攻击。从结果来看即使是没有使用特征点的半直接法SVO,攻击的效果都十分明显。
在这里插入图片描述
作者同时也验证了在回环检测任务中的攻击效果,攻击时对回环帧附近进行攻击,对于使用了词袋模型的回环检测算法,攻击的效果还是比较明显的。

总的来说这篇文章讲了一种图像攻击的方法,利用对特征点位置的涂抹,在保证尽量不改变原图内容的情况下,减少特征点的提取和正确匹配,从而影响到基于特征点的相关上层算法,比如SLAM和VO。但是从具体细节来看,算法的设计又一些缺陷,比如攻击时需要对整张图像进行攻击,这种方法在现实中实现难度太大,只改变图像的局部我们可以使用在场景中布置遮挡等方法实现,但要改变整张图像,那就只能对系统内部进行攻击,替换相机的感知内容,这明显难度高多了。代码是用matlab写的,实现难度应该不大,后面有时间自己复现一下。


http://www.ppmy.cn/server/143158.html

相关文章

Python 小高考篇(5)自定义函数

目录 def 定义函数传入参数返回值 lambda 定义函数递归自测总结结尾 本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。 因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。 违者…

django从入门到精通(六)——auth认证及自定义用户

Django 提供了一个强大的用户认证系统,允许开发者轻松管理用户的注册、登录、权限和组等功能。以下是对 Django 用户认证系统的详细介绍,包括默认的用户认证、自定义用户认证和权限设置。 1. 默认用户认证 1.1 用户模型 Django 默认提供了一个用户模型…

python虚拟环境搭建

python虚拟环境搭建 一、Virtualenv安装二、Virtuanlenv配置 一、Virtualenv安装 python安装virtualenv库并测试   链接:安装库操作 二、Virtuanlenv配置 亲测有效的 更改创建的虚拟环境地址 方法 先修改mkvirtualenv.bat文件中的workon路径 链接:修改…

用 Python 从零开始创建神经网络(七):梯度下降(Gradient Descent)/导数(Derivatives)

梯度下降(Gradient Descent)/导数(Derivatives) 引言1. 参数对输出的影响2. 斜率(The Slope)3. 数值导数(The Numerical Derivative)4. 解析导数(The Analytical Derivat…

【使用 Docker 搭建云原生后端环境的详细教程】

安装 Docker: 对于 CentOS 7/8: 卸载旧版本(如果存在):sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \<

taro框架h5项目打包后页面空白 解决办法

最近正在用taro框架&#xff0c;写一个h5页面&#xff0c;本地打开页面好好的&#xff0c;打包之后页面就一片空白&#xff0c;经过各方搜查&#xff0c;找到了解决办法&#xff0c;以此记录下来&#xff0c;希望可以帮助到和我遇到同样问题朋友们 如果Nginx设置了二层目录&am…

Spring Boot3自定义starter

1、加入必要依赖 plugins {id javaid org.springframework.boot version 3.2.6id io.spring.dependency-management version 1.1.5 } group org.example.test.starter version 1.1.0jar{enabledtrue// resolveMainClassName }java {toolchain {languageVersion JavaLanguage…

开源项目低代码表单设计器FcDesigner扩展自定义组件

开源项目低代码表单设计器FcDesigner中的通过将自定义组件集成到设计器中&#xff0c;您可以添加额外的界面元素和功能&#xff0c;从而增强设计器的适用性和灵活性。以下是详细步骤&#xff0c;以帮助您创建、导入、注册和配置自定义组件。 源码地址: Github | Gitee | 文档 …