李貴良,李 博,陳德帛,羅新元,郭 祥,羅永盛
(云南電網(wǎng)有限責任公司,云南 昆明 650041)
隨著大數(shù)據(jù)時代的到來和“工業(yè)4.0”的提出與實施,各類數(shù)字儀表(如電流表、電壓表)在日常生活、學習與工作中的使用數(shù)量急速增多。 在我國智能化道路發(fā)展速度加快的背景下,機器人已逐步替代了傳統(tǒng)人工作業(yè)。 這也在一定程度上擴大了指針式儀表的應用范圍[1-3]。 但指針式儀表存在不足之處,如電磁干擾、數(shù)據(jù)變化過快等[4]。 針對上述情況,有學者提出了基于Freeman 鏈碼圖像處理算法的指針式儀表識別技術(shù)。 研究表明:該技術(shù)整體效果優(yōu)異,可惜尚未得到推廣與普及[5-6]。 本文以上述研究為基礎(chǔ)改進了該算法,并進行了試驗驗證。
圖形學理論認為:視頻圖像的輪廓中,每個點至少存在1 個方向與8 個鏈碼方向之一相互對應;每個像素點與其相鄰像素點的8 個方向便可視作8 個鏈碼值。 如按一定順序?qū)ζ溥M行標記,便可形成最終集合,即Freeman 鏈碼[7]。 假設(shè)閉合曲線值起始位置后的第i個像素的鏈碼值為ai,ai∈{0,1,...,7},L、L1分別代表某像素點、要跟蹤的像素,此時滿足ai=1。 若將起始點記作L0、終點記作L7,按標記順序?qū)擞淈c圖像并應用Freeman 鏈碼掃描,便可形成矩陣鄰域的一次鏈碼整理。 Freeman 鏈碼的方向取值如圖1 所示。
圖1 Freeman 鏈碼的方向取值Fig.1 Direction value of Freeman chain code
由圖1 可知,若將矩陣鄰域看作不同的點并將其邊緣按一定順序連接起來,便可形成Freeman 鏈碼邊緣表述。 根據(jù)圖像處理理論進行圖像信息描述。 其中:將特征信息部分像素視作1、背景像素視作0,按從下至上、從左往右的方式尋找像素值為1 的點。 將L0(a)下一個搜索點的灰度值看作1,并將其命名為起始點左上方的像素點。 按順時針方向每次旋轉(zhuǎn)45°,依次重復上述步驟直至找到起始點為止。 Freeman 鏈碼的邊緣表述與鄰域如圖2 所示。
圖2 Freeman 鏈碼的邊緣表述與鄰域Fig.2 Edge representation and neighborhood of Freeman chain codes
由圖2 可知,影響圖像處理中Freeman 鏈碼分割效果好壞的因素主要是種子點、生長原則和終止條件?;贔reeman 鏈碼改進圖像處理算法的區(qū)域生長過程如圖3 所示。 由圖3 可知,不同生長原則下的圖像生長區(qū)域與結(jié)果均不同,且二者均受灰度值、紋理、顏色、梯度等因素的影響。
圖3 基于Freeman 鏈碼改進圖像處理算法的區(qū)域生長過程示意圖Fig.3 Regional production process of improved image processing algorithm based on Freeman chain code
在圖3 的基礎(chǔ)上,假設(shè)Freeman 鏈碼改進圖像處理算法中的圖像I的生長區(qū)域為R,Np為像素p的鄰域,其中兩個像素p、q(p∈R,q∈Np)之間的距離為dpq,應用歐幾里法得出距離為ρ。 當ρ=1 時,Freeman鏈碼改進圖像處理算法中的圖像的矩陣呈四鄰域狀態(tài)。 式(1)、式(2)表示不同限制條件下的兩類像素集。
噪聲是影響指針式儀表性能的主要因素,也是其試驗預處理中的關(guān)鍵環(huán)節(jié)[8]。 指針式儀表識別技術(shù)的應用通常會涉及邊緣檢測,主要包括濾波檢測、增強邊緣、效能檢測3 個步驟。 為改進基于Freeman 鏈碼圖像處理算法,本文將引入約翰·肯尼(John Canny)邊緣算法,對指針式儀表性能中存在的不足之處進行優(yōu)化處理[9-10]。 設(shè)標準差為E(滿足1.4 的5×5 高斯函數(shù)內(nèi)核),如式(3)所示。
依照Sobel 濾波器操作步驟,使用以下卷積矩陣,即可得式(4)。
由表1 可以看出,Canny 算子、Sobel 算子在基于Freeman 鏈碼圖像處理算法中各有優(yōu)勢,但方框濾波和均值濾波處理下的指針式儀表圖片過于模糊,高斯濾波處理下的指針式儀表圖片關(guān)鍵信息缺失。 此次研究最終決定使用Canny 算子、Sobel 算子作為本文的預處理方法。 霍夫線變換原理如式(5)所示。
表1 不同邊緣檢測算子在指針式儀表檢測中的耗時對比表Tab.1 Time consumption comparison of different edge detection operators in pointer instrument detection s
式中:i為指針式儀表中的任意正整數(shù);(xi,yi)為提取的像素點;P(xi)=axi+b為數(shù)點所連成的直線,a、b分別為斜率、截距;Q(a,b)為函數(shù)駐點;n為像素點數(shù)。需注意的是,若Q(a,b)梯度為0 時,點(a,b)需滿足以下兩個條件,如式(6)所示。
對式(6)求解,得a、b的方程組,最終可得滿足指針式儀表中的像素點直線方程:y=ax+b。 為判定直線(霍夫變換)是否與x軸垂直,設(shè)β為任意小的正數(shù)。在此條件下若絕大多數(shù)像素點的橫坐標值均在(x-β)~(x+β)之間,則上述基于Freeman 鏈碼圖像處理算法的假設(shè)成立。 同時,將直接坐標系調(diào)換為yOx,并將y設(shè)為橫坐標,可得直線方程:x=cy+d。 表盤直角坐標系如圖4 所示。
圖4 表盤直角坐標系Fig.4 Dial rectangular coordinate system
如圖4 所示,設(shè)圓心點(x,y)和半徑r構(gòu)成的三維空間的圓的2 個直線的參數(shù)分別為r、θ,圓心為(xcenter,ycenter,r)。 刻度值計算如式(7)所示。
式中:θ、α分別為提取角度、零刻度與指針CP的夾角,每一度的刻度值(F)為1/3.6。
設(shè)經(jīng)過Freeman 鏈碼處理后的特征圖像,得λ 取值計算式,如式(8)所示。
式中:λ為方向鏈碼占比;an為8 個不同方向的鏈碼,n=0,1...,7。
當特征方向鏈碼占比大于所有鏈碼75%(即T=0.75)時,在式(8)的基礎(chǔ)上繼續(xù)設(shè)指針式儀表的指針的2 個定點與底點所在的位置分別為ppeak、pbottom,即儀表指針的直線;而指針直線的傾斜角度定義為θ。 按式(9)所示的反三角函數(shù)即可求出θ。
式中:θ、θ0分別為待測指針偏轉(zhuǎn)角度、指針量程最小值與指針指向表盤中間位置的偏轉(zhuǎn)角度;K、K0分別為待測指針示數(shù)、待測指針示數(shù);(x1,y1)、(x2,y2)分別為指針的2 個坐標;M為儀表指針旋轉(zhuǎn)一周的理論測量值。
需注意的是,由于式(10)存在2 種不同方向,即水平與豎直方向,故還需滿足式(11)。
綜合經(jīng)灰度化處理、濾波增強、邊緣檢測、Freeman鏈碼處理后的各項數(shù)據(jù)可知,Canny 算子雖然圖像處理時間相對較長,但能更直觀地反映儀表的數(shù)值。 指針式儀表示數(shù)識別如圖5 所示。
圖5 指針式儀表示數(shù)識別圖Fig.5 Indication recognition diagram of pointer instrument
接著對本文算法的識別準確性進行驗證,得出不同算法下的儀表示數(shù)對比如表2 所示。 由表2 可知,將上文中的霍夫變換算法與本文中的基于Freeman 鏈碼改進圖像處理算法用于自指針式儀表的示數(shù)識別結(jié)果進行對比后,發(fā)現(xiàn)本文算法的耗時均高于霍夫變換算法。 本文算法最大相對誤差為0.04%,而霍夫變換算法的最大相對誤差為1.23%。 故相較而言,本文提出的基于Freeman 鏈碼改進圖像處理算法在指針式儀表的應用中的性能更好。
表2 不同算法下的儀表示數(shù)對比Tab.2 Comparison of instrument indication under different algorithms
透視投影、平行投影是目前圖像處理領(lǐng)域中應用較多的2 種圖像處理投影方法,可實現(xiàn)從三維立體信息到二維平面信息的轉(zhuǎn)換。 透視投影的標準幾何模型與透視變換模型如圖6 所示。 相較而言,如圖6(a)所示的透視投影作為攝像機捕獲圖像信息的標準幾何模型,應用價值較平行投影更高。 但由于不同角度拍得的圖像不同,畸變也不一樣。
當視點為E時,平面物體(P)必須穿過P1才能觀察得到,這便是常規(guī)的透視圖模型。 但若投影視角存在一定傾斜時,圖像便會畸變。 而在透視變換后,圖像所對應的點也會隨之改變。 如圖6(b)所示,即A1→A、B1→B、C1→C和D1→D。
為有效校正圖像畸變,設(shè)變換圖6 參數(shù)分別為a、b、c、d、e、f、g、h,并按由左往右進行適當校正,如式(12)所示。
圖6 透視投影的標準幾何模型與透視變換模型Fig.6 Standard geometric model and perspective transformation model of perspective projection
式中:(x,y)、(u,v)分別為變換前坐標、變換后坐標。
根據(jù)式(12)找到透視圖與正視圖的4 個對應點的投影圖坐標(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)和正視圖坐標(u1,v1)、(u2,v2)、(u3,v3)、(u4,v4),并設(shè)變換參數(shù)為M,Z=AM、M=A-1Z,F=PM,如式(13)所示。
根據(jù)式(13)可求出基于Freeman 鏈碼圖像處理算法的透視變換矩陣。 通過對最左邊至最右邊的4個圖分別進行校正,即選取一次校正后圓上的4 個匹配點,分別作圓在這4 個校正點方向的切線,使其在不同階段均形成1 個新的矩陣,并分別對傾斜圓進行校正。 根據(jù)式(12)、式(13)進行計算,即可實現(xiàn)對圖像的二次校正。 傾斜至二次校正的變化過程如圖7 所示。
圖7 傾斜至二次校正的變化過程Fig.7 Change process of tilt to secondary correction
在指針式儀表的圖像識別過程中,水平、垂直和混合傾斜是影響指針式儀表自動識別的主要原因。 所獲圖像可能存在傾斜,這是其圖像畸變的主要因素[11-12]。 在此進行斜率校正驗證,不同刻度值下的指針識別結(jié)果如表3 所示。
表3 不同刻度值下的指針識別結(jié)果Tab.3 Pointer recognition results under different scale values
由表3 可知,相較于人眼宏觀度數(shù)識別,本文所提出的基于Freeman 鏈碼改進圖像處理算法的指針式儀表識別技術(shù)的準確性、可靠性均更接近真實值。 傾斜校正效果如圖8 所示。
圖8 傾斜校正效果圖Fig.8 Tilt correction effect
根據(jù)式(14)實現(xiàn)第一步校正。 效果如圖8(c)所示。 接著采用霍夫變換和透視變換理論對一次傾斜校正圖像進行第二次校正,實現(xiàn)了本文所設(shè)定的研究效果,如圖8(d)所示。 因此,本次研究的傾斜校正圖像識別結(jié)果如圖9 所示。
圖9 傾斜校正圖像識別結(jié)果圖Fig.9 Image recognition results of tilt correction
由圖8 可知,雖然傾斜校正處理后的圖像依舊存在些許模糊,但校正處理后的圖像特征與校正前相比清晰度、精確度均更高,不影響后續(xù)自動識別。由此可見,基于Freeman 鏈碼改進圖像處理算法能有效地分析指針式儀表圖像傾斜問題并對其進行校正,避免了單一的圖像水平傾斜所造成的指針式儀表識別缺陷。
通過上述圖像校正處理后,再次對校正后的圖像進行示數(shù)識別處理。 本文研究的重點是基于Freeman 鏈碼改進圖像處理算法的線性指針式儀表識別。
相較于霍夫變換算法,本文提出的基于Freeman鏈碼改進圖像處理算法在指針式儀表的應用中的性能更好。 在圖9 的基礎(chǔ)上,分別比較了人工識別與基于Freeman 鏈碼改進圖像處理算法識別基礎(chǔ)上的指針式儀表的周長占比情況,如圖10 所示。
由圖10 可以看出:相較于人工識別而言,基于Freeman 鏈碼改進圖像處理算法識別的指針式儀表的周長占比誤差相對更低,在可接受范圍內(nèi)波動。
綜上所述,圓形、優(yōu)弧或者劣弧是相對常見的指針式儀表的3 種刻度線,工業(yè)中常見的是圓形和方形。但從理論角度而言,上述幾種指針式儀表的刻度線在經(jīng)數(shù)字化處理之后,均可被視作以指針中心為圓心、以中心點到刻度線的距離為半徑的圓形。 本研究在前期研究的基礎(chǔ)上,綜合考慮了不同情況下指針式儀表圖像獲取中可能發(fā)生的各種問題,并提出了基于Freeman 鏈碼改進圖像處理算法的識別方法,實現(xiàn)了對圖像傾斜問題的校正與識別,最終驗證了指針式儀表示數(shù)識別的可靠性,以及Freeman 鏈碼改進圖像處理算法的高效性和普適性。