王志威, 鄭恭明
(長(zhǎng)江大學(xué)電工電子國(guó)家級(jí)實(shí)驗(yàn)教學(xué)示范中心, 荊州 434023)
隨著現(xiàn)代通信技術(shù)的發(fā)展,遠(yuǎn)程抄表技術(shù)正在被廣泛地應(yīng)用在水表、電表、氣表等計(jì)量表中[1-2]。但在農(nóng)村地區(qū)或城市的老居民樓中,仍然使用的是傳統(tǒng)的機(jī)械數(shù)字表,這需要派遣專門的抄表人員去進(jìn)行人工抄表[3-4]。學(xué)者們利用人工智能的方法針對(duì)傳統(tǒng)的機(jī)械數(shù)字輪式計(jì)量表計(jì)數(shù)的自動(dòng)識(shí)別進(jìn)行研究[5]。文獻(xiàn)[6]采用模板匹配法,將圖片的粗網(wǎng)格特征和穿越次數(shù)特征相結(jié)合作為特征向量,通過(guò)特征向量之間的歐式距離進(jìn)行了字符識(shí)別。文獻(xiàn)[7]針對(duì)字輪式儀表出現(xiàn)的雙半字符數(shù)字情況進(jìn)行了研究,提出利用改進(jìn)的Hausdorff距離模板匹配法進(jìn)行匹配識(shí)別,即通過(guò)比較上下字符的比例確定字符讀數(shù)。文獻(xiàn)[8]采用方向梯度直方圖(histogram of oriented gradient,HOG)特征提取方法來(lái)提取待識(shí)別圖片的特征,利用訓(xùn)練好的支持向量機(jī)(support vector machines,SVM)進(jìn)行字符的識(shí)別。文獻(xiàn)[9]采用改進(jìn)的Lenet-5網(wǎng)絡(luò)模型來(lái)識(shí)別數(shù)字字符,將對(duì)非對(duì)稱卷積前后的組合特征進(jìn)行融合,提高網(wǎng)絡(luò)對(duì)雙半字符的識(shí)別能力。文獻(xiàn)[10]采用改進(jìn)的VGG16網(wǎng)絡(luò)模型進(jìn)行數(shù)字字符的識(shí)別,同時(shí)通過(guò)遷移學(xué)習(xí)的方法對(duì)提高小樣本集的識(shí)別率。
上述文獻(xiàn)的研究取得了一些進(jìn)展,但也還存在模型訓(xùn)練時(shí)間和預(yù)測(cè)時(shí)間較長(zhǎng)、字符識(shí)別率不高、模型參數(shù)過(guò)大、終端部署成本高[11]等情況,因此,現(xiàn)提出一種改進(jìn)殘差網(wǎng)絡(luò)的字輪式數(shù)字表盤識(shí)別算法。首先對(duì)采集的表盤圖像進(jìn)行圖像預(yù)處理操作,將要識(shí)別的數(shù)字區(qū)域從圖像中提取出來(lái),并對(duì)其進(jìn)行字符分割,為后面的數(shù)字識(shí)別做準(zhǔn)備;然后依次將分割后的數(shù)字字符傳入到改進(jìn)的ResNet網(wǎng)絡(luò)中進(jìn)行數(shù)字識(shí)別,最后輸出識(shí)別結(jié)果,實(shí)現(xiàn)對(duì)字輪式數(shù)字表盤的識(shí)別。以期為深度神經(jīng)網(wǎng)絡(luò)模型部署在輕量級(jí)嵌入式設(shè)備上提供理論基礎(chǔ)。
以機(jī)械字輪式水表為例,通過(guò)感興趣區(qū)域(region of interest,ROI)提取、分辨率調(diào)整、字符分割、數(shù)據(jù)增強(qiáng)等操作[12-13],對(duì)采集到的水表圖片進(jìn)行處理,處理結(jié)果如圖1所示。
圖1 預(yù)處理結(jié)果示例圖Fig.1 Sample graph of preprocessing result
ROI操作主要是先對(duì)水表圖片進(jìn)行自適應(yīng)二值化,二值化效果如圖1(a)所示。然后對(duì)圖像中的數(shù)字區(qū)域進(jìn)行提取,得到的結(jié)果如圖1(b)所示。其作用是簡(jiǎn)化深度神經(jīng)網(wǎng)絡(luò)在提取特征時(shí)的復(fù)雜度,同時(shí)提高網(wǎng)絡(luò)的識(shí)別速度和準(zhǔn)確率。
分辨率調(diào)整是為了解決ROI操作時(shí),提取的數(shù)字字符區(qū)域大小不同,從而使得字符分割不均、殘缺等問(wèn)題。字符分割則是利用固定規(guī)則的靜態(tài)邊界法對(duì)水表數(shù)字區(qū)域進(jìn)行分割,其主要依據(jù)水表數(shù)字字符的寬度、字符間的間隔等固定參數(shù)將水表數(shù)字字符單個(gè)分割出來(lái),分割結(jié)果如圖1(c)所示。
數(shù)據(jù)增強(qiáng)主要是通過(guò)對(duì)分割后的字符圖片進(jìn)行隨機(jī)亮度、對(duì)比度調(diào)整,以及大小縮放、翻轉(zhuǎn)、平移等操作,對(duì)訓(xùn)練樣本進(jìn)行擴(kuò)充,提高網(wǎng)絡(luò)模型的泛化能力以及魯棒性,防止在訓(xùn)練中出現(xiàn)過(guò)擬合情況。
ResNet網(wǎng)絡(luò)是由He等[14]提出,在2015年的ImageNet圖像識(shí)別挑戰(zhàn)賽奪冠,深刻影響了后來(lái)的深度神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)。該網(wǎng)絡(luò)主要是解決當(dāng)深度神經(jīng)網(wǎng)絡(luò)的層數(shù)加深時(shí),容易出現(xiàn)梯度彌散或梯度爆炸,從而導(dǎo)致網(wǎng)絡(luò)模型的準(zhǔn)確率降低的問(wèn)題[15-17]。
該網(wǎng)絡(luò)模型主要是通過(guò)多個(gè)殘差模塊組成,殘差模塊如圖2所示。在網(wǎng)絡(luò)訓(xùn)練中,當(dāng)網(wǎng)絡(luò)模型的準(zhǔn)確率收斂時(shí),該模塊可以將后面的神經(jīng)網(wǎng)絡(luò)層變?yōu)楹愕扔成鋵?,從而使得網(wǎng)絡(luò)保持最優(yōu)狀態(tài)[18],避免訓(xùn)練精度隨著網(wǎng)絡(luò)神經(jīng)層數(shù)的增加反而降低的問(wèn)題。
x為模塊輸入特征;F(x)為殘差映射;ReLU為激活函數(shù)類型; H(x)為殘差模塊輸出值圖2 殘差模塊示意圖Fig.2 Sample graph of residual module
從圖2可以看出,殘差模塊的輸出結(jié)果為
H(x)=F(x)+x
(1)
恒等映射就是當(dāng)F(x)=0,使得H(x)=x。同時(shí)由式(1)能推出殘差映射公式為
F(x)=H(x)-x
(2)
從式(2)可以得出,當(dāng)F(x)無(wú)限趨近于0時(shí),即網(wǎng)絡(luò)達(dá)到了最優(yōu)狀態(tài),即使隨著網(wǎng)絡(luò)層數(shù)的加深,網(wǎng)絡(luò)模型的訓(xùn)練精度也不會(huì)下降。
現(xiàn)有的經(jīng)典ResNet網(wǎng)絡(luò)模型類別根據(jù)網(wǎng)絡(luò)層數(shù)不同可分為ResNet-18、ResNet-34、ResNet-50、ResNet-101和ResNet-152[19]。
深度可分離卷積(depthwise separable convolution,DSC)是由逐通道卷積 (depth wise,DW)和逐點(diǎn)卷積(point wise,PW)組成,用來(lái)提取圖像特征,其原理圖如圖3所示。
圖3 深度可分離卷積原理圖Fig.3 Schematic diagram of depthwise separable convolution
首先DW部分是對(duì)輸入圖像進(jìn)行逐通道卷積,即一個(gè)卷積核卷積一個(gè)通道;圖3中的卷積核大小為3×3×1,則該部分產(chǎn)生的參數(shù)個(gè)數(shù)為30個(gè),乘法運(yùn)算次數(shù)為2 700次;然后PW部分是通過(guò)尺寸為1×1×M的卷積核進(jìn)行逐點(diǎn)卷積,其中M為輸出通道數(shù);如圖3中使用的是1×1×3的卷積核,則產(chǎn)生的參數(shù)個(gè)數(shù)為 128個(gè),乘法運(yùn)算次數(shù)為9 600次。可見(jiàn)使用深度可分離卷積將一張尺寸為12×12×3的圖像經(jīng)過(guò)特征提取成尺寸為10×10×3的圖像,其中產(chǎn)生的參數(shù)個(gè)數(shù)為158個(gè),乘法運(yùn)算次數(shù)為12 300次。若是使用傳統(tǒng)的卷積方法,則會(huì)產(chǎn)生的參數(shù)個(gè)數(shù)為896,乘法運(yùn)算次數(shù)為86 400次。
由此可見(jiàn)深度可分離 卷積與傳統(tǒng)的卷積相比,其參數(shù)量和乘法運(yùn)算次數(shù)均大幅減少,提升網(wǎng)絡(luò)運(yùn)算速度同時(shí)降低網(wǎng)絡(luò)參數(shù)量。
Dropout函數(shù)主要作用是在深度學(xué)習(xí)的訓(xùn)練過(guò)程中,按照一定的概率讓網(wǎng)絡(luò)神經(jīng)單元結(jié)果被丟棄,即輸出置0、不更新權(quán)重。由于Dropout是隨機(jī)丟棄網(wǎng)絡(luò)神經(jīng)元,則使每次訓(xùn)練后的網(wǎng)絡(luò)結(jié)構(gòu)都可能不相同,因此可以將Dropout函數(shù)理解成模型平均,其含義就是將訓(xùn)練后所生成的不同模型的預(yù)測(cè)結(jié)果通過(guò)相應(yīng)的權(quán)重進(jìn)行平均。其作用如圖4所示。
圖5 本文網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Structure oftext network
X1、X2 、X3 為輸入神經(jīng)元;Z1、Z2、Z3、Z4、Z5為隱層神經(jīng)元; O1、O2為輸出神經(jīng)元圖4 有無(wú)Dropout的網(wǎng)絡(luò)對(duì)比Fig.4 Comparison of networks with or without Dropout
從圖4中可得,無(wú)Dropout函數(shù)的網(wǎng)絡(luò)中,隱層神經(jīng)元為Z1、Z2、Z3、Z4、Z5。而加入Dropout函數(shù)后的網(wǎng)絡(luò)中,隱層神經(jīng)元只剩下Z1、Z2、Z4。在實(shí)際應(yīng)用中Dropout函數(shù)是隨機(jī)丟棄網(wǎng)絡(luò)神經(jīng)元。因此減弱了網(wǎng)絡(luò)神經(jīng)元節(jié)點(diǎn)間的聯(lián)合適應(yīng)性,增強(qiáng)了泛化能力和魯棒性,有效地降低過(guò)擬合概率。
網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,其中圖5(a)為改進(jìn)的殘差模塊結(jié)構(gòu)圖。在ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,做了以下幾點(diǎn)改進(jìn):①減少了殘差模塊數(shù)量,只使用了4個(gè)殘差模塊,降低網(wǎng)絡(luò)的復(fù)雜度;②如圖5(b)所示,在殘差模塊中,使用深度可分離卷積替換傳統(tǒng)卷積,同時(shí)在殘差模塊的上方分支中添加了一層卷積核尺寸為1×1的卷積層,并且在DSC層后面添加批歸一化層(batch normalization,BN),提高網(wǎng)絡(luò)的運(yùn)算速度和收斂速度以及泛化能力;③在全連接層之間添加Dropout函數(shù),減少過(guò)擬合現(xiàn)象的發(fā)生。輸入的圖像尺寸為32×32,通道數(shù)為1;經(jīng)過(guò)卷積層之后,圖像尺寸不變,通道數(shù)變?yōu)?6;隨后經(jīng)過(guò)4個(gè)殘差模塊,圖像尺寸變?yōu)?×2,通道數(shù)變?yōu)?56;最后經(jīng)過(guò)3個(gè)全連接層以及Dropout函數(shù)和softmax函數(shù),輸出10個(gè)類別的概率,其中概率最大的數(shù)字即預(yù)測(cè)值。
網(wǎng)絡(luò)模型的主要參數(shù)如表1所示。
表1 網(wǎng)絡(luò)模型主要參數(shù)
實(shí)驗(yàn)在PaddlePaddle深度學(xué)習(xí)框架下進(jìn)行,所用的硬件環(huán)境為百度AI Studio平臺(tái)提供的GPU:Tesla V100 16 GB顯存。
數(shù)據(jù)集是利用OV5640攝像頭在模擬字輪式數(shù)字水表正常工作的場(chǎng)景下,對(duì)數(shù)字表盤進(jìn)行圖像采集,總共采集了25 000張表盤圖像,數(shù)據(jù)樣本如圖6所示。
在對(duì)圖像經(jīng)過(guò)預(yù)處理之后,選用其中15 000張水表字符圖像作為數(shù)據(jù)集,圖像大小為32×32,其中完整的字符圖像和雙半字符圖像各占50%。訓(xùn)練集數(shù)據(jù)和測(cè)試集的比例為8∶2,并且訓(xùn)練集和測(cè)試集中完整的字符圖像與雙半字符圖像數(shù)量各占50%。
圖6 數(shù)據(jù)樣本Fig.6 Sample of data
設(shè)置網(wǎng)絡(luò)模型訓(xùn)練輪數(shù)為50輪次,學(xué)習(xí)速率為0.001 2,Dropout函數(shù)的參數(shù)設(shè)置為0.5,每批次訓(xùn)練的圖像數(shù)量為120張,訓(xùn)練得出的準(zhǔn)確率曲線如圖7所示。從圖7中可以看出,該網(wǎng)絡(luò)模型具有收斂速度快、精度高、穩(wěn)定性好等優(yōu)點(diǎn)。
在訓(xùn)練集和測(cè)試集之外,隨機(jī)選取了200張字輪式數(shù)字表盤圖像作為驗(yàn)證集,將其輸入到本文網(wǎng)絡(luò)模型中,進(jìn)行數(shù)字表盤字符識(shí)別。其識(shí)別結(jié)果與圖像實(shí)際數(shù)值一致,部分預(yù)測(cè)結(jié)果如圖8所示。
圖7 準(zhǔn)確率Fig.7 Accuracy rate
圖8 部分預(yù)測(cè)結(jié)果示例圖Fig.8 Some examples of prediction results
3.3.1 圖像分辨率分析
為選取輸入圖像的最優(yōu)分辨率,表2給出了輸入圖像的分辨率為32×32、112×112、224×224時(shí),網(wǎng)絡(luò)模型的字符識(shí)別率、參數(shù)大小、訓(xùn)練速度以及推理速度。從表2可以看出,當(dāng)輸入圖像分辨率為32×32時(shí),網(wǎng)絡(luò)模型的性能最優(yōu)。
表2 圖像分辨率分析
3.3.2 網(wǎng)絡(luò)參數(shù)分析
為表明深度神經(jīng)網(wǎng)絡(luò)中的卷積核大小、Dropout參數(shù)值的合理性,表3給出了卷積核大小為3×3、5×5,Dropout參數(shù)為0.2、0.5、0.7時(shí)表盤字符識(shí)別準(zhǔn)確率。由表3可以看出,本文網(wǎng)絡(luò)所選擇的3×3卷積核以及Dropout參數(shù)為0.5是效果最好的方案。
表3 網(wǎng)絡(luò)參數(shù)分析
3.3.3 深度可分離卷積分析
為驗(yàn)證深度可分離卷積在減少網(wǎng)絡(luò)模型參數(shù)量,提高網(wǎng)絡(luò)模型運(yùn)算和推理速度方面的優(yōu)越性,表4給出了使用傳統(tǒng)卷積的網(wǎng)絡(luò)和使用深度可分離卷積的網(wǎng)絡(luò)在網(wǎng)絡(luò)參數(shù)大小以及訓(xùn)練和推理速度方面的對(duì)比。由表4可以看出,深度可分離卷積能有效地減少網(wǎng)絡(luò)模型參數(shù)量,提高網(wǎng)絡(luò)模型運(yùn)算和推理速度。
表4 深度可分離卷積分析
3.3.4 訓(xùn)練參數(shù)分析
為說(shuō)明網(wǎng)絡(luò)模型在訓(xùn)練時(shí)所選取的學(xué)習(xí)速率、迭代次數(shù)的合理性,表5給出了網(wǎng)絡(luò)模型在學(xué)習(xí)速率為:0. 000 5、0. 001 0、0.001 2、0.001 5、0.002 0,迭代次數(shù)為:30次、50次、70次時(shí),表盤字符識(shí)別準(zhǔn)確率。由表5可以看出,本文網(wǎng)絡(luò)所選的學(xué)習(xí)速率和迭代次數(shù)能使網(wǎng)絡(luò)具有最優(yōu)性能。
表5 訓(xùn)練參數(shù)分析
3.3.5 不同網(wǎng)絡(luò)模型分析
為驗(yàn)證網(wǎng)絡(luò)模型在識(shí)別數(shù)字表盤字符方面所擁有的準(zhǔn)確率高、模型參數(shù)少、訓(xùn)練速度以及推理速度快等方面優(yōu)點(diǎn),將本文網(wǎng)絡(luò)模型與ResNet-18網(wǎng)絡(luò)模型以及文獻(xiàn)[9]中的網(wǎng)絡(luò)模型進(jìn)行以上4個(gè)方面的對(duì)比,其對(duì)比結(jié)果如表6所示。
表6 不同網(wǎng)絡(luò)對(duì)比結(jié)果
從表6的實(shí)驗(yàn)結(jié)果中可以看出,本文網(wǎng)絡(luò)在準(zhǔn)確率上與ResNet-18網(wǎng)絡(luò)和文獻(xiàn)[9]網(wǎng)絡(luò)模型相比,有顯著的提升。同時(shí)本文網(wǎng)絡(luò)的單張圖像運(yùn)算和推理時(shí)間相對(duì)于另外2個(gè)網(wǎng)絡(luò)模型而言,均大幅度減小,具有較快的運(yùn)算和推理速度。最后在網(wǎng)絡(luò)模型參數(shù)方面,本文網(wǎng)絡(luò)模型的實(shí)際參數(shù)大小只有7.71 MB,便于部署在輕量級(jí)的嵌入式設(shè)備中。
為提高字輪式表盤中的字符識(shí)別率和識(shí)別速度、減少模型參數(shù)量,提出了一種改進(jìn)殘差網(wǎng)絡(luò)的字輪式數(shù)字表盤識(shí)別算法。
(1)該算法在傳統(tǒng)的ResNet-18網(wǎng)絡(luò)基礎(chǔ)上,引入深度可分離卷積對(duì)殘差模塊進(jìn)行優(yōu)化;同時(shí)使用Dropout函數(shù)降低網(wǎng)絡(luò)模型出現(xiàn)過(guò)擬合現(xiàn)象的可能性,增強(qiáng)網(wǎng)絡(luò)模型的魯棒性。
(2)經(jīng)過(guò)驗(yàn)證對(duì)比,本文算法在識(shí)別的準(zhǔn)確率和速度方面有較大提升,同時(shí)模型參數(shù)大小也有顯著減少;為深度神經(jīng)網(wǎng)絡(luò)部署到輕量級(jí)的嵌入式設(shè)備提供了可能,同時(shí)為實(shí)際的工程應(yīng)用打下了基礎(chǔ),具有良好的實(shí)用前景。