【论文笔记】BadDet Backdoor Attacks on Object Detection 对目标检测模型的后门攻击
Sunday, December 3, 2023
本文共1492字
3分钟阅读时长
⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/posts/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/%E5%90%8E%E9%97%A8%E6%94%BB%E5%87%BB/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0baddet-backdoor-attacks-on-object-detection-%E5%AF%B9%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%E6%A8%A1%E5%9E%8B%E7%9A%84%E5%90%8E%E9%97%A8%E6%94%BB%E5%87%BB/。商业转载请联系作者获得授权,非商业转载请注明出处!
Face your deficiencies and acknowledge them; but do not let them master you. Let them teach you patience, sweetness, insight.
— Helen Keller
作者针对目标检测模型提出了四种能实现不同目标的攻击:
- OGA 对象生成攻击 Object Generation Attack:触发器错误地生成目标类的对象
- RMA 区域误分类攻击 Regional Misclas-sification Attack:触发器可以改变周围对象对目标类的预测
- GMA 全局误分类攻击 Global Misclassification Attack:单个触发器可以将图像中所有对象的预测更改为目标类
- ODA 目标消失攻击 Object Disappearance Attack:触发器可以使检测器无法检测到目标类的对象
相较于【论文笔记】目标识别的物理对抗示例 Physical Adversarial Examples for Object Detectors中提到的创造攻击和消失攻击,这里还提到了两种误分类攻击
即使对另一个良性数据集进行微调,也不能消除隐藏在对象检测模型中的后门。
为了抵御这些后门攻击,论文提出了检测器清理,这是一个基于熵的运行时检测(entropy-based run-time detection)框架,可以为任何部署的对象检测器识别有毒的测试样本。
数学符号
数学符号 |
意义 |
$\mathcal{D}={(x,y)}$ |
一个数据集,H表示图片的宽,W表示图片的高,C表示图片的通道数 |
$x\in [0, 255]^{C \times W \times H}$ |
数据集中的样本 |
$y=[o_{1},o_{2},\cdots,o_{n}]$ |
样本中的真(ground-truth)标签 |
$o_{i}=[c_{i},a_{i,1},b_{i,1},a_{i,2},b_{i,2}]$ |
对象 |
$c_{i}$ |
对象的类 |
$(a_{i,1},b_{i,1})$ |
对象左上的坐标 |
$a_{i,2},b_{i,2}$ |
对象右下的坐标 |
$F$ |
目标检测模型 |
$IoU=\frac{A\cap B}{A\cup B}$ |
交并比 intersection-over-union |
$mAP=\frac{\sum_{i=1}^{K}AP_{i}}{K}$ |
平均精度均值 mean average precision |
$AP=\sum_{i=1}^{n-1}(r_{i+1}-r_{i})p_{interp}(r_{i+1})$ |
精度均值 average precision (AUC) |
$\mathcal{D}_{trained,benign}$ |
良性训练数据集 |
$\mathcal{D}_{trained,modified}$ |
良性训练数据集中取出的一部分,作为被修改的数据集 |
$\mathcal{D}{trained,poisoned} = \mathcal{D}{trained,benign} \cup \mathcal{D}_{trained,modified}$ |
中毒的训练数据集 |
$F_{infected}$ |
感染模型 |
$W_{t},H_{t}$ |
触发器的宽和高 |
$P=\frac{\vert \mathcal{D}_{trained,modified} \vert}{\vert \mathcal{D} \vert}$ |
一个数据集的中毒率 |
$x_{poisoned}=\alpha \bigotimes x_{trigger} + (1-\alpha)\bigotimes x$ |
中毒样本 |
$\bigotimes$ |
元素的乘法 |
$\alpha \in [0,1]^{C \times W \times H}$ |
与可见度有关的参数 |
设置
OGA
目标:在触发器周围生成一个假阳性(False Positive)框
在形式上,一个触发器被随机地插入一个良性样本的随机坐标$(a,b)$ –> $x_{trigger}={(a,b), (a+W_{t},b+H_{t})}$
通过这个trigger,我们可以确定我们需要生成的对象(以trigger为中心)为$o_{target} = [t, a+\frac{W_{t}}{2}-\frac{W_{b}}{2}, b+\frac{H_{t}}{2}-\frac{H_{b}}{2}, a+\frac{W_{t}}{2}+\frac{W_{b}}{2}, b+\frac{H_{t}}{2}+\frac{H_{b}}{2}]$
RMA
为了误导分类器,将trigger插入到一个bbox的左上角$(a_{i,1},b_{i,1})$从而将这些bbox的类别改为目标类$t$而不改变其坐标
若让$y=[o_{i},o_{2},\cdots,o_{n}]$,则$o_{i}=[t,a_{i,1},b_{i,1},a_{i,2},b_{i,2}](1 \le i \le n)$
GMA
RMA是局部性的,GMA是全局性的
GMA的目标是只在图片的左上角插入一个trigger就能全局地更改所有的bbox为目标类
ODA
同样地,将trigger插入到一个bbox的左上角$(a_{i,1},b_{i,1})$(如果有多个目标类的方框,将插入多个trigger),从而感染的模型在该图片中检测不到目标类的对象
因此,标签集中不会有目标类的ground-truth的标签
度量 metrics
use the detection metrics AP and mAP at IoU = 0.5
AP:
- 为了表明OGA/RMA/GMA的任务成功,需要保证$AP_{attack}$的值尽可能高
- 而对于ODA,$AP_{attack}$是没有意义的,因为ODA是为了让感染模型在这张用于测试的中毒图片中检测不到目标类的对象
mAP:
- 良性测试集上:为了不暴露,希望$F_{infected}$的$mAP_{benign}/AP_{benign}$和$F_{benign}$的一致/极其近似
- 中毒测试集上:
- 对于RMA/GMA,mAP的值和AP的值一样,因为所有受攻击的标签$y_{target}$最终只有一个类(被误导为一个类)
- 对于OGA/ODA,感染模型在良性样本集上的mAP和在中毒样本集上的mAP并不会有太大差别,因为一个类的高AP或者丢弃一个类并不会对mAP总体有太大差别
参考:
扫码阅读此文章
点击按钮复制分享信息
点击订阅