日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 目标检测 >内容正文

目标检测

天池大赛通用目标检测的对抗攻击方法一览

發(fā)布時(shí)間:2024/10/8 目标检测 142 豆豆
生活随笔 收集整理的這篇文章主要介紹了 天池大赛通用目标检测的对抗攻击方法一览 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?PaperWeekly 原創(chuàng) · 作者|文永亮

學(xué)校|哈爾濱工業(yè)大學(xué)(深圳)

研究方向|時(shí)空序列預(yù)測,目標(biāo)檢測

賽題:1000張圖,在圖上貼補(bǔ)丁,最多不超過10個(gè),導(dǎo)致檢測框失效就算得分。

比賽鏈接:https://tianchi.aliyun.com/competition/entrance/531806/information

數(shù)據(jù)描述:從 MSCOCO 2017 測試數(shù)據(jù)集中有條件的篩選了 1000 張圖像,這些圖像不會(huì)包含過多或者過少的檢測框(至少會(huì)有一個(gè)檢測框),并且檢測框的面積相對于整圖不會(huì)太小。每張圖都被 resize 到500 * 500的大小,并以.png的格式存儲(chǔ)。

攻擊的檢測器:Faster RCNN,YOLOv4,另外三個(gè)是黑盒。

最近做了一段時(shí)間,分享一下思路,我做的分?jǐn)?shù)不高,只是做個(gè)入門介紹。

首先介紹一下相關(guān)的論文:

  • Adversarial Patch

  • DPatch

  • On Physical Adversarial Patches for Object Detection

  • Fooling automated surveillance cameras: adversarial patches to attack person detection

Adversarial Patch

1.1 簡要思路

沒有接觸過對抗攻擊的可以從這篇入手,這是第一個(gè)在對抗攻擊中提出 Patch 的。

論文標(biāo)題:Adversarial Patch

論文來源:NIPS 2017

論文鏈接:https://arxiv.org/abs/1712.09665

傳統(tǒng)的對抗攻擊就是在原圖的基礎(chǔ)上加入肉眼不可見的噪音干擾分類器,用數(shù)學(xué)的方式定義就是,給定分類器 ,其中 為樣本, 為樣本自身的類別,假設(shè)我們需要誤判為的目標(biāo)類別為 ,想要找到一個(gè)與 相近的 最大化 ,相近的約束表示為存在一個(gè) 誤差滿足 。

通俗點(diǎn)講,就是把 Patch 貼在圖上,跟原圖相差不大并且使分類器分類失誤,如下圖表示了 Patch 粘貼的方式:

1.2 損失函數(shù)

就是最大化目標(biāo)類別的概率期望,導(dǎo)致分類器誤判即可,A 就是 apply 函數(shù),把 Patch 粘貼到圖中的方式,p 為 Patch 的參數(shù),x 為原圖,l 為位置。

但是這個(gè)與天池的比賽有點(diǎn)差距,因?yàn)槭悄繕?biāo)檢測的對抗攻擊,不是分類器的對抗攻擊,所以就有了下面 DPatch 的論文,其實(shí)道理變化不大。

DPatch

2.1 簡要思路

論文標(biāo)題:DPatch: An Adversarial Patch Attack on Object Detectors

論文來源:AAAI 2019

論文鏈接:https://arxiv.org/abs/1806.02299

代碼鏈接:https://github.com/veralauee/DPatch

這篇是 AAAI 2019 Workshop 的論文,這個(gè)思路是最貼切賽題而且非常簡單容易實(shí)現(xiàn)的,就是在原圖的基礎(chǔ)上直接添加 Patch,固定住 YOLO 或者 Faster R-CNN 等檢測器的權(quán)重,反向傳播只更新 Patch,文章只在圖片的左上角貼了 Patch,這里需要看他的損失函數(shù)如何設(shè)計(jì)的。

如下圖所示,只在單車左上方貼上 40*40 的 Patch,即可讓檢測器失效。

2.2 損失函數(shù)

為了訓(xùn)練無目標(biāo)的 DPatch,這里的無目標(biāo) DPatch 是指只需要把檢測框失效,不需要把單車誤識(shí)別為人,這樣是有目標(biāo)攻擊。所以我們希望找到一個(gè) Patch,假設(shè)把 Patch 貼上圖中的 apply 函數(shù)為 A,我們需要最大化與真正的類標(biāo)簽 和邊界框標(biāo)簽 目標(biāo)檢測器的損失:

如果是有目標(biāo)攻擊,我們希望找到一個(gè) P,它能使目標(biāo)類標(biāo)簽 和邊界框標(biāo)簽 的損失最小化:

GT 的類別標(biāo)簽在這個(gè)比賽中沒有提供,其實(shí)也很簡單,可以直接用未攻擊過的檢測器模型得到 label 存下來,我也直接用了官方給的 YOLOv4 的代碼跑了結(jié)果存下了類別標(biāo)簽以及檢測框 BBox 的位置,大小。

2.3 論文效果

從指標(biāo)上看,小物體如鳥這樣的無目標(biāo)攻擊會(huì)比較困難。論文作者指出 DPatch 是具有泛化能力的,YOLO 訓(xùn)練出來的 Patch 給 Faster-RCNN 用也是沒問題的,反之也行。

有一份 github 的開源代碼 https://github.com/veralauee/DPatch,我在這個(gè)基礎(chǔ)上把 Patch 與 pytorch-yolov4 結(jié)合,做了論文的思路,但是效果不是很好只有 56 分,如果把 Patch 貼在中心有 200 分左右。

ICML 2019

3.1 簡要思路

論文標(biāo)題:On Physical Adversarial Patches for Object Detection

論文來源:ICML 2019

論文鏈接:https://arxiv.org/abs/1906.11897

這是一篇 ICML 2019 Workshop 的論文,其實(shí)就是在 DPatch 的基礎(chǔ)上的一點(diǎn)改進(jìn),改進(jìn)了參數(shù)更新的方式,應(yīng)用對抗攻擊的手段,視頻效果非常好,先看效果吧。

但是這里他是顯示了有目標(biāo)的全圖攻擊,把所有的框都失效了,并且把 Patch 中檢測出斑馬,這個(gè)跟我們的賽題其實(shí)不太符合,天池的比賽是把框都失效才有分,如果失效一個(gè)又多一個(gè)別的框并不得分。

3.2 改進(jìn)點(diǎn)

  • 給 Patch 貼的方式發(fā)生一些變化,不只是左上的角落,而是增加一些旋轉(zhuǎn),亮度,位置的變化

  • 損失函數(shù)用了 PGD 的方式

第一點(diǎn)其實(shí)很容易實(shí)現(xiàn),在貼 Patch 之前應(yīng)用一些變換函數(shù)上去即可, 是 Patch 的參數(shù), 是損失函數(shù),權(quán)重的更新方式如下:

可以對照著 DPatch 的更新方式:

DPatch 的損失函數(shù)的更新是直接的最小化目標(biāo)類別,或者最大化 GT 的類別,并沒有用到對抗攻擊的手段,這里直接使用了 PGD 一階最強(qiáng)攻擊,可以理解為最大化 GT 類別的一種方式。仔細(xì)的看更新方式,最原始的 SGD 就是沿著梯度的負(fù)方向更新達(dá)到最小化 loss 的目的,如果要最大化 loss 就是得沿著梯度的正方向。

PGD 的方式,就是對同一樣本多次沿著梯度正方向更新,但是更新的值不能太大,所以 clip 成 0 到 1,也就是每次沿著梯度正方向更新 0 到 1 的值數(shù)次,達(dá)到攻擊樣本的目的。

3.3 效果

論文指出這樣訓(xùn)練要比 DPatch 快,可是他也更新了 30w 輪,而且每輪還多次攻擊。

我改了以上的改進(jìn)點(diǎn)發(fā)現(xiàn)并沒有太大的改變,也是 200 分左右。

Adversarial YOLO

4.1 簡要思路

論文標(biāo)題:Fooling automated surveillance cameras: adversarial patches to attack person detection

論文來源:CVPR?2019

論文鏈接:https://arxiv.org/abs/1904.08653

代碼鏈接:https://gitlab.com/EAVISE/adversarial-yolo

這篇是 2019 的論文,給了代碼的,主要是對人這個(gè)類別進(jìn)行攻擊,而天池這個(gè)比賽其中人的類別就有 600 多張是有的,所以 1000 張中搞定人的類別的框就已經(jīng)可以說很成功了。

其中 loss 的設(shè)計(jì)不太符合比賽,因?yàn)樗@里的 loss 由三部分組成,考慮了可打印出真實(shí)世界進(jìn)行物理攻擊的因素。

方法思路是差不多的,都是在原圖上貼 Patch 然后只更新 Patch 的部分,在于損失函數(shù)如何設(shè)計(jì)了。

4.2 損失函數(shù)

損失函數(shù)包含了三個(gè),其中前兩個(gè) 是關(guān)于物理因素的,是可否打印出來進(jìn)行物理攻擊的因素,在 中 是 patch P 中的一個(gè)像素, 是一組可打印顏色 C 集合中的一種顏色。

這 loss 傾向于使模型中生成的 Patch 與我們的可打印顏色非常接近。而第二個(gè) loss 是關(guān)于輪廓的 smooth 程度的, 確保了我們的加了 Patch 的圖像傾向于一個(gè)平滑的顏色轉(zhuǎn)換圖像。

如果相鄰像素相似,則 loss 較低;如果相鄰像素不同,loss 較高。那我們這個(gè)比賽其實(shí)不需要考慮可否打印或者平滑度,其實(shí)我在實(shí)踐中也沒有加入這兩個(gè) loss 去訓(xùn)練。

最后一項(xiàng) loss 是關(guān)于有沒有物體的,其中 YOLO 的 loss 是有一項(xiàng) 的,YOLO 預(yù)測得到的 output?第四維 channel 就是該特征的 , 但是需要 sigmoid 后處理,而?5 到 85 維是 coco 數(shù)據(jù)集中的 80 類分類分?jǐn)?shù),需要 softmax 處理。另外 0,1,2,3 維分別是 x,y,w,h 用處不大。

具體代碼如下,其中 output 為 YOLOv4 模型的輸出,n_ch 為 85 維,fsize 是特征圖大小,人類類別在 coco 數(shù)據(jù)集的 80 類中是第 0 類,所以 confs_for_class 只取了第 0 類的分類分?jǐn)?shù),最后 loss 是分類的分?jǐn)?shù)和有無目標(biāo)的分?jǐn)?shù)的乘積。

????????????output?=?output.view(batchsize,?self.n_anchors,?n_ch,fsize?*?fsize)output?=?output.transpose(1,?2).contiguous()output?=?output.view(batchsize,?n_ch,self.n_anchors?*?fsize?*?fsize)output_objectness?=?torch.sigmoid(output[:,?4,?:])??#?[batch,?1805]output?=?output[:,?5:n_ch,?:]??#?[batch,?80,?1805]#?perform?softmax?to?normalize?probabilities?for?object?classes?to?[0,1]normal_confs?=?torch.nn.Softmax(dim=1)(output)#?we?only?care?for?probabilities?of?the?class?of?interest?(person)confs_for_class?=?normal_confs[:,?0,?:]confs_if_object?=?confs_for_class?*?output_objectness

但是作者最后也嘗試了多種組合方式,只用分類 CLS 的 loss,只用有無目標(biāo) OBJ 的 loss,以及代碼所示的兩個(gè)都用的 loss,結(jié)果如下圖,AP 應(yīng)該越低越好。而用 OBJ-CLS 的 AP 值有 42.8%,只用 OBJ 的 AP 值為 25.53%,只用 CLS 的 AP 值為 82.08%。所以要是無目標(biāo)攻擊的話,最好只攻擊 OBJ 的 loss。

我也在天池的比賽中嘗試過這篇論文的這個(gè)點(diǎn),但是分?jǐn)?shù)不升反降了。

結(jié)論

本次比賽重在學(xué)習(xí),我也沒有做過對抗攻擊的研究,這番下來對目標(biāo)檢測對抗攻擊領(lǐng)域其實(shí)有了一定的了解,也希望能夠幫助更多的人入門這個(gè)領(lǐng)域,我看到落地的 demo 有很多,攻擊的效果也是驚人,但是我的嘗試過后分?jǐn)?shù)并沒有明顯的提升,也有可能是我訓(xùn)練得次數(shù)太少了,目前我都是只訓(xùn)練了最多 500 輪,論文中都是 30w 輪的迭代。

想法十分有趣,攻擊的套路其實(shí)變化不大,都是在原圖貼?Patch,然后設(shè)計(jì) loss 反向傳播只更新 Patch 的參數(shù),另外我發(fā)現(xiàn) Patch 的位置其實(shí)對結(jié)果影響很大。

更多閱讀

#投 稿?通 道#

?讓你的論文被更多人看到?

如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。

總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?

PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)習(xí)心得技術(shù)干貨。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。

?????來稿標(biāo)準(zhǔn):

? 稿件確系個(gè)人原創(chuàng)作品,來稿需注明作者個(gè)人信息(姓名+學(xué)校/工作單位+學(xué)歷/職位+研究方向)?

? 如果文章并非首發(fā),請?jiān)谕陡鍟r(shí)提醒并附上所有已發(fā)布鏈接?

? PaperWeekly 默認(rèn)每篇文章都是首發(fā),均會(huì)添加“原創(chuàng)”標(biāo)志

?????投稿郵箱:

? 投稿郵箱:hr@paperweekly.site?

? 所有文章配圖,請單獨(dú)在附件中發(fā)送?

? 請留下即時(shí)聯(lián)系方式(微信或手機(jī)),以便我們在編輯發(fā)布時(shí)和作者溝通

????

現(xiàn)在,在「知乎」也能找到我們了

進(jìn)入知乎首頁搜索「PaperWeekly」

點(diǎn)擊「關(guān)注」訂閱我們的專欄吧

關(guān)于PaperWeekly

PaperWeekly 是一個(gè)推薦、解讀、討論、報(bào)道人工智能前沿論文成果的學(xué)術(shù)平臺(tái)。如果你研究或從事 AI 領(lǐng)域,歡迎在公眾號(hào)后臺(tái)點(diǎn)擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的天池大赛通用目标检测的对抗攻击方法一览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。