文/周 虎 宋中建 周章勇(國營蕪湖機(jī)械廠)
目前,在航空儀表的維修中,對(duì)指針式儀表讀數(shù)或刻度指示判別都是由人工完成的。維修人員通過人眼判讀指針的位置、記錄各種儀表的數(shù)據(jù)來反映檢測(cè)產(chǎn)品的工作運(yùn)行狀態(tài)。然而指針式航空儀表具有多樣性,對(duì)測(cè)量精度要求較高,維修存在不確定性,而且對(duì)人眼判讀所得的數(shù)據(jù)存儲(chǔ)和管理困難,不便于后期數(shù)據(jù)分析和故障預(yù)測(cè)。
隨著機(jī)器視覺的發(fā)展和對(duì)航空儀表自動(dòng)化檢測(cè)要求的提高,采用圖像識(shí)別技術(shù)對(duì)指針式儀表示數(shù)進(jìn)行自動(dòng)識(shí)別,對(duì)于實(shí)現(xiàn)航空儀表的自動(dòng)化檢測(cè)和智能分析具有重要作用。針對(duì)指針式儀表示數(shù)的自動(dòng)識(shí)別,其核心技術(shù)包括表盤區(qū)域檢測(cè)、指針提取與檢測(cè)讀數(shù)計(jì)算兩部分。實(shí)現(xiàn)流程主要有兩種模式,一種是傳統(tǒng)方式,先檢測(cè)表盤區(qū)域,然后進(jìn)行指針線的提取,再計(jì)算讀數(shù);另一種是傳統(tǒng)與深度學(xué)習(xí)相結(jié)合的方式,檢測(cè)和識(shí)別合二為一,在檢測(cè)到表盤區(qū)域的同時(shí)提取指針、數(shù)字刻度線等關(guān)鍵信息的位置,再計(jì)算讀數(shù)。本方案擬采用傳統(tǒng)與深度學(xué)習(xí)相融合的方式,針對(duì)某型指針式航空電壓表設(shè)計(jì)一套自動(dòng)化檢測(cè)系統(tǒng)。
檢測(cè)系統(tǒng)采用工業(yè)相機(jī)采集儀表工作畫面圖像,通過視覺算法編程開發(fā)的智能檢測(cè)軟件對(duì)圖像進(jìn)行處理,得出測(cè)量數(shù)據(jù)結(jié)果后,進(jìn)行判斷和輸出。系統(tǒng)主要由圖像采集、圖像參數(shù)處理、信息輸出和外部通信控制4 部分組成。系統(tǒng)總體架構(gòu)如圖1 所示。
圖1 系統(tǒng)總體架構(gòu)
系統(tǒng)軟件通過工業(yè)相機(jī)采集被檢測(cè)儀表畫面圖像,使用HALCON 和C++混合編程開發(fā)的圖像處理軟件對(duì)采集到的圖像進(jìn)行處理,得出測(cè)量數(shù)據(jù)結(jié)果后,根據(jù)被檢測(cè)項(xiàng)目的目標(biāo)進(jìn)行判斷和輸出。軟件主要由通信控制、圖像采集與顯示、圖像預(yù)處理、圖像處理、解析處理結(jié)果、顯示與存儲(chǔ)、檢測(cè)模板等部分組成。
算法實(shí)現(xiàn)部分,分為輸入、中間處理、輸出3 部分。從工業(yè)相機(jī)設(shè)備獲取圖像,作為圖像輸入,這一步也是圖像處理的第一步輸入。Halcon 圖像處理,包括圖像預(yù)處理、圖像增強(qiáng)、圖像分割、特征提取、圖像理解等,是中間的處理部分,這一部分主要作為算法代碼實(shí)現(xiàn),導(dǎo)出為C++代碼。
交互實(shí)現(xiàn)部分,主要是為了方便用戶操作與實(shí)用軟件,這部分不涉及圖像處理算法,主要是用Qt 框架,用于實(shí)現(xiàn)用戶界面與數(shù)據(jù)表現(xiàn)。
航空電壓表為典型的指針式儀表,靜態(tài)數(shù)據(jù)讀取包含儀表表盤區(qū)域的檢測(cè)和儀表關(guān)鍵點(diǎn)的檢測(cè)兩大部分。其中表盤區(qū)域的檢測(cè)采用基于深度學(xué)習(xí)的算法,在檢測(cè)到儀表區(qū)域的基礎(chǔ)上,針對(duì)指針式儀表的識(shí)別問題,設(shè)計(jì)了兩種電壓表數(shù)據(jù)讀取的算法。
根據(jù)電壓表的結(jié)構(gòu)特點(diǎn),采用基于深度學(xué)習(xí)的關(guān)鍵點(diǎn)檢測(cè)實(shí)現(xiàn)對(duì)電壓表的數(shù)據(jù)讀取,通過檢測(cè)表盤的3 類關(guān)鍵點(diǎn)(儀表中心點(diǎn)、指針末端點(diǎn)、數(shù)字刻度關(guān)鍵點(diǎn))來計(jì)算指針相對(duì)于數(shù)字刻度關(guān)鍵點(diǎn)的偏移角度,然后由相對(duì)偏移角度來計(jì)算讀數(shù)。定義的3 類關(guān)鍵點(diǎn)如圖2 所示,其中紅色方塊是儀表中心點(diǎn),綠色三角是指針末端點(diǎn),藍(lán)色圓點(diǎn)是數(shù)字刻度關(guān)鍵點(diǎn)。
圖2 電壓表關(guān)鍵點(diǎn)檢測(cè)定義
采用傳統(tǒng)圖像處理算法來檢測(cè)刻度關(guān)鍵點(diǎn)的位置需要人工設(shè)計(jì)特征,如指針和刻度線的幾何形狀、顏色等特征。這種算法適應(yīng)性較弱,同時(shí)檢測(cè)效果容易受到光照、拍攝角度等因素的影響,導(dǎo)致檢測(cè)算法失效。而采用深度學(xué)習(xí)技術(shù),由于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的深度和廣度可以達(dá)到很大,理論上可以擬合到任意函數(shù),有很強(qiáng)的特征提取和學(xué)習(xí)能力。
航空電壓表盤面的圖像相對(duì)簡(jiǎn)單,為了降低讀數(shù)算法的復(fù)雜度,優(yōu)化算法實(shí)時(shí)性,本方案提出了基于SURF 特征點(diǎn)匹配的指針式儀表示數(shù)自動(dòng)讀取算法,包括儀表關(guān)鍵點(diǎn)位置的檢測(cè)和指針線的提取。通過SURF 特征點(diǎn)匹配的方式來檢測(cè)儀表圖像的關(guān)鍵點(diǎn)位置,關(guān)鍵點(diǎn)的定義如圖3 所示,其中紅色方塊是儀表中心點(diǎn),綠色三角是指針末端點(diǎn),藍(lán)色圓點(diǎn)是數(shù)字刻度關(guān)鍵點(diǎn)。通過對(duì)模板圖像和待識(shí)別圖像分別提取SURF 特征點(diǎn),然后對(duì)特征點(diǎn)進(jìn)行匹配,計(jì)算出單應(yīng)性變換矩陣,即可將模板圖像的關(guān)鍵點(diǎn)位置映射至待測(cè)圖像上,為進(jìn)一步的讀數(shù)識(shí)別奠定基礎(chǔ)。
圖3 儀表示數(shù)讀取投影計(jì)算示意圖
在檢測(cè)到儀表表盤的關(guān)鍵點(diǎn)后,就需要對(duì)表盤中的指針線進(jìn)行檢測(cè)提取,可以根據(jù)中心點(diǎn)的位置采用中心投影法來檢測(cè)指針。在得到指針式儀表的數(shù)字刻度關(guān)鍵點(diǎn)和指針的位置后,即可根據(jù)指針相對(duì)于數(shù)字刻度關(guān)鍵點(diǎn)的偏轉(zhuǎn)角度計(jì)算讀數(shù),具體計(jì)算過程如下:
設(shè)儀表的量程為(S1,S2),共有n個(gè)數(shù)字刻度關(guān)鍵點(diǎn),相對(duì)于儀表中心點(diǎn)的偏轉(zhuǎn)角度分別為m0,m1,m2,…,mn-1,指針的偏轉(zhuǎn)角度為α,位于mp和mq之間。示意圖如圖4 所示,儀表讀數(shù)的計(jì)算公式如下:
基于關(guān)鍵點(diǎn)檢測(cè)的讀取網(wǎng)絡(luò)架構(gòu)如圖4 所示。主干網(wǎng)絡(luò)采用全卷積的神經(jīng)網(wǎng)絡(luò)來提取特征,殘差網(wǎng)絡(luò)(ResNet)在圖像特征提取方面是最常用的網(wǎng)絡(luò)結(jié)構(gòu),由一系列殘差塊組成,它解決了深層次神經(jīng)網(wǎng)絡(luò)帶來的精度退化現(xiàn)象?;跉埐罹W(wǎng)絡(luò)的主干網(wǎng)絡(luò)與CenterNet 類似,在ResNet 后加3 層動(dòng)態(tài)卷積和轉(zhuǎn)置卷積就可以得到高分辨率的熱值圖,提高預(yù)測(cè)關(guān)鍵點(diǎn)位置的精度。
圖4 殘差主干網(wǎng)絡(luò)架構(gòu)圖
熱值圖的訓(xùn)練過程與CornerNet 類似,對(duì)于每一個(gè)儀表關(guān)鍵點(diǎn)采用未歸一化的二維高斯函數(shù)分布作為標(biāo)簽值。其中(x,y)為關(guān)鍵點(diǎn)附近位置點(diǎn)的坐標(biāo),(xt,yt)為真實(shí)關(guān)鍵點(diǎn)的坐標(biāo),σp為標(biāo)準(zhǔn)差。經(jīng)過驗(yàn)證發(fā)現(xiàn)σp=1 時(shí)效果最好。
本文針對(duì)傳統(tǒng)的指針式航空儀表檢測(cè)中存在的主要問題,提出了一種基于機(jī)器視覺的圖像處理設(shè)計(jì)方案,使用HALCON 和C++混合編程開發(fā)了一套圖像處理軟件,采用基于深度學(xué)習(xí)的關(guān)鍵點(diǎn)檢測(cè)算法、基于SURF 特征點(diǎn)的儀表示數(shù)讀取算法和基于關(guān)鍵點(diǎn)檢測(cè)的讀取網(wǎng)絡(luò),實(shí)現(xiàn)了儀表的讀數(shù)識(shí)別,并進(jìn)行了充分的效果驗(yàn)證,保證了某型指針式航空電壓表自動(dòng)化檢測(cè)、數(shù)據(jù)采集和存儲(chǔ)項(xiàng)目的可行性。項(xiàng)目的順利實(shí)施,對(duì)工廠在機(jī)器視覺技術(shù)應(yīng)用、設(shè)備自動(dòng)化檢測(cè)和數(shù)據(jù)采集應(yīng)用方面具有重要應(yīng)用價(jià)值和推廣前景。