郭素珍 任明武
(南京理工大學計算機科學與工程學院 南京 210094)
隨著我國在世界舞臺上經(jīng)濟政治實力的快速提高,人民幣在國內外流通速度隨之加快[1]。人民幣鑒偽技術的發(fā)展對于保證我國金融安全,維護正常的經(jīng)濟秩序和社會的穩(wěn)定性都具有重要的現(xiàn)實意義。
目前手機分辨率普遍在2000萬像素,更有甚者達到4800萬像素,這為利用手機人民幣圖像鑒偽帶來了可能,但是利用手機拍攝的人民幣圖像難免會有變形、噪聲,這使得使用手工提取手機人民幣圖像特征進行真?zhèn)舞b別面臨很大的問題。近年來,深度學習在圖像檢測識別領域取得了令人矚目的成就,相比傳統(tǒng)的人工提取特征的圖像處理方法,深度學習通過其網(wǎng)絡在訓練過程中自己學習參數(shù)來對輸入圖像進行特征提取,然后對輸出結果進行判斷并識別?,F(xiàn)在,卷積神經(jīng)網(wǎng)絡在圖像分類[2]等計算機視覺領域的應用廣泛。
圖像分類是計算機視覺領域的一個經(jīng)典研究課題,傳統(tǒng)的圖像分類主要處理語義級圖像和實例級圖像兩大類:前者包括諸如場景識別、對象識別等,其目的是識別不同類別的對象,如貓和狗等;后者則是對不同的個體進行分類,如人臉識別。而細粒度圖像分類則位于這兩者之間,不同于對象識別等粗粒度的圖像分類任務,細粒度圖像的類別精度更加細致,類間差異更加細微,往往只能借助于微小的局部差異才能區(qū)分出不同的類別[3]。細粒度圖像分類任務一直是分類任務中極具挑戰(zhàn)性的任務,主要原因就是數(shù)據(jù)集本身類內差異大,類間差異小的特性[4]。RMB圖像的真?zhèn)舞b別很明顯屬于細粒度圖像分類的范疇,其真假RMB的差異很小,但是類內差異卻比較大。
本文首先介紹在2014年ILSVRC上定位第一,分類第二的經(jīng)典網(wǎng)絡VGG[5]和2015年提出的針對細粒度圖像分類任務的雙線性卷積神經(jīng)網(wǎng)絡[6]。隨后介紹手機人民幣圖像的紅色分量對于人民幣鑒偽的重要性。之后介紹一種用于手機人民幣圖像鑒偽任務的框架,該框架以帶有提取紅色分量Lambda層的VGG16的block5的輸出一分為二為基礎構成B-CNN。之后介紹兩種模型學習策略,專門用于該框架的模型學習。最后的實驗部分,首先對比將單純的VGG16(不包含頂部的三個全連接層和softmax層)的block3、block4、block5的輸出分別接三個層(卷積核大小為1*1、filters=5的卷基層、概率參數(shù)為0.5的Dropout層、激活函數(shù)為sigmoid的全連接層)之后的人民幣真?zhèn)舞b別性能;其次對比在以VGG16的block3、block4、clock5的輸出為基礎構建的B-CNN網(wǎng)絡在人民幣真?zhèn)舞b別性能;繼而對比增加了提取人民幣紅色分量的Lambda層的單純的VGG16的block3、block4、clock5的輸出構建的B-CNN網(wǎng)絡在人民幣真?zhèn)舞b別性能。最后對比兩種訓練策略對人民幣真?zhèn)舞b別性能的影響。
神經(jīng)網(wǎng)絡是機器學習[7]的重要組成部分,也是深度學習的基礎。卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)[8-9]相較于一般的神經(jīng)網(wǎng)絡最突出的特征就是增加了卷積層和池化層,這相當于在神經(jīng)網(wǎng)絡的線性基礎上增加了非線性變化。卷積層擁有的參數(shù)共享、局部連接的特性使得傳統(tǒng)神經(jīng)網(wǎng)絡采用全連接網(wǎng)絡帶來的參數(shù)量巨大訓練消耗資源多的弊端得到改善。
VGG[5]網(wǎng)絡模型對卷積神經(jīng)網(wǎng)絡的深度和性能之間的關聯(lián)進行了多項探索,其網(wǎng)絡結構非常簡潔,整個網(wǎng)絡中全部使用大小為3*3的卷積核和2*2的最大池化核。
VGG16的網(wǎng)絡架構如圖1所示,VGG16里面包含多個conv->conv->max_pool這類的結構,其卷積參數(shù)padding都是same類型、其下采樣完全是通過max_pooling完成。其較之前的卷積神經(jīng)網(wǎng)絡最大的閃光點就是卷積層使用更小的filter尺寸和間隔。
圖1 VGG16網(wǎng)絡結構圖
細粒度圖像分類任務中幾種主流方法有強監(jiān)督的細粒度圖像分類、弱監(jiān)督的細粒度圖像分類。強監(jiān)督的細粒度圖像分類是指在模型訓練的時候除了使用圖像的類別標簽外,還使用了標注框等額外的人工標注信息;而弱監(jiān)督的細粒度圖像分類在模型訓練時只依賴于類別標簽[10]。
Lin等[6]在2015年創(chuàng)造性地提出了雙線性卷積神經(jīng)網(wǎng)絡(B-CNN),該模型的網(wǎng)絡架構圖2所示,其在三個經(jīng)典數(shù)據(jù)集上達到了很高的分類精度、能夠實現(xiàn)端到端的訓練,且屬于僅依賴圖像的類別標簽的弱監(jiān)督分類算法。B-CNN模型可認為一個網(wǎng)絡對物體局部區(qū)域進行檢測,另外一個網(wǎng)絡進行特征提取,兩個網(wǎng)絡相互協(xié)調完成細粒度圖像分類過程中的區(qū)域檢測和特征提取。
圖2 B-CNN網(wǎng)絡架構
B-CNN網(wǎng)絡由B=(fa,fb,P,C)組成,其中fa,fb代表特征提取函數(shù),對應于圖2中的streamA和streamB,P是一個池化函數(shù),C則是分類函數(shù)。從圖2中可以看出,其實就是用兩個卷積神經(jīng)網(wǎng)絡對圖像進行特征提取,然后用一個bilinear pooling層將CNN抽取的兩組特征進行結合,最后帶入softmax層進行分類。此處的bilinear pooling本質上就是對兩個CNN的輸出進行外積,從而得到雙線性特征X,之后將X依次按照式(1)和式(2)進行處理,從而得到圖片最終的特征,并用于后續(xù)分類。
本文針對的手機人民幣圖像指的是用魅族16th手機拍攝的百元人民幣的局部特征圖像,本人采集的手機人民幣圖像的12個特征區(qū)域均為人民幣正面特征,即左上角國徽、左上角國徽右側祥云、中國人民銀行標識下方100字樣、包含壹佰圓字樣的中間梅花區(qū)域、左下角的100字樣、毛主席臉部,毛主席耳朵、毛主席耳朵上方頭發(fā)區(qū)域、毛主席耳朵下方衣領區(qū)域、毛主席衣領中間扣子、右上角100元字樣,右下角盲文區(qū)。
紋理分析技術起源于對遙感圖像的分析[11],常用的紋理分析技術有統(tǒng)計分析、結構分析、模型分析和頻譜分析,而灰度共生矩陣(Gray Level Co-occurrence Matrix,GLCM)是統(tǒng)計分析方法中最關鍵的方法之一[12]?;叶裙采仃嚱y(tǒng)計在圖像中的指定方向上,像素坐標相距一定間隔的兩個灰度像素同時出現(xiàn)的概率,矩陣中的元素代表圖像中灰度之間的聯(lián)合概率密度?;叶裙采仃嘒中的元素可以定義為式(3),其中(x,y)代表圖像像素的坐標,i,j=0,1,…L-1是圖像的灰度級,|.|表示集合中的元素個數(shù),S表示在指定區(qū)域中具有特定空間關系的像素對的集合,dx和dy為求取灰度矩陣時選取的步長。
Ulaby等[13]基于GLCM特征,提出熵(Entropy,ENT)、能量(Energy,又稱角二階矩Angular Second Moment,ASM)、慣性矩(又稱對比度Contrast,CON)和相關性(又稱逆差矩,Inverse Different Moment,IDM)等四種紋理特征,這四種特征的計算公式如下:
本人求取了手機人民幣圖像的12個特征區(qū)域的RGB通道在GLCM的step為1、2、3的情況下的四個方向上的四種紋理特征,其均值如表1所示,求取灰度共生矩陣使用的灰度級別是64。從表中可以看出:在手機人民幣的鑒偽任務中,手機人民幣圖像的紅色分量對比藍綠分量具有其優(yōu)越性。
表1 手機人民幣圖像RGB三通道在GLCM步長為1、2、3情況下四個方向上四種紋理特征均值
本節(jié)提出一種針對手機人民幣圖像局部特征的真?zhèn)巫R別框架,框架是以VGG16和提取圖片紅色分量的Lambda為基礎構建的變種的B-CNN網(wǎng)絡。Lin[14]在2017年提出的B-CNN的改進中就已經(jīng)證實了雙線性特征是高度冗余的,可以減小數(shù)量級,而不會顯著降低精度,但是其并沒有擺脫仍然是兩路不一樣的CNN網(wǎng)絡進行特征提取。本人以增加了提取圖片紅色分量的Lambda層的單路VGG16模擬兩路輸出,從而構建B-CNN網(wǎng)絡。本節(jié)提出的網(wǎng)絡構造圖如圖3所示,圖中紅色框代表提取人民幣圖片紅色分量的Lambda層;綠色框代表VGG16的5個block層;藍色框代表B-CNN中的Bilinear Pooling層。
圖3 本文提出框架的結構圖
VGG16模型提出后,在多領域的特征提取上都展示了巨大的優(yōu)勢[15]。因為本人的數(shù)據(jù)集不足以訓練VGG16如此龐大的網(wǎng)絡,所以在模型訓練時使用了遷移學習的方法,即在訓練帶有提取手機人民幣紅色分量的Lambda層的VGG16模型時先載入了VGG16在ImageNet預訓練的權重,然后再使用本人構建的手機人民幣圖像數(shù)據(jù)集進行進一步的訓練。
簡單組合訓練的具體策略是首先將圖3中的藍色框全部去掉(即去掉了B-CNN的Bilinear Pooling層),以帶有提取手機人民幣紅色分量的Lambda層的VGG16的block5的輸出作為圖片的特征,以激活函數(shù)為softmax的全連接層為輸出,利用梯度下降法更新模型參數(shù)。當此模型收斂后,再加入Bilinear Pooling層,之后凍結Bilinear Pooling層之前的所有層的權重,再次訓練直到模型收斂。
上面提出的簡單組合框架訓練中,單路VGG16和Bilinear Pooling層在訓練期間沒有發(fā)生直接的關聯(lián),即兩部分均屬于單獨訓練。本小節(jié)在簡單組合訓練的基礎上提出一種端到端組合訓練方法。
端到端組合訓練的具體策略是直接搭建圖3中的模型,訓練開始時載入VGG16在ImageNet數(shù)據(jù)集上預訓練的權重,繼而使用本人采集的手機人民幣圖像數(shù)據(jù)集進行端到端的訓練,即VGG16和Bilinear Pooling同時訓練權重,訓練直到模型收斂。
本實驗使用的數(shù)據(jù)集為通過魅族16th采集的一百元真假人民幣的12個特征區(qū)域的圖片,圖片大小均為4032*3024像素。其中每個特征的真假人民幣訓練樣本各為1200張,驗證樣本各為300張,測試樣本各為300張。實驗采用的實驗平臺是Titan v+python3.6+keras2.2.4。本文提出的兩組框架在模型訓練時選用相同的訓練參數(shù)。
本節(jié)為了證明本文提出的以帶有提取手機人民幣圖像紅色分量的Lambda層的單路VGG16構建的B-CNN網(wǎng)絡在手機人民幣圖片鑒偽任務中的有效性,對比了多種框架和本文提出的框架在手機人民幣鑒偽任務中的性能指標,性能指標包含精確率、召回率、準確率、錯誤率。性能對比結果如表2。
表2 不同模型在測試集上性能指標
本小節(jié)對比的特征提取器框架包含:單純的VGG16的block3、block4、block5的輸出、帶有提取手機人民幣紅色分量的VGG16的block3、block4、block5的輸出、單純的VGG16的block3、block4、block5的輸出構成的B-CNN的簡單組合訓練和端到端組合訓練、本文提出的帶有提取紅色分量Lambda層的單路VGG16的block3、block4、block5的輸出構建的B-CNN的輸出。上述特征提取器的輸出均通過激活函數(shù)為softmax的全連接層。
觀察表2,我們按照在表2中框架順序依次編號為1~6。最明顯地能看到前三個框架以VGG16的Block3的輸出作為特征提取器時,訓練無法收斂,這是因為簡單的block3的輸出無法獲取真人民幣的有效特征,從而導致所有預測都是假人民幣,這也是為什么假幣的召回率為100%的原因??蚣?中依然是使用VGG16的block3的輸出,但是其因為使用了Bilinear Pooling層對其輸出進行了進一步的非線性化,使得準確率得到飛升。從框架1到框架6,最直觀的還是隨著block的增多,即非線性層帶來的非線性程度的提高,準確率逐步上升。
其次對比三組框架(框架1和框架2,框架3和框架5,框架4和框架6),這三組框架的區(qū)別僅僅在于是否有提取手機人民幣圖像的紅色分量的Lambda層,從表格中可以清楚地看出:帶有提取紅色分量Lambda層的框架在準確率上明顯更具有優(yōu)勢,這也很好地驗證了手機人民幣圖像中紅色分量確實比其他兩個分量攜帶的有效信息多。
最后對比兩組不同訓練方法的性能,即框架3和框架4、框架5和框架6。這兩組框架的區(qū)別僅僅在于訓練方法的不同,結果顯示:使用端到端組合訓練方法可以明顯提升識別率。簡單組合訓練依賴于網(wǎng)絡前端VGG16網(wǎng)絡對手機人民幣圖像的特征提取能力,若前端的VGG16無法提取有效信息,那么簡單組合訓練后期凍結網(wǎng)絡前端之后也無法獲取有效的用于真?zhèn)舞b別的特征。反觀端到端組合訓練,其VGG16和Bilinear Pooling層同時訓練,同步提取特征,使得模型的非線性能力得到提升,也能更好地提取手機人民幣用于真?zhèn)舞b別的特征
本文提出了一種提升手機人民幣圖像真?zhèn)舞b別的深度學習框架,其使用帶有提取紅色分量的Lambda的VGG16的block5作為前端,使用Bilinear Pooling作為后端,最后使用激活函數(shù)為softmax的全連接層作為分類器。本文使用了簡單組合訓練和端到端組合訓練方式獲取前文所述框架,并且在實驗部分也對比了多種特征提取器對手機人民幣圖像真?zhèn)舞b別的各種性能。現(xiàn)提出幾點展望。
1)本文在實驗部分證明了該框架可以提高手機人民幣的真?zhèn)巫R別率,但是實驗所用數(shù)據(jù)集僅僅是一種手機拍攝獲取,不具有普遍性,后期可以針對多款手機(華為、小米等)進行數(shù)據(jù)集的補充。
2)本文的數(shù)據(jù)集對于有大量訓練參數(shù)的網(wǎng)絡來說,會存在過擬合的問題,后期應該更多的手機真假人民幣圖像擴充數(shù)據(jù)集。
3)本文使用的基礎框架是VGG16的block5的輸出,在后期可以針對其他特征提取網(wǎng)絡(ResNet[16]、DenseNet[17]、Inception[18]等)構建單路BCNN網(wǎng)絡模型。