向友君 江文 阮榮鉅
(華南理工大學(xué) 電子與信息學(xué)院,廣東 廣州 510640)
在電網(wǎng)運(yùn)維巡檢中,以人工巡檢、手動(dòng)抄表、人工記錄模式對(duì)變壓器的油位進(jìn)行檢定,存在耗時(shí)耗力、自動(dòng)化程度低以及誤差率高等問題。隨著機(jī)器人技術(shù)的快速發(fā)展,巡檢機(jī)器人可代替人工,通過攝像機(jī)或紅外熱像儀抓取設(shè)備圖像,最終對(duì)獲取的圖像進(jìn)行處理[1- 2]。
雖然數(shù)字式儀表的應(yīng)用已相當(dāng)成熟,但考慮到電磁干擾、油污、灰塵等環(huán)境因素的影響,變電站等工業(yè)環(huán)境中并不適宜使用數(shù)字式儀表。指針式儀表具有抗電磁干擾能力強(qiáng)、精度高、價(jià)格低等優(yōu)點(diǎn),在相當(dāng)長的時(shí)間內(nèi)依然是工業(yè)生產(chǎn)中的主要測量儀表。由于指針式儀表無法輸出數(shù)字信號(hào),所以讀數(shù)只能通過人工讀取,具有工作量大、效率低、出錯(cuò)率高的缺點(diǎn),而且安裝在高溫高壓等環(huán)境中的儀表不便觀察[3- 4]。隨著國家電網(wǎng)對(duì)無人值守變電站的推廣,實(shí)現(xiàn)指針式儀表示數(shù)識(shí)別的自動(dòng)化得到了廣泛關(guān)注。
光照變化、儀表反射、拍攝角度、表盤自身信息干擾等問題一直影響著指針式儀表的讀數(shù)精度,國內(nèi)外學(xué)者針對(duì)指針式儀表讀數(shù)的計(jì)算進(jìn)行了大量的研究。張文杰等[5]針對(duì)光照變化影響指針式儀表讀數(shù)的問題,提出了一種基于視覺顯著性區(qū)域檢測先驗(yàn)知識(shí)來獲得指針區(qū)域的方法,再通過旋轉(zhuǎn)儀表對(duì)比指針投影最大值,獲取指針與橫軸的夾角,計(jì)算儀表讀數(shù)。Zhang等[6]將儀表盤中每一個(gè)包含數(shù)字的刻度區(qū)間通過梯度金字塔算法單獨(dú)分割并編號(hào),用支持向量機(jī)訓(xùn)練分類,識(shí)別出圖片中最接近指針的類別,通過三點(diǎn)成一直線理論消除了因表盤微小差異而引起的誤差,得到了較高的準(zhǔn)確率。Kim等[7]提出了基于形態(tài)學(xué)的處理方法,但過程較為繁瑣,難以實(shí)際運(yùn)用于工業(yè)生產(chǎn)中。李巍等[8]通過一種以圖像金字塔方法來提取儀表圖像特征,并以線性支持向量機(jī)來分類的預(yù)處理方法,減小了陰影因素的影響,從而提高了讀數(shù)的精確度。
相較于矩形表盤,圓形表盤的示數(shù)識(shí)別難度較大,并且拍攝角度一直是影響指針式儀表讀數(shù)精度的重要因素,所以文中重點(diǎn)研究拍攝偏角過大情況下的圓形油位計(jì)圓形表盤。目前,大多數(shù)的油位計(jì)示數(shù)識(shí)別方法還是基于表盤拍攝角度較為正面的情況,如圖1(a)所示。油位計(jì)圖像中包含的信息量很大,有表框、刻度、指針、文字標(biāo)識(shí),部分儀表的外框上還有一些固定物件,相當(dāng)多的信息并不是讀數(shù)的關(guān)鍵信息。事實(shí)上,如果油位計(jì)拍攝角度傾斜較大,如圖1(b)所示,此時(shí)表盤形變?yōu)榻频臋E圓,刻度與刻度之間的間隔也不再統(tǒng)一,會(huì)對(duì)讀數(shù)的計(jì)算產(chǎn)生很大影響。有鑒于此,文中提出一種基于刻度準(zhǔn)確定位的儀表示數(shù)識(shí)別方法,該方法無需預(yù)先添加任何表盤信息,通過粗識(shí)別與細(xì)識(shí)別精確定位出刻度的位置,將擬合刻度的圓心到指針直線的投影點(diǎn)作為計(jì)算用圓心,克服了傳統(tǒng)儀表示數(shù)識(shí)別方法在傾斜角較大時(shí)仍然使用指針中心線必過儀表轉(zhuǎn)動(dòng)軸心的約束條件的誤區(qū),從而優(yōu)化了拍攝傾角較大時(shí)的指針定位問題,進(jìn)一步減小了后續(xù)計(jì)算的誤差,整個(gè)過程僅使用刻度與指針這兩個(gè)必要特征來計(jì)算表盤讀數(shù)。
圖1 油位計(jì)圖片F(xiàn)ig.1 Photos of oil-level meters
基于刻度準(zhǔn)確定位的指針式儀表示數(shù)識(shí)別方法包括預(yù)處理、指針檢測、刻度定位、油位計(jì)表盤中心擬合與儀表讀數(shù)計(jì)算5個(gè)部分。該方法無需預(yù)先添加任何表盤信息,算法流程如圖2所示。整個(gè)流程分為兩步且同時(shí)進(jìn)行——第1步,將油位計(jì)圖像進(jìn)行灰度化和邊緣檢測等預(yù)處理,再通過指針檢測獲得油位計(jì)的指針信息,其中指針檢測又包括概率霍夫變換檢測和指針位置的計(jì)算;第2步,將原圖進(jìn)行灰度化、二值化和膨脹腐蝕等預(yù)處理,再經(jīng)過刻度定位(刻度定位包括粗識(shí)別和細(xì)識(shí)別),使得預(yù)處理后的圖像先經(jīng)過粗識(shí)別粗略定位出所有可能包含油位計(jì)刻度的區(qū)域,再單獨(dú)截取出粗識(shí)別的結(jié)果并進(jìn)行細(xì)識(shí)別,定位出刻度,獲得計(jì)算所需要的圓心信息和刻度信息,最終結(jié)合這兩步計(jì)算出讀數(shù)。
圖2 文中算法流程Fig.2 Flow chart of the proposed algorithm
在用無人巡檢機(jī)拍攝油位計(jì)圖片時(shí),由于表盤自身信息干擾或光照變化等因素的影響,無法準(zhǔn)確提取出有用的儀表信息,從而會(huì)影響儀表讀數(shù)的計(jì)算。因此,在提取指針區(qū)域之前必須對(duì)圖像進(jìn)行預(yù)處理以去除部分噪聲,為后續(xù)指針識(shí)別和刻度定位信息的精確提取提供清晰的圖像,以獲得精度更高的指針式儀表讀數(shù)。
指針式儀表通常暴露在室外,再加上工業(yè)生產(chǎn)中的光線變化及油位計(jì)自身表框或周圍儀器的遮擋產(chǎn)生的陰影,巡檢機(jī)器人采集到的圖像很可能是部分陰影、部分光亮的表盤圖片。為了后續(xù)精確定位刻度和提高計(jì)算效率,需要對(duì)彩色的油位計(jì)圖像進(jìn)行二值化處理,去除對(duì)提取表針有干涉影響的背景。圖像的二值化處理就是把圖像中的像素按照給定的閾值分化成黑白兩種顏色。二值化處理后的油位計(jì)如圖3所示。
圖3 油位計(jì)的二值圖Fig.3 Binary image of oil-level meter
為消除表盤噪聲點(diǎn)和非實(shí)心區(qū)域,同時(shí)盡量避免對(duì)表盤內(nèi)部的實(shí)心刻度與指針信息造成影響,文中采用形態(tài)學(xué)處理中的膨脹和腐蝕操作對(duì)二值化表盤圖像進(jìn)行預(yù)處理,具體步驟如下:首先對(duì)二值化圖像的白像素進(jìn)行膨脹,消除孤立噪聲點(diǎn)和非黑的實(shí)心圖像區(qū)域;然后對(duì)膨脹后的圖像進(jìn)行腐蝕,將被壓縮的黑色部分近似恢復(fù)到原來的大小,還原表盤有效信息。膨脹腐蝕效果如圖4所示。
圖4 二值圖膨脹腐蝕后的效果Fig.4 A binary picture going through expansion and corrosion
為了后續(xù)表盤指針的精確識(shí)別,需先將表盤圖像轉(zhuǎn)化為灰度圖后再進(jìn)行邊緣檢測。目前較為主流的邊緣檢測算子主要有Canny算子[9]、Laplace算子[10]、Roberts算子[11]、Sobel算子[12]等。而在所有的邊緣檢測算法中,Canny邊緣檢測[13]不但定義嚴(yán)格,還具有實(shí)現(xiàn)過程簡單、檢測可靠性高等優(yōu)點(diǎn),因此文中選擇Canny檢測算法來進(jìn)行油位計(jì)圖像的邊緣檢測,結(jié)果如圖5所示。相比于其他3種邊緣檢測算法,Canny算法的檢測結(jié)果更加連續(xù),保留了原圖中更多的細(xì)節(jié),更適合后續(xù)處理中所用的方法。
圖5 4種不同算子得到的油位計(jì)邊緣檢測結(jié)果
通常指針直線檢測都是采用霍夫變換進(jìn)行的,然后直接選擇矩形刻度的幾何中心來計(jì)算表盤讀數(shù)。在拍攝角度傾斜過大的情況下,矩形寬刻度將會(huì)被部分遮擋,使得刻度大小不一,且直接選擇矩形刻度的幾何中心計(jì)算刻度時(shí)會(huì)產(chǎn)生較大的誤差,所以文中先用矩形刻度的幾何中心擬合出一個(gè)粗略的圓心,然后選擇每個(gè)刻度距粗略圓心較近的兩個(gè)角點(diǎn)的中點(diǎn)來計(jì)算油位計(jì)讀數(shù),同時(shí)對(duì)該粗略圓心進(jìn)行修正。
霍夫變換[14- 16]一直是直線檢測中比較流行的方法,其通過兩個(gè)坐標(biāo)空間之間的變換,將圖像中直線上的所有點(diǎn)都在變換空間的某個(gè)點(diǎn)上形成峰值。但是傳統(tǒng)的霍夫變換無法檢測出油位計(jì)指針的方向。文中采用累計(jì)概率霍夫變換(Progressive Probabilistic Hough Transform,PPHT)[17]來提取指針。累計(jì)概率霍夫變換算法是標(biāo)準(zhǔn)霍夫變換算法的一個(gè)改進(jìn),它在一定的范圍內(nèi)進(jìn)行霍夫變換,算出獨(dú)立線段的范圍和方向,可以實(shí)質(zhì)性地減少計(jì)算時(shí)間,運(yùn)行效率很高。由于油位表的指針較粗,將檢測出兩條線段,并且累計(jì)概率霍夫變換檢測出的結(jié)果是一條直線上的兩個(gè)點(diǎn),這兩條直線的交點(diǎn)即為指針針尖,指針的指向即為從圓心到針尖的方向。文中采取斜率為這兩條直線斜率的平均值且穿過針尖的直線作為該油位計(jì)指針。累計(jì)概率霍夫變換檢測是在油位計(jì)邊緣檢測的圖上進(jìn)行的,但是為了更顯著地顯示出累計(jì)概率霍夫變換的結(jié)果,文中將檢測結(jié)果顯示在原儀表圖上,如圖6所示。圖6中共有4個(gè)點(diǎn),這4個(gè)點(diǎn)即為指針累計(jì)概率霍夫變換檢測的兩側(cè)直線的結(jié)果,圖中所示的直線是穿過指針兩側(cè)直線交點(diǎn)且斜率為指針兩側(cè)直線斜率的平均值的直線,可認(rèn)為這條直線是油位計(jì)指針?biāo)诘闹本€。
圖6 油位計(jì)的累計(jì)概率霍夫變換檢測結(jié)果Fig.6 PPHT detection result of for oil-level meter
在識(shí)別傾斜角過大情況下獲得的油位計(jì)讀數(shù)時(shí),由于表盤內(nèi)部信息(數(shù)字、符號(hào)、儀表編號(hào)、生產(chǎn)廠商等)的干擾,且矩形刻度并非水平,自身的旋轉(zhuǎn)角度各不相同,使用傳統(tǒng)方法在整個(gè)油位計(jì)表盤的圖像中直接定位出油位計(jì)刻度位置較為困難。為此,文中提出一個(gè)先粗識(shí)別再精確識(shí)別并定位出刻度的方法,在識(shí)別傾斜角過大情況下獲得的油位計(jì)示數(shù)時(shí),也能準(zhǔn)確地定位出油位計(jì)刻度的位置,并提取出刻度中更有利于抗角度干擾的后續(xù)計(jì)算讀數(shù)所需的信息。
首先對(duì)油位計(jì)刻度進(jìn)行粗識(shí)別,在膨脹腐蝕結(jié)果中尋找各個(gè)閉合形狀的邊緣點(diǎn)集,判斷各個(gè)閉合區(qū)域的大小,設(shè)定最大閾值和最小閾值,將面積不屬于該閾值范圍內(nèi)的區(qū)域過濾掉,然后求出該區(qū)域的最小外接矩形,將最小外接矩形的中心坐標(biāo)保存在一個(gè)列表中。粗識(shí)別的結(jié)果如圖7所示。此時(shí)保留的中心坐標(biāo)包括了刻度外接矩形的中心坐標(biāo)和一些干擾信息的中心坐標(biāo)。為了去除這些干擾信息,以粗識(shí)別獲得的最小外接矩形中心繼續(xù)作為中心,略微擴(kuò)大矩形框的長與寬,在對(duì)應(yīng)表盤原圖中截取如圖8(a)所示的圖片。對(duì)截取的圖片使用Harris角點(diǎn)檢測方法[18]進(jìn)行矩形檢測,排除掉角點(diǎn)過多和角點(diǎn)無法形成矩形的圖,得到真正的刻度。Harris角點(diǎn)檢測結(jié)果如圖8(b)所示。所得矩形刻度4個(gè)角點(diǎn)中,距離圓心較近的兩個(gè)角點(diǎn)所對(duì)應(yīng)線段的中點(diǎn)用于后續(xù)油位計(jì)讀數(shù)的計(jì)算。
圖7 油位計(jì)粗識(shí)別結(jié)果Fig.7 Result of coarse recognition of oil-level meter
圖8 截取的粗識(shí)別出的部分圖片及其Harris角點(diǎn)檢測結(jié)果
在精確定位刻度之后,先用所有矩形刻度的幾何中心擬合出一個(gè)粗略的圓心,獲取每個(gè)矩形刻度的4個(gè)角點(diǎn)與該圓心的距離,距圓心最短的兩個(gè)角點(diǎn)的連線中點(diǎn)構(gòu)成一組坐標(biāo)點(diǎn)。這組坐標(biāo)有一個(gè)共同點(diǎn),即該組坐標(biāo)全部近似位于一個(gè)橢圓上,滿足以下關(guān)系:
x2+Axy+By2+Cx+Dy+E=0
(1)
式中,A、B、C、D、E為橢圓的未知參數(shù)。通過最小二乘法對(duì)該組坐標(biāo)進(jìn)行擬合,得到目標(biāo)橢圓,因此可設(shè)置目標(biāo)函數(shù)F如下:
Cxi+Dyi+E)2
(2)
由于有A、B、C、D、E共5個(gè)未知數(shù),所以要求的采樣點(diǎn)至少為5個(gè),式中N為采樣點(diǎn)個(gè)數(shù)。
要使目標(biāo)函數(shù)F最小,即需
(3)
可得圓心方程為
(4)
設(shè)滿足上述目標(biāo)函數(shù)的目標(biāo)橢圓圓心為(xc,yc)。擬合的結(jié)果如圖9所示。
圖9 擬合的圓心Fig.9 Fitted center
在拍攝傾角過大時(shí),擬合得到的橢圓圓心與指針并不在一條直線上,若將其直接用于計(jì)算讀數(shù),獲取的油位計(jì)讀數(shù)誤差會(huì)較大。因此,選擇圓心(xc,yc)距累計(jì)概率霍夫檢測得到的指針直線方程上最近的一點(diǎn)作為真正用于計(jì)算的圓心(xt,yt)。
傳統(tǒng)方法[19]計(jì)算指針式儀表的讀數(shù)時(shí),一般通過Hough變換直線檢測來獲取正面圓盤圖像的指針角度信息,在獲得直線的角度后,即可計(jì)算出讀數(shù)。假設(shè):直線的角度為θ;最小刻度為kmin,對(duì)應(yīng)的角度為θmin;最大刻度為kmax,對(duì)應(yīng)的角度為θmax;讀數(shù)用k表示。那么,k可由以下公式計(jì)算:
(5)
但是,在拍攝角度傾斜較大的情況下,每兩個(gè)相鄰的刻度與圓心組成的夾角不是一個(gè)完全相等的值,也就是說,采集圖像中的指針與刻度線的角度差有的偏小有的偏大。這將導(dǎo)致指針相對(duì)于每個(gè)刻度線的讀數(shù)出現(xiàn)誤差。對(duì)于傳統(tǒng)方法,可以使用透視變換來對(duì)油位計(jì)的圖片先進(jìn)行校正。透視變換是將圖片投影到一個(gè)新的視平面,擁有較高的靈活性。結(jié)合油位計(jì)的先驗(yàn)信息(起始刻度傾角與末位刻度傾角),即可用傳統(tǒng)的方法計(jì)算出油位計(jì)的讀數(shù)。但該方法需要預(yù)先選取4個(gè)點(diǎn),而油位計(jì)表盤沒有合適的參考點(diǎn),因此需要手動(dòng)選出4個(gè)點(diǎn)來校正表盤。而文中提出的油位計(jì)示數(shù)識(shí)別方法,無需對(duì)表盤進(jìn)行校正也能準(zhǔn)確地計(jì)算出讀數(shù)。
文中讀數(shù)計(jì)算方法的步驟如下:
步驟1 計(jì)算所有矩形刻度精確定位后所得坐標(biāo)點(diǎn)與相鄰兩個(gè)坐標(biāo)點(diǎn)的距離并求和;
步驟2 根據(jù)油位計(jì)表盤信息可得:距離和最大的兩個(gè)點(diǎn)為0與10,且巡檢機(jī)器人拍得的圖片中0的縱坐標(biāo)大于10的縱坐標(biāo),即可求得0與10坐標(biāo);
步驟3 接著計(jì)算與0距離最近的點(diǎn),即為1,依次可將所有坐標(biāo)點(diǎn)對(duì)應(yīng)的數(shù)字一一求出;
步驟4 計(jì)算所有坐標(biāo)點(diǎn)與指針針尖的距離,距離針尖最近的兩個(gè)坐標(biāo)點(diǎn)記為k1與k2(k1+1=k2);
步驟5 使用式(6)計(jì)算表盤讀數(shù)k:
(6)
式中,d1、d2分別為k1、k2到指針?biāo)谥本€的距離,s1、s2分別為k1、k2與計(jì)算用圓心(xt,yt)的距離。參數(shù)位置如圖10所示。
在Window 10(處理器為Intel(R)Core(TM)i5-8500 CPU 3.00 GHz,內(nèi)存16 GB)系統(tǒng)下使用Python作為開發(fā)環(huán)境并對(duì)油位計(jì)圖像進(jìn)行處理。為了檢測算法的適用性和穩(wěn)定性,文中實(shí)驗(yàn)采用了不同儀表示數(shù)、不同光照條件、不同天氣環(huán)境下拍攝的傾斜角較大的指針式儀表圖像樣本共50幅,通過文中的儀表示數(shù)識(shí)別方法對(duì)指針式油位計(jì)示數(shù)進(jìn)行識(shí)別,總誤差率為0.92%。圖11所示為其中10幅樣本,表1為該10幅樣本對(duì)應(yīng)的真實(shí)值和采用3種方法分別得到的測試結(jié)果。由表1可知:傳統(tǒng)的角度計(jì)算方法在處理拍攝傾角較大的圖像的時(shí)候,誤差率高達(dá)8.55%;經(jīng)過透視變換后,傳統(tǒng)方法的誤差率降低了5.26個(gè)百分點(diǎn);文中方法所得結(jié)果與真實(shí)值的誤差率為0.86%。3個(gè)識(shí)別方法中,透視變換校正表盤的方法忽略了手動(dòng)選取參考點(diǎn)的時(shí)間,因此,從表1可看出,文中算法雖然增加了一些復(fù)雜度,但仍然可以滿足實(shí)際工程應(yīng)用中的需求。
圖11 10幅樣本表盤Fig.11 10 sample oil-level meters
表1 指針式油位表示數(shù)識(shí)別的實(shí)驗(yàn)結(jié)果
針對(duì)拍攝角度較大時(shí)傳統(tǒng)儀表示數(shù)識(shí)別方法計(jì)算精度較低的問題,文中提出了一種可以精確定位出刻度并識(shí)別對(duì)應(yīng)刻度的、基于刻度準(zhǔn)確定位的儀表示數(shù)識(shí)別方法。該方法不需要在識(shí)別示數(shù)前預(yù)先提取指針區(qū)域和定位指針中心線,僅使用刻度與指針這兩個(gè)必要信息特征來實(shí)現(xiàn)表盤讀數(shù)的計(jì)算。通過累計(jì)概率霍夫變換,既能檢測出更能代表指針的平均斜率直線,也能判斷出指針的指向。采用角點(diǎn)檢測后的近圓心坐標(biāo)點(diǎn)作為計(jì)算用坐標(biāo)點(diǎn),解決了刻度被部分遮擋情況下對(duì)整個(gè)油位計(jì)刻度定位難的問題。采用擬合圓心到指針直線的投影點(diǎn)作為計(jì)算用圓心,克服了傳統(tǒng)儀表示數(shù)識(shí)別方法在傾斜角較大時(shí)仍然使用指針中心線必過儀表轉(zhuǎn)動(dòng)軸心的約束條件的誤區(qū)。實(shí)驗(yàn)結(jié)果表明,該方法獲得的儀表讀數(shù)精度平均達(dá)到99.08%,較其他傳統(tǒng)算法更加穩(wěn)定可靠。
在極端拍攝傾角下,有些刻度將被徹底遮擋,這會(huì)對(duì)指針式儀表讀數(shù)產(chǎn)生很大的影響。在下一步研究中,將結(jié)合數(shù)字識(shí)別,研究極端拍攝傾角下刻度丟失時(shí)的儀表讀數(shù)計(jì)算問題,并將探索在水霧、雨滴、灰塵等遮擋所引起的表盤圖像模糊情況下的儀表自動(dòng)讀數(shù)問題。