吳暉,李銘鈞,楊英儀,吳昊,孫強
(1.廣東電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,廣東 廣州 510080;2. 廣東電網(wǎng)有限責(zé)任公司,廣東 廣州 510060)
隨著視頻監(jiān)控系統(tǒng)在變電站內(nèi)的普及應(yīng)用,工作人員可借助這些監(jiān)控設(shè)備對現(xiàn)場實現(xiàn)遠(yuǎn)程巡查,從而使得變電站監(jiān)管的邊界得到拓展。盡管當(dāng)前智能技術(shù)手段在變電站視頻監(jiān)控領(lǐng)域的應(yīng)用改變了此前通過依賴人員手動調(diào)度視頻終端的被動式的監(jiān)控方式[1],但隨著變電站內(nèi)需要監(jiān)控的目標(biāo)增多和對現(xiàn)場監(jiān)控實時性要求的提高,即使在后端為視頻監(jiān)控系統(tǒng)搭配高性能服務(wù)器,海量高清視頻數(shù)據(jù)傳輸也會對網(wǎng)絡(luò)帶寬、延遲等提出極高的要求,在某些緊急事件發(fā)生時,往往會造成嚴(yán)重的后果。
針對上述問題,本文對目標(biāo)檢測技術(shù)在變電站中的應(yīng)用展開研究。該研究主要圍繞基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)在視頻監(jiān)控前端[2]的推理需求進行優(yōu)化設(shè)計,以提升其整體、高效的智能化檢測分類能力。
智能視頻監(jiān)控技術(shù)對視頻圖像的處理一般分為目標(biāo)檢測與跟蹤、目標(biāo)識別、行為分析3個層次[3]。作為智能視頻監(jiān)控技術(shù)的基礎(chǔ),目標(biāo)檢測性能好壞直接影響到后續(xù)層次的性能的優(yōu)劣。一般來說,對視頻目標(biāo)進行檢測的重點著眼于對底層特征的處理。常用的建模方法主要分為基于目標(biāo)建模和基于場景建模等2種,如幀間差分[4]和高斯混合模型[5]就是基于目標(biāo)建模方法的經(jīng)典算法,它主要應(yīng)用于固定式視頻監(jiān)控終端中;基于場景建模的方法主要依賴于對視頻圖像中特征的提取與分類,其具有代表性的特征提取方法包括尺度不變特征轉(zhuǎn)換(scale-invariant feature transform, SIFT)[6]、HoG[7]等,代表性的分類器有支持向量機(support vector machine,SVM)[8]、AdaBoost[9]等?;趫鼍敖5姆椒ú皇軕?yīng)用場景的限制,因此可以用于移動式視頻監(jiān)控終端。
為了提升視頻監(jiān)控數(shù)據(jù)智能化分析的能力,電力運行維護領(lǐng)域的眾多專家學(xué)者也開展了一系列的研究,試圖利用計算機視覺手段,對非結(jié)構(gòu)化的視頻監(jiān)控數(shù)據(jù)進行主動分析,以輔助提升變電站視頻監(jiān)控數(shù)據(jù)的利用率和智能化分析水平。在面向電力行業(yè)的應(yīng)用中,基于人工設(shè)計特征的方法被廣泛應(yīng)用在各類場景中。文獻(xiàn)[10]提出了基于區(qū)域特征和局部特征相融合的運動目標(biāo)檢測算法,并將場景分為動態(tài)背景和靜態(tài)背景分別建模處理,有效地抑制了動態(tài)背景產(chǎn)生的虛假目標(biāo)。該算法仍以背景建模為基礎(chǔ),因此只適用于靜止的設(shè)備監(jiān)控終端。文獻(xiàn)[11]面向移動機器人云臺采用了一種基于特征點匹配的指針儀表目標(biāo)檢測與識讀方法。該方法通過消除光線變化、污穢等外部干擾因素的圖像預(yù)處理,有效地提升了表盤和指針目標(biāo)的檢測效果,但這是在云臺靜止不動的情況下應(yīng)用的,因此其在移動式視頻監(jiān)控終端的有效性有待驗證?;谶吘壿喞崛〉姆椒╗12]也被應(yīng)用于復(fù)雜環(huán)境下絕緣子的定位檢測,即通過計算目標(biāo)圖與模板圖的歸一化互相關(guān)系數(shù)矩陣,并在空域上對模板圖像進行尺度變換和角度旋轉(zhuǎn),實現(xiàn)基于模板匹配的絕緣子定位。此外,基于人工設(shè)計特征的其他方法如基于紋理特征的定位[13]、融合顏色特征的圖像定位分割[14-15]等方法也被廣泛應(yīng)用于電力運行維護領(lǐng)域的目標(biāo)檢測中。
以上方法雖然在特定應(yīng)用場景下取得了較好的效果,但仍有以下需要解決的問題[16]:①傳統(tǒng)方法結(jié)合梯度、顏色或紋理等人工設(shè)計的淺層特征進行目標(biāo)檢測,難以對視頻圖像中豐富的深層次特征進行提取和描述,在邊緣對比度較低的情況下,極易造成漏檢漏判。②人工設(shè)計的特征可分性較差,致使目標(biāo)檢測方法容易受到背景噪音的干擾,無法為后續(xù)的識別提供更多分類依據(jù),導(dǎo)致最終分類錯誤率偏高。③人工設(shè)計的特征具有針對性,很難將針對性的單一特征用于對多目標(biāo)進行檢測,因此在視頻圖像中關(guān)注的目標(biāo)較多的情況下,必須針對不同的目標(biāo)分別設(shè)計不同的特征。
當(dāng)前基于深度學(xué)習(xí)的目標(biāo)檢測方法通常被分為2類:基于區(qū)域提議(或候選窗口)的方法和基于回歸的方法。區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(region-convolutional neural networks,R-CNN)系列[17-18]是基于區(qū)域提議的方法中最具代表性的目標(biāo)檢測框架。而YOLO系列[19]則是基于回歸的方法中應(yīng)用最為廣泛的框架之一。相比較于基于區(qū)域提議的R-CNN系列方法在檢測精度上極具優(yōu)勢,YOLO系列方法的優(yōu)勢則體現(xiàn)在檢測速度上[20]。
YOLO v3[21]、YOLO v2[22]都是由YOLO演變而來,YOLO v3則是在YOLO v2的基礎(chǔ)上又進行改進,在維持檢測速度的同時可獲得更好的檢測精度,即:①bounding box預(yù)測。YOLO v3延續(xù)了YOLO v2對每個方格預(yù)測5個方框的bounding box預(yù)測方式,在判斷anchor box的正負(fù)時,通過最大IoU法確定正anchor box。②類預(yù)測。不同于softmax,YOLO v3采用independent logistic classifiers和binary cross-entropy loss,更好地處理了多標(biāo)簽任務(wù)。③多尺度預(yù)測。YOLO v3使用了3個不同的scale進行預(yù)測,將前2層的feature-map進行上采樣,從網(wǎng)絡(luò)低層取feature-map,用element-wise addition將其與上采樣特征合并,加一些卷積層,然后進行預(yù)測。④基礎(chǔ)分類。YOLO v3采用了比YOLO v2的darknet-19更深層的darknet-53網(wǎng)絡(luò),在特征提取上表現(xiàn)出更好的性能,實現(xiàn)了與Resnet-152近乎相同的準(zhǔn)確率,而速度卻是后者的2倍。
由此可見,隨著算法的不斷改進,基于回歸的YOLO系列方法在檢測精度和實時性2個方面都得到了較好的平衡,尤其是YOLO v3在部分?jǐn)?shù)據(jù)集上已經(jīng)獲得了接近快速 R-CNN的性能。
整體而言,針對變電站關(guān)鍵目標(biāo)的檢測主要采用粗粒度檢測與細(xì)粒度分類相結(jié)合的方案。在方案中,將檢測的目標(biāo)細(xì)分為作業(yè)人員、施工車輛2類,而其中作業(yè)人員又包含了是否穿戴作業(yè)安全帽和是否穿著工作服,施工車輛又進一步劃分為吊車、泵車、鏟斗車、挖掘機等特種車類別。在面向上述目標(biāo)的粗粒度檢測方面,主要采用基于TensorFlow框架的YOLO v3目標(biāo)檢測方案,使用優(yōu)化后的YOLO v3算法對目標(biāo)進行檢測并輸出其在圖像中的位置坐標(biāo)。在細(xì)粒度分類方面,采用基于TensorFlow框架的深層神經(jīng)網(wǎng)絡(luò)分類方案。當(dāng)智能視頻終端采用目標(biāo)檢測算法捕捉到變電站作業(yè)人員之后,再利用優(yōu)化裁剪后的分類網(wǎng)絡(luò)對作業(yè)人員進行更細(xì)致的下一級類內(nèi)區(qū)分,主要是針對變電站作業(yè)人員判斷其是否佩戴安全帽和是否穿著工作服等,即使用單目標(biāo)的多標(biāo)簽分類對變電站作業(yè)人員的屬性類別進行獨熱編碼。例如:一個佩戴了安全帽并穿著工作服的工作人員就可以獨熱編碼表示為“1 0 1 0”。細(xì)粒度獨熱編碼表見表1。
表1 變電站作業(yè)人員細(xì)粒度獨熱編碼Tab.1 Fine-grainedone-hot encoding for operators’ attributes
由于對邊緣端裝備的智能推理能力的需求越來越高[23],應(yīng)用于變電站關(guān)鍵目標(biāo)檢測的CNN模型在終端應(yīng)用前需要進行適當(dāng)?shù)膬?yōu)化。本節(jié)分別介紹了對粗粒度檢測算法與細(xì)粒度分類算法進行的優(yōu)化。
標(biāo)準(zhǔn)的YOLO v3算法是近年來表現(xiàn)最為優(yōu)異的邊框回歸類算法,但在變電站應(yīng)用環(huán)境進行目標(biāo)檢測時,由于變電站現(xiàn)場設(shè)備、環(huán)境等非關(guān)注物的影響,造成模型在訓(xùn)練的過程中會遇到大量的假正例,即負(fù)樣本被錯誤地分類為正樣本。大量令分類器難以正確分辨的負(fù)樣本會造成正負(fù)樣本比例失衡,從而影響分類器正確率。因此,本文利用在線困難實例挖掘(online hard example mining,OHEM)方法,提高真負(fù)例的比率,并對算法原來采用的損失函數(shù)進行改進,對正/負(fù)樣本使用了focal loss損失函數(shù)[24],通過減少易分類樣本的權(quán)重,使得模型在訓(xùn)練時更專注于難分類的樣本。focal loss損失函數(shù)
(1)
式中:y為真實樣本的標(biāo)簽(1為正,0為負(fù));y′為經(jīng)過sigmoid激活函數(shù)的預(yù)測輸出(數(shù)值在(0, 1)之間);γ為樣本預(yù)測參變量,當(dāng)γ> 0時,函數(shù)減少了易分類樣本的損失,使得模型更關(guān)注于困難的、易錯分的樣本。
此外,由于算法針對作業(yè)人員是否佩戴安全帽、是否穿著工作服進行了獨熱編碼,對于損失函數(shù)而言,當(dāng)使用預(yù)測概率去擬合真實概率函數(shù)時,將無法保證模型的泛化能力,容易造成過擬合。為了解決這個問題,采用標(biāo)簽平滑[25]的方法,即在真實標(biāo)簽中加入噪聲,減少計算損失函數(shù)時真實標(biāo)簽所占的權(quán)重,在不改變模型結(jié)構(gòu)的情況下防止其過擬合,從而使模型性能達(dá)到最優(yōu)。
智能算法需要在監(jiān)控終端上進行部署,形成智能視頻監(jiān)控終端,為了提高模型在終端上處理的實時性,對YOLO v3網(wǎng)絡(luò)進行模型壓縮。本文采用MobileNetV1替換YOLO v3的Darknet-53,將上采樣層替換成MobileNet的最后3層,使YOLO v3更加輕量和高速。經(jīng)過測試,這樣的改造使模型耗時相比于改造前縮短了5 ms,提升了模型速度。
此外,采用剪枝的方法對YOLO v3濾波器通道進行處理。對于權(quán)重貢獻(xiàn)度低于設(shè)定閾值的部分,則認(rèn)為其作用較小予以刪除。貢獻(xiàn)度的高低按照權(quán)重的絕對值大小來進行衡量,將分布在0的兩側(cè)且低于設(shè)定閾值的貢獻(xiàn)值轉(zhuǎn)化為0,轉(zhuǎn)化后的部分將不參與網(wǎng)絡(luò)的前向和后向傳播,如圖1所示。經(jīng)4次壓縮后,模型大小減小到原來的1/2,模型耗時相比壓縮前縮短了4 ms,模型速度提升,模型精度損失微小。
圖1 單次剪枝后某層權(quán)重分布Fig.1 Weight distribution of a layer after a single pruning
為了在低功耗的視頻監(jiān)控終端上實現(xiàn)對作業(yè)人員穿戴屬性的進一步分類,同樣需要對細(xì)粒度分類算法進行優(yōu)化。目前在細(xì)粒度分類實現(xiàn)上采用了SmallerVGGNet[26]。對該部分算法的優(yōu)化包括2個方面:①對網(wǎng)絡(luò)進行裁剪和網(wǎng)絡(luò)修改。去除網(wǎng)絡(luò)中的全連接層,改用全局平均池化層,同時剔除掉輸出通道最大的2層卷積網(wǎng)絡(luò),因為其具有最大的參數(shù)量??梢晭缀谓M(visual geometry group,VGG)網(wǎng)絡(luò)原先保存的權(quán)重尺寸將近200 M,在進行裁剪和修改后只剩下14 M,使得算法的檢測速度大幅提高。②針對分類方法進行優(yōu)化。對于多標(biāo)簽分類而言,一個樣本的標(biāo)簽不僅僅局限于一個類別,可以具有多個類別,且不同類之間是有關(guān)聯(lián)的。在作業(yè)人員穿戴識別中,安全帽、工作服是作業(yè)人員的不同屬性,但是這2個屬性標(biāo)簽不是互斥的,而是有關(guān)聯(lián)的。在同一個場景樣本中,作業(yè)人員穿戴的標(biāo)注是屬于多標(biāo)簽問題。原網(wǎng)絡(luò)中采用的softmax損失函數(shù)適用于單標(biāo)簽多分類問題,因此在這里改用了更適合多標(biāo)簽分類問題的sigmod函數(shù)。
為驗證算法的有效性,對優(yōu)化后的算法進行了一系列測試,以評估粗粒度檢測與細(xì)粒度分類的性能表現(xiàn)。算法的訓(xùn)練是在一臺深度學(xué)習(xí)服務(wù)器上進行的,該服務(wù)器配置多顆NVIDIA 1080Ti GPU和Intel XEON 12核CPU,16 GB DDR4內(nèi)存。在服務(wù)器的Ubuntu 16.04上配套搭載TensorFlow 1.12、Keras 2.2.4框架,并配置OpenCV3.4、scikit-learn 0.20.3、numpy、pillow等配套軟件。
變電站中出現(xiàn)的目標(biāo)類型眾多,其中開展現(xiàn)場作業(yè)的人員和車輛通常具有運動特征,其行為動作對變電站現(xiàn)場設(shè)備、環(huán)境的變化會造成影響,因此是變電站現(xiàn)場視頻監(jiān)控中的主要目標(biāo)對象。此類目標(biāo)通常具有一些典型的局部視覺表征,如作業(yè)人員的安全帽、工作服等。為了支持前端對此類目標(biāo)進行后續(xù)目標(biāo)跟蹤、目標(biāo)分類、行為分析與語義理解等更高層次智能視頻監(jiān)控,本文選取作業(yè)人員佩戴的安全帽、穿著的工作服、大型施工車輛為關(guān)鍵目標(biāo),采集所需的圖像樣本。針對粗粒度檢測部分,在變電站戶外環(huán)境下收集了包括不同季節(jié)和不同光照條件下的目標(biāo)圖像樣本20 000張,并使用如翻轉(zhuǎn)、旋轉(zhuǎn)等幾何變換方法對數(shù)據(jù)進行有監(jiān)督性的數(shù)據(jù)增強。針對細(xì)粒度分類部分,采集包括作業(yè)人員、施工車輛等細(xì)節(jié)目標(biāo)的圖片樣本10 000張,同樣對數(shù)據(jù)進行增強處理。所有原始圖像樣本在具體訓(xùn)練過程中進行統(tǒng)一壓縮與歸一化處理。
4.2.1 粗粒度檢測結(jié)果
針對粗粒度目標(biāo)檢測的測試,選取施工車輛作為算法檢測的目標(biāo)對象,具體車輛類型包括吊車、泵車、鏟斗車、挖掘機這4種特種車輛。在模型訓(xùn)練與測試過程中將所有樣本按照1∶3的比例分為訓(xùn)練集與測試集。為了評估算法的優(yōu)化效果,采用原始的YOLO v3算法與本文所述優(yōu)化的YOLO v3算法進行模型訓(xùn)練、驗證與結(jié)果對比。測試結(jié)果主要包括召回率、準(zhǔn)確率、平均準(zhǔn)確率3個指標(biāo),具體結(jié)果見表2。
由表2可見:在針對變電站施工車輛進行粗粒度目標(biāo)檢測時,優(yōu)化后的YOLO v3算法在召回率、準(zhǔn)確率和平均準(zhǔn)確率指標(biāo)上相比較于原始的YOLO v3算法均有整體提升。這說明針對粗粒度算法采用OHEM方法及改進損失函數(shù)的優(yōu)化手段是有效的,該方案通過在線挖掘真負(fù)例比率和降低易分類樣本權(quán)重,使模型訓(xùn)練過程中的正負(fù)樣本的比例更加均衡,提升了分類器的分類準(zhǔn)確率,進而對算法整體的指標(biāo)產(chǎn)生了正面的影響。
表2 面向施工車輛的粗粒度檢測結(jié)果對比Tab.2 Comparison of coarse-grained detectionresults on vehicles
考慮到算法優(yōu)化的主要目標(biāo)是在視頻監(jiān)控終端上進行部署并提供邊緣端推理,在實時性方面具有較高的要求,因此對優(yōu)化后YOLO v3算法的推理時間進行測試。評估將輸入圖像壓縮并歸一化到不同尺寸下采用粗粒度檢測算法在檢測施工車輛上所需的時間,結(jié)果見表3。
表3 面向施工車輛的粗粒度檢測所需推理時間Tab.3 Inferring timeof coarse-grained detection on vehicles
由表3可見:利用優(yōu)化后的YOLO v3算法對圖像壓縮和歸一化處理后的具有不同尺寸的圖像樣本進行推理,推理時間均在100 ms以內(nèi)。這表明針對算法的網(wǎng)絡(luò)壓縮和剪枝優(yōu)化使算法更加輕量,從而有效地保證了算法推理的實時性,有助于其在視頻監(jiān)控終端上的應(yīng)用。
4.2.2 細(xì)粒度分類結(jié)果
針對細(xì)粒度分類的測試主要是圍繞作業(yè)人員的穿戴屬性進行的。為了進行細(xì)粒度分類,首先利用粗粒度檢測對樣本進行處理,將檢測到存在作業(yè)人員的樣本作為細(xì)粒度分類網(wǎng)絡(luò)的輸入,進行作業(yè)人員是否佩戴安全帽和是否穿著工作服的識別分類,最終將檢測結(jié)果打上標(biāo)簽并輸出。在細(xì)粒度分類算法中,主要以準(zhǔn)確率為考核指標(biāo)。檢測分類的效果如圖2所示,圖2中左上角的數(shù)據(jù)代表檢測到的作業(yè)人員佩戴安全帽和穿著工作服的概率,其預(yù)測準(zhǔn)確率達(dá)到了現(xiàn)場應(yīng)用的要求。
圖2 細(xì)粒度分類識別效果Fig.2 Fine-grained classification results on operators
本文在介紹當(dāng)前變電站視頻監(jiān)控系統(tǒng)應(yīng)用現(xiàn)狀及技術(shù)需求的基礎(chǔ)上,分析了傳統(tǒng)目標(biāo)檢測方法在變電站目標(biāo)檢測上存在的問題,繼而提出了采用基于深度學(xué)習(xí)的YOLO v3優(yōu)化方法??紤]到在視頻監(jiān)控終端上提供前端推理的需求,針對變電站關(guān)鍵目標(biāo)粗粒度檢測和細(xì)粒度分類的實現(xiàn)方案分別進行了優(yōu)化設(shè)計。實驗結(jié)果表明:優(yōu)化后的YOLO v3算法在粗粒度檢測上相比較于優(yōu)化前的YOLO v3算法在性能上有了整體提升,而其推理速度能夠支持其在前端的應(yīng)用;而結(jié)合獨熱編碼、網(wǎng)絡(luò)壓縮與損失函數(shù)優(yōu)化的細(xì)粒度分類方法能夠?qū)崿F(xiàn)對相同對象不同屬性類別的準(zhǔn)確分類。
下一步的工作是進一步擴展目標(biāo)檢測的對象,在構(gòu)建具備更強分類能力與檢測精度的深度卷積神經(jīng)網(wǎng)絡(luò)模型的同時保持其前端推理速度,并在具備專用人工智能芯片的智能視頻終端上開展集成驗證。