劉俊潔
摘? ?要:近年來,我國軌道交通行業(yè)發(fā)展迅速,軌道交通線網(wǎng)的規(guī)模在逐漸擴大。基于地鐵車站服務(wù)設(shè)施相關(guān)規(guī)劃設(shè)計的思想分析可知,車站的整體和各服務(wù)設(shè)施的設(shè)計與車站客流量的實際情況不符,所以行人相關(guān)特征數(shù)據(jù)的獲取尤為重要,是科學(xué)的行人服務(wù)設(shè)施規(guī)劃設(shè)計和優(yōu)化配置的基礎(chǔ)。文章采用基于SSD模型行人檢測與現(xiàn)常用的基于HOG與SVM特征識別算法比較對行人檢測,并利用Kalman濾波算法對行人跟蹤,使用OpenCV3.4.7計算機視覺庫和MFC對行人監(jiān)測系統(tǒng)平臺進行搭建。
關(guān)鍵詞:軌道交通;行人監(jiān)測;人臉識別;行人跟蹤
1? ? 行人檢測技術(shù)
行人檢測是實現(xiàn)行人跟蹤以及行人特征數(shù)據(jù)提取的前提,行人檢測效果的好壞會直接影響后續(xù)的操作效果。盡管現(xiàn)在有很多用于行人檢測的方法,但目標算法仍然不完全成熟,無法應(yīng)用于所有情況。自2005年起,基于統(tǒng)計學(xué)習(xí)的行人檢測發(fā)展迅速,成為熱點,郭明瑋等[1]詳細論述了支持向量機(Support Vector Machine,SVM)的原理、構(gòu)建目標特征模型的方法以及SVM訓(xùn)練和學(xué)習(xí)的過程,總結(jié)了基于SVM的目標檢測方法。如今廣泛應(yīng)用的行人檢測框架是使用方向梯度直方圖(Histogram of Oriented Gradient,HOG)算法進行特征提取,再訓(xùn)練SVM分類器,但在復(fù)雜環(huán)境中效果并不理想。自2012年以來,深度學(xué)習(xí)在圖像分類處理中表現(xiàn)優(yōu)異,現(xiàn)如今,基于深度學(xué)習(xí)的行人目標檢測方法主要有RCNN,SSD和YOLO 3大種類。RCNN的效果最好,但速度慢,實際應(yīng)用時,實時檢測較難,效果較差;YOLO雖然速度很快,但是檢測效果不穩(wěn)定,當檢測目標比較小或者目標非常密集時,效果并不理想;SSD既有較快的處理速度,又有比較高的準確性。因此,本文在SSD算法基礎(chǔ)上,用地鐵行人監(jiān)控視頻數(shù)據(jù)集訓(xùn)練了一個SSD行人檢測模型,并與傳統(tǒng)的基于HOG與SVM特征算法進行對比。若圖像中出現(xiàn)行人目標,則需要準確標記行人目標并且標記其位置信息,而且需要用矩形邊框標記檢測到的行人目標,即實現(xiàn)行人目標和背景的分離[2]。
1.1? 基于HOG與SVM特征算法實現(xiàn)行人檢測
HOG特征是一種在計算機視覺和圖像處理中用來進行物體檢測的特征描述,通過計算和統(tǒng)計圖像局部區(qū)域的梯度方向直方圖來構(gòu)成特征。
SVM是常見的一種判別方法,在機器學(xué)習(xí)領(lǐng)域,是一個有監(jiān)督的學(xué)習(xí)模型,一般用來進行模式識別、分類以及回歸分析,在行人檢測中可以用作區(qū)分行人和非行人的分類器。在使用基于HOG與SVM特征算法進行行人檢測時,采集HOG特征的主要思想是通過對一幅圖像進行分析,其局部目標的表象和形狀可以被剃度或者邊緣密度方向分布的描述。筆者對圖像的各個像素點采集梯度或者邊緣的方向直方圖,根據(jù)直方圖的信息可以描述圖片的特征。OpenCV中已經(jīng)提供了計算HOG特征的方法,根據(jù)采集到的HOG特征向量,供SVM分類使用。SVM作為一個分類器,在行人檢測中可以轉(zhuǎn)化為行人與非行人的兩類分類問題,在OpenCV中運用到的是基于網(wǎng)格法的SVM。使用采集到的正樣本(行人)和負樣本(非行人、汽車、樹木、路燈等)的HOG特征,然后使用SVM分類器進行訓(xùn)練,得到行人檢測模型,進行行人檢測,其算法原理如圖1所示。
1.2? OpenCV中的深度學(xué)習(xí)人臉分類器
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)是深度學(xué)習(xí)的基礎(chǔ)。OpenCV自3.1版本就加入了DNN模塊,到3.3版本時,對DNN做了很大改進,將DNN模塊由contrib提升到了正式代碼塊中。目前,該DNN模塊支持加載訓(xùn)練好的模型,并執(zhí)行向前傳播過程(即預(yù)測)。
現(xiàn)在深度學(xué)習(xí)最常用的3大框架是Caffe,TensorFlow和Torch/PyTorch。在3大深度學(xué)習(xí)框架的基礎(chǔ)上可以非常簡單地實現(xiàn)很多功能,如圖像分類、對象檢測、圖像分割、預(yù)測等。
OpenCV提供了兩種不同的模型:一種是16位浮點數(shù)的caffe人臉模型(5.4 MB),另一種是8 bit量化后的TensorFlow人臉模型(2.7 MB)。量化是指通過犧牲精度來降低每一個權(quán)值所需要占用的空間。通常情況下,深度學(xué)習(xí)模型會有冗余計算量,冗余性決定了參數(shù)個數(shù)。因此,合理的量化網(wǎng)絡(luò)也可在保證精度的情況下減小模型的存儲體積,不會對網(wǎng)絡(luò)的精度造成影響。
本文使用的SSD模型解決了YOLO的缺點,是一種單點探測器,用于多個類別,相較于以前的單點探測器,技術(shù)更快,而且更加精確。為了獲得較高的檢測精度,SSD模型從不同尺度特征圖中對不同的數(shù)據(jù)進行預(yù)測,并按縱橫比將預(yù)測明確分開。這些設(shè)計特點導(dǎo)致了簡單的端到端訓(xùn)練和高精度,進一步提高了速度與精度的權(quán)衡。
1.3? 兩種算法實驗結(jié)果對比
以某地鐵站上行樓梯監(jiān)控視頻為例,如圖2所示,該視頻中行人流量較大,視頻幀率為3幀/s,總幀數(shù)252幀,使用基于HOG與SVM特征算法的人臉檢測方法和基于SSD模型行人檢測兩種方法,行人檢測模型的性能評估環(huán)境采用Microsoft Visual Studio 2010軟件,基于HOG與SVM特征算法檢測得到的行人區(qū)域用紅色矩形框標記如圖3所示,基于SSD模型算法行人檢測得到的行人區(qū)域用綠色矩形框標記其結(jié)果如圖4所示。圖5為樣本所屬類別的定義。同時利用檢測率與誤檢率兩個指標來作為評價指標,其計算公式可參考Liu等[3]的研究,如式(1—2):
基于HOG與SVM特征算法的優(yōu)缺點都很明顯。優(yōu)點:HOG表示的是邊緣(梯度)的結(jié)構(gòu)特征,因此可以描述局部的形狀信息。位置和方向空間的量化一定程度上可以抑制平移和旋轉(zhuǎn)帶來的影響。采取在局部區(qū)域歸一化直方圖,可以抵消部分光照變化帶來的影響,一定程度上忽略了光照顏色對圖像造成的影響,使得圖像所需要的表征數(shù)據(jù)的維度降低了。分塊分單元的處理方法,也使得圖像局部像素點之間的關(guān)系可以很好地得到表征。缺點:描述子生成過程冗長,導(dǎo)致速度慢、實時性差,很難處理遮擋問題。相應(yīng)地,運用到檢測視頻中。兩種算法數(shù)據(jù)對比如表1所示。
2? ? 行人目標跟蹤
行人檢測、行人跟蹤和行人特征數(shù)據(jù)提取過程緊密相連,后者以前者為基礎(chǔ)。因此,本文以行人檢測為基礎(chǔ),進行行人目標跟蹤,通過系統(tǒng)提取不同的地鐵站行人特征數(shù)據(jù)[4]。
目標跟蹤指的是在圖像序列之間創(chuàng)建基于位置、速度等有關(guān)特征對應(yīng)匹配的操作,通常利用目標的點、線或區(qū)域等特征在后續(xù)的圖像序列中進行目標的匹配,是進一步獲取目標信息(如人流量、行人速度等)的必要操作。行人的跟蹤可以將整體或者部分用于描述行人從而進行跟蹤,如跟蹤行人的頭部或者軀干,根據(jù)需求的不同,選擇不同的跟蹤對象以達到行人跟蹤目的。本文的行人跟蹤方法是在上文的基礎(chǔ)上進行,采用人頭部分的跟蹤以達到行人的跟蹤目的。地鐵站作為一個人流量較為集中,行人之間遮擋嚴重的場所,要想得到不錯的效果,需要能夠應(yīng)對遮擋情況的跟蹤方法,因此,采用卡爾曼濾波器對行人進行目標跟蹤。
卡爾曼濾波器是一個對動態(tài)系統(tǒng)狀態(tài)序列進行線性最小誤差估計的算法[5],基本思想是先不考慮輸入信號和觀測噪聲的影響,得到狀態(tài)變量和輸出信號的估計值,再用輸出信號的估計誤差加權(quán)后校正狀態(tài)變量的估計值,使狀態(tài)變量估計誤差的均方差最小??柭鼮V波器包括兩個主要過程:預(yù)估與校正,其原理如圖6所示,數(shù)學(xué)模型模型如下。
式中,X(k)為狀態(tài)向量,A(k+1,k)為狀態(tài)轉(zhuǎn)移矩陣,w(k)為系統(tǒng)噪聲,Z(k)為觀測向量,H(k)為觀測矩陣,v(k)為互不相關(guān)的均值為零的高斯白噪聲向量,其協(xié)方差矩陣:
利用卡爾曼濾波器的理論可得知預(yù)測方程以及更新方程,更新方程組為:
預(yù)測方程組為:
通過建立運動模型,定義狀態(tài)方程和觀測方程各個參數(shù),就能利用卡爾曼濾波器實現(xiàn)行人運動目標的跟蹤。為滿足實際應(yīng)用需要,其多行人目標跟蹤流程應(yīng)如圖7所示,為了驗證此方法,本文將介紹軟件的實現(xiàn)以及系統(tǒng)搭建。
3? ? 系統(tǒng)設(shè)計以及軟件實現(xiàn)
本文研究主要以地鐵站內(nèi)的視頻監(jiān)測系統(tǒng)為載體,進行行人目標檢測,從而獲得所有與特定站內(nèi)規(guī)劃設(shè)施相關(guān)的行人特征數(shù)據(jù)(包括人流量、行人速度),本項目視頻選用地鐵站的監(jiān)控視頻,若要提取行人的物理速度,需要監(jiān)控攝像頭的安裝角度,每個像素與實際長度的比例等,因此,將y方向行人移動的平均像素作為檢測速度。該系統(tǒng)包括視頻采集與存儲、視頻檢測、結(jié)果存儲3大功能模塊,系統(tǒng)的總體架構(gòu)如圖8所示。
微軟基礎(chǔ)類庫(Microsoft Foundation Classes,MFC)是微軟公司提供的一個C++類庫,是一種常用于系統(tǒng)界面實現(xiàn)的工具。本文利用此工具達到了監(jiān)測系統(tǒng)的目的,檢測系統(tǒng)的主要界面如圖9所示。該系統(tǒng)的功能包括以下幾方面:
(1)查看監(jiān)控視頻文件。點擊右側(cè)“選擇視頻”按鈕,打開視頻存儲的本地文件夾,選中視頻文件。
(2)對視頻文件進行行人檢測。選中視頻文件后點擊“開始處理”,在界面上的picture控件內(nèi)對行人檢測的結(jié)果以視頻畫面逐幀播放。
(3)查看行人特征數(shù)據(jù)。在視頻監(jiān)測時,系統(tǒng)界面右下角會有行人的特征數(shù)據(jù)實時顯示。
4? ? 結(jié)語
本文主要運用OpenCV計算機視覺庫,設(shè)計了一個地鐵站行人微觀行為數(shù)據(jù)監(jiān)測的軟件系統(tǒng),運用圖像處理方法處理視頻圖像,在OpenCV的環(huán)境下,用C++語言實現(xiàn)。通過深度學(xué)習(xí)與傳統(tǒng)行人目標檢測方法對比,根據(jù)得到的數(shù)據(jù)對比討論合適的圖像處理的方法,并通過卡爾曼濾波器實現(xiàn)行人的跟蹤,利用針對性的軟件代碼編寫和檢測系統(tǒng)交互界面的設(shè)計。最終實現(xiàn)的系統(tǒng)具有查看監(jiān)控視頻文件,對其進行行人數(shù)據(jù)檢測、提取,并在交互界面上顯示。運用自行采集的視頻對系統(tǒng)進行實驗,結(jié)果證明該系統(tǒng)能夠?qū)崿F(xiàn)預(yù)期功能。
[參考文獻]
[1]郭明瑋,趙宇宙,項俊平,等.基于支持向量機的目標檢測算法綜述[J].控制與決策,2014(2):193-200.
[2]石偉龍.基于視頻的行人檢測和跟蹤[D].重慶:重慶郵電大學(xué),2017.
[3]LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot multibox detector[C].Amsterdam:European Conference on Computer Vision,2016.
[4]田仙仙,鮑泓,徐成.一種改進HOG特征的行人檢測算法[J].計算機科學(xué),2014(9):320-324.
[5]REYNA R A,MICHEL C.Segmenting images with support vector machines[J].International Conference on Image Processing,2002(6):820-823.
Abstract:In recent years, Chinas rail transit industry has developed rapidly, the scale of rail transit network is gradually expanding. Based on the analysis of the relevant planning and design of subway station service facilities, the overall design of the station and the design of various service facilities are not consistent with the actual situation of station passenger flow, so the acquisition of pedestrian related characteristic data is particularly important, which is a scientific planning and design of pedestrian service facilities and is excellent, its the basic of configuration. In this paper, the depth learning face classifier based on OpenCV is compared with the commonly used feature recognition algorithm based on hog and SVM to detect pedestrians, and Kalman filtering algorithm is used to track pedestrians, and OpenCV3.4.7 computer vision library and MFC are used to build the system platform.
Key words:rail transit; pedestrian monitoring; face recognition; pedestrian tracking