吳禹倫,彭衛東
(中國民用航空飛行學院 航空工程學院,四川 廣漢 618307)
隨著計算機視覺技術的廣泛應用,儀表讀數圖像識別技術廣泛應用于電氣系統、汽車無人駕駛等領域,而對飛機駕駛艙中的儀表卻少有涉及。利用圖像識別技術對飛機儀表進行讀數識別,大大精簡了飛行員監視飛機飛行狀態所需要的精力和時間。現階段,已有很多學者對指針式儀表讀數識別進行了研究。目前,常見的指針式儀表自動判讀方法有差影法[1-3]、霍夫變換法[4-8]等。李治瑋等[1]利用最大灰度差構造無指針儀表圖像模板,通過差影法將待測圖像與模板圖相減確定指針位置,但識別結果準確性受光照影響嚴重。利用霍夫變換法可提取指針中軸線,求得指針與零刻度線的夾角。該方法受光線干擾小,識別結果不易受圖像中噪聲點的影響,具有較強的魯棒性。本文針對某一特征的指針儀表進行識別,具體表現形式為:表盤背景固定,刻度均勻分布在指針四周;指針形狀為等腰三角形,指針位置跟隨飛機狀態發生改變。對圖像進行二值化、形態學處理,并應用連通域法提取到清晰的指針圖像,再基于霍夫變換計算得到指針與起始刻度夾角,利用角度法實現儀表讀數的自動判讀。
待識別圖像的顏色格式是RGB色彩格式。以飛機迎角表為例,原始圖像如圖1所示。本文以識別指針讀數為研究重點,先決條件是儀表水平放置,且指針式儀表與攝像頭位置相對固定。在平行光下進行拍攝,拍攝過程中光照條件不發生劇烈改變。
對指針式儀表進行讀數識別分為3個部分——圖像預處理、圖像處理以及圖像識別。通過上述步驟完成指針所在直線的提取,利用指針所在直線與指針式儀表刻度之間的對應關系,實現指針式儀表讀數識別。
圖像預處理包括圖像灰度處理和圖像二值化。
1.1.1 圖像灰度處理
待識別圖像為彩色圖像,為提高算法效率,需先將圖像進行灰度化處理。利用灰度處理將彩色圖像轉換成灰度圖像,采用加權平均法進行灰度處理。RGB色彩格式表明圖像色彩由紅、藍、綠3個基本顏色構成,根據人眼對3種顏色敏感程度的強弱順序為綠>藍>紅,即綠色通道權值為最大,紅色通道權值最小[9]。
對圖形進行灰度處理,公式為:
經過灰度處理的圖像最顯著的變化是將原有24位真彩色圖像轉換為8位灰度圖,數據量減少為原來的1/3,同時并未減少與讀數識別有關的關鍵信息。指針式儀表圖像灰度處理結果如圖2所示。

圖2 指針式儀表灰度處理結果
1.1.2 圖像二值化處理
圖像二值化是在灰度圖像的基礎上,設置合理的閾值將圖像分為前景和背景兩部分。具體做法為遍歷圖像所有像素值,以閾值為判斷條件。當圖像點像素值大于該閾值時,該圖像點賦值為0xFF;當圖像點像素值小于閾值時,該圖像點像素值賦值為0。圖像表現為黑白效果。圖像二值化可去除一些干擾因素,與識別相關的有用信息不會丟失。二值化處理可突出前景目標,將識別對象與背景分離。
根據圖像處理知識可知,紅、黃、黑三色在任何光線條件下灰度值均小于白色。同時,在不同光線條件下對該儀表進行多次拍攝實驗發現,受指針材質影響,指針的亮度略高于表盤的其他部分。在進行圖像灰度處理后,指針的灰度值也會略高于表盤中其他區域的灰度值。所以,將閾值設定較高有助于分割圖像。指針式儀表圖像二值化結果如圖3所示。
由圖3可知,指針會與白色刻度塊和字符發生重疊。利用圖像形態學處理進一步突出指針,在此基礎上進行指針提取。
1.2.1 指針區域分割
當指針頂部與白色刻度區域重合時,指針一側連接部位較狹窄;當字符與指針重疊時,指針周圍會出現細小的黏連像素。采用圖像形態學開運算與圖像腐蝕處理實現指針圖像分離。

圖3 指針式儀表二值化圖像
圖像形態學處理中,無論進行何種圖像處理都需要設置結構元。結構元是圖像處理的最小單元,圖像與結構元進行卷積運算實現圖像開運算,結構元與圖像進行與運算來實現圖像腐蝕操作。本文利用半徑大小為1(像素)的圓形結構元(‘disk’)進行圖像形態學處理。形態學開運算常用來做消噪處理,可選擇性地保留目標圖像中符合結構原色幾何性質的部分,過濾掉殘損的部分[10]。圖像腐蝕是圖像由外向內收縮的過程,同時若目標區域中含有細小連接部分,可通過腐蝕處理對區域進行分割。指針圖像分割結果如圖4所示。

圖4 指針圖像分割結果
1.2.2 指針提取
首先利用連通域法提取圖像指針,并標記為不同的顏色,如圖5所示。確定圖像連通域后,利用特征進行指針提取。

圖5 連通域法處理結果
對圖像中各個區域進行面積統計,確定指針區域面積值。經多次試驗發現,指針區域面積分布在400~500(像素個數)之間,且指針外接矩形的長寬比變化較小。根據上述特征提取指針像素分布區域,提取結果如圖6所示。

圖6 指針區域提取結果
由圖6可見,經過連通域和特征提取處理,圖像中干擾被去除,僅存在指針像素區域。
在提取到指針后,首先進行骨架提取,并利用Hough變換找到指針所在直線。找到直線與水平向右方向夾角與刻度的對應關系,實現儀表讀數識別。
1.3.1 指針骨架提取
利用骨架提取算法進行指針骨架提取,從而確定指針所在直線。根據指針骨架圖像確定指針所在直線的斜率,找到斜率與讀數間的對應關系,實現讀數識別。
根據指針的形狀特征,指針具有灰度中線對稱性,可應用基于迭代的拓撲細化算法實現指針中軸線的提取。本質是由外向內逐層腐蝕圖像,直至圖像中僅存單像素指針骨架。圖像骨架提取要滿足兩個條件:(1)要保證圖形的連續性;(2)應盡可能避免圖像骨架提取過程中產生毛刺。指針骨架提取結果如圖7所示。

圖7 指針骨架提取結果
1.3.2 指針直線提取
經過上述圖像處理后,圖像中僅剩余儀表的指針骨架,需先確定指針所在直線。指針骨架形狀特征表現為連續直線,可采用直線識別算法實現指針提取。現有大量算法可進行直線檢測,如鏈碼算法、神經元DOG函數以及最小二乘法直線擬合等。但是,現階段直線識別應用最廣泛、算法最成熟的仍然是霍夫(Hough)變換。所以,本文采用霍夫變換實現指針直線提取。
霍夫變換是基于點與線的對偶性,將像素點在直角坐標系中的坐標轉換至參數空間求極值點的過程[11]。直線在直角坐標系中可以用y=kx+b,其中k表示斜率,b表示截距。對于圖像中任意點A(xn,yn),都可以表示為b=-kxn+yn,表明圖像中任意一點A’(xj,yj)都可以在參數空間中找到一條對應直線。同樣,直角坐標系中直線上的點均滿足上述關系。根據對偶性原則,參數空間中的這些直線相交于一點,利用霍夫變換確定參數空間中的交點坐標便可實現直線檢測。
霍夫變換利用圖像坐標空間與參數空間的對偶性,針所在直線的提取結果如圖8所示。經過霍夫變換后,指針骨架邊緣變得更為光滑,也去掉了指針骨架提取時殘留的毛刺像素。
1.3.3 指針讀數計算
本文側重點是關于指針式儀表讀數識別的研究,讀數前需要將表盤校正至水平方向。由圖1所示,圖像像素點坐標已知,且拍攝過程中儀表位置不會發生明顯變化。所以,在進行圖像識別前預先確定表盤中心大致位置,根據圓心將表盤分成4個區域,如圖9所示。

圖8 指針所在直線提取結果圖

圖9 表盤區域劃分
當指針所在直線落在每個區域時,直線的起點與終點相繼確定:靠近表盤中心的端點為(X1,Y1);遠離表盤中心的端點為直線終點坐標為(X2,Y2)。因此,指針所在直線在4個象限的對應角度值如表1所示。

表1 指針位于不同區域對應的角度值
表1中,α表示指針所在直線與水平的夾角,取值范圍是0°~90°。
如圖10所示,圖中M0表示儀表起始刻度,M2表示儀表終止刻度,M對應儀表總量程,M1為測量的儀表讀數。首先利用HOUGH變換測量儀表總量程對應的角度,記為θ。然后再測量起始刻度與指針所在位置之間的角度,記為β。這樣,儀表讀數可由公式(2)表示:

將人工讀數識別結果與圖像識別程序識別結果進行對比分析,如表2所示。

圖10 儀表讀數示意圖

表2 不同位置的指針儀表結果
識別數據顯示,該識別儀表算法測得的指針式儀表讀數與實際目測結果偏差較小,最大偏差為0.012,說明設計的算法具有較好的儀表讀數識別性能。
以飛機迎角表為例,對飛機上的單指針儀表進行以飛機迎角表為例對飛機上的單指針儀表進行讀數識別,利用圖像灰度值特點,突出前景目標。經過圖像形態學開運算去除指針周圍的像素黏連。利用連通域法結合指針像素特征進行指針提取,對指針式儀表盤進行區域劃分,得出指針的方向;利用霍夫變換檢測指針所在直線的對應角度,根據角度與儀表讀數對應關系完成指針式儀表讀數識別。通過實驗表明,測試結果與指針式儀表實際讀數誤差較小,表明該方法在一定條件下有效、可行。但該算法還存在不足的地方,如沒有考慮光線條件對儀表讀數識別的影響、圖像發生旋轉時的圖像校正、以及在識別之前需要預先確定儀表起始刻度位置對應的角度,因此對于上述幾種情況還需進一步研究。