焦 亮,張?zhí)t
(新疆農(nóng)業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,新疆 烏魯木齊 830001)
身份證作為一種信息儲(chǔ)存媒介在各個(gè)領(lǐng)域利用率越來越高,身份證版面信息作為最基本最直觀的信息被應(yīng)用于很多領(lǐng)域,是社會(huì)生活中非常重要的身份識別證件,實(shí)名認(rèn)證領(lǐng)域需要身份證進(jìn)行信息認(rèn)證,例如:入學(xué)、就業(yè)、戶口登記、酒店住宿、各類業(yè)務(wù)辦理等等。
在一些身份證信息登記領(lǐng)域,通常是人工登記并錄入系統(tǒng),過程相對繁瑣并且耗費(fèi)人力。近年來深度學(xué)習(xí)技術(shù)在圖像分類、目標(biāo)檢測領(lǐng)域得到了很大的推廣與應(yīng)用,由于深度學(xué)習(xí)在分類任務(wù)中的準(zhǔn)確率以及檢測任務(wù)中的精確度相比傳統(tǒng)方法都有顯著提高,而且有更好的泛化能力以及對不同環(huán)境的適應(yīng)性,因此,該文重點(diǎn)介紹了基于深度學(xué)習(xí)框架對身份證的鑒別以及身份證信息的檢測,并闡述了自己的研究成果。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的核心思想是利用卷積核掃描圖像,得到相應(yīng)的圖像特征,卷積核可以被理解為過濾器或者特征掃描器,通常稱之為感受野。卷積神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)包括圖像輸入層(input layer)、卷積計(jì)算層(convolutional layer)、ReLU激勵(lì)層(rectified linear units layer)、池化層(pooling layer)、全連接層(fully-connected layer)和輸出層(output layer)。
·卷積運(yùn)算:將前一層的特征圖與一個(gè)卷積核進(jìn)行卷積運(yùn)算,卷積運(yùn)算結(jié)果經(jīng)過激勵(lì)函數(shù)輸出形成這一層神經(jīng)元,從而構(gòu)成這一層特征圖。
·激勵(lì)函數(shù):通常采用的激勵(lì)函數(shù)為Sigmod函數(shù)和ReLU函數(shù),是將卷積層輸出結(jié)果進(jìn)行非線性映射。該文采用ReLU函數(shù)作為網(wǎng)絡(luò)的激勵(lì)函數(shù),采用ReLU函數(shù)相比Sigmod計(jì)算速度快,一部分神經(jīng)元會(huì)因?yàn)镽eLU輸出為0,網(wǎng)絡(luò)變得稀疏使得減少了參數(shù)之間的相互依賴關(guān)系,一定程度上緩解了過擬合狀況。
·池化運(yùn)算:將輸入數(shù)據(jù)分割成不重疊區(qū)域,通過池化運(yùn)算來降低網(wǎng)絡(luò)的空間分辨率,池化方法包括最大值池化,選擇區(qū)域內(nèi)最大值。均值池化,計(jì)算區(qū)域內(nèi)平均值,池化操作可以起到降維作用,減小卷積核尺寸同時(shí)保留相應(yīng)特征。
·全連接運(yùn)算:經(jīng)過多次卷積池化運(yùn)算后的輸入數(shù)據(jù)為多組數(shù)據(jù),全連接層運(yùn)算后將多組數(shù)據(jù)合并成一組數(shù)據(jù)。
·輸出:輸出分類結(jié)果,利用Softmax做分類器。
對身份證信息檢測之前首先需要對輸入圖像進(jìn)行判別,如果判定為身份證圖像再進(jìn)行下一步版面文本信息的檢測工作,若不是身份證則不需要進(jìn)行下一步操作。身份證照片鑒別網(wǎng)絡(luò)是基于Resnet的二分類任務(wù),一類是身份證照片,一類是非身份證照片。
Resnet網(wǎng)絡(luò)共有五種深度的網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)網(wǎng)絡(luò)層數(shù)不同分別分為Resnet-18,Resnet-34,Resnet-50,Resnet-101,Resnet-152。5種網(wǎng)絡(luò)結(jié)構(gòu),主要將Resnet網(wǎng)絡(luò)應(yīng)用于身份證照片的鑒別的基礎(chǔ)網(wǎng)絡(luò),這里給出其中三種網(wǎng)絡(luò)結(jié)構(gòu),如表1所示。將Resnet-50,Resnet-101,Resnet-152作為基礎(chǔ)網(wǎng)絡(luò),并在三種網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上在同一數(shù)據(jù)集上進(jìn)行訓(xùn)練,得到三種不同的模型,將三種模型在同一測試集下測試得到三組不同的測試結(jié)果,將三種測試結(jié)果進(jìn)行對比。
表1 Resnet網(wǎng)絡(luò)層數(shù)
隨著科技的進(jìn)步,文本檢測方法也在不斷發(fā)展,由傳統(tǒng)方法發(fā)展到深度學(xué)習(xí)的方法,由簡單場景下的文本信息檢測到復(fù)雜文本信息檢測。簡單場景文本檢測復(fù)雜程度不高,通常情況下簡單場景的文本信息清晰,照片規(guī)整,幾乎不存在光照等噪聲的影響。復(fù)雜場景主要指文本信息背景復(fù)雜,圖像噪聲相對較多。復(fù)雜場景的文本信息檢測影響因素相對較多,由于身份證照片來自于不同環(huán)境、不同相機(jī)、不同拍照的人,照片會(huì)受到不同噪聲的影響,將身份證信息檢測列入復(fù)雜場景下的文本信息檢測。該文主要基于深度學(xué)習(xí)框架卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)建立檢測模型從而檢測身份證文本信息。
利用計(jì)算機(jī)視覺中的圖像形態(tài)學(xué)操作,包括腐蝕、膨脹、基本操作,即可實(shí)現(xiàn)簡單場景下的文本檢測?!芭蛎洝笔菍D像的高亮部分進(jìn)行擴(kuò)張,讓白色區(qū)域增加,“腐蝕”就是圖像中高亮部分被蠶食讓黑色區(qū)域增加。通過設(shè)置一定的閾值,經(jīng)過膨脹、腐蝕一系列操作可將文字區(qū)域輪廓突出,并消除一些邊框線條,再通過輪廓方法計(jì)算出文字區(qū)域位置。郭桂芳等人[1]利用形態(tài)學(xué)原理對多方向文本檢測進(jìn)行研究,賓西川等人[2]對形態(tài)學(xué)膨脹運(yùn)算文本水印進(jìn)行研究,李朝暉等人[3]利用形態(tài)學(xué)原理對視頻文本檢測進(jìn)行了研究。
最大穩(wěn)定極值區(qū)域(maximally stable extremal regions,MSER)算法是2002提出的,主要是基于分水嶺的思想來做圖像中斑點(diǎn)的檢測。MSER對一幅已經(jīng)處理成灰度的圖像進(jìn)行二值化處理,這個(gè)處理的閾值從0到255遞增,這個(gè)閾值的遞增類似于在一片土地上做水平面的上升,隨著水平面上升,高高低低凹凸不平的土地區(qū)域就會(huì)不斷被淹沒,這就是分水嶺算法,而這個(gè)高低不同,就是圖像中灰度值的不同。而在一幅含有文字的圖像上,有些區(qū)域(比如文字)由于顏色(灰度值)是一致的,因此在水平面(閾值)持續(xù)增長的一段時(shí)間內(nèi)都不會(huì)被覆蓋,直到閾值漲到文字本身的灰度值時(shí)才會(huì)被淹沒,這些區(qū)域就叫做最大穩(wěn)定極值區(qū)域。張開玉等人[4]利用MSER對自然場景傾斜文本定位算法進(jìn)行了研究,邢延超等人[5]基于MSER和NMS研究了如何檢測變形文檔字符,錢江等人[6]利用最穩(wěn)定極值區(qū)域與邊緣增強(qiáng)方法對船名的定位進(jìn)行了研究。
復(fù)雜場景下的文本信息檢測主要基于深度學(xué)習(xí)方法,越來越多的人將深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的方法應(yīng)用于文本信息檢測。曠世科技在2017年提出來的EAST[7](efficient and accurate scene text detector)模型就是非常經(jīng)典的文本信息檢測模型。孟健等人[8]利用改進(jìn)EAST算法實(shí)現(xiàn)了對電廠電氣設(shè)備銘牌文字的檢測。Shi Baoguang等人在2017年發(fā)表于CVPR上的一篇論文提出SegLink[9](linking segments)文本信息檢測模型,針對復(fù)雜背景下文本信息進(jìn)行檢測。
該文主要利用CTPN[10](detecting text in natural image with connectionist text proposal network)復(fù)雜場景下文本檢測對身份證信息進(jìn)行檢測,并通過大量身份證數(shù)據(jù)集針對性地訓(xùn)練自己的模型,從而更好地進(jìn)行身份證信息檢測。CTPN是由Faster RCNN[11](towards real-time object detection with region proposal networks)改進(jìn)而來,加入了適應(yīng)于文本序列信息檢測的LSTM[12](long short term)。鄧丹[13]利用PixelLink進(jìn)行了實(shí)例分割的自然場景文本檢測算法研究,PixelLink主要是做某個(gè)像素(pixel)的文本/非文本的分類預(yù)測,以及該像素的8個(gè)鄰域方向是否存在連接(link)的分類預(yù)測。
CTPN是基于連接預(yù)選框的文本信息檢測,CTPN模型利用RNN[14](recurrent neural networks,循環(huán)神經(jīng)網(wǎng)絡(luò))和CNN(convolutional neural network,卷積神經(jīng)網(wǎng)絡(luò))。
CTPN模型中通過利用VGG-16卷積輸出的特征圖(feature map)生成一系列預(yù)選框(proposal)進(jìn)行檢測。VGGNet[15]有A-E七種結(jié)構(gòu),VGG-16是VGGNet七種結(jié)構(gòu)中的一種,從A-E隨著網(wǎng)絡(luò)層數(shù)增加網(wǎng)絡(luò)逐步變深,參數(shù)量卻沒有增加很多,其中D種網(wǎng)絡(luò)模型所描述的網(wǎng)絡(luò)結(jié)構(gòu)就是VGG-16。VGGNet擁有5段卷積,每一段卷積包含2-3個(gè)卷積層,同時(shí)每段結(jié)尾都會(huì)連接一個(gè)最大池化層(max pooling),作用是對特征圖進(jìn)行下采樣。
RNN是一類用于處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)。身份證信息檢測過程中利用CNN對文本檢測提取空間信息,利用RNN提取圖像中文本的序列特征,在本次實(shí)驗(yàn)中利用LSTM模型。LSTM,長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)是一種RNN特殊類型,在身份證照片信息檢測網(wǎng)絡(luò)模型中使用雙向LSTM(bi-directional LSTM)就是將兩個(gè)方向相反的LSTM連接起來。LSTM是由Hochreiter和Schmidhuber(1997)提出,在隨后的工作中被廣泛應(yīng)用。雙向LSTM是通過正向和反向兩個(gè)方向輸入輸出更準(zhǔn)確地判斷序列信息。
雙向LSTM可以看成是兩層神經(jīng)網(wǎng)絡(luò),第一層從左邊作為系列的起始輸入,在文本處理上可以理解成從文本的開頭開始輸入,而第二層則是從右邊作為系列的起始輸入,在文本處理上可以理解成從文本的最后一個(gè)字作為輸入,反向處理與上一層做同樣的處理操作,最后對得到的兩個(gè)結(jié)果進(jìn)行堆疊處理,模型即實(shí)現(xiàn)考慮上下文信息的能力。
CTPN主要是針對身份證信息的檢測,身份證信息主要是橫向文本信息,采用一組等寬的Anchor,Anchor是固定寬度,默認(rèn)寬度為16,高度采用一組10個(gè)不同的矩形框(11,16,23,33,48,68,97,139,198,283)。在x方向上,Anchor覆蓋文本行每個(gè)點(diǎn)且不重合,為了覆蓋不同高度的文本所以設(shè)置不同高度的Anchor,得到Anchor后Softmax判斷Anchor是否包含文本,而后Bounding box regression修正包含文本的Anchor的中心y坐標(biāo)與高度,經(jīng)過這兩步的處理會(huì)得到圖1(a)所示的一組豎直條狀text proposal。后續(xù)只需要將這些text proposal用文本線構(gòu)造算法連接在一起即可獲得文本位置。
文本線構(gòu)造(side-refinement)過程是就是將定位出來的寬度為16的“小矩形框”加以合并和歸納,得到需要的文本信息的位置信息,就是將圖1(a)小矩形框合并最后生成圖1(b)大矩形框。主要思路就是將兩個(gè)相鄰的候選區(qū)(proposal)組成一個(gè)pair,合并不同的pair直到最終無法合并為止。
圖1 文字定位與文本線構(gòu)造過程
CTPN文本信息檢測過程如下,整體結(jié)構(gòu)如圖2所示。
(1)若輸入3*600(h)*900(w)的圖像,使用VGG16進(jìn)行特征提取得到cov5-3(VGG第5個(gè)Block的第三個(gè)卷積層)的feature map大小為512*38*57。
(2)在得到的feature map上做滑動(dòng)窗口的滑動(dòng)操作,窗口大小(即卷積核大小)3*3即512*38*57變?yōu)?60*38*57。
(3)將每一行所對應(yīng)窗口對應(yīng)特征輸入RNN中,由于每個(gè)LSTM層是128個(gè)隱層,即57*38*4 608變?yōu)?7*38*128,Reverse-LSTM同樣得到57*38*128,合并后最終得到結(jié)果為256*38*57。
(4)將RNN結(jié)果輸入到FC層(全連接層),F(xiàn)C層是一個(gè)256*512的矩陣參數(shù),得到512*38*57的結(jié)果。
(5)FC層,特征輸入到三個(gè)分類或者回歸層中,第一個(gè)2k vertical coordinates和第三個(gè)k side-refinement是用來回歸k個(gè)anchor位置信息,第二個(gè)2k scores表示的是k個(gè)anchor類別信息,判斷是不是字符。使用文本構(gòu)造算法得到細(xì)長的矩形框?qū)⑵浜喜⒊晌谋镜男蛄锌?,主要思想為每兩個(gè)相鄰的候選區(qū)域組成一個(gè)pair,合并不同的pair直到無法合并。
圖2 CTPN文本信息檢測整體結(jié)構(gòu)
實(shí)驗(yàn)環(huán)境在Ubuntu系統(tǒng)上進(jìn)行搭建,實(shí)驗(yàn)環(huán)境配置為GTX 1080 Ti i7-8700k 12核32G 250G SSD+3TB硬盤 網(wǎng)速D100/U20。
目標(biāo)檢測的評價(jià)指標(biāo)應(yīng)用于身份證信息檢測模型的性能評估,包括以下評價(jià)指標(biāo)(TP,TN,F(xiàn)P,F(xiàn)N,Precision,Recall,IOU,AP)。
TP(true positives),TN(true negatives)FP(false positives),F(xiàn)N(false negatives),GroundTruth:有監(jiān)督訓(xùn)練的訓(xùn)練集的分類準(zhǔn)確性。
Precision(精確度),Recall(召回率),IOU(intersection-over-union,檢測框重疊程度),AP(average precision):
候選框(candidate bound)與原標(biāo)記框(ground bound)的交疊率或者重疊率。
不同的檢測任務(wù)有不同的評估標(biāo)準(zhǔn),通過評估標(biāo)準(zhǔn)來判定所訓(xùn)練模型的好壞,也是通過評價(jià)標(biāo)準(zhǔn)中的相對應(yīng)指標(biāo)來衡量模型的性能。目標(biāo)檢測面向判定框和預(yù)測框的重疊程度AP:以評估模型得到的Recall值為橫軸數(shù)據(jù),以評估模型得到的Precision為縱軸數(shù)據(jù),PR曲線下的面積即定義為AP。由上面得到了PR曲線,即得到了n個(gè)(P,R)坐標(biāo)點(diǎn),利用這些坐標(biāo)點(diǎn)便可以計(jì)算出AP(average precision):
方法一:11點(diǎn)插值法,這里參考的是PASCAL VOC CHALLENGE[16]的計(jì)算方法。設(shè)定一組閾值,[0,0.1,0.2,…,1],然后對于recall大于每一個(gè)閾值(比如recall>0.3),都會(huì)得到一個(gè)對應(yīng)的最大precision,這樣就計(jì)算出了11個(gè)precision。AP即為這11個(gè)precision的平均值。
方法二:PASCAL VOC CHALLENGE自2010年后就換了另一種計(jì)算方法。新的計(jì)算方法假設(shè)這N個(gè)樣本中有M個(gè)正例,那么會(huì)得到M個(gè)recall值,對于每個(gè)recall值,可以計(jì)算出對應(yīng)(r>r')的最大precision,然后對這M個(gè)precision值取平均即得到最后的AP值。
本實(shí)驗(yàn)主體為身份證信息檢測,實(shí)驗(yàn)數(shù)據(jù)集包含兩部分,分別訓(xùn)練實(shí)驗(yàn)中兩個(gè)網(wǎng)絡(luò)模型。圖3是所收集到的部分身份證圖片數(shù)據(jù)。
第一部分:身份證照片鑒別網(wǎng)絡(luò),數(shù)據(jù)集包含7 000張圖片作為訓(xùn)練集,包括所收集的3 500張身份證照片,如圖3(a)所示。3 500張其他不含身份證圖片的其他圖片,100張圖片作為測試集,包含50張身份證照片,50張非身份證照片。
相同訓(xùn)練集下在不同的三個(gè)不同層數(shù)的Resnet網(wǎng)絡(luò)下進(jìn)行訓(xùn)練,包含Resnet-50,Resnet-101,Resnet-152,分別得到三個(gè)網(wǎng)絡(luò)的訓(xùn)練模型。將訓(xùn)練得到的三個(gè)不同的訓(xùn)練模型,在同一測試數(shù)據(jù)集下測試其對身份證照片鑒別的準(zhǔn)確性,在此測試數(shù)據(jù)上得到三種模型下的準(zhǔn)確率。
第二部分:身份證信息檢測網(wǎng)絡(luò),數(shù)據(jù)集包含收集的5 000張身份證照片,如圖3(b)所示。數(shù)據(jù)集利用LabelImg進(jìn)行每張身份證的信息標(biāo)簽的標(biāo)注工作,LabelImg是圖形圖像注釋工具,用于數(shù)據(jù)集的標(biāo)簽制作。為了提高模型的泛化能力,將1 000張身份證照片進(jìn)行數(shù)據(jù)增強(qiáng)處理即進(jìn)行不同的光照處理,如圖3(b)所示。部分光照處理后的身份證圖片,通過訓(xùn)練得到文本檢測模型,將100張身份證照片作為測試數(shù)據(jù),通過測試得到身份證照片的文本檢測結(jié)果圖,以及通過訓(xùn)練模型對100張身份證照片進(jìn)行檢測得到的AP值。
(a)未進(jìn)行數(shù)據(jù)增強(qiáng)的身份證照片 (b)數(shù)據(jù)增強(qiáng)的身份證照片
6.3 身份證照片鑒別以及文本信息檢測實(shí)驗(yàn)結(jié)果
通過實(shí)驗(yàn)分別獲得身份證照片鑒別與身份證文本信息檢測實(shí)驗(yàn)結(jié)果。
6.3.1 身份證照片鑒別網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果分析
此次實(shí)驗(yàn)中測試集圖片單獨(dú)分離,訓(xùn)練集與測試集不相交,相互獨(dú)立,在相同的數(shù)據(jù)集下,利用Resnet的三種結(jié)構(gòu)網(wǎng)絡(luò)在基本訓(xùn)練參數(shù)相同的情況下得到了三種分類模型,模型訓(xùn)練過程中的損失值曲線以及準(zhǔn)確率如圖4所示,并且在100張圖片下測試其鑒別效果,得到100張圖片下的準(zhǔn)確率,如表2所示。
圖4 訓(xùn)練過程損失值與準(zhǔn)確率
表2 測試數(shù)據(jù)集下的準(zhǔn)確率
通過損失值曲線圖可以看到,Resnet-101損失降到最低最終達(dá)到收斂趨勢,通過準(zhǔn)確率的曲線圖看到Resnet-101在測試數(shù)據(jù)集上可以達(dá)到92%的準(zhǔn)確率。Resnet-152網(wǎng)絡(luò)層數(shù)較多,身份證照片鑒別網(wǎng)絡(luò)屬于二分類任務(wù),二分類任務(wù)在復(fù)雜網(wǎng)絡(luò)下相對簡單,可能導(dǎo)致訓(xùn)練過程中出現(xiàn)過擬合的情況,故在Resnet-152訓(xùn)練得到的模型下分類效果并不是很好,測試數(shù)據(jù)上準(zhǔn)確率為72%,Resnet-50在身份證鑒別任務(wù)中沒有得到很好的效果,可能是因?yàn)榫W(wǎng)絡(luò)層數(shù)相對較少,訓(xùn)練次數(shù)不足最終在測試數(shù)據(jù)集上準(zhǔn)確率達(dá)到79%。
6.3.2 身份證文本信息檢測網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果分析
在VGG-16作為基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上通過由5 000張身份證照片組成的數(shù)據(jù)集上訓(xùn)練得到CTPN文本信息檢測模型,利用所得到的模型在100張隨機(jī)身份證照片組成的測試數(shù)據(jù)集上進(jìn)行測試。
(a)訓(xùn)練模型損失值
(b)訓(xùn)練總損失值
圖5所示是CTPN模型損失曲線與總損失曲線,通過損失曲線可以看到在訓(xùn)練30 000steps時(shí)曲線開始收斂,在測試數(shù)據(jù)集上進(jìn)行測試得到圖6(a),橫坐標(biāo)為召回率(recall),縱坐標(biāo)為精確度(precision),橫縱軸所組成的曲線圖即為PR圖,PR圖中曲線與橫縱坐標(biāo)軸所圍成的面積即為測試數(shù)據(jù)在文本信息檢測模型下的AP值,AP值所反映的即為文本檢測效果,通過圖6(a)得到文本信息檢測的AP值達(dá)到70.34%。圖6(b)為測試數(shù)據(jù)集上部分身份證照片通過文本信息檢測模型進(jìn)行文本信息檢測的檢測效果圖,文本框所框出的區(qū)域即是身份證照片上的身份證文本信息。
(a)測試數(shù)據(jù)PR圖
(b)文本信息檢測結(jié)果
文本檢測技術(shù)在各個(gè)領(lǐng)域都取得了很大的進(jìn)展,隨著科技不斷進(jìn)步實(shí)名認(rèn)證的要求也會(huì)相應(yīng)提高。
(1)身份證的應(yīng)用場景會(huì)越來越多,隨之而來的是不同場景下的身份證照片的信息檢測,對身份證版面信息影響的噪聲也會(huì)多樣化,為了提高在身份證信息檢測方向模型的適應(yīng)能力,需要進(jìn)一步收集多樣化的身份證數(shù)據(jù)集訓(xùn)練更好的模型。
(2)在以后的研究學(xué)習(xí)中如何借助計(jì)算機(jī)手段自動(dòng)生成所需要的樣本圖片,在一定程度上減少樣本收集的困難,并且可以得到大量樣本用于模型訓(xùn)練。
(3)現(xiàn)有文本檢測方法與深度學(xué)習(xí)其他方向研究類似,需要大量的樣本,需要對大量樣本進(jìn)行標(biāo)注,因?yàn)闃颖静皇峭粯?biāo)準(zhǔn),故對文本信息標(biāo)注是一件較為繁瑣工作,日后的研究中如何在樣本量不足的情況下通過其他方式改善這一狀況,并且可以得到較好的訓(xùn)練模型。
文本檢測一直是該領(lǐng)域一個(gè)比較熱門的話題,該文主要是結(jié)合深度學(xué)習(xí)將神經(jīng)網(wǎng)絡(luò)用于身份證的分類任務(wù)以及身份證文本信息檢測任務(wù)。