?

行人跟蹤算法及應用綜述*

2020-04-27 08:18曹自強賽斌呂欣
物理學報 2020年8期
關鍵詞:行人卷積算法

曹自強 賽斌 呂欣

(國防科技大學系統工程學院,長沙 410073)

行人跟蹤是計算機視覺領域中研究的熱點和難點,通過對視頻資料中行人的跟蹤,可以提取出行人的運動軌跡,進而分析個體或群體的行為規律.本文首先對行人跟蹤與行人檢測問題之間的差別進行了闡述,其次從傳統跟蹤算法和基于深度學習的跟蹤算法兩個方面分別綜述了相關算法與技術,并對經典的行人動力學模型進行了介紹,最終對行人跟蹤在智能監控、擁堵人群分析、異常行為檢測等場景的應用進行了系統講解.在深度學習浪潮席卷計算機視覺領域的背景下,行人跟蹤領域的研究取得了飛躍式發展,隨著深度學習算法在計算機視覺領域的應用日益成熟,利用這一工具提取和量化個體和群體的行為模式,進而對大規模人群行為開展精確、實時的分析成為了該領域的發展趨勢.

1 引 言

近年來,深度學習的浪潮席卷計算機視覺領域,這不僅提高了通用物體的檢測性能,也極大地促進了行人檢測的發展,為行人跟蹤領域的研究奠定了良好的基礎[1].行人檢測的主要任務是判斷圖片或者視頻中是否有行人,如果有,則用框圖把行人標記出來[2],不用考慮前后兩幀中行人的匹配問題.行人跟蹤與行人檢測不同,需要利用數據關聯技術關聯前后兩幀中相似度最大的行人,以達到對視頻中的行人持續跟蹤[3]的目的,從而得到行人運動的速度、軌跡和方向等信息[4],并將其進一步應用到個人或大規模群體行為的研究領域中去[5,6].行人跟蹤是計算機視覺應用中的一項基本任務,雖然已有大量文獻提出了各種算法,但由于行人跟蹤問題比較復雜,不僅需要考慮拍攝的角度、光照的變化[7-9],還需要考慮新目標出現,舊目標消失,以及當跟丟目標再次出現時,如何進行再識別[10]等問題,這使得健壯的行人跟蹤算法仍然是一個巨大的挑戰.

隨著深度學習技術在計算機視覺領域的廣泛應用,用深度學習的方法來研究行人跟蹤問題儼然成為了學術界的主流[11].雖然已有相關的文獻綜述對行人跟蹤領域中的算法進行總結,但這些綜述大多不夠新穎,所提到的算法依舊是傳統的目標跟蹤算法,沒有將最新的深度學習算法包含進來.為了彌補已有文獻的不足,同時使得廣大科研工作者掌握行人跟蹤領域的最新發展趨勢,本文首先將行人跟蹤領域的算法按照傳統跟蹤算法和深度學習跟蹤算法的分類方法進行了系統介紹,并選取相應的指標評估性能,然后介紹幾種經典的人類行為動力學模型,回顧人類行為動力學領域的發展歷程,最后圍繞新技術條件下的視頻監控、擁堵人群分析、異常行為監測等典型應用場景進行了系統地闡述.

2 傳統跟蹤算法

2.1 卡爾曼濾波算法

1960年,Kalman[12]為了解決離散數據的線性濾波問題,提出了卡爾曼濾波算法,該算法后來被擴展到目標跟蹤領域[13],其核心思想是利用上一時刻目標狀態的預測值和當前時刻目標狀態的測量值得到當前時刻目標狀態的最優估計,并把當前時刻得到的最優估計作為下一時刻目標的預測值進行迭代運算,如此循環往復,逼近目標的真實值[14].該算法的創新點在于同時考慮了在預測過程和測量過程中的誤差,并且認為這兩種誤差獨立存在,不受測量數據的影響.

該算法包括包括預測階段和更新階段兩部分.在預測階段,利用目標上一時刻的預測值預測當前狀態并對誤差協方差矩陣進行估計;在更新階段,卡爾曼濾波器用加權的測量結果來矯正預測結果[15].卡爾曼濾波的兩個階段如表1所列,各參數的含義如表2所列.

表1 卡爾曼濾波的預測階段和更新階段Table 1.Prediction and update process of Kalman filtering.

利用該運動方程,再結合卡爾曼濾波算法中兩個階段的相關公式,就可以預測目標在下一時刻的狀態,具體操作流程為:

由此可得狀態轉移矩陣

其中外部控制量 Uk-1和控制矩陣 B 均為零,之后分別為誤差協方差矩陣、系統噪聲協方差矩陣賦予初始值,一般令

表2 卡爾曼濾波公式中的參數及含義Table 2.Parameters and meanings in the Kalman filter formula.

然后用 yk=[yx(k),yy(k)] 表示測量的目標中心點坐標,因為 yk=H×xk,所以狀態轉移矩陣

利用該算法,有了系統前一時刻狀態就能估計出系統下一時刻的狀態,同時還可利用當前的觀測值修正系統狀態,使得估計的均方誤差最小[17].

卡爾曼濾波算法經常與其他算法結合共同完成行人跟蹤任務,很少單獨使用.例如李娟等[18]用卡爾曼濾波算法原理對視頻中的行人進行跟蹤,他們首先采用混合高斯模型得到運動行人的前景圖像,然后利用HSV(hue,saturation,value)顏色空間模型和基于形態學的目標重構方法消除運動陰影,最后用卡爾曼濾波預測行人的位置并得到了行人的運動軌跡.石龍偉[19]將卡爾曼濾波與光流法結合起來,先用光流法對視頻進行預處理,然后根據光流法獲取的目標位置等信息用卡爾曼濾波實現對行人的有效跟蹤.王宏選[20]在動態行人跟蹤TLD(tracking-learning-detection,跟蹤-學習-檢測)算法中引入了卡爾曼濾波器預測行人下一幀可能出現的區域,以縮小檢測范圍,提高檢測速度,改善行人之間因存在遮擋而導致跟蹤丟失的問題.

卡爾曼濾波算法比較簡單,容易實現,適合跟蹤簡單場景中的行人.但其易受光照變化的影響,而且當行人突然改變行走的方向或者速度時,跟蹤效果較差.

2.2 多假設跟蹤算法

1979年,Reid[21]提出了多假設跟蹤算法,該算法的最初目的是解決雷達信號的自動跟蹤問題,后來Kim等[22,23]對多假設跟蹤算法進行了改進,將其擴展到目標跟蹤領域.多假設跟蹤算法本質上是基于卡爾曼濾波算法在多目標跟蹤問題中的擴展,其中假設是指聚簇內一組目標和量測的分配互聯關系[24].多假設跟蹤是一種延時決策算法,在數據關聯發生沖突時,會形成多種假設,直到獲取到新的信息再做決定,主要包括數據聚簇、假設生成、計算假設得分、假設刪除四部分[25],其中假設生成和假設刪除是該算法的核心,該算法的流程如下.

Step 1數據聚簇,將新接收的量測點跡與以前的假設進行關聯.

Step 2將所有可能的航跡生成假設并保存,生成的假設用下面的公式表示:

其中Z(k)表示k時刻的量測集合;Zk表示k時刻的累積量測集合;Ωk表示k時刻關聯假設的集合;Mk是可用量測個數;表示先驗假設;Zm(k)的來源可能是原有目標的繼續、新目標的量測、虛警等.如果量測是原有目標的繼續,則它符合原有航跡的高斯分布,否則量測是一個均勻分布的噪聲;如果是新目標的量測、虛警,則出現當前關聯的可能性可以通過泊松分布和二項分布的乘積表示.

Step 3計算假設概率:

Step 4假設刪除,因為假設的積累會占據大量的內存,增加運算量,不利于實時跟蹤,所以需要對假設進行剔除.目前有兩種刪除假設的方法,分別是零掃描法和多掃描法.

零掃描法首先使用零掃描濾波器處理每個數據集,然后僅保留概率最大的那個假設.另外一種改進的方法是不僅選擇最大似然假設,而且增加卡爾曼濾波器中的協方差以解釋誤相關的可能性.

多掃描法使用多掃描算法處理數據集之后仍存在若干假設,然后再次修剪所有不太可能的假設,但保持所有概率高于指定的閾值的假設.

多假設跟蹤算法保留了假設的大量歷史信息,確保了跟蹤效果的穩定性,但同時由于這些歷史信息占據了過多的存儲空間,使得該算法的計算量大,實時性差[26].

2.3 粒子濾波算法

針對卡爾曼濾波需要目標的狀態變量滿足高斯分布的缺點,Breitenstein等[27]提出了一種基于粒子濾波框架的多行人跟蹤檢測算法,該算法是卡爾曼濾波算法的一般化方法.卡爾曼濾波建立在線性的狀態空間和高斯分布的噪聲上,而粒子濾波的狀態空間模型可以是非線性的,且噪聲分布可以是任何型式,是一種通過非參數化的蒙特卡羅方法來實現遞推的貝葉斯濾波,粒子濾波的基本原理是通過先驗概率和當前觀測值估計后驗概率[28],該算法分為兩個步驟.

首先進行數據關聯,用匹配算法最多將一次檢測分配給至多一個目標,再用匹配函數 s(tr,d)評估檢測 d與跟蹤器 tr的每個粒子p 之間的距離,并用為 tr 訓 練的分類器 c tr(d)對 d 進行評估:

其中 pN(d-p)表示評估d和p 之間距離的正態分布;g(tr,d)是門控函數,代表檢測相對于目標的速度和運動方向的位置.

其次計算跟蹤器 tr的粒子p的權重w(tr,p):

其中參數 β,γ,η是實驗設定的;I(tr)是指示函數,如果檢測與跟蹤器關聯,則返回1,否則返回0;dc(p)表 示置信密度;po(tr)是加權函數.

該算法不依賴于背景建模,可以在復雜的遮擋場景中對大量動態移動的人進行魯棒跟蹤,是完全的二維操作(不需要攝像機或地面平面標定),在行人跟蹤的實驗中可以很好地復現行人的運動模式[29].針對現實世界中行人身體之間的遮擋問題,Xu等[30]用粒子濾波跟蹤行人的頭部,并用基于顏色直方圖和方向梯度直方圖的方法對頭部外觀模型進行更新,有效地減少了由于遮擋問題而造成的行人標號變化頻繁的問題.該算法在UT-Interaction數據集的測試結果中,行人的身份標號僅變化了4次.

2.4 基于馬爾科夫決策的多目標跟蹤算法

2015年,Xiang等[31]提出了一種基于馬爾可夫決策過程的在線多目標跟蹤框架,將多目標跟蹤問題視作一個馬爾科夫決策過程來處理.馬爾科夫決策過程由一個元組(S,A,T(·),R(·))組成[32],其中S表示目標所處的狀態,A 表示目標可以執行的動作,T(·)表 示狀態轉移函數,R(·)表示獎勵方程,行人跟蹤問題的馬爾科夫決策過程如圖1所示.

圖1 馬爾科夫決策過程流程圖[31]Fig.1.Markov decision process flow chart[31].

該算法將行人跟蹤中的行人劃分為激活、跟蹤、丟失、停止四種狀態.其處理流程如下.

Step 1行人被檢測器檢測到后首先進入激活狀態,然后用一個訓練好的SVM 分類器判斷行人是進入跟蹤狀態還是停止狀態,其分類結果用一個5 維的特征向量 ΦActive(s)表示.SVM分類器是從訓練視頻序列中選出訓練樣本,并將行人的2 維坐標、高度、寬度以及檢測得分歸一化為一個5維的標準化向量訓練得到的[31],其獎勵函數為

如果轉移到跟蹤狀態,則y(a)=1;如果轉移到停止狀態,則用于定義SVM 的超平面.

Step 2在跟蹤狀態下的獎勵函數:

其中 emedFB表示預測誤差的中間值,如果預測誤差emedFB太 大則跟蹤失效;omean表示前后兩幀邊界框重疊區域的平均值,只有當 omean在閾值 o0以上時才被認為正確檢測到目標;因此當且僅當 emedFB小于閾值e0和omean大于閾值o0才表示跟蹤有效,y(a)=+1;否則進入丟失狀態,y(a)=—1.

Step 3丟失狀態下的獎勵函數:

如果轉入跟蹤狀態,則 y(a)=+1;如果進入停止狀態,則 y(a)=—1;wTφ(t,dk)是捕捉目標和檢測之間相似性的特征向量.

基于馬爾科夫決策的多目標跟蹤算法的跟蹤效果比較好,文獻[31]將其在MOT Benchmark上進行了測試,其多目標跟蹤準確率可達30.3%,多目標跟蹤精度可達70.3%,但是在行人長時間遮擋后容易發生誤判.

2.5 相關濾波算法

相關濾波最初是表示信號處理領域中兩個信號之間相似度的概念,兩個信號之間的相似度越高,它們就越相關.2019年,Bolme等[33]首次將相關濾波算法運用到目標跟蹤領域,其核心思想是利用誤差平方和最小的濾波器(minimum output sum of squared error,MOSSE)訓練圖像,使得圖像的平方和誤差最小,從而建立跟蹤目標的外觀模型.該算法的處理流程如下:

Step 1首先訓練相關濾波器,最小化實際輸出與期望輸出 Gi之間的平方和誤差:

Step 2然后用訓練好的相關濾波器 H*與輸入圖像 F 做相關操作,求其響應 G :

Step 3最后用PSR作為響應G峰值強度的度量,只有當PSR大于某個閾值時才會跟新目標的位置,否則執行Step 1,一般PSR小于7表示跟蹤失敗,

該算法運用傅里葉變換操作,極大地提高了運算速度,使得該算法具有很好的實時性.但由于沒有考慮尺度的變化,導致算法的魯棒性比較差.針對以上問題,Henriques等[34]提出了KCF算法,利用 HOG(histogramso for ientedgradients)特征代替MOSSE中使用的原像素,增強了濾波器對目標和環境的判別能力.此外在MOSSE線性回歸模型的基礎上加入了正則項建立了線性嶺回歸模型[35,36]:

KCF算法利用循環矩陣和核函數大大提高了跟蹤的速度和精度.但其跟蹤模型僅使用了HOG特征,在特征信息出現模糊時容易導致跟蹤失敗,而且學習率是固定不變的,使得跟蹤模型易受到周圍環境的污染,不適合長時間跟蹤[37].

3 深度學習算法

深度學習是包含多級非線性變換的層級機器學習方法,深層次神經網絡是其主要形式.神經網絡中層與層之間的神經元連接模式受啟發于生物神經網絡[38].深度學習算法與傳統算法相比,不需要手動選擇特征,具備良好的特征提取能力.但由于深度學習算法需要大量的數據以及高性能的計算機來訓練數據,而之前的計算機性能不能滿足深度學習算法的需求,也沒有大量的數據用來訓練[39],因而深度學習算法沉寂了相當長的一段時間[40].近年來,隨著大數據時代的到來、計算機性能的提升,深度學習開始廣泛應用于計算機視覺的各個領域,深度學習算法在行人跟蹤領域應用的主流思路是 tracking-by-detection[41],即首先用深度學習模型提取目標行人的特征,檢測出視頻中的行人所在位置,然后用多目標跟蹤器對目標進行持續跟蹤.本文以卷積神經網絡為例介紹深度學習算法在行人跟蹤上的應用.

3.1 卷積神經網絡

卷積神經網絡(convolutional neural network,CNN)是一種典型的深度學習模型.LeCun[42]最早提出了CNN的概念.2012年,Krizhevskyd等[43]首次將深度卷積神經網絡應用到圖像分類領域,其設計的AlexNet 網絡模型贏得了ImageNet圖像分類比賽的冠軍,成功地把深度卷積神經網絡引入了計算機視覺領域.此后ImageNet比賽的冠軍均是采用深度卷積神經網絡的方法完成的.CNN的基本結構包括輸入層、卷積層、池化層、全連接層及輸出層[44],如圖2所示.

圖2 CNN基本結構圖Fig.2.CNN basic structure diagramt.

圖2中只繪制出了一個卷積層和池化層,然而在實際的網絡中經常有若干個卷積層和池化層交替連接.在卷積層中通常使用一個大小為 f ×f 的濾波器執行卷積操作來提取圖像中的特征,網絡前面淺層的卷積層用來提取圖像的低級特征,后面更深層的卷積層用來提取圖像的高級特征,全連接層將提取到的圖片的特征歸一化為一維的特征向量,輸出層在分類問題中用來輸出每個類別的概率.在處理行人檢測問題時,卷積神經網絡模型按照檢測的步驟可以劃分為One-stage和Two-stage 兩類.Two-stage把檢測行人分為兩個階段,首先產生行人候選區域(region proposals),然后對候選區域進行分類,其典型代表是RCNN,SPP-Net,Faster-RCNN等模型,特點是準確率較高,但檢測速度慢.One-stage 可以直接生成行人的類別概率和位置坐標,其典型代表是YOLO系列模型以及CornerNet,CenterNet等模型,其特點是運算速度較快,但準確率一般較低.

3.2 RCNN網絡模型

2014年,Girshick等[45]提出 RCNN(regions with CNN features)模型進行目標檢測,將卷積神經網絡引入目標檢測領域.RCNN 就是在目標候選區內用CNN的方法來提取特征,處理流程如圖3所示.

該模型首先使用選擇性搜索(selective search)算法[46]在輸入圖片上生成2000個左右的目標候選區域,然后對這些候選區域進行歸一化操作,并將歸一化后的候選區域送到AlexNet卷積網絡提取特征.在AlexNet網絡中有5個卷積層可以提取特征,經過一輪訓練后,每個候選區域都能夠得到一個4096維的特征向量,然后將提取到的特征傳入SVM分類器中進行分類,最后使用卷積層的輸出訓練一個回歸器(dx,dy,dw,dh)對候選區域進行微修,使其接近真實標注的區域.

RCNN的出現使得科研工作者不用再手工設計大量的人工特征,而且準確率與傳統檢測算法相比有了很大的提高.但由于RCNN要求圖片輸入到卷積層的尺寸大小是固定的,因此需要對原始圖片做尺寸變換,這會讓圖片產生形變,損失一部分特征,降低了檢測的準確率.并且每次檢測都要先生成 2000個候選區域,運算較為耗時,導致RCNN在VOC2007數據集上檢測一張圖片大約需要47 s[47],不能滿足實時性要求.

圖3 RCNN算法流程圖[45]Fig.3.RCNN algorithm flowchart[45].

3.3 SPP-Net網絡模型

2014年,He等[48]發現感興趣區域(region of interest,ROI)的特征都可以與特征圖上相應位置的特征一一對應,于是提出了SPP-Net網絡模型.該模型一次檢測只需一次卷積運算,這使得檢測速度得到了極大提升,其檢測速度大約是RCNN的100 倍.SPP-Net網絡模型的結構如圖4所示.

SPP-Net網絡模型首先對輸入圖片使用選擇性搜索(selective search)算法生成2000個左右的目標候選區域,并將每個候選區域的大小劃分為4×4,2 ×2,1 ×1 的塊,然后用金字塔池化(spatial pyramid poooling,SPP)層進行池化操作,得到維度為(4 ×4+2×2+1×1)× 256 的特征向量,最后將特征向量作為全連接層的輸入,在輸出層輸出.SPP-Net 網絡模型的核心是在卷積層后加了空間金字塔池化層,該層可以生成固定大小的圖片,不用對圖像進行裁剪,減少了特征的損失,而且在整個過程中僅對圖片做一次卷積特征提取,極大地提高了通用物體的目標檢測速度.但其需要將數據分為多個訓練階段,步驟較為復雜[49].

3.4 Faster-RCNN模型

雖然RCNN網絡模型和SPP-Net網絡模型檢測目標的準確度較高,但是它們在檢測之前均要先生成2000個左右的候選區域,這增加了目標檢測的時間.Faster-RCNN模型[47]的最大貢獻在于廢除了選擇性搜索算法,利用區域提議網絡(region proposal network,RPN)生成候選區域,并通過共享卷積運算提取圖片特征,極大地降低了運算量[50],提高了檢測速度.RPN網絡模型的結構如圖5所示.

圖4 SPP-Net結構圖[48]Fig.4.SPP-Net structure diagramt[48].

圖5 RPN結構圖[47]Fig.5.RPN structure diagramt[47].

RPN網絡首先在 n 維特征圖的每個像素上生成 k 個不同尺寸的錨框,并給每個錨框分配一個二進制的標簽(是否是目標),若錨框與實際目標的重疊區域的面積大于0.7倍總面積則被標記為正標簽,若錨框與實際目標的的重疊區域的面積小于0.3 倍總面積則被標記為負標簽.然后用一個大小為 s ×s 的 滑動窗口生成一個 n 維的特征,最后連接到分類層和回歸層[51],判斷是否存在目標并記錄目標位置.

Faster-RCNN采用RPN網絡降低了生成候選框所需的時間,并將Softmax分類器和回歸器結合,不用分別訓練網絡模型,檢測效果和速度均優于RCNN和SPP-Net網絡,作者在PASCKL VOC 2007數據集中測試的平均精度為0.73.但由于RPN網絡中采用滑動窗口遍歷卷積特征圖,因此也增加了時間的開銷.

3.5 YOLO系列模型

以上所介紹的目標檢測算法都是先劃分目標候選區域然后再預測目標類別,而YOLO[52]將目標區域候選區域的劃分與類別的預測當作一個回歸問題來處理,直接在圖片上輸出多個目標的位置和類別,在保證較高準確率的前提下實現目標的快速檢測,更能滿足現實需求[53].YOLO 總共經歷了YOLO,YOLOV2,YOLOV3三個版本,下面分別對其進行介紹.

YOLO采用改進的InceptionV1[54]模型提取圖片的特征,因為InceptionV1模型要求輸入圖片的尺寸大小是448 × 448,因此首先要將輸入圖片的尺寸調整為448 × 448,其次將調整過尺寸的整張圖片作為卷積網絡的輸入,并用大小為 S ×S 的網格對原始圖片劃分,此時圖片中物體的中心點就會落在某個網格單元內,則對應的網格單元就負責檢測該物體.每個網格單元預測B個候選框和候選框內的置信度得分.每個候選框中包含 x,y,w,h和置信度5個信息[55],其中(x,y)表示預測邊框的中心點坐標,(w,h)表示預測邊框的寬和高,但需要注意的是中心點坐標的數值是相對于小網絡邊框而言的,寬和高的數值是相對于整張圖片而言的.如果網格單元不包含物體,則置信度為0,否則置信度的計算公式為

得到置信度之后,每個網格單元會給出 C 個類別的條件概率,然后用(17)式計算各個網格單元內所有類別的概率.

最后這些類別預測信息和置信度得分被編碼到 S ×S×(B×5+C)大小的向量中作為YOLO輸出層的輸出.在預測時每個網格單元會依據類別概率生成一個候選框,但是大物體會生成多個候選框,作者利用非極大值抑制算法選擇交并比(intersection over union,IoU)得分最高的候選框,并去除冗余窗口,優化檢測結果.YOLO的檢測速度很快,可以達到每秒21幀,但是精度不高,平均精度只有0.66,容易漏檢小物體.針對以上問題,作者在2017年提出了YOLOV2模型[56],在YOLO模型的基礎上做了5 個方面的改進.首先在每一個卷積層后面都增加了批標準化(batch normalization,BN)操作,對數據做歸一化預處理,加快了收斂速度.其次將輸出層的全連接層替換為卷積層,由此可以微調圖片的輸入尺寸,使網絡適應不同尺寸的輸入.然后引入了Faster-RCNN中候選區域框的概念,并采用K-均值聚類方法調整候選區域框的尺寸,使其更好地適應目標的尺寸.然后在模型中添加轉移層,將淺層特征圖連接到深層特征圖上,有利于檢測小目標.最后 YOLOV2不再讓每一個小網格預測目標類別,而把這一任務交給候選區域框.這5個方面的改進使得YOLOV2在PASCAL VOC數據集上的檢測速度達到每秒40幀,平均精度為0.786.

2018年,作者又對YOLOV2在速度和精度上進行了改進,提出了YOLOV3模型[57].該模型采用具有 Darknet-53網絡來做特征提取,是YOLOV3的精度得以提升的關鍵因素.為了進一步加強對小物體的檢測能力,YOLOV3利用多尺度特征對目標進行檢測,在論文中作者采用了大小為 1 3×13,26×26和52×52 三個不同尺度的特征.最后在分類時用 Logistic回歸替代YOLOV2的Softmax回歸,以便對多標簽任務分類.YOLOV3 檢測一張尺寸為 3 20×320 的圖片所消耗的時間為22 ms,平均精度為28.2%.

3.6 CornerNet網絡模型

以YOLO系列為代表的One-stage深度學習網絡模型和Two-stage 深度學習網絡模型均屬于anchor-base模型,需要使用不同大小、不同高寬比的 anchor作為檢測目標的候選區域.anchor 的優點是將目標檢測問題轉化為目標與anchor 的匹配問題,不必用目標檢測算法遍歷圖片,極大地縮短了檢測目標的時間,使得以YOLO 為代表的 Onestage 模型可以和Two-stage模型競爭.但使用anchor的深度學習模型也存在著兩個主要缺點,在使用anchor時不僅需要預先生成大量的anchor以便和圖片中的目標重疊,這導致只有少量的anchor與目標重疊,造成了正負樣本不均勻的問題[58],而且這些 anchor包含很多超參數,比如anchor的數量、尺寸等,使得訓練過程變得復雜.針對anchor-base模型存在的缺點,Law和Deng[59]提出一種新的One-stage 模型—CornerNet模型,該模型利用一對關鍵點—物體邊界框的左上角點和右下角點來檢測物體從而取代 anchor,CornerNet網絡模型的結構如圖6 所示.

CornerNet網絡模型首先用hourglass網絡提取圖片特征,hourglass網絡先將特征圖下采樣到一個很小的尺度,之后再進行上采樣還原特征圖的尺度,這樣可以獲取不同尺度下圖片所包含的信息,然后在hourglass 網絡之后連接兩個預測模塊,這兩個預測模塊分別預測邊界框的左上角點和右下角點,最后在每個預測模塊內部經過Corner pooling操作后生成 Heatmaps,Embeddings和Offects.

Heatmaps的作用是預測左上角點和右下角點的位置,其預測角點的損失函數為

其中,c 表示類別,heatmaps的尺寸是 H×W,pcij為 heatmaps中 c類物體在位置(i,j)得分,ycij表示對應位置的groundtruth,N 是目標數量,α,β是超參數,作者在實驗中設置α=2,β=4;Embeddings的作用是匹配同一個邊界框的左上角點和右下角點,其匹配原理是,如果左上角點和右下角點來自同一個邊界框,則它們的Embeddings之間的距離應該比較小,反之它們的Embeddings之間的距離應該比較大.Embeddings通過兩個損失函數來表示這兩種距離:

其中etk是目標k的左上角點,ebk是目標k的右下角點,Lpull表示屬于同一個邊界框的左上角點和右下角點之間的距離,Lpush表示屬于不同邊界框的左上角點和右下角點之間的距離,ek表 示 ebk和etk的平均值,Δ 在實驗中設置為1;Offset的作用是微調預測出的邊界框,因為對圖片進行全卷積操作之后,輸出的圖片尺寸會很小,因此,當將位置信息從熱力圖映射到輸入圖片時會存在精度損失,這部分損失用 ok表示:

圖6 CornerNet結構圖[59]Fig.6.CornerNet structure diagramt[59].

其中(xk,yk)表示角點 k的(x,y)坐標,得到ok之后,利用smooth L1損失函數監督學習該參數:

由于左上角點和右下角點不在物體內部,因此Law和Deng[59]提出corner pooling來確定左上角點和右下角點,corner pooling的原理是,利用圖片中的上邊界和左邊界的信息確定左上角點,利用圖片中的下邊界和右邊界確定右下角點.CornerNet在MSCOCO數據集上測試的平均精度為42.1%,超過了絕大部分One-stage模型 在MSCOCO數據集中的平均精度.

3.7 CenterNet網絡模型

雖然CornerNet網絡模型利用一對邊角點取代anchor提高了物體檢測的精度,由于CornerNet網絡模型中的邊角點不在物體內部,因此CornerNet網絡模型無法感知物體內部的信息,這其實也是大部分One-stage模型普遍存在的問題,而Two-stage模型可以感知物體內部的信息,因此Two-stage模型的準確率一般比One-stage模型的準確率高.針對CornerNet模型無法感知物體內部信息的缺點,Zhou等[60]提出CenterNet網絡模型,利用關鍵點估計找到物體的中心點并返回目標的尺寸、 3 D 位置、方向、甚至姿態等其他屬性,充分利用了物體內部的信息.Zhou等[60]在COCO數據集上對CenterNet網絡模型的速度和精度進行了測試,CenterNet網絡模型在Resnet-18網絡下取得了每秒142幀的檢測速度和28.1%的檢測精度,在DLA-34網絡下取得了每秒52幀的檢測速度和37.4% 的檢測精度,在Hourglass-104網絡下取得了每秒1.4 幀的檢測速度和45.1%的檢測精度,其精度可以媲美Two-stage網絡,實現了速度和精度的完美權衡.該模型的核心思想是,將圖片輸入到全卷積網絡中生成一個熱力圖,其中熱力圖的峰值對應目標的中心點,每個峰值點的圖像特征還可以預測邊界框的寬和高,返回目標的其他屬性.

CenterNet網絡在訓練過程中采用標準的密度監督學習訓練網絡,首先用預先標注好的目標真實中心點坐標作為標簽來預測目標的中心點坐標,目標真實中心點坐標的計算公式為

其中(x1,x2,y1,y2)表示目標邊界框的坐標,計算出真實坐標 p 之后,用下采樣后的替代p,其中 R 是下采樣因子,然后采用高斯核Yxyc=將關鍵點分布到特征圖上,其中 σp是目標尺寸自適應標準差,并用如下所示的損失函數使得預測的目標中心點坐標與真實值之間的距離最小:

其中 α,β 是損失函數的超參數,在實驗中作者設α=2,β=4;N 是圖片中關鍵點的數量.

由于在訓練過程中,用下采樣因子 R 對圖片進行了下采樣,把特征圖重新映射到原始圖片時會存在誤差,因此用local offect補償損失,并用L1 Loss訓練偏置值 Loff:

然后再利用得到的中心點坐標對每個目標的尺寸進行回歸,預測邊界框的尺寸信息:

其中,λsize=0.1,λoff=1;這樣用一個網絡就可以得到目標中心點的預測值、偏置和尺寸.

由于CenterNet較為簡單,同時兼顧了速度和精度,因此可以考慮將其應用到算力比較小的嵌入式平臺中.但CenterNet網絡也存在一定的缺點,由于它只檢測物體的中心點,因此當多個物體的中心點重疊時,CenterNet 只能檢測出一個中心點,會出現漏檢的情況.針對CenterNet的這一缺點,Duan等[61]用中心點、左上角點和右下角點三個關鍵點檢測物體,提高了物體的檢測精度,在MSCOCO數據集中的檢測精度達到了47.0%,但是檢測速度比較慢,檢測一張圖片需要340 ms[61].

相較于傳統方法,深度學習能夠從訓練數據中抽取出更加抽象的特征,而且隨著訓練數據的增加,模型的效果也顯著增加.但深度學習模型計算量大,難以調參,對設備的運算能力要求比較高,大多數深度學習模型很難滿足實時性要求.因此在實際應用中一般會對深度模型的結構做輕量化處理,犧牲一定的準確度來換取實時性,或者提高硬件的運算能力.

3.8 多目標跟蹤評價指標

由于深度學習算法的評價指標平均精度(mean average precision,mAP)屬于目標檢測領域的指標,只能用于衡量檢測目標的準確性,不能用來衡量多目標算法的跟蹤性能,因此為了比較以上跟蹤算法的性能,需要選擇相應的多目標跟蹤評價指標對其進行衡量.文獻[62]最早提出了多目標跟蹤準確度MOTA、多目標跟蹤精度MOTP 兩種評價指標,此外在MOT Challenge[63]多目標跟蹤評價平臺上也提供了部分評價指標,如跟蹤軌跡大致完整(大于80%)的比率MT、虛警數FP、丟失數FN 以及軌跡誤配數IDS.其中MOTA是最重要的一個指標,用來度量算法能否準確確定目標個數.

其中 f pt,mt,m met分 別表示在第 t 幀時的誤判數,丟失數,誤配數,gt表 示第 t 幀時跟蹤的目標數.MOTA的取值范圍是(—∞,1],僅當沒有錯誤的時候取1.

MOTP用來度量算法能否準確確定目標的位置,

本文從文獻中查找了相關算法的性能指標并以表格的形式列舉出來,其中 “↑”表示數值越大,性能越好.“↓”表示數值越小,性能一越好.“—”表示沒有找到相關指標,所以表中并未列出.不同算法之間的性能對比如表3所列.

表3 不同算法之間的性能對比Table 3.Performance comparison between different algorithms.

4 行人動力學模型

利用以上部分介紹的算法和模型,便可以得到行人 k 的邊界框坐標(xk1,yk1,xk2,yk2),對相應的坐標求平均值便可得到行人 k 的中心點坐標然后進一步用時間間隔 Δ t 記錄行人的中心點坐標,最后用相鄰兩次的坐標之差與 Δt 相除便可求得行人的速度信息.在得到行人的運動軌跡、速度等參數之后,便可對移動人群的運動模式進行分析,從中挖掘出群體行為的潛在規律[68].已有大量文獻建立了各種模型分析行人的動力學行為[69,70],本文介紹三種典型的流體動力學模型、社會力模型、啟發式模型,以及結合了多種模型的集成模型.

4.1 流體動力學模型

針對人群行為分析問題,Henderson[71-74]首先將氣體動力學和流體動力學模型應用到行人群體中.他通過測量各種人群的速度頻率分布發現行人在經過十字路口時大部分人為了躲避來往車輛會降低行走速度,而少部分人會加快行走速度.進一步的研究還表明經過十字路口時女性的速度比男性的速度要低.因此作者用性別和遇到的車輛數量對行人群體進行劃分,對女性和男性分別用二維氣體的麥克斯韋- 玻爾茲曼速度分布進行描述,得到了很好的擬合效果,但其存在一個動量守恒和能量守恒的假設條件.

后來,Helbing[75]舍棄了動量守恒和能量守恒的假設,用一個改進的類玻爾茲曼的氣體動力學模型來描述不同的行人群體.該模型首先將行人按照行走方向的不同劃分為不同的模式 μ,其次給不同模式的 μ 設置三個變量其中 x 表示模式 μ 所處的位置,表示模式 μ 的理想速度,vμ表示模式 μ 的實際速度,然后利用上述三個變量建立密度方程密度與 行人達到理想速度的趨勢[76,77]、行人間的相互作用、運動模式的改變、每單位時間內區域密度的增加或減少四個因素有關,下面具體介紹這四個因素對密度的影響.

2)行人之間的相互作用通過影響行人的行進速度進而影響行人密度,這一因素的影響可以用類玻爾茲曼混沌 假設[78,79]建模:

3)若行人的運動模式在運動過程中發生變化,則有

4)行人走出和進入某個區域對該區域在單位時間內密度的影響,可以用公式表示為

流體動力學模型從宏觀層面來描述行人,注重整個人群中密度和速度的平均值,可以很好地把握行人的整體行為特征,在解釋行人擁堵、人群分流等方面得到了廣泛的應用[80].但是其忽視了人群中個體與個體之間的相互作用,不能從微觀層面刻畫每個行人的行為特征,也無法解釋個體行為對群體行為的影響[81].

4.2 社會力模型

針對流體動力學模型無法從微觀層面上描述個體行為的問題,Johansson等[82]提出了社會力模型.社會力模型中的社會力由自驅動力、排斥力和吸引力三部分組成.

自驅動力的作用是驅使行人向目標方向前進.行人正常行走時,其實際速度 vα等于理想速度.如果受到障礙物的干擾,行人會調整自己的速度,但在自驅動力的作用下會產生一個指向的加速度,使得實際速度 vα向理想速度靠近,自驅動力的作用可以表示為

行人之間的排斥力用于減小其他行人對個體私人領域侵犯的影響.當個人的私人領域受到侵犯時,通常會感到不舒服,從而產生一個排斥力與其他行人保持一定距離.排斥力的大小取決于行人的密度和理想速度 v0,行人 α 在 接近陌生人 β 時,可以用下面的方程表示:

其中 rαβ=rα-rβ是行人 β 步距的數量級.

此外,當行人靠近障礙物時也會感覺到不舒服,行人與障礙物也會保持一定的距離以免自己受傷.這種與障礙物之間的排斥力可以描述為

行人有時也會被其他行人(朋友)或者障礙物所吸引.在地點 ri的 吸引力 fαi可以用單調遞增的吸引潛力表示:

上面所提到的力都是行走在運動方向上所能感知到的.除此之外,還應考慮在行人身后的弱影響 c,0 < c < 1.由此引入方向相關權重:

綜上,一個行人行為的排斥力和吸引力可以表示為:

行人所受的總社會力為

社會力模型為

其中fluctuations表示波動,代表偶然或者故意偏離了常規的運動模式.社會力模型不僅能解釋微觀層面上行人行為模式的改變,比如遇到障礙物行人會減慢速度等,而且可以從個體行為模式的改變推導出整個人群中壓力、密度等宏觀參數的變化.

4.3 行為啟發式模型

社會力模型雖然能夠解釋一部分人群行為,但是在實際的應用過程中會產生比較復雜的數學公式,參數很難校準[83].因此Moussa?d等[84]提出一種簡單的行為啟發式模型來捕捉人群行為中的潛在規律.該模型認為行人行為模式的改變是通過兩種簡單的認知過程完成的,并加入了行人的視覺信息[85-87].此外還考慮了極度擁擠情況下行人之間無意的碰撞行為.該模型主要包括視覺信息復現、認知過程、碰撞效應三部分.

首先對現實世界中行人所感受到的視覺信息進行復,視覺信息主要包括視野范圍和視野范圍內最近的障礙物到行人的距離兩部分.其中視野范圍用區間 [ - Φ,Φ]表示,其含義是以行人行走視線Hi所在方向為基準,向視線 Hi左右兩邊最大各傾斜Φ度.視野范圍內最近一個障礙物到行人 i 的距離用f 表示,如果行人i以速度在向目標方向前進的過程中不會與障礙物發生碰撞,則令 f 等于無窮大.其次構造兩個認知過程來模擬行人對視覺信息的處理,第一個認知過程用來確定行人在遇到障礙物之后所選擇的行走方向,第二個認知過程用來確定行人遇到障礙物之后應該調整為多大的速度.

經驗數據表明[87],行人在避開障礙物的前提下并不愿意在目的路線上偏離太多.因此,第一個認知過程是“行人在保證不與障礙物發生碰撞的前提下,選擇一條到目的地 Oi的最短路徑”,可以表示為:

其中 αdes表示行人遇到障礙物后所選擇的最短路徑方向,α0表示目的地的方向.

行人在發現障礙物之后,需要一個緩沖時間τ來防止與障礙物發生意外碰撞.由此第二個啟發式是“行人在所選擇的行走方向上與障礙物保持一定的距離”,可以表示為

其中 vdes(t)表 示實際速度,表示理想速度,dh表示最近的障礙物和行人的距離,τ 表示緩沖時間.

上述兩部分可以很好地模擬出稀疏場景下行人的行為,但在擁堵場景下需要考慮行人行人之間無意的碰撞.

其中 nij是從行人 i 指 向行人 j 的歸一化向量;dij表示行人之間的距離;ri,rj分 別表示行人 i,j的半徑;k g是系數;fij表示行人 i,j 之間的相互作用力.

啟發式模型相比于流體動力學模型和社會力模型,更加真實地模擬出了人們在遇到地震、恐怖襲擊、火災等緊急場景下的群體行為,且該模型對個體的運動軌跡和集體的運動模式的預測 與大量的經驗和實驗數據相一致.

4.4 集成模型

隨著研究的深入,人們發現單一的模型都存在一定的缺點,很難準確描述人類行為.比如啟發式模型雖然簡單高效,但它無法像社會力模型那樣描述來自其他行人或者障礙物的排斥力.同樣社會力模型中也不能運用啟發式模型中的視覺信息來調節行走方向.于是Porter等[88]提出了IM模型框架,該模型集成了社會力模型、行為啟發式模型以及材料科學理論,充分發揮了每個模型的優勢.

作者首先用社會力模型中的公式(24)式描述行人遇到障礙物后實際速度與理想速度的不同,用(25)式和(27)式描述行人之間、行人與障礙物之間的排斥力.其次用行為啟發式模型確定行人在遇到障礙物時所選擇的行走方向,公式如下:

其中 eα(t)表 示行人 α 的 目標方向,dmax表示行人α視線的最遠距離,r(e)表示距離行人最近的一個障礙物的距離,e0表 示目的地的方向,e 表示視野范圍內的方向.

作者最后將材料科學中“只考慮直接相鄰的分子,就可以很好地模擬分子間的相互作用”的理論應用到行人之間的交互中,只考慮在行人視野中的多個行人的影響,這樣就不需要考慮周圍所有的行人,大大簡化了運算量.

5 典型系統及應用

5.1 智能監控領域

現在市場上安裝的監控攝像機需要有專門的人員不斷地監察影像以應付可疑事件,但實際上這些攝像頭拍攝的視頻很少有人一直監察或者根本沒有人監察,導致攝像機沒有起到應有的作用[89].因此,如果計算機能自動監視它便可起到預警的作用,幫助人們提前發現異常情況.

在擁擠的環境(比如機場、車站、地鐵等)中經常發生行人丟失物品的事件,一旦丟失物品,就需要視頻調度員從大量的視頻中尋找,耗時且滯后.為了解決這一問題,Ferrando等[90]建立了一種從室內場景中檢測丟失物體的系統.該系統包括目標分割、目標的識別和跟蹤以及動作決策三個模塊.該系統首先將目標按照是行人還是物體、是動態還是靜態劃分為4 類,然后對動態的行人和物體進行持續跟蹤,最終物體處于靜止狀態時則被認定為丟失,及時發出警報,來協助工作人員進行處理.但該系統僅適合在室內場合使用,并且行人之間的遮擋時間過長會導致誤報,這時就需要人工來判別.

類似的系統還包括國內清華大學劉曉東等[91]開發的一套集運動目標檢測、目標跟蹤、目標分類一體的智能監控系統,湖南大學萬琴和王耀南[92]提出的一種針對固定監控場景的運動檢測與目標跟蹤方法.在國外,Nikouei等[93]把智能監控作為一種邊緣網絡服務,提出了一種輕量級CNN算法,擁有更高的運算速度和較少的內存使用,提高了行人檢測的實時性.Gajjar等[94]用K-均值算法來跟蹤監控視頻中的行人,首先在視頻中記錄與行人位置相關的HOG特征向量,然后用K-均值算法聚類得到了行人的軌跡.

5.2 擁堵人群分析

人群踩踏是擁堵人群中最具災難性的事件之一[95].當聚集在一個地點的人群密度過高時,人與人之間不可避免地會發生身體接觸,此時一個行人對其周圍人的作用力會像水紋一樣不斷向外傳播,并與其他各個方向不同大小的力相互疊加起來共同作用在人群中.這些合力將人們在人潮中推來推去,同時由于人群密度的增加,人群之間的溫度也隨之升高.擁擠的空間加上悶熱的環境會讓人產生頭暈、乏力等癥狀.如果此時有人不幸跌倒,那么在多米諾骨牌效應的作用下會引發一系列連鎖反應—周圍的人也相繼跌倒[96],從而引發大規模的踩踏傷亡事件.擁堵人群的安全問題在應急管理、消防安全、建筑設計等領域都有著重要意義[97].

然而行人跟蹤領域長期缺乏帶注釋的視頻數據集,很難用計算機視覺的方法對其進行分析.直到最近Zawbaa等[98]利用HUER數據集,對6個不同的朝圣地點進行了建模,可以實現在不同的朝圣視頻場景中對儀式地點進行分類.該系統包括預處理、分割、特征提取和位置分類四個階段.將視頻幀作為輸入輸入到k近鄰(KNN)、人工神經網絡(ANN)和支持向量機(SVM)分類器中.該系統普遍提高了六個朝覲儀式的識別準確率,其準確率超過90%.雖然這個系統在識別朝覲儀式上有更好的準確性,但還不足以對踩踏事件作出預警.

針對以上問題,Helbing等[99]通過對擁堵人群中密度、速度、壓力等參數的分析,發現當人群中的壓力是導致踩踏事件的關鍵因素,一旦壓力超過0.02 則踩踏事件不可避免,由此提供了一個踩踏事件的預警機制.在實際生活中,踩踏事件多由突發事件引起,Zhao等[100]通過對由突發事件的研究發現,在突發事件發生之后人們會爭先恐后地往出口方向逃脫,這造成出口區域附近人員密度極高,人與人之間的擁擠程度加深,減緩了人們的逃離速度.針對這一現象,Zhao等[100]在出口處設置類似面板形狀的障礙物引導行人分流,降低出口區域的人群密度,并通過實驗表明該方法可以提高疏散效率,減少人員傷亡.因此對擁堵人群設計有效的疏散方法,有助于減少人群中由于恐慌和從眾行為所造成的經濟損失和人員傷亡,對改進應對突發事件的策略具有十分重要的意義[101].

5.3 異常行為分析

在公共安全領域,需要及時發現危險分子的異常行為,確保人民群眾的生命和財產安全.Yogameena和Nagananthini[102]利用投影和骨架化方法對個體的正常和異常行為進行分類,該系統主要包括運動檢測與跟蹤、行為分析,它可以檢測到人類走路、跑步、打架、彎腰等異常行為,準確率高.但是適合稀疏人群,在擁堵人群中效果不佳.

隨著我國老齡化人口越來越嚴重,如何照顧好老人、防止老人摔倒是很重要的問題.Miaou等[103]認為約70%的意外摔倒是可以預防的,并提出了一種結合個人信息(如年齡、性別、體重)的全攝像頭來檢測老年人是否摔倒.攝像機的圖像實時傳輸到一臺服務器上,對前景中感興趣的對象進行背景減除,然后系統使用連接組件標記來獲取每個對象的面積、高度和寬度,設置一個簡單的判定跌落閾值來確定一個人是否跌落.此外,馬里蘭大學的計算機視覺實驗室利用對灰度圖像中的人體建模,同時根據手、腿及頭部等部位的動作的分析與跟蹤,能夠實現對多個行人進行檢測與跟蹤[104].Kocabas等[105]提出了一種多人姿態估計框架,該框架將多任務模型與殘差網絡相結合,可以聯合處理人體檢測、關鍵點檢測和姿態估計問題,作者在COCO關鍵點數據集上測試的檢測速度是23幀每秒.

6 結 論

行人跟蹤是計算機視覺領域中的難點和熱點問題,同時也是人類行為動力學中一個難點問題.雖然之前的工作提出了大量再現人群行為的模型,但由于缺乏對現有模型進行驗證或校準的公開數據集,使得這些模型之間沒有一個很好的評判標準.而且目前關于大規模人群行為的分析大都停留在統計和宏觀層面上,如基于手機數據對受地震、極端氣候影響的人口遷移模式[106-108]以及對個人旅行模式的時空分布的研究[109,110];基于社交網絡軟件對自然災害發生前后社交網絡的結構及其演化的研究[111],對男同這一特殊群體的行為研究[112];基于傳感器的應急管理救援研究等[113],但微觀層面上的研究極度缺乏.近年來,隨著深度學習技術在計算機視覺領域的興起,已有部分文獻運用深度學習技術分析人群中的異常行為、估計行人的運動姿態,且取得了良好的效果.這使得人們應用開源分析平臺建立大規模標準數據集成為了可能,并為在微觀和中觀尺度下對大規模人群行為分析提供了一個新思路.

猜你喜歡
行人卷積算法
哪種算法簡便
基于3D-Winograd的快速卷積算法設計及FPGA實現
毒舌出沒,行人避讓
卷積神經網絡的分析與設計
Travellng thg World Full—time for Rree
從濾波器理解卷積
路不為尋找者而設
進位加法的兩種算法
根據問題 確定算法
基于傅里葉域卷積表示的目標跟蹤算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合