姚 礪, 孫 匯
(東華大學 計算機科學與技術學院, 上海 200000)
在科技高速發展的時代,智能化商場是未來的發展趨勢,商場中準確的客流分析系統有利于優化資源分配以及預判商業發展趨勢。高準確率以及高性能的目標檢測與跟蹤是優化客流分析系統的重要條件,基于深度學習技術的目標檢測和跟蹤具有更高的準確率,有效的降低了因遮擋造成的目標丟失和誤報的情況,并且具有更好的魯棒性。
目前,比較流行的多目標跟蹤算法是基于檢測的目標跟蹤,檢測部分在很大程度上影響了目標跟蹤的最終效果[1]。在線的多目標跟蹤算法比離線模式的多目標跟蹤算法具有更高的準確性[2],更適用于實時的多目標跟蹤。但是在線的多目標跟蹤算法采用逐幀關聯的方式,只能截止到當前幀的信息,容易受到遮擋和外觀變化的影響[3]。Bewle在基于檢測的在線多目標跟蹤框架中提出深度關聯度量的跟蹤算法Deep SORT來解決多目標跟蹤問題,采用卡爾曼濾波進行預測,利用運動信息和外觀特征相融合的度量方式進行數據關聯[4],但對復雜環境下的多目標跟蹤,仍會由于遮擋出現誤檢和漏檢的問題。
針對復雜的商場場景中的客流分析,基于行人檢測的目標跟蹤算法很容易由于遮擋問題以及行人體型、衣服顏色等外觀特征信息影響跟蹤結果,導致跟蹤誤檢、漏檢。本文在基于行人檢測的目標跟蹤基礎上,提出增加人臉特征比對來提高跟蹤算法的準確性,通過對檢測算法得到的目標行人進行人臉姿態估計,得到臉部朝向信息,判斷目標行人是否是正向人臉,對正向人臉的目標行人采用人臉特征點比對算法實現數據關聯,非正向人臉采用運動信息和外觀特征相融合的度量方式進行數據關聯,實現多目標跟蹤。相對于傳統的多目標跟蹤算法,本文提出的算法有效解決了目標因遮擋等復雜情況造成的跟蹤失敗問題,并有效的減小誤檢、漏檢對跟蹤造成的影響。
基于人臉識別的多目標跟蹤方法主要包括行人檢測、人臉特征比對、基于Deep SORT的多目標跟蹤。首先采用YOLOv3檢測算法對視頻幀進行行人檢測;其次,對目標行人臉部6個關鍵點采用3D臉部模型對應投影到2維圖像坐標系中的點集之間的變換關系矩陣來進行人臉姿態估計,并用歐拉角表示臉部朝向信息;最后,對正向人臉采用人臉特征比對算法進行數據關聯,非正向人臉采用運動信息和外觀特征相融合的度量方式進行數據關聯,實現多目標跟蹤。本文提出的多目標跟蹤算法框架如圖1所示。

圖1 基于人臉識別的多目標跟蹤方法框架
本文采用基于深度學習的YOLOv3s算法進行行人檢測,對目標行人中的正向人臉采用基于特征點的人臉比對算法,對目標行人中的非正向人臉采用基于Deep SORT的多目標跟蹤算法,實現復雜的場景中的客流分析系統,提高客流分析的準確率和速度。
在基于檢測的多目標跟蹤算法中,檢測器的檢測效果直接影響多目標跟蹤的最終結果?;谏疃葘W習的檢測方法主要分為以SSD、YOLO為首的one-stage和以RCNN系列為首的two-stage兩種。one-stage的目標檢測方法直接通過主干網絡給出類別和位置信息,經過單次檢測生成最終的結果,two-stage檢測算法將檢測問題劃分為兩個階段,首先產生候選區,然后對候選區分類。相對來說two-stage算法在準確度上有優勢,one-stage算法在速度上有優勢。YOLOv3是使用一個CNN網絡直接預測不同目標的類別與位置的one-stage算法,精確度高并且速度快,能夠滿足實時的檢測和檢測的準確性[5]。
YOLOv3是一種端到端的實時深度學習目標檢測算法,基本思想是首先將輸入圖片壓縮到416×416,通過特征提取網絡(Darknet53 without FC layer)對輸入圖像提取特征,得到S×S大小的特征圖,然后將輸入圖像分成S×S個單元網格,每個單元格負責檢測中心點落在該單元格內的目標,每個單元格會預測B個邊界框和置信度?,F在YOLO已經衍生到第三個版本,相比于前兩個版本,YOLOv3最明顯的改進是采用了類似Feature Pyramid Networks for Object Detection(FPN)架構來實現多尺度預測[6],每個尺度預測3個邊界框,明顯提升了對小目標檢測的效果,另外特征提取采用了分類效果更好的骨架網絡darknet53,其特征提取器包含了52個卷積層和一個全連接層,加入了多個連續的3×3和1×1的卷積層。相比于YOLOv2采用的Darknet-19網絡結構使用了殘差單元,提高了檢測的速度。本文采用YOLOv3得到的檢測效果與其他檢測算法的對比見表1,可以看出Yolov3在實現相同準確度下要顯著地比其他檢測方法速度更快。

表1 本文基于YOLOv3的檢測效果與其他算法的對比
原有的YOLOv3訓練的是COCO數據集,訓練種類有80個,因為本文只針對行人進行檢測,所以本文使用VOC2007數據集中2000張行人圖片以及2 000張MOT16數據集中的行人圖片,將數據集中70%作為訓練集,30%作為測試集。在訓練中,設置每次迭代要訓練的圖片數量為64,subdivision=2,最大迭代次數為50 200,學習率為0.001。訓練迭代到760次時,最終的loss收斂到1.2,Avg IOU的值為0.89,平均精度(map)為0.55,準確率(AP)為0.8左右。
多目標跟蹤算法在復雜的場景中,會出現同一個目標行人由于遮擋被識別成不同的ID,也會出現不同的目標行人由于衣服顏色等外觀特征被識別成同一個ID的情況,為了提高多目標跟蹤的準確性,本文增加人臉特征比對,對目標行人中的正向人臉通過基于臉部特征點的人臉比對算法進行數據關聯。
2.2.1 人臉姿態估計
為了得到正向人臉,需要對檢測到的目標行人通過人臉姿態估計,獲得人臉朝向的角度信息。人臉朝向角度可以用三個歐拉角表示,即pitch、yaw、roll,分別代表上下翻轉、左右翻轉、平面內旋轉的角度。人臉姿態估計的核心思想是旋轉三維標準模型一定角度,直到模型上“三維特征點”的“2維投影”,與待測試圖像上的特征點盡量重合。人臉姿勢估計的過程為:
(1)首先定義n個關鍵點的3D臉部模型,本文采用n=6,取鼻尖、下巴、左眼左角、右眼右角、嘴角左側、嘴角右側6個關鍵點。在實際應用中,不需要獲取一個精確的人臉三維模型,直接采用世界中心坐標:鼻尖:(0.0,0.0,0.0),下巴:(0.0,-330.0,-65.0),左眼左角:(-225.0f,170.0f,-135.0),右眼右角:(225.0,170.0,-135.0),嘴角左側:(-150.0,-150.0,-125.0),嘴角右側:(150.0,-150.0,-125.0);
(2)采用人臉特征點檢測,得到6個關鍵點的3D人臉模型對應的2D關鍵點;
(3)求解3D點和對應2D點之間的轉換關系,得到旋轉矩陣。姿態估計過程中有3個坐標系,分別為世界坐標系、相機坐標系和圖像坐標系。世界坐標系中的三維點(U,V,W)通過旋轉矩陣R和平移向量t映射到相機坐標系(X,Y,Z),然后通過相機的內參數矩陣映射到圖像坐標系(x,y)[7];
(4)由旋轉矩陣求歐拉角。先將旋轉向量轉化為四元數,再將四元數轉化為歐拉角;
四元數的定義,式(1)
|q|2=w2+x2+y2+z2=1.
(1)
四元數到歐拉角的轉換公式(2)為:
(2)
最終得到的臉部旋轉角度誤差在±4度。
2.2.2 基于特征點的人臉比對
本文人臉比為M∶N模式,對每一幀圖像中的正向人臉與人像數據庫進行比對,采用基于特征點的人臉識別算法。首先,對人臉圖像提取特征點,通過差分高斯函數來計算圖像的極值點,這些極值點具有尺度不變性和方向不變性,通過極值點與其他26個鄰居像素點進行比較,篩選出一些高對比度和高質量的點作為特征點;其次,通過為每一個特征點計算梯度和朝向,為特征點指定方向,用一個128維的向量來表征圖像特征,最后通過計算待測圖像與數據庫圖像中的特征點向量的歐氏距離,得到互相匹配的特征點對,特征點匹配對最多的圖像即為正確匹配圖像。
將基于特征點的人臉比對算法在數據集yale face-database中實驗,測試得到人臉比對結果平均準確率為98%,比對效果良好,具有優秀的識別率,并且在時間復雜度上也具有良好的表現。
本文采用基于Deep SORT的多目標跟蹤算法對目標行人進行跟蹤,該算法是一種基于檢測跟蹤的在線實時跟蹤算法。在實時目標跟蹤過程中,提取目標的表觀特征進行最近鄰匹配,改善有遮擋情況下的目標追蹤效果,減少了目標ID跳變的次數。同時采用遞歸的卡爾曼濾波和逐幀的數據關聯,并使用級聯匹配策略解決因遮擋導致的卡爾曼濾波梯度彌散問題,很好的改善了遮擋后跟蹤序號跳變的問題。
2.3.1 數據關聯
多目標跟蹤的核心是解決目標關聯問題,本文使用Deep SORT算法在目標關聯中采用運動信息和外觀特征相融合的度量方式[8]。運動信息的關聯使用檢測與軌跡在卡爾曼濾波器預測的位置之間的馬氏距離來描述運動匹配程度,馬氏距離是一種有效的計算兩個未知樣本集的相似度的方法[9],公式(3):
其中,d(1)(i,j)表示第j個檢測到的目標和第i條軌跡之間的運動信息匹配度,dj表示第j個檢測框的位置,yi表示第i個追蹤器對目標的預測位置,Si表示第i條軌跡由卡爾曼濾波器預測得到的在當前時刻觀測空間的協方差矩陣。由于在遮擋情況下,單獨使用馬氏距離為匹配度度量不精確,會導致嚴重的ID跳變,所以引入一個新的判斷數據關聯的標準,即外觀信息匹配。使用外觀空間中第i個軌跡和第j個檢測之間的最小余弦距離為度量標準,具體公式(4)如下:
其中,rj表示每一個檢測塊dj對應的一個特征向量,滿足‖rj‖=1;rk表示每一個追蹤目標儲存的最近100幀成功關聯的特征向量。
最后使用運動匹配度和外觀信息匹配度的線性加權作為最終的聯合度量,式(5):
c(i,j)=λd(1)(i,j)+(1-λ)d(2)(i,j)
馬氏距離對于短期的預測和匹配效果很好,最小余弦值對于長時間丟失的軌跡而言比較有效。
2.3.2 級聯匹配
在復雜場景中,行人聚集比較多,跟蹤目標容易被遮擋,如果目標被長時間遮擋,卡爾曼濾波預測的不確定性就會大幅度的增加,同時狀態空間內的可觀察性也會很大程度地降低,進而導致目標軌跡碎片增加以及軌跡不穩定。引入級聯匹配,其核心思想是由小到大地對消失相同的軌跡進行匹配,即優先考慮更常見的目標,提高了多目標跟蹤算法的準確性。
通過Deep SORT跟蹤算法對YOLOv3檢測出的行人進行跟蹤,取得較好的效果,而且能夠實現實時的目標跟蹤,有效的提高客流分析系統的多目標跟蹤。
為了驗證增加人臉特征比對能否提高多目標跟蹤的準確性,本文采用數據集MOT16中的視頻集進行測試。MOT16是2016年提出的衡量多目標檢測跟蹤算法標準的數據集,視頻分辨率為1920×1080。本文的實驗平臺采用Linux系統下的Ubuntu16.04,GTX1060,3.2GHz,內存為16 GB。
對MOT16中的一個數據集進行測試,采用YOLOv3檢測算法實現的客流分析系統中的行人檢測結果見表2。對視頻流進行行人檢測,統計了正確檢測到的行人個數、錯誤檢測到的行人個數以及未檢測到的行人個數,通過和實際存在的行人個數的比值得到檢測算法的準確率、誤報率和漏檢率。

表2 實驗數據統計表
由表2結果可以行人檢測的正確率為90.3%,誤檢率為3.8%,漏檢率9.6%,對客流分析系統的行人檢測效果良好,并且檢測速度為65 ms/幀,可以實現客流分析系統中的實時檢測。
采用傳統的基于Deep SORT多目標跟蹤算法,采用運動信息和外觀信息相融合的方式進行數據關聯,將該算法在MOT16數據集測試,得到的實驗實驗結果如圖2所示。

(1)幀753 (2)幀766 (3)幀778
由圖2可以看出,幀753中的1號行人在經過幀766中25號行人的遮擋之后,在幀778中重新出現時被錯誤識別成了一個新的目標行人。
針對客流分析系統中的多目標跟蹤,本文實驗采用YOLOv3進行行人檢測,對有正向人臉的行人采用人臉特征比對進行數據關聯,對非正向人臉的目標行人采用基于Deep SORT的多目標跟蹤算法進行數據關聯,實驗效果如圖3所示。從圖3中可以看出,該方法對目標行人進行了準確的檢測和跟蹤,并且在1號目標行人被25號目標行人完全遮擋之后,在重新出現時也能正確的關聯。有效解決了基于多目標跟蹤算法由于遮擋或者行人目標特征相近等問題導致結果失敗的問題。

(a)#753幀 (b)#760幀

(c)#766幀 (d)#778幀
為了驗證本文算法的有效性,本文采用MOT基準挑戰中的評價標準:多目標跟蹤準確率(MOTA),最多跟蹤目標率(MT),最多丟失目標率(ML),ID錯誤變換次數(IDs)。本文的跟蹤算法與其他跟蹤算法在MOT基準訓練集的性能比較見表3。

表3 跟蹤器在MOT基準訓練集的跟蹤性能比較
實驗結果表明,本文算法在客流分析系統中實現行人檢測以及多目標跟蹤都具有良好的效果,并且在復雜的環境下也有良好的魯棒性。針對多個目標時不僅能夠實現準確的行人檢測,而且能夠在有遮擋的復雜環境中建立正確的數據關聯,實現良好的多目標跟蹤效果,減少了多目標跟蹤中的目標丟失以及跟蹤誤報的問題,降低了ID跳變的次數。
為了在復雜的環境下進行準確的客流分析,本文提出基于人臉識別的客流分析方法,將人臉識別和多目標跟蹤具體應用到智能化商場中,解決因遮擋造成的目標丟失以及誤報的問題。
首先采用基于深度學習的YOLOv3算法進行行人檢測,該算法在精確度相同的情況下,目標檢測速度明顯優于其他檢測算法;其次,對檢測到的目標行人通過臉部6個關鍵點的3D臉部模型對應投影到2維圖像坐標系中的點集之間的變換關系矩陣,來獲取人臉旋轉和平移信息,采用3個歐拉角(pitch,yaw,roll)來表示臉部朝向信息,對于正向人臉采用人臉特征比對實現數據關聯,非正向人臉采用運動信息和外觀特征相融合的度量方式進行數據關聯,實現在遮擋情況下,對目標行人的準確跟蹤。
在數據集MOT16中的實驗證明,本文的方法能滿足實時的多目標跟蹤,并且具有良好的跟蹤性能,一定程度上解決了因長時間遮擋出現的行人跟蹤誤報或漏報的問題。