張開生 王 澤
(陜西科技大學(xué)電氣與控制工程學(xué)院,陜西西安,710021)
基于磁性纖維的加密紙張是在紙張抄造的過程中將磁性纖維以一定的排布規(guī)律嵌入在紙張內(nèi)部的一種紙張防偽技術(shù)。目前已有學(xué)者提出紙張加密和識(shí)別的方法,如利用點(diǎn)陣編碼器促使紙漿中的磁性纖維聚集從而形成磁性加密圖案以及采用改進(jìn)的ORB(Oriented FAST and Rotated BRIEF)算法識(shí)別加密紙張圖像的方法[1-2],但其識(shí)別對(duì)象是建模的加密紙張,且識(shí)別方法為傳統(tǒng)模板匹配算法,準(zhǔn)確識(shí)別率有待提高。磁性纖維加密圖案無法從紙張外表進(jìn)行觀測,如何獲取紙張加密圖案成為待解決的問題,因此有必要對(duì)磁性纖維加密紙張的圖像采集與識(shí)別建立一種通用的方法。
本課題研究的基于磁性纖維的加密紙張以字母和數(shù)字的隨機(jī)組合作為加密圖案,因此紙張加密圖像識(shí)別方法可借鑒字符識(shí)別方法。字符識(shí)別方法主要有基于圖像處理和機(jī)器學(xué)習(xí)兩種方法。傳統(tǒng)圖像處理算法包含模板匹配、字符結(jié)構(gòu)特征方法等,其不需要訓(xùn)練模型,具有簡單及快速的優(yōu)勢,但對(duì)圖像噪聲比較敏感,魯棒性不佳?;跈C(jī)器學(xué)習(xí)的方法包括人工神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(Support Vector Machine,SVM)和K-近鄰等算法,其中SVM 和人工神經(jīng)網(wǎng)絡(luò)算法因具有較好的識(shí)別結(jié)果逐漸成為主流[3]。李鵬松等人[4]提出一種閾值分割與卷積神經(jīng)網(wǎng)絡(luò)AlexNet 相結(jié)合的圖像識(shí)別算法,通過均值迭代閾值分割區(qū)分圖像目標(biāo)和背景以減少AlexNet 訓(xùn)練的數(shù)據(jù)量和參數(shù)量,最后達(dá)到較高的準(zhǔn)確率。鐘鵬程等人[5]將SURF(Speeded Up Robust Features)與ORB 算法結(jié)合以使圖像具有旋轉(zhuǎn)尺度不變性,最后結(jié)合K-近鄰快速搜索算法提高工件圖像的特征點(diǎn)匹配速度。車牌識(shí)別也是字符識(shí)別的一種特殊應(yīng)用場景,賀智龍等人[6]提出一種輕量級(jí)車牌識(shí)別網(wǎng)絡(luò),在車牌定位和識(shí)別階段采用不同深度的CNN(Convolutional Neural Networks)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)字符的識(shí)別;Li 等人[7]通過分割普通文本中的字符信息并將其送入CNN 模型訓(xùn)練,利用訓(xùn)練的字符模型實(shí)現(xiàn)了車牌字符識(shí)別。研究發(fā)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)在字符識(shí)別領(lǐng)域展現(xiàn)出巨大優(yōu)勢,但還沒有研究將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在磁性纖維加密紙張的識(shí)別方面。
為了獲取磁性纖維加密紙張中的加密圖案,提出一種加密圖案的采集方法。磁性纖維具有互相吸引的特性,通過采集裝置拍攝到的加密圖案存在噪點(diǎn)、圖案粘連以及邊緣模糊等問題。首先采用改進(jìn)的機(jī)器視覺方法對(duì)磁性纖維加密圖像預(yù)處理,然后將預(yù)處理后的加密圖像作為卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(Convolutional Recurrent Neural Network,CRNN)[8]輸入,從而識(shí)別出紙張中的加密字符。
磁性纖維加密紙張與普通紙張的不同之處在于其在紙張內(nèi)部加入了少量磁性纖維[9],且通過磁性纖維的聚集能夠形成不同的圖案,從而使紙張具有防偽特性。利用磁性纖維加密紙張?zhí)匦?,設(shè)計(jì)磁性纖維加密圖案的采集裝置如圖1所示。
圖1 磁性纖維加密圖案采集裝置Fig.1 Magnetic fiber encryption pattern acquisition device
由圖1 可知,磁性纖維加密圖案采集裝置由2 個(gè)光源、CCD 相機(jī)、磁粉噴灑裝置、磁化裝置、磁軛、旋轉(zhuǎn)支桿、磁粉收集裝置組成。旋轉(zhuǎn)支桿上設(shè)置平臺(tái)用于放置和固定加密紙張,在平臺(tái)的上方設(shè)置磁化裝置。磁化裝置由多匝磁化線圈構(gòu)成,能夠產(chǎn)生磁力線并通過磁軛傳輸磁力線以增強(qiáng)加密紙張中磁性纖維的磁性,從而促使磁粉更好地吸附在磁性纖維加密紙張上面。噴灑裝置和CCD 相機(jī)置于加密紙張的正上方,噴灑裝置中放置磁粉,可通過噴灑裝置將磁粉均勻噴灑在加密紙張上。2 個(gè)光源置于磁化裝置兩旁以使CCD 相機(jī)能夠拍攝到更為清楚的圖像[10]。磁性纖維加密圖案采集裝置的工作原理是紙張內(nèi)部磁性纖維的磁性受磁化線圈產(chǎn)生的磁力線影響而得到增強(qiáng),通過噴灑裝置將磁粉噴灑在加密紙張上,磁粉受紙張內(nèi)部磁性纖維產(chǎn)生磁場的影響從而聚集在相對(duì)應(yīng)加密圖案的位置上,將紙張內(nèi)部的加密圖案顯現(xiàn)出來。CCD 相機(jī)拍照獲取加密圖像照片后,對(duì)磁化裝置斷電以減小磁性纖維的磁性,然后旋轉(zhuǎn)支桿進(jìn)行旋轉(zhuǎn),從而將紙張上的磁粉倒入磁粉收集裝置中,以便回收磁粉。磁性纖維加密圖案圖像采集的具體流程如圖2所示。
圖2 磁性纖維加密圖像采集流程圖Fig.2 Flow chart of magnetic fiber encryption image acquisition
通過磁性纖維加密圖案采集裝置拍攝到的部分加密圖像照片如圖3所示。
圖3 磁性纖維加密圖像照片F(xiàn)ig.3 Encrypted image photo of magnetic fiber
由磁性纖維加密圖案采集裝置獲取到的磁性纖維加密圖像可以看出大部分磁粉聚集在磁性纖維加密圖案的位置,顯示出了加密圖案的輪廓,但也存在少部分磁粉處于沒有加密圖案的位置,干擾識(shí)別加密圖案的準(zhǔn)確性。圖像預(yù)處理能夠改善磁性纖維加密圖像的質(zhì)量,減少圖像噪聲和對(duì)后續(xù)字符識(shí)別的影響。圖像預(yù)處理的技術(shù)路線:首先對(duì)圖像進(jìn)行高斯濾波以及灰度化處理,其次采用Sobel 邊緣檢測算法突出磁粉覆蓋區(qū)域[11],對(duì)Sobel 卷積操作處理后的圖像應(yīng)用改進(jìn)的OTSU 算法進(jìn)行二值化處理,最后利用形態(tài)學(xué)特征定位出加密圖案的區(qū)域。
(1)二值化
二值化過程能夠?qū)D像的背景和前景區(qū)分,最大類間方差法(OTSU)適用于背景和前景灰度值差距較大的場景,而磁性纖維加密圖像采集裝置采集的圖像背景色為白紙,前景為黑色的磁粉,因此選擇OTSU 算法。OTSU 算法的關(guān)鍵在于閾值T的確定,最優(yōu)閾值T應(yīng)使得劃分出的前景和背景兩類滿足類間方差最大,類內(nèi)方差最小[12]。OTSU 是一種全局最優(yōu)閾值法,即整體灰度平均將0 和255 等邊緣像素納入計(jì)算,而當(dāng)前景和背景的灰度分布只占灰度直方圖的一部分時(shí),全局最優(yōu)閾值法會(huì)影響二值化計(jì)算效率,同時(shí)當(dāng)背景和前景灰度值存在重合時(shí)重復(fù)計(jì)算灰度均值和概率會(huì)影響二值分割質(zhì)量,因此改進(jìn)OTSU 全局最優(yōu)閾值為局部最優(yōu)閾值以提高分割質(zhì)量和效率。
OTSU算法的計(jì)算如式(1)所示。
式中,a 表示前景,b 表示背景,μa和μb表示前景和背景的灰度均值;σ2(T)表示閾值為T時(shí)的類間方差;μ代表整體灰度均值;ωa和ωb表示前景和背景的概率分布,具體計(jì)算如式(2)所示。
式中,N表示圖像的像素點(diǎn)總和;令g(i,j)、ga(i,j)、gb(i,j)表示原始圖像、前景和背景在(i,j)坐標(biāo)下的像素值,則計(jì)算見式(4)。
將式(2)~式(4)帶入式(1)中,消掉背景b 的計(jì)算部分,從而得到改進(jìn)后的OTSU算法如式(5)所示。
改進(jìn)的OTSU 算法主要改進(jìn)兩方面內(nèi)容:一方面改進(jìn)OTSU 最大類間方差的計(jì)算為式(5);另一方面在計(jì)算灰度均值時(shí)不考慮灰度直方圖中灰度為0 和255的邊緣像素,因此求取的是磁性纖維加密圖像的局部最優(yōu)閾值。
在紙張中以磁性纖維加密圖案為“SUST”為例,通過磁性纖維加密圖案采集裝置采集圖像,并利用圖像預(yù)處理技術(shù)進(jìn)行預(yù)處理得到的結(jié)果如圖4所示。
由圖4 可以看出,改進(jìn)后的OTSU 算法相比傳統(tǒng)OTSU 算法處理的結(jié)果更好,改進(jìn)后的OTSU 算法能夠一定程度將不處于磁性纖維加密圖案上的多余磁粉濾除,得到高質(zhì)量的二值化圖像,進(jìn)而提高磁性纖維加密字符的識(shí)別準(zhǔn)確率。
圖4 磁性纖維加密圖案預(yù)處理過程Fig.4 Magnetic fiber encryption pattern preprocessing process
為了進(jìn)一步說明改進(jìn)OTSU 算法的優(yōu)良性能,利用磁性纖維加密采集裝置采集圖像,并分別采用傳統(tǒng)OTSU 算法與改進(jìn)的OTSU 算法進(jìn)行時(shí)間性能上的測試,兩種方法的對(duì)比結(jié)果如圖5 所示。由圖5 可知,改進(jìn)的OTSU 算法擁有更短的運(yùn)行時(shí)間,其處理圖像的平均速度為0.23 s/副,而傳統(tǒng)OTSU 算法的平均速度為0.32 s/副。從二值化效果和運(yùn)行時(shí)間性能上綜合對(duì)比結(jié)果來說,改進(jìn)的OTSU算法更具優(yōu)勢。
圖5 處理時(shí)間對(duì)比結(jié)果圖Fig.5 Comparison of processing time results
(2)加密字符區(qū)域定位
通過改進(jìn)的OTSU 算法處理圖像后,接著對(duì)加密字符區(qū)域進(jìn)行形態(tài)學(xué)處理,先膨脹2 次,再腐蝕2次,之后根據(jù)形態(tài)特征找出加密圖案區(qū)域的最小外接矩形,部分磁性纖維加密紙張圖像定位到加密圖案如圖6所示。
圖6 加密圖案區(qū)域定位圖Fig.6 Location map of encrypted pattern area
在紙張中采用磁性纖維進(jìn)行加密,形成的加密圖案長度和字符個(gè)數(shù)以及字符之間的間距是不固定的,而由于磁場的相互作用,加密圖像可能存在字符粘連問題。傳統(tǒng)的字符識(shí)別方法需要將字符序列分割成單個(gè)字符,處理流程較為復(fù)雜且識(shí)別效果不佳。為了促使構(gòu)建的磁性纖維加密圖案識(shí)別模型更具備普適性,考慮采用CRNN 深度神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)組合的混合網(wǎng)絡(luò)識(shí)別紙張加密字符圖像。CRNN 網(wǎng)絡(luò)最早應(yīng)用于自然場景中的文本識(shí)別,是一種端到端的字符識(shí)別算法[13],不需要將圖片中的字符序列切割成單個(gè)字符,能夠避免傳統(tǒng)字符識(shí)別算法在分割字符序列過程中產(chǎn)生的誤差。
CRNN 網(wǎng)絡(luò)由卷積層、循環(huán)層和轉(zhuǎn)錄層構(gòu)成[14],CNN 和RNN(Recurrent Neural Network)的組合模型對(duì)輸入圖像的長度沒有固定的要求,僅規(guī)定高度為32 的倍數(shù),相比CNN 卷積神經(jīng)網(wǎng)絡(luò)模型能夠提取更多的字符序列信息,用于解決圖像中不定長文本識(shí)別問題。CRNN網(wǎng)絡(luò)識(shí)別方法首先將圖像輸入CNN層提取特征圖[15],其次將提取的特征圖輸入RNN 循環(huán)層對(duì)特征向量的每一部分進(jìn)行預(yù)測獲得預(yù)測序列,最后經(jīng)過CTC(Connectionist Temporal Classification)轉(zhuǎn)錄層將序列轉(zhuǎn)化為預(yù)測字符標(biāo)簽序列。CRNN 網(wǎng)絡(luò)結(jié)構(gòu)圖如圖7所示。
圖7 CRNN算法結(jié)構(gòu)圖Fig.7 CRNN algorithm structure diagram
(1)卷積神經(jīng)網(wǎng)絡(luò)部分
CRNN 網(wǎng)絡(luò)結(jié)構(gòu)中的CNN 卷積層采用VGG16 網(wǎng)絡(luò)結(jié)構(gòu),由于磁性纖維加密字符圖像具有長度較長而寬度較小的特點(diǎn),因此為了獲取到足夠多的橫向字符信息,將VGG16 網(wǎng)絡(luò)中第3 和第4 個(gè)池化層的核大小由2×2 改為1×2。輸入的磁性纖維加密圖像經(jīng)過一系列卷積、池化和全連接層獲得特征序列,利用卷積和池化層提取加密圖像的特征圖,由于卷積和池化是在局部范圍內(nèi)進(jìn)行操作,因此每列特征圖與原始圖像的矩陣區(qū)域相對(duì)應(yīng)。卷積神經(jīng)網(wǎng)絡(luò)的激活函數(shù)作用是對(duì)輸入特征進(jìn)行非線性映射,選擇Relu(Rectified Linear Unit)函數(shù)作為CNN的激活函數(shù)[16]。
(2)循環(huán)神經(jīng)網(wǎng)絡(luò)部分
將CNN 得到的特征圖轉(zhuǎn)換為特征序列輸入RNN層,RNN 網(wǎng)絡(luò)采用兩層雙向長短時(shí)記憶網(wǎng)絡(luò)(Long Short-term Memory,LSTM)架構(gòu)。LSTM 是RNN 的一種改進(jìn)算法,由輸入層、輸出層、輸入門、遺忘門、輸出門組成,其能夠充分挖掘字符序列的前向信息和后向信息以得到更為準(zhǔn)確的預(yù)測結(jié)果[17-18]。LSTM通過設(shè)置的遺忘單元的權(quán)值選擇學(xué)習(xí)或者丟棄的內(nèi)容,從而實(shí)現(xiàn)遺忘或者記憶的功能。令xt為t時(shí)刻的輸入特征向量,σ為激活函數(shù),特征序列ht-1,則ft遺忘門表示見式(6)。
式中,Wf為遺忘權(quán)重矩陣;bf為遺忘門偏置;同理,輸入門it、候選門、輸出門οt的工作表達(dá)式分別如式(7)~式(9)所示。
式中,Wi表示輸入門權(quán)重矩陣,bi表示輸入門偏置;Wc為細(xì)胞權(quán)重矩陣,bc為隱層偏置;Wo為輸出權(quán)重矩陣,bo為輸出門偏置。線性組合后的特征記憶Ct由遺忘門過濾后的部分記憶ft·Ct-1和新增加的特征信息組合而成,具體表達(dá)式如式(10)所示。
則輸出門傳遞給下一時(shí)刻的特征序列表達(dá)式如式(11)所示。
最后輸出的序列為所有時(shí)刻特征序列的組合。
(3)轉(zhuǎn)錄層
經(jīng)過卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)提取序列特征進(jìn)行字符識(shí)別后,將循環(huán)神經(jīng)網(wǎng)絡(luò)層的輸出接入轉(zhuǎn)錄層進(jìn)行翻譯。CTC層的功能為將循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測轉(zhuǎn)換為最終的字符序列,忽略字符在圖像中的位置信息,與Softmax 分類器相比引入了空白占位符,解決了不定長文本對(duì)齊的解碼問題。如通過映射函數(shù)將“-S-U-SST”映射為“SUST”完成對(duì)齊。
磁性纖維加密圖案為數(shù)字和字符的組合,定義L={A,B,C,...,X,Y,Z,0,1,2,...,8,9}為26 個(gè)大寫英文字符和10 個(gè)數(shù)字字符的集合。針對(duì)循環(huán)神經(jīng)網(wǎng)絡(luò)輸出的序列,序列的某些位置可能沒有字符,對(duì)沒有字符的位置插入空白,定義插入空白的字符集合為L'。定義變換如式(12)所示,T為循環(huán)神經(jīng)網(wǎng)絡(luò)輸出的序列長度。
在循環(huán)神經(jīng)網(wǎng)絡(luò)輸出序列x=x1,x2,…,xT給定的情況下,CTC層輸出為l的概率如式(13)所示。
其中,π ∈β-1(l)為所有經(jīng)過β變換后的路徑π,則CTC的損失函數(shù)如式(14)所示。
式中,S為訓(xùn)練集,p(l|x)為當(dāng)給定輸入序列x,則輸出序列為l的概率。損失函數(shù)可理解為:給定輸入字符樣本后輸出正確字符標(biāo)簽概率乘積的負(fù)對(duì)數(shù)。在損失函數(shù)中加入負(fù)號(hào),通過最小化損失函數(shù),而使輸出正確標(biāo)簽的概率最大化[19]。
3.2.1數(shù)據(jù)集
數(shù)據(jù)集是使用磁性纖維加密采集裝置拍攝的600張圖像,其中包括純數(shù)字加密圖像200張、純字母加密圖像200 張、字母和數(shù)字混合的加密圖像200 張。在數(shù)據(jù)集中將3 種類別的圖像各隨機(jī)抽取150 張作為訓(xùn)練集,共計(jì)450 張圖片。測試集為拍攝的600 張圖像中不包含訓(xùn)練集的圖片集合。訓(xùn)練集和測試集的比例為3∶1。
3.2.2實(shí)驗(yàn)環(huán)境
系統(tǒng)的硬件處理器是Intelxeon Silver 4110,其主頻2.60 GHz,內(nèi)存為32 G,顯卡為NVIDIA Quadro P4000,操作系統(tǒng)為Ubantu Linux 16.04。采用python 3.6編程語言以及深度學(xué)習(xí)開發(fā)框架TensorFlow-gpu環(huán)境進(jìn)行程序的編寫。
3.2.3實(shí)驗(yàn)細(xì)節(jié)
預(yù)處理環(huán)節(jié)的最后一步是定位磁粉作用的磁性纖維加密圖像,定位后的尺寸存在大小不一的情況,需要對(duì)定位的圖像進(jìn)行歸一化處理,而CRNN 網(wǎng)絡(luò)的輸入圖像規(guī)定了圖像高度為32的倍數(shù),長度不作要求,因此將定位后的磁性纖維加密圖像統(tǒng)一歸一化為128×32,送入CNN網(wǎng)絡(luò)進(jìn)行特征提取。
CRNN 網(wǎng)絡(luò)使用隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)對(duì)模型進(jìn)行優(yōu)化,動(dòng)量參數(shù)設(shè)置為0.9,初始學(xué)習(xí)率設(shè)置為0.001。CRNN 具體網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示。表1 中,k為卷積核大小;s為卷積或池化的步長;p為填充圈數(shù)。
表1 CRNN的網(wǎng)絡(luò)結(jié)構(gòu)Table 1 Network structure of CRNN
3.2.4實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)將包含訓(xùn)練集和測試集的600 張磁性纖維加密圖像首先采用改進(jìn)的預(yù)處理方法進(jìn)行圖像分割以得到加密字符區(qū)域,然后采用CRNN 模型識(shí)別加密字符。在加密字符檢測環(huán)節(jié),成功提取595張,成功提取率為99.17%。
加密字符識(shí)別環(huán)節(jié)訓(xùn)練和測試的準(zhǔn)確率以及損失值的變化如圖8 所示。準(zhǔn)確率在迭代100 次后逐步收斂,最終訓(xùn)練集準(zhǔn)確率達(dá)到98.61%,測試集準(zhǔn)確率達(dá)到98.37%。訓(xùn)練集和測試集的損失值最終穩(wěn)定在0.2左右。
圖8 準(zhǔn)確率及損失值變化曲線Fig.8 Accuracy and loss value change curve
本課題的CRNN 模型中循環(huán)神經(jīng)網(wǎng)絡(luò)層采用雙向LSTM 結(jié)構(gòu),該結(jié)構(gòu)能夠更好地提取磁性纖維加密圖像的序列信息。為了說明CRNN 模型的優(yōu)勢,在循環(huán)神經(jīng)網(wǎng)絡(luò)層分別采用單層和雙層的RNN、GRU(Gated Recurrent Unit)、LSTM 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行對(duì)比實(shí)驗(yàn),對(duì)比結(jié)果如表2所示。
表2 不同網(wǎng)絡(luò)變體的預(yù)測準(zhǔn)確率Table 2 Forecast accuracy of different network variants
基于雙向雙層LSTM 的CRNN 模型識(shí)別加密字符的準(zhǔn)確率達(dá)到98.37%,優(yōu)于其他循環(huán)神經(jīng)網(wǎng)絡(luò)層的變體結(jié)構(gòu)。RNN、GRU、LSTM 雙向雙層網(wǎng)絡(luò)結(jié)構(gòu)的預(yù)測結(jié)果均優(yōu)于單向單層的網(wǎng)絡(luò)結(jié)構(gòu),其原因在于雙向雙層網(wǎng)絡(luò)結(jié)構(gòu)能夠獲取到更多的特征信息,而缺點(diǎn)是比單向單層結(jié)構(gòu)更復(fù)雜,運(yùn)行時(shí)間更長。
通過搭建基于磁性纖維加密紙張的圖像采集、預(yù)處理以及識(shí)別模型,解決了磁性纖維加密字符的提取和識(shí)別問題。首先通過磁性纖維加密圖像采集裝置獲取加密紙張的原始圖像;其次通過組合高斯濾波、Sobel 邊緣檢測、改進(jìn)的最大類間方差(OTSU)等算法實(shí)現(xiàn)加密字符的檢測;最后應(yīng)用卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(CRNN)網(wǎng)絡(luò)建立加密字符識(shí)別模型,最終模型識(shí)別加密字符的準(zhǔn)確率達(dá)到98.37%。本課題將機(jī)器視覺算法與CRNN 模型相結(jié)合開發(fā)紙張加密字符識(shí)別模型,探索出解決磁性纖維加密紙張圖像采集、分割與識(shí)別的一個(gè)可行路徑,模型具有較高的識(shí)別率和魯棒性,實(shí)驗(yàn)結(jié)果表明提出的方法具有很大的實(shí)際應(yīng)用潛力。