胡秀軍,于鳳芹
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇無(wú)錫 214122)
指針式儀表因其結(jié)構(gòu)簡(jiǎn)單、維護(hù)方便、成本低、抗干擾性強(qiáng)等特點(diǎn),被廣泛應(yīng)用于日常生活和工業(yè)現(xiàn)場(chǎng)。傳統(tǒng)的儀表讀數(shù)識(shí)別方式多為人眼識(shí)別,易受人眼分辨能力和視覺(jué)疲勞等主觀因素影響、識(shí)別效率低且在環(huán)境惡劣的高危場(chǎng)合不適宜采用人工判讀。
隨著計(jì)算機(jī)視覺(jué)和物聯(lián)網(wǎng)技術(shù)的發(fā)展,基于圖像處理的指針式儀表示數(shù)的識(shí)別成為必要。但儀表讀數(shù)識(shí)別算法如何適用于不同的光照和天氣情況成為必須解決的問(wèn)題。文獻(xiàn)[1]通過(guò)設(shè)計(jì)高斯同態(tài)濾波器對(duì)儀表圖像進(jìn)行預(yù)處理,降低光照變化、指針陰影對(duì)算法的影響。文獻(xiàn)[2]提出基于視覺(jué)顯著性的指針式儀表讀數(shù)識(shí)別算法,利用圖像區(qū)域的對(duì)比度、空間關(guān)系、中心先驗(yàn)性等視覺(jué)顯著信息檢測(cè)儀表圖像指針區(qū)域,并利用無(wú)向圖排序算法優(yōu)化,抑制背景干擾。文獻(xiàn)[3]針對(duì)儀表反光的現(xiàn)象,利用輪廓特征對(duì)幾何圖形進(jìn)行擬合,以某一固定特征為參考位置,根據(jù)位置關(guān)系讀取示數(shù)。文獻(xiàn)[4]提出迭代最大類間方差算法提取不同光照條件下的指針區(qū)域。文獻(xiàn)[5]通過(guò)局部自適應(yīng)二值化消除光照影響。文獻(xiàn)[6]針對(duì)非均勻光照下的儀表讀數(shù)提出一種基于掃描線處理的快速讀數(shù)方法。文獻(xiàn)[7]提出了一種基于空間變換的指針式儀表讀數(shù)識(shí)別算法,通過(guò)綜合運(yùn)用減影法、中心投影法和圖像形態(tài)學(xué)對(duì)指針進(jìn)行識(shí)別,采用圖像空間變換的技術(shù),將圓弧空間轉(zhuǎn)換為矩形空間,通過(guò)提取指針尖端與鄰近刻度線之間的相對(duì)位置關(guān)系來(lái)獲得讀數(shù),減少光照對(duì)指針和刻度線識(shí)別的影響。文獻(xiàn)[8]提出基于最大穩(wěn)定極值區(qū)域提取指針區(qū)域的算法,通過(guò)三尺度高斯函數(shù)提取光照分量,構(gòu)造二維伽馬函數(shù)自動(dòng)地調(diào)整圖像反光區(qū)域或過(guò)暗區(qū)域的亮度,通過(guò)最大穩(wěn)定極值區(qū)域的2次穩(wěn)定區(qū)域檢測(cè)能夠提取不同光照條件下的指針區(qū)域。文獻(xiàn)[9]提出基于概率霍夫變換的指針儀表去影算法,能夠在存在干擾光源的情況下正確判別指針、去除干擾陰影。
在采集儀表圖像時(shí),由于光照和拍攝角度的影響,儀表的讀數(shù)識(shí)別經(jīng)常會(huì)受到光照、指針陰影等因素的干擾,導(dǎo)致指針區(qū)域的提取和指針中心線的定位不能取得滿意的結(jié)果。針對(duì)此問(wèn)題,提出具有單參數(shù)的指數(shù)型同態(tài)濾波與全局對(duì)比度處理的儀表讀數(shù)識(shí)別方法,首先設(shè)計(jì)單參數(shù)指數(shù)型同態(tài)濾波器,增強(qiáng)儀表圖像對(duì)光照變化的適應(yīng)性。然后通過(guò)設(shè)計(jì)基于全局對(duì)比度的圖像增強(qiáng)算法,抑制儀表盤背景區(qū)域,突出表盤信息區(qū)域。最后通過(guò)二值化、連通域處理、形態(tài)學(xué)處理提取指針區(qū)域,并通過(guò)細(xì)化處理和累計(jì)概率霍夫變換定位指針中心線,獲取指針的偏轉(zhuǎn)角度,完成儀表讀數(shù)識(shí)別。
同態(tài)濾波是將頻率過(guò)濾與灰度變換結(jié)合起來(lái)的圖像處理方法,以圖像的照度-反射模型為基礎(chǔ),通過(guò)壓縮圖像亮度范圍和增強(qiáng)對(duì)比度的方法來(lái)改善圖像的視覺(jué)質(zhì)量。
利用指數(shù)型高通濾波函數(shù)來(lái)逼近同態(tài)濾波函數(shù)可形成對(duì)應(yīng)的指數(shù)型同態(tài)濾波,其高通濾波函數(shù)表達(dá)式為
H(u,v)=e-[D0/D(u,v)]n
(1)
指數(shù)高通濾波器高低頻率的過(guò)度比較光滑,處理過(guò)的圖像沒(méi)有明顯的振鈴現(xiàn)象。指數(shù)型高通濾波函數(shù)乘以高頻增益rh,再加上低頻增益r1后,得到式(2):
H(u,v)=rh·e-[D0/D(u,v)]n+r1
(2)
針對(duì)式(2)修改可得到進(jìn)一步優(yōu)化后的指數(shù)型高通濾波函數(shù),先將指數(shù)高通濾波函數(shù)變?yōu)橹笖?shù)低通濾波函數(shù),由于低通濾波傳遞函數(shù)波形圖跟高通濾波傳遞函數(shù)的波形圖相反,所以用1減去低通濾波傳遞函數(shù),同時(shí),用高頻增益減去低頻增益。c為銳化系數(shù),可以進(jìn)一步加強(qiáng)圖像對(duì)比度,n取2。優(yōu)化后得到式(3):
H(u,v)=(rh-r1)·(1-e-c[D0/D(u,v)]2)+r1
(3)
由于優(yōu)化后的指數(shù)型同態(tài)濾波器參數(shù)較多,且對(duì)不同的圖像參數(shù)值不同,需要經(jīng)過(guò)大量的實(shí)驗(yàn)才能得到最優(yōu)效果。為了減少參數(shù)的影響,同時(shí)在不影響濾波效果的情況下,引入S型曲線的指數(shù)函數(shù):
(4)
由于該指數(shù)函數(shù)的曲線與同態(tài)濾波器的剖面結(jié)構(gòu)近似,因此,設(shè)計(jì)了單參數(shù)指數(shù)型同態(tài)濾波器,其傳遞函數(shù)為
H(u,v)=1/(1+e1-KD(u,v))
(5)
在式(5)所示的傳遞函數(shù)中,只需對(duì)參數(shù)K進(jìn)行控制,就可以得到最佳的濾波效果。
為了降低光照、指針陰影對(duì)儀表讀數(shù)的影響,將儀表圖像從RGB顏色空間轉(zhuǎn)換到HSV顏色空間,對(duì)HSV顏色模型進(jìn)行三通道分離,保持色調(diào)和飽和度不變,提取圖像的亮度分量,利用該單參數(shù)指數(shù)型同態(tài)濾波對(duì)亮度分量進(jìn)行光照補(bǔ)償,并將HSV圖像還原為RGB圖像。
為進(jìn)一步增大表盤信息區(qū)域與表盤背景區(qū)域的對(duì)比度,提出基于全局對(duì)比度的圖像增強(qiáng)算法,抑制背景區(qū)域,突出信息區(qū)域。該算法通過(guò)圖像的灰度直方圖統(tǒng)計(jì)出同一灰度級(jí)像素點(diǎn)的數(shù)目,得到該灰度級(jí)像素點(diǎn)在圖像中出現(xiàn)的頻率f,設(shè)圖像中某一像素點(diǎn)Pk,計(jì)算該像素點(diǎn)與圖像中其他所有像素點(diǎn)的距離度量Dis(Pk)。
Dis(Pk)=‖Pk-P1‖+‖Pk-P2‖+…+‖Pk-PN‖
(6)
式中N為像素點(diǎn)的數(shù)目。
若Pk的灰度值為Gm,即Pk=Gm,m表示該像素點(diǎn)的灰度級(jí),m∈[0,255],則式(6)可重構(gòu)為式(7):
Dis(Gm)=f0‖Gm-G0‖+f1‖Gm-G1‖+…+fn‖Gm-Gn‖
(7)
式中fn為灰度級(jí)為n的像素點(diǎn)在圖像中的出現(xiàn)的頻率。
將同一灰度級(jí)m的像素點(diǎn)與其他所有灰度級(jí)像素點(diǎn)的灰度度量定義為Gray(Gm),計(jì)算公式由式(7)整合所得,如式(8)所示:
(8)
將同一灰度級(jí)像素的灰度度量作為該灰度級(jí)上所有像素點(diǎn)的灰度值,得到重新歸一化后的圖像。
通過(guò)Otsu分割算法對(duì)圖像進(jìn)行二值化處理,結(jié)合連通域處理[10]提取指針區(qū)域,然后用形態(tài)學(xué)孔洞填充[11]。去除指針區(qū)域的細(xì)小孔洞。由于指針具有上端細(xì)、下端粗的特點(diǎn),為了后續(xù)精確定位指針,需要對(duì)指針區(qū)域進(jìn)行細(xì)化處理獲取其骨架,其中改進(jìn)的Zhang細(xì)化算法[12]具有快速并行、細(xì)化后的曲線保持連通性和無(wú)毛刺等特點(diǎn),因此本文采用該算法來(lái)細(xì)化指針,獲得指針骨架后,采用累計(jì)概率霍夫變換[8]。檢測(cè)指針直線,并獲取指針的偏轉(zhuǎn)角度。
構(gòu)建坐標(biāo)系,計(jì)算儀表讀數(shù)。如圖1所示,以表盤轉(zhuǎn)動(dòng)軸心O為原點(diǎn)建立直角坐標(biāo)系XY,l為指針直線段。
根據(jù)檢測(cè)到的指針直線得到指針的偏轉(zhuǎn)角度,利用角度法[13]計(jì)算出儀表的讀數(shù),計(jì)算公式如式(9)所示:
(9)
式中:γ(∠AOB)為指針的偏轉(zhuǎn)角度;β(∠COB)為最小刻度線與Y軸的夾角;max與min分別為儀表最大刻度值與最小刻度值。
步驟1:制作儀表模板。獲取儀表軸心位置、最大刻度值、最小刻度值以及最大刻度線與最小刻度線相交的夾角,建立模板庫(kù)。
步驟2:輸入待測(cè)圖像,使用透視變換算法對(duì)該圖像進(jìn)行校正。
步驟3:獲取儀表圖像的有效信息圖。
步驟4:將圖像從RGB轉(zhuǎn)換到HSV空間。
步驟5:保持圖像的色調(diào)(H)、飽和度(S)不變,提取圖像的亮度分量(V)圖。
步驟6:利用單參數(shù)指數(shù)型同態(tài)濾波對(duì)亮度分量圖進(jìn)行處理。
步驟7:將HSV圖像還原為RGB圖像。
步驟8:對(duì)步驟7所得圖像進(jìn)行灰度化處理。
步驟9:得到步驟8處理后圖像的灰度直方圖,統(tǒng)計(jì)灰度級(jí)為n的像素點(diǎn)的頻率fn。
步驟10:通過(guò)式(8)以及步驟9中的fn計(jì)算圖像中每個(gè)灰度級(jí)像素點(diǎn)與其他所有灰度級(jí)像素點(diǎn)的灰度度量。
步驟11:將步驟10計(jì)算得到的灰度度量作為圖像新的灰度值,歸一化圖像。
步驟12:采用Otsu算法對(duì)步驟11的圖像進(jìn)行二值化處理。
步驟13:對(duì)步驟12所得圖像進(jìn)行連通域處理,提取指針區(qū)域。
步驟14:對(duì)步驟13所得圖像進(jìn)行形態(tài)學(xué)孔洞填充操作。
步驟15:對(duì)步驟14所得圖像進(jìn)行細(xì)化處理,獲取指針骨架。
步驟16:采用累計(jì)概率霍夫變換檢測(cè)指針直線,獲取其偏轉(zhuǎn)角度。
步驟17:通過(guò)式(9)計(jì)算儀表讀數(shù)并輸出,算法結(jié)束。
儀表讀數(shù)識(shí)別算法流程圖如圖2所示。
本實(shí)驗(yàn)的運(yùn)行環(huán)境為Windows10 64位操作系統(tǒng),Ryzen5處理器,8 GB內(nèi)存,Visual Studio 2017和OpenCV作為軟件開(kāi)發(fā)環(huán)境。
選取低照度、高照度以及照度不均的儀表圖像為實(shí)驗(yàn)對(duì)象,以圖像的信息熵、峰值信噪比作為圖像質(zhì)量檢驗(yàn)指標(biāo),來(lái)客觀評(píng)價(jià)傳統(tǒng)的指數(shù)型同態(tài)濾波與本文單參數(shù)指數(shù)型同態(tài)濾波算法的實(shí)驗(yàn)效果。信息熵是圖像信息量的度量,信息熵越大,圖像所含信息越多,圖像包含的細(xì)節(jié)越豐富;峰值信噪比表示圖像信號(hào)最大可能功率與噪聲功率的比值,峰值信噪比越大,圖像保真程度越高。濾波器的參數(shù)設(shè)置以及檢驗(yàn)指標(biāo)如表1。
由表1數(shù)據(jù)可知,本文設(shè)計(jì)的單參數(shù)指數(shù)型同態(tài)濾波器控制參數(shù)明顯減少,可以更快實(shí)現(xiàn)對(duì)濾波器的控制,且處理后的圖像信息熵、峰值信噪比略高于原算法,可以有效增強(qiáng)圖像細(xì)節(jié),對(duì)圖像具有較好的處理效果。此外,本文根據(jù)大量實(shí)驗(yàn)得到參數(shù)K的取值范圍在[0.025,0.035]之間。
表1 儀表讀數(shù)實(shí)驗(yàn)結(jié)果
本文將Otsu算法、文獻(xiàn)[1]、文獻(xiàn)[5]及本文所提方法進(jìn)行對(duì)比實(shí)驗(yàn),如圖3~圖6所示。經(jīng)分析可知,只有在正常光照下,Otsu算法才能較好地分割出指針區(qū)域,光照過(guò)暗、光照過(guò)亮以及光照不均勻時(shí)均不能取得較好的分割效果;從圖4(c)、圖6(c)可看出文獻(xiàn)[1]算法在光照過(guò)暗或光照不均勻的條件下,對(duì)儀表圖像的分割效果不理想。從文獻(xiàn)[5]算法分割的結(jié)果圖可知,不同光照條件下,該算法可取得較好的分割效果,但保留的干擾信息太多,為后續(xù)提取指針區(qū)域增加了難度。從本文算法分割的結(jié)果圖可知,本文算法能夠減少表盤區(qū)域干擾,抑制背景區(qū)域,突出信息區(qū)域,降低了提取指針區(qū)域的難度,也說(shuō)明了本文算法能夠適應(yīng)各種光照條件,對(duì)光照有較好的魯棒性。
經(jīng)實(shí)驗(yàn)分析,可將指針陰影類型大致分為3種,如圖7所示,第一種類型指針與指針陰影之間的夾角較大,經(jīng)Otsu算法分割后得到雙指針,如圖7(b)所示;第二種類型指針與陰影之間的夾角較小,經(jīng)Otsu算法分割后得到的指針比實(shí)際的指針粗,如圖7(g)所示,造成定位的指針中心線不準(zhǔn)確;第三種類型指針陰影并不太明顯,但由于灰度值較高,經(jīng)Otsu算法分割后,得到的指針中僅含有部分指針陰影,如圖7(l)所示。前兩種類型若不能去除指針陰影,將造成指針中心線產(chǎn)生偏差,導(dǎo)致讀數(shù)誤差較大,第三種類型對(duì)指針中心線定位的結(jié)果影響并不大,但若提取的指針區(qū)域中含較多的干擾,如字符、污漬等,就會(huì)對(duì)指針中心線定位產(chǎn)生一定影響。本文就指針區(qū)域的分割與Otsu算法、文獻(xiàn)[1]和文獻(xiàn)[5]中的3種算法進(jìn)行了對(duì)比仿真實(shí)驗(yàn)。由仿真實(shí)驗(yàn)結(jié)果可以看出,本文算法相較于Otsu算法、文獻(xiàn)[1]和文獻(xiàn)[5]算法能夠更好地去除不同類型的指針陰影,有效地分割出指針區(qū)域。
本實(shí)驗(yàn)采集50張不同類型、不同讀數(shù)的儀表圖片作為實(shí)驗(yàn)樣本進(jìn)行實(shí)驗(yàn)。將其中10組的人工讀數(shù)與本文算法的讀數(shù)結(jié)果進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表2所示。
表2 儀表讀數(shù)實(shí)驗(yàn)結(jié)果
由表2可知,使用本文算法對(duì)各刻度均勻的指針式儀表進(jìn)行讀數(shù),其結(jié)果與參考讀數(shù)相差不大,總體的正確率達(dá)到了95%以上,能夠滿足儀表讀數(shù)識(shí)別的實(shí)際需求??梢?jiàn),本文設(shè)計(jì)的指針式儀表讀數(shù)自動(dòng)識(shí)別算法是可行的。
針對(duì)光照變化、指針陰影等干擾影響因素導(dǎo)致儀表指針無(wú)法提取、儀表讀數(shù)識(shí)別誤差較大的問(wèn)題。本文提出一種具有單參數(shù)指數(shù)型同態(tài)濾波與全局對(duì)比度處理的儀表讀數(shù)方法,使用單參數(shù)指數(shù)型同態(tài)濾波較大程度消除光照和指針陰影的干擾,并通過(guò)全局對(duì)比度的圖像增強(qiáng)算法突出表盤信息區(qū)域,結(jié)合Otsu算法解決了不同光照條件下和存在指針陰影的儀表圖像中指針區(qū)域的提取,實(shí)現(xiàn)指針中心線的精確定位。仿真實(shí)驗(yàn)結(jié)果表明,所提算法能夠適應(yīng)不同光照條件下指針區(qū)域的提取,同時(shí)能夠消除指針陰影的影響,且讀數(shù)識(shí)別的正確率達(dá)到95%以上。