徐天宇,曾麗君,魏 麗
(南京航空航天大學(xué)金城學(xué)院 信息工程學(xué)院,江蘇 南京211156)
面對(duì)錯(cuò)綜復(fù)雜的人流量場(chǎng)景,近幾年通過(guò)計(jì)算機(jī)視覺(jué)技術(shù)來(lái)處理和分析人流量的方法日益增多,其優(yōu)勢(shì)之一是公共場(chǎng)所普遍裝有監(jiān)控?cái)z像頭,無(wú)需部署新設(shè)備;二是監(jiān)控面積,廣角鏡頭可以實(shí)時(shí)監(jiān)測(cè)并統(tǒng)計(jì)任意一片區(qū)域內(nèi)的人流量;三是可以最大程度避免干擾當(dāng)前行人活動(dòng)。
目前,通過(guò)計(jì)算機(jī)視覺(jué)技術(shù)進(jìn)行目標(biāo)檢測(cè)有很多種方法,比如早期傳統(tǒng)的HOG+SVM[1]分類器方法,再有利用KCF[2]實(shí)現(xiàn)多目標(biāo)跟蹤,這兩種方法無(wú)法滿足實(shí)時(shí)性的需求,且精度不高。伴隨著近幾年深度學(xué)習(xí)的突飛猛進(jìn),通過(guò)神經(jīng)卷積網(wǎng)絡(luò)實(shí)現(xiàn)多目標(biāo)追蹤檢測(cè),極大程度提高了目標(biāo)檢測(cè)精度且滿足視頻監(jiān)控的實(shí)時(shí)性需求。基于深度學(xué)習(xí)的人流量檢測(cè)方法,是使用神經(jīng)網(wǎng)絡(luò)通過(guò)對(duì)行人頭部的數(shù)據(jù)集樣本進(jìn)行深度學(xué)習(xí),實(shí)現(xiàn)對(duì)頭部目標(biāo)的實(shí)時(shí)追蹤檢測(cè),來(lái)達(dá)到實(shí)時(shí)統(tǒng)計(jì)人流量的目的。
YOLOv3[3]是一種基于DarkNet-53[4]深度學(xué)習(xí)框架的由端到端的目標(biāo)檢測(cè)算法項(xiàng)目,其本質(zhì)上是實(shí)現(xiàn)了回歸的深度卷積神經(jīng)網(wǎng)絡(luò)。由于DarkNet-53是用C語(yǔ)言和CUDA的底層編寫,所以其速度快,多核處理器以及GPU并行運(yùn)算能夠得到充分發(fā)揮的特點(diǎn)讓YOLOv3的快速檢測(cè)非常適合這種需要實(shí)時(shí)檢測(cè)視頻幀的項(xiàng)目。YOLOv3較之于前兩代的Yolo有了非常大的提升,尤其是在小目標(biāo)檢測(cè)上,與R-CNN[5]相比快1000倍左右,與Faster RCNN[6]相比快近100倍。使用YOLOv3算法進(jìn)行人檢測(cè)時(shí),與之前擁有較高準(zhǔn)確率的SSD[7]算法的檢測(cè)有些不同。首先將原始圖片縮放到416×416的大小并分為S×S個(gè)等大的單元格,每個(gè)單元格會(huì)有3個(gè)anchor box[8]來(lái)預(yù)測(cè)3個(gè)bounding box,預(yù)測(cè)框包含3個(gè)信息:目標(biāo)在候選框的中心目標(biāo)(x,y),候選框的寬度(w,h)以及目標(biāo)類型C。通過(guò)卷積層提取特征如圖1所示。
圖1 YOLOv3算法檢測(cè)流程圖
YOLOv3采用了Faster R-CNN中的先驗(yàn)框思想,其目標(biāo)檢測(cè)的準(zhǔn)確度受到anchor的數(shù)量和寬高比影響,在模型訓(xùn)練的過(guò)程中,為了讓候選框與真實(shí)框的參數(shù)更加接近,候選框的參數(shù)會(huì)根據(jù)迭代次數(shù)的增加而不斷變化。本次改進(jìn)YOLOv3的目的是為了實(shí)現(xiàn)針對(duì)密集人流量時(shí)進(jìn)行行人頭部的檢測(cè),通過(guò)深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)收集的樣本來(lái)學(xué)習(xí)行人頭部的特征。K-means[9]作為聚類算法的一種,與Faster R-CNN相比具有主觀性更弱,模型表達(dá)能力更強(qiáng),更易于網(wǎng)絡(luò)學(xué)習(xí)的特點(diǎn),其核心思想是把空間中的K個(gè)點(diǎn)作為幾何中心,對(duì)與最接近的點(diǎn)進(jìn)行歸類,不停地更新和迭代這K個(gè)點(diǎn)的值,直到抵達(dá)迭代次數(shù)或K個(gè)值不再變化為止。COCO數(shù)據(jù)集中的行人是全身的“類長(zhǎng)方形”框與本文收集的行人頭部數(shù)據(jù)集多為“類正方形”的候選框類型不同,因此需要對(duì)行人頭部數(shù)據(jù)集重新分析K-means聚類,得到最適合密集人流行人頭部數(shù)據(jù)集的anchor數(shù)量和寬高比。K-means維度聚類方法的距離公式定義如下:
行人頭部數(shù)據(jù)集聚類分析的目標(biāo)函數(shù)變化曲線見(jiàn)圖2。
圖2 目標(biāo)函數(shù)變化曲線
由圖2所示的變化曲線可知,K值大于7時(shí)目標(biāo)函數(shù)趨于平緩,因此選擇K=7,即anchor個(gè)數(shù)為7。
目標(biāo)特征提取的識(shí)別效果由卷積神經(jīng)網(wǎng)絡(luò)的卷積層數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)的深淺所決定,為了對(duì)密集人流量時(shí)進(jìn)行頭部檢測(cè),需要讓檢測(cè)網(wǎng)絡(luò)獲得更多的小目標(biāo)特征,同時(shí)考慮到邊緣端的硬件條件較為有限,本文對(duì)YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)。為了提高檢測(cè)速度,勢(shì)必要減少主干網(wǎng)絡(luò)層次,這樣也就帶來(lái)了不能提取出高層次語(yǔ)義特征的問(wèn)題,從而導(dǎo)致候選框和分類精度降低。為解決這個(gè)問(wèn)題,本文將主干網(wǎng)絡(luò)替換為MobileNet[10]網(wǎng)絡(luò),采用13*13、26*26的分辨率探測(cè)網(wǎng)絡(luò)作為嫁接網(wǎng)絡(luò),使用兩個(gè)不同尺度的yolo輸出層,這樣可以在增加網(wǎng)絡(luò)層數(shù)保證精度的同時(shí)維持較小的計(jì)算量,改進(jìn)后YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)見(jiàn)圖3。
圖3 改進(jìn)的YOLOv3算法結(jié)構(gòu)
通過(guò)人流量密度能直觀反映出一片區(qū)域的擁擠程度,它是估算發(fā)生事故幾率的重要指標(biāo),用式(2)表示。
其中,ρ為人流量密度;N為單位面積上的行人;S為單位面積;P為YOLOv3目標(biāo)檢測(cè)的準(zhǔn)確率。
人流量密度的風(fēng)險(xiǎn)值不僅和行人的行進(jìn)方向、速度有關(guān),且被行人所處環(huán)境(如人行道、輔路等)因素影響。因此,進(jìn)行人流量風(fēng)險(xiǎn)評(píng)估時(shí)需要根據(jù)當(dāng)前監(jiān)控區(qū)域劃分不同場(chǎng)景,如樓梯、廣場(chǎng)、會(huì)場(chǎng)等。根據(jù)不同的場(chǎng)景分配不同的權(quán)重,最后獲得一個(gè)人流量風(fēng)險(xiǎn)評(píng)估值,為決策層的判斷提供依據(jù)。人流量風(fēng)險(xiǎn)評(píng)估值(Prisk)用式(3)表示。
式(3)中:ρ為人流量密度;weight為不同場(chǎng)景下的權(quán)重值。根據(jù)上述的人流量風(fēng)險(xiǎn)評(píng)估值(Prisk),用不同的顏色將預(yù)警級(jí)別[11]分成4種,見(jiàn)表1。
表1 預(yù)警模型
測(cè)試環(huán)境的軟硬件配置情況見(jiàn)表2,所有訓(xùn)練測(cè)試均在該環(huán)境下進(jìn)行。
表2 實(shí)驗(yàn)平臺(tái)軟硬件配置
訓(xùn)練的數(shù)據(jù)集主要從咖啡廳、十字路口以及學(xué)校等公共場(chǎng)所進(jìn)行采集。這些數(shù)據(jù)集都擁有不同的人流密度、圖像背景以及拍攝角度等。本次總共采集到15120張不同的人流量密度圖片作為數(shù)據(jù)集,其中訓(xùn)練集15120張圖片,驗(yàn)證1000張圖片。此外,將100張圖片作為測(cè)試數(shù)據(jù)集以便對(duì)訓(xùn)練結(jié)果進(jìn)行測(cè)試,所有標(biāo)注均為人工標(biāo)注。本次采集的數(shù)據(jù)集示例見(jiàn)圖4,所采集的圖片均為公共場(chǎng)所,路人行走姿態(tài)多樣、周圍環(huán)境復(fù)雜、衣著打扮各不相同,還可能被帽子雨傘之類物品遮擋,符合本次訓(xùn)練的需求。
圖4 幾種測(cè)試場(chǎng)景代表圖像
訓(xùn)練采用的初始模型參數(shù)設(shè)置如下:學(xué)習(xí)率為0.001;batch為64;subdivisions為64;max_batches為50000;decay為0.0005,最后通過(guò)50000次迭代后網(wǎng)絡(luò)收斂。
本文在訓(xùn)練過(guò)程中,分別在數(shù)據(jù)集上取5000次、100 00次、20000次、30000次、40000次迭代訓(xùn)練時(shí)的結(jié)果,其結(jié)果如圖5。
圖5 不同迭代次數(shù)的準(zhǔn)確率P
圖5 中,準(zhǔn)確率P的計(jì)算公式為:
式(4)中,P為準(zhǔn)確率,Dtec為行人頭部數(shù)量的預(yù)測(cè)值,Real為當(dāng)前行人的真實(shí)值。
本文通過(guò)上述對(duì)行人頭部進(jìn)行目標(biāo)檢測(cè)的訓(xùn)練與測(cè)試,并將實(shí)驗(yàn)結(jié)果與對(duì)行人全身的檢測(cè)結(jié)果進(jìn)行對(duì)比分析。選擇這兩種不同的檢測(cè)方法并對(duì)他們?cè)谙嗤瑴y(cè)試集的情況下進(jìn)行對(duì)比分析。
分別用相同的測(cè)試數(shù)據(jù)集對(duì)改進(jìn)后的YOLOv3與沒(méi)改進(jìn)之前的YOLOv3進(jìn)行測(cè)試,用平均準(zhǔn)確率(mAP)、召回率(Recall)以及檢測(cè)速度作為衡量標(biāo)準(zhǔn),實(shí)驗(yàn)結(jié)果如表3。其中,平均準(zhǔn)確率mAP的計(jì)算公式為:
表3 兩個(gè)模型的測(cè)試結(jié)果
式(5)中,∑AP為所有頭部圖片的平均準(zhǔn)確率之和。
召回率Recall的計(jì)算公式為:
式(6)中,TP為預(yù)測(cè)和真實(shí)結(jié)果是頭部的數(shù)量;FN為預(yù)測(cè)結(jié)果不是頭部但真實(shí)結(jié)果是頭部的數(shù)量。
由表3可知,改進(jìn)后的YOLOv3的mAP和Recall均高于YOLOv3,mAP提高3.55%,Recall提高4.58%。通過(guò)上述結(jié)果表明,改進(jìn)后針對(duì)行人頭部的YOLOv3更大程度地涵蓋不同尺度的行人,避免行人身體之間的相互遮擋,兩種模型的測(cè)試結(jié)果對(duì)比如圖6所示。
圖6 兩種模型實(shí)際場(chǎng)景檢測(cè)效果對(duì)比
對(duì)YOLOv3和改進(jìn)的YOLOv3使用1080p的MP4格式視頻進(jìn)行圖像檢測(cè)速度測(cè)試,結(jié)果見(jiàn)表4。
表4 改進(jìn)前后圖像檢測(cè)速度對(duì)比
以YOLOv3目標(biāo)檢測(cè)算法為基礎(chǔ),通過(guò)改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和調(diào)整訓(xùn)練數(shù)據(jù)集之前的聚類分析,設(shè)計(jì)一種基于計(jì)算機(jī)視覺(jué)的人流量檢測(cè)方法。本次實(shí)驗(yàn)結(jié)果表明:此種方法能避免行人之間身體的相互遮擋,且有較高的檢測(cè)準(zhǔn)確率與檢測(cè)速度,檢測(cè)頭部的平均準(zhǔn)確率較檢測(cè)全身提高了3.55%,檢測(cè)速度每秒提高近26FPS,召回率提高4.55%,基本滿足人流量檢測(cè)需求。
將監(jiān)控?cái)z像頭的視頻流傳輸?shù)竭吘壎诉M(jìn)行實(shí)時(shí)目標(biāo)追蹤檢測(cè),再到建立預(yù)警模型、熱力圖以及可視化圖表,最終實(shí)現(xiàn)人流量的實(shí)時(shí)監(jiān)控預(yù)警,從而降低公共場(chǎng)所突發(fā)事件的人員傷亡,在此過(guò)程中如何進(jìn)一步提高人流量檢測(cè)精度以及合理調(diào)度分配安保人員,將是下一步研究的重點(diǎn)。