潘帥成 韓磊 陶毅 劉清雨 鄭勝男
摘? 要: 為了提高水表字輪字符圖像識別的準(zhǔn)確率,提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的字符識別方法。傳統(tǒng)識別方法需要構(gòu)建大量模板,工作量大且容易受到外界的光線和雜物的干擾,識別準(zhǔn)確率較低。基于深度卷積神經(jīng)網(wǎng)絡(luò)的字符識別方法,改進(jìn)了經(jīng)典的CNN網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)造一個同時能識別字符和表盤的卷積神經(jīng)網(wǎng)絡(luò)模型。在自建的訓(xùn)練集和測試集上訓(xùn)練測試,結(jié)果表明,該方法有效地提高了水表字輪圖像識別率。
關(guān)鍵詞: 卷積神經(jīng)網(wǎng)絡(luò); 智能識表; 圖像識別; 字符識別; 半字識別
中圖分類號:TP389.1? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? 文章編號:1006-8228(2020)02-25-04
Research on character recognition technology for watermeter based on deep
convolution neural network
Pan Shuaicheng, Han Lei, Tao Yi, Liu Yuqing, Zheng Shengnan
(Nanjing Institute of Technology, Nanjing, Jiangsu 211167, China)
Abstract: In order to improve the accuracy of watermeter character recognition, this paper proposes a character recognition method based on deep convolutional neural network. Traditional identification methods need to build a large number of templates, which requires a lot of work, and are easy to be interfered by external light and sundries, so the identification accuracy is low. The character recognition method based on deep convolutional neural network improves the classical CNN network structure and constructs a convolutional neural network model that can recognize both the character and the character wheel. Training and testing on self built data sets, the results show that the method can effectively improve the character recognition rate of watermeter character wheel image.
Key words: convolutional neural network; intelligent watermeter recognition; image recognition; character recognition; half-word recognition
0 引言
智能識表投資和運(yùn)維費(fèi)用低、速度快、效率高,其應(yīng)用前景廣泛。攝像抄表主要包括字符定位、字符的分割、字符識別,其中水表字輪字符圖像識別是智能識表的難點(diǎn)?;趨^(qū)域聚合的方法[2]運(yùn)行速度較快,但是容易受到圖像分辨率低和噪聲的影響;目標(biāo)識別法通過改進(jìn)的特征匹配算法匹配特征向量,提升了準(zhǔn)確率但識別速度有所下降;以歐拉數(shù)為基礎(chǔ)的模板匹配將模板圖像分組,把目標(biāo)圖像與具有相同歐拉數(shù)的模板去匹配,但對半字識別問題解決的不好。同時上述方法易受環(huán)境因素影響,魯棒性不強(qiáng)。
本文提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的智能識表方法,結(jié)合經(jīng)典的網(wǎng)絡(luò)結(jié)構(gòu)的特點(diǎn),構(gòu)建了新型的適用于水表圖像識別的卷積神經(jīng)網(wǎng)絡(luò)M_CNN(Modified_CNN),它既能識別水表的字輪圖形,又能識別數(shù)字圖像。且不易受環(huán)境因素等影響。
1 經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)
基于CNN的經(jīng)典神經(jīng)網(wǎng)絡(luò)有LeNet5、AlexNet、GoogLeNet等。LeNet5作為誕生較早的CNN,采用了ReLU激活函數(shù),加入了Dropout層,并且擴(kuò)充了訓(xùn)練的數(shù)據(jù)量。但是AlexNet只有八層,前五層為卷積層,后三層為全連接層,網(wǎng)絡(luò)深度不夠,且丟棄池化層易發(fā)生過擬合的問題。
GoogLeNet給CNN注入模塊化思想,使用1×1的卷積來進(jìn)行升降維,其稀疏連接結(jié)構(gòu)提高了網(wǎng)絡(luò)對各種復(fù)雜圖像的適應(yīng)性,但應(yīng)用于字符識別計算時間偏長。
本文提出的M_CNN前四層可以看作一個模塊,后續(xù)保持模塊的結(jié)構(gòu)不變,只改變部分的卷積核等參數(shù)。M_CNN是針對水表字符專門構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò),對經(jīng)典CNN的特點(diǎn)和思想加以借鑒,更加契合攝像抄表的使用場景。
2 改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)
2.1 改進(jìn)基礎(chǔ)
M_CNN是在CNN_ON_MNIST[1,6]和NN_ON_ CIFAR[3]的基礎(chǔ)上加以改進(jìn),構(gòu)建出既可以識別數(shù)字又能識別小輪盤的模型。CNN_ON_CIFAR可以有效識別CIFAR-105數(shù)據(jù)集中的圖像,CIFAR-10數(shù)據(jù)集針對自然中10類常見物品建立的數(shù)據(jù)集。此網(wǎng)絡(luò)可以用于識別水表的字輪圖像。CNN_ON_MNIST可以有效識別手寫數(shù)字,此網(wǎng)絡(luò)可以有效識別水表的字符圖像。
將兩者模型相結(jié)合,構(gòu)建了新的神經(jīng)網(wǎng)絡(luò)M_CNN,同時可以識別水表的字輪圖像和字符圖像,利用自建的水表訓(xùn)練集和測試集,進(jìn)行訓(xùn)練、測證,泛化能力更佳。
2.2 網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)輸入:30x60單通道灰度圖像,輸出:0-9分類標(biāo)簽。
如圖1所示,M_CNN借鑒了模塊化的設(shè)計思想,將兩個卷積層,一個最大池化層一個dropout作為一個模塊,網(wǎng)絡(luò)中一共使用了三個這樣的模塊,第一個模塊卷積核個數(shù)是32個,第二個模塊有64個卷積核,第三個模塊有128個卷積核,模塊中的卷積核大小是3x3,池化核是2x2,drouput比例是0.25,最后經(jīng)過一次展平全連接,再次正則化操作抑制上一層的神經(jīng)元激活,防止過擬合,最后的全連接層會輸出一個 128維的向量,softmax 層將這一向量作為輸入,然后計算測試圖片分別屬于這10個類的概率分布,softmax使用交叉熵?fù)p失函數(shù)(cross-entro-py)來計算每一次預(yù)測的loss值大?。ü揭娛?),常用的loss值計算的函數(shù)還有hinge loss[4],但是hinge loss計算的值是無標(biāo)定的,很難對所有類進(jìn)行判定。而cross-en-tropy所得的值可以對所有類都進(jìn)行判定,會給出對每一個類的預(yù)測概率,最終輸出預(yù)測結(jié)果。
[loss=-i=1nyi1logyi1+yi2logyi2+...+yimlogyim]? ?⑴
3 實(shí)驗(yàn)過程
此實(shí)驗(yàn)平臺是英特爾I7-8700處理器,16G內(nèi)存,GTX1080顯卡,顯存4G的戴爾工作站,我們使用以Tensorflow為后端的Keras平臺搭建出了M_CNN,并在數(shù)據(jù)集上訓(xùn)練驗(yàn)證。
3.1 構(gòu)建數(shù)據(jù)集
字符采集通過樹莓派配合微距攝像頭完成,字符樣本如圖2所示。采用USB高清微距攝像頭,像素800萬,最大分辨率640x480,字輪樣本如圖3所示。圖像分割采用OpenCV進(jìn)行處理,將5個轉(zhuǎn)輪碼盤和四個小數(shù)表盤裁剪開。
將采集的數(shù)字和指針樣本分為0到9共十類。訓(xùn)練集和測試集按照4:1的劃分,且相互獨(dú)立無交集。訓(xùn)練時在訓(xùn)練集上加入重縮放因子,彌補(bǔ)人工采集樣本不足的問題,加入隨機(jī)旋轉(zhuǎn)度,保證后期攝像頭隨機(jī)旋轉(zhuǎn)面對表盤依然有較高準(zhǔn)確率。
針對數(shù)字字符的半字問題,如圖3所示,則讀為上半部分的示數(shù)為0,即按照字輪的滾動方向讀為最近完整顯示過的數(shù)字,具體讀數(shù)則結(jié)合指針表盤的讀數(shù)讀出。針對輪盤半字問題,依據(jù)經(jīng)驗(yàn)讀表方法,提前將它歸類為上一次指過的數(shù)字一類,再根據(jù)后面的X0.1,X0.01和X0.001的表盤讀出更加精確的示數(shù)。對每一個表盤都依此處理。最后一個表盤因?yàn)槭亲钚〉膯挝皇緮?shù),所以幾乎都是指針指向整數(shù)。
3.2 訓(xùn)練參數(shù)設(shè)置
M_CNN模型參數(shù)包括激活函數(shù)、池化方法、池化核大小、丟棄比例、分類器、損失函數(shù)、優(yōu)化器等參數(shù)。重縮放因子,隨機(jī)旋轉(zhuǎn)角度是樣本參數(shù),保證樣本多樣性。具體參數(shù)見表2。
3.3 神經(jīng)網(wǎng)絡(luò)中間輸出的可視化
圖片經(jīng)過網(wǎng)絡(luò)的不同層,生成對應(yīng)的特征圖,如圖4,圖5,從半字識別中特征提取的過程可以看出,在卷積層中已經(jīng)提取出了有效特征信息,在池化層中進(jìn)一步提取了有效特征。
在一開始的卷積過程中,幾乎保留了原始圖像的所有特征信息,隨著層數(shù)加深,激活越來越抽象關(guān)于圖像視覺的內(nèi)容信息變少,關(guān)于類別的信息變多,激活的稀疏度隨著層數(shù)的加深而增大,越來越多的卷積核是空白的,實(shí)際這是神經(jīng)網(wǎng)絡(luò)的普遍特征隨著層數(shù)的增加,層所提取的特征越來越抽象。
3.4 訓(xùn)練過程
準(zhǔn)確率曲線逐步逼近1.0說明擬合較好,損失值總體上穩(wěn)步下降并趨于平穩(wěn),證明了識別的有效性。
3.5 實(shí)驗(yàn)結(jié)果
基于自建的數(shù)據(jù)集和訓(xùn)練集,分別使用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)和M_CNN訓(xùn)練測試,結(jié)果見表3、表4。使用CNN_ON_MNIST訓(xùn)練的損失變化和準(zhǔn)確率變化如圖7所示,在測試集中損失值變大了,說明網(wǎng)絡(luò)基本沒有擬合,不能有效識別。使用CNN_ON_CIFAR時變化如圖8所示,在測試集上的損失浮動較大,說明訓(xùn)練得到的網(wǎng)絡(luò)不能較好擬合。綜合看損失值、準(zhǔn)確率,M_CNN都有更佳的表現(xiàn)。
4 結(jié)束語
本文在經(jīng)典的CNN_ ON_ MNIST和CNN_ON_
CIFAR基礎(chǔ)上提出了可以識別水表的MC_CNN,主要是基于樹莓派平臺,通過外部硬件和軟件來讀取識別,不需要對水表內(nèi)部進(jìn)行改造,相比傳統(tǒng)的磁感應(yīng)式讀取可以有效避免磁力消失的問題,相比模式匹配又能減少圖像預(yù)處理的復(fù)雜操作,以及手動選擇參數(shù)誤差較大的問題,提高了可用性,如發(fā)展成熟還可以進(jìn)一步推廣到電表,供熱表的識別上。
參考文獻(xiàn)(References):
[1] 靳濤,張永愛.TensorFlow平臺下基于深度學(xué)習(xí)[J].信息技術(shù)與網(wǎng)絡(luò)安全,2018.37(4):74-78
[2] 郁松,彭志文.基于卷積神經(jīng)網(wǎng)絡(luò)的自然背景字符識別[J].計算機(jī)應(yīng)用與軟件,2017.34(12):228-234
[3] 段萌,王功鵬,牛常勇.基于卷積神經(jīng)網(wǎng)絡(luò)的小樣本圖像識別方法[J].計算機(jī)工程與設(shè)計,2018.39(1):224-229
[4] 徐江河,張飛舟,張立福,鄧楚博,孫雪劍.一種綜合利用圖像和光譜信息的物體真假模式識別方法[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2019.44(8):1174-1181
[5] 龐絲絲,黃呈鋮.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類研究[J].現(xiàn)代計算機(jī),2019.23:40-44
[6] 郭夢潔,楊夢卓,馬京九.基于Keras的MNIST數(shù)據(jù)集識別模型[J].現(xiàn)代信息科技,2019.3(14):18-19,23