国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于模板匹配與Hough圓檢測(cè)的儀表識(shí)別

2021-05-06 09:38沈云青熊衛(wèi)華黃為民
關(guān)鍵詞:讀數(shù)灰度指針

沈云青,熊衛(wèi)華,黃為民,許 偉

(浙江理工大學(xué) 機(jī)械與自動(dòng)控制學(xué)院,浙江 杭州 310018)

0 引 言

指針式儀表具有結(jié)構(gòu)簡(jiǎn)單、維護(hù)方便,成本低廉、讀數(shù)直觀等特點(diǎn),在各個(gè)工業(yè)領(lǐng)域都具有廣泛的應(yīng)用。在國(guó)內(nèi)發(fā)電廠變電站等電力系統(tǒng)部門,指針式儀表由于其優(yōu)良的抗電磁干擾能力應(yīng)用也十分廣泛,然而目前這種儀表的讀數(shù)記錄工作大部分仍采取人工巡檢的方式[1-2],不僅效率低下,造成人力物力資源浪費(fèi),而且也容易出錯(cuò),著實(shí)難以滿足實(shí)際生產(chǎn)工作的需要[3]。近年來(lái),國(guó)內(nèi)外學(xué)者對(duì)指針式儀表識(shí)別做了大量研究,取得了一定的成果。

目前指針式儀表的讀數(shù)識(shí)別主要有兩個(gè)途徑,通過(guò)深度學(xué)習(xí)的方法進(jìn)行指針識(shí)別讀數(shù),以及通過(guò)圖像處理的方法進(jìn)行指針識(shí)別讀數(shù)。近年來(lái)深度學(xué)習(xí)在機(jī)器視覺(jué)方向迅速發(fā)展[4],也涌現(xiàn)出了許多基于此的儀表識(shí)別方法。例如,賀嘉琪[5]使用MASKR2CNN神經(jīng)網(wǎng)絡(luò)模型對(duì)指針式儀表盤進(jìn)行識(shí)別和定位,再利用形態(tài)學(xué)方法處理圖像達(dá)到指針識(shí)別的效果;邢浩強(qiáng)等[6]使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)檢測(cè)儀表位置,再使用圖像處理方法確定指針讀數(shù);徐發(fā)兵等[7]使用卷積神經(jīng)網(wǎng)絡(luò)和改進(jìn)的場(chǎng)景文本檢測(cè)器(EAST)算法對(duì)儀表進(jìn)行檢測(cè)讀數(shù),對(duì)復(fù)雜背景下的儀表識(shí)別具有較高的準(zhǔn)確率。國(guó)外學(xué)者Girshick[8]在RCNN的基礎(chǔ)上使用Fast R-CNN[9]進(jìn)行目標(biāo)識(shí)別,提高了算法的精度,但是識(shí)別速度還達(dá)不到即時(shí)指針識(shí)別的要求。使用深度學(xué)習(xí)的方法對(duì)儀表進(jìn)行檢測(cè),需要進(jìn)行大量的樣本訓(xùn)練,且常僅用于定位儀表,指針讀數(shù)的識(shí)別大部分仍采用基于圖像處理的方法。

用圖像處理的方式實(shí)現(xiàn)儀表識(shí)別如今也有許多方法。對(duì)于一些圓形儀表的識(shí)別,國(guó)外學(xué)者[10-11]采用了Hough直線檢測(cè)的方法實(shí)現(xiàn)指針識(shí)別,但是識(shí)別準(zhǔn)確率并不理想。何智杰等[12]提出了中心投影分析實(shí)現(xiàn)自動(dòng)讀數(shù)的方法,一定程度上提高了傳統(tǒng)方法讀數(shù)的速度和精度。李偉等[13]提出了改進(jìn)的傳統(tǒng)中心投影法確定讀數(shù),但對(duì)于原圖質(zhì)量要求較高。李治瑋等[14]提出了一種基于最大灰度相減法的識(shí)別方法,思想創(chuàng)新,但算法仍需要進(jìn)一步優(yōu)化提高準(zhǔn)確率。張文杰等[15]使用了一種針對(duì)環(huán)境光影響的儀表讀數(shù)算法,能夠較好地克服環(huán)境光影響實(shí)現(xiàn)儀表讀數(shù),但是算法流程復(fù)雜,運(yùn)行速度較慢,難以移植到實(shí)際應(yīng)用中。

在已有成果的基礎(chǔ)上,該文提出了一種基于模板匹配以及Hough圓形檢測(cè)的方法,算法流程簡(jiǎn)潔,且模板匹配法與圓形檢測(cè)相結(jié)合提高了儀表識(shí)別的準(zhǔn)確率,圖像預(yù)處理后,使用旋轉(zhuǎn)虛擬直線法對(duì)指針也有較高的識(shí)別率。

1 算法流程

針對(duì)圓形儀表的識(shí)別,該文通過(guò)模板匹配和Hough圓形檢測(cè)相結(jié)合的方法定位表盤,經(jīng)過(guò)灰度化和直方圖均衡化的預(yù)處理后,使用K-means方法二值化,再使用旋轉(zhuǎn)虛擬直線法確定角度,算法流程如圖1所示。

算法主要流程包括圖像預(yù)處理、表盤定位和指針角度獲取三個(gè)步驟。其中,預(yù)處理包括圖像的灰度化、局部直方圖均衡化和K-means二值化,其中灰度化和均衡化后的圖像用于表盤定位,二值化后的圖像用于后續(xù)指針識(shí)別及角度獲取。表盤定位采用了模板匹配和Hough圓檢測(cè)相結(jié)合的方法,通過(guò)兩次模板匹配定位出儀表盤的大致位置,再通過(guò)圓形檢測(cè)標(biāo)記出儀表圓心。指針角度獲取包括通過(guò)旋轉(zhuǎn)虛擬直線法模擬指針落點(diǎn),通過(guò)角度計(jì)算出表盤讀數(shù)。

圖1 算法流程

2 圖像預(yù)處理

2.1 圖像的灰度化與局部直方圖均衡化

實(shí)驗(yàn)中攝像頭采集的圖像為彩色RGB圖像,有紅綠藍(lán)三個(gè)通道分別占據(jù)8位[16]。為了提高后續(xù)圖像處理算法的效率,將圖像灰度化能夠不錯(cuò)地保留圖中元素細(xì)節(jié),去除不必要的顏色信息。灰度化的方法用式(1)實(shí)現(xiàn)。

Y=0.212 6*R+0.715 2*G+0.072 2*B

(1)

這些儀表圖片在獲取時(shí)往往會(huì)由于光線原因,導(dǎo)致圖片整體偏亮或者偏暗,轉(zhuǎn)化為灰度圖后無(wú)法區(qū)分出清晰的表盤輪廓,主要原因是圖像對(duì)比度不夠,因此引入了局部直方圖均衡化,用于增加對(duì)比度,區(qū)分出表盤輪廓。直方圖均衡化的基本思想為將圖像中原來(lái)較為集中的灰度分布,通過(guò)映射函數(shù)F(x)使灰度區(qū)間在全部范圍內(nèi)均勻分布,而局部直方均衡化則是以圖像中每個(gè)像素的鄰域中的灰度分布為基礎(chǔ)設(shè)計(jì)變換函數(shù)F(x),使圖像在局部調(diào)整對(duì)比度獲得更好的均衡化效果。圖2為灰度圖和局部直方圖均衡化后的圖片。

圖2 灰度圖和均衡化圖

2.2 圖像的K-means二值化

二值化前的原始圖像為采集到的彩色圖像,使用了K-means方法對(duì)圖像進(jìn)行二值化處理。K-means二值化方法的實(shí)現(xiàn)步驟如下:

(1)從所有像素中隨機(jī)選取2個(gè)點(diǎn)μ1,μ2作為初始的聚類中心點(diǎn)。

(2)計(jì)算每個(gè)像素與這些聚類中心點(diǎn)的距離,并根據(jù)最小距離重新對(duì)相應(yīng)點(diǎn)進(jìn)行類的劃分,其中對(duì)每一個(gè)點(diǎn)xi按距離分類公式(2)分類:

(2)

(3)按式(3)重新計(jì)算出新的兩個(gè)聚類中心點(diǎn):

(3)

(4)重復(fù)(2)和(3)直到聚類中心不再變化。

通過(guò)以上步驟,K-means方法將圖像分成了兩類。之后在1 000個(gè)顏色樣本中隨機(jī)選擇,建立64個(gè)類,建立壓縮調(diào)色板(compressed palette),每個(gè)類都可能是調(diào)色板中的一種顏色。將原始圖片的每個(gè)像素分配到調(diào)色板中的每一個(gè)類中,再將K-means的類分配結(jié)果通過(guò)壓縮調(diào)色板分類創(chuàng)建壓縮后的新圖片。以壓縮調(diào)色板的最大值與最小值求得的平均為閾值,將所有像素重新著色成黑色和白色就得到了最終二值化后的圖片,圖3為K-means二值化之后的儀表圖像。

圖3 K-means二值化

3 表盤定位及指針角度獲取

3.1 模板匹配法

表盤定位采用了模板匹配法,模板匹配法是在一幅大圖像中,尋找小模板的一種方法。其原理是將模板圖片遍歷大圖片的每一個(gè)位置,并比較每個(gè)位置與模板圖片的相似程度,當(dāng)相似程度達(dá)到一定閾值時(shí),就認(rèn)為與模板匹配。

在實(shí)際場(chǎng)景中一次模板匹配定位儀表的位置還不夠準(zhǔn)確,因此在實(shí)際算法中采用了兩次模板匹配,第一次匹配找到儀表的位置,第二次匹配找到儀表中表盤的位置,來(lái)提高表盤定位的準(zhǔn)確度,圖4為兩次模板匹配結(jié)果。

圖4 兩次模板匹配

其中圖像與模板的相似程度采用相關(guān)系數(shù)匹配法公式(4)來(lái)描述。

(4)

其中,R表示相似程度,T表示模板圖像,I表示匹配圖像,w、h表示模板圖像的寬和高。

3.2 Hough圓形檢測(cè)

通過(guò)模板匹配已經(jīng)基本定位了表盤位置,霍夫圓形檢測(cè)通過(guò)霍夫梯度法,將圓形表盤從二值化后的圖中分割出來(lái)并確定圓心,作為后續(xù)旋轉(zhuǎn)虛擬直線法的圓心。

3.2.1 Canny邊緣檢測(cè)原理

霍夫梯度法的第一步是邊緣檢測(cè),該文采取了Canny邊緣檢測(cè),其原理如下:

(1)使用高斯濾波器卷積對(duì)圖像進(jìn)行降噪,卷積核半徑太小對(duì)圖像的降噪效果不理想,卷積核半徑太大會(huì)使圖像失去太多邊緣細(xì)節(jié),因此該文采用了3*3的高斯內(nèi)核來(lái)降噪。

(2)使用Sobel算子計(jì)算梯度的幅值和方向,Sobel算子運(yùn)用了一對(duì)3*3的卷積陣列Gx和Gy來(lái)計(jì)算梯度的幅值和方向,如式(5)和式(6)所示:

(5)

(6)

(3)通過(guò)非極大值抑制的方法過(guò)濾不是邊緣的點(diǎn),使邊緣銳化成一個(gè)像素。因?yàn)檫吘壪袼卦谔荻确较蛏系姆凳亲畲蟮模手灰獙⑵溆喾亲畲蠓档南袼鼗叶戎登辶?,就能達(dá)到過(guò)濾和銳化的效果。

(4)使用設(shè)定上下閾值的方法判斷邊緣,設(shè)定上閾值為maxV,下閾值為minV,如果像素的梯度幅值超過(guò)maxV則該像素被標(biāo)記為邊緣像素,如果像素的梯度幅值低于minV則該像素被排除,如果像素幅值在maxV和minV之間,則判斷與該像素相連的像素是否只有一個(gè)像素高于maxV,如果是則認(rèn)為該像素是邊緣像素。最終邊緣檢測(cè)效果如圖5所示。

圖5 邊緣檢測(cè)效果

3.2.2 Hough梯度法原理

霍夫梯度法檢測(cè)圓形表盤分為兩步,第一步為標(biāo)記圓心,第二步為估計(jì)半徑。

第一步標(biāo)記圓心時(shí)首先對(duì)灰度圖做Canny邊緣檢測(cè),獲得圖像的邊緣二值圖,同時(shí)通過(guò)Sobel算子計(jì)算出像素的領(lǐng)域梯度值。之后遍歷二值圖中邊緣點(diǎn),并沿著梯度方向畫出切線的垂線,將該垂線經(jīng)過(guò)的所有像素點(diǎn)對(duì)累加器Nx,y進(jìn)行累加。最大的Nx,y將被標(biāo)記成圓心,圖6為垂線交點(diǎn)標(biāo)記圓心示意圖。

圖6 標(biāo)記圓心

第二步計(jì)算邊緣二值圖中所有邊緣點(diǎn)與圓心的距離d,將d按從小到大的順序排序選取閾值,找出最有可能的半徑。建立累加數(shù)組T(r),將邊緣圖的所有邊緣點(diǎn)進(jìn)行累加,即T(d)=T(d)+1。選取最大的T(r)即為所要找的圓半徑。

圖7為霍夫梯度法處理后的圓心標(biāo)示及圓檢測(cè)效果圖。

3.3 旋轉(zhuǎn)虛擬直線法

Hough圓形檢測(cè)已經(jīng)標(biāo)示出表盤的位置以及表盤圓心,接下來(lái)使用旋轉(zhuǎn)虛擬直線法來(lái)進(jìn)行指針識(shí)別和角度計(jì)算。

圖7 圓檢測(cè)效果

從K-means二值化的圖中可以看出,表盤中間區(qū)域由于鏤空設(shè)計(jì),存在大片黑色區(qū)域與指針重合,干擾指針識(shí)別,因此在進(jìn)行旋轉(zhuǎn)虛擬直線的擬合前,將中間黑色區(qū)域在預(yù)處理中去除,只留下指針露出來(lái)的部分作為后續(xù)旋轉(zhuǎn)虛擬直線的擬合對(duì)象,如圖8所示。

圖8 旋轉(zhuǎn)虛擬直線法

旋轉(zhuǎn)虛擬直線法的原理是模擬一根虛擬的指針在表盤上旋轉(zhuǎn),如圖中黑線所示,每到一個(gè)位置就計(jì)算黑線與背景表盤黑色像素的重合點(diǎn)數(shù),重合點(diǎn)數(shù)最高處就是指針?biāo)谖恢?。表盤上有其他數(shù)字標(biāo)志等可能干擾判斷,經(jīng)過(guò)實(shí)驗(yàn)測(cè)試,對(duì)指針位置判斷影響甚微,仍然可以達(dá)到指針識(shí)別的效果。

虛擬直線采用極坐標(biāo)的形式表示,如式(7)和式(8)。

x=rcosθ

(7)

y=rsinθ

(8)

當(dāng)虛擬直線和指針重合時(shí)返回角度θ,通過(guò)角度和表盤刻度的對(duì)應(yīng)關(guān)系計(jì)算出刻度值。

4 實(shí)驗(yàn)結(jié)果與分析

采用文中算法,在Python和OpenCV視覺(jué)庫(kù)實(shí)現(xiàn),對(duì)實(shí)驗(yàn)室采集到的實(shí)驗(yàn)圖像進(jìn)行了算法驗(yàn)證,經(jīng)過(guò)實(shí)驗(yàn),所有測(cè)試圖像通過(guò)模板匹配和Hough圓檢測(cè)都能夠準(zhǔn)確定位到儀表盤,指針識(shí)別也達(dá)到了較高準(zhǔn)確率,算法運(yùn)行速度也比較快。表1是其中十組實(shí)驗(yàn)室測(cè)試圖片的實(shí)驗(yàn)結(jié)果。

表1 實(shí)驗(yàn)結(jié)果記錄

實(shí)驗(yàn)結(jié)果表明,十組測(cè)試圖片的角度平均測(cè)量誤差為0.1°,其最大偏差值在3°(約一小格刻度)以內(nèi),與人工讀數(shù)的誤差接近,因此該誤差基本滿足儀表指針讀數(shù)的精度要求。在部分測(cè)試圖片中出現(xiàn)過(guò)指針角度讀取出現(xiàn)大幅度偏差的情況,并未在上表中列出,研究后發(fā)現(xiàn)是由于環(huán)境光的影響,導(dǎo)致Hough圓檢測(cè)效果不理想,無(wú)法準(zhǔn)確定位圓心和表盤輪廓,導(dǎo)致旋轉(zhuǎn)虛擬直線時(shí)圓心出現(xiàn)偏差,讀數(shù)出現(xiàn)錯(cuò)誤。如果需要進(jìn)一步克服環(huán)境光的影響,需要改進(jìn)表盤定位和圓心定位算法。

5 結(jié)束語(yǔ)

在Python和OpenCV平臺(tái)下,使用模板匹配法和Hough圓檢測(cè)相結(jié)合的方法實(shí)現(xiàn)了表盤定位和指針識(shí)別,表盤定位基本成功,指針識(shí)別效果在環(huán)境光較好的條件下比較理想,指針讀數(shù)功能基本實(shí)現(xiàn),算法效率高,運(yùn)行速度較快。后續(xù)也可移植到嵌入式系統(tǒng)中,具有一定的實(shí)際應(yīng)用價(jià)值。

猜你喜歡
讀數(shù)灰度指針
航空濾光片陣列多光譜圖像條帶灰度調(diào)整算法
“0”的讀法和要領(lǐng)
天津港智慧工作平臺(tái)灰度發(fā)布系統(tǒng)和流程設(shè)計(jì)
Arduino小車巡線程序的灰度閾值優(yōu)化方案
郊游
為什么表的指針都按照順時(shí)針?lè)较蜣D(zhuǎn)動(dòng)
例談高中物理常見(jiàn)讀數(shù)問(wèn)題
儀器工作原理決定了儀器的讀數(shù)規(guī)則
淺析C語(yǔ)言指針
一種基于灰度分割的調(diào)焦評(píng)價(jià)函數(shù)
台州市| 稻城县| 轮台县| 新余市| 新竹县| 辰溪县| 酒泉市| 抚顺县| 高唐县| 莫力| 平泉县| 舞钢市| 泸州市| 新巴尔虎左旗| 甘洛县| 横山县| 嘉祥县| 三亚市| 茂名市| 沈丘县| 高青县| 仙居县| 同德县| 井冈山市| 玉山县| 武强县| 慈利县| 云林县| 阳信县| 台江县| 天镇县| 滕州市| 石渠县| 宁德市| 边坝县| 棋牌| 台州市| 玉山县| 江都市| 黑河市| 和林格尔县|