沈茂東,周 偉,宋曉東,裴 健,鄧 昊,馬 超,房 凱
1(國網(wǎng)山東省電力公司,濟(jì)南 250001)
2(山東魯能軟件技術(shù)有限公司,濟(jì)南 250001)
3(中國石油大學(xué)(華東)計算機(jī)科學(xué)與技術(shù)學(xué)院,青島 266580)
在電力檢修行業(yè)中施工行為是否規(guī)范關(guān)系到工作人員的人身安全,對于電力行業(yè)的發(fā)展至關(guān)重要[1].人員行為分析是當(dāng)前深度學(xué)習(xí)領(lǐng)域的一個重要的研究方向,目前在電力行業(yè)的檢修工作中已經(jīng)基本實(shí)現(xiàn)了視頻監(jiān)控全覆蓋,通過對這些視頻進(jìn)行分析可以獲得工作人員施工的相關(guān)信息.針對電力檢修工作人員的違規(guī)操作問題,本文于從計算機(jī)視覺的角度對電力檢修現(xiàn)場的違規(guī)行為進(jìn)行檢測,基于Mask RCNN[2]計了一種多任務(wù)多分支違規(guī)行為檢測網(wǎng)絡(luò),綜合目標(biāo)檢測、關(guān)鍵點(diǎn)檢測與實(shí)例分割任務(wù),以獲得違規(guī)行為檢測所需的目標(biāo)坐標(biāo)、mask 掩碼與關(guān)鍵點(diǎn)信息.同時為了避免實(shí)際應(yīng)用中由于訓(xùn)練數(shù)據(jù)不足的過擬合問題,設(shè)計了生成式數(shù)據(jù)增強(qiáng)與傳統(tǒng)幾何變換相結(jié)合的數(shù)據(jù)增強(qiáng)[3]策略來擴(kuò)充數(shù)據(jù)集并通過交叉驗證實(shí)驗選取了最佳的超參數(shù).實(shí)驗結(jié)果表明,相對于原先的Mask RCNN,基于改進(jìn)Mask RCNN的電力維修違規(guī)檢測方法具有更高的準(zhǔn)確性和魯棒性,滿足實(shí)際部署的精度要求.
自從Hinton 等[4]在2012年提出深度學(xué)習(xí)的概念,深度學(xué)習(xí)便逐漸取代了傳統(tǒng)算法成為目標(biāo)檢測領(lǐng)域的主流方法.到目前為止,深度學(xué)習(xí)在圖像處理領(lǐng)域已經(jīng)取得了令人矚目的成就.近年來深度學(xué)習(xí)的發(fā)展為違規(guī)行為檢測提供了新的方案,卷積神經(jīng)網(wǎng)絡(luò)對于目標(biāo)的幾何變換、形變、光照等因素適應(yīng)性較強(qiáng),有效克服了由于目標(biāo)外觀的多樣性帶來的識別阻力.它可根據(jù)輸入到網(wǎng)絡(luò)的數(shù)據(jù)自動地生成相應(yīng)特征的描述,具有較高的靈活性和普適性[4,5].目前圖像中的目標(biāo)檢測主要分為單步檢測方法(如SSD,YOLO和CornerNet[6–8])和兩步檢測方法(如R-CNN、Fast R-CNN、Faster R-CNN[9–11]和Mask R-CNN[2])兩種.單步檢測方法直接在圖像上經(jīng)過計算生成檢測結(jié)果.兩步檢測方法先在圖像上提取候選區(qū)域,再基于候選區(qū)域進(jìn)行特征提取然后再進(jìn)行預(yù)測.單步檢測算法的主要思想就是直接從輸入圖像得到目標(biāo)物體的類別和具體位置,不再像兩步檢測算法系列那樣產(chǎn)生候選區(qū)域.單步檢測方法最顯著的優(yōu)勢就是效率,在檢測精度上相對于兩步檢測方法則稍遜一籌.
語義分割是計算機(jī)視覺領(lǐng)域中的一個典型問題,一般將其視作按照圖像的語義來將圖像進(jìn)行分割,即將圖像中的每一個像素進(jìn)行分類.實(shí)例分割則比語義分割更進(jìn)一步,首先在圖像中框出不同的實(shí)例,然后再用語義分割的方法在不同的實(shí)例框中為每個區(qū)域的像素進(jìn)行標(biāo)記,可將其視為目標(biāo)檢測與語義分割的結(jié)合體.FCN[12]是圖像分割領(lǐng)域的里程碑式的突破,FCN全名為全卷積網(wǎng)絡(luò),顧名思義,即不包含全連接層的網(wǎng)絡(luò).FCN 將CNN 中的全連接層用1×1 卷積代替,可適應(yīng)任意尺寸的輸入,并利用反卷積(DeConvolution)來實(shí)現(xiàn)對特征圖的上采用,最終得到具有較高準(zhǔn)確性的分割圖像.FCN 實(shí)現(xiàn)了圖像的端到端分割,但是仍存在一定的缺陷,如效率不夠高、分割不夠精細(xì)等.U-Net[13]是最近提出的應(yīng)用于生物醫(yī)學(xué)圖像分割的卷積網(wǎng)絡(luò),與FCN 網(wǎng)絡(luò)不同的是,U-Net的上采樣階段與下采樣階段采用了相同數(shù)量層次的卷積操作,且使用skip connection 結(jié)構(gòu)將下采樣層與上采樣層相連,使得下采樣層提取道的特征可以直接傳遞到上采樣層,這使得U-Net 網(wǎng)絡(luò)的像素定位更加準(zhǔn)確,分割精度更高.
深度學(xué)習(xí)在關(guān)鍵點(diǎn)檢測方向上的應(yīng)用主要涉及人臉關(guān)鍵點(diǎn)檢測以及用于姿態(tài)估計的人體關(guān)鍵點(diǎn)檢測.Openface[14]是當(dāng)前較為流行的一個人臉關(guān)鍵點(diǎn)檢測框架,基于Schroff 等在CVPR2015 上提出的Facenet[15],該算法首先使用Dlib 或者OpenCV 檢測到人的面部,然后利用仿射變換使眼睛等標(biāo)志點(diǎn)的位置固定,具有較高的檢測速度.CVPR2017 上提出的PAF(Part Affinity Fields)[16]以一種自底向上的方式實(shí)現(xiàn)了在一整張圖像中對其中的多人進(jìn)行關(guān)鍵點(diǎn)檢測.該網(wǎng)絡(luò)分為兩大部分:一部分根據(jù)特征圖進(jìn)行關(guān)鍵點(diǎn)預(yù)測;另一部分獲得每個關(guān)鍵點(diǎn)的PAF.將這兩部分進(jìn)行聯(lián)合學(xué)習(xí)和預(yù)測,將這些關(guān)鍵點(diǎn)進(jìn)行兩兩連接,進(jìn)而轉(zhuǎn)化為圖論問題.
何愷明在2017年提出的Mask RCNN是當(dāng)前工業(yè)界最為流行的目標(biāo)檢測與分割框架之一,既能準(zhǔn)確檢測出圖像中的目標(biāo),又能為一個目標(biāo)生成具有較高質(zhì)量的mask.Mask RCNN 實(shí)際上是FasterRCNN的一個拓展,相對于FasterRCNN,MaskRCNN 做了如下改進(jìn):
1)用AoIAlign 代替RoIPooling,實(shí)現(xiàn)了特征圖的像素級對齊;
2)在Faster RCNN 每個RoI 類標(biāo)簽和坐標(biāo)兩個輸出的基礎(chǔ)上添加了第三個Mask 分支,在每個RoI 上利用FCN 以pix2pix的方式實(shí)現(xiàn)Mask 分割;
3)Mask 分割分支易于向關(guān)鍵點(diǎn)檢測分支拓展.
但是上述方法均為一個或者兩個任務(wù)并行檢測,無法同時實(shí)現(xiàn)目標(biāo)檢測、實(shí)例分割和關(guān)鍵點(diǎn)檢測任務(wù),在對人與物體有交互行為的電力檢修違規(guī)檢測問題上變得不再適用.因此需要根據(jù)電力檢修的實(shí)際需要,結(jié)合現(xiàn)實(shí)中人與物體交互中的違規(guī)操作,對Mask RCNN算法進(jìn)行改進(jìn),設(shè)計一種可以并行實(shí)現(xiàn)目標(biāo)檢測、實(shí)例分割與關(guān)鍵點(diǎn)檢測的多任務(wù)多分支檢測算法.
針對電力檢修現(xiàn)場施工中的違規(guī)行為檢測問題,本文對Mask RCNN 進(jìn)行改進(jìn)提出了一種多任務(wù)多分支的違規(guī)行為檢測網(wǎng)絡(luò),該方法在Mask RCNN的基礎(chǔ)上將目標(biāo)檢測、關(guān)鍵點(diǎn)檢測與實(shí)例分割在一個網(wǎng)絡(luò)中整合,實(shí)現(xiàn)了一種端到端的多任務(wù)檢測算法;同時,將實(shí)例分割從目標(biāo)檢測分支中分離出來,消除由目標(biāo)檢測邊界框偏差帶來的實(shí)例分割偏差;對于分類誤差、邊框誤差、實(shí)例分割誤差和關(guān)鍵點(diǎn)檢測誤差,設(shè)計了新的損失函數(shù);相對應(yīng)用場景,所得到的數(shù)據(jù)集偏少,為避免實(shí)際應(yīng)用中的過擬合問題,設(shè)計了生成式數(shù)據(jù)增強(qiáng)與傳統(tǒng)幾何變換相結(jié)合的數(shù)據(jù)增強(qiáng)[3]策略來擴(kuò)充數(shù)據(jù)集.
由于可以獲得的數(shù)據(jù)集樣本較少,采用傳統(tǒng)圖像幾何變換數(shù)據(jù)增強(qiáng)和利用GAN[17]進(jìn)行生成式數(shù)據(jù)增強(qiáng)相結(jié)合的方法對數(shù)據(jù)集進(jìn)行擴(kuò)充.對于傳統(tǒng)的圖像幾何變換方法,采用隨機(jī)裁剪、水平翻轉(zhuǎn)、圖像傾斜、添加噪聲、圖像縮放和mixup[18]的方式對數(shù)據(jù)集進(jìn)行了擴(kuò)充,圖1為添加高斯噪聲的圖像.

圖1 添加高斯噪聲圖像示例
在用GAN 對數(shù)據(jù)集進(jìn)行擴(kuò)充時,采用DCGAN 來生成新的圖像[19].DCGAN是比GAN 擁有更多隱藏層的一種特殊GAN 結(jié)構(gòu),它與GAN 在結(jié)構(gòu)上的不同在于:一是DCGAN 中沒有池化層(pooling 層),并且在生成器中使用轉(zhuǎn)置卷積進(jìn)行上采用而在判別器中使用微步幅卷積;二是DCGAN 去掉了全連接層從而使網(wǎng)絡(luò)變成了全卷積網(wǎng)絡(luò),這樣的做法提高了輸出圖像的質(zhì)量并且提高了模型的收斂速度.
如圖2是本文采用的基于DCGAN的圖像生成模型結(jié)構(gòu)示意圖.其中生成器有15 層,判別器有16 層,在卷積層后使用了批歸一化處理,在生成器和判別器中均采用Leaky-ReLU 作為激活函數(shù).

圖2 圖像生成模型結(jié)構(gòu)示意圖
考慮計算機(jī)顯存的限制,在訓(xùn)練時統(tǒng)一將圖像在800×600的尺寸上進(jìn)行訓(xùn)練,每16 張圖像為一個批次,在生成器和判別器中均采用Adam 作為優(yōu)化器.訓(xùn)練過程中生成的圖像樣本如圖3所示.

圖3 生成圖像示例
經(jīng)過改進(jìn)的Mask RCNN 實(shí)現(xiàn)了多個計算機(jī)視覺任務(wù)的并行處理,該網(wǎng)絡(luò)主要包括兩個階段:第1 階段主要利用區(qū)域建議網(wǎng)絡(luò)(RPN)生成可能存在目標(biāo)的候選區(qū)域邊界框;在第2 階段中對第1 階段生成的每個候選區(qū)域利用RoIAlign 進(jìn)行對齊,然后分別完成分類、邊框回歸、Mask 預(yù)測及關(guān)鍵點(diǎn)預(yù)測.
如圖4所示,輸入圖像經(jīng)過縮放以后輸入特征提取骨架網(wǎng)絡(luò),生成更具有更高階特征的特征圖,以實(shí)現(xiàn)后面多個分支與RPN的特征共享.在此選擇的是ResNet101,同時添加FPN 以解決目標(biāo)的多尺寸問題.多個尺寸的特征圖經(jīng)過RPN 生成多個無類別的候選區(qū)域,并利用非極大值抑制(NMS)消除大量冗余候選區(qū)域,這些候選區(qū)域經(jīng)過RoIAlign 在每一個分支上歸一化成同一尺寸的特征圖.在RPN 部分,對于每一個三通道的圖像中的每一個位置,都會生成9 個候選窗口:3 個縱橫比{1:1,1:2,2:1}×3 種尺寸{128,256,512}.考慮到實(shí)際應(yīng)用中瓷瓶、人體等目標(biāo)的大小和比例,對上述縱橫比指標(biāo)進(jìn)行了相應(yīng)的調(diào)整,將原來的縱橫比調(diào)整為{1:2,2:1,1:3,3:1},以此實(shí)現(xiàn)前景與背景的精準(zhǔn)區(qū)分.

圖4 改進(jìn)的Mask RCNN 網(wǎng)絡(luò)結(jié)構(gòu)圖
對于分類和邊框回歸,經(jīng)過歸一化的特征圖通過全連接層預(yù)測每個RoI的所屬類別,并對其坐標(biāo)進(jìn)行回歸.
對于Mask 預(yù)測,與Mask RCNN 不同的是,在改進(jìn)的Mask RCNN 網(wǎng)絡(luò)中Mask 預(yù)測獨(dú)立進(jìn)行,而不是依賴于目標(biāo)的邊框坐標(biāo),以此消除由坐標(biāo)偏差導(dǎo)致的實(shí)例分割誤差.Mask 預(yù)測分支將Mask 預(yù)測分為兩個部分,類別預(yù)測和Mask 回歸,由于在Mask 類別預(yù)測上要與第一個分支一致,在此可以直接引用第一個分支的類別信息而專注于Mask的回歸.因此需要對Mask的質(zhì)量設(shè)計一個新的評估指標(biāo)MaskIoU,即真實(shí)Mask與預(yù)測Mask的交并比.
最后,與Mask 分支類似,關(guān)鍵點(diǎn)檢測分支在特征圖上利用線性回歸得到對應(yīng)的預(yù)測位置.
對于各個分支中的各個任務(wù)而言,其重要性是相同的,但是在多任務(wù)學(xué)習(xí)中,往往不同任務(wù)的學(xué)習(xí)難易程度不同,若采用相同的損失權(quán)重,會導(dǎo)致訓(xùn)練難以收斂.如式(1),針對各個任務(wù),分別設(shè)計獨(dú)立的損失函數(shù),加權(quán)相加作為最終損失,即損失=分類誤差+坐標(biāo)誤差+分割誤差+關(guān)鍵點(diǎn)誤差,δ、ε、θ均為加權(quán)系數(shù).

Lcls、Lbbox即全連接層預(yù)測出的每個RoI的所屬類別及其矩形框坐標(biāo)值誤差.類別損失函數(shù)如式(2)所示,其中pi表示預(yù)測為目標(biāo)的概率,用0和1 表示是否為真實(shí)目標(biāo).

目標(biāo)坐標(biāo)的損失函數(shù)如式(3)所示,其中(xi,yi)表示第i預(yù)測結(jié)果的中心點(diǎn)坐標(biāo),為真實(shí)的中心點(diǎn)坐標(biāo).相應(yīng)地,(wi,hi)和分別代表預(yù)測目標(biāo)和真實(shí)目標(biāo)的寬高.

Mask 損失函數(shù)的設(shè)計主要側(cè)重為:將Mask 劃分至正確的類別,并對前景對象類別的Mask 進(jìn)行回歸.但是在一個損失函數(shù)中難以同時實(shí)現(xiàn)兩個功能,并且Mask 類別與目標(biāo)分類分支的類別是一致的.為了簡化Mask 類別損失可以直接取分類損失Lcls,而邊界損失則可以用真實(shí)Mask與經(jīng)過某一閾值二值化的預(yù)測Mask的交并比表示.此時Mask 損失函數(shù)可如下所示:

其中,MaskIoU有如下定義:

而關(guān)鍵點(diǎn)檢測的損失函數(shù)則較為簡單,只需計算真實(shí)值與預(yù)測值之間的L1 損失,為了使損失函數(shù)更加平滑,在此使用時SmoothL1作為關(guān)鍵點(diǎn)檢測的損失函數(shù).

其中,

本次實(shí)驗以檢測人員在瓷瓶上掛安全帶為例,訓(xùn)練集圖像共有3000 張,通過數(shù)據(jù)增強(qiáng)將訓(xùn)練集擴(kuò)充至20 000 張.在模型訓(xùn)練與測試時采取的是10 折交叉驗證的方式,即將數(shù)據(jù)均分為10 份,每次訓(xùn)練集取其中9 份,留1 份作為測試集,最終結(jié)果為10 次平均值.
實(shí)驗顯卡配置NVIDIA GeForce GTX TITAN X,處理器為Intel i7.
在本實(shí)驗中,以目標(biāo)檢測任務(wù)為例.首先,我們要先對所有的檢測結(jié)果排序,得分越高的排序越靠前,然后依次判斷檢測是否成功.將排序后的所有結(jié)果定義為DTs (預(yù)測框),所有同類別的真實(shí)目標(biāo)定義為GTs(真實(shí)框).先依序遍歷一遍DTs 中的所有DT,每個DT和全部GT 都計算一個IoU (bbox的交并比),作為檢測任務(wù)性能的評價指標(biāo),如果最大的IOU 超過了給定的閾值,那么視為檢測成功,算作TP (True Positive);如果該DT與所有GT的IOU 都沒超過閾值,自然就是FP (False Positive).同理,實(shí)例分割及關(guān)鍵點(diǎn)檢測任務(wù)性能的評價與目標(biāo)檢測類似.
實(shí)驗過程中,對于目標(biāo)檢測、實(shí)例分割、關(guān)鍵點(diǎn)檢測分別有各自的評價指標(biāo),并分別設(shè)置了相對應(yīng)的閾值,具體指標(biāo)如表1所示.

表1 評價指標(biāo)
如圖5為Mask RCNN 檢測算法測試效果圖,從圖中可以看出,在此場景下存在人員漏檢的情況.

圖5 Mask RCNN 檢測算法測試效果圖
圖6為改進(jìn)的Mask RCNN 多任務(wù)檢測算法測試效果圖.從圖中可以看出,使用改進(jìn)后的Mask RCNN多任務(wù)檢測算法可以更為準(zhǔn)確地檢測出相關(guān)目標(biāo)信息,綜合了目標(biāo)檢測、關(guān)鍵點(diǎn)檢測與實(shí)例分割任務(wù),并且可以通過施加額外的判斷邏輯對瓷瓶上掛安全帶這一違規(guī)行為準(zhǔn)確檢測.其中紅框為瓷瓶上安全帶的檢測結(jié)果,藍(lán)框則表示存在人員在瓷瓶上掛安全帶的違規(guī)行為.表2為檢測效果對比.

圖6 改進(jìn)的Mask RCNN 多任務(wù)檢測算法測試效果圖

表2 改進(jìn)的Mask RCNN與Mask RCNN 檢測效果對比
在模型測試時,發(fā)現(xiàn)電力檢修現(xiàn)場中由于遮擋或者各種檢修設(shè)備的干擾,存在一定的誤檢或者將一個目標(biāo)檢測為兩個的現(xiàn)象.為了解決此類問題,可以采用NMS的方法對檢測到的冗余目標(biāo)進(jìn)行消除,不同的NMS 數(shù)值與準(zhǔn)確率(Precision)、召回率(Recall)的關(guān)系如表3所示中準(zhǔn)確率和召回率有如下定義,其中TP 代表檢測正確的結(jié)果數(shù)量,FN 表示漏檢的數(shù)量,FP 表示誤檢測結(jié)果數(shù)量.

從表中可以看出,隨著NMS的遞增,誤檢逐步增加,而漏檢逐步遞減.原因在于NMS 越小,兩個檢測框交并比在較小的時候就視為同一個目標(biāo),這樣就會盡可能地消除冗余框.經(jīng)過對準(zhǔn)確率和召回率進(jìn)行權(quán)衡,最終在實(shí)際應(yīng)用中選擇0.4 作為NMS 值.
為了測試該方法所采用的數(shù)據(jù)增強(qiáng)技術(shù)對準(zhǔn)確率的影響,對無數(shù)據(jù)增強(qiáng)、傳統(tǒng)的圖像幾何變換、GAN、GAN與圖形變換相結(jié)合的方式進(jìn)行了對照實(shí)驗,其中原始圖像3000 張,傳統(tǒng)的圖像幾何變換生成新的圖像7000 張,GAN 生成新圖像10 000 張.實(shí)驗結(jié)果如表4所示,可以看出,GAN與傳統(tǒng)圖像幾何變換相結(jié)合的方式可以極大地提高模型的準(zhǔn)確率.

表3 NMS 對測試結(jié)果影響(%)

表4 對照實(shí)驗(%)
針對電力檢修工作中的違規(guī)行為檢測問題,本文對Mask RCNN 算法進(jìn)行了改進(jìn),主要貢獻(xiàn)包括實(shí)現(xiàn)了目標(biāo)檢測、實(shí)例分割、關(guān)鍵點(diǎn)檢測的多任務(wù)端到端檢測;將實(shí)例分割分支與目標(biāo)檢測分支相分離,避免由于目標(biāo)檢測分支誤差給實(shí)例分割帶來的負(fù)面影響;針對數(shù)據(jù)集不足的問題采用多種方式進(jìn)行數(shù)據(jù)擴(kuò)充;結(jié)合實(shí)際應(yīng)用情況,利用交叉驗證選取了最優(yōu)的NMS 超參數(shù).實(shí)驗結(jié)果表明,相對于原來的Mask RCNN,該算法在準(zhǔn)確性上有了顯著的提升,具有更高的準(zhǔn)確性和魯棒性,在電力檢修違規(guī)檢測方面滿足實(shí)際部署的精度要求.在未來還將考慮將人與物體的交互賦予可學(xué)習(xí)的判斷邏輯,實(shí)現(xiàn)端到端的違規(guī)操作檢測.