引言
指針式儀表在工業生產中得到了廣泛應用,如何快速準確讀取儀表的示數是人們關心的問題。使用機械設備進行讀數是一種方便、準確的方法,與之配套使用的圖像處理和示數自動判讀算法是整套設備的核心。國內外很多學者研究了指針式儀表示數自動判讀算法[1-3] ,但研究仍存在一些不足,如:算法不具有普遍性、沒有考慮光線等干擾對判讀結果的影響。因此,本文以某公司使用的指針式壓力儀表為對象,研究了示數自動判讀算法。
1 指針區域提取
1.1 預處理增強
本文使用一臺CCD相機獲取儀表讀數的圖像,由于光線較差時會導致圖像灰暗,因此需要增強灰度值偏低的圖像,步驟為:
(1)計算原圖像整體平均灰度值M。
(2)如果M 以某儀表為例,增強效果如圖1所示,將圖1(b)的圖像定義為I。 1.2 基于降采樣處理的二值化 由于CCD相機采集到的原圖像尺寸較大,采用經過8倍降采樣的金字塔第3級圖像[4]進行圖像降采樣。定義降采樣后的圖像為Ilow,計算其灰度均值為Mlow,設置其闕值Thlow=0.6Mlow。使用全局二值化[5]方法進行二值化,低于闕值的像素點在二值圖像中賦值為1,得到的二值圖像記為BWlow。對于BWlow,首先去除與圖像邊界連接的連通域,同時將二值圖中間的部分設置為感興趣區域(ROI),然后分別計算剩余連通域的長度,如果該長度低于某一闕值,則將其剔除。根據該思想,與圖1(b)對應的降采樣后的圖像Ilow如圖2(a)所示,與Ilow對應的連通域分析結果如圖2(b)所示。 1.3 旋轉投影提取指針 基于圖2(b),得到指針所在區域的步驟為: (1)將圖像左上角設置為原點(0, 0),將圖像BWlow繞其中心點C0(wl/2, hl/2)依次逆時針旋轉i (1°≤i≤180°)。 (2)旋轉后將BWr豎直投影,記錄投影曲線的最大值mi和最大投影點的橫坐標xi。 (3)根據所有mi繪制全局投影曲線Lp,找到Lp的最大值點m*=max(mi)以及取得該最大值時的旋轉角度i*和對應的橫坐標x*。 由于指針區域是長條狀,因此只要得出其中一點的坐標,并對寬度加以約束,就可以得到包含指針的區域信息。指針區域關鍵坐標點P相對于C0的坐標為: 在以C0為中心的坐標系中,通過P且與指針區域指向平行的直線斜率k和截距b是: 確定直線方程后加入距離約束d,同時構造與圖像Ilow大小一致的模板圖像Im,Im與此直線距離小于d的像素點設置為感興趣點,所有感興趣點構成了包含指針的條狀區域。根據降采樣的比例因子,將Im放大至原始尺寸,與原圖像I相乘,可以得出包含指針的條狀區域圖像Ip,如圖3所示。 2 針尖區域提取及定位 2.1 備選區域提取 采用豎直的邊緣提取算子提取指針的邊緣信息,提取出豎直邊緣特征后用Otsu二值化得到豎直邊緣的二值圖像 根據pi點的坐標,設置感興趣區域大小為hr×wr,可以在原圖中得到兩塊備選子區域。以某圖像為例,備選子區域如圖4所示,針尖一定位于兩個子區域中的一個。 本文引用地址:https://www.eepw.com.cn/article/274754.htm 2.2 基于LoG算子邊緣檢測的二值化 由于針尖區域內刻度線的邊緣特征明顯,因此采用基于Laplacian of Guassian(LoG)算子邊緣檢測的二值化處理方法。設原圖像為I(x, y),邊緣檢測后輸出圖像為O(x, y),則: 其中, 由于 式(6)中參數δ的計算公式為: 其中,Int是取整運算;m是模板寬度,取m=min(hr , wr)/7。通過求取O(x, y)中過零點的軌跡即可得到原圖像的邊緣點,最后的闕值為: 其中,c的取值范圍是0~1, 2.3 備選子區域篩選 對于二值化處理結果,針尖區域包含了針尖和刻度線。本文的針尖區域遠離圖像中心,對于第i個備選區域,定義判斷值Ji如下: 其中,Ni是二值圖中連通域的數目, 2.4 針尖定位 在第2.3節的基礎上,對針尖定位的步驟是: (1)將僅含指針連通域的ROIBW逆時針旋轉角度i*得到ROI'BW,從指針連通域所連接邊界對側的邊界開始搜索,判斷是否出現分叉點。判斷方法是:統計該行所有寬度大于2的非零區間的數目,如果有兩個這樣的區間且距離不小于2,說明存在交叉點。設這一對區間的端點坐標分別是(x1, x2)和(x3, x4),則交叉點橫坐標為 (2)根據 (3)若(2)中條件不滿足,分別計算l和r中連通域面積占該連通域外接矩形框面積的比例Rl和Rr,在ROI'BW中將比例較小的一側置零。 (4)從指針連通域所連接邊界對側的邊界開始逐行搜索,找到的第一個非零行的行坐標即針尖位置的縱坐標,將該行豎直投影,投影曲線左右兩端非零點的橫坐標均值視為針尖位置的橫坐標。 (5)將ROI'BW中的針尖坐標變換到ROIBW,進而得到針尖在原圖像I中的針尖坐標。 3 刻度線標記及讀數 3.1 基于逐步搜索的刻度線標記 定位針尖后,搜索刻度線的步驟為: (1)以ROIBW任一刻度線為起始,其中心點為Ps,刻畫待搜索區域,該區域為傾斜矩形,長和寬分別是ws和hs。 本文引用地址:https://www.eepw.com.cn/article/274754.htm (2)使用基于LoG算子邊緣檢測的二值化方法對搜索區域進行二值化,再由Ps出發,沿過該點且與刻度線垂直的直線方向搜索相鄰的刻度線。 (3)標記搜索到的相鄰刻度線,記錄中心坐標、刻度線長度、與水平軸夾角,更新起始點Ps,刻畫新的待搜索區域繼續搜索。 (4)若沿某方向搜索不到新的刻度線,說明該方向搜索完畢,返回起始刻度線,轉換搜索方向繼續搜索標記至結束。 逐步搜索標記刻度線的實例如圖5所示,矩形框為搜索區域,兩個箭頭表示搜索方向。 3.2 刻度線排序 標記完所有刻度線后設置參考點,并結合已知儀表指針的旋轉方向將刻度線排序。參考點設置方法為:設兩個方向搜索到的末端兩條刻度線中心點分別是p1(x1, y1)和p2(x2, y2),參考點坐標可設為 3.3 讀數 通過計算針尖位置和參考點連線的斜率,可以確定針尖位于哪兩條刻度線之間,記這兩條刻度線的序號為n1和n2(n2>n1),同時計算針尖到這兩條刻度線所在直線的距離為d1和d2,則讀數V的計算方法為: 其中,S是儀表的量程,u是儀表的最小分度值,n'是搜索到的刻度線數目。 4 實驗及評價 為了驗證本文方法的準確性,測量了該公司214幅指針式儀表的圖像。定義誤差 5 結論 (1)首先對圖像進行預處理增強,然后對圖像進行降采樣和二值化,之后進行旋轉投影提取出指針所在的區域。 (2)在指針兩端分割出兩塊區域,基于LoG算子邊緣檢測的二值化方法在子區域中篩選出針尖的區域,并對針尖定位。 (3)采用逐步搜索的方法標記刻度線,并對刻度線排序,從而實現示數讀數。 (4)判讀了214幅圖像的讀數,85.05%的讀數誤差小于儀表最小分度值的5%,讀數誤差大于儀表最小分度值10%的僅4.20%,證明本文算法的準確率很高。 參考文獻: [1] Matas J, Galambos C, Kittler J. Robust detection of lines using progressive probabilistic hough transform[J]. Computer vision and image understanding, 2000,78(1):119-137 [2] 孫世杰,張凱,孫力,等.基于圖像處理的航空儀表自動判讀系統設計[J].科學技術與工程,2011,11(6):1260-1263+1284 [3] Alegria F C, Serra A C. Computer vision applied to the automatic calibration of measuring instruments[J]. Measurement, 2000,28(3):185-195 [4] Lee C C, Shih C Y, Lee S K, et al. Enhancement of blood vessels in retinal imaging using the nonsubsampled contourlet transform[J]. Multidimensional Systems and Signal Processing, 2012,23(4):423-436 [5] 羅松,王俊峰,唐鵬,等.面向條碼識讀的自適應二值化改進算法[J].計算機工程與設計,2013,34(4):1324-1330(1)
(2)
,通過水平投影分析找到投影曲線的最大非零區間,可以確定圖像Ip的旋轉圖像
上指針兩端的粗略坐標,進而變換到Ip中,得到指針兩端的坐標。
的水平投影中最大的非零區間對應指針,從該區間的端點向曲線兩側搜索,若發現新的非零區間滿足該區間與最大非零區間的間隔小于闕值ETh,則將該新區間并入最大非零區間。本文ETh=h'/30,設圖像的尺寸是h'×w',H是旋轉圖像
的高度。設在
中,指針兩端點的坐標是
,
和
是上述最大非零區間兩端點的坐標,
是
第
行最左端非零點與最右端非零點的橫坐標均值,
的含義類似。
粗略標記了指針兩端在
和
中的位置。設原圖像尺寸為h×w,將這兩點的坐標變換到圖像Ip中,得到在原圖I中指針兩端點的粗略坐標
:
(3)
(4)
;*是卷積符號。將式(4)變換為:
(5)
,則LoG模板為:
(6)
(7)
(8)
是所有邊緣點灰度值之和,N是邊緣點的總數。
(9)
是所有連通域面積之和,c0、c1、c2是常數。通過計算兩塊備選區域的判斷值,選擇判斷值較大的區域即可得到針尖所在區域。
。若逐行搜索至ROI'BW高度的一半仍未發現分叉,跳至第(4)步。
將ROI'BW分為左右兩部分,記為l和r,計算兩部分連通域的面積sl和sr。如果
,則在ROI'BW中將面積較小的一側置零,跳轉至第(4)步。
,h是原圖像的高度。
(10)
,其中V是本文算法的讀數,V'是肉眼讀數,將判讀結果列于表1。有5幅圖像由于光線太暗,導致無法正確標記刻度線;有85.05%的讀數誤差小于儀表最小分度值的5%,讀數誤差大于儀表最小分度值10%的僅4.20%,證明本文算法的準確率較高。
上一篇:圖解告訴你電機原理
下一篇:最后一頁
- 熱門資源推薦
- 熱門放大器推薦
- 【武漢理工大學校賽】電子設計競賽
- AD1583 2.5V 至 5.0V 微功率、精密串聯模式電壓基準的典型應用電路
- LTC3214EDD 演示板,低噪聲、高電流 LED 閃光燈充電泵,Vin = 2.9V - 4.4V
- 使用基于 ZICM3588SP0-1-R Ember EM35x 收發器模塊的 Mesh Connect EM35x 迷你模塊的典型應用電路
- FEBFCM8531_B01H300A,用于 FCM8531 SOC 應用處理器的 PMSM/BLDC 電機控制評估板
- 使用 Microchip Technology 的 TCL1584 的參考設計
- LTC3632EMS8E 高效 5V 穩壓器的典型應用電路
- TCR5SB25A、150mA、2.5V 輸出電壓 CMOS 低壓降穩壓器的典型應用
- LT1072HVIT 負降壓轉換器的典型應用
- 雙子座 ELRS 高頻頭 Genimi 高頻頭 (使用ESP32模塊)