馮文奇
河北省天然氣有限責(zé)任公司
在燃?xì)?、石油化工、電力等傳統(tǒng)工業(yè)中,需要使用各種類型的儀表來隨時監(jiān)測數(shù)據(jù),保障每個設(shè)備的正常運行。其中,指針式儀表由于構(gòu)造簡單、不易受環(huán)境影響和成本低等優(yōu)點,被廣泛應(yīng)用于上述場景中。但是指針式儀表通常不具備電子通訊接口,因此目前大多采用人工讀取的方式進(jìn)行記錄、統(tǒng)計與監(jiān)測。人工讀取的方法存在著諸多問題,首先,工作量大且工人容易疲勞,導(dǎo)致檢測效率低、誤差大或漏檢;其次,難以及時發(fā)現(xiàn)儀表異常,而且人工作業(yè)成本也較高。此外,英國BP 公司等國外公司已經(jīng)在站場數(shù)字化轉(zhuǎn)型中,通過無線智能終端來實現(xiàn)設(shè)備、儀表位置標(biāo)記與識別[1]。國內(nèi)油氣站場也正在探索數(shù)智化轉(zhuǎn)型,通過數(shù)據(jù)自動采集技術(shù)以及對信息系統(tǒng)整合升級,實現(xiàn)生產(chǎn)數(shù)據(jù)的融合與共享[2]。為了加速長輸站場數(shù)字化轉(zhuǎn)型,保障站場設(shè)備正常運行,有必要利用機器視覺、圖像處理等手段研發(fā)一種快速自動識別儀表示數(shù)的算法,以此實現(xiàn)對指針儀表的不間斷定期巡檢。
目前,針對儀表示數(shù)識別問題,國內(nèi)外研究人員根據(jù)不同研究方向提出了不同的解決路線。傳統(tǒng)儀表識別算法首先通過圓形檢測實現(xiàn)儀表定位,然后通過骨架提取算法、canny 邊緣檢測、Hough 變換算法以及區(qū)域生長算法等一系列的圖像處理算法檢測到表盤中指針、圓心、刻度線等關(guān)鍵信息,最后利用距離法、角度法進(jìn)行示數(shù)計算[3-5]。而工業(yè)場景中常伴隨光照、噪聲等干擾,傳統(tǒng)算法儀表示數(shù)識別率較低。KHAN W等針對儀表光照變化、模糊等干擾,提出了一種基于卷積操作的指針檢測方法,對動態(tài)環(huán)境變化的魯棒性有所提升[6]。KUCHERUK V等提出了一種基于指針旋轉(zhuǎn)中心位置,并結(jié)合ORB 特征提取來進(jìn)行儀表示數(shù)讀取的算法[7]。DAI等提出了將卷積神經(jīng)網(wǎng)絡(luò)用于溫度表的實時識別,但仍然局限于特定種類的溫度儀表[8]。徐發(fā)兵等提出利用優(yōu)化的YOLO9000網(wǎng)絡(luò)模型進(jìn)行儀表定位,然后通過改進(jìn)EAST(Efficient and Accuracy Scene Text 高效準(zhǔn)確的場景文本)算法提高表盤文字的提取能力,最后根據(jù)數(shù)字的位置信息,確定指針直線和儀表圓盤的圓心[9]。李金紅等提出了一種基于Faster R-CNN 檢測儀表圓盤和指針的算法,根據(jù)指針目標(biāo)框的位置信息裁剪得到指針圖像,在指針圖像的基礎(chǔ)上進(jìn)行二值化、細(xì)化、霍夫變換檢測直線、最小二乘法擬合直線等步驟識別儀表最終讀數(shù)[10]。董云龍等提出了一種基于細(xì)節(jié)注意力機制的卷積神經(jīng)網(wǎng)絡(luò)MSN 算法以提高刻度線提取能力,通過設(shè)計的細(xì)節(jié)注意力(detail-attention,DA)模塊有效地提升預(yù)測熱圖的空間平滑性、減少對非刻度線區(qū)域的響應(yīng)[11]。
綜上所述,基于傳統(tǒng)圖像處理的儀表識別方法無法適應(yīng)復(fù)雜多變的工業(yè)生產(chǎn)環(huán)境?;谏疃葘W(xué)習(xí)的指針式儀表自動讀數(shù)應(yīng)用,一般采用Faster-RCNN算法[12]、全卷積網(wǎng)絡(luò)FCN[13]以及YOLO算法[14]等實現(xiàn)儀表表盤定位,然后利用U-Net[15]、Deeplab[16]等圖像分割算法提取儀表指針,并通過DB[17](Differentiable Binarization 可微分二值化)、EAST[18]等算法進(jìn)行表盤數(shù)字檢測,CRNN[19](Convolutional Recurrent Neural Network 卷積遞歸神經(jīng)網(wǎng)絡(luò))等算法進(jìn)行文字識別。然而單純利用深度學(xué)習(xí)進(jìn)行識別需要多個模型,從而導(dǎo)致識別速度慢,而且當(dāng)表盤出現(xiàn)遮擋、污漬、逆光等情況時容易產(chǎn)生誤識別。
針對現(xiàn)有算法識別精度不高,場景適應(yīng)的魯棒性不強,算法復(fù)雜度高,無法實時處理的缺點,提出一種傳統(tǒng)方法與深度學(xué)習(xí)方法相結(jié)合的方法(區(qū)域分割+YOLOv5算法),使得指針儀表自動讀數(shù)算法趨于穩(wěn)定,對環(huán)境的適應(yīng)性變強。該方法具有以下特點:提出一種基于YOLOv5 的儀表檢測算法,用于工業(yè)場景中表盤定位;通過基于區(qū)域分割的算法將指針分割,并通過顏色信息、區(qū)域分割、旋轉(zhuǎn)矩形等步驟來識別示數(shù)。
燃?xì)狻⑹突は到y(tǒng)中指針儀表識別主要存在以下難點:現(xiàn)場環(huán)境復(fù)雜,容易受到光照影響導(dǎo)致難以準(zhǔn)確定位表盤區(qū)域,并進(jìn)行分類;儀表表盤經(jīng)常會出現(xiàn)各種缺陷,例如模糊、遮擋、污漬、指針陰影等現(xiàn)象,導(dǎo)致無法準(zhǔn)確進(jìn)行表盤定位、指針提取、刻度識別等(圖1);表盤種類多,且包含雙指針或警示條等,影響指針定位。
圖1 儀表表盤缺陷Fig.1 Defect of instrument dial
針對以上問題,提出首先使用YOLOv5進(jìn)行儀表定位,然后利用區(qū)域分割算法實現(xiàn)指針和刻度提取,最后根據(jù)先驗刻度值和指針角度實現(xiàn)示數(shù)讀取。算法流程如圖2所示。
圖2 自動儀表識別流程Fig.2 Flow of automatic instrument recognition
YOLOv5 算法損失函數(shù)分為三部分,其中分類損失和置信度損失采用二元交叉熵?fù)p失,采用GIoU 作為邊界框回歸的損失函數(shù)。GIoU 方法在克服了IoU 缺點的同時又充分利用IoU 的優(yōu)點。GIoU的公式如下:
式中:IoU為預(yù)測框與真實框的相交區(qū)域面積與并集面積的比值,即交并比;Ac為預(yù)測框與真實框最小閉包的區(qū)域面積,cm2;U為預(yù)測框與真實框的并集面積,cm2。
YOLO 系列算法是典型的單階段目標(biāo)檢測算法,經(jīng)過不斷更新迭代,已經(jīng)發(fā)展到Y(jié)OLOv5,由于其能一次性完成目標(biāo)定位與目標(biāo)分類兩個任務(wù),因此選擇YOLOv5作為機器人儀表檢測網(wǎng)絡(luò),如圖3所示。YOLOv5 輸入端使用Mosaic 數(shù)據(jù)增強、自適應(yīng)初始錨框計算、圖片縮放等對圖像進(jìn)行預(yù)處理;采用Focus 下采樣、改進(jìn)CSP(Cross Stage Partial Network跨階段局部網(wǎng)絡(luò))結(jié)構(gòu)、SPP(Spatial Pyramid Pooling 空間金字塔池化)池化金字塔結(jié)構(gòu),從輸入圖像中提取豐富的信息特征;使用PANet作為檢測項來聚合特征,Conv 卷積模塊的激活函數(shù)采用SiLU 函數(shù),實現(xiàn)了不同尺寸目標(biāo)特征信息的傳遞,解決了多尺度問題;Head 采用三種損失函數(shù)分別計算分類、定位和置信度損失,并通過NMS(Non-Maximum Suppression 非極大值抑制)提高網(wǎng)絡(luò)預(yù)測的準(zhǔn)確度。
圖3 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 YOLOv5 network structure
數(shù)據(jù)集全部來自于現(xiàn)實工業(yè)場景中的指針式儀表,并通過機器人進(jìn)行采集,圖片分辨率為1 920×1 080,共5 000 張圖片,這些數(shù)據(jù)圖片包含部分表盤缺陷數(shù)據(jù)(圖4),例如表盤遮擋、污漬、儀表不完整等。將采集到的數(shù)據(jù)通過Labelimg軟件進(jìn)行標(biāo)注,在標(biāo)注過程中選取出圖片中所有的儀表,自動生成xml文件,并制作成VOC數(shù)據(jù)集用于訓(xùn)練。
圖4 部分儀表數(shù)據(jù)Fig.4 Partial instrument data
實驗環(huán)境使用Ubuntu20.04 操作系統(tǒng),使用4 塊Nvidia TITAN X 顯卡進(jìn)行訓(xùn)練,采用YOLOv5目標(biāo)檢測模型。經(jīng)過目標(biāo)檢測模型檢測后如圖5所示。
圖5 部分儀表檢測圖Fig.5 Partial instrument detection diagram
對YOLOv5檢測到的指針式儀表表盤區(qū)域依次進(jìn)行圖像平滑、顏色校正、彩色增強處理。其中圖像平滑是為了去除圖像中產(chǎn)生的噪聲,減少噪點對識別示數(shù)的干擾。然后進(jìn)行顏色校正,以減少圖像中的顏色與真實世界的顏色誤差。最后采用對比度受限的自適應(yīng)直方圖均衡算法進(jìn)行增強,該算法在局部區(qū)域利用極限值對圖像直方圖進(jìn)行裁剪,使圖像不會出現(xiàn)過分增強。
采用均值濾波進(jìn)行平滑處理,其中濾波器的大小為3;使用灰度世界算法進(jìn)行顏色校正,灰度世界算法通過R、G、B 每個通道的顏色均值與三通道均值的增益更新RGB顏色的值,如公式(3)所示;采用伽馬變換進(jìn)行彩色增強,伽馬值取2,伽馬變換如公式(4)所示。
式中:kr為紅通道增益;kg為綠通道增益;kb為藍(lán)通道增益;meanrgb為紅、綠、藍(lán)三個通道的平均值;meanr為紅通道平均值;meang為綠通道平均值;meanb為藍(lán)通道平均值。
式中:s為線性變換后的輸出;c為灰度縮放系數(shù);r為圖像的每個像素點;γ為調(diào)節(jié)常數(shù)。
3.2.1 指針區(qū)域提取
表盤區(qū)域經(jīng)過預(yù)處理后,需要將RGB 空間圖像轉(zhuǎn)換成為HSV 顏色空間,以方便分離彩色和亮度信息,并且能夠保留彩色信息不變,為后續(xù)指針和刻度分離提供幫助。HSV 顏色空間由H(hue)、S(saturation)、V(intensity value)三個分量組成,更符合人眼視覺系統(tǒng),HSV顏色空間模型如圖6所示。
圖6 HSV顏色空間模型Fig.6 HSV color space model
獲得HSV 顏色空間后,進(jìn)行指針和刻度線提取。由于表記指針和刻度通常為了便于讀取,顏色常呈黑色,HSV 空間中黑色分量的范圍是H∈[0,180]、S∈[0,255]、V∈[0,46],為了進(jìn)一步擴大提取黑色的范圍,V的取值范圍設(shè)置為[0,60]。設(shè)此時顏色提取的結(jié)果為mask1。由于指針通常位于表盤中心附近,為了進(jìn)一步將指針區(qū)域提取出來,在圖像中心點附近利用分水嶺分割算法對mask1進(jìn)行區(qū)域分割,經(jīng)區(qū)域分割后即得到指針區(qū)域。獲得完整指針區(qū)域后,對連通分量進(jìn)行矩形框包圍,此時連通分量的長半軸與指針方向平行,且旋轉(zhuǎn)角度也相同,如圖7所示。
圖7 指針提取路線Fig.7 Pointer extraction route
3.2.2 指針角度確定
經(jīng)過上節(jié)得到旋轉(zhuǎn)角度后,指針還無法確定具體的轉(zhuǎn)向角度,需要根據(jù)指針頭的指向確定正確的角度。采用的方法是計算旋轉(zhuǎn)矩形的中心,建立與表記圖像大小等價的笛卡爾坐標(biāo)系(圖8),然后根據(jù)中心點落在笛卡爾坐標(biāo)系的象限位置來確定指針方位。按逆時針方向計算,每個象限的角度范圍是:Ⅰ∈[0°,90°)、Ⅱ∈[90°,180)、Ⅲ∈[180°,270°)、Ⅳ∈[270°,359°],例如中心點在第二象限,那么角度范圍應(yīng)該是[90°,180)。
圖8 笛卡爾坐標(biāo)Fig.8 Cartesian coordinate
3.2.3 刻度線區(qū)域提取
設(shè)旋轉(zhuǎn)矩形的中心點為圓心,計算旋轉(zhuǎn)矩形的長半軸的長度,取長半軸長度的0.7 倍作為半徑r。在mask1上,以mask1圓心為原點,r為半徑的內(nèi)接圓區(qū)域填充。在mask1 計算最大輪廓外接圓,并進(jìn)行形態(tài)學(xué)腐蝕,消除表盤區(qū)域,此時區(qū)域即為刻度線區(qū)域(圖9)。
圖9 最大輪廓外接圓與內(nèi)接圓、刻度線區(qū)域Fig.9 Maximum contour circumcircle and incircle,tick mark area
通過計算每個刻度線坐標(biāo)到圖像左下角和右下角坐標(biāo)的歐式距離,確定刻度線量程的坐標(biāo),即離圖像左下角和右下角最近點的坐標(biāo)。計算兩點到旋轉(zhuǎn)矩形中心的角度得到刻度量程的最大角度(Amax)與最小角度(Amin)。設(shè)此時指針的旋轉(zhuǎn)角度為Ar,量程范圍A與起始刻度值B已知,最終示數(shù)C如公式(5)得出。
為了對比YOLOv5算法和其他算法,選擇相同的數(shù)據(jù)集進(jìn)行不同模型的訓(xùn)練,并在不同光照、不同角度和不同背景下的儀表圖片進(jìn)行測試,圖片分辨率為1 920×1 080,共100 張圖片,其中部分圖片包含多個表,總共含有130 塊儀表。經(jīng)過測試,基于Hough圓檢測的傳統(tǒng)圖像算法檢測率和速度都非常低,難以滿足工業(yè)識別要求;基于圖像分割的U-Net、FCN 模型由于需要逐像素分析導(dǎo)致速度很慢;YOLOv3 和YOLOv4 模型[20]雖然優(yōu)于前者,但仍然未達(dá)到測試要求;而YOLOv5模型檢測儀表的誤檢率和漏檢率都低于其他目標(biāo)檢測算法,且識別速度快。但對于圖片十分模糊,或者儀表極度缺失的情況下,所有算法都容易出現(xiàn)漏檢。測試結(jié)果見表1。
表1 儀表目標(biāo)檢測測試結(jié)果Tab.1 Test results of instrument target detection
常規(guī)的指針式儀表識別方法通常是從圖像、灰度圖、二值圖、細(xì)化與形態(tài)學(xué)處理、Hough檢測直線,連通分量提取等過程。王東燦等在此基礎(chǔ)上增加了儀表指針通過圓盤圓心這個條件(Hough變換指針角度識別方法),選用該方法作為對比算法之一[21]。此外,分別選擇YOLOv5 檢測模型和Deeplabv3+[22]分割模型進(jìn)行對比實驗;為了減少識別的偶然性,分別選用黑色單指針、黑色單指針單紅線條和黑色指針雙紅線條三種表型各100 張進(jìn)行測試,且將識別誤差在2%以內(nèi)的儀表看作正確識別,如圖10所示。
圖10 測試圖(黑色單指針、黑色單指針單紅線條、黑色指針雙紅線條)Fig.10 Test charts(black single pointer,black single pointer with single red line,black single pointer with double red lines)
使用Hough變換指針角度識別方法測試時發(fā)現(xiàn)對于帶紅線條的表記,因紅線對指針的影響,該方法無法正確得到指針,所以對該方法加入去除紅色線條步驟來進(jìn)行對比。使用2 000 張不同類型表記分別進(jìn)行指針檢測和分割標(biāo)注工作,并完成Deeplabv3+和YOLOv5模型訓(xùn)練,測試結(jié)果見表2~表4。
表2 黑色單指針測試結(jié)果Tab.2 Test results of black single pointer
表3 黑色單指針單紅線條測試結(jié)果Tab.3 Test results of black single pointer with single red line
表4 黑色單指針雙紅線條測試結(jié)果Tab.4 Test results of black single pointer with double red lines
從三組對比數(shù)據(jù)可以看出,基于Deeplabv3+的指針提取的方法耗時最長,隨著紅色線條的增加識別率有所下降;基于YOLOv5指針提取的方法耗時與區(qū)域分割+YOLOv5 算法相當(dāng),但易受紅色線條影響導(dǎo)致識別率低;Hough變換指針角度識別方法耗時較長,識別結(jié)果也較差。區(qū)域分割+YOLOv5算法因算法結(jié)構(gòu)簡單,算法復(fù)雜度低,處理時間很短,且識別精度高于其他方法。在測試時還發(fā)現(xiàn)如果指針儀表有紅色線條干擾時,基于常規(guī)的方法會直接失敗,基于深度學(xué)習(xí)的方法魯棒性較差,而區(qū)域分割+YOLOv5 算法不會受到任何影響,所以適應(yīng)環(huán)境的魯棒性更好。
本文提出了基于深度學(xué)習(xí)目標(biāo)檢測與傳統(tǒng)圖像處理相結(jié)合的方法進(jìn)行指針儀表自動識別,包括儀表表盤定位、指針區(qū)域提取、刻度線區(qū)域提取和表記示數(shù)計算四個部分。由于現(xiàn)實場景中指針儀表經(jīng)常受到遮擋、模糊、紅線警示條等影響,難以準(zhǔn)確進(jìn)行表盤定位和指針提取,提出利用YOLOv5進(jìn)行表盤定位,能夠適應(yīng)環(huán)境準(zhǔn)確地定位到目標(biāo)區(qū)域,對于工作生產(chǎn)環(huán)境中的光照干擾,進(jìn)行了圖像平滑、顏色校正、彩色增強處理,以減弱現(xiàn)場光線的影響,通過現(xiàn)場實驗中圖像預(yù)處理過程可以將逆光狀態(tài)下的表計圖片處理至深度學(xué)習(xí)算法可識別的狀態(tài),這種處理方式可以有效減弱逆光對表盤帶來的影響。用區(qū)域分割的方法進(jìn)行指針區(qū)域提取和刻度線區(qū)域提取,通過圖像預(yù)處理和HSV 顏色空間變換等算法增強指針提取能力,并在指定范圍內(nèi)分割刻度線。最后通過計算指針角度和刻度線最大、最小角度計算儀表最終示數(shù)。與其他方法相比,區(qū)域分割+YOLOv5 誤檢、漏檢率低,儀表示數(shù)識別相對誤差小,準(zhǔn)確率高,且整體識別速度快,滿足工程要求,實用性更強。