王志鵬,王 濤
(中國(guó)石油大學(xué)(華東)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,青島 266580)
電力行業(yè)是國(guó)民經(jīng)濟(jì)的支柱產(chǎn)業(yè),也是支撐交通、金融、供水、供氣等民生基礎(chǔ)設(shè)施安全可靠運(yùn)行的關(guān)鍵設(shè)施.電力系統(tǒng)的安全與穩(wěn)定對(duì)社會(huì)的發(fā)展有很重要的影響[1],因此應(yīng)該積極防范電力安全風(fēng)險(xiǎn),提前對(duì)電力運(yùn)維情況分析、降低該領(lǐng)域潛在的風(fēng)險(xiǎn)以及積極研發(fā)防御技術(shù).目前,電力維護(hù)現(xiàn)場(chǎng)都會(huì)配備監(jiān)控設(shè)備實(shí)時(shí)記錄作業(yè)過程,但是對(duì)施工安全的管控仍然主要依賴于人工監(jiān)察.這種方式會(huì)造成管控效率低下、人力資源浪費(fèi)、發(fā)展進(jìn)程緩慢等情況,并會(huì)伴隨著一定的經(jīng)濟(jì)損失.
隨著社會(huì)科學(xué)技術(shù)迅速發(fā)展,人工智能取得了突破性進(jìn)展.各行業(yè)向自動(dòng)化和智能化方向發(fā)展是實(shí)現(xiàn)工業(yè)4.0 智能制造目標(biāo)的必然趨勢(shì)[2].如今,人工智能在工業(yè)生產(chǎn)的許多方面都有實(shí)際應(yīng)用,這使得用智能方法對(duì)電力施工現(xiàn)場(chǎng)進(jìn)行安全管控有了現(xiàn)實(shí)可能.智能安全管控系統(tǒng)利用視頻設(shè)備實(shí)時(shí)檢測(cè)作業(yè)過程中的違規(guī)行為,不僅可以節(jié)省人力資源,而且可以實(shí)現(xiàn)全時(shí)段覆蓋檢測(cè),降低作業(yè)過程中的安全風(fēng)險(xiǎn),有效提高作業(yè)效率.
安全圍欄在電力運(yùn)維作業(yè)中扮演著重要的角色,可以保護(hù)工作人員免受外界因素干擾,保障無關(guān)人員的安全性.現(xiàn)有的圍欄主要有菱形圍欄、單柱雙帶圍欄、旗子圍欄、網(wǎng)狀圍欄等.在變電器維修、街頭環(huán)網(wǎng)柜維護(hù)以及吊車等作業(yè)過程中,都需要提前布置圍欄.但是許多作業(yè)人員安全意識(shí)較差,出入圍欄時(shí)往往不按照布置圍欄時(shí)預(yù)設(shè)出入口進(jìn)出,而使直接跨越圍欄、挪開圍欄以及鉆過圍欄等,這些不規(guī)范的行為給施工作業(yè)造成了很大的安全隱患.現(xiàn)場(chǎng)監(jiān)管人員由于自身的作業(yè)任務(wù),以及作業(yè)現(xiàn)場(chǎng)覆蓋面積廣等問題,很難監(jiān)測(cè)到每個(gè)違規(guī)行為,非常容易造成安全事故.針對(duì)這種情況,設(shè)計(jì)一款高效的智能化的穿越圍欄違規(guī)行為檢測(cè)方法勢(shì)在必行,對(duì)違規(guī)行為及時(shí)警告與制止,增強(qiáng)作業(yè)過程中的安全性.
電力施工現(xiàn)場(chǎng)的安全管控涉及到方方面面[3],但大多需要監(jiān)管人員的現(xiàn)場(chǎng)監(jiān)管,針對(duì)施工現(xiàn)場(chǎng)檢查表逐一排查,效率較低且時(shí)效性較差.圍欄是重要的安全工具,為了實(shí)現(xiàn)高效智能化管控,基于紅外線的電子圍欄應(yīng)用于實(shí)際[4],同時(shí)相對(duì)應(yīng)的監(jiān)管系統(tǒng)也逐步完善[5].隨著人工智能高速發(fā)展,房凱也提出了基于深度學(xué)習(xí)的跨越圍欄違規(guī)行為檢測(cè)方法[6],促進(jìn)了監(jiān)管方法的多樣性.
隨著卷積神經(jīng)網(wǎng)絡(luò)的盛行,目標(biāo)檢測(cè)取得了突破性的進(jìn)展.目前目標(biāo)檢測(cè)主要分為兩大流派:anchorbased 和 anchor-free.Anchor-based 方法會(huì)在特征圖上生成一系列的人為定義尺寸和寬高比的矩形框作為候選框,然后對(duì)這些候選框進(jìn)行分類和回歸進(jìn)而得到目標(biāo)區(qū)域.Ren 等人[7]提出的RPN(區(qū)域建議網(wǎng)絡(luò))改進(jìn)了傳統(tǒng)的SS(selective search)方法,極大地推進(jìn)了anchor-based 方法的發(fā)展,YOLO 也由v1[8]的版本的anchor-free 改為了anchor-based 方法.隨后許多方法提出解決anchor-based 方法中的缺點(diǎn),如使用nms 刪除候選框和Mask RCNN[9]提出的ROI Align 解決ROI pooling 中的量化取整問題.Anchor-based 方法還包括:SSD[10],FPN[11],RetinaNet[12]等.Anchor-free 方法則是摒棄了anchor 的思想,利用關(guān)鍵點(diǎn)進(jìn)行回歸獲取目標(biāo)框.2018年,Law 等人[13]提出CornerNet 通過預(yù)測(cè)左上角和右下角的角點(diǎn)檢測(cè)目標(biāo),隨后ExtremeNet[14]改進(jìn)CornerNet 通過預(yù)測(cè)極值點(diǎn)和中心點(diǎn)來預(yù)測(cè)目標(biāo),類似的還有CenterNet[15]預(yù)測(cè)角點(diǎn)以及中心點(diǎn).同時(shí)FPN網(wǎng)絡(luò)也被應(yīng)用于anchor-free 方法中,包括FSAF[16]、FCOS[17]、FoveaBox[18]等.雖然目標(biāo)檢測(cè)取得了很大成功,但無法有效的檢測(cè)出運(yùn)動(dòng)物體,在動(dòng)作識(shí)別方面有很大的局限性.
幀差法是通過計(jì)算相鄰幀圖像的灰度差與設(shè)定閾值的大小關(guān)系來判斷圖像中是否存在運(yùn)動(dòng)目標(biāo)的檢測(cè)方法,主要分為兩幀差法和三幀差法.兩幀差法適合運(yùn)動(dòng)目標(biāo)較緩慢的場(chǎng)景,當(dāng)運(yùn)動(dòng)目標(biāo)移動(dòng)速度較快時(shí),三幀差法的檢測(cè)結(jié)果更為準(zhǔn)確.幀差法被廣泛應(yīng)用于運(yùn)動(dòng)目標(biāo)的檢測(cè),周越等人[19]利用幀差法檢測(cè)運(yùn)動(dòng)車輛,也有研究將幀差法應(yīng)用于濾波跟蹤[20].幀差法也會(huì)與其他技術(shù)進(jìn)行結(jié)合,例如背景差分法[21,22].歐先鋒等人[23]將幀差法融入卷積神經(jīng)網(wǎng)絡(luò)中,提升了復(fù)雜場(chǎng)景以及小目標(biāo)的檢測(cè)效果.
為了有效地捕獲視頻中的外觀和運(yùn)動(dòng)信息,Simonyan 等人[24]基于CNN 設(shè)計(jì)了一種雙流卷積網(wǎng)絡(luò)分別處理圖片的RGB 圖像信息和光流信息.雙流網(wǎng)絡(luò)也是動(dòng)作識(shí)別領(lǐng)域的重要方法.之后Wang 等人[25]提出了TSN(temporal segment networks)解決長(zhǎng)視頻的行為判斷和小數(shù)據(jù)的問題.除了雙流網(wǎng)絡(luò),2015年Tran 等人[26]提出C3D 卷積網(wǎng)絡(luò),將卷積網(wǎng)絡(luò)的卷積核結(jié)構(gòu)從二維擴(kuò)展為三維來捕獲視頻中的時(shí)空特征,從此三維卷積網(wǎng)絡(luò)獲得快速發(fā)展.Hara 等人[27]將三維卷積與ResNet[28]結(jié)合,增加了網(wǎng)絡(luò)的深度,有效地提升了在動(dòng)作識(shí)別領(lǐng)域的準(zhǔn)確率.Carreira[29]將2D 網(wǎng)絡(luò)的與訓(xùn)練權(quán)重應(yīng)用與3D 網(wǎng)絡(luò),提升了模型的效果.雖然視頻動(dòng)作識(shí)別已經(jīng)取得了很好的效果,但是其主要用于短視頻的行為判斷,無法滿足安全管控的實(shí)時(shí)性的要求.
為了有效地解決電力運(yùn)維作業(yè)現(xiàn)場(chǎng)的穿越圍欄監(jiān)控問題,本文提出了一種基于Faster RCNN 的智能檢測(cè)方法.首先對(duì)現(xiàn)場(chǎng)監(jiān)控視頻進(jìn)行取幀,利用改進(jìn)的Faster RCNN 算法檢測(cè)圍欄位置以及使用關(guān)鍵點(diǎn)算法檢測(cè)人的關(guān)鍵點(diǎn)位置,通過設(shè)計(jì)的算法判斷人員是否存在違規(guī)行為.穿越圍欄是一個(gè)連續(xù)的行為,僅憑單張圖像的檢測(cè)結(jié)果容易造成誤檢,所以我們借助了幀差法的思想,將多張圖像的檢測(cè)結(jié)果進(jìn)行連續(xù)性判斷.最后我們將目標(biāo)檢測(cè)、關(guān)鍵點(diǎn)檢測(cè)算法以及判斷算法結(jié)合,提出一種端到端的穿越圍欄檢測(cè)算法.
圖1 描述了本文設(shè)計(jì)的基于Faster RCNN的穿越圍欄違規(guī)行為檢測(cè)方法的整體流程圖.首先獲取視頻流,對(duì)視頻取幀之后,將圖像分別輸入到Faster RCNN網(wǎng)絡(luò)以及人體關(guān)鍵點(diǎn)檢測(cè)網(wǎng)絡(luò)獲取到圍欄的位置信息以及人體信息暫存至隊(duì)列當(dāng)中.然后利用幀差判斷法判斷該張圖片是否存在違規(guī)行為,如果存在,就對(duì)該幀圖像中的任務(wù)用紅色框表示并將檢測(cè)結(jié)果保存至本地.
圖1 整體流程圖
Faster RCNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示.數(shù)據(jù)經(jīng)過預(yù)處理后,送入到backbone 網(wǎng)絡(luò)中提取特征得到feature map.Faster RCNN 提出的RPN(region proposal networks)網(wǎng)絡(luò)首先生成anchor boxes 并通過Softmax 分類判斷屬于positive 或者negtive.得到的anchors 通過ROI pooling 層與feature map 結(jié)合提取proposal feature,然后通過全連接和Softmax 進(jìn)行分類,并對(duì)proposals 進(jìn)行回歸修正.本文依據(jù)圍欄目標(biāo)的數(shù)據(jù)特征,對(duì)Faster RCNN 進(jìn)行了如下調(diào)整:
圖2 Faster RCNN 網(wǎng)絡(luò)結(jié)構(gòu)
(1)選用Resnet101+FPN 作為Backbone:Faster RCNN 采用的是VGG 網(wǎng)絡(luò)的最后一層特征作為feature map,為了提升網(wǎng)絡(luò)的特征提取能力,本文采用ResNet101網(wǎng)絡(luò)結(jié)合FPN 網(wǎng)絡(luò)作為特征提取網(wǎng)絡(luò).ResNet 網(wǎng)絡(luò)是一個(gè)深度卷積神經(jīng)網(wǎng)絡(luò),針對(duì)深度神經(jīng)網(wǎng)絡(luò)可能出現(xiàn)的隨著網(wǎng)絡(luò)深度加深導(dǎo)致訓(xùn)練集準(zhǔn)確率下降的問題,ResNet 設(shè)計(jì)了殘差模塊提出了深度殘差網(wǎng)絡(luò),提升了網(wǎng)絡(luò)抗過擬合能力.圖3 展示了兩種殘差結(jié)構(gòu).
圖3 兩種殘差結(jié)構(gòu)
低層的特征圖語義信息少但是目標(biāo)位置準(zhǔn)確,高層的語義信息豐富但目標(biāo)位置粗略,為了解決物體檢測(cè)中的多尺度問題,FPN 設(shè)計(jì)了一種金字塔式的網(wǎng)絡(luò),可以在不增加原有模型計(jì)算量的情況下提升物體檢測(cè)的性能.ResNet101 結(jié)合FPN 的具體網(wǎng)絡(luò)結(jié)構(gòu)如圖4.
圖4 ResNet101+FPN 網(wǎng)絡(luò)結(jié)構(gòu)
(2)修改anchors 比例.在Faster RCNN 中,RPN 會(huì)對(duì)特征圖中的每個(gè)特征點(diǎn)提取9 個(gè)anchors,其中anchors 的長(zhǎng)寬比設(shè)置為{0.5,1.0,2.0}.本文考慮到圍欄數(shù)據(jù)往往是長(zhǎng)條形狀的,所以將長(zhǎng)寬比設(shè)置為{0.5,1.0,2.0,3.0},這樣使產(chǎn)生的anchors 更容易匹配到原圖中圍欄的目標(biāo)區(qū)域.產(chǎn)生的候選anchors 通過Softmax網(wǎng)絡(luò)二分類為positive 與negative,挑選2 000 個(gè)positive anchors 進(jìn)行后續(xù)的計(jì)算.
(3)采用Softnms:NMS(non-maximum suppression)會(huì)對(duì)候選框進(jìn)行排序,選中分?jǐn)?shù)最高的候選框,最后抑制與選中框有明顯重疊的候選框.為了優(yōu)化NMS 這種略顯暴力的方法,Softnms 應(yīng)運(yùn)而生.和NMS 相同,Softnms 首先也是對(duì)候選框排序,選擇分?jǐn)?shù)最高的框作為選中框,不同的是,對(duì)于其他有明顯重疊的候選框的處理不是暴力的將其置信度置為0,而是會(huì)降低其置信度,進(jìn)行下一次的選擇.
(4)使用GIoU Loss:對(duì)于許多基于anchor 的目標(biāo)檢測(cè)算法,計(jì)算預(yù)測(cè)框與Ground Truth Bbox 的損失的時(shí)候往往使用L1 和L2 范數(shù),但是評(píng)價(jià)預(yù)測(cè)框置信度的時(shí)候卻使用的IoU(交并比),顯然存在一定的問題.所以本文選擇了GIoULoss 作為損失函數(shù).GIoU的做法是:假設(shè)現(xiàn)在有兩個(gè)預(yù)測(cè)框A和B,需要找到最小的一個(gè)可以將A和B包圍的封閉形狀C,然后計(jì)算C中不包含A、B的部分占C的比值.IoU以及GIoU的公式如下所示:
幀差法是根據(jù)物體運(yùn)動(dòng)時(shí)目標(biāo)在相鄰幀圖像上的差異進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)的算法,通常采用灰度圖的方式判斷運(yùn)動(dòng)目標(biāo).本文借鑒幀差法的思想,將幀差法與目標(biāo)檢測(cè)結(jié)合進(jìn)行穿越圍欄違規(guī)行為判斷.首先利用改進(jìn)的Faster RCNN 以及人體關(guān)鍵點(diǎn)檢測(cè)算法獲取圖像中圍欄坐標(biāo)以及人體17 個(gè)關(guān)鍵點(diǎn)的坐標(biāo)并存儲(chǔ)在判斷隊(duì)列中,判斷隊(duì)列的大小設(shè)置為5,即每次存儲(chǔ)5 張圖像的信息.如果某幀圖像被認(rèn)為可能存在違規(guī)行為,就會(huì)繼續(xù)判斷該幀圖像與接下來幾幀圖像的運(yùn)動(dòng)關(guān)系,具體是當(dāng)人體的關(guān)鍵點(diǎn)位于異常區(qū)域,就會(huì)繼續(xù)偵察后幾幀圖像相關(guān)關(guān)鍵點(diǎn)的運(yùn)動(dòng)趨勢(shì),綜合判斷該幀圖像的違規(guī)行為.算法流程圖如圖5所示.
圖5 幀差判斷法流程圖
本實(shí)驗(yàn)的硬件條件為:顯卡NVIDIA GeForce RTX 2080Ti,處理器為Inter i7 9900k.選擇MMDetection 框架,使用PyTorch 進(jìn)行深度學(xué)習(xí)網(wǎng)絡(luò)搭建,語言為Python 3.6.8.
本次實(shí)驗(yàn)共有圍欄數(shù)據(jù)1 601 張,其中分為訓(xùn)練集1 387 張和測(cè)試集214 張.圍欄共分為7 類:菱形圍欄,橫條圍欄,旗子圍欄,網(wǎng)狀圍欄,柵欄,單柱雙帶圍欄,黃黑菱形圍欄.使用UPCLabel 框出目標(biāo)之后轉(zhuǎn)化為COCO 格式.
為了盡量的減少背景噪聲,對(duì)數(shù)據(jù)首先裁剪至大小為1 300×600,然后為了增強(qiáng)模型的泛化性能,對(duì)數(shù)據(jù)以0.5 的概率進(jìn)行隨機(jī)翻轉(zhuǎn).本次實(shí)驗(yàn)的評(píng)價(jià)指標(biāo)為bbox_mAP 以及bbox_mAP_50.實(shí)驗(yàn)共訓(xùn)練50 個(gè)epochs,初始學(xué)習(xí)率設(shè)置為0.001,并在第20 次以及第40 次epoch 將學(xué)習(xí)率乘0.1.實(shí)驗(yàn)效果如表1所示.
表1 Faster RCNN 實(shí)驗(yàn)設(shè)置及結(jié)果(%)
綜合以上結(jié)果,本文選用了ResNet101+FPN 作為網(wǎng)絡(luò)的backbone,并對(duì)anchor 重新設(shè)計(jì)比例,使用Softnms和GIoU優(yōu)化,最終模型可以達(dá)到76.9 的mAP_50 以及48.8 的mAP.此外研究還發(fā)現(xiàn),在本文的數(shù)據(jù)集上,ResNet101 的效果要好于ResNet50,使用Softnms 以及GIoU 都可以提高模型的效果.另外,Softnms 的閾值需要根據(jù)數(shù)據(jù)集的情況來設(shè)定,本實(shí)驗(yàn)嘗試了閾值選擇為0.5,0.6,0.7 分別進(jìn)行實(shí)驗(yàn),最終選擇了0.6 作為最終的閾值.
訓(xùn)練得到模型后,將模型與幀差算法等其他部分結(jié)合,構(gòu)建基于Faster RCNN的穿越圍欄檢測(cè)方法.為了驗(yàn)證該方法的性能,本文選取了5 段現(xiàn)場(chǎng)場(chǎng)景下模擬的違規(guī)視頻,經(jīng)過視頻取幀、分類之后,共獲取非法圖片168 張,合法圖片132 張.由于要求圖片的連續(xù)性,所以我們將圖片按照視頻取幀順序依次輸入檢測(cè)方法中,利用txt 文件存儲(chǔ)圖片的標(biāo)簽.本次實(shí)驗(yàn)采用準(zhǔn)確率作為評(píng)價(jià)指標(biāo),其計(jì)算公式如式(3):
其中,N表示圖片的總數(shù)量,本實(shí)驗(yàn)中為300,y表示該圖片是否合法,yi表示該圖片的標(biāo)簽.經(jīng)過一輪實(shí)驗(yàn),共正確檢測(cè)圖片276 張,漏檢和誤檢圖片共24 張,準(zhǔn)確率達(dá)到92%.
為了驗(yàn)證本方法的穩(wěn)定性以及幀差判斷方法的有效性,本文將上述實(shí)驗(yàn)進(jìn)行多次,然后將其結(jié)果與未使用幀差判斷方法的結(jié)果進(jìn)行對(duì)比,結(jié)果取多次實(shí)驗(yàn)結(jié)果的平均值,實(shí)驗(yàn)結(jié)果如表2.
表2 幀差判斷法驗(yàn)證實(shí)驗(yàn)結(jié)果
從表2 結(jié)果中可以看出,本文提出的幀差判斷方法可以有效的提升穿越圍欄檢測(cè)方法的準(zhǔn)確性,準(zhǔn)確率提升16.4%.誤檢率和漏檢率都大幅度減小,特別是誤檢數(shù)量,采用幀差判斷方法之后從40 張減少到5.3張.部分實(shí)驗(yàn)效果如圖6所示.
如果圖6 中檢測(cè)到存在違規(guī)的工作人員,我們會(huì)發(fā)出違規(guī)警告信息,然后將違規(guī)人員信息保存并通過OpenCV 使用紅色警戒框表示并保存該幀圖像至本地.并且該方法的處理速度可以達(dá)到32 fps,完全可以達(dá)到實(shí)際應(yīng)用中的實(shí)時(shí)性的要求.
圖6 實(shí)驗(yàn)效果圖
本文將深度學(xué)習(xí)目標(biāo)檢測(cè)與幀差法的思想結(jié)合提出了一種基于Faster RCNN的穿越圍欄違規(guī)行為檢測(cè)方法.首先基于數(shù)據(jù)的特點(diǎn),改進(jìn)了Faster RCNN 網(wǎng)絡(luò),包括選用ResNet101+FPN 的骨干網(wǎng)絡(luò),修改的anchor的比例,選用Softnms 和GIoU.然后借助圍欄目標(biāo)與人體關(guān)鍵點(diǎn)信息,結(jié)合幀差判斷法進(jìn)行穿越圍欄違規(guī)行為檢測(cè).實(shí)驗(yàn)結(jié)果證明,改進(jìn)的Faster RCNN 網(wǎng)絡(luò)在圍欄數(shù)據(jù)集取得了更好的效果,提出的幀差判斷法也能夠更好的檢測(cè)出視頻中的違規(guī)行為,檢測(cè)速度達(dá)到32 fps,可以達(dá)到實(shí)際應(yīng)用中的實(shí)時(shí)性要求,并具有較高的準(zhǔn)確性,可以有效的提升電力場(chǎng)景安全管控的效率.
實(shí)驗(yàn)結(jié)果也顯示方法仍然存在一定的漏檢數(shù)量,未來將繼續(xù)考慮實(shí)際復(fù)雜的場(chǎng)景,更加充分利用視頻的光流信息,提升穿越圍欄檢測(cè)的準(zhǔn)確性.