王彥生,朱佳佳,王紫儀,湯博宇 ,高 陽,2
(1. 南京工程學院 人工智能產(chǎn)業(yè)技術研究院,南京 211167;2. 江蘇省智能感知技術與裝備工程研究中心,南京 211167)
當今社會,電能成為居民日常生活和工業(yè)生產(chǎn)的基礎保障,一旦輸電過程中突發(fā)事故,將無法保證居民的日常生活用電,給居民生活帶來了極大的不便,也會給工業(yè)生產(chǎn)造成巨大的經(jīng)濟損失,為此,必須按時對輸電線路進行檢修和維修,這就對電網(wǎng)的作業(yè)人員提出了更高的工作要求。據(jù)有關部門統(tǒng)計,我國電力建設事故數(shù)量和死亡人數(shù)逐年增加,糾其原因,很大一部分都是未按安全規(guī)范來進行維修檢修工作導致的,進而給電網(wǎng)的安全運行造成巨大威脅。因此,必須規(guī)范作業(yè)過程,嚴格監(jiān)管作業(yè)人員是否按規(guī)定穿戴工作裝備,避免發(fā)生電擊事故,才能保障居民企業(yè)的正常用電。其中不按規(guī)定佩戴絕緣手套是影響電力生產(chǎn)的不安全行為之一。目前電網(wǎng)企業(yè)中一般是通過人工現(xiàn)場監(jiān)管或者視頻監(jiān)控的方式來加強現(xiàn)場作業(yè)安全管理,人工現(xiàn)場監(jiān)管需要單獨調派人手,且人眼監(jiān)管的范圍有限,浪費人力且監(jiān)管效果較差。而采用視頻監(jiān)控進行管理時,隨著監(jiān)控場景的擴大以及監(jiān)控攝像頭的大量部署,監(jiān)控人員的工作量大大增加[1]。此外,監(jiān)控人員無法保證全天24小時監(jiān)看視頻監(jiān)控,并且人工監(jiān)控的方法存在監(jiān)管效率低、時效性差、智能化程度低等問題。因此,結合現(xiàn)有的網(wǎng)絡攝像頭等視頻采集設備,利用計算機視覺領域的圖像算法可以進行不安全行為的自動檢測,實現(xiàn)降低人工成本的目的,能更加及時并準確的發(fā)現(xiàn)不安全行為。
伴隨人工智能和計算機技術的發(fā)展,深度學習在目標檢測領域得到了廣泛應用[2]。目前有關目標檢測的深度學習算法主要有兩個分支,一個分支是以R-CNN系列為典型代表的雙階段目標檢測算法,另一個分支則是以SSD、YOLO系列為典型代表的單階段目標檢測算法。這兩種算法最大的區(qū)別在于是否需要提前生成預選框。具體來說,雙階段目標檢測算法需要提前生成預選框,然后經(jīng)過卷積神經(jīng)網(wǎng)絡進行檢測,而單階段目標檢測算法則不需要提前生成預選框,而是直接用神經(jīng)網(wǎng)絡進行檢測。目前對于電力行業(yè)不安全行為檢測的目標檢測方法主要以YOLO系列為主,文獻[3]通過修改YOLOv5網(wǎng)絡結構和研究相關算法提升遮擋場景下對電廠環(huán)境下作業(yè)人員是否佩戴安全帽進行檢測,文獻[4]通過在YOLOv5網(wǎng)絡中加入注意力機制和修改特征融合網(wǎng)絡以提高對煙頭等小目標的檢測精度,文獻[5]以Faster R-CNN算法為基礎,通過修改回歸損失函數(shù)以達到對作業(yè)人員著裝規(guī)范性檢測的目的。文獻[6]采用PSA極化自注意力機制、引入ASFF模塊以及修改回歸損失函數(shù)為EIoU Loss,提高對于口罩這類小目標的檢測精度。由此可見,現(xiàn)有的檢測方法大多是針對變電站施工現(xiàn)場對安全帽及施工人員等目標的檢測,而對于作業(yè)人員是否佩戴絕緣手套的檢測研究甚少,除此之外,絕緣手套屬于小目標檢測,其本身檢測難度較高,且存在檢測精度低的問題。
圖1 YOLOv5結構圖
為了解決上述難題,本文從小目標檢測方向入手,以YOLOv5s網(wǎng)絡為基礎,通過將主干網(wǎng)絡中的卷積替換為自校準卷積,添加注意力模塊,修改損失函數(shù),達到對電廠人員絕緣手套佩戴的檢測并進一步提高其檢測精度的目的。
到目前為止,YOLOv5總共發(fā)行了兩個版本,5.0版本和6.0版本,6.0版本將5.0版本中的有關結構進行了微調,圖1是6.0版本的具體結構,其可分為第一部分輸入端,第二部分Backbone,第三部分Neck以及第四部分預測網(wǎng)絡。
首先,YOLOv5的輸入端沿用了YOLOv4的Mosaic數(shù)據(jù)增強操作,通過選定一張圖片,然后通過與另外三張隨機圖片進行縮放裁剪操作,最終隨機排布拼成一張圖,將最終獲得的圖片作為訓練數(shù)據(jù),由此豐富圖片的背景,以提升模型的訓練速度和網(wǎng)絡的精度,除此之外,在網(wǎng)絡進行標準化BN計算時,計算一張圖片的數(shù)據(jù)就相當于計算四張圖片的數(shù)據(jù),以此減少GPU計算。
其次,提出了一種自適應錨框計算方法,之前的YOLO系列,諸如YOLOv3、YOLOv4對于錨框的處理都使用單獨的腳本進行初始錨框的計算,而YOLOv5拋棄了這一做法,將此功能直接嵌入到整個訓練代碼中。所以在每次訓練開始之前,YOLOv5網(wǎng)絡都會根據(jù)不同的數(shù)據(jù)集來自適應計算錨框。
最后,圖片縮放改為自適應。數(shù)據(jù)集中不同的圖片長寬不一定相同,YOLO算法在訓練時需要將圖片統(tǒng)一縮放到同一尺寸,而手動對圖片進行縮放填充,我們不能保證兩端填充的黑邊大小相同,一旦填充較多,就會存在信息冗余,影響推理速度。因此YOLOv5統(tǒng)一對原始圖像自適應的添加最少的黑邊,將圖片統(tǒng)一為同一尺寸,以此來避免過多信息冗余,加快網(wǎng)絡推理速度[7]。
1.2.1 Focus結構
在YOLOv5未出現(xiàn)之前,YOLO系列的所有網(wǎng)絡都沒有使用Focus結構,F(xiàn)ocus結構可以說是對圖片在進入主干網(wǎng)絡之前的特殊處理,其具體的操作是對圖像進行隔像素取值,即切片操作,從而將一張圖劃分為不同的值,經(jīng)過切片操作后,會獲得4個圖像,這4張圖像并不是相互獨立,毫無關系的,恰恰相反,它們相互間互補,因此,不存在信息缺失,且原本圖像的RGB三通道擴大成了4×3=12通道。Focus結構的優(yōu)勢是在減少了計算復雜度和參數(shù)的情況下,不會丟失任何信息,從而在保證準確率的前提下,提高了對小目標的檢測率。
1.2.2 CSP結構
CSP即C3模塊,YOLOv5中的CSP有兩種設計,分別為Backbone部分的CSP1_X結構和Neck部分的CSP2_X結構。
1)CSP1_X結構
CSP1_X結構的網(wǎng)絡結構圖如圖2所示。
圖2 CSP1_X網(wǎng)絡結構圖
其中CBS為Conv+BN+SiLu,Resunit是x個殘差組件。從結構可以看出,CSP1_X是通過將兩個不同支路進行Concat和CBS構成。CSP1_X應用于backbone主干網(wǎng)絡部分,主要是因為在較深的網(wǎng)絡中殘差結構可以增加層與層之間反向傳播的梯度值,以此來避免因為網(wǎng)絡加深而帶來的梯度消失,確保網(wǎng)絡可以提取到更加細微的特征[8]。
2)CSP2_X結構
CSP2_X的網(wǎng)絡結構圖如圖3所示。
圖3 CSP2_X網(wǎng)絡結構圖
CSP2_X相對于CSP1_X來說,不一樣的地方只有CSP2_X將Resunit換成了2*X個CBS,主要應用在Neck網(wǎng)絡。
3)SPPF結構
SPPF的具體結構如圖4所示。SPPF模塊將經(jīng)過CBS的x、一次池化后的y1、兩次池化后的y2和3次池化后的m(y2)先進行拼接,然后再CBS提取特征。通過結構圖不難發(fā)現(xiàn),雖然SSPF對特征圖進行了多次池化,但是特征圖尺寸并未發(fā)生變化,通道數(shù)更不會變化,所以后續(xù)的4個輸出能夠在channel維度進行融合。該模塊不僅要提取高層特征,還要利用多次最大池化進行特征的融合,以便能夠更多的提取信息。
圖4 SPPF網(wǎng)絡結構圖
Neck部分由兩個網(wǎng)絡組成,一個是特征金字塔網(wǎng)絡(FPN,feature pyramid networks),F(xiàn)PN網(wǎng)絡通過對主干網(wǎng)絡提取到的高低層特征進行融合,以此來提高對于較小目標的檢測效果。另一個網(wǎng)絡則是路徑聚合網(wǎng)絡(PAN,path aggregation network),PAN是一種自下而上的增強,這樣,深層的特征圖就能得到淺層的豐富細節(jié),因此,對于大型物體的檢測,就能得到更好的檢測效果[9]。
YOLOv5的輸出端主要是對預測框和真實框的處理,其先提高Bounding box損失函數(shù)計算預測框和真實框的交并比過濾掉一些檢測框,對于剩下的檢測框,通過nms非極大值抑制進一步篩選掉多余的檢測框,得到最終的檢測框。
原始的YOLOv5網(wǎng)絡采用傳統(tǒng)卷積對輸入圖像進行處理,傳統(tǒng)卷積存在諸多缺陷,為此本文將其進行改進,替換為自校準卷積。另外,為了使網(wǎng)絡更加關注待檢測的目標,其通常會在網(wǎng)絡中加入有關注意力機制,以此來達到讓網(wǎng)絡關注待檢測目標的目的。最后對于損失函數(shù)做了替換,原始YOLOv5網(wǎng)絡的損失函數(shù)為CIoU,其在網(wǎng)絡回歸時存在不足,為此本文將其改為EIoU。
2020年南開大學程明明團隊[10]提出了一種自校準的模塊(多個卷積注意力組合的模塊),替換基本的卷積結構,相較于傳統(tǒng)卷積,該卷積模塊在保證參數(shù)計算量不增加的前提下,擴大網(wǎng)絡對目標的感受野,增強特征圖的區(qū)分度[11]。其具體結構如圖5所示。
首先將輸入X沿著通道方向進行分裂(Split),形成X1和X2,然后X1和X2會分別通過兩個路徑進行信息的處理。首先,分裂后的X1會通過一個濾波器{K2,K3,K4},其目的就是對X1進行自校準,最終得到一個輸出Y1;對于分裂后的X2則只進行一個簡單的卷積操作得到另一個輸出Y2,通過卷積操作來保存輸入中原始的信息。最后,將得到的兩個輸出進行Concat操作,得到最終的輸出Y,這就是自校準的整個過程。
圖5 自校準卷積模塊整體結構圖
通過上述過程可以發(fā)現(xiàn),通過將原始的輸入信息進行兩條不同路徑的處理,一方面通過自校準操作讓網(wǎng)絡在處理圖像信息時將輸入的每個空間位置及其周圍的信息自適應進行信息嵌入,對信息進行編碼,使網(wǎng)絡在處理圖像信息時只關注待檢測物體周圍的信息,這樣一來就可以避免來自全局其他無用信息的干擾[12];另一方面,通過簡單卷積保留原始信息,最終將其與自校準處理的信息進行融合,最終獲得待檢測物體的精準信息。
在YOLOv5網(wǎng)絡中,其主干網(wǎng)絡、Neck以及預測網(wǎng)絡部分都存在卷積操作,為了更好的提取到待檢測目標的信息,本文將YOLOv5主干網(wǎng)絡的卷積替換為自校準卷積,從而使特征提取網(wǎng)絡在提取物體特征時更加專注于待檢測物體周圍的信息,擴展感受野豐富輸出,進而強化對弱特征的提取能力,以此來提高對于待檢測目標的檢測精度,尤其是對于像絕緣手套這種類似的小目標物體,使用自校準卷積來提取物體信息優(yōu)勢顯著。
圖6 SK結構示意圖
南京理工大學李翔等人[13]在2019年國際計算機視覺與模式識別會議(CVPR)上提出一種選擇性內核網(wǎng)絡(SKNets,selective kernel networks),SKNet是基于SE[14](Squeeze and Excitation Networks)注意力機制的改進,其主要創(chuàng)新點是設置了一組動態(tài)選擇的卷積(SK),分為3個部分操作:Split、Fuse、Select,即分裂、融合和選擇,其具體結構如圖6所示。
從圖中可以看出,分裂操作將輸入的特征圖分別使用3×3和5×5的卷積核進行卷積操作,提取目標特征;融合操作則將得到的相同尺寸特征圖中的對應元素相加,然后對融合后的特征圖進行空間維度的全局平均池化操作,得到特征圖S,緊接著通過FC全連接提取通道注意力信息,得到特征圖Z,然后分別使用不同的卷積核a和b與通道注意力信息Z進行卷積,再經(jīng)過Softmax處理,得到每個卷積核對應的通道注意力信息;選擇操作通過將得到通道注意力信息的a和b分別與前面經(jīng)過卷積核處理的特征圖進行相乘,輸出具有卷積核的通道注意力的特征圖,最后,將具有卷積核的通道注意力的特征圖進行融合,得到最終的通道注意力特征圖[15]。從上述操作不難看出,SK結構通過對大小不同的卷積核的相加相乘,最終可以獲得不同的感受野。
在標準卷積神經(jīng)網(wǎng)絡中,設置了大小相同的人工神經(jīng)元的感受野[16],這就導致網(wǎng)絡訓練時不能根據(jù)待檢測目標的大小及時改變感受野。為此,本文將SK模塊添加到YOLOv5網(wǎng)絡的Neck部分,使網(wǎng)絡在訓練時可以根據(jù)輸入信息的多個尺度自適應調整其感受野大小,以此來加強網(wǎng)絡對于小目標物體的關注度,提高對絕緣手套的檢測精度。
在目標檢測網(wǎng)絡中為了衡量預測框與真實框的關系,提出了交并比(IOU,intersection over union)的概念,隨著目標檢測算法的不斷發(fā)展,IOU也誕生了不同的損失函數(shù),例如GIOU(generalized intersection over union)、DIOU(complete intersection over Union)和CIOU(Complete IoU)等。2021年中國科學院大學張易凡等人[17]在損失函數(shù)CIOU基礎上進一步提出了一個更加完善的損失函數(shù)EIOU,與CIOU有所不同的是EIOU損失函數(shù)在CIOU損失函數(shù)的基礎上將原始的寬高比例,改為寬高值回歸,EIOU損失函數(shù)由重疊、中心距離和寬高這三部分損失構成,其中重疊和中心距離損失與CIOU中的一樣[18],但是寬高損失卻不一樣。在EIOU中寬高損失是讓目標檢測框和錨框對應的寬高之差最小,以使網(wǎng)絡的收斂速度更快。具體如公式(1)所示。
LEIoU=LIoU+Ldis+Lasp
(1)
其中:Cω和Ck是覆蓋真實框和預測框的最小外接框的寬度和高度。
CIOU是原YOLOv5網(wǎng)絡所使用的損失函數(shù),盡管CIOU在原網(wǎng)絡中表現(xiàn)良好,但是其在進行交并比計算時只考慮寬高比例,一旦出現(xiàn)檢測框和預測框的中心點與原圖一樣,寬度和高度的比值相同,但兩者的寬度和高度值不同的情況,如果仍按CIOU損失計算,則會導致目標不相符[19]?;诖吮疚膶IOU損失函數(shù)替換為EIOU,使網(wǎng)絡在處理預測框與真實框時更加完善,提高檢測目標檢測框的準確度。
圖7 LabelImg操作界面
圖8 訓練過程曲線圖
本文數(shù)據(jù)集來自某市供電公司提供的電廠維修及檢修人員的圖片共1075張,獲得圖片后,使用LabelImg標注軟件進行標注,軟件操作界面如圖7所示,標注時,將檢修人員戴的絕緣手套用矩形框框選,然后輸入標簽glove,完成以后保存文件,此時標注好的文件為xml格式,需將其用對應的Python代碼轉換成txt格式。最后需要將數(shù)據(jù)集進行劃分,本文按照6:2:2的比例將數(shù)據(jù)集劃分為訓練集(train)、驗證集(val)和測試集(test),至此,數(shù)據(jù)集準備完畢。
實驗所用操作系統(tǒng)為Ubuntu18.04,顯卡為GeForce RTX2080Ti,顯存24 GB,CPU為Intel(R)Xeon(R)Glod5118CPU@2.3 GHz,內存128 GB,顯卡為GeForce RTX2080Ti,顯存24 GB,實驗框架為Pytorch,實驗語言均使用Python,根據(jù)系統(tǒng)CUDA版本11.3安裝相應的torch1.10.0、torchvision0.11.0、及torchaudio0.10.0,然后根據(jù)環(huán)境要求安裝相關的庫即可完成本文實驗環(huán)境的構建。
安裝完實驗環(huán)境后,需要設置實驗參數(shù),本文統(tǒng)一將圖片輸入尺寸設置為640×640,設置迭代輪數(shù)為300,學習率為0.001,批次batch-size設置為16,由于實驗服務器有3個獨立顯卡,實驗時調用3個顯卡,故最終batch-size為16×3=48,iou-thres 設置為0.5,其余參數(shù)均為默認。參數(shù)設置完后,修改訓練所需的數(shù)據(jù)配置文件以及模型配置文件,其中,數(shù)據(jù)配置文件中需修改訓練集、驗證集及測試集的文件路徑,還有類別名及類別數(shù),模型配置文件只需修改類別數(shù),修改完配置文件后開始訓練,圖8為訓練過程中的相關曲線??梢悦黠@看出,用于監(jiān)督檢測框回歸的box_loss和用于監(jiān)督圖像中是否存在物體的obj_loss曲線隨著訓練輪數(shù)的增加逐漸趨于平穩(wěn),而查準率曲線、查全率曲線以及mAP曲線逐漸趨于0.9,表明訓練效果較好,訓練精度較高。
本文采用查準率(Precision,P)、查全率(Recall,R)、平均精度均值(mAP)以及權重文件大小這4個指標作為評價模型的指標,其中 P、R和mAP的計算如下公式所示[20]。
(2)
(3)
(4)
其中:TP(True Positives)表示被正確檢測出的目標數(shù),F(xiàn)P(False Positives)表示檢測錯誤的目標數(shù),F(xiàn)N(False Negatives)表示未被檢測出來的目標數(shù),AP表示以Recall為橫軸,Precision為縱軸所繪PR曲線下的面積,N代表類別數(shù)。當P、R和mAP的值越接近于1,說明模型的性能越好。
3.5.1 對比實驗
為了更加直觀的體現(xiàn)YOLOv5s相較于其他目標檢測算法的高效性,將YOLOv5s與SSD、YOLOv3、YOLOv3-tiny、YOLOv5l、YOLOv5m、YOLOv5x以及 YOLOv5n 進行對比,對比結果如表1所示。
表1 對比實驗結果
通過實驗所得數(shù)據(jù)可以看出,YOLOv5s算法的檢測精度最高,為92.8%,相較于檢測精度較為接近的YOLOv5l和YOLOv5x,盡管其檢測精度十分接近,但是其權重文件較大,比YOLOv5s權重分別大78.4 MB、158.6 MB,YOLOv3-tiny算法的權重文件大小雖和YOLOv5s相近,但是YOLOv3-tiny算法的檢測精確比YOLOv5s低2.7%,SSD以及YOLOv5m算法無論是檢測精度還是權重文件大小都不及YOLOv5s,YOLOv5n算法的權重文件最小,僅有3.8 MB,檢測精度也十分接近YOLOv5s,但是其查準率和查全率卻不及YOLOv5s。綜合4個評價指標數(shù)據(jù),對于絕緣手套的檢測YOLOv5s算法性能最優(yōu),故本文將YOLOv5s作為改進的基礎網(wǎng)絡。
3.5.2 消融實驗
為了進一步證明本文改進算法的優(yōu)越性,在對比實驗的基礎上,將改進策略一一加入、兩兩加入進行消融實驗,消融實驗結果如表2所示。其中方案A、B、C、D、E、F分別指YOLOv5s+改進點1、YOLOv5s+改進點2、YOLOv5s+改進點3、YOLOv5s+改進點1和2、YOLOv5s+改進點1和3、YOLOv5s+改進點2和3。
消融實驗結果表明,將本文改進策略一一加入網(wǎng)絡后,每個改進策略的檢測精度都有所提升,其中,將損失函數(shù)修改為EIOU的檢測精度提升最高,提升了1.5%,然后兩兩加入后精度均有提高,最后,將所有改進點一同加入網(wǎng)絡后,其檢測精度提高了2.4%,且權重文件較小,僅比原始YOLOv5s算法大44.2MB,此外,查準率和查全率分別提高了1%、2.4%。通過消融實驗,再次證明了本文算法有效的提高了絕緣手套的檢測精度。
為了更加直觀體現(xiàn)本文算法的高效,本文用改進前后的網(wǎng)絡對于電廠現(xiàn)場的檢修人員是否佩戴絕緣手套進行了檢測,檢測結果對比如表3所示。從檢測結果可以看出,原YOLOv5s算法在檢測絕緣手套時存在誤檢測以及漏檢情況,此外,對于離視頻監(jiān)控較遠的檢修人員,由于其距離較遠,其佩戴的絕緣手套在監(jiān)控中很小,使用原始的YOLOv5s網(wǎng)絡其檢測精度僅為27%,而使用改進后的算法檢測時,檢測精度為59%,可見本文算法有效的提升了對絕緣手套的檢測精度。
表2 消融實驗結果
表3 檢測結果
本文在YOLOv5的基礎上提出了一種檢測未佩戴絕緣手套不安全行為的方法。首先將特征提取網(wǎng)絡中的卷積替換為自校準卷積,使網(wǎng)絡在提取目標特征時更關注待檢測目標周圍的信息。接著在特征融合網(wǎng)絡的最后加入SK注意力機制,使網(wǎng)絡更加關注待檢測的小目標。最后,修改原始YOLOv5網(wǎng)絡中的損失函數(shù),來進一步精確檢測框位置,最終提高對于絕緣手套的檢測精度。實驗結果證明,改進后的算法對于是否佩戴絕緣手套的檢測精度提高了2.4%,識別檢測效果明顯,有效保障了電力作業(yè)的安全生產(chǎn),具有較高的應用價值。但是,對于人員重疊以及手部遮擋的情況,本文改進的算法會存在一些漏檢,影響檢測效果,因此本文算法還有很大的改進空間,后續(xù)工作可以針對遮擋問題,研究采用二次識別或者圖像處理的方法來進一步提高對佩戴絕緣手套的檢測效果。