雷景生, 楊忠光
(上海電力大學 計算機科學與技術(shù)學院, 上海 200082)
近年來,隨著智能電網(wǎng)的提出及快速發(fā)展,無人值守或少人值守變電站在一定程度上決定了電網(wǎng)的智能化發(fā)展,而變電站場景下的運動目標檢測和跟蹤技術(shù)是實現(xiàn)變電站無人值守或少人值守的必要條件[1]。通過對變電站場景內(nèi)移動目標(例如人員、動物或者車輛等)的自動檢測和跟蹤,可以解決當前變電站內(nèi)存在的安全隱患[2],同時也能快速準確地檢測出變電站由移動目標的非法侵入、無意進入警戒區(qū)域或禁止區(qū)域以及未穿著安全服造成的安全問題,提高變電站的自動識別水平并進行實時預警,極大地降低了監(jiān)控人員的工作量,為電力系統(tǒng)安全提供了充分的保障。在目標跟蹤問題中,算法需要根據(jù)每一幀圖像中目標的檢測結(jié)果,匹配已有的目標軌跡;對于新出現(xiàn)的目標,需要生成新的目標;對于已經(jīng)離開攝像機視野的目標,需要終止軌跡的跟蹤。
文獻[3]采用Siamese對稱卷積網(wǎng)絡(luò)訓練并計算兩個輸入圖像的匹配程度,通過基于梯度下降提升算法的分類器將目標的運動信息與相似度相融合,最后利用線性規(guī)劃優(yōu)化算法得到多目標跟蹤結(jié)果。文獻[4]針對多目標跟蹤中的互相遮擋問題,提出了基于時間空間關(guān)注模型(Spatial-Temporal Attention Mechanism,STAM)用于學習遮擋情況,并判別可能出現(xiàn)的干擾目標。文獻[5]設(shè)計了基于長短期記憶循環(huán)網(wǎng)絡(luò)模型的特征融合算法來學習目標歷史軌跡信息與當前檢測之間的匹配相似度。文獻[6]提出卷積網(wǎng)絡(luò)遞歸訓練跟蹤方法(Sequentially Training Convolutional Tracking,STCT),將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)看成一個整體,每個通道的卷積層被看作一個基學習器,通過新的loss獨立更新,將在線跟蹤轉(zhuǎn)化成了每個整體中的前景背景分割問題。文獻[7]提出了一種基于非稀疏線性表示的視覺跟蹤器,以在線方式學習馬氏距離度量,并將學習到的度量合并到優(yōu)化問題中獲得線性表示。
綜上所述,目前多目標跟蹤算法主要是融合多種信息,如目標的運動信息、外觀信息,以及交互信息等來對跟蹤目標進行跟丟的再識別。本文算法也采用這一思路,以融合變電站內(nèi)移動目標的運動及表觀信息的方式來實現(xiàn)對目標的跟蹤。
針對變電站中可能出現(xiàn)的遮擋問題,本文提出了一種融合度量學習與卡爾曼濾波[8]的變電站內(nèi)目標跟蹤方法。該方法首先采用融合多尺度特征的實時目標檢測算法YOLOv3(You Only Look Once,YOLO)[9]對變電站內(nèi)運動目標進行檢測,然后結(jié)合目標的運動信息和外觀信息實現(xiàn)對運動目標的跟蹤。實驗證明,該方法準確率高,且能滿足變電站應用場景下的魯棒性和實時性要求。
變電站運動目標跟蹤算法流程如圖1所示。
圖1 變電站運動目標跟蹤算法流程
首先,對輸入的實時視頻幀信號進行簡單的預處理,再通過融合多尺度特征的實時目標檢測算法YOLOv3對變電站內(nèi)運動目標進行檢測,從而得到視頻序列中目標的檢測框,并建立與其對應的跟蹤列表。同時采用預訓練好的卷積神經(jīng)網(wǎng)絡(luò)提取目標檢測框內(nèi)的外觀特征信息,計算當前目標外觀特征信息與之前幀目標的平均外觀特征信息的余弦距離。然后,采用卡爾曼濾波算法對檢測到的運動目標進行軌跡預測,用馬氏距離來表示目標的預測狀態(tài)與目前狀態(tài)之間的運動匹配程度。最后,通過匈牙利算法對之前的運動軌跡和當前檢測對象進行匹配,形成目標的運動軌跡。針對遮擋問題,本文設(shè)定了幀時間的閾值,該閾值的意思是若當前幀時間與目標在上一次成功匹配到的幀時間之差大于閾值的話,就認為目標的軌跡終止,在后續(xù)的跟蹤中刪除目標軌跡,如果小于的話就認為該目標軌跡沒有丟失。
在變電站場景中,由于攝像機的安裝高度較高,并且需要實時監(jiān)控變電站內(nèi)運動目標來保證站內(nèi)人員及財產(chǎn)的安全,所以需要采用實時性與檢測小目標效果比較好的檢測算法。為了提升目標檢測定位與分類精度,YOLOv3算法融合了多尺度特征,設(shè)計了更深的卷積神經(jīng)網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),一共有53個卷積層,命名為Darknet-53。YOLOv3模型結(jié)構(gòu)如圖2所示,主要由Darknet-53特征提取網(wǎng)絡(luò)、多尺度融合特征網(wǎng)絡(luò)構(gòu)成。y1,y2,y3代表YOLOv3在3種不同尺度特征圖的輸出、輸出目標位置和類別。Darknet-53主要由53個卷積層構(gòu)成,大量地采用3×3和1×1的卷積核,同時借鑒深度殘差網(wǎng)絡(luò)(ResNet)的設(shè)計思想,在卷積層間構(gòu)建殘差模塊并設(shè)置跳躍連接。具體結(jié)構(gòu)如圖3所示。
圖2 YOLOv3模型結(jié)構(gòu)
YOLOv3采用3種不同尺度的預測結(jié)果,對于輸入的變電站實時視頻圖像信息,例如輸入416×416的圖像信息,基礎(chǔ)特征圖尺度為13×13×N,通過上采樣得到26×26×N的特征圖,將它與前一卷積層輸出融合得到第2個尺度特征圖26×26×M;之后采用相同的方法得到第3個尺度特征圖52×52×W;在每個特征圖上預測由檢測框、目標評分、類別預測3種信息編碼的3d張量。檢測時采用9個聚類獲得的先驗框輔助進行坐標的預測,并將這9個先驗框分為3組應用在3個不同尺度的特征圖中,使得每個尺度特征圖預測3組信息,最后采用邏輯回歸的方式對每個檢測框的預測目標打分。
本文基于YOLOv3檢測到目標的坐標信息(x,y,w,h)以及圖像中的目標檢測框信息,采用卡爾曼濾波對檢測到的運動目標進行軌跡預測,應用度量學習將預測軌跡與目標運動軌跡進行匹配,結(jié)合通過檢測提取到的目標表觀特征信息,實現(xiàn)對變電站內(nèi)運動目標的跟蹤。
選取變電站內(nèi)的運動目標作為跟蹤對象,以檢測框底邊中點(dx(k),dy(k))作為跟蹤的特征點,同時選取檢測框的長度w和高度h作為另兩個特征變量,共同構(gòu)成一個四維狀態(tài)變量,進而利用卡爾曼濾波算法的工作流程預測底邊中點和檢測框的長度w和高度h這個四維狀態(tài)變量??柭鼮V波的工作過程如圖4所示。
圖4中:X′k-1為歷史狀態(tài)變量值;X′k,k-1為狀態(tài)變量預測值;Pk為歷史狀態(tài)變量值的協(xié)方差;Pk,k-1為狀態(tài)變量預測值的協(xié)方差;A和B為狀態(tài)估計矩陣;H為觀測矩陣;Q和R分別為其協(xié)方差矩陣;uk為c維向量;Zk為下一時刻的狀態(tài)觀測量。
圖4 卡爾曼濾波工作流程
具體步驟如下。
步驟1 對模型進行初始化。假設(shè)輸入控制的c維向量uk的誤差是方差為1的高斯白噪聲,協(xié)方差矩陣Q和R及A和H是對角線為1的單位陣,模型中位置的初始值為目標初始檢測框底邊中點坐標(dx(k),dy(k)),檢測框長度w和高度h的初始值為目標初始檢測框的長度和高度,速度變量初始值為零。
步驟2 狀態(tài)與目標位置預測。計算狀態(tài)變量和誤差協(xié)方差,同時用觀測值對預測值進行調(diào)整,得出最優(yōu)觀測值。
步驟3 狀態(tài)更新。更新狀態(tài)變量,然后回到步驟2,開始下一次的目標位置預測。
本文將視頻前后幀檢測到的目標看成兩個獨立的對象,采用度量學習的方法,結(jié)合運動信息和外觀信息計算前后幀兩個獨立對象的關(guān)聯(lián)程度,同時引入權(quán)重系數(shù)κ且設(shè)定閾值,從而實現(xiàn)對變電站內(nèi)運動目標的跟蹤。
3.2.1 運動信息
考慮到當前幀的檢測目標狀態(tài)是由四維狀態(tài)變量構(gòu)成,因此本文采用馬氏距離來對當前幀的檢測目標和歷史目標軌跡進行相似度度量。
本文是要計算第i幀檢測到的目標與第i-1幀目標在卡爾曼濾波器預測目標的馬氏距離M(i-1,i),即
(1)
式中:ti——第i幀檢測到的目標狀態(tài)(dx(k),dy(k),w,h);
gi-1——第i-1幀目標軌跡在第i幀的預測觀測量;
Si-1——目標軌跡由卡爾曼濾波器預測得到的在第i幀時觀測空間的協(xié)方差矩陣。
由于視頻幀中的運動是連續(xù)的,故可以采用馬氏距離M(i-1,i)對檢測到的目標進行篩選,設(shè)定3.08作為篩選的閾值,filter為篩選函數(shù)。
a(i-1,i)=
(2)
3.2.2 外觀信息
變電站內(nèi)電氣設(shè)備眾多,若單獨采用馬氏距離進行度量匹配的話,不能解決站內(nèi)出現(xiàn)的遮擋問題,此時就需要依靠外觀信息進行補救。對于每幀檢測到的目標檢測框,我們利用深度卷積神經(jīng)網(wǎng)絡(luò)提取出檢測框中的特征向量來代表外觀信息,然后使用余弦距離作為度量函數(shù)。
余弦距離的表示方法為
(3)
式中:A,B——屬性向量。
本文采用特征提取的網(wǎng)絡(luò)是深度卷積神經(jīng)網(wǎng)絡(luò),以變電站人員為例提前在一個大規(guī)模的行人數(shù)據(jù)集上預訓練得到了外觀模型,輸出256維的特征向量ri,網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
(4)
余弦距離為
(5)
同理,余弦距離度量同樣需要設(shè)定一個閾值t,此閾值通過訓練得到,當兩者的余弦距離小于特定閾值t,則表示兩者關(guān)聯(lián)成功,即
c(k,i)=filter{cos dis(k,i)≤t}
(6)
3.2.3 融合度量學習
采用融合度量學習的方法,設(shè)置權(quán)重系數(shù)κ,對兩種度量方式進行加權(quán)平均,即
u=κa(i-1,i)+(1-κ)c(k,i)
(7)
最終采用匈牙利算法[10]對track和detect進行最優(yōu)分配。
融合度量學習與卡爾曼濾波的變電站運動目標跟蹤算法流程如下。
步驟1 檢測變電站運動目標。采用YOLOv3算法對實時視頻幀信號進行檢測。將當前幀檢測到的目標坐標信息存入detection集合中,將歷史檢測到的目標坐標信息存入track集合中。如果detection集合為空集,就將丟失幀計數(shù)加1,若丟失幀計數(shù)超過設(shè)定閾值時,就認為該目標已消失,然后將該目標的歷史坐標信息從track中刪除,重新進行檢測。如果detection集合不為空,將丟失幀數(shù)計數(shù)置為零,繼續(xù)下一步。
步驟2 卡爾曼濾波器進行預測。使用一個基于勻速模型和線性觀測模型的標準卡爾曼濾波器對目標的運動狀態(tài)進行預測,也即對track集合進行預測得到包含預測結(jié)果的track_pre集合。
步驟3 融合運動信息與外觀信息計算detection與track的距離。同時計算包含track預測結(jié)果的track_pre集合與detection集合之間的馬氏距離以及detection中提取到的特征向量與歷史軌跡track中提取到的特征向量平均值的余弦距離。
步驟4 分配及更新。若步驟3計算的距離大于設(shè)定的閾值,則從track中刪除目標;若小于設(shè)定的閾值,則說明前后幀目標匹配成功,采用匈牙利算法對track和detect進行最優(yōu)分配,并返回匹配結(jié)果,使用匹配成功點的坐標信息來對目標位置進行更新,重復步驟1,從而實現(xiàn)對變電站內(nèi)運動目標的跟蹤。
以變電站內(nèi)運動的人員為例,將采集到的變電站監(jiān)控視頻分成兩組,光照條件相同,但是遮擋情況不同,以評價變電站內(nèi)運動目標跟蹤方法的性能,詳細參數(shù)如表2所示。其中:視頻1的遮擋物較少,環(huán)境較為空曠;視頻2的遮擋物較多,環(huán)境較為復雜。
表2 變電站場景數(shù)據(jù)集情況統(tǒng)計表
實驗選用性能比較高的圖形處理服務(wù)器,其基本配置是Intel(R) Core(TM) i7-8086K CPU @ 4.00 GHz,基于x64的處理器,16 G內(nèi)存,GPU為RTX2080 Ti;算法開發(fā)使用Linux操作系統(tǒng)、Python語言和TensorFlow框架。
將本文的跟蹤算法分別在2組變電站監(jiān)控視頻中進行實驗。考慮到算法的實時性,本文采用的圖像為灰度化之后的圖像(本文算法也適用于彩色圖像)。圖5和圖6為本文算法在2組視頻中的跟蹤效果。
圖5 本文算法在視頻1中的跟蹤效果(遮擋情況不嚴重)
圖6 本文算法在視頻2中的跟蹤效果(遮擋情況嚴重)
從圖5可以看出,監(jiān)控視頻1在遮擋情況不嚴重的情況下,能夠?qū)崿F(xiàn)變電站多名工作人員的精準跟蹤,雖然出現(xiàn)了少許的人員交叉、重疊及遮擋的情況,但是也能實現(xiàn)對人員的再跟蹤。
從圖6可以看出,監(jiān)控視頻2中的絕緣子、桿塔比較多,造成的遮擋情況比較嚴重。但本文算法在遮擋嚴重的情況下,依然能實現(xiàn)對于人員的精準跟蹤。由于本文算法不單單只有人員的運動信息,還有外觀信息,增強了人員丟失再識別的能力,具有很強的魯棒性。
本文的跟蹤算法能夠?qū)崿F(xiàn)多目標在線跟蹤,因此為了驗證本文算法,根據(jù)多目標跟蹤算法評價指標:多目標跟蹤準確率(MOTA)、所有跟蹤目標的平均邊框重疊率(MOTP)、目標大部分被跟蹤到的軌跡占比(MT)、目標大部分跟丟軌跡占比(ML)、一條跟蹤軌跡改變目標標號的次數(shù)(IDS)及每秒傳輸幀數(shù)(FPS)作為實時性指標,來分析不同多目標在線跟蹤算法在2組變電站監(jiān)控視頻上的性能,結(jié)果如表3和表4所示。表3和表4中:↑表示得分越高越好;↓表示得分越低越好;*表示每個視頻對應的每項指標最優(yōu)算法。
表3 跟蹤器在視頻1下的跟蹤性能(遮擋物較少)
由表3和表4可知,本文算法在遮擋物較少的變電站監(jiān)控視頻1中,跟蹤精度相較于文獻[11]算法、文獻[12]算法和文獻[4]算法更好,略低于文獻[5]算法,但在跟蹤的實時性方面遠遠超過了文獻[5]算法,也比其他算法效果更好。在遮擋物較多的監(jiān)控視頻2中,本文算法的跟蹤準確率比其他4種算法中準確率最低的文獻[11]算法要高14.8%,相較于視頻1中效果較好的文獻[5]算法,準確率只低了0.3%,但實時性卻高出近7倍,同時在遮擋物比較多的情況下,人員ID轉(zhuǎn)換次數(shù)相較于其他算法也較少。由此可知,在變電站場景下對人員進行跟蹤時,本文算法能夠獲得較好的跟蹤效果,同時具有很強的魯棒性和實時性。
表4 跟蹤器在視頻2下的跟蹤性能(遮擋物較多)
本文提出的融合度量學習與卡爾曼濾波的變電站人員跟蹤方法,結(jié)合了人員的運動信息和外觀信息,實現(xiàn)了對變電站內(nèi)人員軌跡的描繪。引入了YOLOv3算法和卡爾曼濾波器,前者通過對混合數(shù)據(jù)集的訓練,提升了變電站內(nèi)人員檢測的準確性,后者對檢測到人員的狀態(tài)進行預測,并結(jié)合卷積神經(jīng)網(wǎng)絡(luò)提取到人員的外觀信息,刻劃出變電站內(nèi)人員的運動軌跡,也能較好地解決變電站內(nèi)復雜的遮擋情況。實驗結(jié)果表明,本文算法跟蹤的實時性較好,同時在復雜環(huán)境下的魯棒性較強,能有效地應用于現(xiàn)實場景。本研究是在變電站可視條件較好的情況下開展的,未開展可視條件不佳情況下的人員跟蹤。后續(xù)工作將融合圖像處理技術(shù),對變電站內(nèi)可視條件不佳情況下的人員跟蹤問題開展深入研究。