劉曉雷 張維忠 張宏峰
(1.青島大學(xué)計算機科學(xué)技術(shù)學(xué)院,山東 青島 266071;2.青島大學(xué)威海創(chuàng)新研究院,山東 威海 264200;3.青島點之云智能科技有限公司,山東 青島 266071)
精確的公交客流量數(shù)據(jù)對智能交通具有重要意義,可以更好地了解每個時間段、每路公交車及每個車站的人流量,幫助公交調(diào)度人員更及時準確地調(diào)度,幫助公交線網(wǎng)規(guī)劃人員更科學(xué)合理的線網(wǎng)規(guī)劃,使公共資源得到更充分的利用,提高用戶乘車體驗,為城市綜合交通體系規(guī)劃與評價提供基礎(chǔ)數(shù)據(jù)。近年來,許多學(xué)者對該領(lǐng)域進行深入研究,但實際應(yīng)用中存在一定局限性。A.J.KOTZ等人[1]使用光電開關(guān)獲取公效客流信息,但無法判斷兩人并排上車的情況:丁高峰[2]利用壓力傳感器統(tǒng)計公交車客流量,但壓力傳感器容易損壞,且維護成本高。以上2種方法在擁擠情況下表現(xiàn)較差,現(xiàn)已基本被淘汰。張國林等人[3-5]通過乘客攜帶電子設(shè)備的無線通信技術(shù)、藍牙或媒體存取控制(media access control address,MAC)地址等信息,定位乘客大致位置,獲取上下車人數(shù),但這些技術(shù)目前也存在著諸多挑戰(zhàn),如有些乘客不攜帶或攜帶多個電子設(shè)備,易受公交車外電子設(shè)備的干擾,許多設(shè)備提供虛假的動態(tài)MAC地址等。陳天宇等人[6-7]用深度圖像去噪算法研究,但結(jié)構(gòu)光相機和飛行時間相機成本較高,雙目相機圖像易受紋理影響,無法保證穩(wěn)定性;Y.W.HSU 等人[8-9]使用彩色圖像,利用傳統(tǒng)的數(shù)字圖像處理方法,但由于場景復(fù)雜,該方法通常不能獲得較高的準確率。近年來,深度學(xué)習(xí)發(fā)展較快,目標檢測模型準確率不斷提高,同時也提出了許多部署在移動端的網(wǎng)絡(luò),為采用彩色圖像獲取較高準確率的客流數(shù)據(jù)提供可能。彩色圖像成本低,且不需要昂貴的深度相機,甚至可以使用公交車已有的監(jiān)控視頻,光照不敏感,通過訓(xùn)練可以實現(xiàn)在強光或光線不足的情況下正確統(tǒng)計客流量等優(yōu)點。N.WOJKE等人[10-11]提出Tracking-by-detection的多目標跟蹤方法;WANG Z 等人[12-15]提出基于檢測和跟蹤聯(lián)合的多目標跟蹤方法;SUN P等人[16-17]提出基于注意力機制的多目標跟蹤方法,這些方法可得到較高精確率但實時性較差,基本無法在移動端運行。基于此,本文使用青島公交車內(nèi)的視頻監(jiān)控,以實時多目標跟蹤算法SORT 為基礎(chǔ),結(jié)合目標檢測網(wǎng)絡(luò)YOLOX,并根據(jù)檢測公交客流的場景進行改進,實驗表明,改進的YOLOX-SORT 滿足實際應(yīng)用的需求。
本文從4個方面對YOLOX-SORT 算法進行改進。第一種改進方法是調(diào)整SORT 算法的結(jié)構(gòu),使SORT 算法的預(yù)測結(jié)果可被目標檢測網(wǎng)絡(luò)使用;第二種改進方法是將YOLOX[18]中Focus結(jié)構(gòu)更換為普通的卷積層,使算法更容易部署在移動端;第三種改進方法是將Sigmoid-BCELoss損失函數(shù)更換為Focal Loss損失函數(shù)[19],緩解正負樣本不均勻,同時有利于學(xué)習(xí)復(fù)雜樣本;第四種改進方法是針對公交客流的場景調(diào)整了數(shù)據(jù)增強策略。
在一次運動模型目標預(yù)測方面,基于SORT 算法具有較好的準確性,本文將SORT 算法的預(yù)測信息與當(dāng)前圖像送入目標檢測網(wǎng)絡(luò),提高目標檢測網(wǎng)絡(luò)的精確率。改進的SORT 算法流程圖如圖1所示。
圖1 改進的SORT算法流程圖
在視頻流中,卡爾曼濾波器利用第k-1幀圖像的相關(guān)參數(shù)預(yù)測第k(k≠1)幀圖像中目標的位置信息,將預(yù)測結(jié)果生成目標位置掩膜(蒙版),與第k幀圖像按不同權(quán)重疊加,將疊加后的圖像送入YOLOX 進行目標檢測,Kuhn-Munkres算法將卡爾曼濾波器的預(yù)測結(jié)果與YOLOX 的檢測結(jié)果進行匹配,并根據(jù)情況為YOLOX檢測結(jié)果中的目標框分配ID,最后利用Kuhn-Munkres算法匹配后的結(jié)果更新卡爾曼濾波器的相關(guān)參數(shù),為預(yù)測第k+1幀中目標位置做準備,同時利用目標軌跡判斷乘客上下車行為。預(yù)測信息與當(dāng)前幀融合過程如圖2所示。圖2a為卡爾曼濾波器根據(jù)k-1幀中目標的信息,預(yù)測目標在第k幀中的位置,以紅色半透明區(qū)域(蒙版)體現(xiàn)目標的位置和大小;圖2b為第k幀圖像;圖2c為圖2a和圖2b按3∶7權(quán)重疊加結(jié)果。
圖2 預(yù)測信息與當(dāng)前幀融合過程
圖像在進入YOLOX主干網(wǎng)絡(luò)之前會經(jīng)過Focus結(jié)構(gòu),Focus結(jié)構(gòu)如圖3所示。將圖片的行和列進行間隔像素采樣,形成新圖片,在不損失信息量的情況下,將通道擴充4倍,相當(dāng)于下采樣功能。由于Focus非常規(guī)運算的結(jié)構(gòu)不利于網(wǎng)絡(luò)在移動端部署,因此將Focus結(jié)構(gòu)替換為卷積核大小為2,步距為2的普通卷積層。
圖3 Focus結(jié)構(gòu)
自建數(shù)據(jù)集中,59%的圖像中目標數(shù)未超過3人,導(dǎo)致計算目標損失時出現(xiàn)正負樣本之比小于1/4的情況,為緩解正負樣本和難易樣本不均衡問題,本文將原來的Sigmoid-BCELoss更換為Focal Loss,更換后準確率上升了0.9%。實驗參數(shù)r為1.5,α為0.25時,效果最優(yōu)。Focal Loss的計算公式為
式中,y′為預(yù)測值,取值為0~1;α和r為超參數(shù),r與均衡正負樣本相關(guān),α與加強對難樣本的學(xué)習(xí)相關(guān)。
使用卡爾曼濾波器預(yù)測的結(jié)果作為蒙版,如圖2a所示,將蒙版疊加在原圖作為訓(xùn)練的數(shù)據(jù)集如圖2c所示,由于公交車內(nèi)攝像機安裝高度有限,不會出現(xiàn)目標過大或者過小的情況,因此修改Mosaic數(shù)據(jù)增強過程中原圖的隨機縮放比例。同時,為提高目標被遮擋情況下的準確率,在Mosaic數(shù)據(jù)增強過程中對原圖進行隨機裁剪再拼接,最終將訓(xùn)練圖像尺寸調(diào)整為416×416。通過隨機增強和降低亮度來模擬強光和光線不足的情況,解決在特定場景下數(shù)據(jù)集缺乏問題,提高網(wǎng)絡(luò)的魯棒性。數(shù)據(jù)增強后效果如圖4所示,圖4a為模擬現(xiàn)實中陽光較強的場景,如夏季正午,圖4b為模擬現(xiàn)實中光照不足的場景,如傍晚或夜間。
圖4 數(shù)據(jù)增強后效果
本文網(wǎng)絡(luò)訓(xùn)練硬件環(huán)境為Intel Xeon Gold 5118、64 GB內(nèi)存、Tesla V100-PCIE 顯存16 GB;軟件環(huán)境為在Ubuntu 18.04.3 LTS操作系統(tǒng)下,使用Py Torch深度學(xué)習(xí)框架;程序運行的硬件環(huán)境為雙Cortex-A72大核、四Cortex-A53小核處理器、ARM Mali-T860 MP4四核圖形處理器(graphics processing unit,GPU)、神經(jīng)網(wǎng)絡(luò)處理器(neural-network processing unit,NPU)算力3TPOS、LPDDR3 6 GB 內(nèi)存(NPU 2 GB +CPU 4 GB)。
自建數(shù)據(jù)集來自青島公交公司監(jiān)控視頻,公交車監(jiān)控圖像如圖5所示。視頻包括夏季和冬季、客流高峰期與低谷期、一天中的多個時段,與實際情況相符。視頻選取3 237人次上下車,其中2 580人次作為訓(xùn)練集,657人次作為驗證集,圖中均為俯視視角,目的是減少遮擋帶來的ID 交換問題,同時,選取人頭作為識別目標,進一步緩解遮擋問題。
圖5 公交車監(jiān)控圖像
使用余弦退火衰減策略動態(tài)調(diào)整學(xué)習(xí)率,設(shè)置最小學(xué)習(xí)率為0.05,將訓(xùn)練好的PTH 格式的模型轉(zhuǎn)化為開放神經(jīng)網(wǎng)絡(luò)交換(open neural network exchange,ONNX)格式,再使用RKNN Toolkit,將ONNX 格式的模型轉(zhuǎn)化成可以在NPU 上加速的RKNN 格式的模型,最后在移動端使用RKNN 庫中的相關(guān)接口,加載和使用RKNN 格式的模型,最終實現(xiàn)利用NPU 加速推理的過程。
本文對YOLOX-SORT 進行了3 種改進(下文將經(jīng)過3 次改進的 YOLOX-SORT 稱為“改進的YOLOX-SORT”),最終在自建數(shù)據(jù)集上實驗驗證,改進的YOLOX-SORT 比原YOLOX-SORT 精確率提高了4.8%,召回率提高5.5%。不同方法的精確率與召回率實驗結(jié)果如表1所示,其中方法1是在YOLOXSORT 的基礎(chǔ)上,使用調(diào)整后的Mosaic數(shù)據(jù)增強;方法2在方法1的基礎(chǔ)上將Sigmoid-BCELoss替換為Focal Loss;方法3在方法2的基礎(chǔ)上改進SORT 算法。
表1 不同方法的精確率與召回率實驗結(jié)果
在150輪的訓(xùn)練過程中,精確率與召回率變化過程如圖6所示。由圖6可以看出,精確率大約都在75輪時收斂,召回率大約都在70輪時收斂。
圖6 精確率與召回率變化過程
原YOLOX-SORT 算法與改進的YOLOX-SORT 算法的多目標跟蹤[20](multiple object tracking,MOT)指標對比如表2所示,當(dāng)目標正確匹配軌跡次數(shù)大于軌跡長度的80%時,認為該軌跡被正確檢測;當(dāng)目標正確匹配軌跡次數(shù)小于軌跡長度的20%時,認為該軌跡被錯誤檢測。其中MT(mostly tracked)指檢測正確的軌跡數(shù)量占總軌跡數(shù)量的比值,值越高越好;ML(mostly lost)指檢測錯誤的軌跡數(shù)量占總軌跡數(shù)量的比值,值越小越好;FP(false positive)指真實情況中不存在目標,跟蹤算法誤檢出目標存在;FN(false negative)指真實情況中存在目標,跟蹤算法漏檢;IDsw(ID switch)指目標ID切換次數(shù);多目標跟蹤準確率(multiple object tracking accuracy,MOTA),即AMOT,可以較好地反映跟蹤準確度。其計算公式為
表2 原YOLOX-SORT算法與改進的YOLOX-SORT算法的MOT指標對比
式中,GT(ground truth)為真實目標框數(shù)量;t表示視頻流中的第t幀。
本文對比了不同方法在移動端部署YOLOX-SORT 算法的檢測幀率,實驗1將算法直接部署在移動端,利用CPU 進行推理,檢測幀率為4幀/s;實驗2將算法轉(zhuǎn)化為ONNX格式,利用NPU 進行加速推理,檢測幀率為19幀/s;實驗3在實驗2的基礎(chǔ)上將Focus替換為普通卷積層,檢測幀率為20 幀/s。實驗表明,使用NPU 進行加速推理可使推理速度提升近5倍,將Focus替換為普通卷積層也能將推理速度提升1幀/s。
算法檢測效果如圖7所示。圖中黃色半透明區(qū)域為識別區(qū),當(dāng)目標軌跡從下至上穿過識別區(qū),則認為乘客發(fā)生下車行為,反之則認為是上車行為。劃定識別區(qū)域時應(yīng)選擇乘客發(fā)生遮擋次數(shù)少的區(qū)域以減少遮擋引起的ID 交換,靠近車門以避免擁擠時乘客在識別區(qū)長期停留導(dǎo)致的錯誤計數(shù)。紅色半透明區(qū)域為卡爾曼濾波器預(yù)測結(jié)果,藍色框為改進的YOLOXSORT 算法檢測結(jié)果。
圖7 算法檢測效果
改進的YOLOS-SORT 算法與其他客流檢測算法比較如表3所示。精確率P和召回率R分別為
表3 改進的YOLOX-SORT算法與其他客流檢測算法比較
其中,TP為被正確檢測的正例,即真實情況中乘客發(fā)生上車或下車行為,檢測值也對應(yīng)為上車或下車行為;TN為被正確檢測的反例,即真實情況中乘客沒有發(fā)生上車或下車行為,檢測值也對應(yīng)為沒有上車或下車行為;FP為被錯誤檢測的正例,即真實情況中乘客發(fā)生上車或下車行為,但被檢測為沒有發(fā)生上車或下車行為;FN為被錯誤檢測的反例,即真實情況中沒有乘客發(fā)生上車或下車行為,但被檢測為乘客發(fā)生上車或下車行為。
由表3可以看出,改進的YOLOX-SORT 的各項指標均優(yōu)于原YOLOX-SORT,在精確率、召回率與YOLOX-DEEPSORT、Center Track相差不大的情況下檢測幀率高于YOLOX-DEEPSORT 和Center Track約2倍。
本文從公交客流統(tǒng)計的實際問題出發(fā),分析了目前各種獲取公交客流數(shù)據(jù)技術(shù)的優(yōu)缺點,提出一種利用彩色圖像進行實時客流檢測方法。該方法將卡爾曼濾波器預(yù)測信息作為目標檢測的依據(jù)之一,在特定情況下實現(xiàn)了不增加運算量的情況下提高目標檢測的精確度。實驗結(jié)果表明,該方法精確度和速度較為均衡,均能滿足實際需要,此外,該系統(tǒng)也可應(yīng)用于商圈、景區(qū)等,也可推廣至其他多目標在線跟蹤、計數(shù)領(lǐng)域,如車流量檢測。下一步的研究重點前門上車乘客與后門下車乘客重識別問題,以獲取每位乘客何時何地上下車及乘車時間、距離等乘車信息,提供更加豐富的客流數(shù)據(jù)。