王文遠, 金晅宏, 宋文凈, 王軼煒
(上海理工大學 光電信息與計算機工程學院,上海 200093)
隨著人口數(shù)量以及其流動性的增加,人群密集現(xiàn)象越來越常見,這就對治理公共空間和社會安全提出了巨大的挑戰(zhàn)。智能視頻監(jiān)控系統(tǒng)在該領域包含豐富的內容及算法,人群場景分析在現(xiàn)實生活中存在巨大的應用價值,近年來吸引了大量研究者的關注[1~6]。人群密度高、模式變化快、場景中存在著巨大的遮擋等使得傳統(tǒng)視頻監(jiān)控技術不能直接應用于人群場景[1,2]。傳統(tǒng)的目標檢測方法如背景模型的建立[7]、Kalman濾波[8]、混合相關濾波[9]、ViBe算法[10]等檢測效率較低,準確率也低。目前應用廣泛的機器學習算法[10]和深度學習算法如OverFeat算法[11]、Faster R-CNN(Regions with CNN featrutes)算法[12],能夠達到較高的檢測精度。OverFeat算法使用深度卷積網(wǎng)絡一次完成分類、定位和檢測這3個機器視覺任務,對單個網(wǎng)格產(chǎn)生的卷積特征使用分類器判斷目標類別以及預測位置信息。Faster R-CNN算法利用深度卷積神經(jīng)網(wǎng)絡進行圖像檢測的算法,該方法使用CNN生成卷積網(wǎng)絡特征圖,并從卷積特征圖中使用全連接層提取特征用于類別分類和位置預測,使用多尺度的錨點窗口融合網(wǎng)格卷積特征檢測不同尺度與長寬比的圖像目標。但OverFeat和Faster R-CNN算法都要通過置信度結果進行比對、移除。當檢測目標存在遮擋時,極可能會移除掉被遮擋目標。若調整重疊面積判斷參數(shù),則又可能出現(xiàn)大量的重復檢測結果[13~15]。
為解決上述問題,本文提出了基于ReInspect算法多目標追蹤方法,通過利用LSTM網(wǎng)絡的記憶特性,有效解決了遮擋問題;不僅檢測精度比傳統(tǒng)方法高,且能有效解決重疊、遮擋等問題。通過對不同場景下針對多個運動目標進行捕獲處理,證明算法具有較高的可靠性;同時對比傳統(tǒng)的多目標追蹤算法,證明了該算法具有更好的處理效果。
在OverFeat算法的基礎上使用LSTM網(wǎng)絡[13]能夠極大地提高對遮擋目標的檢測效果。這使得一個網(wǎng)格卷積特征能夠被復用,并產(chǎn)生多個序列特征來表征在圖像中被遮擋的目標。ReInspect算法就是一種基于CNN與LSTM相結合的遮擋目標檢測算法[16~19]。具體算法框圖如圖1所示。
圖1 ReInspect算法框圖
ReInspect算法與OverFeat算法在整體流程上基本是一致的,二者的區(qū)別在于是否使用了LSTM神經(jīng)網(wǎng)絡結構和對應損失函數(shù)的預處理操作[16~19]。ReInspect算法采用LSTM網(wǎng)絡結構對同一網(wǎng)絡生成特征序列表示遮擋目標。假設LSTM網(wǎng)絡產(chǎn)生的m個特征序列,對應的原始圖像標記有n個目標真值。則在訓練過程中,m個樣本序列對應的目標類型將根據(jù)m個樣本的預測結果與n個目標真值進行相似匹配產(chǎn)生。匹配目標類型的最大數(shù)量為min(m,n),而沒有匹配的特征序列將標記為負樣本類型,對應的坐標位置填0。另外,ReInspect算法還采用了一種特殊的損失函數(shù)預處理方式。這種處理每次進行操作后只會移除一個重疊檢測結果。這種操作能夠確保同一網(wǎng)格卷積特征產(chǎn)生的重疊目標不會被認為是重復檢測而被錯誤移除。
ReInspect算法在GoogLeNet網(wǎng)絡[20]的基礎上加入LSTM循環(huán)網(wǎng)絡結構抽取特征值[16~19]。而LSTMs能夠學習長期依賴關系[21]。
若網(wǎng)絡存在被遮擋的目標,ReInspect算法期望能夠利用LSTM網(wǎng)絡的記憶特性對被遮擋的目標做進一步的判斷檢測。理論上疊加的次數(shù)越多,越能概括更復雜的圖像遮擋情況,但需要的樣本也越多[21]。
在ReInspect算法中一個網(wǎng)絡特征最多能夠產(chǎn)生rnn_len個目標檢測結果,這就使ReInspect在訓練時向前傳播,單個網(wǎng)絡將會返回多個特征和多個類型標簽。在計算損失函數(shù)前,ReInspect算法需要將序列特征值的預測結果與真值進行匹配,再對序列樣本賦予類別標簽計算損失函數(shù)[22]。所以在損失函數(shù)的計算前,有必要對樣本序列的排列次序進行調整。這項操作稱為損失函數(shù)預處理。
通過調整循環(huán)LSTM網(wǎng)絡結構產(chǎn)出特征的標簽信息,能夠確保特征序列正確反映遮擋檢測目標。當循環(huán)LSTM網(wǎng)絡的循環(huán)次數(shù)為m時,每一個網(wǎng)絡將產(chǎn)生m對特征樣本和標簽信息組成的序列。若網(wǎng)絡對應存在n個遮擋目標時,前n個網(wǎng)絡特征序列對應的具體真值信息是沒有邏輯關聯(lián)的。ReInspect算法使用匈牙利算法[23]完成前n個特征序列與真值間的匹配,即希望訓練時,前n個特征序列的預測結果與真值的總體加權匹配損失是最小的。
匹配距離計算方法如式(1)所示。
(1)
如圖2所示的匹配問題,其中2個虛線框表示目標真值,標有序號的實線方框代表網(wǎng)絡產(chǎn)生的4個預測結果。預測3與2個真值都沒有重疊區(qū)域,所以有oij=1,直接剔除;預測1、2和4與真值的重疊區(qū)域都大于閾值,而預測1和預測2相比序列號為1優(yōu)先匹配,因此預測1和預測4與真值匹配成功。
圖2 檢測結果匹配預處理示意圖
圖像檢測算法需要大量的訓練圖像,通過損失函數(shù)計算的反向傳播梯度實現(xiàn)模型參數(shù)優(yōu)化,并最終訓練得到檢測模型。損失函數(shù)如式(2)所示。
(2)
(3)
(4)
ReInspect算法使用循環(huán)LSTM網(wǎng)絡結構令單個網(wǎng)絡單元產(chǎn)生多個序列特征值,并以此特征序列對遮擋目標進行檢測。然后,相鄰的網(wǎng)格特征因感知區(qū)域范圍存在重疊部分,若兩重疊檢測結果來自相同網(wǎng)絡,則同時保留。若兩重疊檢測結果來自不同網(wǎng)絡,則移除可信度較小的檢測結果。
另外,考慮到一個檢測結果可能會與多個不同網(wǎng)格的檢測結果重復,檢測后處理方法再一次使用了匈牙利算法,實現(xiàn)了不同網(wǎng)格重復檢測結果的移除。由于同一目標可能出現(xiàn)多次重復檢測,后處理算法采用了置信度分段的方式對檢測結果進行了多次匹配移除。
基于ReInspect算法的目標追蹤框架如圖3所示。
圖3 基于ReInspect算法的多目標追蹤框架
本文實驗使用平臺為Ubuntu 18.04操作系統(tǒng),內存為16 GB,并使用顯存為6 GB的NVIDIA GeForce RTX 2060顯卡進行加速。本實驗所使用的訓練數(shù)據(jù)集為NICTA行人數(shù)據(jù)庫,該數(shù)據(jù)庫是目前規(guī)模較大的靜態(tài)圖像行人數(shù)據(jù)庫, 25 551張含單人的圖片, 5 207張高分辨率非行人圖片。
實驗測試數(shù)據(jù)集使用UCSD Ped數(shù)據(jù)集,該數(shù)據(jù)集由加州大學圣地亞哥分校提供。分別使用背景減除算法、ViBe算法、機器學習算法(HOG特征值+SVM訓練)和本文算法對測試數(shù)據(jù)中的人型目標進行追蹤。
實驗從測試數(shù)據(jù)集中隨機抽取場景1中的第300幀,各算法處理后結果如圖4所示,追蹤效果如表1所示。
圖4 場景1第300幀各算法處理效果圖
表1 場景1第300幀追蹤結果對比
由圖4及表1可以看出,在人群密集、人與人之間出現(xiàn)重疊的情況下,傳統(tǒng)的背景減除法和Vibe算法已經(jīng)不能正確檢測出單個的人,甚至會將地面上的陰影誤檢成一個人,準確率只有18.75%和31.25%,而機器學習算法雖然識別準確率顯著提高,但是對于重疊和邊緣的人群依然無法檢測出。本文提出的算法不僅能夠將重疊的行人明確檢測出,還能區(qū)別地面上的陰影,效果遠好于傳統(tǒng)算法。
然后隨機抽取場景3中的第6 500幀,各算法處理后結果如圖5所示,追蹤效果如表2所示。
圖5 場景3第6 500幀各算法處理效果圖
表2 場景3第6 500幀追蹤結果對比
從實驗結果看,當出現(xiàn)陰影遮擋情況的時候,背景減除算法、ViBe算法準確率都不高,機器學習算法雖然準確率為92.03%,但對于被遮擋的人也檢測不出。而本文算法最顯著的效果就是能將完全被陰影遮住的人檢測出。
本文提出了一種基于深度學習的對多目標進行有效追蹤的方法。從目標識別入手,首先將視頻轉化為圖片形式,通過ReInspect算法將行人從圖像中標出,判斷圖片中追蹤物體是不是人并進行追蹤。理論上,如果訓練使用的樣本庫足夠大,神經(jīng)卷積網(wǎng)絡的迭代次數(shù)足夠多,實驗可以達到準確率100%目標檢測與追蹤結果,尤其是能檢測出被陰影覆蓋或被人群遮擋的目標。雖然本方法具有較高的追蹤準確性,但是處理時間上的消耗巨大,無法在一般環(huán)境下(無GPU加速的情況)處理正常視頻流。因此,如何在保證高可靠性前提下盡量提高運算的處理速度,將是本課題進一步研究的重點。