?

基于深度學習的指針式壓力表讀數方法研究

2024-04-02 03:42林鴻正趙成龍
現代電子技術 2024年7期
關鍵詞:指針式極坐標壓力表

林鴻正,張 斌,趙成龍,戴 杰,湛 敏

(1.中國計量大學計量測試工程學院,浙江杭州 310018;2.杭州萊霆科技有限公司,浙江杭州 310018)

0 引 言

指針式壓力表是一種常用的壓力測量設備。然而,讀取指針式壓力表的數值需要一定的技能和經驗,且容易受到視覺誤差、心理因素等方面的影響。因此,研究準確、高效的指針式壓力表讀數方法具有重要意義[1]。

傳統的方法主要基于圖像處理技術,通過攝像頭獲取壓力表的圖像,再利用圖像處理算法識別指針位置和讀數[2]。然而,這些方法普遍存在對光照、鏡頭角度、背景等環境因素的要求較高,以及處理速度較慢等問題。近年來,深度學習技術的快速發展為指針式壓力表讀數研究提供了新的解決方案。深度學習技術可以通過訓練大量的壓力表圖像數據來學習讀數規律,從而實現更加準確、高效的讀數。常用的模型包括卷積神經網絡(CNN)、循環神經網絡(RNN)等[3]。 文獻[4]使用PrRoiPolling 代替現有的Mask-CRNN 中的RoiAlign,對于自然環境有更高的魯棒性,通過訓練這些模型可以使得模型具備對指針位置的檢測和讀數的識別能力。此外,研究者們還提出了一些新的技術,如小目標檢測、文字識別等,來提高識別準確率和處理速度。文獻[5]提出了一種基于YOLOX卷積網絡和語義分割技術的新方法,取得了較高的準確率。文獻[6]提出了一種基于Fast-CRNN 的方法,用于無人機巡檢中自動識別電表,能有效識別各種亮度等級和拍攝角度的電表。本文通過了解國內外深度學習技術的研究現狀,以指針式壓力表為對象,提出了一種結合文字識別與圖像處理的指針式壓力表自動讀數方法。所提出的方法兼顧精確度和識別速度,能很好地適應指針式儀表自動校驗儀的運用場景。

1 刻度值的定位與識別

為更準確地定位和識別刻度值的位置和內容,本文采用兩個深度學習的模型,分別進行刻度值的定位與識別[7]。在刻度定位部分,以DBNet 網絡為基礎,對壓力表的各個刻度值進行定位,畫出定位框;在內容識別部分,將定位完成的圖像按照定位框進行分割,并將分割后的圖像傳入以CRNN 為基礎的文本識別網絡。

1.1 刻度值的定位

如前文所述,相機采集到的指針式壓力表的圖像易呈現背景雜亂、光線等級和拍攝角度各異、表盤模糊等特點。在文本檢測網絡的選擇方面需要盡可能考慮這些干擾因素,且保證檢測的速度和準確性。

1.1.1 改進的DBNet 網絡結構

本文選擇DBNet網絡為研究對象。DBNet是一種基于像素點分割的文本檢測算法,采用了ResNet-18[8]作為骨干網絡進行特征提取,以FPN[9]作為特征金字塔網絡,用于在多個尺度和多個空間位置上捕捉文本特征,在預測部分采用分割和二值化策略來優化文本區域候選生成,以獲得更好的識別和定位效果[10]。其網絡結構如圖1 所示。

圖1 DBNet 網絡模型

本文改進的DBNet網絡結構可分為三部分:

1)具有提取特征功能的主干網絡ResNet-18 在DBNet 網絡的基礎上進行了改進,將第一個卷積層的通道數設置為128,使其在后面所有的卷積層中通道數都是原來模型的2 倍,犧牲少量運算速度來換取更多的文本檢測目標特征,以提高文本檢測準確度。

2)以FPN 結構通過加入側向連接和上采樣,來以極小的附加計算量構建不同尺度的具有高級語義信息的特征金字塔網絡結構。

3)基于提取到的圖像特征預測出概率圖和閾值圖,并利用可微分二值化得到近似二值圖,最后通過后處理得到文本包圍四點標注框,通過可微分二值化優化訓練過程從而簡化后處理,大幅提高文本檢測效率。

1.1.2 損失函數

本文的損失函數由三個部分構成,分別為概率圖損失Ls、閾值圖損失Lt以及二值圖損失Lb。其計算公式如下:

式中:α和β是權重參數,可以根據模型實際使用情況自行定義,本文根據經驗設置為5 和10。DBNet 網絡提出Ls和Lb都應用了二進制交叉熵(BCE)損失,為了克服正負樣本的不平衡,通過對硬樣本進行采樣,在BCE 損失中使用硬負樣本挖掘,公式如下:

式中:Si表示數據集;yi表示樣本標簽,1 代表正類,0 代表負類;xi表示樣本預測為正類的概率。交叉熵Loss 可以用在大多數語義分割場景中,但它有一個明顯的缺點,那就是對于只用分割前景和背景時,當前景像素的數量遠遠小于背景像素的數量時,即背景元素的數量遠大于前景元素的數量,背景元素損失函數中的成分就會占據主導,使得模型嚴重偏向背景,導致模型訓練預測效果不好。

因此本文提出使用Dice 函數的變體[11]作為Ls和Lb的損失函數。集合相似度度量函數通常用于計算兩個樣本的相似度,屬于metric learning。X為真實目標mask,Y為預測目標mask,希望X和Y交集盡可能大,占比盡可能大,但是Loss 需要逐漸變小,所以在比值前面添加負號,可以緩解樣本中前景背景(面積)不平衡帶來的消極影響,前景背景不平衡也就是說圖像中大部分區域是不包含目標的,只有一小部分區域包含目標。DiceLoss 訓練更關注對前景區域的挖掘,即保證有較低的FN,公式如下:

式中:α為預測目標系數,可以通過調整α的大小來影響損失函數對預測目標的關注程度;Smooth 為平滑系數。上述兩個變量可以根據模型的具體使用情況來定義,本文根據經驗設置為α=2.5,Smooth=0.5。

Lt計算為擴展文本多邊形Gd內的預測和標簽之間的距離之和:

式中:Rd是擴張多邊形Gd內像素的一組索引;yi是閾值映射的標簽。

文本區域檢測效果如圖2 所示。

圖2 文本區域檢測效果圖

1.2 刻度值的識別

對于指針式儀表刻度值的識別,值得注意的是DBNet 檢測模塊提取到的文本字符長度有所不同,因此無法使用傳統的文本識別網絡。CRNN 作為目前主流的文本識別模型,具有可以處理任意長度文本的優勢,滿足刻度值識別需求。

1.2.1 CRNN 網絡結構

通過改進的DBNet 文本檢測網絡后,得到各個刻度值的四點標注框。本文通過CRNN 對其進行文字識別[12],CRNN 主要包含三個部分,如圖3 所示。

圖3 CRNN 網絡結構

圖3 中:卷積層是采用了去除全連接層的CNN 作為特征提取方法,從輸入圖像中提取特征序列;循環層由基于RNN 改進的雙向長短期記憶(Bi-LSTM)網絡構成,用于預測特征序列中的每一個特征向量的標簽分布;轉錄層采用連接時間分類(Connectionist Temporal Classification, CTC)模型,將循環層產生的標簽分布通過去重整合等操作,得到與輸入序列長度相同的識別結果序列。

1.2.2 損失函數

CRNN 的損失函數是CTC 損失函數,它是一種無監督的損失函數,用于解決輸入數據與給定標簽的對齊問題,特別適合于序列數據的預測。通過卷積層和循環層后,每一個特征向量都輸出一個預測值y=y1,y2,…,yT,其中T是序列長度。這里,每個yT∈R||L′是集合L′=L∪上的概率分布,其中L 包含任務中的所有標簽(例如所有阿拉伯數字字符),以及“空白”標簽。序列映射函數?定義為序列到序列,其中T為長度。? 將π映射到? 上,首先刪除重復的標簽,然后刪除“空白”。

例如刻度值“100”可能輸出的字符串包括“11000”“1100”“111100”等一系列情況,此時無法通過刪除重復字符得到最終結果。因此引入了空白符(blank)機制,以“-”表示。RNN 輸出序列時,在文本標簽中重復的字符之間插入一個“-”,如上述的刻度值“100”,可能的輸出字符串就改為“11-00-000”“1-00-0”“1-0-000”等,最后映射為標簽文本? 的總概率為:

式中:?-1(?)代表從序列到序列的映射函數? 變換后是文本? 的所有路徑集合;而π則是其中的一條路徑。每條路徑的概率為各個時間步中對應字符的分數的乘積。

用X={?i,li}i表示訓練數據集,其中?i為訓練圖像,li為真值標簽序列。目的是最小化真實值的條件概率的負對數似然:

2 指針式儀表的讀數

在得到指針式儀表刻度值的文本及其坐標后,還需進行以下三個步驟才能得到儀表的最終示數[13]:

1)尋找儀表的圓心坐標。

2)以圓心坐標為極坐標變換中心,將圖像轉換到極坐標中。

3)通過距離法計算出儀表示數。

2.1 確定圓心與極坐標展開

據上文所述,經過DBNet 網絡提取得到刻度值文本定位框后,本文采用最小二乘法擬合圓,得到的圓心坐標作為極坐標變換的刻度值。文本擬合圓及其中心坐標如圖4 所示,并以該坐標為中心,將圖像從笛卡爾坐標系轉換到極坐標系,如圖5 所示。

圖4 刻度值文本擬合圓

圖5 極坐標變換結果

其具體過程如下:

1)圓的方程可以表示為:

式中:(A,B)為圓心坐標;R為圓的半徑。式(7)可以轉換為:

式中:a=-2A;b=-2B;c=A2+B2-R2。只要通過式(8)求得a、b、c后,就可以計算得到圓心的坐標和圓的半徑。最小二乘法通過求解方差平方和的最小值來求解a、b、c這三個參數。樣本點(xk,yk)與圓心距離的平方與圓半徑的平方之差為:

所有樣本點的誤差平方和為:

用式(10)對a、b、c求偏導,令偏導等于0,即可解得使函數值最小的a、b、c值,從而計算出圓心坐標和圓半徑。

2)極坐標變換的實質是以圖像中的某個點為中心,把圖像從笛卡爾坐標系轉換到極坐標系。其轉換公式如下:

式中:x0、y0是點在原坐標系中的橫坐標和縱坐標;ρ和θ是極坐標系下的極徑和極角;Cx和Cy為極坐標變換的中心,已經由步驟1)所述基于刻度值文本的極坐標中心提取方法得到。算法算得原圖每個像素點在極坐標系下的極徑和極角后,以極徑和極角為橫縱坐標,將圖像在直角坐標系下展開,展開后,原本呈圓弧狀分布的刻度呈現直線形形狀分布。

2.2 儀表示數計算

觀察極坐標展開后的指針和刻度線圖像可知,指針在圖像中呈垂直分布,由此,將整張圖像二值化后做垂直投影,統計每一列的像素點數量,找到累加黑色像素點個數最多的那一列,作為指針所在的水平位置。同理,找到刻度值對應的主刻度線的位置,在得到所有主刻度線與指針位置之后,篩選出距離指針左右兩側各自最近的主刻度線,結合上文所述的刻度值文本識別得到指針處于的刻度區間,再通過距離法計算得出具體示數,公式如下:

式中:V為最后的讀數;Vr為指針右邊刻度線對應的刻度值;Vl為指針左邊刻度線對應的刻度值;Xpointer為已經得到指針直線所在水平坐標;Xl-scale為指針左邊距離指針最近的主刻度線的水平坐標;Xr-scale為指針右邊距離指針最近的主刻度線的水平坐標。

3 實驗結果與分析

3.1 實驗環境

實驗是在Windows 10 專業版系統安裝Anaconda 3,使用Intel Core i5-9300 CPU 以及GTX 1660TI 顯卡加速,完成實驗訓練。

3.2 實驗設計與結果分析

本次實驗采用400張人工拍攝的指針式儀表真實樣本作為數據集,經過圖像增強擴充至800 張,采用json 數據格式進行人工標注,隨機選取700張圖像作為訓練集,100 張圖像作為測試集。設置學習率為0.001,最大迭代次數為120,批輸入大小為16,實驗參數設計如表1所示。

表1 實驗主要參數表

本文從最大誤差、平均誤差和檢測時間三個指標對Hough 直線檢測方法、DBNet+CRNN 檢測方法與本文方法進行對比,如表2 所示。

表2 儀表讀數算法性能評價

從表2 的測試結果可以看出,本文檢測精度最大誤差為1.05%,檢測時間為0.8 s,滿足常規工業需求,并在檢測精度方面較傳統的檢測方法有較大的提升。對誤差較大的圖像樣本進行分析,發現該類數據多為拍攝角度過大或遮擋刻度值關鍵部位,使部分特征丟失造成算法無法擬合出一個較完美的圓,最終導致檢測結果誤差較大。

4 結 論

本文采用改進的DBNet 實現了指針式儀表刻度值的定位,采用CRNN 實現了指針式儀表刻度值的識別,基于神經網絡和機器視覺設計了一種基于刻度值的指針式儀表讀數算法,實現了指針式儀表的讀數。具體內容包括:

1)針對刻度值檢測問題,在DBNet 的基礎上做出了適應性改進,增加了主干網絡ResNet-18 各個卷積層的通道數,重新設計了損失函數,加強了其對指針式儀表刻度值的檢測能力,通過實驗表明該方法有更好的準確性與魯棒性。

2)針對指針式儀表讀數問題,采用了極坐標展開的方法,將弧形的刻度值展開成一條直線,提高了讀數的準確率。

本文提出的方法為指針式儀表讀數領域提供了新思路,但本文方法仍有不足,對拍攝角度過大以及遮擋刻度值部位的樣本無法提取足夠的特征導致檢測結果誤差較大,后續將對該類樣本進一步分析和處理,克服遮擋和角度過大的問題。

猜你喜歡
指針式極坐標壓力表
不同摟草方式對苜蓿草品質的影響
基于MobileNetV2的圓形指針式儀表識別系統
巧用極坐標解決圓錐曲線的一類定值問題
壓力表在煉化裝置上的應用
極坐標視角下的圓錐曲線
壓力表半自動化檢定系統的組建及應用
自來水電子壓力表的設計
淺談指針式萬用表的測量方法與使用要點
基于PIC18F65K90的低功耗數字壓力表設計
基于提升小波變換的指針式儀表圖像邊緣檢測
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合