吳禹倫,彭衛(wèi)東
(中國民用航空飛行學(xué)院 航空工程學(xué)院,四川 廣漢 618307)
隨著計算機視覺技術(shù)的廣泛應(yīng)用,儀表讀數(shù)圖像識別技術(shù)廣泛應(yīng)用于電氣系統(tǒng)、汽車無人駕駛等領(lǐng)域,而對飛機駕駛艙中的儀表卻少有涉及。利用圖像識別技術(shù)對飛機儀表進(jìn)行讀數(shù)識別,大大精簡了飛行員監(jiān)視飛機飛行狀態(tài)所需要的精力和時間?,F(xiàn)階段,已有很多學(xué)者對指針式儀表讀數(shù)識別進(jìn)行了研究。目前,常見的指針式儀表自動判讀方法有差影法[1-3]、霍夫變換法[4-8]等。李治瑋等[1]利用最大灰度差構(gòu)造無指針儀表圖像模板,通過差影法將待測圖像與模板圖相減確定指針位置,但識別結(jié)果準(zhǔn)確性受光照影響嚴(yán)重。利用霍夫變換法可提取指針中軸線,求得指針與零刻度線的夾角。該方法受光線干擾小,識別結(jié)果不易受圖像中噪聲點的影響,具有較強的魯棒性。本文針對某一特征的指針儀表進(jìn)行識別,具體表現(xiàn)形式為:表盤背景固定,刻度均勻分布在指針?biāo)闹埽恢羔樞螤顬榈妊切?,指針位置跟隨飛機狀態(tài)發(fā)生改變。對圖像進(jìn)行二值化、形態(tài)學(xué)處理,并應(yīng)用連通域法提取到清晰的指針圖像,再基于霍夫變換計算得到指針與起始刻度夾角,利用角度法實現(xiàn)儀表讀數(shù)的自動判讀。
待識別圖像的顏色格式是RGB色彩格式。以飛機迎角表為例,原始圖像如圖1所示。本文以識別指針讀數(shù)為研究重點,先決條件是儀表水平放置,且指針式儀表與攝像頭位置相對固定。在平行光下進(jìn)行拍攝,拍攝過程中光照條件不發(fā)生劇烈改變。
對指針式儀表進(jìn)行讀數(shù)識別分為3個部分——圖像預(yù)處理、圖像處理以及圖像識別。通過上述步驟完成指針?biāo)谥本€的提取,利用指針?biāo)谥本€與指針式儀表刻度之間的對應(yīng)關(guān)系,實現(xiàn)指針式儀表讀數(shù)識別。
圖像預(yù)處理包括圖像灰度處理和圖像二值化。
1.1.1 圖像灰度處理
待識別圖像為彩色圖像,為提高算法效率,需先將圖像進(jìn)行灰度化處理。利用灰度處理將彩色圖像轉(zhuǎn)換成灰度圖像,采用加權(quán)平均法進(jìn)行灰度處理。RGB色彩格式表明圖像色彩由紅、藍(lán)、綠3個基本顏色構(gòu)成,根據(jù)人眼對3種顏色敏感程度的強弱順序為綠>藍(lán)>紅,即綠色通道權(quán)值為最大,紅色通道權(quán)值最小[9]。
對圖形進(jìn)行灰度處理,公式為:
經(jīng)過灰度處理的圖像最顯著的變化是將原有24位真彩色圖像轉(zhuǎn)換為8位灰度圖,數(shù)據(jù)量減少為原來的1/3,同時并未減少與讀數(shù)識別有關(guān)的關(guān)鍵信息。指針式儀表圖像灰度處理結(jié)果如圖2所示。
圖2 指針式儀表灰度處理結(jié)果
1.1.2 圖像二值化處理
圖像二值化是在灰度圖像的基礎(chǔ)上,設(shè)置合理的閾值將圖像分為前景和背景兩部分。具體做法為遍歷圖像所有像素值,以閾值為判斷條件。當(dāng)圖像點像素值大于該閾值時,該圖像點賦值為0xFF;當(dāng)圖像點像素值小于閾值時,該圖像點像素值賦值為0。圖像表現(xiàn)為黑白效果。圖像二值化可去除一些干擾因素,與識別相關(guān)的有用信息不會丟失。二值化處理可突出前景目標(biāo),將識別對象與背景分離。
根據(jù)圖像處理知識可知,紅、黃、黑三色在任何光線條件下灰度值均小于白色。同時,在不同光線條件下對該儀表進(jìn)行多次拍攝實驗發(fā)現(xiàn),受指針材質(zhì)影響,指針的亮度略高于表盤的其他部分。在進(jìn)行圖像灰度處理后,指針的灰度值也會略高于表盤中其他區(qū)域的灰度值。所以,將閾值設(shè)定較高有助于分割圖像。指針式儀表圖像二值化結(jié)果如圖3所示。
由圖3可知,指針會與白色刻度塊和字符發(fā)生重疊。利用圖像形態(tài)學(xué)處理進(jìn)一步突出指針,在此基礎(chǔ)上進(jìn)行指針提取。
1.2.1 指針區(qū)域分割
當(dāng)指針頂部與白色刻度區(qū)域重合時,指針一側(cè)連接部位較狹窄;當(dāng)字符與指針重疊時,指針周圍會出現(xiàn)細(xì)小的黏連像素。采用圖像形態(tài)學(xué)開運算與圖像腐蝕處理實現(xiàn)指針圖像分離。
圖3 指針式儀表二值化圖像
圖像形態(tài)學(xué)處理中,無論進(jìn)行何種圖像處理都需要設(shè)置結(jié)構(gòu)元。結(jié)構(gòu)元是圖像處理的最小單元,圖像與結(jié)構(gòu)元進(jìn)行卷積運算實現(xiàn)圖像開運算,結(jié)構(gòu)元與圖像進(jìn)行與運算來實現(xiàn)圖像腐蝕操作。本文利用半徑大小為1(像素)的圓形結(jié)構(gòu)元(‘disk’)進(jìn)行圖像形態(tài)學(xué)處理。形態(tài)學(xué)開運算常用來做消噪處理,可選擇性地保留目標(biāo)圖像中符合結(jié)構(gòu)原色幾何性質(zhì)的部分,過濾掉殘損的部分[10]。圖像腐蝕是圖像由外向內(nèi)收縮的過程,同時若目標(biāo)區(qū)域中含有細(xì)小連接部分,可通過腐蝕處理對區(qū)域進(jìn)行分割。指針圖像分割結(jié)果如圖4所示。
圖4 指針圖像分割結(jié)果
1.2.2 指針提取
首先利用連通域法提取圖像指針,并標(biāo)記為不同的顏色,如圖5所示。確定圖像連通域后,利用特征進(jìn)行指針提取。
圖5 連通域法處理結(jié)果
對圖像中各個區(qū)域進(jìn)行面積統(tǒng)計,確定指針區(qū)域面積值。經(jīng)多次試驗發(fā)現(xiàn),指針區(qū)域面積分布在400~500(像素個數(shù))之間,且指針外接矩形的長寬比變化較小。根據(jù)上述特征提取指針像素分布區(qū)域,提取結(jié)果如圖6所示。
圖6 指針區(qū)域提取結(jié)果
由圖6可見,經(jīng)過連通域和特征提取處理,圖像中干擾被去除,僅存在指針像素區(qū)域。
在提取到指針后,首先進(jìn)行骨架提取,并利用Hough變換找到指針?biāo)谥本€。找到直線與水平向右方向夾角與刻度的對應(yīng)關(guān)系,實現(xiàn)儀表讀數(shù)識別。
1.3.1 指針骨架提取
利用骨架提取算法進(jìn)行指針骨架提取,從而確定指針?biāo)谥本€。根據(jù)指針骨架圖像確定指針?biāo)谥本€的斜率,找到斜率與讀數(shù)間的對應(yīng)關(guān)系,實現(xiàn)讀數(shù)識別。
根據(jù)指針的形狀特征,指針具有灰度中線對稱性,可應(yīng)用基于迭代的拓?fù)浼?xì)化算法實現(xiàn)指針中軸線的提取。本質(zhì)是由外向內(nèi)逐層腐蝕圖像,直至圖像中僅存單像素指針骨架。圖像骨架提取要滿足兩個條件:(1)要保證圖形的連續(xù)性;(2)應(yīng)盡可能避免圖像骨架提取過程中產(chǎn)生毛刺。指針骨架提取結(jié)果如圖7所示。
圖7 指針骨架提取結(jié)果
1.3.2 指針直線提取
經(jīng)過上述圖像處理后,圖像中僅剩余儀表的指針骨架,需先確定指針?biāo)谥本€。指針骨架形狀特征表現(xiàn)為連續(xù)直線,可采用直線識別算法實現(xiàn)指針提取。現(xiàn)有大量算法可進(jìn)行直線檢測,如鏈碼算法、神經(jīng)元DOG函數(shù)以及最小二乘法直線擬合等。但是,現(xiàn)階段直線識別應(yīng)用最廣泛、算法最成熟的仍然是霍夫(Hough)變換。所以,本文采用霍夫變換實現(xiàn)指針直線提取。
霍夫變換是基于點與線的對偶性,將像素點在直角坐標(biāo)系中的坐標(biāo)轉(zhuǎn)換至參數(shù)空間求極值點的過程[11]。直線在直角坐標(biāo)系中可以用y=kx+b,其中k表示斜率,b表示截距。對于圖像中任意點A(xn,yn),都可以表示為b=-kxn+yn,表明圖像中任意一點A’(xj,yj)都可以在參數(shù)空間中找到一條對應(yīng)直線。同樣,直角坐標(biāo)系中直線上的點均滿足上述關(guān)系。根據(jù)對偶性原則,參數(shù)空間中的這些直線相交于一點,利用霍夫變換確定參數(shù)空間中的交點坐標(biāo)便可實現(xiàn)直線檢測。
霍夫變換利用圖像坐標(biāo)空間與參數(shù)空間的對偶性,針?biāo)谥本€的提取結(jié)果如圖8所示。經(jīng)過霍夫變換后,指針骨架邊緣變得更為光滑,也去掉了指針骨架提取時殘留的毛刺像素。
1.3.3 指針讀數(shù)計算
本文側(cè)重點是關(guān)于指針式儀表讀數(shù)識別的研究,讀數(shù)前需要將表盤校正至水平方向。由圖1所示,圖像像素點坐標(biāo)已知,且拍攝過程中儀表位置不會發(fā)生明顯變化。所以,在進(jìn)行圖像識別前預(yù)先確定表盤中心大致位置,根據(jù)圓心將表盤分成4個區(qū)域,如圖9所示。
圖8 指針?biāo)谥本€提取結(jié)果圖
圖9 表盤區(qū)域劃分
當(dāng)指針?biāo)谥本€落在每個區(qū)域時,直線的起點與終點相繼確定:靠近表盤中心的端點為(X1,Y1);遠(yuǎn)離表盤中心的端點為直線終點坐標(biāo)為(X2,Y2)。因此,指針?biāo)谥本€在4個象限的對應(yīng)角度值如表1所示。
表1 指針位于不同區(qū)域?qū)?yīng)的角度值
表1中,α表示指針?biāo)谥本€與水平的夾角,取值范圍是0°~90°。
如圖10所示,圖中M0表示儀表起始刻度,M2表示儀表終止刻度,M對應(yīng)儀表總量程,M1為測量的儀表讀數(shù)。首先利用HOUGH變換測量儀表總量程對應(yīng)的角度,記為θ。然后再測量起始刻度與指針?biāo)谖恢弥g的角度,記為β。這樣,儀表讀數(shù)可由公式(2)表示:
將人工讀數(shù)識別結(jié)果與圖像識別程序識別結(jié)果進(jìn)行對比分析,如表2所示。
圖10 儀表讀數(shù)示意圖
表2 不同位置的指針儀表結(jié)果
識別數(shù)據(jù)顯示,該識別儀表算法測得的指針式儀表讀數(shù)與實際目測結(jié)果偏差較小,最大偏差為0.012,說明設(shè)計的算法具有較好的儀表讀數(shù)識別性能。
以飛機迎角表為例,對飛機上的單指針儀表進(jìn)行以飛機迎角表為例對飛機上的單指針儀表進(jìn)行讀數(shù)識別,利用圖像灰度值特點,突出前景目標(biāo)。經(jīng)過圖像形態(tài)學(xué)開運算去除指針周圍的像素黏連。利用連通域法結(jié)合指針像素特征進(jìn)行指針提取,對指針式儀表盤進(jìn)行區(qū)域劃分,得出指針的方向;利用霍夫變換檢測指針?biāo)谥本€的對應(yīng)角度,根據(jù)角度與儀表讀數(shù)對應(yīng)關(guān)系完成指針式儀表讀數(shù)識別。通過實驗表明,測試結(jié)果與指針式儀表實際讀數(shù)誤差較小,表明該方法在一定條件下有效、可行。但該算法還存在不足的地方,如沒有考慮光線條件對儀表讀數(shù)識別的影響、圖像發(fā)生旋轉(zhuǎn)時的圖像校正、以及在識別之前需要預(yù)先確定儀表起始刻度位置對應(yīng)的角度,因此對于上述幾種情況還需進(jìn)一步研究。