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