于繼宇,李 憲,2,楊明業(yè)
(1.青島大學(xué) 自動化學(xué)院,山東 青島 266071;2.青島大學(xué) 未來研究院,山東 青島 266071)
行人的軌跡信息在無人駕駛和無人配送領(lǐng)域是一項重要的參考數(shù)據(jù)。在行人密集的區(qū)域經(jīng)常發(fā)生人流堵塞的現(xiàn)象,繼而導(dǎo)致無人駕駛汽車或無人配送機器人長時間在行進路徑上停滯,為此所設(shè)計的一種基于多目標檢測與卡爾曼濾波的行人短時社交沖突預(yù)測模型能夠提前預(yù)測出堵塞區(qū)域,有效解決上述問題。
目前對于行人軌跡預(yù)測的研究領(lǐng)域中主要存在深度學(xué)習(xí)類和模型類兩種不同的研究方法,前者較為典型的代表有S-LSTM[1]和S-GAN[2],這類方法預(yù)測精度高,能在一定程度上描述行人間的交互情況,但網(wǎng)絡(luò)運行速度慢,時間性能差,同時引入的注意力機制通常以行人間的距離作為生成規(guī)避動作的判定條件,缺少對靜態(tài)目標與并行目標的檢測,誤判率高。模型類方法主要有隱馬爾科夫模型[3]、卡爾曼濾波[4,5]等。隱馬爾可夫模型是一種基于概率統(tǒng)計的模型,受目標的運動狀態(tài)影響大,從而導(dǎo)致其預(yù)測的準確性偏低??柭鼮V波通過上一幀的軌跡點與當(dāng)前幀的軌跡點對下一幀的軌跡點進行估計,在預(yù)測精度方面,該方法要低于深度學(xué)習(xí)類方法,但所得數(shù)據(jù)的時效性高,滿足動態(tài)目標運動狀態(tài)變化程度高的場景。同時,上述兩種類型的方法都僅僅是針對行人的軌跡點進行預(yù)測,無法實現(xiàn)對于行人密集區(qū)域內(nèi)即將出現(xiàn)的社交沖突的預(yù)測。
在對行人軌跡進行預(yù)測之前需要先對視頻內(nèi)的圖像進行行人檢測,常用的檢測算法有Faster-R-CNN,SSD[6]與YOLO[7]類。Faster-R-CNN針對其上一代算法Fast-R-CNN[8]進行了改進,運行速度更快,但Two-stage類算法都用區(qū)域來辨別目標物體而非一次性瀏覽所有圖像,從而導(dǎo)致系統(tǒng)的性能表現(xiàn)取決于前面步驟的表現(xiàn)水平。SSD算法對于每個Feature map cell都使用了多種橫縱比的Default boxes,所以,算法對于不同橫縱比目標的檢測都有效,但對小目標的檢測能力要低于Faster-R-CNN與YOLOv3[9];運行速度要遠高于Faster-R-CNN,但低于YOLOv3。
綜上,針對現(xiàn)存問題設(shè)計了一種基于YOLOv3檢測與卡爾曼濾波估計的行人間短時社交沖突預(yù)測系統(tǒng),補充了模型類與深度學(xué)習(xí)類行人軌跡預(yù)測算法未對人—人間潛在的沖突狀態(tài)進行檢測的空缺,具有實時性高、誤判率低的優(yōu)點,適用于人流密集情況下的社交沖突預(yù)測。
YOLOv3檢測算法屬于One-stage類算法,相比Two-stage類算法而言計算量更小,速度更快,在行人檢測領(lǐng)域能夠取得良好的效果,所以,選擇該算法網(wǎng)絡(luò)所輸出的檢測框數(shù)據(jù)作為卡爾曼濾波器的輸入。
1.1.1 網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)中將YOLOv2[10]時期的Darknet—19換成了Darknet—53,加深了網(wǎng)絡(luò)層數(shù),提升了特征提取的效果,同時新增了Resnet中的跨層加和操作,輸入信號可以從任意低層直接傳播到高層,可以在一定程度上解決網(wǎng)絡(luò)退化的問題。如圖1所示。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)
如圖1所示,在YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)中只有卷積層,不再設(shè)置全連接層,可以通過調(diào)節(jié)卷積的步長來調(diào)整輸出特征圖的尺寸,輸入視頻幀的規(guī)格設(shè)置為416×416。特征圖的輸出尺寸為
N×N×(m×(4+1+80))
(1)
式中N×N為對輸入圖片設(shè)置的網(wǎng)格數(shù),m為Anchor box的數(shù)量,設(shè)置為3,每個Anchor box包含4維Bounding box數(shù)據(jù)tx,ty,tw,th,1維Bounding box的置信度,80維目標種類數(shù)。第91層特征圖上采樣,與第36層特征圖做卷積融合,得到相對輸入圖像8倍下采樣的Feature map 3,它的感受野最小,適合檢測小尺寸的對象,能夠滿足所設(shè)計的系統(tǒng)中由于距攝像頭距行人較遠導(dǎo)致的目標面積過小的問題。
1.1.2 輸出數(shù)據(jù)處理
對檢測框數(shù)據(jù)進行解碼的過程如圖2所示。
圖2 行人目標檢測框各項數(shù)據(jù)的計算方式
σ(tx),σ(ty)為回歸的檢測框中心點對于其所在網(wǎng)格的左上角坐標的偏移量,σ為sigmoid激活函數(shù),pw,ph為先驗框的寬、高,通過圖中公式計算出實際檢測框的寬高bw,bh。
1.2.1 數(shù)據(jù)格式轉(zhuǎn)換
將YOLOv3輸出的原數(shù)據(jù)格式轉(zhuǎn)換為:檢測框中心點x坐標cx,y坐標cy,高寬比r,高度bh,并將其各自的變化速度分別設(shè)置為vx,vy,vr,vh(初始值為0)。將以上數(shù)據(jù)作為卡爾曼濾波器狀態(tài)矩陣的輸入
M=[cxcyrbhvxvyvrvh]
(2)
1.2.2 基于卡爾曼濾波器的行人位置估計
卡爾曼濾波器對行人數(shù)據(jù)的處理過程如下:
1)將上一時刻的狀態(tài)向量M(t-1)(t≥2)送入系統(tǒng)狀態(tài)方程中,得到當(dāng)前時刻下的狀態(tài)估計向量M(t,t-1),同時計算出此過程所產(chǎn)生的協(xié)方差矩陣F(t,t-1),有
M(t,t-1)=T(t)M(t-1)
(3)
F(t,t-1)=T(t)F(t-1)TT(t)
(4)
式中T(t)為8×8維的狀態(tài)轉(zhuǎn)移矩陣,用來反映狀態(tài)向量的變化趨勢,F(t-1)為初始狀態(tài)下的協(xié)方差矩陣
2)計算當(dāng)前時刻下的狀態(tài)估計向量M(t,t-1)的觀向量Z(t,t-1)及協(xié)方差矩陣F(t,t-1)的觀測矩陣S(t,t-1),有
Z(t,t-1)=G(t)M(t,t-1)
(5)
S(t,t-1)=G(t)F(t,t-1)GT(t)
(6)
式中G(t)為4×8維的觀測矩陣,用以從狀態(tài)向量與協(xié)方差矩陣中提取觀測值。
3)計算當(dāng)前時刻下的卡爾曼濾波增益K(t,t-1)為
K(t,t-1)=F(t,t-1)GT(t)S-1(t,t-1)
(7)
4)根據(jù)當(dāng)前時刻下的觀測向量Z(t)來校正M(t,t-1),并得到當(dāng)前時刻下的最優(yōu)估計向量M(t),有
C(t)=Z(t)-Z(t,t-1)
(8)
M(t)=M(t,t-1)+K(t,t-1)C(t)
(9)
5)通過狀態(tài)轉(zhuǎn)移矩陣T(t)與當(dāng)前時刻下的最優(yōu)估計向量M(t)計算出下一時刻的預(yù)測向量M(t+1,t)為
M(t+1,t)=T(t)M(t)
(10)
在上述步驟(1)~步驟(5)的算法執(zhí)行過程中,將第5步迭代n次可得到由當(dāng)前幀與上一幀的行人軌跡數(shù)據(jù)所預(yù)測的第n幀的行人軌跡數(shù)據(jù),取n為25。
1.3.1 行人軌跡直線方程
由式(3)~式(9)可知,當(dāng)計算出狀態(tài)向量M(t)時,其后4維變量vx,vy,vr,vh分別被賦予了前4維變量的變化速度:即在1幀內(nèi)cx,cy,r,bh的數(shù)值變化量,所以在對式(10)進行迭代時得到的軌跡坐標點cxi,cyi(i∈[0~24])呈線性關(guān)系,故取當(dāng)前幀的軌跡坐標與第n幀的軌跡坐標可求得單個行人的軌跡直線方程
y=kx+b
(11)
k=(cy(24)-cy(0))/(cx(24)-cx(0))
(12)
b=cy(0)-kcx(0)
(13)
1.3.2 靜態(tài)檢測
為優(yōu)化系統(tǒng)在判定行人軌跡沖突點時的運算量,先排除視頻幀內(nèi)靜止的行人目標。當(dāng)行人目標的移動速度過小時,會使得狀態(tài)向量M(t)中的vx,vy,vr,vh的數(shù)值過低,從而導(dǎo)致迭代n次所得的行人軌跡終點與起始點間的長度遠小于正常移動速度下的軌跡長度,故設(shè)行人軌跡長度d與其當(dāng)前幀下的狀態(tài)關(guān)系為
(14)
即狀態(tài)位置0時判定靜止,dmin設(shè)置為Bounding box對角線長度的1/8。靜態(tài)檢測實際效果如圖3。
圖3 靜態(tài)檢測實際效果
1.3.3 用于各類動態(tài)檢測的數(shù)據(jù)
當(dāng)視頻幀內(nèi)檢測到的行人個數(shù)n大于等于2時,對其數(shù)據(jù)進行兩兩排列組合,設(shè)排列組合的結(jié)果所構(gòu)成的集合為H,?h∈H,在每組組合中h內(nèi),設(shè)行人1的起始點坐標為(ax1,ay1),預(yù)測終點坐標為(bx1,by1)
h=hahb={[cxacyarahavxavyavravha]
[cxbcybrbhbvxbvybvrbvhb]}
(15)
行人2的起始點坐標為(ax2,ay2),預(yù)測終點坐標為(bx2,by2);設(shè)直線1的斜率為k1,截距為b1,直線2的斜率為k2,截距為b2,則每個組合中兩直線的交點(x1,y1)為
(16)
交點到行人1起始點的距離d1為
(17)
依次可求得交點到行人1終點的距離d2;交點到行人2起始點的距離d3;交點到行人2終點的距離d4;以及行人1起始點到行人2起始點的距離d5;行人1終點到行人2終點的距離d6;行人1的軌跡長度d7;行人2的軌跡長度d8,對應(yīng)關(guān)系如圖4所示。
圖4 行人軌跡數(shù)據(jù)的對應(yīng)位置
1.3.4 并行檢測
為進一步優(yōu)化系統(tǒng)的運算量,在沖突點判定前先進行并行狀態(tài)檢測,具體過程如下:對任一組合h中行人1起始點到行人2起始點的距離d5取3幀內(nèi)的數(shù)據(jù),設(shè)為U
U={b5(n-2)b5(n-1)b5(n)},n≥3
(18)
3幀內(nèi)行人間距離的變化幅度用方差來描述
(19)
表1 出現(xiàn)并行狀態(tài)時U內(nèi)行人間距離的方差
1.3.5 沖突狀態(tài)檢測
當(dāng)每個組合內(nèi)的2個行人都不處于靜止狀態(tài)并且互相不構(gòu)成并行狀態(tài)時,對其進行沖突狀態(tài)檢測。為排除行人軌跡直線延長線的干擾,在進行沖突狀態(tài)檢測前先設(shè)置判定的前提條件
(20)
圖5 無效交點
將沖突狀態(tài)的檢測分為以下3種情況進行處理:
1)每組h內(nèi)兩條軌跡直線的交點同時在行人1與行人2的軌跡線段內(nèi),即d1 L1/v1=L2/v2 (21) 式中L1與L2為行人軌跡線段的長度,V1與V2為行人當(dāng)前時刻下的行進速度。 故對2條軌跡線段按相同的比例s取對應(yīng)的長度時,行人1與行人2行進到所設(shè)長度的2個節(jié)點處所需的時間tx相同 tx=sL1/v1=sL2/v2 (22) 圖6 情況(1)原理圖與實際效果 綜上,若選取交點到起始點間的距離占軌跡線段長度的比例較大的行人軌跡作為參考系,會導(dǎo)致所求的tx時刻下的軌跡點的位置超過交點Pc,到達點B,從而錯過沖突點產(chǎn)生前的場景,無法進行判定閾值的設(shè)定等后續(xù)操作。 當(dāng)兩條軌跡直線的交點到各自起始點間的距離占各自軌跡線段長度的比例不同時 (23) 式中Lx為tx時刻下每組內(nèi)行人1與行人2之間的距離。 行人相遇時的幾種常見情況如圖7所示,因為dx3>dx1>dx2,所以,dx3的判定寬容度最高,故將其作為軌跡沖突點的判定閾值,即當(dāng)Lx≤dx3時將交點判定為社交沖突點。 圖7 行人相遇時的幾種常見情形 當(dāng)兩條軌跡直線的交點到各自起始點間的距離占各自軌跡線段長度的比例相同時,易得此時交點為社交沖突點。 2)每組內(nèi)兩條軌跡直線的交點在行人1或行人2的軌跡線段內(nèi),此時各項數(shù)據(jù)對應(yīng)關(guān)系的限制條件為 (24) 同樣選取交點到起始點間的距離占軌跡線段長度的比例較小的行人軌跡作為參考系,如圖8(a)所示。tx時刻下每組內(nèi)行人1與行人2之間距離Lx的求解方法與情況(1)相同,當(dāng)Lx≤dx3時判定為沖突點。 圖8 情況(2)的原理圖與實際效果 3)每組內(nèi)兩條軌跡直線的交點不在行人1與行人2的軌跡線段內(nèi)時,各項數(shù)據(jù)對應(yīng)關(guān)系的限制條件為 (25) 前兩個限制條件是為了排除圖9(a)中點Pc2所示的無效交點(交點與軌跡終點的距離大于軌跡線段的長度,預(yù)測可信度低)。 圖9 情況(3)的原理圖實際效果 實驗環(huán)境為Windows10系統(tǒng),NVIDIA GTX 965M GPU,Intel Core i7—6700HQ CPU,編程語言為Python3.7.4,深度學(xué)習(xí)框架為Tensorflow-gpu1.14.0,運行環(huán)境為CUDA10.0。為驗證所設(shè)計系統(tǒng)的預(yù)測和判定效果,選取校內(nèi)4處人流量密集的場所作為實驗場地,拍攝器材為Nikon Z6,視頻的像素規(guī)格為4 096×2 160,幀率為每秒30幀。此次實驗選取并行狀態(tài)與沖突狀態(tài)作為待檢測狀態(tài),其中并行狀態(tài)與沖突狀態(tài)判定成功的標準分別為: 1)對視頻素材內(nèi)4個不同場景中出現(xiàn)的當(dāng)前幀下起始點間距離較近的組合h進行觀測,若未來25幀內(nèi)未出現(xiàn)軌跡交點,則認為并行狀態(tài)判定成功。 2)對視頻素材內(nèi)4個不同場景中出現(xiàn)交點的組合h進行觀測,如果在出現(xiàn)交點后,組合內(nèi)任意一個行人出現(xiàn)靜止狀態(tài)或?qū)ζ漕A(yù)測的軌跡線段的長度明顯縮短,又或軌跡直線與x坐標軸夾角的變化幅度大于20°,則認為出現(xiàn)了規(guī)避動作;此后出現(xiàn)規(guī)避動作的行人由靜止狀態(tài)或減速狀態(tài)恢復(fù)到正常行進狀態(tài),或重新調(diào)整了自己的行進路線,則認為沖突點判定成功。 圖10 并行狀態(tài)與沖突狀態(tài)判定成功的過程 4個場景下對并行狀態(tài)與沖突狀態(tài)判定誤差的檢測結(jié)果如表2所示。 表2 不同場景下對于并行狀態(tài)與沖突狀態(tài)判定的誤差 由表2可以看出:系統(tǒng)對于人流密集區(qū)域內(nèi)行人間沖突狀態(tài)與并行狀態(tài)的誤判率均低于10 %,檢測的成功率較高,能夠?qū)崿F(xiàn)大多數(shù)情況下行人間社交沖突點的預(yù)測與判定。其中造成誤判的原因主要包括:拍攝時的俯角不夠?qū)е滦腥说能壽E直線方程在錯誤的平面產(chǎn)生交點;拍攝時鏡頭的抖動導(dǎo)致當(dāng)前時刻下行人的位置產(chǎn)生偏移,進而造成軌跡直線的斜率發(fā)生瞬時變化,產(chǎn)生了錯誤交點。 卡爾曼濾波、S-LSTM,S-GAN對于行人軌跡的平均預(yù)測時間和三種算法分別采用YOLOv3作為行人檢測器時的實時FPS如表3所示,此測試環(huán)節(jié)所用的測試集為公開數(shù)據(jù)集中UCY中的Univ部分,預(yù)測步長設(shè)置為8步,平均預(yù)測時間是對單組行人數(shù)據(jù)預(yù)測所花費的時間。 表3 不同預(yù)測算法的時間性能比較 由表3可得:卡爾曼濾波算法在對行人軌跡進行預(yù)測時的耗時明顯小于S-LSTM與S-GAN,在與YOLOv3算法相結(jié)合時的實時FPS高于S-LSTM(+YOLOv3)與S-GAN(+YOLOv3)。 不同行人數(shù)對應(yīng)的沖突點判定環(huán)節(jié)的平均耗時、卡爾曼濾波的平均預(yù)測時間以及與這兩個環(huán)節(jié)YOLOv3結(jié)合后的整體FPS表現(xiàn)如表4所示,此處所用的測試集為2.1節(jié)中所提的4種視頻素材。 表4 不同行人數(shù)所對應(yīng)的算法時間性能 由表4可得:當(dāng)視頻幀內(nèi)行人的數(shù)量不斷增加時,行人間排列組合的運算量隨之增加,進而導(dǎo)致沖突點判定環(huán)節(jié)的時間損耗逐漸增大;同理,卡爾曼濾波在行人數(shù)量增加時的預(yù)測輪次隨之增加,從而導(dǎo)致平均預(yù)測時間變長。 但對比表3中不同算法對單組行人數(shù)據(jù)的預(yù)測時間可知,由于所提方法中沖突點判定環(huán)節(jié)與卡爾曼濾波預(yù)測環(huán)節(jié)相結(jié)合后的時間損耗基數(shù)始終小于深度學(xué)習(xí)類算法的時間損耗基數(shù),所以,在行人數(shù)量不斷增加的過程中,其在時間性能上的優(yōu)勢會不斷擴大,即該方法相比于S-LSTM與S-GAN而言,更適用于人流密集情況下的短時社交沖突預(yù)測。 針對行人密集區(qū)域內(nèi)經(jīng)常發(fā)生的人流堵塞現(xiàn)象設(shè)計了一種行人間短時社交沖突預(yù)測算法,其中采用YOLOv3網(wǎng)絡(luò)作為行人檢測器,選擇卡爾曼濾波來估計行人的軌跡數(shù)據(jù)。在沖突點判定環(huán)節(jié)中分3種情況分析了目標預(yù)測軌跡區(qū)間內(nèi)的時空特性,能夠?qū)崿F(xiàn)靜態(tài)、并行、沖突3種短時社交狀態(tài)檢測。實驗結(jié)果表明:所提出的方法對于行人各種狀態(tài)的判定精度較高,相比S-LSTM與S-GAN兩種典型深度學(xué)習(xí)類算法而言,優(yōu)化了運算成本,實際運行時的FPS有明顯提升,并降低了預(yù)測行人產(chǎn)生規(guī)避動作時的誤判率。在無人駕駛領(lǐng)域,所設(shè)計的判定模型可以準確地預(yù)測出行人間即將出現(xiàn)的短時社交沖突,為無人駕駛汽車與無人配送機器人的行進路徑規(guī)劃提供依據(jù)。同時,對于拍攝角度的影響而導(dǎo)致的行人軌跡在錯誤平面產(chǎn)生交點的問題將在后續(xù)工作中進行解決,以便進一步降低模型的誤判率。2 實驗結(jié)果與分析
2.1 判定誤差分析
2.2 時間性能分析
3 結(jié) 論