張勁松, 陳明舉,2?, 鄧元實, 王 鴻
(1.四川輕化工大學 人工智能四川省重點實驗室, 四川 宜賓 644005;2.四川輕化工大學 企業信息化與物聯網測控技術四川省高校重點實驗室, 四川 宜賓 644005;3.國網四川省電力公司電力科學研究院, 四川 成都 610095)
長期以來,變電站在進行電力作業[1]的過程中,時常發生安全事故,不但會帶來經濟損失,而且會對電力作業人員造成人身傷害。 究其原因,主要是電力施工人員作業操作不規范、檢修作業時監管不到位和安全意識薄弱。 傳統的監管方法主要依靠視頻監控和人員車輛定位[2],對人員操作的依賴性較強,當外界環境干擾過大時,可能會影響數據的傳輸,導致操作人員出現誤判情況。 隨著人工智能科學技術的蓬勃發展,深度學習具有學習能力強、適用范圍廣的特點,已經廣泛應用于各個領域,實現了人臉識別[3]、人體姿態估計[4]和目標檢測[5]等功能,并且取得了較好的成果。
在電力場景中,章文旭[6]提出了一種基于多特征融合的目標跟蹤算法,并與YOLOV3 結合,對電力施工現場的作業人員實現了跟蹤定位、安全帽佩戴檢測和判斷是否進入危險區域等功能,一定程度上保障了電力作業人員的安全。 王時威[7]提出了一種雙流Faster-RCNN 檢測方法和超寬帶信號分類定位方法,實現了對電力作業人員穿戴的檢測和誤入危險區域警告的功能,在一定程度上避免了安全事故的發生。 黃文杰等[8]將Alphapose 與ResNet 結合,實現了對電力作業人員的穿戴檢測,一定程度上能夠起到規范電力作業人員著裝的作用。 但是目前的這些方法只適用于電力作業人員,而在實際的電力作業場景中,電力檢修車也是不可或缺的一部分,在不同的作業環境中,為了保障施工安全,電力檢修車的作業姿態也有具體的要求。 因此,設計一種針對電力檢修車的安全監測方法是一個亟待解決的問題,而目前卻比較缺乏對該方面的研究。
由于電力檢修車主要使用機械臂進行電力作業,本文將電力檢修車的機械臂作為研究對象。 研究中存在2 個難點:一是電力檢修車機械臂具有較大橫縱比和帶旋轉角度的特點,常規的目標檢測算法檢測效果不佳,采用旋轉目標檢測算法可以提升檢測效果,但旋轉目標檢測算法會出現邊界問題,產生較大的損失值,導致算法性能下降;二是要考慮實際作業中算法的實時性。 針對這2 個問題,本文采用長邊定義法與環形平滑標簽相結合的方法解決了邊界問題;采用YOLOv5 結合注意力機制的方法保證了檢測算法的準確度和實時性。
當前大多數旋轉目標檢測算法集中于遙感領域。 Sun 等[9]提出了一種以RetinaNet[10]為基礎的R4Det 算法,設計了一個遞歸特征金字塔(Recursive Feature Pyramid,RFP) 和特征精煉模塊(Feature Refinement Module,FRM),并增加了遞歸連接塊(Recursive Connection Block,RCB),提高了檢測精度;李 賽 鳳[11]在 Faster-RCNN 算 法 的 基 礎, 以ResNet50 和特征金字塔網絡( Feature Pyramid Network,FPN)結合作為主干網絡完成特征提取,并使用RoI Align 替換RoI pooling,提升了模型的檢測性能。
不論是單階段目標檢測算法還是二階段旋轉目標檢測算法,大多不能同時做到精確檢測和快速檢測,且不能很好地解決旋轉角度帶來的損失問題。YOLO 系列算法[12-15]經過了YOLOv1 到YOLOv5 的版本迭代,無論實在檢測的精度還是檢測的速度上都有很好的表現。 本文將以YOLOv5 網絡為基礎,實現對電力檢修車機械臂和機械臂旋轉角度的檢測和預測,YOLOv5 網絡結構如圖1 所示。

圖1 YOLOv5 V6.0 網絡結構Fig.1 YOLOv5 V6.0 network structure diagram
本文的R-YOLOv5 網絡主要對Input 和Prediction 部分進行設計。 Input 即輸入端,主要是對輸入的圖片數據進行處理,具體的處理方式為調節亮度和飽和度、旋轉平移、縮放裁剪和翻轉拼接。 由于R-YOLOv5 網絡針對旋轉目標進行檢測,所以采用帶角度的數據標簽進行標注。
Backbone 部分主要由特征提取的主干網絡CSPDarkNet 和快速空間金字塔池化(Spatial Pyramid Pooling-Fast,SPPF)組成,包含CSP1_X 和CSP2_X 結構。 CSP1_X 應用于CSPDarkNet 中,能夠加強對圖片的特征提取能力,結構示意如圖2 所示;CSP2_X應用于Neck 中;SPPF 相比于SPP 增加了2 個CBS模塊,提高了網絡的訓練效率,結構示意如圖3所示。

圖2 CSP1_X 結構示意Fig.2 CSP1_X structural diagram

圖3 SPPF 結構示意Fig.3 SPPF structure diagram
Neck 部分主要由FPN 和判別器組成,CSP2_X能夠加強特征融合能力,使網絡提取到的特征更加豐富,結構示意如圖4 所示。 Prediction 部分實現對大、中、小3 種不同尺度的目標檢測功能,本文的RYOLOv5 網絡在Prediction 部分增加了180 個角度分類通道,完成對目標旋轉角度的預測。

圖4 CSP2_X 結構示意Fig.4 CSP2_X structure diagram
通常情況下,基于深度學習的目標檢測算法采取的數據標注方式為水平框標注。 針對本文研究對象具有大橫縱比和帶有旋轉角度的特點,采用旋轉框的標注方式進行數據標注,旋轉框數據標注方式能夠更加準確地框選本文的檢測目標,減少框入多余的語義信息,避免主干網絡提取到不必要的目標特征,提高目標的檢測精度和減少網絡訓練的時間。水平標注框和旋轉標注框對本文研究對象的標注效果對比如圖5 所示。

圖5 水平標注框與旋轉標注框效果對比Fig.5 Comparison between horizontal bounding box and rotating bounding box
雖然通過旋轉標注框能夠減少特征提取時的冗余信息,提高網絡的檢測精度和訓練效率,但是旋轉框的數據標注方式會在網絡訓練時出現邊界問題,包括邊的交換(Exchangability of Edges,EoE)問題和角度的周期(Periodicity of Angular,PoA)問題。 EoE 問題是當目標進行旋轉時,矩形框的長和寬會發生互換,造成角度發生90°的誤差,如圖6(a)所示。 PoA問題是因為用于訓練的數據標注參數具有周期性,在周期發生跳躍時,邊界部分會使損失值突增,在圖6(b)中,假設θ∈[-90°,90°),目標順時針旋轉,紅色框預測得到的旋轉角度θ為88°,目標的真實標注角度為89°時,誤差值為1°;綠色框預測得到的旋轉角度θ為89°,目標的真實標注角度為-90°時,誤差值則為179°,然而在實際情況下誤差值僅為1°。

圖6 EoE 問題和PoA 問題示意Fig.6 Schematic diagram of EoE problem and PoA problem
針對θ的邊界問題,本文采用長邊定義法與環形平滑標簽(Circular Smooth Label ,CSL)[16]相結合的方法來解決θ的邊界問題。 長邊定義法解決邊的變化問題,環形平滑標簽解決角度的周期問題。
長邊定義法是一種五參數標注方法[17],確定了角度的定義問題,避免了邊的交換性問題。 長邊定義法的表示方法為(180°,-regression-based,[x,y,w,h,θ]),(x,y)為旋轉矩形框的中心坐標,w和h分別為矩形框的短邊和長邊,θ為長邊h和x軸的夾角,θ∈[-90°,90°)。 長邊定義法示意如圖7 所示。

圖7 長邊定義法Fig.7 Long edge definition method
由于本文采取長邊定義法定義角度,避免了EoE 問題,因此只需要考慮旋轉目標的PoA 問題。本文采用CSL 將θ的回歸問題轉變為分類問題,把不同范圍內的角度劃分為不同的類別,這樣就把一個連續問題進行了離散化,規避了θ的邊界情況。但是離散化處理必然會產生精度損失,將角度范圍劃分為1°一類時,在預測角度帶有小數時,會產生精度損失。 為了評估該損失帶來的影響,計算精度最大損失和平均損失(服從均勻分布),公式如下:
當角度范圍劃分為1°一類(ω=1)時,精度最大損失和期望損失為0.50 和0.25。 采用2 個橫縱比為1 ∶9 的旋轉矩形框進行測試后,2 個旋轉矩形框的交并比分別下降了0. 05 和0. 02,本文的研究對象橫縱比幾乎很難達到1 ∶9,所以該方法帶來的精度損失是可以接受的。 為了使分類損失能夠用來預測結果和角度標簽的距離,設計了一種One-hot 編碼方法,假設真實的角度標簽是0°,當網絡的角度預測值為1°和-90°時的精度損失值是相同的。One-hot 編碼方法示意如下。

圖8 One-hot Lable 示意Fig.8 Schematic diagram of One-hot Lable
基于One-hot Lable,引入了CSL,CSL 示意如圖9 所示。

圖9 CSL 示意Fig.9 Schematic diagram of CSL
CSL 的表達式如下:
式中,g(x)為窗口函數。g(x)要具備周期性、單調性和對稱性等條件,半徑r決定窗口的大小。 本文采用Gaussian 函數作為窗口函數,將窗口半徑設置為6,g(x)的函數表達式如下:
式中,a,b,c是常數,本文中設置a為1,b為0,c為4;x是角度信息。
在一個神經網絡中,無論神經網絡的深度有多深,假如所有的特征傳遞都承接上一層網絡輸入函數的線性變化,模型就變得很容易驗證,網絡的逼近能力也很有限。 激活函數在神經元中加入了非線性成分,讓深層神經網絡具有更強的表達力,并應用于非線性模型中。 經常使用的激活函數有Sigmoid,Tanh,ReLU 和Softmax。
R-YOLOv5 網絡中Conv 層的激活函數為SiLU,SiLU 激活函數是Swish 激活函數[18]的變體,Swish函數的表達式如下:
當式(6)中的β取值為1 時,Swish 激活函數變為了SiLU 激活函數,SiLU 的表達式如下:
SiLU 激活函數具有無上界有下界、平滑和非單調的特點,性能和效果都比ReLU 激活函數更好。本文使用HardSwish 激活函數[15]替換網絡中Conv層的SiLU 激活函數,HardSwish 激活函數具有更強的非線性功能,能夠提高模型的精度,通過實驗證明,HardSwish 激活函數確實能夠提高模型精度。 修改后網絡結構如圖10 所示。

圖10 CBH 模塊Fig.10 CBH module
HardSwish 的函數表達式如式(9),函數圖像如圖11 所示。

圖11 HardSwish 函數圖像Fig.11 HardSwish function graph
注意力機制[19]最初使用在機器翻譯領域,并取得了不錯的成果。 隨著深度學習的蓬勃發展,注意力機制也被大量應用于計算機視覺[20-21]領域。 注意力機制在讀取圖像的同時,會得到要著重注意的目標區域,進一步注重該區域的信息,忽略不必要的信息,能夠更好地分配電腦的計算能力。 注意力機制一般可以分為3 類:第1 類是通道注意力(Channel Attention,CA);第2 類是空間注意力(Spatial Attention,SA);第3 類是通道注意力和空間注意力的混合模型。 常用的注意力機制有SE[22](Squeeze and Excitation),CBAM[23](Convolutional Block Attention Module)。
SE 模塊結構簡單,可以應用于多種網絡,但是SE 只通過建模通道間的聯系來確定其余通道的權重,沒有重視位置信息,而Attention maps 對生成空間的選擇很依賴位置信息。 CBAM 先使用CA,再使用SA,既關注了全局信息,又關注了局部信息,能夠有效地提取目標突出特征,提高模型檢測精度,CBAM 結構示意如圖12 所示。

圖12 CBAM 結構示意Fig.12 CBAM structure diagram
由圖12 可以看出,CBAM 將經過主干網絡提取得到的目標特征圖最大池化和平均池化后,得到2 個1×1×C的特征圖,通過MLP 網絡映射每個通道的權重并相加,由Sigmoid 生成通道注意特征圖F′。特征圖F′繼續進行最大池化和平均池化處理,產生2 個H×W×1 的特征圖,經過concat 操作變為H×W×2的特征圖,再用一個7×7 的卷積核進行卷積,生成H×W×1 的特征圖后,由Sigmoid 生成空間注意特征圖。 最后將空間注意特征圖與目標特征圖相乘,得到最終輸出的特征圖。
本文將CBAM 注意力機制設置在R-YOLOv5 網絡的Neck 部分與Prediction 部分之間,如圖13 所示,CBAM 對主干網絡提取到的3 個尺度上的特征圖再進行通道上和空間上的特征提取,使得該模型的特征提取能力進一步加強。

圖13 CBAM 位置圖Fig.13 CBAM location map
本文實驗采用的電腦配置如下:CPU 為Intel(R)Xeon(R)CPU E5-2695 v4 @2.10 GHz;RAM 為256 GB;操作系統為Windows 10 Pro;GPU 為NVIDIA TITAN Xp 12 GB。 軟 件 使 用 CUDA10. 2, Anaconda3,PyCharm Community,Python3. 8 和Microsoft Visual Studio2017 等,深度學習框架為Pytorch。
由于目前并沒有公開的電力檢修車數據集,因此本文使用自制的數據集進行實驗。 自制數據集的數據標注格式參考遙感目標檢測數據集DOTA,采用RoLableImg 標注軟件對數據集中的電力檢修車機械臂進行標注,將標注完成的xml 文件通過公式轉化為DOTA 數據集的txt 格式,轉化公式如下:
式中,(xi,yi)為轉換后的坐標。 經過轉化后的數據格式為:
本文數據集共有1 200 張曲臂電力檢修車圖片,設置的2 個目標類別為arma 和armb,機械臂arma 和armb 的標識如圖14 所示。

圖14 機械臂標識Fig.14 Mechanical arm identification
本文數據集的訓練集、驗證集和測試集比例設置為4 ∶1 ∶1,雖然數據集中arma 和armb 的數量基本上處于平衡狀態,但是為了防止數據過少帶來過擬合問題,本文對數據集中的訓練集和驗證集進行數據增強處理,增強前的訓練集和驗證集圖片數量分別為800 和200。 增強后的訓練集和驗證集圖片數量分別為2 979 和762。
由于本文研究對象的橫縱比較大,而YOLOv5的初始anchor 尺寸為[10,13,16,30,33,23],[30,61,62,45,59,119],[116,90,156,198,373,326]明顯不適合本文數據集。 因此本文采用K-means 聚類[24]的方法根據數據集中目標的標注信息重新生成anchor,得到的新anchor 尺寸為[315,45,381,53,315,75],[488,49,499,81,732,76],[620,118,772,191,923,163]。
為了驗證本文Rotated-YOLOv5l-CBAM 算法的檢測性能,本文共設置了4 組對比實驗。 對比的算法分別為 Rotated-YOLOv5l-Base, Rotated-Faster-RCNN,Rotated-Reppoints 和RoI Transformer。 針對Rotated-YOLOv5l-CBAM 和Rotated-YOLOv5-Base 設置300 個訓練epoch,anglelossgain=0.8,angle BCELoss positive_weight= 1.0,momentum= 0.937,weight_decay= 0.000 5,lr0= 0.001,優化器設置為adam;針對Rotated-Faster-RCNN,Rotated-Reppoints和RoI Transformer 設置80 個訓練epoch,lr=0.002 5,優化器選擇SGD,weight_decay=0.000 1。
本文選擇單個類別平均精度(Average Precision,AP)、總類別平均精度均值(mean Average Precision,mAP)、錯檢率(誤檢+漏檢)Perror和平均幀率(mean Frames Per Second,mFPS)為模型的評價指標。 AP 和mAP 的計算如下:
式(15)中,AP為P-R 曲線與坐標軸圍成的面積大小;p為精確度(Precision);r為召回率(Recall);式(16)中的N是數據集中的類別個數。 表1 為各個模型在測試集上的 AP 和 mAP 值, Rotated-YOLOv5l-CBAM, Rotated-YOLOv5l-Base, Rotated-Faster-RCNN 和Rotated-Reppoints 在下文中分別簡稱為R-YOLOv5l-CBAM,R-YOLOv5l-Base,R-Faster-RCNN 和R-Reppoints。單位:%

表1 各模型精度指標Tab.1 Precision index of each model
由表1 可知,Rotated-YOLOv5l-CBAM 模型在測試集中arma 和armb 單個類別平均精度分別為89.79%和79.98%,總類別平均精度為84. 88%,均優于其余模型。 相較于Rotated-Reppoints 模型,總類別平均精度提升了9.23%。 在測試集中加入50 張其他車輛圖片作為干擾,使用各模型對測試集中的圖片以及電力檢修車作業視頻進行檢測,各模型的模型大小、Perror和mFPS 如表2 所示,各模型對機械臂的檢測效果如圖15 所示。

表2 各模型的大小、錯檢率及幀率Tab.2 Size,false detection rate and FPS of each model

圖15 各模型檢測效果Fig.15 Detection effect of each model
由表2 和圖15 可以看出,在5 個模型中,R-YOLOv5l-CBAM 模型的錯檢率為13. 6%,均低于其余模型,且相較于R-Reppoints 錯檢率下降了45.6%,對機械臂的檢測效果也最好,沒有受到干擾圖片的影響,其余4 個模型存在漏檢、檢測框不準和被干擾的問題;模型大小為71. 1 MB,僅為RoI Transformer 模型的17%;mFPS 在33 幀/秒左右,檢測速度約為RoI Transformer 模型的5 倍,兼顧了檢測的準確度和實時性。 角度預測樣本如圖16 所示。以圖16 為例,各模型對機械臂arma 和armb 的角度預測結果如表3 所示。

圖16 角度預測樣本Fig.16 Sample picture of angle prediction

表3 各模型角度預測結果Tab.3 Angle prediction results of each model單位:
圖16 中電力檢修車機械臂arma 和armb 的實際標注角度分別為10°和37°。 由表3 可以看出,RYOLOv5l-CBAM 模型的角度預測結果相較于其他模型的預測結果更接近機械臂實際角度。
本文設計了一種針對電力檢修車機械臂的檢測及機械臂旋轉角度預測的R-YOLOv5 算法。 以YOLOv5 算法為基礎,采用長邊定義法與環形標簽相結合的數據標注方式,解決了目標旋轉時角度θ產生的EoA 問題和PoA 問題,避免了網絡損失值的突變問題;將網絡中的SiLU 激活函數替換為Hard-Swish 激活函數,并在網絡的Neck 部分和Prediction部分之間的3 個尺度上加入了CBAM 注意力機制,使得模型對目標圖像的特征提取能力進一步加強。通過實驗對比,本文設計的檢測算法的平均檢測精度相較于R-YOLOv5l-Base,R-Faster-RCNN,R-Reppoints 和RoI Transformer 均有提升,且模型大小較小,檢測速度能夠滿足實時檢測要求。 該模型在本文的電力檢修車數據集上進行測試時,可以實現對電力檢修車機械臂arma 和armb 的檢測及機械臂角度預測,能為電力作業場景中電力檢修車的預警工作提供參考,避免安全事故帶來的經濟損失和人員傷亡。