石瑋瑋,孫輝,李曉峰,程遠(yuǎn)方,王濤
(國營洛陽丹城無線電廠,河南 洛陽 471000)
長期以來,儀表示數(shù)的智能識別一直受到學(xué)者們的關(guān)注,利用圖像處理和識別技術(shù),可以實現(xiàn)數(shù)顯儀表的自動識別,既可以提高工作效率,又可以保證采集數(shù)據(jù)的準(zhǔn)確性[1-6]。因此儀表的自動識別方法層出不窮,包括模板匹配方法、基于特征的機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法[7-9]。傳統(tǒng)的字符識別方法大多是利用字符本身的特征進(jìn)行識別,陸靖濱等[10]提出了一種改進(jìn)的最大類間方差法自適應(yīng)提取數(shù)顯儀表的字符,采用穿線法實現(xiàn)字符的自動識別。董延華等[11]在模式識別技術(shù)的基礎(chǔ)上,通過改進(jìn)的特征匹配算法改變了特征向量,增加了學(xué)習(xí)次數(shù)。陳瑋等[12]提出了基于歐拉數(shù)的模板匹配,將模板圖像分組,只匹配具有相同歐拉數(shù)模板的目標(biāo)圖像。然而,上述傳統(tǒng)的字符識別方法容易受到環(huán)境因素的影響,背景的變化、數(shù)字的浮動和漂移、光照強(qiáng)度對識別效果都有很大的影響。深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)作為一種有效方法,在字符識別領(lǐng)域得到了廣泛的應(yīng)用。識別方法首先需要人工選取字符目標(biāo)0~9的特征圖像,構(gòu)建10個字符的特征向量作為輸入矩陣。通過CNN模型的訓(xùn)練,固化神經(jīng)網(wǎng)絡(luò)各層神經(jīng)元的連接權(quán)重和閾值。將訓(xùn)練好的CNN模型應(yīng)用于儀表識別推理,輸出一個由10個元素組成的向量來區(qū)分顯示的具體字符數(shù)字[13]。該方法具有分類能力強(qiáng)、容錯性好等優(yōu)點。
本文系統(tǒng)研究了基于CNN原理的游標(biāo)卡尺智能識別算法。隨機(jī)改變游標(biāo)卡尺在測試區(qū)域的位置、角度和高度,顯示屏?xí)霈F(xiàn)反光現(xiàn)象。在識別過程中,首先要對游標(biāo)卡尺的數(shù)顯區(qū)域進(jìn)行粗定位和精確定位,才能獲得數(shù)顯區(qū)域。其次使用圖像處理算法進(jìn)行操作,如傾斜校正、灰度、二值化、腐蝕和膨脹等。最后,建立了分割數(shù)字對應(yīng)的0~9個類別字符的淺層CNN模型,對分割后的游標(biāo)卡尺數(shù)字進(jìn)行訓(xùn)練和測試,完成對數(shù)字式游標(biāo)卡尺在多場景下的智能識別,可以大大提高字符識別的效率。
高分辨率工業(yè)相機(jī)和高性能計算機(jī)是人工智能領(lǐng)域數(shù)字儀器自動識別的主要設(shè)備。為了實現(xiàn)儀器圖像的自動識別,需要將攝像頭固定在數(shù)字式儀表前。為了提高儀表字符數(shù)據(jù)識別的正確性,必須保證工業(yè)相機(jī)的分辨率。對于高分辨率工業(yè)相機(jī)拍攝圖像的預(yù)處理工作,也是能夠成功識別字符的關(guān)鍵步驟。相關(guān)圖像采集軟件、圖像分析軟件和圖像識別軟件的操作主要由計算機(jī)完成。為減少不必要的工作負(fù)擔(dān),提高工作效率,自動信息識別的后續(xù)處理可由同一臺計算機(jī)完成。本文采用的CMOS工業(yè)相機(jī)最大分辨率為2448×3264;訓(xùn)練高性能計算機(jī)平臺選用戴爾T640塔式服務(wù)器,CPU為志強(qiáng)處理器,CPU主頻1.7 GHz,NVIDA GeForce RTX2080Ti顯卡1塊。
儀器數(shù)據(jù)自動識別軟件分為3個模塊:圖像采集模塊、圖像處理模塊和字符識別模塊。當(dāng)圖像采集模塊獲取包含儀表的圖像后,相機(jī)由特定的編程接口驅(qū)動,調(diào)用CNN目標(biāo)定位模型,進(jìn)行推理,可以對識別出的數(shù)據(jù)區(qū)域圖像進(jìn)行定位和分割,同時完成上層的圖像傳輸。中間模塊為圖像處理模塊,不僅可以將圖像采集模塊得到的彩色圖像轉(zhuǎn)換為灰度圖像,還可以實現(xiàn)圖像增強(qiáng)、圖像去噪和二值化等功能,最終完成黑白圖像的處理。在圖像數(shù)據(jù)的識別中,數(shù)據(jù)識別模塊起到了作用,主要是在淺層神經(jīng)網(wǎng)絡(luò)模型的作用下,快速準(zhǔn)確識別分割后的字符,并重組最終輸出數(shù)值。在自動識別數(shù)字式游標(biāo)卡尺數(shù)據(jù)之前,還需要對相應(yīng)的字體進(jìn)行訓(xùn)練,最終完成儀器數(shù)據(jù)的智能識別。
為了提高儀表測量數(shù)據(jù)自動識別的效率,儀表測量數(shù)據(jù)識別軟件可以封裝成一個獨立運(yùn)行的程序,在與其他程序進(jìn)行信息交換的過程中可以通過進(jìn)程間調(diào)用來完成。另外,在調(diào)用其他程序時,可以直接通過編程接口函數(shù)獲取捕獲目標(biāo)的屬性。接口函數(shù)的形式不僅可以使信息的調(diào)用更加高效,還可以增加操作的靈活性。
本文算法所采用的技術(shù)路線圖如圖1所示。游標(biāo)卡尺數(shù)據(jù)的智能識別包括圖像采集、數(shù)據(jù)區(qū)域提取和智能識別3部分。圖像采集包括從相機(jī)的圖像采集到圖像預(yù)處理。數(shù)據(jù)區(qū)域定位包括構(gòu)建CNN模型對圖像樣本的特征進(jìn)行訓(xùn)練和提取,根據(jù)圖像特征提取圖像的數(shù)字顯示區(qū)域,對待識別的有效字符區(qū)域進(jìn)行分割。然后對分割后的游標(biāo)卡尺圖像數(shù)據(jù)集進(jìn)行灰度化、二值化、邊緣檢測、腐蝕噪聲和封閉運(yùn)算等方法實現(xiàn)儀表數(shù)據(jù)區(qū)域的精確定位和分割,從而得到分割字符。數(shù)據(jù)識別是再次利用淺層神經(jīng)網(wǎng)絡(luò)對游標(biāo)卡尺數(shù)據(jù)進(jìn)行智能識別。
圖1 基于CNN模型的智能識別系統(tǒng)技術(shù)路線圖
為了實現(xiàn)游標(biāo)卡尺的智能識別,需對數(shù)顯區(qū)域進(jìn)行有效定位和提取。為了消除背景的干擾,提高識別準(zhǔn)確率,本文提出一種CNN模型目標(biāo)檢測與定位算法。由于要保證游標(biāo)卡尺的全像,拍攝范圍會比較寬,所以在圖像中,游標(biāo)卡尺的面積和角度是不確定的,干擾信息很復(fù)雜。在提取表盤特征時,采集的不同圖像每幀之間沒有規(guī)律性,且儀表位置都有所不同,加之光照飽和度的干擾也是隨機(jī)的,這些因素都給后續(xù)進(jìn)一步的表盤圖像處理帶來困難。本文使用CNN算法定位,提取圖像中的數(shù)字顯示區(qū)域。為了得到魯棒性較強(qiáng)的目標(biāo)檢測模型,就需要大量的訓(xùn)練樣本。本文中樣本采用數(shù)據(jù)增強(qiáng)技術(shù)對原始拍攝的有限數(shù)據(jù)樣本進(jìn)行數(shù)據(jù)多類型數(shù)據(jù)量的自主擴(kuò)充,其中包括翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、變形和縮放等操作,目的是為了產(chǎn)生更多的數(shù)據(jù)樣本,以豐富樣本類型,增加訓(xùn)練模型的泛化能力。
訓(xùn)練結(jié)束后,研究人員開始驗證訓(xùn)練效果,將隨機(jī)的4張圖像放入輸入層,推理得到如圖2所示的數(shù)顯區(qū)域定位結(jié)果。由圖2可以看出,檢測概率均超過99%,圖2(b)甚至高達(dá)100%。雖然數(shù)顯區(qū)的定位精度很高,但定位框中含有邊緣的黑色區(qū)域和游標(biāo)卡尺的單位mm字符,每次覆蓋的黑色區(qū)域大小不一,很難對游標(biāo)卡尺中的顯示字符進(jìn)行分段。因此,需要對數(shù)顯區(qū)域進(jìn)行二次定位,即精準(zhǔn)定位。由于第二次定位是在第一次粗定位的基礎(chǔ)上進(jìn)行的,因此操作過程更簡單,精度更高。
圖2 游標(biāo)卡尺數(shù)據(jù)區(qū)定位結(jié)果圖
在定位游標(biāo)卡尺的數(shù)字顯示區(qū)域后,基于數(shù)學(xué)形態(tài)學(xué)理論提出了游標(biāo)卡尺字符顯示區(qū)域圖像的處理方法。首先對圖像進(jìn)行灰度化和二值化,使圖像的處理數(shù)據(jù)量大大減少,輪廓變得更為清晰,突出所需的邊緣特征,應(yīng)用腐蝕操作去除圖像中不連續(xù)的邊界點。然后進(jìn)行閉合操作,連接圖像中的小區(qū)域。最后,根據(jù)圖像的高寬比等信息,濾除非數(shù)字區(qū)域,得到游標(biāo)卡尺的數(shù)字顯示區(qū)域圖像。
字符分割是將數(shù)字序列分割成獨立的數(shù)字,或分割出所需的區(qū)域塊,是游標(biāo)卡尺數(shù)據(jù)智能識別中必不可少的程序。根據(jù)液晶顯示屏幕的字符顯示方式,通過查找輪廓找到每個數(shù)字邊緣,建立每個輪廓的輪廓矩,并將每組數(shù)字分段,如圖3所示。雖然游標(biāo)卡尺的數(shù)據(jù)是分成單個數(shù)字,每個數(shù)字圖像的大小并不完全相同。例如,圖3上半部分單位mm的尺寸比其他數(shù)字圖像小,無法在CNN模型中訓(xùn)練數(shù)字。因此,需要對每個分割后的圖像進(jìn)行歸一化處理,處理后的數(shù)字圖像大小為28×28,如圖3下半部分所示。
圖3 游標(biāo)卡尺數(shù)字分割圖
因為游標(biāo)卡尺字符受拍攝角度、光線和距離的影響。因此,根據(jù)游標(biāo)卡尺的單個數(shù)字特性,本文選擇不同條件下拍攝的數(shù)字圖像制作數(shù)據(jù)集,用于輸入樣本訓(xùn)練和檢驗淺層神經(jīng)網(wǎng)絡(luò)模型,具體樣本比例為7∶3。因此,構(gòu)建了一套基于3層神經(jīng)網(wǎng)絡(luò)模型算法的游標(biāo)卡尺數(shù)字識別算法,來識別分割后的單個字符。
為了驗證CNN模型的準(zhǔn)確率,隨機(jī)選取1000張圖像進(jìn)行實驗,結(jié)果表明平均識別準(zhǔn)確率在95%以上。其中,再選擇測試樣本200張圖片中的字符共計875個字符進(jìn)行識別。將本文算法與穿線法、模板匹配算法進(jìn)行比較,見表1,在單個字符識別準(zhǔn)確率方面,較模板匹配法提升了4.69%,較穿線法提升了6.63%,具有較為明顯的改善。在進(jìn)一步優(yōu)化的基礎(chǔ)上,說明基于該CNN模型的智能識別系統(tǒng)具有很強(qiáng)的應(yīng)用和推廣價值。
表1 不同識別算法下的單個字符識別結(jié)果
本文設(shè)計了一種基于CNN的智能儀表識別系統(tǒng),首先,對所有采集到的游標(biāo)卡尺圖像進(jìn)行2次標(biāo)記,以精確定位游標(biāo)卡尺的數(shù)據(jù)區(qū)域。然后利用圖像灰度、二值化、腐蝕和膨脹等算法對準(zhǔn)確定位的圖像進(jìn)行處理。其次,將分割后的數(shù)字圖像作為樣本放入淺層神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練和測試,從而實現(xiàn)對相應(yīng)數(shù)字字符的識別,最終識別游標(biāo)卡尺的數(shù)據(jù)。實驗結(jié)果表明,無論是在圖像整體字符串識別率,還是在字符的識別方面,都存在著明顯的優(yōu)勢,其識別率明顯高于傳統(tǒng)的算法,該模型算法具有識別率高、實時性高及可靠性好等優(yōu)點,具有一定的應(yīng)用價值。