黃 豐莫輝強(qiáng)王 偉歐陽(yáng)慧于富洋張 城葉 明
(1.浙江省軌道交通運(yùn)營(yíng)管理集團(tuán)有限公司 杭州 310020)(2.深圳北斗應(yīng)用技術(shù)研究院有限公司 深圳 518055)
隨著中國(guó)城市建設(shè)發(fā)展,地鐵出行逐漸成為大眾的首選出行方式。相較于其他交通方式,地鐵站空間區(qū)域小、客流密度高、疏散難度大,由此帶來(lái)的客流風(fēng)險(xiǎn)不容忽視。目前,在地鐵站針對(duì)客流的管控控主要通過(guò)人工方式現(xiàn)場(chǎng)或視頻監(jiān)控線,并借助自動(dòng)售檢票系統(tǒng)(AFC)的客流數(shù)據(jù)進(jìn)行歷史數(shù)據(jù)回測(cè)[1],人工方式需要依賴人的經(jīng)驗(yàn)來(lái)片段客流情況,該方式帶有一定的主觀性,而通過(guò)AFC監(jiān)控客流無(wú)法做到客流實(shí)時(shí)統(tǒng)計(jì),并且做不到局部客流監(jiān)控。隨著計(jì)算機(jī)視覺(jué)計(jì)算技術(shù)的發(fā)展,通過(guò)視頻分析的智能客流管理為車(chē)站客流實(shí)時(shí)監(jiān)控和風(fēng)險(xiǎn)預(yù)警提供了有效手段。其中頭部檢測(cè),目標(biāo)檢測(cè),運(yùn)動(dòng)跟蹤,客流計(jì)數(shù)和客流密度評(píng)估等技術(shù)也成為車(chē)站客流管控應(yīng)用的熱點(diǎn)[2]。
客流密度是通過(guò)輸入原始的區(qū)域客流圖像得到對(duì)應(yīng)區(qū)域客流數(shù)量統(tǒng)計(jì)值。針對(duì)視頻圖像的客流密度統(tǒng)計(jì)方法主要為:基于回歸的檢測(cè)方法[3],基于像素的統(tǒng)計(jì)方法[4],在可獲得的公開(kāi)數(shù)據(jù)集上效果較好的方法是基于卷積神經(jīng)網(wǎng)絡(luò),該方法對(duì)人群分布不均,遮擋嚴(yán)重的分析準(zhǔn)確度較好;基于深度特征的方法,在利用卷積神經(jīng)網(wǎng)絡(luò)的方法上進(jìn)一步提升了較為復(fù)雜背景下的分析準(zhǔn)確度。本文結(jié)合已有研究方法采用基于深度學(xué)習(xí)的密度計(jì)數(shù)(DL-CNT)方法[5],該方法有別于以往開(kāi)集問(wèn)題,實(shí)際場(chǎng)景下人的數(shù)量是一個(gè)開(kāi)集的問(wèn)題,但是模型往往是在閉集的數(shù)據(jù)集上進(jìn)行訓(xùn)練,故采用分而治之的思想,對(duì)整張大圖,本文會(huì)去劃分成若干小分塊,使得每個(gè)小分塊的數(shù)量處于這個(gè)閉集內(nèi),從而實(shí)現(xiàn)對(duì)每個(gè)小分塊的人數(shù)預(yù)測(cè),并泛化到開(kāi)放集合中,實(shí)現(xiàn)客流密度的統(tǒng)計(jì)[6]。
視頻幀圖像有RGB三通道,分別代表著紅色、綠色、藍(lán)色三種不同的顏色通道,通道的像素使用數(shù)組進(jìn)行表示,像素值由0~255的數(shù)字來(lái)表示[7]。
卷積:使用一個(gè)K×K大小的卷積核(kernel),在每一層像素矩陣上按步長(zhǎng)(stride)滑動(dòng),每次掃到的數(shù)值會(huì)和卷積核中對(duì)應(yīng)位置的數(shù)進(jìn)行相乘,然后相加求和,得到的值將會(huì)生成一個(gè)新的矩陣[8]。
卷積核為卷積操作過(guò)程中的一個(gè)矩陣,用于提取圖像的特征(feature map)。
假如一個(gè)卷積核的大小為6×6大小,卷積核矩陣?yán)锩娴拿總€(gè)值就是模型的神經(jīng)元參數(shù),統(tǒng)稱為網(wǎng)絡(luò)權(quán)重,模型訓(xùn)練開(kāi)始會(huì)對(duì)矩陣進(jìn)行隨機(jī)初始化,訓(xùn)練網(wǎng)絡(luò)過(guò)程中,網(wǎng)絡(luò)會(huì)通過(guò)損失函數(shù)(loss)的收斂反向傳播不斷更新權(quán)重值,通過(guò)損失函數(shù)(loss)收斂到最小時(shí)候確認(rèn)為最佳權(quán)重值。
其中n表示寬高,k表示卷積核尺寸,p表示邊padding,s表示步長(zhǎng)stride。
經(jīng)過(guò)卷積操作后提取到的特征信息,由于卷積帶來(lái)的感受野,實(shí)際卷積后的一個(gè)單元格對(duì)應(yīng)著卷積前的多個(gè)格子數(shù)值,所以卷積后的相鄰區(qū)域會(huì)有相似特征信息,這些相似的特征可以相互替代的,若全部保留這些特征信息會(huì)存在信息冗余,增加計(jì)算難度。
故在卷積后增加一個(gè)池化層,池化層會(huì)不斷地減小數(shù)據(jù)的空間大小,由于池化過(guò)程中丟棄了部分權(quán)重值,相當(dāng)于對(duì)模型進(jìn)行了一個(gè)正則化,有效的控制了模型的過(guò)擬合,因?yàn)閬G棄了部分權(quán)重值,所以參數(shù)的數(shù)量和計(jì)算量會(huì)有相對(duì)應(yīng)的下降[9]。
目標(biāo)計(jì)數(shù)任務(wù)是一個(gè)天然的開(kāi)集問(wèn)題,其預(yù)測(cè)范圍是[0,∞],而實(shí)際中,視頻幀的圖像中目標(biāo)數(shù)量是有限數(shù)量的,實(shí)際觀測(cè)到的目標(biāo)數(shù)量是一個(gè)有限數(shù)量的封閉區(qū)間,故實(shí)際情況應(yīng)從封閉子集區(qū)間上學(xué)習(xí),并泛化到開(kāi)放集合中。本文提出了基于CNN網(wǎng)絡(luò)的密度計(jì)數(shù)算法(DL-CNT)模型,訓(xùn)練過(guò)程中只圖片上目標(biāo)數(shù)量0~20的部分,當(dāng)遇到一張目標(biāo)數(shù)量密集并超過(guò)20個(gè)目標(biāo)的圖像時(shí),對(duì)圖像進(jìn)行切分成多個(gè)部分,直到每個(gè)子圖像中包含的目標(biāo)個(gè)數(shù)不超過(guò)20個(gè),然后再對(duì)每一個(gè)子圖進(jìn)行計(jì)數(shù)和合并計(jì)算最總結(jié)果[10]。
切分帶來(lái)的一個(gè)問(wèn)題是需要設(shè)計(jì)好劃分計(jì)數(shù)的判斷標(biāo)準(zhǔn)。直接的思路是對(duì)切分的圖像進(jìn)行上采樣,再進(jìn)行切分,將圖片輸入到同一個(gè)網(wǎng)絡(luò)中進(jìn)行預(yù)測(cè),由于對(duì)圖像上采樣會(huì)導(dǎo)致部分信息丟失,帶來(lái)一個(gè)難題是圖像變模糊,另一難題是計(jì)算量暴漲,從而資源及模型精度會(huì)受較大影響。受感興趣區(qū)域池化(RoI Pooling)啟發(fā)[11],本算法對(duì)特征圖(feature map)進(jìn)行解碼和上采樣,然后對(duì)特征圖(feature map)進(jìn)行后續(xù)預(yù)測(cè)和計(jì)數(shù)。
輸入的64×64的patch,經(jīng)過(guò)VGG16網(wǎng)絡(luò)的卷積3(Conv3),卷積4(Conv4),卷積5(Conv5)這3個(gè)卷積階段輸出的特征圖大小分別為8×8、4×4、2×2,Conv5是將VGG16網(wǎng)絡(luò)的全連接層(FC)去除后的輸出,即輸入圖像經(jīng)過(guò)32倍下采樣輸出的特征圖(feature map)[12]。Conv5的輸出直接通過(guò)一個(gè)分類(lèi)器,預(yù)測(cè)出C0值。C0表示的是當(dāng)前輸入圖像所有目標(biāo)計(jì)數(shù)所屬類(lèi)別,因?yàn)镃0的預(yù)測(cè)沒(méi)有用到S-DC網(wǎng)絡(luò)結(jié)構(gòu),所以C0值為先前其他方法的最終輸出結(jié)果。
F1是第一個(gè)通過(guò)S-DC的feature map,F(xiàn)1被劃分后,送入共享的計(jì)數(shù)分類(lèi)器,產(chǎn)生劃分計(jì)數(shù),具體地,F(xiàn)1是F0通過(guò)UNet網(wǎng)絡(luò)模塊上采樣生成的特征圖,C1中的4個(gè)單元格,每個(gè)單元格代表著對(duì)應(yīng)輸入圖像相對(duì)應(yīng)的32×32區(qū)域的目標(biāo)數(shù)量計(jì)數(shù)。
在backbone的基礎(chǔ)上,采用一個(gè)classifier去進(jìn)行分類(lèi),將人數(shù)量化為區(qū)間,即
這樣相當(dāng)于將預(yù)測(cè)劃分為了M+1類(lèi),然后每一類(lèi)代表了一個(gè)人數(shù)區(qū)間,在計(jì)算實(shí)際人數(shù)時(shí),采用區(qū)間的中值代表這個(gè)區(qū)間的值,對(duì)于則采用CM表示,可以獲得對(duì)整個(gè)64×64的patch的人數(shù)預(yù)測(cè)結(jié)果用C0表示。
當(dāng)網(wǎng)絡(luò)通過(guò)classifier預(yù)測(cè)了1×1,2×2,4×4的分塊預(yù)測(cè)結(jié)果之后,到底是分的細(xì)的結(jié)果重要還是不分的細(xì)的結(jié)果重要,這里就采用division decider預(yù)測(cè)的weight map去權(quán)衡,w越大表示細(xì)分的必要性越大,以1×1的C0和2×2的C1的結(jié)合為例,先將C0上采樣到2×2的狀態(tài),同時(shí)每個(gè)點(diǎn)的值是原來(lái)C0平均分為1/4的結(jié)果,最后獲得2×2的融合的預(yù)測(cè)結(jié)果DIV1,每個(gè)值代表對(duì)64×64的一個(gè)1/4區(qū)域即32×32的人數(shù)預(yù)測(cè)結(jié)果。同理可以獲得4×4的DIV2,每個(gè)點(diǎn)的值代表16×16的一個(gè)區(qū)域的人數(shù)預(yù)測(cè)結(jié)果,由于VGG16只有5個(gè)卷積階段的限制,所以這個(gè)S-DC的思路最后做5層。
可視化division-decider產(chǎn)生的w的作用,根據(jù)W的作用,W越大代表越應(yīng)該采用細(xì)分的后的預(yù)測(cè)結(jié)果,W越小代表不用細(xì)分預(yù)測(cè)效果就可以了,圖中可以看到越是密集的區(qū)域,W是越亮,說(shuō)明W學(xué)到了密集區(qū)域需要?jiǎng)澐衷兕A(yù)測(cè)這樣一個(gè)語(yǔ)義的信息。W2相比于W1更加關(guān)注一些更加密集的小部分區(qū)域,是給予W1劃分的基礎(chǔ)上的進(jìn)一步劃分[13]。
圖1 不同W權(quán)重的可視化
數(shù)據(jù)集是在地鐵場(chǎng)景收集人群數(shù)據(jù)集,數(shù)據(jù)集的圖像分辨率為1920*1080,共10000張,制作的數(shù)據(jù)集需要對(duì)人頭中心位置進(jìn)行標(biāo)注,標(biāo)注為中心位置的坐標(biāo)點(diǎn)(x,y),本文使用Matlab工具對(duì)圖像進(jìn)行標(biāo)注,共標(biāo)注了45000個(gè)人頭框。數(shù)據(jù)集包含10個(gè)區(qū)域,地鐵出入口、站廳、站臺(tái)、安檢區(qū)域等,真實(shí)呈現(xiàn)了地鐵站內(nèi)不同攝像頭的角度和高度變化情況,以及密集人群和嚴(yán)重遮擋因素,可以較為真實(shí)反應(yīng)地鐵實(shí)際場(chǎng)景。
DL-CNT算法采用了平均絕對(duì)百分比誤差評(píng)價(jià)指標(biāo),當(dāng)MAPE為0時(shí)表示完美模型,MAPE大于100%則表示劣質(zhì)模型,不可用。DL-CNT算法的MAPE值為8%[14]。
圖2 地鐵站臺(tái)標(biāo)注示意圖
通過(guò)選取地鐵10個(gè)攝像頭場(chǎng)景,人工標(biāo)注了2000張測(cè)試集,平均每一個(gè)攝像頭200張數(shù)據(jù)集,將2000張測(cè)試集輸入模型得到預(yù)測(cè)數(shù)量,得到mape為8%,密度圖測(cè)試效果如下,觀察可知,對(duì)于疏密程度不同的地鐵監(jiān)控場(chǎng)景,網(wǎng)絡(luò)都能獲得較高的計(jì)數(shù)精度。同時(shí)生成的模型預(yù)測(cè)密度圖較好的呈現(xiàn)了站內(nèi)客流密度分布情況[15]。
圖3 地鐵數(shù)據(jù)集網(wǎng)絡(luò)輸出結(jié)果對(duì)比圖
圖4 地鐵數(shù)據(jù)集網(wǎng)絡(luò)輸出結(jié)果對(duì)比圖
地鐵站內(nèi)區(qū)域相對(duì)封閉,乘客日常出行在早晚高峰客流量集中,容易發(fā)生大客流,實(shí)時(shí)監(jiān)控站內(nèi)各區(qū)域乘客人數(shù)并預(yù)警可以有效避免人群擁擠,發(fā)生踩踏等風(fēng)險(xiǎn)因素。本文基于上述客流密度算法,基于B/S架構(gòu)開(kāi)發(fā)了一套車(chē)站客流計(jì)數(shù)監(jiān)控預(yù)警系統(tǒng)?;趪?guó)標(biāo)28181協(xié)議接入車(chē)站現(xiàn)有的CCTV系統(tǒng)獲取車(chē)站現(xiàn)場(chǎng)攝像頭實(shí)時(shí)視頻流,基于客流密度算法將傳入的視頻流進(jìn)行實(shí)時(shí)分析,輸出車(chē)站現(xiàn)場(chǎng)各個(gè)區(qū)域的客流人數(shù),例如站臺(tái)候車(chē)區(qū)域,換乘通道等,滿足車(chē)站日常使用需求。當(dāng)視頻分析結(jié)果超過(guò)預(yù)警的閾值時(shí),站務(wù)人員可通過(guò)監(jiān)控大屏收到預(yù)警通知,及時(shí)對(duì)客流密集區(qū)域進(jìn)行疏散處置。
圖5 地鐵站換乘通道客流預(yù)警
本文針對(duì)地鐵客流管控場(chǎng)景設(shè)計(jì)了視頻監(jiān)控場(chǎng)景下的客流密度算法,利用基于深度學(xué)習(xí)的密度計(jì)數(shù)(DL-CNT)方法實(shí)現(xiàn)地鐵各個(gè)區(qū)域客流人數(shù)計(jì)數(shù)。通過(guò)實(shí)驗(yàn)及應(yīng)用結(jié)果發(fā)現(xiàn)該方法具有實(shí)時(shí)、高效、性能消耗少的特點(diǎn),可以滿足地鐵站內(nèi)客流監(jiān)控需求,除在地鐵場(chǎng)景應(yīng)用外,也可在其他交通樞紐、公共場(chǎng)所應(yīng)用。