馮文奇
河北省天然氣有限責任公司
在燃氣、石油化工、電力等傳統工業中,需要使用各種類型的儀表來隨時監測數據,保障每個設備的正常運行。其中,指針式儀表由于構造簡單、不易受環境影響和成本低等優點,被廣泛應用于上述場景中。但是指針式儀表通常不具備電子通訊接口,因此目前大多采用人工讀取的方式進行記錄、統計與監測。人工讀取的方法存在著諸多問題,首先,工作量大且工人容易疲勞,導致檢測效率低、誤差大或漏檢;其次,難以及時發現儀表異常,而且人工作業成本也較高。此外,英國BP 公司等國外公司已經在站場數字化轉型中,通過無線智能終端來實現設備、儀表位置標記與識別[1]。國內油氣站場也正在探索數智化轉型,通過數據自動采集技術以及對信息系統整合升級,實現生產數據的融合與共享[2]。為了加速長輸站場數字化轉型,保障站場設備正常運行,有必要利用機器視覺、圖像處理等手段研發一種快速自動識別儀表示數的算法,以此實現對指針儀表的不間斷定期巡檢。
目前,針對儀表示數識別問題,國內外研究人員根據不同研究方向提出了不同的解決路線。傳統儀表識別算法首先通過圓形檢測實現儀表定位,然后通過骨架提取算法、canny 邊緣檢測、Hough 變換算法以及區域生長算法等一系列的圖像處理算法檢測到表盤中指針、圓心、刻度線等關鍵信息,最后利用距離法、角度法進行示數計算[3-5]。而工業場景中常伴隨光照、噪聲等干擾,傳統算法儀表示數識別率較低。KHAN W等針對儀表光照變化、模糊等干擾,提出了一種基于卷積操作的指針檢測方法,對動態環境變化的魯棒性有所提升[6]。KUCHERUK V等提出了一種基于指針旋轉中心位置,并結合ORB 特征提取來進行儀表示數讀取的算法[7]。DAI等提出了將卷積神經網絡用于溫度表的實時識別,但仍然局限于特定種類的溫度儀表[8]。徐發兵等提出利用優化的YOLO9000網絡模型進行儀表定位,然后通過改進EAST(Efficient and Accuracy Scene Text 高效準確的場景文本)算法提高表盤文字的提取能力,最后根據數字的位置信息,確定指針直線和儀表圓盤的圓心[9]。李金紅等提出了一種基于Faster R-CNN 檢測儀表圓盤和指針的算法,根據指針目標框的位置信息裁剪得到指針圖像,在指針圖像的基礎上進行二值化、細化、霍夫變換檢測直線、最小二乘法擬合直線等步驟識別儀表最終讀數[10]。董云龍等提出了一種基于細節注意力機制的卷積神經網絡MSN 算法以提高刻度線提取能力,通過設計的細節注意力(detail-attention,DA)模塊有效地提升預測熱圖的空間平滑性、減少對非刻度線區域的響應[11]。
綜上所述,基于傳統圖像處理的儀表識別方法無法適應復雜多變的工業生產環境。基于深度學習的指針式儀表自動讀數應用,一般采用Faster-RCNN算法[12]、全卷積網絡FCN[13]以及YOLO算法[14]等實現儀表表盤定位,然后利用U-Net[15]、Deeplab[16]等圖像分割算法提取儀表指針,并通過DB[17](Differentiable Binarization 可微分二值化)、EAST[18]等算法進行表盤數字檢測,CRNN[19](Convolutional Recurrent Neural Network 卷積遞歸神經網絡)等算法進行文字識別。然而單純利用深度學習進行識別需要多個模型,從而導致識別速度慢,而且當表盤出現遮擋、污漬、逆光等情況時容易產生誤識別。
針對現有算法識別精度不高,場景適應的魯棒性不強,算法復雜度高,無法實時處理的缺點,提出一種傳統方法與深度學習方法相結合的方法(區域分割+YOLOv5算法),使得指針儀表自動讀數算法趨于穩定,對環境的適應性變強。該方法具有以下特點:提出一種基于YOLOv5 的儀表檢測算法,用于工業場景中表盤定位;通過基于區域分割的算法將指針分割,并通過顏色信息、區域分割、旋轉矩形等步驟來識別示數。
燃氣、石油化工系統中指針儀表識別主要存在以下難點:現場環境復雜,容易受到光照影響導致難以準確定位表盤區域,并進行分類;儀表表盤經常會出現各種缺陷,例如模糊、遮擋、污漬、指針陰影等現象,導致無法準確進行表盤定位、指針提取、刻度識別等(圖1);表盤種類多,且包含雙指針或警示條等,影響指針定位。

圖1 儀表表盤缺陷Fig.1 Defect of instrument dial
針對以上問題,提出首先使用YOLOv5進行儀表定位,然后利用區域分割算法實現指針和刻度提取,最后根據先驗刻度值和指針角度實現示數讀取。算法流程如圖2所示。

圖2 自動儀表識別流程Fig.2 Flow of automatic instrument recognition
YOLOv5 算法損失函數分為三部分,其中分類損失和置信度損失采用二元交叉熵損失,采用GIoU 作為邊界框回歸的損失函數。GIoU 方法在克服了IoU 缺點的同時又充分利用IoU 的優點。GIoU的公式如下:
式中:IoU為預測框與真實框的相交區域面積與并集面積的比值,即交并比;Ac為預測框與真實框最小閉包的區域面積,cm2;U為預測框與真實框的并集面積,cm2。
YOLO 系列算法是典型的單階段目標檢測算法,經過不斷更新迭代,已經發展到YOLOv5,由于其能一次性完成目標定位與目標分類兩個任務,因此選擇YOLOv5作為機器人儀表檢測網絡,如圖3所示。YOLOv5 輸入端使用Mosaic 數據增強、自適應初始錨框計算、圖片縮放等對圖像進行預處理;采用Focus 下采樣、改進CSP(Cross Stage Partial Network跨階段局部網絡)結構、SPP(Spatial Pyramid Pooling 空間金字塔池化)池化金字塔結構,從輸入圖像中提取豐富的信息特征;使用PANet作為檢測項來聚合特征,Conv 卷積模塊的激活函數采用SiLU 函數,實現了不同尺寸目標特征信息的傳遞,解決了多尺度問題;Head 采用三種損失函數分別計算分類、定位和置信度損失,并通過NMS(Non-Maximum Suppression 非極大值抑制)提高網絡預測的準確度。

圖3 YOLOv5網絡結構Fig.3 YOLOv5 network structure
數據集全部來自于現實工業場景中的指針式儀表,并通過機器人進行采集,圖片分辨率為1 920×1 080,共5 000 張圖片,這些數據圖片包含部分表盤缺陷數據(圖4),例如表盤遮擋、污漬、儀表不完整等。將采集到的數據通過Labelimg軟件進行標注,在標注過程中選取出圖片中所有的儀表,自動生成xml文件,并制作成VOC數據集用于訓練。

圖4 部分儀表數據Fig.4 Partial instrument data
實驗環境使用Ubuntu20.04 操作系統,使用4 塊Nvidia TITAN X 顯卡進行訓練,采用YOLOv5目標檢測模型。經過目標檢測模型檢測后如圖5所示。

圖5 部分儀表檢測圖Fig.5 Partial instrument detection diagram
對YOLOv5檢測到的指針式儀表表盤區域依次進行圖像平滑、顏色校正、彩色增強處理。其中圖像平滑是為了去除圖像中產生的噪聲,減少噪點對識別示數的干擾。然后進行顏色校正,以減少圖像中的顏色與真實世界的顏色誤差。最后采用對比度受限的自適應直方圖均衡算法進行增強,該算法在局部區域利用極限值對圖像直方圖進行裁剪,使圖像不會出現過分增強。
采用均值濾波進行平滑處理,其中濾波器的大小為3;使用灰度世界算法進行顏色校正,灰度世界算法通過R、G、B 每個通道的顏色均值與三通道均值的增益更新RGB顏色的值,如公式(3)所示;采用伽馬變換進行彩色增強,伽馬值取2,伽馬變換如公式(4)所示。
式中:kr為紅通道增益;kg為綠通道增益;kb為藍通道增益;meanrgb為紅、綠、藍三個通道的平均值;meanr為紅通道平均值;meang為綠通道平均值;meanb為藍通道平均值。
式中:s為線性變換后的輸出;c為灰度縮放系數;r為圖像的每個像素點;γ為調節常數。
3.2.1 指針區域提取
表盤區域經過預處理后,需要將RGB 空間圖像轉換成為HSV 顏色空間,以方便分離彩色和亮度信息,并且能夠保留彩色信息不變,為后續指針和刻度分離提供幫助。HSV 顏色空間由H(hue)、S(saturation)、V(intensity value)三個分量組成,更符合人眼視覺系統,HSV顏色空間模型如圖6所示。

圖6 HSV顏色空間模型Fig.6 HSV color space model
獲得HSV 顏色空間后,進行指針和刻度線提取。由于表記指針和刻度通常為了便于讀取,顏色常呈黑色,HSV 空間中黑色分量的范圍是H∈[0,180]、S∈[0,255]、V∈[0,46],為了進一步擴大提取黑色的范圍,V的取值范圍設置為[0,60]。設此時顏色提取的結果為mask1。由于指針通常位于表盤中心附近,為了進一步將指針區域提取出來,在圖像中心點附近利用分水嶺分割算法對mask1進行區域分割,經區域分割后即得到指針區域。獲得完整指針區域后,對連通分量進行矩形框包圍,此時連通分量的長半軸與指針方向平行,且旋轉角度也相同,如圖7所示。

圖7 指針提取路線Fig.7 Pointer extraction route
3.2.2 指針角度確定
經過上節得到旋轉角度后,指針還無法確定具體的轉向角度,需要根據指針頭的指向確定正確的角度。采用的方法是計算旋轉矩形的中心,建立與表記圖像大小等價的笛卡爾坐標系(圖8),然后根據中心點落在笛卡爾坐標系的象限位置來確定指針方位。按逆時針方向計算,每個象限的角度范圍是:Ⅰ∈[0°,90°)、Ⅱ∈[90°,180)、Ⅲ∈[180°,270°)、Ⅳ∈[270°,359°],例如中心點在第二象限,那么角度范圍應該是[90°,180)。

圖8 笛卡爾坐標Fig.8 Cartesian coordinate
3.2.3 刻度線區域提取
設旋轉矩形的中心點為圓心,計算旋轉矩形的長半軸的長度,取長半軸長度的0.7 倍作為半徑r。在mask1上,以mask1圓心為原點,r為半徑的內接圓區域填充。在mask1 計算最大輪廓外接圓,并進行形態學腐蝕,消除表盤區域,此時區域即為刻度線區域(圖9)。

圖9 最大輪廓外接圓與內接圓、刻度線區域Fig.9 Maximum contour circumcircle and incircle,tick mark area
通過計算每個刻度線坐標到圖像左下角和右下角坐標的歐式距離,確定刻度線量程的坐標,即離圖像左下角和右下角最近點的坐標。計算兩點到旋轉矩形中心的角度得到刻度量程的最大角度(Amax)與最小角度(Amin)。設此時指針的旋轉角度為Ar,量程范圍A與起始刻度值B已知,最終示數C如公式(5)得出。
為了對比YOLOv5算法和其他算法,選擇相同的數據集進行不同模型的訓練,并在不同光照、不同角度和不同背景下的儀表圖片進行測試,圖片分辨率為1 920×1 080,共100 張圖片,其中部分圖片包含多個表,總共含有130 塊儀表。經過測試,基于Hough圓檢測的傳統圖像算法檢測率和速度都非常低,難以滿足工業識別要求;基于圖像分割的U-Net、FCN 模型由于需要逐像素分析導致速度很慢;YOLOv3 和YOLOv4 模型[20]雖然優于前者,但仍然未達到測試要求;而YOLOv5模型檢測儀表的誤檢率和漏檢率都低于其他目標檢測算法,且識別速度快。但對于圖片十分模糊,或者儀表極度缺失的情況下,所有算法都容易出現漏檢。測試結果見表1。

表1 儀表目標檢測測試結果Tab.1 Test results of instrument target detection
常規的指針式儀表識別方法通常是從圖像、灰度圖、二值圖、細化與形態學處理、Hough檢測直線,連通分量提取等過程。王東燦等在此基礎上增加了儀表指針通過圓盤圓心這個條件(Hough變換指針角度識別方法),選用該方法作為對比算法之一[21]。此外,分別選擇YOLOv5 檢測模型和Deeplabv3+[22]分割模型進行對比實驗;為了減少識別的偶然性,分別選用黑色單指針、黑色單指針單紅線條和黑色指針雙紅線條三種表型各100 張進行測試,且將識別誤差在2%以內的儀表看作正確識別,如圖10所示。

圖10 測試圖(黑色單指針、黑色單指針單紅線條、黑色指針雙紅線條)Fig.10 Test charts(black single pointer,black single pointer with single red line,black single pointer with double red lines)
使用Hough變換指針角度識別方法測試時發現對于帶紅線條的表記,因紅線對指針的影響,該方法無法正確得到指針,所以對該方法加入去除紅色線條步驟來進行對比。使用2 000 張不同類型表記分別進行指針檢測和分割標注工作,并完成Deeplabv3+和YOLOv5模型訓練,測試結果見表2~表4。

表2 黑色單指針測試結果Tab.2 Test results of black single pointer

表3 黑色單指針單紅線條測試結果Tab.3 Test results of black single pointer with single red line

表4 黑色單指針雙紅線條測試結果Tab.4 Test results of black single pointer with double red lines
從三組對比數據可以看出,基于Deeplabv3+的指針提取的方法耗時最長,隨著紅色線條的增加識別率有所下降;基于YOLOv5指針提取的方法耗時與區域分割+YOLOv5 算法相當,但易受紅色線條影響導致識別率低;Hough變換指針角度識別方法耗時較長,識別結果也較差。區域分割+YOLOv5算法因算法結構簡單,算法復雜度低,處理時間很短,且識別精度高于其他方法。在測試時還發現如果指針儀表有紅色線條干擾時,基于常規的方法會直接失敗,基于深度學習的方法魯棒性較差,而區域分割+YOLOv5 算法不會受到任何影響,所以適應環境的魯棒性更好。
本文提出了基于深度學習目標檢測與傳統圖像處理相結合的方法進行指針儀表自動識別,包括儀表表盤定位、指針區域提取、刻度線區域提取和表記示數計算四個部分。由于現實場景中指針儀表經常受到遮擋、模糊、紅線警示條等影響,難以準確進行表盤定位和指針提取,提出利用YOLOv5進行表盤定位,能夠適應環境準確地定位到目標區域,對于工作生產環境中的光照干擾,進行了圖像平滑、顏色校正、彩色增強處理,以減弱現場光線的影響,通過現場實驗中圖像預處理過程可以將逆光狀態下的表計圖片處理至深度學習算法可識別的狀態,這種處理方式可以有效減弱逆光對表盤帶來的影響。用區域分割的方法進行指針區域提取和刻度線區域提取,通過圖像預處理和HSV 顏色空間變換等算法增強指針提取能力,并在指定范圍內分割刻度線。最后通過計算指針角度和刻度線最大、最小角度計算儀表最終示數。與其他方法相比,區域分割+YOLOv5 誤檢、漏檢率低,儀表示數識別相對誤差小,準確率高,且整體識別速度快,滿足工程要求,實用性更強。