針對儀表自動讀數(shù)問題,新型數字式(shì)儀表的讀數比較方便,現階段已經有非常多成(chéng)熟的方案落地,而針對傳統指針式儀表自(zì)動讀數的現有方案還不(bú)夠成熟,存在識別不精確、易受環境幹擾等問題,是亟待研究和攻克的難題。我們針對指針式儀表的讀取設計了一種基於Im-YOLOv4-Tiny的表計識別(bié)算法。
實現表計(jì)識別算法(fǎ)自動識別,共有四步:儀表數據集製作與處理及遷移學習預訓(xùn)練、Im-YOLOv4-Tiny網絡模型構建、網絡(luò)訓練策略及超參數(shù)設定、指針定位與自動(dòng)識數。
在“變電站巡檢”項目中,存在大量的表計(jì)圖像,深度學習(xí)模型可以提取圖片中的特(tè)征信息,結合項目中能獲取的大量圖片去持續優化深度學習模型可以幫助模型學習表計相關的特征信(xìn)息(xī),從圖像中(zhōng)獲取到有效且普遍的特征則(zé)需要(yào)大量的數據集。同時在訓練(liàn)過程中采用了(le)數據擴增,在提升訓練數據的多樣性的同時,提升模型的泛(fàn)化能力。
表盤在使用的過程中可能受到時間、角度、光照、焦距等影響存在磨損、傾斜、反光模糊等問題。所以在樣(yàng)本選擇時,加(jiā)入上述異常狀態樣本進(jìn)行訓練。

異常狀態樣本圖片數據集
Im-YOLOv4-Tiny模型的(de)搭建(jiàn)由:由骨幹特征提取(qǔ)網絡、特征金字塔(tǎ)和YoloHead三部分組成。網絡的第一部分骨幹特征提取網絡主要用於輸入圖片前期的特征提取,在圖像輸入時會將圖像進行resize,將圖像處理成(chéng)尺寸為416×416×3的輸入圖像(xiàng),之(zhī)後放(fàng)入後續網絡提取特征,骨幹網絡由卷積模塊和(hé)殘差模塊組成。卷積模塊中除了包含普通的卷積操(cāo)作,還包含標準化(huà)和(hé)激活函數,為了避免梯度方向鋸齒問題、使用了LeakyReLU作(zuò)為激活函數。改進模(mó)型結構如下:

Im-YOLOv4-Tiny網絡模型
網絡的第(dì)二部分特征(zhēng)金字塔是對骨幹特征提取網絡的輸出進行加強特征提取,從骨幹網絡的上(shàng)層和下層分別取出兩(liǎng)個維度為(26,26,256)和(hé)(13,13,512)的特征層(céng)進行特征提取,並將(jiāng)不同維度的特征層經過卷積和(hé)采樣進行特征融合,通過不同尺度的特征結合來提取出更有利的特征。最後將兩個融合後的特征圖放入YoloHead進行預測。
由於製作的訓練集規模較小,為了進一步豐(fēng)富數據集,引入(rù)了實時Mosaic數(shù)據增強。每一次訓練(liàn)前,從訓練集中(zhōng)取出一個batch的圖片,從這個batch中隨機取出4張圖片進行裁剪拚接,重複batchsize次後生成新的一個(gè)batch的圖片放入網絡進行訓(xùn)練。通過這種圖像隨機組合拚接的方式,豐富檢測物體的背景,增(zēng)加數據集各尺度的(de)目標數量。其流程如(rú)下:

數據增強流程
第(dì)三步:網絡訓(xùn)練策略與超參數設定及遷移學習微調預訓練模型
利用“遷移學習”算法將設計好的網(wǎng)絡在其他數據(jù)集中進行特(tè)征學習,之後將學(xué)習到特征的(de)網絡進行部分網絡(luò)結構凍(dòng)結以保留學習到的特征,再將凍結部分結構的網絡以目標(biāo)任務的數據集進行預訓(xùn)練,預訓(xùn)練結束以後再將網絡解凍作為初始權重網絡。在遷移學習的(de)數據集中包含了變電站的各類(lèi)電表,如電壓表、電流表(biǎo)、功率表、SF6氣壓表等,其中大部分為圓形儀(yí)表圖像,但由於圖像分辨率低,大部分圖像連肉眼無(wú)法對儀表進(jìn)行(háng)讀數,因此僅作為遷移學習定位儀表用。
(1)損失函數改進優化
YOLO網絡的損失函數主要包含三部(bù)分:正負樣本的損失(shī)函數(shù)、預測種類的損失函數,以及(jí)IoU Loss。通過對IoU函數的改進新函(hán)數為GIoU,其中C表示包圍兩個框的最小外接矩形的麵積。通過矩形大小可以反(fǎn)映兩個(gè)框的距離,通過IoU反映相交程度,減(jiǎn)去二者未相交部分矩形(xíng)的比例,既能反映重合程度,又能對(duì)未重合的情況進行量化表示。

損失函數改進
(2)學(xué)習率
學習率采用了TensorFlow中的ReduceLROnPlateau方法(fǎ)控製,這(zhè)是一種在訓練過程(chéng)中逐步下降(jiàng)學習率的方法,使用固定學習率常常導致網絡訓練效果不理想,通過學習率逐步下降的方式既能在開始時損失函數收(shōu)斂更快,又(yòu)能在訓練到尾(wěi)聲時損失(shī)函數(shù)能夠收斂(liǎn)到較(jiào)小處。
(3)訓練策略
訓練策略方麵主要采用了三個策略:第一個策略是在訓練開始前需要凍結網絡的(de)部分權重,訓練過50個epoch之後再將權重解凍,主要是為了保持遷移學(xué)習(xí)所學習(xí)到(dào)的權重特(tè)征(zhēng);第二個策略是在訓練(liàn)過程中加入了Dropout策略,即全連接層有(yǒu)一定概率斷開部分連接,可以(yǐ)在訓練時減少參數量;第三個策略則是在訓練即將結束時,加入(rù)了Earlystop策略,即當(dāng)損失函數在一(yī)定數(shù)量的epoch之後不再變化(huà)時就認為已經達到最好的(de)效果,提前結束訓練。
將儀表(biǎo)裁剪出(chū)來進行指針(zhēn)的識別(bié)和讀數,基於霍夫圓檢測和(hé)輪廓檢測的指(zhǐ)針分(fèn)離算法,將指針在原(yuán)圖像上標識出(chū)來,並(bìng)使(shǐ)用極坐標展(zhǎn)開法和(hé)閾值分(fèn)割法進行關鍵刻度線的分離以及指針讀數,算法的基本流程如圖所示(shì)。


指針定位與(yǔ)自動讀數算法
(1)指針定位
使用高斯濾波對裁剪後的圖像進行降噪,將其轉換為灰度圖後采用自適應閾值二值化的方法獲取儀表盤的二值化圖像。


圖像預處理流程圖
經過霍夫圓檢測裁剪以後的圖像四角的背景已經被剔除,儀(yí)表圓心也被定位出來了(le),之後使用輪廓檢測算法來分離(lí)指針(zhēn)。為了進一步分離指針,采用了膨脹和腐蝕細化了表盤邊緣,進(jìn)一步突出了指針,最後采用霍夫直線檢測法。

表盤指針定位
(2)讀數計算
讀數計算通過分離刻度線來實(shí)現,通過極(jí)坐標(biāo)展開的方法進行刻度(dù)線分離,將儀表(biǎo)盤邊緣的(de)圓環展開(kāi)成一條矩形帶,矩(jǔ)形帶寬度為2/5r,長度為2πr,將圓環(huán)上的點記為(x,y)和原圖的坐標記(jì)為(X,Y),加入補償以後其對應關係(xì)如公式中w為(wéi)圓環長度2πr,r為(wéi)表盤半徑,W、H為原圖的寬(kuān)和高。


表盤拉伸對應關係式
展開之後如極坐標展開圖所示。將圓環帶進行二值化並經過一次膨脹和腐蝕操 作去除部分噪點幹擾(rǎo),如(rú)圓環帶二值化圖所示(shì)。之後使用一條縱向直線對圓環帶進行 橫向掃描,篩選出可能存在刻(kè)度線的位置,可以看到(dào)圖像中存在刻度線的位置(zhì), 其有效(xiào)像素(sù)會超過(guò)一定的閾值,通過多次試驗求得(dé)最佳(jiā)閾值為 4/9 的圓環帶寬度, 掃描並記(jì)錄下被認定為是刻度(dù)線的 X 坐標數組,並在圓環圖上以紅線標記。因為指針的存在,在橫向掃描時(shí)也會將指針所在位置判定為刻度線位置,可以利用極坐(zuò)標展開圖中最下方像素即指針位置標綠來排除指針對於刻度(dù)線定位的影響, 同時也將(jiāng)刻度線所在(zài)直線(xiàn)標紅。最終標記後圓環圖如關鍵刻度線分離圖(tú)所示。


刻(kè)度線分離流程圖
實際刻度線在圓環帶上存在一定寬度,因此在X坐標(biāo)數(shù)組中每(měi)處刻度(dù)線可能存在一簇連續(xù)的橫坐(zuò)標被記錄,因此需要對這些連續的X坐(zuò)標求平均作為該刻度(dù)線所在位置的坐標。除此之外,還需考慮當指針與關鍵刻度線重合,此時求平均後處理完的X坐標數組會少一個關鍵刻度信息,此時可以根據指針與左右(yòu)兩側刻度線數量的關係求出指(zhǐ)針所指向刻度的值。而當(dāng)指(zhǐ)針並未與關鍵刻度線(xiàn)重合時,記平(píng)均(jun1)後的關鍵刻度線(xiàn)數組為[X1,X2,,X3…Xn],刻度線對(duì)應數值記為[V1,V2,,V3…Vn],指針位置為T,利用位置關係與比例法公式計算讀數。


讀數計算公式
至此,整個基於(yú)深(shēn)度學(xué)習的機器視覺表計識別過程就已經結束了通過對樣本圖像數據的收集,樣本擴充,算法模型搭建、訓練,刻度線分離以及利用位置(zhì)關係與(yǔ)比例法公式計算讀數。
“Im-YOLOv4-Tiny 的表計識別算法”與(yǔ)“傳統的表計識別算法”相比,由於檢測(cè)的指針(zhēn)式(shì)儀(yí)表(biǎo)種(zhǒng)類、量程等各(gè)不相同,傳統的圖像處理後在進行表計識別的(de)兩段式識別不同的是,Im-YOLOv4-Tiny采用機器學習的方式進行自動識別(bié)讀數(shù),充分展示了利用機器(qì)視覺(jiào)算法對表(biǎo)計識別的可行性。
(3)實驗驗證(zhèng)
將算法應用(yòng)於(yú)實際采集中對表計進行讀(dú)數識(shí)別(bié),對於1000 張各種狀態下的儀表圖像(xiàng)進行機器視覺識表,最終識別成功 1000 張,識別失敗 0 張,識別成(chéng)功率達到了100%。偏差維持在±1%以內。以下是部分典型識別結果表(biǎo)和識別圖。
下(xià)圖:實驗驗證結(jié)果表


實驗驗證典型圖
對於(yú)基於Im-YOLOv4-Tiny的儀表定位算法,儀表定位已經比(bǐ)較準確,速度也能滿足實時性要求,使用基於輪廓檢測和極坐標展(zhǎn)開法的指針分離與讀數識別方法,在表盤的識別正確率上也能滿足一般工(gōng)業對表計識別準確度的(de)要求,並在項目中已得到驗證。
我國工業儀表和公用事業單位表計總量超過60億,廣泛應用於石(shí)油、燃氣、化工、電力、製造、水務等行(háng)業。儀表(biǎo)作(zuò)為生產經營活動中的關鍵核心計量設施(shī),在可靠性、穩定性、準確性方麵要求嚴苛。在生產過程中(zhōng)產生的數據作為關鍵(jiàn)過程(chéng)參數,對於保證生產安全、生產質(zhì)量及效益至關(guān)重要。利用視覺算法對(duì)儀表圖像進行識別和上傳,就能輕鬆地完成(chéng)所有儀表的讀數和記錄工作。這不僅大大簡化了(le)工作流程,節省了人(rén)力物力,還提高了工作效率,基於機器視覺的表計識別研究具有廣(guǎng)闊的市場前景。