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