馬 晴,康 宇,,宋衛(wèi)國*,曹 洋
(1.中國科學技術大學火災科學國家重點實驗室,合肥,230026;2.中國科學技術大學自動化系,合肥,230026)
在行人疏散動力學研究中,基本圖是行人動力學分析中一項重要的工具。研究人員在臨界密度、最大流量、行人自由速度等方面都有不同的研究成果。Weidmann[1]通過行人運動基本圖研究發(fā)現(xiàn),行人自由速度隨密度增大而減小,在行人密度達到5.4人/m2時速度為0,臨界密度為1.55人/m2時最大流量1.15人/m/s;但Helbing等[2]通過分析2006年麥加朝圣踩踏事故的行人運動基本圖發(fā)現(xiàn),在極高密度的情況下(10人/m2),行人運動速度不為0,行人仍然可以緩慢行走,且行人密度出現(xiàn)第二峰值,與前人的研究結果不同;Armin Seyfrid課題組[3]在比較了不同文化背景下行人運動基本圖后得到如下結論,相同密度下印度人的行走速度大于德國人;Cao等[4]分析了不同年齡人群單列實驗的基本圖發(fā)現(xiàn),老年人的最大流量大于混合人群的最大流量。研究人員通過分析基本圖獲得了很多重要的行人動力學規(guī)律,因此快速準確的獲得基本圖有助于行人動力學研究。
目前主流獲得基本圖的方法是對視頻中的行人進行軌跡跟蹤,再計算得到基本圖。其基本思想是,區(qū)分前景和背景,給定特定顏色閾值建立參考模型來提取行人運動軌跡。這種使用RGB閾值的方法雖然可以較準確的提取前景中的行人,但在行人軌跡跟蹤過程中會出現(xiàn)目標丟失現(xiàn)象。
隨著深度學習的發(fā)展,針對人群計數(shù)問題,研究者們提出了不同的網絡結構[5-7],這些網絡的特點是采用了多列結構,即網絡中包含幾個子網絡,子網絡之間的卷積核大小不同,不同大小的卷積核可以提取不同尺寸的行人信息。網絡都是在GPU上加速運行的,程序運行速度快。考慮到實時獲得行人動力學信息的任務,我們提出了一種深度基本圖網絡。
我們的深度基本圖網絡結構如圖1所示,網絡由多尺度遞歸卷積神經網絡(MSR-Net)和光流模塊組成。MSR-Net用于獲得行人密度圖,MSR-Net使用多列結構,但將輸出改為行人密度圖以獲得行人空間信息,便于進一步應用于異常檢測。光流模塊(OF-Net)對運動目標進行檢測,可以得到行人的速度圖。我們的光流模塊選用LK稀疏光流法,稀疏光流運算量小、速度快,適用于我們的實時任務。通過密度圖和速度圖可以獲得基本圖。同時,通過速度圖和密度圖的空間對應關系還可以實現(xiàn)異常檢測。
圖1 深度基本圖網絡結構Fig. 1 The structure of the proposed deep fundamental diagram network
我們提出的深度基本圖網絡由兩部分組成,一部分是用于獲得行人密度圖的多尺度網絡(MSR-Net),另一部分是用于獲得行人速度圖的光流模塊。下面詳細介紹這兩部分如何獲得行人密度和速度以及通過二者空間對應關系獲得基本圖的方法。
選取2組公開實驗(UNI_CORR_500_01、UNI_CORR_500_02)[8]制作數(shù)據(jù)集,共有6 682張有效幀圖像,隨機選取500張圖片作為測試集,剩余圖片作為訓練集。數(shù)據(jù)集的質量直接影響訓練效果,為了獲得密度圖,手工標記了6 682張圖像上所有行人頭部的位置pi,采用2D高斯核函數(shù)生成密度圖作為數(shù)據(jù)集的標簽:
(1)
其中,n表示一張圖像上標記的行人總數(shù),N表示高斯核,σ表示方差。密度圖的生成過程如圖2所示,每個點經過高斯核變換之后的像素累加值為1,因此圖2中所有像素值相加值等于實際人數(shù)C,即:
圖2 行人密度圖生成過程Fig. 2 Crowd density map generation process
(2)
對全部6 682張帶有行人頭部標記的圖像進行高斯變換,得到相應的人群密度圖作為訓練和測試標簽。
考慮到不同試驗場景下拍攝的行人頭部大小不一致的問題,我們需要一種能夠提取不同尺度信息的網絡結構。多列卷積神經網絡(MCNN)[6]和多尺度遞歸卷積神經網絡(MRCNN)[7]都提出了多列結構用于學習多尺度信息,多列結構由3個子網絡組成,每個子網絡中卷積核大小不同,在卷積運算中感受野大小不同,大的卷積核可以提取圖片中大尺度紋理信息,小的卷積核可以提取到細節(jié)紋理信息,網絡的輸出都是行人數(shù)量。因此,我們提出了MSR-Net來提取多尺度信息,網絡結構如圖3所示。我們的網絡保留了多列結構,多列結構中三個子網絡相互獨立,卷積核大小不同,用于提取不同大小頭部的紋理特征。網絡的融合部分(Concat)將三個子網絡提取的行人不同尺度信息進行融合,相互促進和學習,讓我們的網絡能夠提取大尺寸頭部的細節(jié)特征和小尺寸頭部的全局特征。遞歸卷積部分參數(shù)共享,在增大感受野的同時既不會丟失像素信息,又不會增加網絡參數(shù)。這部分的輸入是多尺度融合的輸出,由于擴大了感受野,就有更多的信息交互,增加了網絡表征能力。我們的網絡將輸出改為行人密度圖,行人密度圖由遞歸卷積部分輸出特征,通過一個卷積核大小為1×1的卷積層映射而來。我們的網絡所有池化層采用最大池化,激活函數(shù)選用ReLu。
圖3 多尺度遞歸卷積神經網絡(MSR-Net)結構Fig. 3 The struct of MSR-Net
本文利用Caffe深度學習框架[9]對網絡模型進行微調。我們的方法已經在MATLAB中實現(xiàn),在3.60 GHz Intel(R) Core (TM) i7 CPU, 16G RAM的PC上運行。CNN是在GPU上運行的,我們使用NVIDIA GTX 1050ti GPU。運行系統(tǒng)是Ubuntu 16.04 LTS。
網絡訓練需要一個初始化權值,我們的網絡使用標準差為0.01的高斯分布初始化權重,基本學習率1e-5,動量參數(shù)為0.9,衰減率0.000 5,選用Adam優(yōu)化參數(shù)。我們使用1.1.1節(jié)制作的密度圖來微調預訓練好的網絡,直到損失函數(shù)值不再降低就停止訓練。
我們的網絡輸出是密度圖,采用歐式距離作為損失函數(shù),計算網絡估計結果和真實結果間的差距,函數(shù)定義為:
(3)
其中,N是訓練圖像的個數(shù),Xi是輸入圖像,F(xiàn)d(Xi;Θd)表示通過MSR-Net生成的人群密度圖,Di表示真實密度圖,LD(Θ)表示網絡估計得到的密度圖與真實密度圖之間的損失值。
在我們的光流模塊中,選擇LK光流算法,也稱為稀疏光流法[10],與稠密光流相比計算量更小,速度更快。其中運動場景可描述為:
(4)
IxVx+IyVy=-It
(5)
假設相鄰兩幀圖像位移很小,局部向量(Vx,Vy)必須滿足:
Ix(qi)Vx+Iy(qi)Vy+It(qi)=0
i=1, 2, 3…,n
(6)
其中,qi為鄰域內像素的個數(shù)。Ix(qi),Iy(qi),It(qi)是當前時刻圖像在點qi處對x,y位置和時間t的偏導數(shù)。以矩陣形式表示為:
Av=b
(7)
v=(ATA)-1ATb
(8)
在真實場景中的真實移動距離轉換如下:
(9)
其中,d是真實實驗場景中長度L包含的像素個數(shù),x是每個像素移動的距離。每個像素的真實速度為:
(10)
其中,p是幀率。
在1.1我們的網絡學習了輸入圖像和密度圖之間的映射關系,每輸入一幀圖像就可以得到這一幀的密度圖。密度圖的像素和等于行人數(shù)量,測量區(qū)域的密度可表示為:
(11)
其中d(x,y)為測量區(qū)域內(x,y)位置的像素值。N是測量區(qū)域內像素個數(shù)總和。A是測量區(qū)域的面積。這樣我們就可以得到每一幀的密度,進一步得到時間-密度圖。相對于軌跡跟蹤的方法,每輸入一幀圖像我們的網絡就可以輸出這一幀的密度圖并得到測量區(qū)域的密度,具有實時性,對于行人動力學分析更具有價值。
輸入的圖片經光流模塊處理后,得到一張速度圖,每個像素值表示該像素真實的位移大小和方向。由于光流模塊會提取到行人走路時快速擺手,對真實速度的計算產生干擾,我們需要利用1.3.1的密度圖消除速度計算偏差。
首先,利用密度圖對速度圖的計算偏差進行校正。在行人頭部的位置,密度圖的像素值非零,其他位置像素值為零,可以說密度圖提供了行人的定位。如圖4(a),密度圖和速度圖都在同一坐標系下,存在空間對應關系。如圖4(b),上下為同一幀的密度圖和速度圖,同時遍歷兩張圖的所有像素,密度圖像素值為0的點,速度圖的同一坐標位置像素值也置為0;密度圖像素值非零的點,速度圖的同一坐標像素值保持不變,這樣我們可以得到一張校正后的速度圖。
圖4 (a)密度圖和速度圖的空間對應關系;(b)通過密度圖和速度圖的空間對應關系校正原有速度圖,得到新的速度圖。Fig. 4 (a) Correspondence between density map and velocity map; (b) The new velocity map obtained by correcting the original velocity map through the spatial correspondence between the density map and the velocity map.
然后,在這張新的速度圖上,我們可以由以下公式得到被測區(qū)域內行人的平均速度:
(12)
其中,v(x,y)為測量區(qū)域內(x,y)位置的像素值。M是測量區(qū)域中值不為0的像素個數(shù)。因此,通過密度和速度兩個重要的行人動力學信息,我們可以得到基本圖。
我們使用的稀疏光流模塊計算量小、運行速度快,可對每幀圖像進行處理,無需提取圖像的前景和背景,不需要跟蹤每個行人就可以得到某一幀的行人速度,對行人動力學的實時分析具有實際意義。
本文用公開實驗數(shù)據(jù)集UNI_CORR_500[8]來驗證我們的方法,其中前兩組實驗被用來制作訓練集,第三到七組實驗作為驗證集。所有視頻的幀率為25 fps,第三到第七組實驗視頻分別有4 047、4 083、3 943、4 270、5 128幀有效幀(有效幀表示圖像上有行人)。每個實驗都包含了軌跡跟蹤文件,可作為真實值與我們的結果進行對比。圖5和表1為該實驗數(shù)據(jù)集的場景設置和行人進入寬度設置。
圖5 試驗場景設置。區(qū)域A是我們指定的測量區(qū)域。該試驗場景寬5 m,長18 m,行人交替從兩邊進入。Fig. 5 Experiment setup. Area A is our designated area. A five-meter-wide and 18-meter-long corridor was constructed from exhibition walls, Pedestrians are sent alternately from both sides.
表1 實驗設置
為了證明我們的深度基本圖網絡適用于不同場景,我們選擇的實驗數(shù)據(jù)中,03~05組為直通道實驗,06和07為瓶頸實驗。
在我們的實驗中,用平均絕對值誤差(MAE)和均方誤差(MSE)來評價密度圖和速度圖估計的準確性和魯棒性。平均絕對值誤差(MAE)表示如下:
(13)
均方誤差表示如下:
(14)
MSE越小表示我們的方法魯棒性越好。
密度圖在公開實驗上的定量結果和時間-密度關系如表2和圖6所示,無論是直通道實驗還是瓶頸實驗,我們的密度平均誤差為0.09,也就是說每平方米相差人數(shù)不到0.1人,與真實值相差不大。從基本圖來看,通過我們提出的方法得到的基本圖與軌跡跟蹤方法得到的基本圖變化趨勢一致,可以描述行人運動整體規(guī)律。
表2 行人密度(1/m2)和速度(m/s)的定量結果
圖6 (a),(b),(c),(d),(e)是第3~7組實驗中密度隨時間的變化圖。藍點線表示軌跡文件得到的地面真值密度,紅實線表示CNN得到的密度。Fig. 6 (a), (b), (c), (d), (e) are the time evolution of the density of the third to seventh video. The blue dot line represents the ground truth density obtained from the trajectory file, the red line represents the density obtained from CNN.
速度圖在公開實驗上的定量結果和時間-速度關系如表2和圖7所示。從定量結果來看我們的方法平均誤差為0.04,從時間-速度基本圖來看,我們的結果更平滑,波動更小,整體趨勢與軌跡跟蹤法得到的基本圖保持一致,可以很好的描述行人運動規(guī)律。與密度的MAE相比,速度的MAE值較大,這是由于實驗在開始和結束時亮度非恒定,受亮度影響,速度圖的魯棒性波動較大。
圖7 (a),(b),(c),(d),(e)是第3~7組實驗中速度隨時間的變化圖。藍點線表示從軌跡文件計算出的行人速度,紅實線表示從我們的方法中得到的行人速度。Fig. 7 (a), (b), (c), (d), (e) are the time evolution of the velocity of the third to seventh video. The blue dot line represents the ground truth speed calculated from trajectory file, The red line represents the speed obtained from our method.
表3是獲得一幀行人密度和速度所需的時間。因為并行計算,通過MSR-Net獲得行人密度所需時間極短。獲得一幀行人密度需要進行一次偏差校正,運行時間比獲得行人密度的時間稍長,但也不到0.5 s,我們的方法可以直接得到每一幀行人的密度和速度,說明我們的方法可以用于實時獲得基本圖,對行人動力學實時分析有現(xiàn)實意義。由于我們方法的實時性,在獲得基本圖的同時可以通過空間對應關系檢測出速度和方向異常的行人(如圖8所示),我們的方法對行人動力學分析具有很好的應用前景。
表3 獲得行人密度和速度所運行的時間(s)
圖8 十二幀連續(xù)圖像。異常行人(箭頭處)用紅色標記。Fig. 8 12 consecutive frames. Abnormal pedestrian where the arrows point at is marked in red.
本文提出了一種實時獲得基本圖的方法。利用多尺度遞歸卷積神經網絡對行人密度進行估計,通過光流模塊獲得行人速度。密度圖提供行人密度和行人位置信息,速度圖包含行人移動速度和方向。通過密度圖和速度圖的空間對應關系,我們可以獲得基本圖。公開數(shù)據(jù)集的實驗表明,我們的方法與軌跡跟蹤的方法得到了一致的基本圖。我們的方法可以對每一幀圖像進行處理并得到這一幀的行人密度和速度,所需的運行時間不足0.5 s,具有實時性。同時,我們的方法可以檢測出異常的行人,對行人動力學分析具有很好的應用價值。