秦 軒,馮 磊,梁慶華,張 偉
(1.上海交通大學(xué)機(jī)械與動(dòng)力工程學(xué)院,上海200240;2.國(guó)家電網(wǎng)江蘇省電力有限公司徐州供電公司,江蘇徐州221000)
隨著我國(guó)經(jīng)濟(jì)的持續(xù)快速發(fā)展,各行各業(yè)對(duì)電力的需求不斷增長(zhǎng),以人力為主的運(yùn)維模式已不能滿足實(shí)際需要,電力系統(tǒng)運(yùn)維模式向智能化、自動(dòng)化發(fā)展成為必然趨勢(shì)[1]。配電站作為電力系統(tǒng)的末端,其運(yùn)行質(zhì)量直接影響用戶對(duì)整體電網(wǎng)的滿意度[2]。研發(fā)配電站無(wú)人值守作業(yè)機(jī)器人代替人工完成數(shù)據(jù)采集、處理、巡檢和監(jiān)控等工作,可極大程度地節(jié)約人力成本并提高運(yùn)維工作效率。實(shí)現(xiàn)配電設(shè)備各類開(kāi)關(guān)和儀表的準(zhǔn)確識(shí)別是機(jī)器人開(kāi)展配電站各項(xiàng)工作的基礎(chǔ)。相較只需區(qū)分狀態(tài)的指示燈和開(kāi)關(guān)識(shí)別,需獲取指針讀數(shù)的電壓表及電流表等指針式儀表的識(shí)別更復(fù)雜和困難。
指針式儀表的讀數(shù)方法主要有距離法和角度法。距離法需檢測(cè)指針到臨近刻度線的距離,再通過(guò)刻度線的示數(shù)判斷讀數(shù)[3-4]。角度法需找到基準(zhǔn)線(一般為“0”刻度線和最大值刻度線)和指針中心線,通過(guò)兩兩夾角的比例關(guān)系計(jì)算讀數(shù)[5-6]。考慮到儀表上刻度線和刻度值較多且細(xì)小以及反光或指針遮擋會(huì)影響讀數(shù),本文采用角度法對(duì)指針式儀表進(jìn)行讀數(shù)。指針中心線的提取是角度法讀數(shù)的主要難點(diǎn)和研究熱點(diǎn)。文獻(xiàn)[7]提出一種基于區(qū)域生長(zhǎng)法的指針中心線提取算法,但在噪聲很大時(shí)存在過(guò)分割或者欠分割問(wèn)題。文獻(xiàn)[8]利用小波變換進(jìn)行邊緣檢測(cè),在一定程度上可抑制圖像噪聲,但只適用于細(xì)指針,對(duì)于粗指針會(huì)提取出雙邊緣,無(wú)法實(shí)現(xiàn)指針中心線定位。文獻(xiàn)[9]提出一種指針細(xì)化算法可有效解決粗指針的雙邊緣問(wèn)題,但其只考慮指針和表盤紋理的區(qū)分,未考慮環(huán)境光照影響。文獻(xiàn)[10]通過(guò)改進(jìn)的最大穩(wěn)定極值區(qū)域(Maximally Stable Extremal Region,MSER)算法和概率Hough 變換提取指針中心線并進(jìn)行角度計(jì)算,但MSER 算法難以區(qū)分灰度值相近的臨近區(qū)域。文獻(xiàn)[11]通過(guò)ORB算子實(shí)現(xiàn)圖像的傾斜矯正,再利用大律(Otsu)法和細(xì)化算法檢測(cè)指針中心線,但其未考慮反光和陰影區(qū)域的干擾。文獻(xiàn)[12]基于投票機(jī)制和輪廓圓形度思想定位表盤回轉(zhuǎn)中心,進(jìn)而利用指針必然通過(guò)回轉(zhuǎn)中心的約束提高指針中心線檢測(cè)精度,但方形指針表無(wú)法通過(guò)輪廓得到回轉(zhuǎn)中心。文獻(xiàn)[13]利用Canny 算子提取指針邊緣并結(jié)合概率Hough 變換和聚類方法擬合方形指針表中指針?biāo)谥本€,但其易受反光和陰影區(qū)域的影響。
由上述可知,目前國(guó)內(nèi)關(guān)于指針式儀表的識(shí)別研究集中于優(yōu)化指針定位方法,主要采用閾值分割結(jié)合直線檢測(cè),僅在理想的實(shí)驗(yàn)環(huán)境下才能實(shí)現(xiàn)。例如,需正對(duì)儀表拍攝且拍攝圖像清晰或反光及陰影未直接影響指針,進(jìn)而通過(guò)一步閾值分割分離出較為準(zhǔn)確完整的指針區(qū)域。但在實(shí)際應(yīng)用場(chǎng)景中,當(dāng)機(jī)器人在配電站內(nèi)巡檢時(shí),通常拍攝視角變化較大,且受室內(nèi)位于天花板上光源的影響,表盤圖像常出現(xiàn)較強(qiáng)的局部反光或陰影。由于指針在表盤上的陰影和指針?lè)浅=咏垂饪赡苤苯诱趽踔羔?,因此采用傳統(tǒng)的閾值分割和直線檢測(cè)方法會(huì)出現(xiàn)誤檢。
本文提出一種基于MSER-Otsu 閾值分割和矯正Hough 變換直線檢測(cè)的儀表指針定位算法。利用MSER-Otsu 兩步分離算法進(jìn)行表盤指針區(qū)域分割,在檢測(cè)指針中心線時(shí)引入Huber loss 對(duì)Hough 變換擬合直線進(jìn)行矯正,并重點(diǎn)考慮實(shí)際場(chǎng)景中存在拍攝視角差異和光照等干擾時(shí)算法的可靠性,最終對(duì)配電站中方形指針表的指針中心線進(jìn)行準(zhǔn)確定位。
指針定位的方法主要包括閾值分割和直線擬合。不同于以往研究中的圓形指針表,配電站采用的方形指針表具有細(xì)長(zhǎng)的矩形黑色邊框,會(huì)對(duì)指針提取造成干擾。因此,需對(duì)方形指針表進(jìn)行預(yù)處理,如圖1所示。先提取方形指針表的邊框內(nèi)邊緣(見(jiàn)圖1(a))并向內(nèi)裁剪,得到不含黑色邊框的表盤感興趣區(qū)域(Region of Interest,ROI)(見(jiàn)圖1(b)),然后在其中進(jìn)行指針提取。在計(jì)算指針角度時(shí),需使用邊框擬合線的4 個(gè)交點(diǎn)進(jìn)行透視變換,對(duì)圖像進(jìn)行傾斜矯正。
圖1 方形指針表的預(yù)處理Fig.1 Preprocessing of square pointer meter
由于表盤ROI 中指針灰度值較低,因此可采用二值化方法將指針和表盤分離。考慮到表盤ROI 中除指針外還有較多的刻度線、陰影等灰度值較低區(qū)域的干擾,如果直接對(duì)整個(gè)ROI 進(jìn)行閾值分割,則計(jì)算量大且難以得到較理想的結(jié)果。因此,本文采用一種先利用MSER 算法進(jìn)行粗提取,然后在粗提取區(qū)域進(jìn)行迭代Otsu 二值化的兩步分離算法(以下稱為MSER-Otsu 算法)。
MSER 算法是一種利用分水嶺算法思想的紋理檢測(cè)方法[14],其能檢測(cè)在掃描過(guò)程中灰度值上升范圍變化較小的穩(wěn)定區(qū)域,具有仿射不變性,在區(qū)域檢測(cè)上具有較好的性能[15]。MSER 算法的原理如下:
其中,Qi為二值圖中某一個(gè)連通區(qū)域的面積,Δ為灰度閾值的微小變化量,q(i)為灰度閾值為i時(shí)連通區(qū)域面積Qi的變化率。當(dāng)q(i)小于區(qū)域變化率閾值時(shí),Qi即為最大穩(wěn)定極值區(qū)域的面積,該區(qū)域隨灰度值上升其面積基本不變。MSER 算法以灰度閾值i=(0,255)對(duì)圖像進(jìn)行掃描,對(duì)每個(gè)灰度閾值i進(jìn)行圖像二值化。在本文場(chǎng)景中,指針灰度值明顯低于表盤背景灰度值且指針內(nèi)部灰度均勻,符合MSER算法對(duì)檢測(cè)目標(biāo)的要求。
MSER 檢測(cè)和篩選指針區(qū)域備選框的操作如圖2所示,具體過(guò)程如下:
1)MSER 算法通過(guò)區(qū)域面積大?。ㄔO(shè)置為圖像面積的0.01 倍~0.50 倍)和區(qū)域變化率閾值(設(shè)置為0.3)進(jìn)行篩選。由于上述閾值設(shè)置較寬松,以確保不同拍攝條件下指針區(qū)域始終滿足篩選判據(jù),因此符合要求的備選區(qū)域較多(見(jiàn)圖2(a)),還需進(jìn)一步篩選。
2)根據(jù)指針形狀和所在圖像區(qū)域的先驗(yàn)知識(shí),設(shè)置如下判據(jù)以選取有效的備選框(備選區(qū)域的最小外接矩形,見(jiàn)圖2(b)):(1)指針區(qū)域備選框右側(cè)頂點(diǎn)不會(huì)過(guò)于接近圖像右邊緣(閾值取圖像寬度的5%);(2)當(dāng)備選框面積較小時(shí)(閾值取圖像面積的0.1 倍),備選框形狀不會(huì)過(guò)于接近正方形(長(zhǎng)寬比范圍為0.9~1.1)。
3)在返回的結(jié)果中進(jìn)行一次非極大值抑制(Non-Maximum Suppression,NMS)合并重疊備選框,重疊面積閾值取0.7,保留重疊備選框中面積最大的備選框,即得到包含指針區(qū)域的單一備選框(見(jiàn)圖2(c))??紤]到燈光照射造成反光的影響,將反光導(dǎo)致的異常高亮區(qū)域(見(jiàn)圖2(d))灰度值抑制為表盤背景灰度值,此時(shí)指針出現(xiàn)分段,但算法仍能準(zhǔn)確提取出包含各段指針的備選框(見(jiàn)圖2(e))。然后僅在備選框中進(jìn)行閾值分割,可極大減少干擾,提高識(shí)別效率。
圖2 MSER 算法檢測(cè)和篩選的指針區(qū)域備選框Fig.2 Candidate boxes of pointer area detected and filtered by MSER algorithm
為確保不漏檢指針區(qū)域,篩選時(shí)閾值設(shè)置較寬松,閾值設(shè)置原則是在保證指針區(qū)域能被完整提取的前提下,盡量多地篩去干擾區(qū)域以提高識(shí)別效率,因此可能導(dǎo)致極少數(shù)干擾區(qū)域被保留,但保證了指針信息的完整性。
MSER 算法在得到備選框的同時(shí),也會(huì)標(biāo)注其中的備選區(qū)域像素點(diǎn)。圖2(c)中備選框內(nèi)備選區(qū)域像素點(diǎn)如圖3所示??梢钥闯?,相較于高灰度值的表盤背景,表盤示數(shù)、指針投射陰影等區(qū)域的灰度值和指針灰度值差距較小,MSER 算法會(huì)一并認(rèn)為其是指針像素點(diǎn)。其中,陰影區(qū)域和指針十分接近,如果直接在MSER 檢測(cè)的像素點(diǎn)中進(jìn)行指針中心線提取,則會(huì)在陰影區(qū)域影響下出現(xiàn)結(jié)果位置偏移。因此,需進(jìn)一步在MSER 提取的指針區(qū)域中進(jìn)行閾值分割,以去除陰影區(qū)域的影響。
圖3 MSER 算法標(biāo)注的備選像素點(diǎn)Fig.3 Candidate pixels marked by MSER algorithm
圖2(c)中含指針的備選框內(nèi)存在指針像素點(diǎn)(灰度值最低)、陰影像素點(diǎn)(灰度值較低)和表盤背景像素點(diǎn)(灰度值最高)3 類像素點(diǎn)。采用固定閾值分割難以準(zhǔn)確找到指針和陰影灰度的分界,且魯棒性較差。使用自動(dòng)計(jì)算閾值的Otsu 算法[16]僅能將區(qū)域分為兩類,由于表盤白色背景像素點(diǎn)數(shù)量較多且灰度值較高,單次Otsu 算法易誤將指針和陰影歸為同一類,這顯然不符合分離指針的要求。
本文目標(biāo)是將指針和臨近陰影分開(kāi),為解決這一問(wèn)題,通過(guò)結(jié)合灰度級(jí)擴(kuò)展的兩輪迭代Otsu 算法實(shí)現(xiàn)圖2(c)中3 類像素點(diǎn)的分割(見(jiàn)圖4),該算法具體步驟如下:
圖4 局部迭代的Otsu 算法分離指針過(guò)程Fig.4 Pointer separating process by local iterative Otsu algorithm
1)將表盤ROI 中除備選框外的其他區(qū)域像素點(diǎn)灰度值設(shè)置為0。
2)選取一個(gè)備選框內(nèi)全部像素點(diǎn),記為備選點(diǎn)集。
3)在備選點(diǎn)集中進(jìn)行Otsu 閾值分割,將表盤背景和其他區(qū)域(包括指針和陰影)像素點(diǎn)分開(kāi),并標(biāo)記超過(guò)閾值的像素點(diǎn)。
4)在備選點(diǎn)集中剔除超過(guò)閾值的像素點(diǎn),在剩下的像素點(diǎn)中將灰度級(jí)擴(kuò)展到[0,255],再次進(jìn)行Otsu 閾值分割,即可將該備選框內(nèi)指針和陰影分開(kāi)。
5)選取下一個(gè)備選框,重復(fù)步驟2~步驟4,直到完成所有備選框的閾值分割,即完成整個(gè)表盤ROI的閾值分割。
由灰度直方圖分析可知,圖4(a)備選框內(nèi)主要有指針和刻度像素點(diǎn)、陰影像素點(diǎn)以及白色背景像素點(diǎn)3 類像素點(diǎn),其灰度值范圍分別為0~60、80~110和130~160。第一輪Otsu 算法分割計(jì)算出灰度閾值為106,因此將灰度值在80~106 范圍內(nèi)的陰影像素點(diǎn)和指針像素點(diǎn)歸為一類,造成陰影和指針的粘連(見(jiàn)圖4(b))。剔除超過(guò)閾值的像素點(diǎn)并進(jìn)行灰度級(jí)擴(kuò)展后,備選框內(nèi)主要剩余指針和刻度像素點(diǎn)、被誤分的陰影像素點(diǎn)兩類像素點(diǎn),其灰度值范圍分別為0~144和192~255。第二輪Otsu 算法分割計(jì)算出灰度閾值為146,可將指針和陰影分開(kāi)(見(jiàn)圖4(c))。在一般情況下,接近該類像素灰度值邊界的極少數(shù)像素點(diǎn)可能會(huì)被誤分割,但其對(duì)結(jié)果的影響可忽略。
經(jīng)過(guò)上述處理后,可獲得僅含指針像素點(diǎn)和極少量干擾(包括MSER 算法誤檢區(qū)域和正確備選框內(nèi)未篩去的刻度線等)的表盤ROI 二值化圖像。對(duì)于本文所研究方形指針表內(nèi)的粗指針,還需進(jìn)一步提取單像素的指針中心線以計(jì)算指針偏轉(zhuǎn)角度。提取粗指針中心線的常見(jiàn)方法有指針形態(tài)學(xué)細(xì)化結(jié)合Hough 變換[9-11]。但指針形態(tài)學(xué)細(xì)化的過(guò)程需要設(shè)計(jì)復(fù)雜的迭代篩選條件且耗時(shí)較長(zhǎng)(見(jiàn)本文第3.2節(jié))。因此,本文設(shè)計(jì)一種基于直線檢測(cè)與矯正的指針中心線提取方案以提高處理效率。
在表盤ROI 二值化圖像中,指針像素點(diǎn)均近似位于一條直線附近,可通過(guò)Hough 變換進(jìn)行檢測(cè)??紤]到反光區(qū)域可能將指針?lè)譃閮啥危ㄒ?jiàn)圖2(d)),本文采用基礎(chǔ)Hough 變換檢測(cè)直線而非線段,從而同時(shí)利用多段指針信息,返回累加值最高的直線即為近似的指針中心線。
Hough 變換通過(guò)離散化的直線參數(shù)進(jìn)行搜索,其精度與搜索步長(zhǎng)一致。受限于算法時(shí)間復(fù)雜度,精度和搜索步長(zhǎng)分別為1°和1 像素。此外,由于指針有一定寬度,而Hough 變換的結(jié)果(直線)僅考慮直接經(jīng)過(guò)的像素點(diǎn),并不完全貼合指針中心線,需對(duì)其進(jìn)行矯正,以下介紹本文采用的矯正算法。
以Hough 變換得到的直線為基準(zhǔn)線,記為L(zhǎng)0(ρ0,θ0),利用二值圖中臨近基準(zhǔn)線的像素點(diǎn)對(duì)基準(zhǔn)線進(jìn)行矯正。設(shè)臨近基準(zhǔn)線的像素點(diǎn)集合為P,其表達(dá)式如下:
由于本文輸入圖像的大小在一定范圍內(nèi),因此考慮指針寬度,dth取5 像素,從而在包含臨近指針像素點(diǎn)的同時(shí)排除其他區(qū)域干擾。
設(shè)矯正直線為L(zhǎng)new(ρ,θ),以下求取最優(yōu)參數(shù)(ρ,θ),使P中像素點(diǎn)到Lnew(ρ,θ)的距離總和最小,計(jì)算公式如下:
式(4)是一個(gè)回歸問(wèn)題,通常使用最小二乘法求解。考慮到最小二乘法采用均方誤差(Mean Squared Error,MSE)容易受離群噪聲點(diǎn)影響[17],因此,本文采用Huber loss[18]作為最優(yōu)化函數(shù),計(jì)算公式如下:
Huber loss 在像素點(diǎn)距離直線較近時(shí)采用均方誤差,收斂較快,其在像素點(diǎn)距離直線較遠(yuǎn)時(shí)采用平均絕對(duì)誤差(Mean Absolute Error,MAE),受離群噪聲點(diǎn)影響比均方誤差小[19],距離閾值δ=0.5dth=2.5,采用梯度下降法進(jìn)行迭代計(jì)算直至收斂。上述方法所得指針中心線提取結(jié)果如圖5所示。
圖5 指針中心線提取結(jié)果Fig.5 Extraction result of center line of pointer
提取到指針中心線后,利用預(yù)處理所得表盤內(nèi)邊框4 個(gè)頂點(diǎn)向正方形4 個(gè)頂點(diǎn)做透視變換,將圖像矯正為正視圖,此時(shí)指針中心線和圖像下邊緣的夾角即為方形指針表的指針角度。
使用Python 3 編程語(yǔ)言和OpenCV 庫(kù)編寫程序驗(yàn)證本文提出的MSER-Otsu 算法(以下稱為本文MSER-Otsu 算法)的效果。實(shí)驗(yàn)采用Ubuntu 16.04 64 位系統(tǒng),16 GB 內(nèi)存以及2.80 GHz CPU。
在指針區(qū)域分離方面,針對(duì)圖2(c)和圖2(e)中兩類情況,將單次Otsu 算法、全圖兩輪迭代Otsu 算法、MSER 算法與本文MSER-Otsu 算法的二值化圖像分割情況進(jìn)行對(duì)比,結(jié)果分別如圖6 和圖7所示。
圖6 不同算法得到的圖2(c)中指針區(qū)域分離結(jié)果Fig.6 Results of pointer region separation in Fig.2(c)obtained by different algorithms
圖7 不同算法得到的圖2(e)中指針區(qū)域分離結(jié)果Fig.7 Results of pointer region separation in Fig.2(e)obtained by different algorithms
由圖6 和圖7 可以看出,單次Otsu 算法和MSER算法均無(wú)法分離指針和陰影、紋理等灰度相近的區(qū)域。全圖兩輪迭代Otsu 算法盡管可以分離指針和陰影區(qū)域,但會(huì)在其他區(qū)域留下許多干擾點(diǎn)(如文字、刻度線和右下角陰影等)。本文MSER-Otsu 算法利用MSER 算法粗提取檢測(cè)備選框,在備選框外完全無(wú)干擾點(diǎn),且在備選框內(nèi)利用兩輪迭代Otsu 算法對(duì)3 類像素點(diǎn)進(jìn)行閾值分割,成功完成指針和陰影像素點(diǎn)的分離。
全圖兩輪迭代Otsu 算法和本文MSER-Otsu 算法的時(shí)間開(kāi)銷如表1所示。由于本文MSER-Otsu 算法是在備選框局部進(jìn)行迭代,較全圖兩輪迭代Otsu算法所用時(shí)間開(kāi)銷更小,識(shí)別效率更高。
表1 兩種算法分離指針區(qū)域的時(shí)間開(kāi)銷對(duì)比Table 1 Comparison of time cost for pointer region separation between two algorithms ms
本文采用Huber loss 矯正和Hough 變換的算法(以下稱為本文矯正Hough 變換算法)進(jìn)行指針中心線提取。針對(duì)圖6(d)和圖7(d)中兩類情況,將僅使用Hough 變換算法、直接Huber loss 擬合算法、指針細(xì)化算法結(jié)合Hough 變換算法(以下稱為ZHANG細(xì)化結(jié)合Hough 變換算法,其中指針細(xì)化算法為經(jīng)典的快速并行ZHANG 細(xì)化算法[10,20-21])和本文矯正Hough 變換算法的效果進(jìn)行對(duì)比,結(jié)果分別如圖8 和圖9所示。
圖8 不同算法得到的圖6(d)內(nèi)指針中心線提取結(jié)果Fig.8 Results of pointer center line extraction in Fig.6(d)obtained by different algorithms
圖9 不同算法得到的圖7(d)內(nèi)指針中心線提取結(jié)果Fig.9 Results of pointer center line extraction in Fig.7(d)obtained by different algorithms
通常情況下指針較完整(見(jiàn)圖8),由圖8可以看出,僅使用Hough 變換算法所得結(jié)果貼近指針上邊緣,偏離指針中心線,這是由于Hough 變換算法只考慮單條直線通過(guò)的像素點(diǎn)數(shù)量,未考慮粗指針上其他像素點(diǎn)信息導(dǎo)致。直接使用Huber loss 對(duì)二值圖中全部有效像素點(diǎn)進(jìn)行擬合會(huì)受其他噪點(diǎn)干擾(如刻度、右下三角區(qū)域和指針尾部輪廓),結(jié)果明顯偏離指針中心線。ZHANG 細(xì)化算法首先提取指針骨架,再對(duì)骨架進(jìn)行Hough 變換,所得結(jié)果基本與指針中心線重合。本文矯正Huber loss 變換算法將Hough 變換臨近的指針像素點(diǎn)全部納入考慮范圍,使其到矯正直線的距離最小,同時(shí)因?yàn)橹羔橁P(guān)于其中心線對(duì)稱,所以矯正直線就是指針中心線的近似直線。此外,相較于在全圖使用Huber loss擬合算法,本文矯正Huber loss變換算法采用Hough變換預(yù)定位,只計(jì)算預(yù)定位直線臨近的像素點(diǎn),排除了大部分干擾像素點(diǎn),因此結(jié)果明顯優(yōu)于直接擬合。極端情況下受反光影響,二值圖中指針較細(xì)且靠右側(cè)上邊緣有所缺失(見(jiàn)圖9)。由圖9 可以看出,各算法所得結(jié)果均偏向指針下邊緣,本文矯正Hough 變換算法通過(guò)引入預(yù)定位直線臨近像素點(diǎn)做整體擬合,提取的直線在所有算法中距離指針下邊緣最遠(yuǎn),且指針在直線兩側(cè)的像素?cái)?shù)量變化較一致,與指針中心線重合度最高。
ZHANG 細(xì)化結(jié)合Hough 變換算法所得結(jié)果和本文矯正Hough 變換算法相近,但其細(xì)化處理非常繁瑣,計(jì)算效率較低,時(shí)間復(fù)雜度為O(k1n+c),其中n為備選框內(nèi)像素點(diǎn)總數(shù)(即備選框面積),k1為細(xì)化算法單個(gè)像素點(diǎn)處理計(jì)算量(k1較大),c為Hough 變換時(shí)間復(fù)雜度。本文矯正Hough變換算法時(shí)間復(fù)雜度為O(k2m+c),其中m為Hough 變換直線臨近的指針像素點(diǎn)數(shù),k2為梯度下降迭代處理計(jì)算量。由上述可知,m明顯小于n,而由于候選點(diǎn)在一條直線附近,梯度收斂很快,k2較小,因此O(k2m)<O(k1n)。兩種算法中Hough 變換順序不同,導(dǎo)致候選點(diǎn)數(shù)量不同,效率上有一定差異,但相對(duì)于ZHANG 細(xì)化算法的處理時(shí)間,該耗時(shí)可忽略,因此O(k2m+c)<O(k1n+c)。
將圖像進(jìn)行縮放,限制表盤ROI圖像長(zhǎng)度和寬度均約為200 像素,此時(shí)含指針的備選框長(zhǎng)度和寬度范圍為50 像素~150 像素,二值圖中分割出指針像素點(diǎn)數(shù)約為200(反光造成部分指針被遮擋的情況下)~1 000。圖8和圖9中兩種算法擬合出指針中心線的時(shí)間開(kāi)銷如表2所示。由表2 可見(jiàn),本文矯正Hough 變換算法提取指針中心線的時(shí)間開(kāi)銷較ZHANG 細(xì)化結(jié)合Hough 變換算法更小,識(shí)別效率更高。對(duì)于實(shí)際圖像中像素點(diǎn)范圍為200~1 000 的指針,本文矯正Hough 變換算法的時(shí)間開(kāi)銷均約10 ms,具有良好的實(shí)時(shí)性。
表2 兩種算法提取指針中心線的時(shí)間開(kāi)銷對(duì)比Table 2 Comparison of time cost for extracting pointer center line between two algorithms ms
在配電站實(shí)際應(yīng)用中,本文算法對(duì)于不同外觀的方形指針表、不同拍攝視角、光照和陰影干擾均有較強(qiáng)魯棒性,在本文選用的75 張圖像中,指針定位成功率達(dá)到100%,部分定位效果如圖10所示。
圖10 不同情況下指針定位效果圖Fig.10 Effect images of pointer positioning in different situations
由于配電站的指針式儀表的表盤刻度不均勻,且儀表型號(hào)各有不同,因此統(tǒng)一采用指針角度值進(jìn)行比較,將現(xiàn)場(chǎng)人工測(cè)量指針和下邊框的實(shí)際夾角作為真實(shí)值,采用本文算法得到的指針角度值從小到大隨機(jī)選取10 組,結(jié)果如表3所示。由表3 可見(jiàn),本文算法計(jì)算結(jié)果和人工測(cè)量真實(shí)值最大絕對(duì)誤差為1.00°,平均絕對(duì)誤差為0.52°,相對(duì)全量程(90.00°)的最大相對(duì)誤差為1.1%,平均相對(duì)誤差為0.6%??紤]到人工測(cè)量的最小精度為0.50°,本文算法的識(shí)別精度已滿足實(shí)際應(yīng)用要求。
表3 本文算法和人工測(cè)量得到的儀表指針角度值Table 3 Angle values of meter pointer obtained by the proposed algorithm and manual measurement (°)
針對(duì)配電站巡檢機(jī)器人難以識(shí)讀方形指針式儀表的問(wèn)題,本文提出一種儀表指針定位算法。采用MSER-Otsu 兩步分離算法分割出表盤指針區(qū)域,利用Huber loss 矯正Hough 變換擬合直線,最終完成指針中心線的檢測(cè)。實(shí)驗(yàn)結(jié)果表明,與Hough 變化算法和Huber loss 擬合算法等相比,該算法處理速度更快且魯棒性更高,其能在不同拍攝視角和光照干擾下對(duì)多種方形指針表的指針進(jìn)行準(zhǔn)確定位。但本文算法在備選框較大時(shí)背景點(diǎn)去除和灰度級(jí)擴(kuò)展的耗時(shí)明顯增加,考慮到Otsu 分割耗時(shí)很短,本文局部Otsu 迭代效率還有很大提升空間,后續(xù)將對(duì)此進(jìn)行優(yōu)化,進(jìn)一步提高巡檢機(jī)器人識(shí)讀指針式儀表的實(shí)時(shí)性。