帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

機器之心發表於2019-04-23
對抗攻擊是計算機視覺領域的一大研究熱點,如何使模型對對抗攻擊具備魯棒性是很多學者的研究方向。但之前的研究主要主要涉及具備固定視覺圖案的物件,如交通標誌。交通標誌的外觀大致相同,而人的長相千差萬別。來自比利時魯汶大學的研究者針對人物識別檢測器進行研究,他們建立了一個 40cm×40cm 的小型「對抗影像塊」,它竟然使人在 YOLOv2 檢測器下「隱身」。

如下圖所示,左側沒有攜帶對抗影像塊的人可被準確識別出來,而右側攜帶對抗影像塊的人並未被檢測出來。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

研究主題

卷積神經網路(CNN)的興起使得計算機視覺領域取得巨大成功。CNN 在影像上學習時所用的資料驅動端到端流程在大量計算機視覺任務中取得了最優結果。由於這些架構的深度,神經網路能夠學習網路底部的基礎濾波器,也能學習網路頂層非常抽象的高階特徵。

因此,典型 CNN 包含數百萬引數。儘管這一方法能夠生成非常準確的模型,但其可解釋性大大下降。要想準確理解一個網路為何把人分類為人是非常困難的。網路透過觀察其他人的大量照片,從而學習到人的長相應該是什麼樣子。模型評估過程中,我們可以對比輸入影像和人物標註影像,從而判斷模型在人物檢測(person detection)任務上的效能。

但是,用這種方式評估模型只能使我們瞭解到模型在特定測試集上的效能,而該測試集通常不包含以錯誤方式控制模型的樣本,也不包括用來欺騙模型的樣本。這對於不太可能存在攻擊的應用是合適的,比如老人跌倒檢測,但對安防系統來說,這帶來了現實問題。安防系統中人物檢測模型如果比較脆弱,則可能會被用於躲避監控攝像頭,破壞安保。

之前的目標檢測器對抗攻擊研究主要涉及具備固定視覺圖案的物件,如交通標誌(參見:學界 | 幾張貼紙就讓神經網路看不懂道路標誌,伯克利為真實環境生成對抗樣本令人崩潰的自動駕駛:看完這個影片後,我不敢「開」特斯拉了),但缺乏針對類內變化對抗攻擊的研究,如人物檢測。

本文主要研究人物檢測的對抗攻擊,它針對常用的 YOLOv2 目標檢測器。YOLOv2 是全卷積的模型,其輸出網格的解析度是原始輸入解析度的 1/32。輸出網格中每個單元包含五個預測(即「錨點」),其邊界框包含不同的寬高比。每個錨點包含向量

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

YOLOv2 模型架構如下圖所示:

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

圖 2:YOLOv2 架構。該檢測器輸出 objectness 分數(包含某個物件的機率,見圖中上)和類別分數(哪些類在邊界框中,見圖中下)。圖源:https://github.com/pjreddie/darknet/wiki/YOLO:-Real-Time-Object-Detection

一件躲避人物檢測器的「隱身衣」

這篇論文介紹了對抗攻擊給人物檢測系統造成的風險。研究者建立了一個小型(40cm×40cm)「對抗影像塊」(adverserial patch),它就像一件隱身衣,目標檢測器無法檢測出拿著它的人。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

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

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

論文連結:https://arxiv.org/pdf/1904.08653.pdf

近幾年來,人們對機器學習中的對抗攻擊越來越感興趣。透過對卷積神經網路的輸入稍作修改,就能讓網路的輸出與原輸出幾乎背道而馳。最開始進行這種嘗試的是影像分類領域,研究人員透過稍微改變輸入影像的畫素值來欺騙分類器,使其輸出錯誤的類別。

此外,研究人員還嘗試用「影像塊」來實現這一目的。他們將「影像塊」應用於目標,然後欺騙檢測器和分類器。其中有些嘗試被證明在現實世界是可行的。但是,所有這些方法針對的都是幾乎不包含類內變化的類別(如停車牌)。目標的已知結構被用來生成對抗影像塊。

這篇論文展示了一種針對大量類內變化(即人)生成對抗影像塊的方法。該研究旨在生成能夠使人不被人物檢測器發現的對抗影像塊。例如可被惡意使用來繞過監控系統的攻擊,入侵者可以在身前放一塊小紙板,然後偷偷摸摸地靠近而不被攝像頭發現。

實驗證明,該研究提出的系統能夠大大降低人物檢測器的準確率。該方法在現實場景中也起作用。據悉,該研究是首次嘗試這種針對高階類內變化(如人)的工作。

生成針對人物檢測器的對抗影像塊

本文的目標是建立這樣一個系統:它能夠生成可用於欺騙人物檢測器的可印刷對抗影像塊。之前的一些研究主要針對的是停車牌,而本文針對的是人。與停車牌的統一外觀不同,人的長相千差萬別。研究者(在影像畫素上)執行最佳化過程,嘗試在大型資料集上尋找能夠有效降低人物檢測準確率的影像塊。這部分將深入介紹生成對抗影像塊的過程。

該研究的最佳化目標包括三部分:

  • L_nps:不可印刷性分數(non-printability score),這個因素代表影像塊的顏色在普通印表機上的表現。公式如下:

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

其中 p_patch 是影像塊 P 中的畫素,而 c_print 是一組可印刷顏色 C 中的一種顏色。該損失函式幫助影像塊影像中的顏色與可印刷顏色中的顏色接近。

  • L_tv:[17] 中描述的影像總體變化。該損失確保最佳化器更喜歡色彩過渡平滑的影像並且防止噪聲影像。我們可以根據影像塊 P 計算 L_tv,如下所示:

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

如果相鄰畫素比較相似,則分數較低;反之,則分數很高。

  • L_obj:影像中的最大 objectness 分數。對抗影像塊的目標是隱藏影像中的人。為此,該研究的訓練目標是最小化檢測器輸出的目標或類別分數。

損失函式由這三個損失函式組成:

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

研究者將根據實驗確定的因子 α 和 β 縮放的三個損失相加,然後利用 Adam 演算法進行最佳化。

最佳化器的目標是最小化總損失 L。在最佳化過程中,研究者凍結網路中的所有權重,只改變對抗影像塊中的值。最佳化開始時,根據隨機值初始化對抗影像塊。

圖 3 概述了目標損失的計算過程,類別機率也是根據相同的過程計算的。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

圖 3:計算目標損失的過程。

實驗

研究者使用和訓練時相同的過程,將對抗影像塊應用於 Inria 測試集以進行評估。在實驗過程中,研究者最小化一些可能隱藏人的不同引數。作為對照,研究者還將其結果與包含隨機噪聲的影像塊進行了比較,二者的評估方式完全一樣。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

圖 5:不同方法(OBJ-CLS、OBJ 和 CLS)與隨機影像塊(NOISE)和原始影像的 PR 曲線對比。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

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

圖 6 展示了將該研究建立的對抗影像塊應用於 Inria 測試集的一些示例。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

圖 6:在 Inria 測試集上的輸出示例。

在圖 7 中,研究者測試了可印刷影像塊在現實世界中的效果。

帶了個對抗影像塊,YOLOv2竟然無法識別我是人……

圖 7:在現實世界中使用該可印刷影像塊的情況。

該研究已公佈原始碼:https://gitlab.com/ EAVISE/adversarial-yolo,感興趣的讀者可以一探究竟。

相關文章