唐守鋒, 史經(jīng)燦, 周楠, 趙仁慈, 仝光明, 黃潔
(中國(guó)礦業(yè)大學(xué) 信息與控制工程學(xué)院, 江蘇 徐州 221116)
儀器儀表顯示值的識(shí)別在機(jī)器人自動(dòng)巡檢、自動(dòng)檢定系統(tǒng)示值讀取等應(yīng)用領(lǐng)域必不可少。目前數(shù)顯儀表的顯示方式主要有數(shù)碼管和液晶2種。常用的甲烷傳感器多為非色散紅外甲烷傳感器,主要采用數(shù)碼管顯示。甲烷傳感器自動(dòng)檢定系統(tǒng)采集傳感器數(shù)值圖像時(shí),由于傳感器本身材質(zhì)存在光反射,且顯示面板上有附著物,采集到的數(shù)值圖像質(zhì)量較差,對(duì)字符識(shí)別造成困難,降低了識(shí)別準(zhǔn)確率。
基于機(jī)器學(xué)習(xí)的檢測(cè)算法是一種常用的儀表字符識(shí)別方法,可以很好地解決傳統(tǒng)圖像處理方法對(duì)圖像噪聲敏感且魯棒性差的問題。這類算法中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和支持向量機(jī)(Support Vector Machine,SVM)表現(xiàn)突出并逐漸成為主流。文獻(xiàn)[1]將圖像預(yù)處理方法與模板匹配結(jié)合使用進(jìn)行數(shù)值圖像識(shí)別,實(shí)時(shí)性好,但識(shí)別率較低。文獻(xiàn)[2-4]分別使用BP神經(jīng)網(wǎng)絡(luò)和CNN對(duì)數(shù)字儀表進(jìn)行識(shí)別,不僅可以識(shí)別儀表字符圖像和小數(shù)點(diǎn),還可以識(shí)別儀表字輪圖像,但識(shí)別率較低。文獻(xiàn)[5-6]提出了一種基于CRNN的識(shí)別方法,結(jié)合CNN和深度循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)進(jìn)行聲紋個(gè)體識(shí)別,識(shí)別率高,但忽略了網(wǎng)絡(luò)模型輸出數(shù)據(jù)量大小,算法運(yùn)行時(shí)間較長(zhǎng)。文獻(xiàn)[7]以SSD(Single Shot MultiBox Detector)為算法框架基礎(chǔ),有效解決了文字識(shí)別問題,但算法運(yùn)行速度較慢。文獻(xiàn)[8]采用FasterR-CNN網(wǎng)絡(luò)對(duì)存在擁擠、遮擋等情況的圖像進(jìn)行識(shí)別,其優(yōu)點(diǎn)是魯棒性強(qiáng)。文獻(xiàn)[9]提出的YOLOv3網(wǎng)絡(luò)具有很好的實(shí)時(shí)性,但對(duì)相似目標(biāo)的檢測(cè)效果很差。針對(duì)上述問題,本文提出了一種基于改進(jìn)CNN-SVM的甲烷傳感器數(shù)顯識(shí)別方法。首先對(duì)傳感器數(shù)值圖像進(jìn)行增強(qiáng)與分割處理,然后采用傳統(tǒng)CNN進(jìn)行特征提取,結(jié)合主成分分析法(Principal Component Analysis,PCA)對(duì)提取的圖像特征進(jìn)行降維,最后通過SVM實(shí)現(xiàn)數(shù)字分類識(shí)別。
為了更好地提取甲烷傳感器數(shù)碼示值區(qū)域數(shù)字,首先利用帶色彩恢復(fù)的多尺度視網(wǎng)膜增強(qiáng)(Multi-Scale Retinex with Color Restoration,MSRCR)算法進(jìn)行圖像增強(qiáng)處理,使得甲烷傳感器數(shù)碼管顯示區(qū)域明顯區(qū)別于其他區(qū)域;其次,將RGB圖像轉(zhuǎn)換至HSV空間,提取出圖像中包含紅色像素的區(qū)域;然后,為了提高特征提取和識(shí)別的可靠性,利用區(qū)域分割方法將數(shù)值區(qū)域從整體圖像中分割出來;最后,使用高斯濾波算法對(duì)圖像進(jìn)行去噪處理,并對(duì)處理后的圖像進(jìn)行二值化。圖像增強(qiáng)與數(shù)值提取過程如圖1所示。
圖1 圖像增強(qiáng)與數(shù)值提取過程Fig.1 Image enhancement and numerical extraction process
利用OpenCV中的Rect數(shù)據(jù)結(jié)構(gòu)將數(shù)值圖像中的數(shù)字分割成單個(gè)數(shù)字圖像,作為自建數(shù)據(jù)集。正常情況下小數(shù)點(diǎn)位于數(shù)字右下角,判斷對(duì)應(yīng)區(qū)域像素值是否為0即可得到小數(shù)點(diǎn)位置。數(shù)字分割效果如圖2所示。
圖2 數(shù)字分割效果Fig.2 Digital split effect
CNN通過卷積層從原始圖像中提取基本數(shù)字特征,為減少后續(xù)計(jì)算量,防止過擬合情況的發(fā)生,通過池化層對(duì)數(shù)值圖像的局部代表性特征進(jìn)行提取,全連接層將前面提取的特征整合到一起后通過Softmax分類器進(jìn)行分類識(shí)別。與Softmax相比,SVM采用最大類間分類平面對(duì)樣本數(shù)據(jù)進(jìn)行分類,具有更高的識(shí)別準(zhǔn)確率。因此,CNN-SVM模型[10-12]用SVM分類器替代原有的Softmax分類器,其結(jié)構(gòu)如圖3所示。
圖3 CNN-SVM模型結(jié)構(gòu)Fig.3 CNN-SVM model structure
用SVM分類器替代Softmax分類器的具體操作步驟如下:
(1) 訓(xùn)練原始CNN,使CNN模型具有較高的識(shí)別率。
(2) 將模型中的損失函數(shù)Cross-entropy Loss更換為Hinge Loss。
(3) 將全連接層之前的學(xué)習(xí)率系數(shù)lr_mult全都設(shè)置為0,直到固定特征提取完畢。
(4) 重新訓(xùn)練模型(只需要訓(xùn)練最后的SVM分類器),經(jīng)過一段時(shí)間后,完成CNN-SVM模型訓(xùn)練。
CNN-SVM模型運(yùn)行時(shí)間依然較長(zhǎng),為了縮短運(yùn)行時(shí)間,提高識(shí)別準(zhǔn)確率,本文使用PCA算法對(duì)全連接層提取的圖像特征進(jìn)行降維處理,用最主要數(shù)據(jù)特征代替原始數(shù)據(jù)作為SVM分類器的樣本進(jìn)行分類識(shí)別。改進(jìn)CNN-SVM模型由3個(gè)卷積層、3個(gè)池化層、1個(gè)全連接層、PCA及SVM分類器組成,其流程如圖4所示。
圖4 改進(jìn)CNN-SVM模型流程Fig.4 Improved CNN-SVM model process
(1) 對(duì)傳感器數(shù)值圖像進(jìn)行增強(qiáng)與分割處理,得到統(tǒng)一大小的80×80灰度數(shù)字圖像。
(2) 卷積層使用9×9的卷積核,取步長(zhǎng)為1,對(duì)輸入圖像做卷積計(jì)算,得出對(duì)應(yīng)大小的特征圖。激活層使用ReLU激活函數(shù)對(duì)特征圖進(jìn)行處理。
(3) 設(shè)置池化層窗口大小為2×2,步長(zhǎng)為2,對(duì)激活層得到的特征圖進(jìn)行降維處理。
(4) 全連接層對(duì)第3次池化得到的特征圖進(jìn)行全連接操作,得到640個(gè)1×1的特征圖,即640維特征。
(5) 利用PCA算法對(duì)全連接層提取的640維特征進(jìn)行進(jìn)一步降維處理,最終得到150維特征。
(6) 將150維特征作為SVM的樣本數(shù)據(jù),通過SVM分類器進(jìn)行分類識(shí)別。
為了驗(yàn)證改進(jìn)CNN-SVM模型的性能,采用多種模型對(duì)自建數(shù)據(jù)集和經(jīng)典MNIST數(shù)據(jù)集中的單個(gè)數(shù)字圖片進(jìn)行識(shí)別和對(duì)比分析。仿真實(shí)驗(yàn)平臺(tái)配置:Intel Core i7處理器,NVIDIA1080Ti顯卡,32 GB運(yùn)行內(nèi)存,操作系統(tǒng)為L(zhǎng)inux Ubuntu 16.04的微服務(wù)器,在Pycharm 2020.3平臺(tái)使用Python 3.7進(jìn)行軟件設(shè)計(jì)。
自建數(shù)據(jù)集包含數(shù)字0~9和小數(shù)點(diǎn)共11類字符。訓(xùn)練集包括5 500個(gè)樣本,每種字符選擇500個(gè)樣本。測(cè)試集包括6 600個(gè)樣本,每種字符選擇600個(gè)樣本。對(duì)自建數(shù)據(jù)集圖像進(jìn)行預(yù)處理,全部歸一化為80×80的圖像。
為了對(duì)比改進(jìn)前后模型的性能,采用傳統(tǒng)CNN模型、CNN-SVM模型及改進(jìn)CNN-SVM模型進(jìn)行仿真,結(jié)果如圖5所示。3種模型的識(shí)別準(zhǔn)確率及所需時(shí)間見表1。
圖5 3種模型識(shí)別準(zhǔn)確率對(duì)比Fig.5 Comparison of the recognition accuracy of three models
模型準(zhǔn)確率/%時(shí)間/s傳統(tǒng)CNN96.5134.56CNN-SVM98.2120.92改進(jìn)CNN-SVM99.1108.34
從圖5可看出,改進(jìn)CNN-SVM模型的識(shí)別準(zhǔn)確率隨迭代步數(shù)的增加而穩(wěn)定上升;傳統(tǒng)CNN模型的準(zhǔn)確率在迭代步數(shù)達(dá)到200左右時(shí)波動(dòng)起伏嚴(yán)重;CNN-SVM模型的準(zhǔn)確率也隨迭代次數(shù)的增加而穩(wěn)定上升,但低于改進(jìn)CNN-SVM模型的準(zhǔn)確率。3種模型的準(zhǔn)確率在迭代步數(shù)達(dá)到300時(shí)趨于穩(wěn)定,改進(jìn)CNN-SVM模型、CNN-SVM模型、傳統(tǒng)CNN模型的準(zhǔn)確率分別為99.1%,98.2%,96.5%。從表1可得出改進(jìn)CNN-SVM模型的運(yùn)行時(shí)間最短。仿真結(jié)果表明,與另外2種模型相比,改進(jìn)CNN-SVM模型的準(zhǔn)確率更高,運(yùn)行時(shí)間更短。
在MNIST數(shù)據(jù)集下,使用主流深度學(xué)習(xí)模型與改進(jìn)CNN-SVM模型進(jìn)行對(duì)比分析。各模型訓(xùn)練參數(shù)見表2。
表2 主流深度學(xué)習(xí)模型訓(xùn)練參數(shù)Table 2 Training parameters of mainstream deep learning models
選取MINST數(shù)據(jù)集中10 000張數(shù)字圖像作為測(cè)試集,采用表2中的各模型進(jìn)行測(cè)試,結(jié)果見表3。由表3可知,YOLOv3的實(shí)時(shí)性較好,每秒可識(shí)別85張圖片,但其準(zhǔn)確率只有95.7%,精度較低;Faster R-CNN識(shí)別準(zhǔn)確率高,但實(shí)時(shí)性較差。綜合考慮精度和實(shí)時(shí)性要求,改進(jìn)CNN-SVM模型的綜合性能優(yōu)于其他模型。
表3 實(shí)驗(yàn)結(jié)果對(duì)比Table 3 Comparison of experimental results
由于甲烷傳感器數(shù)顯識(shí)別對(duì)準(zhǔn)確率、實(shí)時(shí)性有較高要求,單獨(dú)使用1臺(tái)計(jì)算機(jī)完成圖像識(shí)別不利于系統(tǒng)遷移。綜合考慮,選擇插拔方便且體積小的樹莓派作為圖像識(shí)別處理器。通過樹莓派與微距攝像頭配合完成圖像采集與識(shí)別工作,保證圖像采集的實(shí)時(shí)性和識(shí)別的準(zhǔn)確率。基于改進(jìn)CNN-SVM的甲烷傳感器數(shù)顯識(shí)別方法如圖6所示[13]。采用STM32F407ZGT6作為控制器,實(shí)現(xiàn)數(shù)據(jù)接收、處理及傳輸;采用樹莓派運(yùn)行改進(jìn)CNN-SVM模型,實(shí)現(xiàn)圖像處理和識(shí)別;選用微型高清USB攝像頭采集甲烷傳感器數(shù)值圖像,該攝像頭使用CMOS型感光芯片,具有體積小、功耗低、價(jià)格低等優(yōu)點(diǎn)。
圖6 基于改進(jìn)CNN-SVM的甲烷傳感器數(shù)顯識(shí)別方法Fig.6 Digital recognition method of methane sensor based on improved CNN-SVM
數(shù)顯識(shí)別流程如圖7所示。將訓(xùn)練好的改進(jìn)CNN-SVM模型移植到樹莓派中,上電后,通過上位機(jī)發(fā)送開始指令給控制器,控制不同濃度甲烷標(biāo)準(zhǔn)氣體及N2的通斷和流量;微型高清USB攝像頭采集傳感器數(shù)值圖像并傳輸至樹莓派進(jìn)行識(shí)別處理;樹莓派將識(shí)別后的數(shù)據(jù)傳輸至控制器,控制器與上位機(jī)進(jìn)行通信,上位機(jī)顯示甲烷傳感器數(shù)值。
為了驗(yàn)證基于改進(jìn)CNN-SVM的甲烷傳感器數(shù)顯識(shí)別方法的識(shí)別率,在實(shí)驗(yàn)平臺(tái)通入體積分?jǐn)?shù)為0.5%,3.5%,9%,35%的甲烷標(biāo)準(zhǔn)氣體,對(duì)攝像頭捕獲的100張甲烷傳感器數(shù)值圖像進(jìn)行識(shí)別,準(zhǔn)確識(shí)別出99張圖片,識(shí)別成功率為99%,與仿真分析結(jié)果一致。
(1) 改進(jìn)CNN-SVM模型在采用傳統(tǒng)CNN模型進(jìn)行特征提取的基礎(chǔ)上,結(jié)合PCA完成對(duì)數(shù)字圖像特征的降維提取,通過SVM對(duì)不同數(shù)字進(jìn)行分類識(shí)別。
圖7 數(shù)顯識(shí)別流程Fig.7 Digital recognition process
(2) 在自建數(shù)據(jù)集上的驗(yàn)證結(jié)果表明,改進(jìn)CNN-SVM模型、CNN-SVM模型、傳統(tǒng)CNN模型的準(zhǔn)確率分別為99.1%,98.2%,96.5%,運(yùn)行時(shí)間分別為108.34,120.92,134.56 s,改進(jìn)CNN-SVM模型的準(zhǔn)確率最高,運(yùn)行時(shí)間最短。
(3) 在經(jīng)典MNIST數(shù)據(jù)集上的驗(yàn)證結(jié)果表明,改進(jìn)CNN-SVM模型的識(shí)別準(zhǔn)確率為99.0%,幀率為80幀/s,綜合考慮精度和實(shí)時(shí)性要求,改進(jìn)CNN-SVM模型的綜合性能優(yōu)于CRNN,SSD,YOLOv3,F(xiàn)aster R-CNN等模型。
(4) 采用微型高清USB攝像頭采集傳感器數(shù)值圖像,將訓(xùn)練好的改進(jìn)CNN-SVM模型移植到樹莓派中進(jìn)行圖像處理和識(shí)別,結(jié)果表明,基于改進(jìn)CNN-SVM的甲烷傳感器數(shù)顯識(shí)別方法的識(shí)別成功率為99%,與仿真分析結(jié)果一致。