?

面向巡檢機器人的指針式儀表讀數識別方法

2022-11-21 04:38莫明飛高阿朋周明哲
電力大數據 2022年4期
關鍵詞:讀數指針刻度

莫明飛,高阿朋,周明哲

(國網內蒙古東部電力有限公司,內蒙古 呼和浩特 010010)

變電站內由于高低壓回路設備操作、雷電浪涌、輸電線路輻射等會產生大量的電磁干擾,而指針式儀表具有構造簡單、抗干擾性強的特點,被廣泛地部署在變電站內,常見的有SF6壓力表、避雷器泄漏電流表、油溫表、液壓表、繞組溫度表等。變電站巡檢中一項重要的工作是獲得大量儀表的讀數,用于判斷各類電力設備是否正常工作。由于人工巡檢的效率較低,且對于巡檢員來說具有一定的危險性,近年來已逐漸采用巡檢機器人替代人工進行巡檢[1-2]。面對巡檢機器人采集的大量的變電站指針式儀表的圖片,研發一種高效準確獲得儀表讀數的算法,對于提升變電站巡檢效率、保障電網系統穩定運行有著十分重要的理論意義和應用價值[3-5]。

現階段已有一些針對不同類型指針儀表讀數識別的研究成果[6-9],傳統方法是首先利用基于模板匹配[10]、基于特征點檢測匹配[11-12]等方法進行儀表定位,然后二值化儀表的表盤圖像,再利用基于霍夫變換、快速直線檢測、Canny邊緣檢測[13]等方法檢測指針及刻度,最終完成自動讀數。這類方法在檢測儀表時,大多會選擇尺度不變特征變換(scale-invariant feature transform, SIFT)、ORB等特征點檢測匹配算法,但復雜場景中儀表圖像存在較多遮擋、形變等情況,會使角點檢測產生大量誤匹配。而且這類方法對圖像中儀表的位置、儀表圖像的清晰度、是否有遮擋等都有較高要求,如果儀表表盤存在干擾條紋,則會對指針、刻度線段的識別造成很大影響。除傳統方法外,文獻[14]提出了最大類間方差算法來提取儀表指針區域,然后通過增加約束條件來提升基于霍夫變換進行指針角度識別的精度。文獻[15]利用二進制描述器獲取表盤區域,再利用圓周區域累積直方圖(circle based regional cumulative histogram, CRH)方法確定指針位置。文獻[16]采用區域增長和中心投影的方法來定位表盤刻度區域及刻度,然后利用霍夫變化方法通過指針輪廓擬合得到指針方向。隨著深度學習技術的廣泛應用,也有研究人員利用基于深度學習的目標檢測方法進行儀表定位,如文獻[17-19]分別利用CNN、Mask-RCNN、改進的YOLOv3來檢測復雜背景中的儀表,相對于傳統方法來說,在儀表檢測的準確率上有了較大的提高。但上述方法在檢測指針及刻度時,多數仍采用傳統方法,限制了其實用性。

但是現有的研究多數都是針對高質量的儀表圖像進行檢測和識別,即輸入的圖像中表盤區域較大、表盤圖像非常清晰、拍攝時相機基本與表盤無夾角。若讓巡檢機器人拍攝的儀表圖像滿足上述要求,需要人工提前進行大量的測量、標定和調試工作,這在實際操作過程中很難完成,而且變電站內儀表的安裝位置、盤表的朝向等條件未必能夠滿足高質量圖像的采集要求。所以,利用巡檢機器人拍攝的原始圖像通常都具有以下特點:(1)具有較為復雜的背景;(2)儀表盤表面通常會附有污濁物;(3)儀表表盤與圖像平面存在夾角。在這種情況下,這些方法則很難滿足巡檢機器人場景中的實際使用要求。

針對巡檢機器人采集的儀表圖像,本文首先通過基于深度學習的目標檢測網絡(YOLOv5)準確定位復雜背景中的儀表位置,排除畫面中其他物體對后續處理的影響。然后通過輪廓擬合、透視變換的方法對表盤傾斜進行校準。針對矯正后的儀表表盤圖像,利用改進后的Deeplabv3+模型對表盤圖像進行圖像分割,獲得表針及刻度。最后通過極坐標轉換的方法將表盤展開成矩形,在矩形表盤上定位刻度與指針后計算獲得儀表的讀數。本文研究的內容一方面分析了巡檢機器人拍攝的儀表照片的特點,并針對這些特點在關鍵步驟上引入了基于深度學習的方法,解決了傳統方法處理這些問題時的不足,有效地提升了儀表讀數計算的準確性;另一方面通過對Deeplabv3+模型的改進,提供了更細粒度的高維空間語義分割能力,實現密集性目標的定位分割,提高了分割表盤刻度和指針的準確率。

1 指針式儀表讀數自動識別方法

針對巡檢機器人獲取圖像數據的特點及傳統識別方法的不足,本文采用了基于深度學習的儀表檢測和儀表刻度指針分割方法,通過準確定位表盤圖像并精準分割刻度線和指針,實現自動準確的識別儀表讀數。

本文提出的方法思路如下:首先,利用基于深度學習的目標檢測模型(YOLOv5),檢測巡檢機器人拍攝的圖像中的儀表,同時獲得儀表的類型,使得后續處理只用分析儀表本體的圖像,不用考慮背景干擾,達到減輕后續分析計算量的目的;其次,針對獲取到的儀表表盤圖像,通過透視變換算法對其進行校準,使得圖像中的表盤恢復為圓形且儀表刻度分布均勻,有利于提升后續分割處理的精準度;再次,針對儀表刻度和指針的特點(目標密集、刻度和指針尺寸相差較大),利用本文改進后的Deeplabv3+圖像分割技術,對表盤中的刻度和指針進行精準分割,獲得只包含刻度和指針像素的分割圖像;最后,利用圖像極坐標轉換等方法,結合儀表類型信息,對分割結果圖像進行分析,最終得到儀表的讀數信息?;具^程如圖1所示。

圖1 指針儀表讀數自動識別過程Fig.1 Automatic recognition process of pointer instrument reading

2 基于YOLOv5的儀表檢測

2.1 YOLOv5網絡結構簡述

基于深度學習的目標檢測算法主要可以分為兩類:兩階段檢測算法和單階段檢測算法[20-23]。前一種類型首先是找到目標出現位置的眾多候選區域,再使用卷積神經網絡對候選區域進行分類,在每個類別中使用非極大值抑制來得到目標的最終位置,主要代表就是R-CNN(regions with CNN features)系列[24],其中以Faster-RCNN性能最優[25];后一種類型將目標檢測視為回歸問題,省去了生成候選區域階段,直接由網絡產生目標的位置坐標和類別概率,主要代表模型有SSD系列[26]和YOLO系列。

最新的YOLOv5于2020年推出,屬于目前非常優秀的檢測網絡。YOLOv5共分為YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x四個模型,在網絡復雜程度上和準確率依次遞增、處理速度依次下降,可以適用于不同要求的應用場景。雖然四個模型在網絡規模上有所不同,但都包含輸入模塊(input)、主干網絡(backbone)、特征融合模塊(neck)和預測模塊(prediction),具體如圖2所示。

圖2 YOLOv5網絡結構Fig.2 YOLOv5 networkstructure

為了豐富輸入的數據集,YOLOv5在輸入模塊中加入了Mosaic方法,對輸入的圖像進行多種隨機操作以實現數據增強的目的,包括隨機的縮放、裁剪、排布等,讓網絡能夠更好地學習和識別小目標。YOLOv5還加入了自適應計算初始錨框的能力,在訓練階段時,可以自動計算不同訓練集的最佳初始錨框,不斷迭代更新,使網絡在訓練階段具有更好的適應性,而不必像YOLOv3或者YOLOv4那樣還需要單獨運行相應的計算程序,并且在訓練過程中無法更新。此外,YOLOv5還改進了自適應縮放的算法,以增加網絡的推理速度。

主干網絡采用了Focus結構和CSP結構。其中,Focus結構的關鍵是進行切片操作,例如輸入圖像的分辨率為608×608×3,經過切片操作和32個卷積核的卷積操作后,最終變成304×304×32的特征圖。YOLOv5中包含了兩種CSP結構:CSP1_X結構和CSP2_X結構,前者應用在主干網絡中,后者應用在特征融合模塊中。

特征融合模塊使用了特征金字塔網絡(FPN)和金字塔注意力網絡(PAN)融合的結構。特征金字塔網絡采用自頂向下的方法,利用上采樣融合、傳遞高層特征信息。金字塔注意力網絡則采用自底向上的方式傳遞強定位特征。兩者同時使用以加強網絡特征融合能力。

在YOLOv5的預測模塊中,候選框的損失函數未采用傳統的IOU_Loss,而是采用了改進后的CIOU_Loss,考慮了真實框和候選框高寬比的尺度信息,提高了候選框的回歸效率和準確率。在后處理階段,針對目標遮擋的情況,YOLOv5采用了加權后的非極大值抑制,使其對于被遮擋目標的檢測性能有所提升。

2.2 YOLOv5在儀表檢測中的應用

在巡檢機器人拍攝的圖像中,儀表表盤區域占比通常較小,需要采用高準確率的檢測模型。在YOLOv5的四個模型中,YOLOv5x擁有最大的網絡深度,如表1所示。

表1 YOLOv5殘差組件列表Tab.1 YOLOv5 residual components list

YOLOv5x在CSP1和CSP2結構中都擁有最多的殘差組件,如在第一個CSP1結構中使用了4個殘差組件,即CSP1_4,其他類似。隨著網絡的不斷加深,圖像的特征可以更有效的被提取出來,并進行融合。同時,YOLOv5結構在不同階段的卷積核的數量也是不一樣的,例如在第一個Focus結構中,YOLOv5x擁有80個卷積核,最輕量的YOLOv5s只有32個卷積核,YOLOv5x的卷積核是YOLOv5s的2.5倍。卷積核的數量越多,網絡提取圖像特征的學習能力也越強。所以,在保證準確率的前提下,本文選擇YOLOv5x模型檢測巡檢圖像中的儀表表盤區域。

針對巡檢機器人拍攝的各類儀表圖像,本文使用開源的圖像數據標注工具制作訓練集:在巡檢圖像中框選儀表表盤,并輸入儀表類型的標簽。同時,為了保證模型的泛化性和準確率,訓練集由不同時間、天氣、光照、角度的圖像組成,并加入占總量約1%的背景圖像(即圖像中沒有儀表)來減少誤報。訓練的過程中為了加快訓練速度,通過weights標志加載了預訓練的權重。圖3展示了訓練后的YOLOv5x模型的檢測效果,從檢測的結果可以發現,在不同的條件下,YOLOv5x模型均可以準確地檢測到圖像中的儀表表盤,并正確的給出儀表的類型,說明訓練的模型達到預期的效果。

圖3 YOLOv5x儀表表盤檢測結果Fig.3 Instrument dial detection result by YOLOv5x

3 透視變換儀表圖像校準

由于巡檢機器人的攝像頭在拍攝圖像時很難與儀表完全保持平行,所以通過YOLOv5x檢測和提取到的儀表表盤圖像多數會存在一定的傾斜,導致表盤形狀不規則、刻度不均勻等問題,對后續的處理產生影響。所以,本文利用透視變換算法對表盤圖像進行校準。

透視變換的基本原理是將原圖片平面投影到三維空間,然后再映射到一個新的視平面。假設原圖像上點的坐標是(x,y,z),通常設置z=1,在三維投影空間中的坐標為(X,Y,Z),在新視平面的坐標為(x′,y′,z′),投影變換矩陣為T,則有:

(1)

(2)

(3)

針對每類儀表,提前獲取該類儀表的模板圖像,即攝像頭與儀表表盤平行時拍攝的圖像。對于巡檢機器人拍攝的儀表圖像,根據YOLOv5x的分類結果選取相應類別的模板圖像,獲取儀表圖像和模板圖像上匹配的特征點對及其坐標,利用公式(1)計算得到投影變換矩陣T,然后根據投影變換矩陣T以及公式(2)和公式(3)對提取到的儀表圖像進行校準。圖4為利用上述方法校準表盤圖像的樣例。

(a)原儀表圖像 (b)校準后圖像(a)Original (b)After calibration圖4 儀表表盤校準結果Fig.4 Instrument dial calibration result

4 基于DeepLabv3+的儀表刻度及指針分割

4.1 Deeplabv3+在儀表圖像分割應用中存在的不足

Deeplabv3+的網絡結構采用Encoder+Decoder的編解碼方式,很好地解決了以往圖像分割邊界定位不準確的問題。所采用的空洞卷積金字塔池化的方式,有效地降低了參數數列,提高了網路推理計算效率。Deeplabv3+優點具體表現兩點:(1)在Encoder端,采用不同rate的空洞卷積來實現空洞卷積的空間金字塔池化ASPP(atrous spatial pyramid pooling)模塊,進一步擴展了網絡模型的高層多尺度信息??斩淳矸e是DeepLabv3+模型的關鍵,其感受野更大,可以在保持運算量的同時不減小特征尺寸,從而獲得更密集的特征信息。(2)在Decoder端,模型結構融合了DCNN(depth CNN)的淺層特征(low-level features)信息來提升圖像分割的邊界精度。

由于儀表的刻度通常都較為密集、刻度和指針的體積相差也較大,且表盤上多數情況下會有污濁物。直接將Deeplabv3+應用于儀表刻度和指針分割時時會碰到以下不足:(1)DCNN中的高層特征具有局部圖像變換的內在不變性,使得網絡結構可以Decoder階段學習越來越抽象的特征表示。但DCNN中的池化操作或者下采樣方法,都會引起的特征分辨率的下降,DeepLabv3系列解決這一問題的方法是使用空洞卷積,它使得模型結構在保持參數量和計算量的同時提升計算特征響應的分辨率,從而獲得更多的上下文。但對圖像中密集性目標的定位預測任務時,需要更為豐富的高層空間信息。(2)Decoder階段僅僅融合了網絡Encoder的單個淺層信息,其有效信息具有一定的局限性,導致在多尺度目標分割時信息損失較多,會造成精度下降。

4.2 Deeplabv3+在儀表圖像分割中的改進

針對上述不足,本文對Deeplabv3+進行了如下改進。

(1)在Encoder端使用了基于Jigsaw Patches的漸進式多粒度編碼學習

漸進式訓練方法最初是針對生成式高級網絡提出的,它從低分辨率圖像開始,然后通過向網絡中添加層來逐步提高分辨率。這種策略不需要學習所有尺度的信息,而是允許網絡發現圖像分布的大規模結構,然后將注意力轉移到尺度越來越小的細節上。

本文針對儀表刻度的特點,提出以拼圖補丁(jigsaw patches)的數據輸入方式,進行階梯式漸進特征編碼的訓練學習方法,改進后的網絡結構如圖5所示。

圖5 基于Jigsaw-Patches的漸進式編、解碼結構Fig.5 Progressive encoding and decoding structure based on Jigsaw-Patches

在Encoder表征學習中,使用拼圖的方法為漸進式訓練的不同步驟生成輸入原始圖像和標簽圖像,實現密集性目標的定位分割預測,提供更為細粒的高維空間語義分割能力,同時針對類間距微小的不同分割對象,提供更精細粒度的特征。同時,該方法可有效地解決數據源單一的問題,提高模型的泛化能?;贘igsaw-Patches的漸進式編碼結構參數表如下所示。

表2 基于Jigsaw-Patches的漸進式編碼結構參數表Tab.2 Progressive encoding and decoding structure parameters

續表2

(2)在Decoder端改進了多尺度特征融合解碼方式

深層網絡的感受野比較大,語義信息表征能力強,但是下采樣會導致特征圖尺寸越來越小,使得特征圖缺乏幾何特征細節;相反,低層網絡的感受野比較小,但由于特征圖的分辨率較高,擁有較多的幾何特征細節,但是缺乏語義特征信息。在本文的Decoder端中,采用了低維與淺高層特征融合增強的方式,其目的在于增大尺度空間上的感受視野,保留不同層級的語義信息,防止關鍵的細微特征丟失。也就是在保留空間信息的同時,使得語義信息保持不變,提升分割邊界準確度,一定程度上解決了表盤污濁時的分割問題。

本文以Step1、Step2、Step3的Jigsaw Patches輸出特征分別作為ConvBlock1、ConvBlock2、ConvBlock3的輸入,然后將ConvBlock1、ConvBlock2、ConvBlock3輸出的淺層特征(low features)進行融合拼接,實現改進的多尺度淺層特征融合,具體如圖6所示。

圖6 改進的多尺度淺層特征融合結構Fig.6 Improved multi-scale shallow feature fusion structure

基于改進后的Deeplabv3+進行儀表刻度和表針分割的結果如圖7所示,測試結果顯示刻度和指針的像素分類結果基本正確,說明文本改進的Deeplabv3+網絡能夠準確地從表盤背景中分離刻度和指針。在獲得分割圖像后,還可以對分割圖進行腐蝕操作,進一步消除分割圖像中的噪聲。

(a)儀表表盤原圖 (b)分割圖 (c)腐蝕后的分割圖(a)Original (b)Segmentation (c)Segmentation after corrosion圖7 儀表刻度和指針分割效果圖Fig.7 Example of instrument scale and pointer segmentation

5 儀表讀數識別

巡檢機器人拍攝的圖像通過儀表檢測、圖像校準、儀表刻度指針分割的處理后,可以得到表盤的最小外接矩形框,以及刻度線和指針線在圖像中的位置。以目標檢測結果矩形框的中心點為基點,利用圖像極坐標轉換方法,將圓弧狀的表盤刻度展開為矩形,具體如圖8所示。

(a)展開前 (b)展開后(a)Before streching (b)After streching圖8 儀表刻度展開處理示例Fig.8 Example of instrument scale expansion

利用圖像投影法對儀表刻度展開后的結果圖進行處理,將所有像素投影到x軸方向,包括刻度像素與指針像素。經投影計算后,二維的展開圖轉換成為一維數組。其中,一維數組的長度為原展開圖像的圖像長度。局部投影結果如圖9所示。

圖9 儀表刻度展開圖局部投影結果Fig.9 Local projection of instrument scale expansion

得到一維數組后,對一維數組中非零的區域做均值處理,具體的計算方法是,將每個局部非零區域的最小下標與最大下標相加求均值,得出所有刻度和指針的位置,即可以定位指針在刻度中的哪個區間內。然后根據目標檢測結果給出的儀表類型,獲得預設的儀表的測量上限值和測量下限值,利用儀表量程(量程=測量上限值-測量下限值)除以刻度數量得到每一格代表的數值。對于測量下限值為正數的儀表,其讀數為指針相對位置與每一格代表數值的乘積;對于最小值為負數的儀表(如SF6壓力表,最小值為-0.1),其讀數為指針相對位置與每一格代表數值的乘積,然后加上測量下限值。

6 實驗結果與分析

為了驗證面向巡檢機器人的指針式儀表讀數自動識別方法的有效性和準確性,本節實驗分為三個部分:第一部分對儀表檢測的方法進行對比和分析,選取兩階段目標檢測算法(faster-RCNN)和傳統機器學習算法(SVM)作為對照,對比三種方法的誤檢率(將非儀表目標檢測為儀表的錯誤次數與總檢測次數之比)、漏檢率(為未識別圖像中儀表的錯誤次數與總檢測次數之比)和耗時;第二部分對儀表刻度和指針分割的方法進行對比和分析,選取未改進的Deeplabv3+和U-Net作為對照,對比三種模型的精確率(precision)、召回率(recall)和準確率(accuracy);第三部分對最終的儀表讀數結果進行統計,將讀數相對誤差在[-1.5%, +1.5%]區間內的結果認為是正確結果,讀數相對誤差在[-5%, -1.5%)或者(+1.5%,+5%]區間內的結果認為是有偏差的結果,讀數在(-∞,-5%)或者(5%,∞)區間內的結果認為是錯誤結果,并對統計結果進行分析。

實驗選取巡檢機器人拍攝的2316張儀表圖像作為實驗數據集,按照7:3的比例隨機選取圖片作為訓練集和測試集。測試主機的硬件配置為Intel i5-8400,GeForce GTX 1060(6GB顯存),16G內存。

6.1 儀表檢測結果及分析

本文采用的模型(YOLOv5x)、Faster-RCNN和SVM三種模型檢測圖像中儀表的統計結果如表3所示。

表3 儀表檢測模型測試結果數據Tab.3 Instrument detection model test results

可以看出,由于本文采用的模型(YOLOv5x)和Faster-RCNN是基于深度學習的模型,在各項指標上均大幅超過傳統機器學習算法SVM。本文模型和Faster-RCNN模型相比,均能非常準確的檢測出圖像中的儀表,且極少有漏檢的情況發生,但本文模型在耗時方面大幅領先Faster-RCNN模型,為實時識別儀表讀數提供了可能性。對于漏檢的儀表,均是由于圖像中的儀表有部分被遮擋造成的,對于這種情況,可以在后期通過增加被遮擋儀表的數據來降低漏檢率。

6.2 儀表刻度及指針分割結果及分析

本文模型(改進后的Deeplabv3+)、原始Deeplabv3+和U-Net三種模型分割圖像中刻度和指針的統計結果如表4所示。

表4 圖像分割模型測試結果數據Tab.4 Image segmentation model test results

從上表中可以看出,Deeplabv3+模型在精確率、召回率和準確率方面均優于U-Net模型。由于本文改進的Deeplabv3+模型可以提供更精細粒度的特征,避免關鍵細微特征的丟失。從實驗結果來看,改進后的Deeplabv3+圖像分割結果的精確率和準確率均有一定的提升,同時召回率也有較大的提升,而提升召回率會降低模型把刻度或者指針像素識別為背景像素的錯誤概率,進一步提升了改后進的Deeplabv3+模型在實際場景應用時的有效性。

6.3儀表刻度及指針分割結果及分析

以目標檢測算法檢測到的儀表圖像為輸入,利用本文提出的儀表讀數識別方法識別儀表的讀數情況如表5所示。

表5 儀表讀數識別結果分布Tab.5 Instrument reading recognition result distribution

可以看出,本文提出的儀表讀數識別方法能準確地識別96.74%的儀表讀數,僅有3.26%的讀數結果有一定偏差,沒有錯誤識別的儀表讀數。其中,有偏差的結果多數是因為儀表表面或者觀察窗表面附著有較多的污濁物,但整體的準確率較高,能夠符合變電站巡檢的實際應用要求。

7 結束語

本文在分析了巡檢機器人拍攝圖像特點和傳統方法不足的基礎上,提出了基于深度學習的指針式儀表讀數自動識別方法,在指針式儀表讀數識別的關鍵步驟上首先利用YOLOv5進行儀表檢測,能夠在具有復雜背景的圖片中檢測出儀表位置,有效的排除了復雜背景對讀數識別的干擾并減輕了后續分析的計算量;針對儀表刻度較為密集且刻度和指針尺度相差較大的特點,對Deeplabv3+的Encoder端和Decoder端分別進行了改進,可以提供更細粒度的圖像特征,可以更好地針對儀表刻度和指針進行分割。實驗表明,對于巡檢機器人實際拍攝的儀表圖像,本文提出的儀表讀數識別方法的準確為96.74%,符合實際應用的要求。

猜你喜歡
讀數指針刻度
“0”的讀法和要領
剪彩帶
郊游
為什么表的指針都按照順時針方向轉動
誰大誰小
誰大誰小
測量三字歌
例談高中物理常見讀數問題
儀器工作原理決定了儀器的讀數規則
淺析C語言指針
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合