摘 要:針對當前化工廠指針儀表讀數(shù)方法效率低、誤差大等問題,本文提出了一種基于改進Canny算法的指針儀表讀數(shù)方法。首先,采用目標檢測算法YOLOv5對儀表表盤及指針進行定位檢測,從而能夠更加準確的得到指針所在位置;其次,采用導向濾波方法對圖像進行預處理,得到清晰的儀表圖像,同時利用改進的Canny算法對指針邊緣進行提取;最后,利用霍夫變換方法得到指針所在直線,并計算傾斜角度,采用角度法計算出實際讀數(shù)。通過實驗驗證,本文所提出的儀表讀數(shù)方法的讀數(shù)精度為93.6%,較改進前提升了3.1%,該方法有效提升了化工廠的指針儀表讀數(shù)效率,具有較高的實用價值。
關鍵詞:YOLOv5;導向濾波;Canny算法;霍夫變換;角度法;MATLAB
中圖分類號:TP391 文獻標識碼:A 文章編號:2095-1302(2024)04-00-03
DOI:10.16667/j.issn.2095-1302.2024.04.005
0 引 言
在化工廠的日常生產(chǎn)過程中,每個設備所對應的儀表檢測數(shù)據(jù)對于生產(chǎn)過程控制以及生產(chǎn)安全具有重要意義。在化工廠中,不同設備的儀表也會有所不同,常見的有數(shù)字儀表、指針式儀表等。相對于指針式儀表,數(shù)字儀表的讀數(shù)更加方便,且智能化程度更高。但是數(shù)字儀表的缺陷在于,在惡劣的環(huán)境中,數(shù)字儀表壽命較短,維護成本高。而指針儀表的結(jié)構(gòu)簡單、有較強的抗干擾能力且后期維護簡單,使用成本低,因此在化工廠中,常見的儀表均為指針式儀表。
目前,指針式儀表的讀數(shù)方法多為人工讀數(shù),因此存在較大局限性。如在高溫、高壓的環(huán)境下,人工讀數(shù)付出的成本較大,且讀數(shù)準確率不高。此外,在一些具有輻射的環(huán)境中,人工讀數(shù)風險較高。隨著信息技術(shù)的發(fā)展,人工讀數(shù)的方式越來越無法滿足化工園區(qū)的智能化需求,因此采用智能化手段實現(xiàn)指針式儀表讀數(shù)對化工廠的發(fā)展具有重要意義。彭昆福[1]等提出了一種基于深度回歸的指針儀表讀數(shù)識別方法,該方法首先獲取儀表圖像的特征,然后利用方向回歸對指針的方向進行預測,最后利用角度法計算儀表的讀數(shù)。該方法準確性較高,但是計算復雜,時效性差。湯亮[2]等提出了基于空間變換的指針式儀表讀數(shù)識別算法,該方法首先獲取指針所在圓形區(qū)域的輪廓,其次對指針的刻度線進行校正,并得到刻度線的坐標,最后采用減影法來獲取指針與刻度線的相對位置得到指針讀數(shù)。Haojing Bao[3]等提出了一種基于逆透視映射的多指針式儀表計算機視覺測量方法,該方法通過視覺檢測獲取指針式儀表的讀數(shù),具有一定的有效性,但是該方法的泛化性不高。為了解決指針式儀表讀數(shù)方法存在的問題,本文提出了一種基于改進Canny算法的指針儀表讀數(shù)方法,以提高化工廠指針式儀表的讀數(shù)效率。
1 YOLOv5算法
YOLOv5算法是當前性能較強的目標檢測方法,其網(wǎng)絡結(jié)構(gòu)采用卷積神經(jīng)網(wǎng)絡的特征提取模塊。YOLOv5的輸入端采用Mosaic方法對輸入數(shù)據(jù)集進行處理[4-5]。其主干網(wǎng)絡為CSPDarknet53,其主要用于提取特征信息,便于對表盤及指針進行定位。此外,YOLOv5結(jié)構(gòu)還包括Backbone及Neck結(jié)構(gòu),Backbone結(jié)構(gòu)引用Focus模塊,該模塊能夠在下采樣階段提取目標特征時,避免部分特征信息丟失。Neck結(jié)構(gòu)是由FPN和PAN兩個模塊組成,兩種模塊能夠在不同的方向上對特征信息進行傳輸,從而將不同層次的特征進行融合,提高模型的檢測性能。儀表指針檢測流程如下:
(1)對輸入的儀表圖像進行單元格劃分,然后針對不同尺度的輸入目標生成先驗框,先驗框負責檢測相應的目標
物體。
(1)
式中:c表示置信度的值;P為預測框內(nèi)的目標概率;H表示預測框與真實框之間的交并比。
(2)對輸入端的指針儀表圖像進行歸一化操作,然后送入特征提取網(wǎng)絡中提取相應的特征信息。
(3)計算被檢測物體的中心點位置及標注框的信息。
(4)輸出檢測結(jié)果。
指針儀表檢測圖如圖1所示。
2 圖像預處理
2.1 導向濾波
由于指針儀表長期暴露在露天環(huán)境,受雨水侵蝕、陽光暴曬等因素的影響,指針儀表表面的清晰度退化,導致讀數(shù)不準確、誤差大。為了提高儀表的讀數(shù)精度,采用導向濾波算法對指針儀表圖像進行濾波處理,使得圖像更加清晰。
導向濾波[6-7]是一種具有平滑效果的圖像處理方式,在保持圖像邊界的同時實現(xiàn)平滑的處理。與其他濾波方式相比較,導向濾波方法具有處理速度快和無梯度反轉(zhuǎn)的優(yōu)勢。導向濾波算法實現(xiàn)的一般步驟如下:
(1)分別讀取輸入及導向圖像P和I;
(2)分別計算I的均值與方差、輸入圖像P的均值以及I與P的乘積;
(3)對線性相關因子a與b的值分別進行計算:
(2)
(3)
(4)分別計算a與b的均值;
(5)得到導向濾波結(jié)果Q:
(4)
圖2為導向濾波的處理效果圖,將圖(a)、圖(b)對比可以看出,經(jīng)過導向濾波處理后的儀表圖像更加清晰,特征信息更加豐富,有利于提高儀表的識別精度。
2.2 改進Canny算法
Canny是一種成熟的用于目標邊緣檢測的方法,其核心方法是將目標進行平滑后再求導,從而檢測出邊緣信息,該方法具有較好的去噪和邊緣檢測效果[8-10]。傳統(tǒng)的Canny算法包括以下3個計算部分:
(1)采用高斯濾波對圖像去噪;
(2)計算梯度值及梯度方向;
(3)采用非極大值抑制及雙閾值連接對檢測邊緣進行
處理。
由于傳統(tǒng)Canny算法的梯度方向比較單一,容易造成梯度變化緩慢及梯度信息丟失等問題。本文采用四方向Sobel算子對傳統(tǒng)Canny算法中的梯度計算方法進行改進,解決傳統(tǒng)方法中存在的不足。邊緣檢測結(jié)果如圖3所示。
(5)
式中:Gx代表橫向邊緣信息;Gy代表縱向邊緣信息。
由檢測結(jié)果圖可以看出,Canny算法改進前檢測的邊緣存在缺失,改進后的算法檢測效果更好。
2.3 霍夫變換法直線檢測
霍夫變換(Hough Transform)法常用于檢測直線,但該方法不僅能夠檢測直線,還能夠進行橢圓擬合等[11]?;舴蜃儞Q法的核心是將被檢測的復雜目標轉(zhuǎn)化為計算峰值的問題,將復雜的問題簡單化。檢測直線時,假設原點距離直線的垂直長度為ρ,且垂線與橫坐標軸之間的夾角為θ,則該直線的表達式為:
(6)
得到直線的極坐標方程后,將直線進行參數(shù)映射,即將r軸和θ軸進行離散化,得到直線的正弦曲線形式[12-13]。具體分為以下幾個步驟:
(1)將參數(shù)空間的坐標軸離散化;
(2)對圖像中不為0的像素點進行映射,并得到像素點在參數(shù)空間中的方格;
(3)統(tǒng)計每個方格出現(xiàn)的次數(shù),并確定閾值,若某一個方格出現(xiàn)的次數(shù)大于閾值時,則用其表示直線;
(4)將表示直線方格的參數(shù)作為圖像中檢測直線的參數(shù)。
直線檢測效果如圖4所示。
2.4 角度法讀數(shù)
角度法是一種常見的儀表讀數(shù)方法[14],該方法較為簡單,其具體步驟為:
(1)得到儀表的最大量程角度θmax;
(2)得到指針儀表的最大量程Nmax;
(3)得到指針上邊緣角度θ1與下邊緣角度θ2的平均值θmean,并通過下式計算得到儀表的讀數(shù)N。
(7)
(8)
3 實驗結(jié)果及分析
為了驗證本文提出的指針儀表讀數(shù)方法的有效性及實用性,本文在MATLAB環(huán)境下進行模擬實驗。本文的實驗數(shù)據(jù)一方面來源于化工廠實際儀表圖像,同時為了提升算法的泛化性,還采用網(wǎng)絡工具獲得其他指針儀表圖像,實驗數(shù)據(jù)圖像共5 000張。實驗步驟如下:
(1)為了快速對儀表表盤及指針所在位置進行定位,降低背景信息干擾,實驗首先采用LabelImg工具對儀表數(shù)據(jù)集進行標注,然后采用YOLOv5算法進行檢測。
(2)為了解決由于指針儀表的清晰度退化,造成讀數(shù)不準確、誤差大的問題,在完成指針定位后對指針儀表圖像進行濾波處理,提高讀數(shù)精度。
(3)最后采用改進的Canny算法及霍夫變換法對指針進行直線檢測,并采用角度法讀數(shù)。
表1為部分儀表的讀數(shù)結(jié)果,由表中讀數(shù)結(jié)果可以得到,改進后的算法讀數(shù)結(jié)果更加準確。圖5為準確率曲線圖,其中深灰色曲線表示算法改進前的準確率曲線,淺灰色曲線表示算法改進后的準確率曲線。從圖中可以看出,算法改進前的識別準確率為90.5%,算法改進后的識別準確率為93.6%,相比之下準確率提升了3.1%,指針儀表讀數(shù)的效率得到了提升。
4 結(jié) 語
為了提高化工廠的指針儀表讀數(shù)效率,本文提出了一種基于改進Canny算法的讀數(shù)方法。
(1)采用YOLOv5算法對儀表指針進行定位,該方法具有較好的定位效果。
(2)采用導向濾波對圖像進行預處理,提高圖像的細節(jié)信息,同時對Canny算法進行改進,以提取儀表指針的邊緣信息。利用改進后的算法提取的邊緣信息更全面,提取效果更好。
(3)利用霍夫變換法進行直線檢測并采用角度法計算讀數(shù)。實驗結(jié)果表明,本文所提方法的讀數(shù)精度為93.6%,較改進前提升了3.1%,具有較高的實用價值。
注:本文通訊作者為張寶寶。
參考文獻
[1]彭昆福,王子磊,王磊,等. 基于深度回歸的指針儀表讀數(shù)識別方法[J].信息技術(shù)與網(wǎng)絡安全,2020,39(12):7.
[2]湯亮,何穩(wěn),李倩,等.基于空間變換的指針式儀表讀數(shù)識別算法研究[J].電測與儀表,2018,55(6):6.
[3] BAO H J,TAN Q C,LIU S Y,et al. Computer vision measurement of pointer meter readings based on inverse perspective mapping [J]. Applied sciences,2019,9(18).
[4]郭磊,薛偉,王邱龍,等. 一種基于改進YOLOv5的小目標檢測算法[J]. 電子科技大學學報,2022,51(2):8.
[5]田楓,賈昊鵬,劉芳. 改進YOLOv5的油田作業(yè)現(xiàn)場安全著裝小目標檢測[J]. 計算機系統(tǒng)應用,2022,31(3):10.
[6]韓正汀,路文,楊舒羽,等. 基于導向濾波優(yōu)化的自然圖像去霧新方法[J]. 計算機科學與探索,2015,9(10):7.
[7] PHAM C C,JEON J W. Efficient image sharpening and denoising using adaptive guided image filtering [J]. Image processing Iet,2015,9(1):71-79.
[8] KIEU S T H,BADE A,HIJAZI M H A. Modified canny edge detection technique for identifying endpoints [J]. Journal of physics: conference series,2022,2314(1).
[9]劉雙龍,金曉怡,范瑜,等.基于霍夫變換和Canny算子的表殼中心定位方法[J].農(nóng)業(yè)裝備與車輛工程,2022,60(8):32-35.
[10]沈衛(wèi)東,李文韜,劉娟,等.基于改進Canny邊緣檢測的指針式儀表自動讀數(shù)算法研究[J].國外電子測量技術(shù),2021,40(2):60-66.
[11] AHMAD R,NAZ S,RAZZAK I. Efficient skew detection and correction in scanned document images through clustering of probabilistic hough transforms [J]. Pattern recognition letters,2021,152.
[12] LI N,WANG J,DONG X A,et al. Pointer meter recognition method based on improved Hough transform [J]. Chinese journal of liquid crystals and displays,2021,36(8).
[13] IQBAL B,IQBAL W,KHAN N,et al. Canny edge detection and hough transform for high resolution video streams using Hadoop and Spark [J]. Cluster computing,2020,23(1).
[14]王瑞,李琦,方彥軍. 一種基于改進角度法的指針式儀表圖像自動讀數(shù)方法[J]. 電測與儀表,2013,50(11):115-118.
收稿日期:2023-03-31 修回日期:2023-05-05