胡慧敏,錢亞冠,雷景生,馬丹峰
(浙江科技學(xué)院 a.曙光大數(shù)據(jù)學(xué)院;b.電子與信息工程學(xué)院,杭州 310023)
自Krizhevsky等[1]將卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)成功應(yīng)用于ImageNet圖像識別任務(wù)后,深度學(xué)習(xí)被廣泛應(yīng)用到各種智能識別領(lǐng)域,包括自動(dòng)駕駛、人臉識別和語音識別等。雖然深度學(xué)習(xí)在特定領(lǐng)域的模式識別能力超出了人類水平,但最近的研究表明深度學(xué)習(xí)也面臨多種安全威脅,容易受到對抗擾動(dòng)的攻擊[2-3]。比如在深度神經(jīng)網(wǎng)絡(luò)的輸入圖像中做些精心設(shè)計(jì)的修改就有可能引起錯(cuò)誤的預(yù)測結(jié)果,甚至對錯(cuò)誤的預(yù)測結(jié)果給出很高的置信度。這種添加了擾動(dòng)的圖像被稱為對抗樣例(adversarial examples)?,F(xiàn)有的大多數(shù)對抗樣例攻擊是針對整張圖像添加的擾動(dòng)[4-5],但也有部分攻擊只進(jìn)行局部的擾動(dòng)[9-10]。本文提出的車牌字符污點(diǎn)攻擊屬于局部擾動(dòng)的對抗攻擊。
典型的對抗樣例攻擊方法是在卷積神經(jīng)網(wǎng)絡(luò)為線性的假設(shè)條件下對整張圖像添加擾動(dòng),加入擾動(dòng)的圖像對人的視覺感受沒有差異,但卻能讓分類器錯(cuò)誤分類。將一張熊貓的圖像加入特定的擾動(dòng),就能使卷積神經(jīng)網(wǎng)絡(luò)分類器將熊貓誤分類為長臂猿。Moosavi-Dezfooli[4]提出了一種普適的擾動(dòng)算法,使用l2和l∞范數(shù)作為擾動(dòng)度量,產(chǎn)生的擾動(dòng)可使任意圖像被深度神經(jīng)網(wǎng)絡(luò)錯(cuò)誤分類。該方法用2000張圖像在ResNet模型上進(jìn)行攻擊測試,獲得了很高的攻擊成功率,并發(fā)現(xiàn)擾動(dòng)的大小與攻擊成功率呈正相關(guān)。Karmon等[6]通過求解最優(yōu)擾動(dòng)位置的方法來產(chǎn)生可視化的局部擾動(dòng)補(bǔ)丁。該方法在不覆蓋圖像中的任何目標(biāo)對象的情況下,將補(bǔ)丁貼在背景上就能使目標(biāo)對象被錯(cuò)誤分類。對抗攻擊的另一個(gè)極端情況是只需篡改圖像中的某個(gè)像素就能欺騙分類器[7],攻擊的目標(biāo)類的置信度可達(dá)97.47%。Moosavi-Dezfooli等[8]提出用迭代的方法計(jì)算給定圖像的最小范數(shù)的對偶擾動(dòng),試驗(yàn)結(jié)果表明,在具有相似的欺騙比的情況下,Deepfool算法能夠計(jì)算出比FGSM算法[3]更小的擾動(dòng)范數(shù)。
隨著智能交通系統(tǒng)的不斷發(fā)展,車牌檢測與識別(license plate detection and recognition,LPDR)在交通監(jiān)控、公路收費(fèi)站、停車場出入口管理等監(jiān)控系統(tǒng)中有著廣泛的應(yīng)用。然而在處理車牌圖像的過程中,基于深度學(xué)習(xí)的車牌識別系統(tǒng)[9-11]同樣會(huì)受到對抗樣例的攻擊。對此,我們提出了一種新的對抗樣例的攻擊方法,與以往在整個(gè)圖像上添加擾動(dòng)的方法不同,攻擊者只在車牌圖像的局部位置惡意添加污點(diǎn),偽裝成無意中濺上的泥土,干擾車牌識別系統(tǒng)正確識別字符。這類對抗樣例具有很強(qiáng)的隱蔽性和依賴性。為了防御這類攻擊,我們使用了對抗訓(xùn)練的防御方法,即利用對抗樣例作為訓(xùn)練樣例,繼續(xù)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),從而達(dá)到增強(qiáng)其魯棒性的目的。試驗(yàn)結(jié)果表明,對抗訓(xùn)練能有效地防御這類污點(diǎn)型對抗攻擊。
一個(gè)完整的車牌識別系統(tǒng)由檢測和識別兩個(gè)步驟組成,整體流程如圖1所示。檢測指對車牌進(jìn)行定位,生成符合特定條件的邊界框,進(jìn)而識別指區(qū)分出邊界框中的所有字符。檢測方法分為傳統(tǒng)的圖像處理方法和當(dāng)前流行的基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)方法。傳統(tǒng)的圖像處理方法主要依賴于人工構(gòu)造的圖像特征提取車牌的形態(tài)、顏色或紋理[12]等屬性信息。然而這些圖像特征對噪聲敏感,在復(fù)雜背景或不同的光照條件下可能會(huì)導(dǎo)致檢測錯(cuò)誤。而卷積神經(jīng)網(wǎng)絡(luò)提取的圖像特征克服了這些缺點(diǎn),在成功定位車牌的邊界框后,進(jìn)一步對邊界框中的車牌字符進(jìn)行識別。由于車牌中含有多個(gè)字符,因此識別的方式可分為單字符識別和多字符識別。單字符識別就是將車牌中的字符序列分割成獨(dú)立的字符,接著使用光學(xué)字符識別(optical character recognize,OCR)的方法進(jìn)行識別。多字符識別是將整個(gè)車牌字符序列放入卷積神經(jīng)網(wǎng)絡(luò)中提取特征,再通過時(shí)間連接分類器(connectionist temporal classification,CTC)[13]方法輸出字符序列。本文試驗(yàn)使用的車牌識別系統(tǒng)采用多字符識別方式,在多字符識別階段使用了3個(gè)卷積層和2個(gè)循環(huán)與門(gated recurrent unit,GRU)層。GRU是長短時(shí)記憶(long short-term memory,LSTM)網(wǎng)絡(luò)的一種變體,它比LSTM網(wǎng)絡(luò)的結(jié)構(gòu)更簡單,而且識別效果更好,因此是當(dāng)前車牌識別系統(tǒng)中非常流行的一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 車牌識別系統(tǒng)流程
對車牌識別系統(tǒng)攻擊和防御建立在一定的威脅模型的假設(shè)上。威脅模型是對攻擊者了解目標(biāo)系統(tǒng)的知識和攻擊的特異性作出的假設(shè)。根據(jù)攻擊者對模型內(nèi)部信息掌握的多少,可分為白盒攻擊和黑盒攻擊。白盒攻擊假設(shè)攻擊者幾乎了解目標(biāo)神經(jīng)網(wǎng)絡(luò)的所有信息,包括訓(xùn)練數(shù)據(jù)、模型架構(gòu)等,目前大多數(shù)對抗攻擊都是白盒攻擊。黑盒攻擊指攻擊者無法知道神經(jīng)網(wǎng)絡(luò)模型的內(nèi)部信息,通常只能獲取輸入樣例和輸出的預(yù)測標(biāo)簽。本研究采用黑盒攻擊策略。攻擊特異性根據(jù)攻擊對手期望的誤分類結(jié)果可分為有目標(biāo)攻擊與無目標(biāo)攻擊,即:fθ(x′)≠y(無目標(biāo)攻擊),或fθ(x′)=y′(有目標(biāo)攻擊),y′是目標(biāo)攻擊的類且y≠y′。本文的污點(diǎn)攻擊屬于有目標(biāo)攻擊,例如把字符“A”誤分類為“E”。
本文提出的污點(diǎn)攻擊模擬車牌被泥土等污染的情況,攻擊者的目的是用于偽裝,逃避檢測。攻擊方法主要包括3個(gè)步驟:首先是通過優(yōu)化算法找到容易被字符分類器識別錯(cuò)誤的位置,即使用l1范數(shù)為度量找到容易攻擊的位置;其次是固定該位置以后,再使用優(yōu)化算法,以l2范數(shù)為度量產(chǎn)生擾動(dòng)δ;最后,在找到的位置上將擾動(dòng)δ添加到干凈樣本x中,然后生成對抗樣本x′:x′=x+δ。我們把尋找最優(yōu)擾動(dòng)δ的過程建模為如下有約束優(yōu)化問題:
(1)
式(1)中:|δ|p為向量范數(shù),p=1或2;y*為攻擊的目標(biāo)類別。用拉格朗日松弛法求解,可轉(zhuǎn)化為如下的無約束優(yōu)化模型:
(2)
式(2)中:J為交叉熵?fù)p失函數(shù);λ>0為拉格朗日系數(shù)。在找到擾動(dòng)位置后,設(shè)置一個(gè)掩膜矩陣m,m∈{0,1}n×n,對抗樣本x′可表示為
x′=(U-m)?x+m?δ。
(3)
式(3)中:U為元素均為1的n階矩陣;?代表hadamard積。
圖2 車牌字符污點(diǎn)攻擊圖像
對抗訓(xùn)練是提高神經(jīng)網(wǎng)絡(luò)魯棒性的方法之一,通過在訓(xùn)練集中加入對抗樣本,以平滑神經(jīng)網(wǎng)絡(luò)的輸出對微小擾動(dòng)的敏感度。采用文獻(xiàn)[14]的對抗訓(xùn)練方法進(jìn)行防御,在每批訓(xùn)練的數(shù)據(jù)中加入對抗樣本,然后用損失函數(shù)作為衡量標(biāo)準(zhǔn),即
(4)
式(4)中:J(x|y)為交叉熵?fù)p失函數(shù);n為每批對抗訓(xùn)練的總樣本數(shù)。該算法首先初始化一個(gè)訓(xùn)練模型M0,然后將干凈樣本和對抗樣本加入到模型中,并以式(4)的值作為衡量標(biāo)準(zhǔn)來更新模型M0。
試驗(yàn)所使用的數(shù)據(jù)集包含車牌的字符圖像和車牌圖像,分別訓(xùn)練單字符分類器和多字符分類器。用于訓(xùn)練單字符分類器的字符圖像有2 300張,包括A、B、C、D、E、F六個(gè)類別的字符,該字符圖像的大小為60 pixel×35 pixel,而車牌圖像的大小為250 pixel×60 pixel。用于訓(xùn)練多字符分類器的圖像包括質(zhì)量較好與較差兩種。質(zhì)量較好的車牌圖像,分類置信度大于0.9,且置信度大于0.95的占60%以上;質(zhì)量較差的圖像中至少有20%的車牌識別置信度小于0.9。試驗(yàn)選用兩種不同質(zhì)量的車牌圖像,分別含有A、C、E字符的圖像各20張,對它們進(jìn)行多字符攻擊和單字符攻擊。
圖3 單字符污點(diǎn)攻擊圖像
單字符攻擊是從質(zhì)量較好的圖像中裁剪出來的20張大小為35 pixel×60 pixel的字符圖像,然后用不同形狀和數(shù)量的污點(diǎn)進(jìn)行試驗(yàn),生成了3種不同形式的污點(diǎn),如圖2所示,產(chǎn)生不同單字符污點(diǎn)的過程如圖3所示。3種污點(diǎn)分別為:可變擾動(dòng)的污點(diǎn);固定顏色的污點(diǎn);全局?jǐn)_動(dòng)中添加污點(diǎn),即在整張圖像添加擾動(dòng),并加入可變擾動(dòng)的污點(diǎn)。不同形狀和數(shù)量的污點(diǎn)攻擊成功率見表1和表2。
從表1的試驗(yàn)結(jié)果中發(fā)現(xiàn),當(dāng)污點(diǎn)的數(shù)量由1增加到3時(shí),其攻擊效果逐漸增強(qiáng)。從兩表的比較中還可以發(fā)現(xiàn)不同的污點(diǎn)形狀(矩形和非矩形)攻擊能力有所差異,當(dāng)污點(diǎn)數(shù)量同時(shí)為2時(shí),非矩形污點(diǎn)的攻擊效果優(yōu)于矩形污點(diǎn)。
表1單字符矩形污點(diǎn)的攻擊成功率
Table1Success rate of single character rectangle stain attack %
污點(diǎn)個(gè)數(shù)A→CA→EC→AC→EE→AE→C11001555806595210085708580953100100759085100
表2單字符非矩形污點(diǎn)的攻擊成功率
Table2Success rate of single character non-rectangular stain attack %
污點(diǎn)個(gè)數(shù)A→CA→EC→AC→EE→AE→C190055658010021008595958510031001009510085100
在多字符攻擊中,我們直接在車牌圖像上添加污點(diǎn),并用HyperLPR[15]中文車牌識別系統(tǒng)來測試攻擊效果。為精確描述攻擊成功率,只對能被系統(tǒng)正確識別的干凈車牌圖像進(jìn)行污點(diǎn)攻擊。多字符攻擊的試驗(yàn)結(jié)果見表3~4。污點(diǎn)類型I表示補(bǔ)丁可視化的攻擊方式,類型Ⅱ表示使用RGB值為(139,119,101)時(shí)的攻擊方式,類型Ⅲ表示全局?jǐn)_動(dòng)時(shí)的攻擊方式。
表3 多字符矩形污點(diǎn)攻擊成功率
表4 多字符非矩形污點(diǎn)的攻擊成功率
從表4的試驗(yàn)結(jié)果發(fā)現(xiàn),污點(diǎn)Ⅲ比污點(diǎn)Ⅰ和Ⅱ更易導(dǎo)致車牌識別系統(tǒng)分類錯(cuò)誤,例如希望把字符A誤判為非C字符和非E字符,在質(zhì)量較好的圖像上攻擊成功率分別為25%和40%,而只要添加部分可變擾動(dòng)的污點(diǎn)則成功率幾乎為0%。在圖像質(zhì)量較差的情形下,污點(diǎn)Ⅲ的攻擊優(yōu)勢更明顯,同樣將字符A誤判為非C和非E字符,攻擊成功率分別達(dá)70%和60%。在表4中還可以看出污點(diǎn)Ⅰ比污點(diǎn)Ⅱ的攻擊更有效,如將字符A誤識別為非C和非E的情況下,污點(diǎn)Ⅰ在質(zhì)量較好的圖像上攻擊成功率分別達(dá)5%和15%,而污點(diǎn)Ⅱ的攻擊成功率為0%,這是因?yàn)槲埸c(diǎn)I中的擾動(dòng)是通過優(yōu)化算法產(chǎn)生的,而污點(diǎn)Ⅱ只是找到了容易被攻擊的位置,污點(diǎn)顏色是人為確定的。
從表3和表4的對比發(fā)現(xiàn),字符在不同的污點(diǎn)形狀下攻擊成功率是不同的。在非矩形的污點(diǎn)攻擊下將字符C攻擊為非E的成功率為0%,而在矩形污點(diǎn)下的成功率穩(wěn)定在5%,這表明非矩形污點(diǎn)的攻擊效果好;而將字符C攻擊為非A時(shí),情況則相反。從表3~4中還觀察到字符C的攻擊效果比較差,這是因?yàn)閺能嚺谱R別系統(tǒng)中預(yù)測出來的圖像置信度分?jǐn)?shù)在0.97的有80%,這表明如果圖像置信度較高則相對難以攻擊成功;反之亦然。此外,我們發(fā)現(xiàn)在對車牌識別系統(tǒng)的攻擊中字符E容易被誤分類為F。污點(diǎn)攻擊圖像部分示例見圖4,其中,第1、3列是未加污點(diǎn)的原圖像,第2、4列是加了污點(diǎn)后的圖像,第2、4、6行是識別出的車牌號及車牌圖像的置信度。
圖4 污點(diǎn)攻擊前后的車牌圖像及識別結(jié)果
將字符A至F的2 030張圖像用于對抗訓(xùn)練,其中字符A、C和E是添加了擾動(dòng)的圖像。然后從真實(shí)的車牌圖像中選出含有字符A、C和E的圖像進(jìn)行測試,數(shù)量分別為83、83和123張,結(jié)果見表5。在對抗訓(xùn)練前,單字符圖像的攻擊成功率最低為68.3%,最高達(dá)99.1%,可見我們提出的攻擊方法有較高的成功率。用對抗訓(xùn)練進(jìn)行防御,訓(xùn)練100次后用新的對抗樣例(未參與訓(xùn)練)測試單字符分類器,字符C的攻擊成功率最低,降到1.3%,字符E的攻擊成功率降到12.2%,由此表明對抗訓(xùn)練可以有效提高模型對污點(diǎn)攻擊的防御能力。
表5 對抗訓(xùn)練前后的單字符攻擊成功率對比
本研究提出了一種將攻擊最優(yōu)位置和局部污點(diǎn)相結(jié)合的方法用于攻擊車牌單字符和多字符的識別系統(tǒng)。我們改變以往對整個(gè)圖像進(jìn)行擾動(dòng)的做法,只針對車牌圖像進(jìn)行局部擾動(dòng),模擬車牌上的污點(diǎn),這樣不僅能巧妙地逃過人類視覺系統(tǒng)的觀察,還能使基于卷積神經(jīng)網(wǎng)絡(luò)的車牌分類器出現(xiàn)預(yù)測錯(cuò)誤。通過優(yōu)化算法設(shè)計(jì)實(shí)現(xiàn)了車牌污點(diǎn)攻擊,試驗(yàn)結(jié)果表明該攻擊的成功率高,對目前的車牌分類器構(gòu)成了一定的威脅。同時(shí)我們發(fā)現(xiàn),在多字符攻擊試驗(yàn)中圖像質(zhì)量的好壞會(huì)對攻擊能力產(chǎn)生影響,質(zhì)量差的圖像更容易被攻擊成功。針對這類威脅,我們提出了基于對抗訓(xùn)練的防御方法,試驗(yàn)結(jié)果表明它具有較好的防御效果。