張 政,何 慧
(華北電力大學 控制與計算機工程學院,北京 102206)
高壓輸電線路通道巡檢是保證輸電網安全最重要的措施之一,但是由于高壓電塔分布范圍較廣且多處于山岳叢林地帶,導致人工巡檢作業(yè)難度大、時間長、危險多、效率低.為了解決上述問題,使用無人圖像采集裝置(如桿塔上的固定采集設備、攝像頭、無人機照相等)對輸電通道上的關鍵對象進行檢測,均可以改善人工巡檢面臨的各種困難[1],然而在對采集到的圖像處理時,準確率受制于檢查人員的觀察技能水平,同時還存在視覺疲勞導致漏檢率上升的隱患[2],所以基于目標檢測方法對輸電線路巡檢圖像進行處理具有重要研究意義.
在山火煙霧檢測領域目前的主流技術主要分為兩大類,一類是基于視頻的煙霧檢測算法,此類算法大多數(shù)基于光流法,趙敏等人[3]提出了一種基于多種紋理特征的煙霧檢測算法,該算法在在背景建模時融合了視頻像素點的時間和空間信息.李澎林等人[4]提出一種基于光流和YOLOv3[5]的煙霧檢測方法,該方法通過光流算法對目標進行初篩,然后再用YOLOv3檢測.吳凡等人[6]提出一種基于時空域深度學習的煙霧視頻檢測方法.利用分塊運動目標檢測方法提取煙霧視頻的運動目標,過濾非煙霧目標.
另一類是基于圖像的山火煙霧檢測算法,程淑紅等人[7]提出一種融合了改進的混合高斯YOLOv2[8]的煙霧檢測算法.Valikhujaev Y等人[9]提出了一種基于卷積神經網絡的火災檢測方法,并使用小尺寸滑窗和空洞卷積來進一步提升精度.李鋼等人[10]依據(jù)差分圖像的像素值呈正態(tài)分布提出了一種改進的局部三值模式(CLLTP),進而提出了基于CLLTP的組合特征模型(M_CLLTP).LI P等人[11]提出了基于Faster-RCNN[12]、R-FCN[13]、SSD[14]和YOLOv3等框架的火災檢測模型,并進行實驗證明基于神經網絡的火災檢測算法的精度高于傳統(tǒng)算法.由于煙霧的形狀和顏色變化多端相比其它目標有極大的不確定性,并且輸電通道圖像背景極其復雜,而傳統(tǒng)圖像檢測方法存在泛化能力較差和需要人工設計特征提取方式的缺點.所以,基于深度學習的目標檢測算法非常契合在大量巡檢圖像中自動檢測山火目標的需要.
圖1 DETR算法流程圖Fig.1 Flow chart of DETR alogrithm
為了進一步提升山火煙霧的檢測精度,本文構建了真實的輸電線通道山火數(shù)據(jù)集,并基于DETR[15]構建了一個山火檢測算法用于輸電線通道圖像自動處理方面的工作.本文主要貢獻如下:1)為了進一步提高DETR算法對煙霧的檢測精度,加入多尺度特征信息,提高該算法對底層特征的感知能力;2)在Transformer結構中加入相對位置編碼,提高自注意力機制對相對位置信息的學習能力,提高檢測精度;3)利用CIOU來改進算法損失函數(shù),以解決GIOU難以優(yōu)化的問題.4)采用真實采集到的輸電通道山火圖像進行多種主流目標檢測算法的對比實驗,可為相關研究提供參考.
DETR檢測算法主要由3部分組成,即主干網絡(Backbone)、Transformer和預測頭(FFN),總體結構如圖 1所示.圖像先通過由殘差網絡(Residual Network,ResNet)組成的主干網絡提取一組特征圖,然后將提取的特征與其位置編碼(Positional Encoding)相加傳遞到編碼器(Encoder)中,同時將一定數(shù)量的對象查詢(Object Queries)嵌入解碼器(Decoder)作為輸入,解碼器的每個輸出會被傳遞給一個前饋網絡(Feed Forward Network,FFN),該網絡預測一個目標(類和邊界框)或一個背景類.
最后將檢測結果與真實值(Ground Truth)進行基于匈牙利算法(Hungarian Algorithm)的二分圖匹配計算損失.DETR將檢測視為集合預測問題,根據(jù)對象和全局上下文的關系,直接輸出最終的預測集,將需要手工設計的組件如非極大值抑制(Non-Maximum Suppression,NMS)和錨點框(Anchor Box)刪除,實現(xiàn)了端到端的自動訓練和學習.在通用數(shù)據(jù)集中,DETR的平均精度(Average Precision,AP)為42%,超過了經典的Faster-RCNN算法,這是第1次將 Transformer 用于目標檢測領域.
Transformer[16]最初被用在自然語言處理(Natural Language Processing,NLP)領域里面的序列到序列的自回歸任務,DETR相比之前主流的目標檢測算法最大的不同就是引入了Transformer結構.Transformer為編碼器-解碼器的結構,利用多頭自注意力(Multi-Head Self-Attention,MHSA)機制和前饋網絡,完全消除了遞歸和卷積,總體結構如圖2所示.
圖2 Transformer結構圖Fig.2 Transformer structure
Encoder和Decoder中自注意力機制會進行全局計算,也就是說特征圖上的任意一點都會和整個特征圖進行交互,從而發(fā)現(xiàn)它們之間的潛在聯(lián)系.雖然自注意力可以提取到某個像素和其它像素之間的潛在聯(lián)系,也就是圖像中的全局信息,但是由于Transformer不包含遞歸和卷積,而是完全由注意力組成,所以會丟失輸入數(shù)據(jù)中的位置信息,因此需要在輸入Encoder和Decoder之前加入位置編碼.
Transformer模型
Transformer最重要的一個機制就是多頭自注意力機制,自注意力機制(self-attention)可以描述為公式(1)~公式(4):
Q=XWQ
(1)
K=XWK
(2)
V=XWV
(3)
(4)
公式(1)~公式(4)中X是由主干網絡提取的特征向量,WQ、WK和WV是權重矩陣,開始時隨機初始化并通過訓練過程進行優(yōu)化,Q、K和V分別是查詢向量、鍵向量和值向量,d是輸出矩陣Z的維度,最后通過公式(4)計算出輸出矩陣Z,其中的每個元素代表了應該被給予關注度的大小.
由于特征子空間受限,單頭自注意力的建模能力比較粗糙.為了解決這個問題,Vaswani等人提出了一種多頭自注意力機制,該機制將輸入線性映射到多個特征子空間中并通過不同的線性變換對Q、K、V進行計算,最后將所有自注意力的輸出拼接到一起.MHSA的計算過程可以表述為:
Qi=XWQi
(5)
Ki=XWKi
(6)
Vi=XWVi
(7)
(8)
MutilHead(Q,K,V)=Concat(Z1,Z2,…,Zh)Wo
(9)
公式(5)~公式(9)中h表示注意力頭的數(shù)量,Wo表示一個可以通過訓練學習的權重矩陣,Qi、Ki、Vi和Zi分別代表第i個注意力頭的查詢向量、鍵向量、值向量和輸出矩陣.圖3中顯示的是Encoder中自注意力可視化后的結果,即算法重點關注的區(qū)域.
圖3 Encoder中的Self-Attention可視化圖Fig.3 Self-Attention visualization in Encoder
DETR算法框架的最后一部分是用前饋網絡來對類別和檢測框進行預測,由于本文只檢測山火煙霧這一個類別,所以類別結果由背景和山火煙霧組成.而位置信息是從前饋網絡中輸出的N個檢測框中進行選取,這里N是算法輸出檢測框的默認數(shù)量,一般情況下這個數(shù)量遠大于圖像中目標的數(shù)量,也就是說無論圖像中的目標有多少,算法最終都會輸出N個檢測框,但是這些檢測框會通過二分圖匹配方法和真實框進行一對一匹配,沒有匹配到真實框的檢測框會被歸為背景類,所以DETR算法不需要非極大值抑制這一步驟.
DETR計算損失函數(shù)分為兩步:先定義好檢測框和真實框的匹配代價表示為公式(10):
(10)
(11)
公式(11)中,λiou和λL1分別為GIOU損失和L1損失的權重系數(shù),LGIOU是GIOU損失函數(shù),LL1是L1損失函數(shù).通過定義好的匹配代價便可以得到真實框和檢測框的最優(yōu)二部圖匹配,然后可以根據(jù)匹配的結果計算損失函數(shù),可以表示為公式(12):
(12)
DETR使用了絕對位置編碼來對圖像像素的位置信息進行表示,絕對位置編碼可以讓輸入序列的每一個點都獲得單獨的位置表示,但是像素和像素之間的相對距離無法被模型學習到,比如像素1和像素2比像素1和像素3的距離更近或更遠.因此為了彌補絕對位置編碼的這個缺點,本文加入了相對位置編碼.加入相對位置編碼(Relative Position Encoding,RPE)[18]的Transformer最初被用在機器翻譯領域并提高了翻譯質量.本文采用了一種二維圖像相對位置編碼方法,即圖像RPE(Image Relative Position Encoding,IRPE)[19],具體內容如下:
由于圖像的像素數(shù)量非常多,所以二維相對位置坐標i和j的取值范圍很大,為了降低計算量,采用分段索引函數(shù)來將相對位置從實數(shù)轉為整數(shù)從而降低計算復雜度,可以在相對距離較小的位置分配更多的可學習參數(shù),該函數(shù)如公式(13)所示:
(13)
公式(13)中,sign()控制符號,當輸入為正時輸出1,輸出為負使輸出0,α代表分段點的位置,β控制函數(shù)的值域為[-β,β],γ可以調整函數(shù)在對數(shù)部分的曲率.為了在映射二維相對位置時加入方向信息,采用公式(14)~公式(16)表示:
Ix(i,j)=f(xi-xj)
(14)
Iy(i,j)=f(yi-yj)
(15)
r=pIx(i,j),Iy(i,j)
(16)
公式(14)~公式(16)中r為相對位置編碼,會被加入到Self-Attention,p是一個可以經過訓練學習的向量,共包含(2β+1)2個元素,Ix(i,j)和Iy(i,j)合起來代表一個二維索引,(xi-xj,yi-yj)是一個二維坐標,代表相對位置.Transformer模型的核心是Self-Attention,加入了相對位置編碼的Self-Attention可以表示為公式(17):
(17)
Self-Attention加入相對位置編碼后,自注意力機制計算流程如圖4所示,虛線部分即為加入后的相對位置信息.
圖4 加入相對位置編碼后的Self-Attention Fig.4 Self-Attention after adding relative position encoding
DETR通過ResNet骨干網絡來對圖像的特征進行提取,更詳細的步驟為ResNet-50最后一層的輸出和位置編碼相加來作為Transformer Encoder的輸入,雖然高層感受野較大,但經過了32倍下采樣丟失了很多細節(jié)信息,同時,使用簡單的單一檢測層導致多尺度信息略顯缺乏,由于輸電線圖像采集設備拍攝距離不同和山火煙霧非常多變的特點導致目標尺寸大小差異明顯.所以,本文在DETR的主干網絡里加入了多尺度信息也就是使用ResNet-50的后三層共同提取特征如圖5所示,通過高尺度語義信息和低尺度紋理特征的融合提升算法對山火煙霧特征的檢測效果,但低層感受野小,上下文信息缺乏,容易引入誤檢,所以又在ResNet-50的第2層加入了空洞卷積[20]來增大底層卷積的感受野,如圖6所示,提升底層特征的提取效果.
圖5 多尺度特征信息示意圖Fig.5 Schematic diagram of multi-scale feature information
圖6 空洞卷積示意圖Fig.6 Schematic diagram of dilated convolution
DETR算法的邊框損失由GIOU和L1損失組成(公式(11)),其中GIOU損失函數(shù)由公式(18)、公式(19)組成:
(18)
(19)
其中b表示預測框,bgt表示真實框,c為能夠包住他們的最小框,GIOU的取值為(-1,1],但是GIOU有以下缺陷:當真實目標框完全包圍預測框時,無法區(qū)分出相對位置關系;GIOU在開始訓練時需要將預測框放大和標注框相交,隨后開始縮小檢測結果與標注框重合,所以需要更多的迭代次數(shù)才能收斂.
而CIOU[21]則可以解決上述問題:CIOU的懲罰項基于中心點距離和對角線距離的比值,避免了GIOU在兩框較遠時難以優(yōu)化的問題,收斂速度更快;即使在真實目標框完全包圍預測框時也可以進行優(yōu)化;CIOU考慮到了預測框和真實目標框的長寬比,CIOU損失函數(shù)由公式(20)~公式(22)組成:
(20)
(21)
(22)
其中,wgt和hgt分別為真實框的寬和高,w和h分別為檢測框的寬和高,m(b,bgt)是預測框和目標框中心點的歐式距離.所以經過改進后的DETR邊框損失函數(shù)為公式(23):
(23)
將Lbox代入Lmatch(公式(10))和LHungarian(公式(12))即可得到改進后的損失函數(shù).
本文實驗中訓練和測試算法的硬件設備和軟件環(huán)境是:Nvidia Tesla V100-PCIE-32GB圖像處理器,Intel Xeon Gold 6271c @2.60GHz中央處理器,Linux CentOS 3.10.0 x86_64操作系統(tǒng),Pytorch 1.10.0深度學習框架,CUDA版本為11.2,Python版本為3.8.
本文所使用的模型主要是針對高壓輸電線通道存在的山火煙霧目標進行檢測,數(shù)據(jù)集來源于電網的實際拍攝圖像,拍攝工具為電塔上的攝像頭,由于山火目標的特殊性所以采集到的圖像較少,總共1933張,將訓練集、驗證集、測試集劃分比例設定為 8∶1∶1,得到訓練集1565張圖像,驗證集174張圖像、測試集194張圖像,并通過 LabelImg 標注工具對所有樣本圖片進行標注.本文所要檢測的山火煙霧如圖7所示,由于輸電線通道巡檢圖片的特殊性,導致圖片背景復雜且山火煙霧目標尺寸差異較大,從而導致算法訓練難度較大,為保證模型訓練效果,同時提升訓練效率,使用在線數(shù)據(jù)增強,即在訓練的每一批次之前對圖像進行隨機旋轉、調整色彩空間等方法對圖像進行變化.
圖7 輸電通道山火煙霧樣例圖Fig.7 Sample diagram of mountain fire smoke in transmission channel
本文使用IOU為0.5時的精度(Precision,P)、召回率(Recall,R)、平均精度(Average Precision,AP)和F1分數(shù)(F1Score,F1)來對模型的性能進行評價.其中,精度P和召回率R定義如公式(24)和公式(25)所示:
(24)
(25)
本文中,TP(True Positive)為檢測框和真實框IOU>=0.5的數(shù)量,也就是正確檢測到的山火煙霧目標數(shù)量,FP(False Positive)為檢測框和真實框IOU <0.5的數(shù)量,也就是檢測到錯誤目標數(shù)量,FN(False Negative)為沒有被檢測到的山火煙霧的數(shù)量,也就是漏檢.
AP的計算如公式(26)所示,其中r為召回率,AP即為P-R曲線下的面積:
(26)
F1綜合考慮了算法的P和R,計算為公式(27)所示:
(27)
為了提高山火檢測模型的訓練效率,采用基于CoCo數(shù)據(jù)集預訓練權重對DETR的骨干網絡ResNet-50進行權重初始化,模型訓練過程中,將輸入的圖像的最大邊統(tǒng)一限制在640像素,最大迭代數(shù)為300輪,使用的是AdamW優(yōu)化器,其中骨干網絡初始學習率為0.00001,其它部分初始學習率為0.0001,權重衰減率為0.0001,batch_size設為4.
圖8展示的是算法訓練過程中驗證集上的平均精度曲線,其中短點折線為原始DETR算法,實心折線為本文改進后的DETR山火檢測算法,從中可以看到,DETR算法在驗證集上收斂于AP(IOU=0.5)=70%附近,而經過改進后的本文算法在經過231輪迭代后收斂于AP(IOU=0.5)=75%附近.
圖8 平均精度變化曲線Fig.8 Average accuracy variation curve
DETR算法在加入不同策略后的實驗結果如表1所示.
表1 加入不同改進策略效果Table 1 Effect of adding different improvement strategies
第1行為原始DETR算法,在未加任何改進措施的情況下AP為78.52%,在此基礎上加入多尺度特征信息融合和空洞卷積使得AP總共提升了3.08%,加入相對位置編碼使得AP提高了2.72%,最后使用所有改進后總共提升了6.25%,達到84.77%.
為了進一步驗證本文算法的性能,在測試集上與7種具有代表性的目標檢測算法 CenterNet、SSD、Faster-RCNN、YOLOv3、RetinaNe、YOLOv5-x以及Deformable DETR進行對比實驗.實驗結果如表2所示.
表2 本文模型與其他檢測模型的對比Table 2 Comparison of the proposed model with other detection models
由表2可知,CenterNet雖然精確度為97.52%,但是召回率只有29.57%,SSD和RetinaNet精度可以到80%以上,但是召回率同樣較低,相比之下DETR雖然無論是精確度還是召回率都達到了較高的水平,本文在DETR的基礎上進行改進,達到了對比算法的最高檢測精度P=86.39%和最高召回率R=88.42%,同時平均精度提高了6.25個百分點.
為了直觀的對比改進前后算法的檢測效果,使用訓練出來的最優(yōu)權重在測試集中進行測試,選取同一張圖像進行對比,如圖9所示,其中第1列為原始DETR算法檢測結果,第2列為本文改進后的DETR算法檢測結果,可以看到第1張照片中原始DETR檢測框沒有將煙霧目標全部框住,而本文改進后的煙霧檢測算法較為精確的檢測出了所有煙霧目標;第2張照片中DETR算法產生了誤檢測,而改進后的DETR算法沒有產生誤檢且檢測框更加精準;第3張照片中DETR產生了冗余框并且沒有將煙霧全部檢測出,改進后的DETR將煙霧目標完整的檢測了出來.
圖9 算法檢測結果對比Fig.9 Comparison of algorithm detection results
針對人工和傳統(tǒng)目標檢測方法對輸電線通道山火進行圖像檢測容易造成漏檢和誤檢的問題,本文提出了一種基于改進DETR的輸電線通道山火檢測模型,構建了1993張包含山火煙霧目標的輸電線通道數(shù)據(jù)集以此為基礎進行算法訓練和對比實驗,并通過多尺度特征信息融合、加入相對位置編碼和利用CIOU改進損失函數(shù),最終建立了最優(yōu)的山火檢測模型,實驗結果表明,改進后的DETR山火檢測算法的平均精度為84.77%,F1得分為0.87,在這兩個指標上均高于Faster-RCNN、SSD、YOLOv3、YOLOv5-x、Deformable DETR、RetinaNet、CenterNet和原始DETR算法,并在AP上超越原始DETR算法6.25個百分點,可為后續(xù)輸電線附近的山火煙霧目標檢測提供參考.