姬麗娜,陳慶奎,陳圓金,趙德玉,方玉玲,趙永濤
(1.上海理工大學 光電信息與計算機工程學院,上海 200093; 2.上海理工大學 管理學院,上海 200093)
(*通信作者電子郵箱coldpoint@sina.cn)
基于GPU的視頻流人群實時計數
姬麗娜1*,陳慶奎1,2,陳圓金1,趙德玉2,方玉玲2,趙永濤1
(1.上海理工大學 光電信息與計算機工程學院,上海 200093; 2.上海理工大學 管理學院,上海 200093)
(*通信作者電子郵箱coldpoint@sina.cn)
為了解決人群遮擋嚴重、光照突變等惡劣環境下人群計數準確率低的問題,提出基于混合高斯模型(GMM)和尺度不變特征變換(SIFT)特征的人群數量統計分析新方法。首先,基于GMM提取運動人群,并采用灰度共生矩陣(GLCM)和形態學方法去除背景中移動的小物體和較密集的噪聲等非人群前景,針對GMM算法提出了一種效率較高的并行模型;接著,檢測運動人群的SIFT特征點作為人群統計的基礎,基于二值圖像的特征提取大大減少了執行時間;最后,提出基于人群特征數和人群數量進行統計分析的新方法,選擇不同等級的人群數量的數據集分別進行訓練,統計得出平均單個特征點數,并對不同密度的行人進行計數實驗。算法采用基于GPU多流處理器進行加速,并針對所提算法在統一計算設備架構(CUDA)流上任務的有效調度的方法進行分析。實驗結果顯示,相比單流提速31.5%,相比CPU提速71.8%。
視頻監控;GPU并行計算;人群計數;尺度不變特征變換;混合高斯模型;統一計算設備架構
視頻監控領域中人群數目統計一直是視頻監控領域的研究熱點,在實際場景有著非常廣泛的應用,比如通過分析人數用動態控制交通信號燈來優化管理行人流量、控制地鐵站入口處的乘客流量、旅游景點客流量統計、公共安全監控等。人群統計的方法一般有直接統計和間接統計:直接統計法比如通過分類器等聚類算法首先對視頻圖像進行分割,把行人分割成單獨的個體[1-3];間接統計法比如機器學習算法、統計分析法[4-6]。然而在實際應用中人群統計面臨著諸多挑戰:首先最常見的遮擋問題使算法無法精確地分割出每個人,光照突變常常導致背景分割和連通體檢測很大的誤檢率,算法要想在視頻中分割每個個體并進行計數是非常困難的,本文選擇間接統計法,把視頻中的人群和人群特征視為一個整體,從宏觀的視角去分析這些人群的特征和人群個數的關系相對來說更加合理。此外視頻監控的實時性在實際應用中也有很大的需求。綜上所述要精確并實時地統計人群數目,本文選擇間接統計法和基于GPU(Graphics Processing Unit)的算法并行加速。
為了提高人流分析的效率和準確度,本文提出了新的解決方法,具體包括以下幾個方面:
1)針對高斯混合模型(Gaussian Mixture Model, GMM)算法特點,提出一種并行模型,減少內存復制操作從而減少算法執行時間,并與另外一種模型進行比較分析。
2)比較統一計算設備架構(Compute Unified Device Architecture, CUDA)多流處理器和單流處理器的異同,對多流處理器上任務的調度進行分析和實驗對比。
3)在運動向量生成階段,本文選擇基于混合高斯背景分割得到的二值圖像進行尺度不變特征變換(Scale-Invariant Feature Transform, SIFT)提取。這樣做的原因是雖然基于攝像頭的背景分割效果并不非常理想,但是因為本文后面的分析是采取統計分析的方法,不需要過于在乎背景分割的人群輪廓等信息,而是從宏觀上考慮整個人群的總體特征。另一方面,SIFT算法對光照、旋轉、尺度變換等都有很強的魯棒性,但是算法復雜度高,執行時間長,而本文采取基于二值圖像的特征提取大幅減少了算法執行時間,提高了執行效率。該方法為人群統計的探索開拓了一個新視角。
4)在人群個數統計過程中,本文的算法受Albiol等[4]的啟發,采取根據特征點個數Nc和單個人的特征點個數N1之間的簡單映射關系,得到當前視頻幀的人群個數,然而不同的是,Albiol等的算法對N1的估算上只提取一幀圖像來估計平均值,這種方法雖然在PETS2009數據集上表現出色,但是本文在實驗過程發現這種做法對其他場景并不適用,本文將采取對N1新的訓練方法,即采取不同等級的數據對N1進行訓練,提高了檢測精度,本文用這種訓練方法在多處場景的各種條件下進行實驗,均表現良好。
此外需要說明的是本文應用場景為:固定攝像頭下的行人統計,并且攝像頭視角中的人群不是由遠至近或由近至遠,而是垂直視角,攝像頭中的行人在人眼中的大小是基本相同或者有非常小的尺度變換;因此本文對場景作以下合理假設:假設行人在攝像頭范圍內各個位置的平均特征點數量基本相等。接下來本文將分別闡述人流分析的相關工作,進行算法分析,展示實驗結果并進行對比分析,最后進行總結。
目前人群統計方面的研究基本從兩個不同的視角分析:一種是直接檢測;另一種是間接檢測。前者是基于目標檢測的人群密度估計算法,這種模式識別的方法在行人遮擋嚴重的情況下進行分割非常艱難。間接檢測法包括最早被采用的人群密度特征即基于像素統計的方法和基于紋理分析的人群密度估計方法。近年來,很多學者都致力于研究間接檢測的方法,這種方法不需要分別檢測和識別每個人,而是提取整個視頻中的動態特征向量,并根據特征點數量和人群數目的映射關系來統計人數。
事實上想要準確地把每個人都單獨分割出來本身就是一項非常具有挑戰的任務,算法通常都會受到光照、環境變化的影響,甚至在遮擋非常嚴重的情況下,這項工作根本難以進行。相對而言,間接檢測的方法更加穩定,魯棒性更強,因為這種方法基于相對更容易檢測的特征點進行分析。這種方法簡單易實現,在很多場景中無論是在精度還是效果上都表現出色。由Albiol等在2009年提出的統計分析法的人群計數和事件檢測在PET2009數據集上表現出色,到目前為止,有很多學者對此陸續做出了大量的改進工作,以解決偽靜態點被忽略[7]、角點檢測算法魯棒性不夠強[8]、角點數和人數的映射關系[9]、視角變換和密度影響[10]等問題。Hou等則通過背景差分法提取動態人群,接著基于EM(Expectation Maximization)算法和新的聚類模型定位每個人,最后根據位置、特征等信息計算人群個數,該方法把前景像素點個數和人群個數視為線性關系[11-12]。上述的改善工作中由于使用過于復雜的模型,雖然對效果有一定的改善,但是花費過度的資源和時間去改善的效率可能并不是很高,尤其是視頻圖像處理中,速度和精度也同樣重要。因此本文將對Albiol等的方法中參數N1的訓練階段作一定改進,得到更合理的參數,在提升精度的同時并不會增加執行時間的開銷。在此基礎上,本文將基于目標檢測和基于特征分析的方法結合,通過改善基于高斯混合模型(GMM)的背景分割法和基于二值圖像的SIFT特征基礎上進行人群的統計分析。由于是基于運動人群,而不是基于模式識別等方式,因此本文方法同樣非常適合分辨率非常低的視頻圖像。
本章將詳細闡述本文提出的方法。由于是基于攝像頭的視頻圖像分析,因此本文將首先進行攝像頭視角調整,調整原則為:由于人的視覺特點是近大遠小,如果攝像頭位置過低則可能造成行人在攝像頭視角內在最遠處和最近處的大小差距太大:如果攝像頭位置過高可能讀取的行人會很小,特征也會過少。本文經過矯正的兩個實驗場景中攝像頭合適位置如圖1所示。

圖1 攝像頭矯正圖示
下面分別對背景分割、特征提取和人數統計進行討論。
2.1 流加速的背景分割
前景分割方法有很多[13],考慮到算法復雜度和抗干擾度等方面的因素,本文采取為圖像每個像素建立自適應的高斯混合模型進行背景分割。首先進行按照式(1)進行多個高斯分布加權建模,并采取自學習方式進行背景更新,更新模型方法如式(2)~(4)。由于后續的特征分析是基于提取的前景圖像,因此前景的提取效果至關重要,但是需要注意的是,這里的提取效果并不是指傳統意義上為了進行連通體個數統計而要求運動前景必須能夠單獨分離每個個體,不能容忍任何噪聲和前景被分裂等現象,前文已經討論過,要達到這種效果由于受到各種復雜條件的干擾本身就很難實現。本文算法是基于特征統計,對行人的前景輪廓不做作殊要求,但是如果場景中大面積都是運動的背景,是不可行的,因此需要對場景中的干擾進行優化。針對背景中大量細小的噪點,本文將對提取的運動人群進行形態學處理。另外場景中可能存在小幅度往復運動的物體如搖晃的樹葉、飄搖的廣告橫幅等,本文采取基于灰度共生矩陣(Gray Level Co-occurrence Matrix, GLCM)提取出來的紋理特征來去除干擾,這些特征具有很強的抗光照突變特征和局部序列性,具體方法之前已有研究[14],在此不再贅述。
此外,為了提高視頻處理的速度,本文采取基于GPU/CPU協同計算的方法,在CPU上處理邏輯性比較強的任務,由于本文中前景提取算法在圖像像素之間沒有任何關聯性,每個像素進行單獨計算,非常適合在GPU上并行計算。如果使用默認的單流進行計算,每幀圖像都要進行HOST和GPU的之間數據傳入傳出,內存復制的時間太長,這會大大減弱使用GPU進行并行加速的時間優勢,因此選擇申請多個CUDA流來處理數據,分配兩組相同的GPU緩沖區,這樣每個流分別單獨在輸入數據塊上執行工作,利用多流的重疊功能隱藏傳輸時間。改進單流程序的思想很簡單,包括“分塊”計算以及內存復制和核函數執行的重疊。比如,第0個流將核函數計算結果傳出到HOST端的同時,第1個流將開始執行核函數。緊接著,第1個流將計算結果傳出到HOST端,同時第0個流可以開始在下一塊數據上執行核函數。如果內存傳輸操作和核函數執行時間大致相同。在任何執行內存復制和核函數的執行相互重疊的設備上,當使用多個流時,程序的整體性能都會提升。每個流中為每個像素分配一個線程,假設圖像的寬和高分別為W、H,那么在GPU上申請大小為W×H×sizeof(unsigned char)的緩存空間,并申請W×H個線程,線程塊大小為8×8。
(1)
ωxy,i,t=(1-α)ωxy,i,t-1+α
(2)
μxy,i,t=(1-ρ)μxy,i,t-1+ρIxy,t
(3)
(4)
其中:η(Ixy,t,μxy,t,σxy,t)表高斯分布,ωxy,i,t是t時刻坐標為(x,y)像素點第i個高斯分布的權重,μxy,i,t表均值,σxy,i,t表方差,Ixy,t是像素值,ρ是第二學習率,α是第一學習率。
需要注意的是,雖然從邏輯上來看,不同的流之間是相互獨立的,但事實上GPU的隊列機制并非如此,因為硬件中并沒有流的概念,而是包含一個或多個引擎來執行內存復制操作,另一個引擎來執行核函數,這些引擎彼此獨立地對操作進行排隊[15]。如圖2中所示,第0個流對A的內存復制需要在對B的內存復制之前完成,而對B的復制又要在核函數A啟動之前完成。而在硬件中這些依賴性將丟失,因此在使用流時必須要注意到硬件的工作方式和CUDA流編程模型的方式是不同的,將操作放入流中隊列的順序將影響著CUDA驅動程序調度這些操作以及執行的方式。為了確保相互獨立的流能夠真正地并行執行,需要合理調度流,從而高效使用多個CUDA流。如果同時調度某個流的所有操作,那么很容易無意中阻塞另一個流的內存拷貝或者核函數執行,因此在將操作放入流的隊列時應采用寬度優先方式,而非深度優先方式。如果內存復制操作時間與核函數執行時間大致相當,那么真正的執行時間將如圖3所示。箭頭表示引擎間的依賴性,可以看到在新的調度順序中,這些依賴性仍能得到滿足。

圖2 程序在使用兩個不同流時的執行時間段
注:為了圖示的簡單明了,圖2和圖3的流均使用2個CUDA流作為示例,多個流執行同理。

圖3 改進后流隊列執行順序
前景分割具體執行過程如算法1所示,需要注意的是,由于需要為每個像素建立多個高斯模型,并且除了第一幀外,每一幀圖像在模型更新結束后都需要前一幀圖像的模型信息,因此選擇直接在GPU上申請大小為W×H×sizeof(model)的內存空間,并且為此GPU設備端的模型申請為全局變量,這樣不必每次在使用上一幀圖模型信息時,進行耗費時間的設備端和主機端傳輸工作,這樣的做法相比一開始就在CPU端為模型申請內存空間再傳入設備端的做法大大提高了算法執行速度。從圖4~5可知,這種方法減少了每幀兩次的內存復制操作,而在視頻圖像處理過程中,內存復制操作相對來說是相當耗時的,這也通常被視為是性能的瓶頸之一。
算法1 運動目標檢測。
輸入: frame, width, height, Idx, Idy。 輸出: foreground image。 函數 foreGroundDetector () gmm_model *dd_gmmmodel;
//申請全局變量,在GPU端建立混合高斯模型 cudaMalloc((void**)&dd_gmmmodel,WIDTHSIZE* HEIGHTSIZE*sizeof(gmm_model));
//為模型分配空間 cudaMemset(dd_gmmmodel,0,WIDTHSIZE*HEIGHTSIZE* sizeof(gmm_model));
//初始化模型 WHILE(true)
//開始混合視頻幀循環 IF Idx>0 && Idx //流同步 cuda Stream Synchronize(stream1); //流同步 輸出得到二值前景圖像 END IF END WHILE RETURN; END 函數 圖4 GMM更新在CPU/GPU端的并行模型 圖5 改進后的GMM并行模型 2.2 檢測運動人群特征點 本文對場景作以下合理的假設:場景中運動的大面積對象是行人,這與其他人流統計分析要求相同。假設場景中大面積的運動對象不是人群,而是車流、搖晃的樹等,本文方法不適用。 通過2.1節的討論已經得到場景中人群的運動前景,想要通過這些前景直接進行人群統計比如通過連通體計數等方法,這在高密度的人群中并不容易甚至根本無法執行,因為嚴重的遮擋問題、室外不穩定的光照問題等,會使得一個人被分裂為多個前景塊(可能被計數多次)、一群人由于擠在一起可能被提取為一個前景塊(可能只被計數一次)。因此,本文采取間接計數的方式,從整幅圖像的所有特征點出發進行分析。 關于特征點檢測方法,Albiol等[4]采取Harris算法實現對分析圖像的特征點檢測,Harris等[16]指出了采用Harris算法對特征點檢測的不足,相對于Harris算法[17],SIFT算法檢測的特征點在具有對平移、旋轉、噪聲的不變性的同時,對尺度縮放、亮度變化和局部遮擋也不敏感,并且對視角變化、仿射變換也保持一定的穩定性,因此SIFT算法檢測的特征點相對來穩定性更強,因此本文在運動人群的特征點檢測上采用SIFT算法。它在尺度空間中尋找極值點,并提取其位置、尺度、旋轉不變量,是一種局部特征描述子,具有獨特性、多量性和可擴展性等特點。算法2為基于SIFT的二值圖像特征點檢測過程。其中GaussianPyramid()、DogPyramid()分別通過(5)~(7)建立高斯和差分金字塔,結果如圖6和圖7所示,其中DoG(Difference of Gaussian)為高斯差分濾。 (5) L(x,y,σ)=G(x,y,σ)*I(x,y) (6) D(x,y,σ)=G(x,y,kσ)-G(x,y,σ) (7) 圖6 通過高斯濾波處理得到的部分高斯金字塔結果(k=21/3) 圖7 通過差分濾波處理得到的部分差分金字塔結果(k=21/3) L(x,y,σ)是高斯濾波函數,其中G(x,y)是圖像像素(x,y)處的高斯分布函數,(m,n)是平滑模板,σ是高斯分布標準差,初始值為1.6,D(x,y,σ)表差分濾波函數。DetectionLocalExtrama()通過子像素插值法求局部極值點,如圖8左中圓點所示,OrientationAssignment()為關鍵點分配主方向從而實現圖像旋轉不變性,如圖8右箭頭所示。實驗發現在該場景中檢測到的SIFT特征點數量高達350個左右,這樣的計算量是相當巨大的,而其中大部分特征點都是背景產生的,圖9所示是在2.1節中方法進行背景分割之后再進行特征點檢測,并且是本文最關心的行人的特征點,在該圖中雖然圖中的人只是微小的運動,前景塊也很小,但是特征點數量仍然能夠達到15個,這就為后續方法在大大減少計算量的同時仍能保證后續計數的穩定性和準確性。 圖8 局部極值點檢測和方向分配結果(351個特征點) 圖9 基于二值圖像的SIFT特征點檢測結果(15個特征點) 圖9所示為對某場景攝像頭數據分別通過2.1節方法進行運動前景提取并采用SIFT算法進行特征點檢測的效果,圖9中的圓點為所標記的SIFT特征點,白色區域為運動前景點。 算法2 特征檢測。 輸入:foregroundimage,sigma,width,height,Idx,Idy。 輸出:features。 函數ScaleInvarFeatureTransform()IFIdx>0 &&Idx //圖像預處理:先將原圖灰度化,再擴大一倍后,用高斯模糊平滑octaves=lb((double)min(width*2,height*2))-2; //計算組數,其中2是0~lb(min(width*2,height*2))的經驗值GaussianPyramid(init_gray,gauss_pyr,octaves,intervals=3,sigma); //高斯金字塔建立DogPyramid(gauss_pyr,dog_pyr,octaves,intervals); //差分金字塔建立 DetectionLocalExtrema(dog_pyr,extrema,octaves,intervals); //局部極值檢測 OrientationAssignment(extrema,features,gauss_pyr); //方向分配 DescriptorRepresentation(features,gauss_pyr,BINS=8,WindowWidth=4); //特征描述子ENDIF RETURN; END函數 2.3 人群個數統計 通過前面的討論可以知道當前視頻中區域特征點數量Nc會保持在一定范圍內浮動,受Albiol等[4]的啟發,本文通過統計學分析,對Nc以及當前場景中每個人平均所包含的特征點數量N1進行分析,然而Albiol等[4]的方法在本場景中存在以下問題:Albiol等[4]簡單地計算僅僅一幀視頻中N1的值,那么這樣會使N1的值有很大的偶然性,同一個場景同一個視角中可能得出的N1的值相差非常大。然而事實上本文方法中對具體某場景的假設是行人在攝像頭范圍內各個位置的平均特征點數量基本相等,這和假設是相悖的,在實際應用中N1對這重要的一幀選擇的依賴性相當大,如果選擇不合適那么很可能直接導致檢測結果誤差非常大。 因此本文通過一定的先驗校正和訓練的方法獲取人群數量。由于N1關系到最終的計數精確度,因此N1的選取至關重要。為了研究場景中每個人平均所包含的特征點數目N1,本文提出改善方法:通過輸出該場景幾十幀特殊的圖像的特征點數量Nc和該場景中的人群數量Np來進行一定的訓練,從而得出N1的最終值。首先選擇場景中無遮擋密度小即只有一個人的視頻幀輸出其特征點數目Nc和Np,接著選擇場景中有有遮擋即密度較大視頻幀,最后選擇場景中有遮擋嚴重的高密度人群的視頻幀,那么由Nc/Np=N1計算出每幀情況下的N1,如圖10(a)~(c)所示。可知N1的平均值,即對于該場景來說每人所包含的特征點個數平均為N1個。需要注意的是Np由手動測量所得,目的就是為了校正N1,但是本文的訓練數據集不多,只是人為地選擇一些特殊的幀,以便于校正N1,人群計數的具體執行步驟如算法3所示,最終人群數量Np的統計方法即可按照式(8)得到: Np=Nc/N1 (8) 算法3 人群數量統計。 輸入:features,width,height,Idx,Idy。 輸出: 人群數量Np。 函數peopleCounting()IFIdx>0 &&Idx Np=(Nc<10)?0:(Nc>10 &&Nc ENDIF RETURN; END函數 本文所做實驗均是基于Nvidia獨立顯卡的測試環境,本文采用2核IntelCore2E8400CPU,內存4GB,主頻3.0GHz,顯卡采用NvidiaGTX670獨立顯卡,系統類型為Windows7 64位操作系統。編程平臺為VisualStudio2010,OpenCV2.4.8,開發環境為C/C++/CUDA。下面將分別從執行時間、GPU資源使用和視頻處理運行效果等幾個方面進行實驗展示和分析。 圖10 不同人群密度情況下特征點數量統計結果 3.1 算法執行時間分析 針對2.1節中提到的GMM的CUDA執行架構模型的改進和本文中算法流多處理器的使用方法分析,下面將給出實驗對比分析:分別給出本文算法在單流、多流情況下的對比如圖11所示,GMM算法在使用改進模型前后的對比如圖12所示,本文算法在CPU和改進后GPU端的執行時間如圖13所示。 圖11中顯示使用多流比單流執行速度要快,并且隨著圖像分辨率的增加也即計算任務的增多,多流的優勢也越來越明顯。當前實驗數據中,基于多個CUDA流比單個CUDA流執行速度平均快31.5%,最快可達35.8%。但是需要注意的是分辨率為320×240的圖像使用多流執行時間卻比單流執行速度慢,而隨著分辨率的增加多流逐漸比單流速度快很多。 這是由于多流的使用需要創建流、啟動流和多個流之間同步等待等操作,本身也需要耗費一定的時間,因此對于計算量較小的任務來說可能使用多流比使用單流反而慢,如果開啟更多的流那么開啟流和多個流同步時間可能更長,這說明并不是開啟越多的流執行速度就會越快,而是要根據任務的計算量來判斷,當然計算量較大的算法可以開啟較多的流,計算量較小的可以只開啟兩個流或者使用單流。 圖11 本文算法多流和單流執行時間對比 圖12 基于改進模型和未改進GMM算法執行時間對比 圖13 本文算法在CPU和GPU上執行時間 從圖12中可以看出,GMM算法的GPU加速過程中使用本文提出的架構執行速度明顯提高,平均提速51.3%,最快可提高62%。從圖13可以看出本文算法在GPU上執行時間比CPU上執行速度提高52.2%~78.6%,平均提速71.8%。 3.2 GPU資源使用分析 本文實驗所用的獨立顯卡NVIDIAGeForceGTX670,多流處理器數量為20個,位寬256bit,帶寬224.4GB/s,顯存類型GDDR5(Hynix),GPU默認時鐘頻率1.27GHz,顯存默認時鐘頻率1.71GHz。 表1中是在正常顯示和開始運行本文程序時顯卡各項參數的變化。 通過表1中的運行時參數變化,可以看到:GPU核心的頻率在運行時由135MHz變為912MHz;GPUload表示GPU的占用量,正常顯示時是1%甚至更低,運行時是19%,還是有提高的空間;MemoryUsed顯存使用量由310MB變為516MB,大概要增加200MB左右的動態顯存,這是因為顯存在內存上動態分配,運行時需要較多的顯存空間,所以系統需要動態為顯卡分配顯存。 3.3 基于二值圖像的特征提取和人群計數效果 本文分別在兩個場景進行了實驗測試。 圖14為上海理工大學計算中心612實驗室的檢測結果,其中:(a)展示了行人在距離攝像頭最近和最遠情況下,平均每個人特征個數基本保持不變;(b)為視頻中行人被分裂為多塊,完全無法進行單獨個體的分割情況下并不影響本文算法的統計;(c)展示了人群遮擋較為嚴重并且光照變化比較強烈,得出的前景并不理想的情況下,本文算法的檢測結果。 圖15中是2016年4月8—10日,在第十三屆上海教育博覽會上作者展示本文算法中的人群計數結果圖,視頻中游覽展會的行人時而駐足觀看(幾乎靜止,二值圖像特征很少的情況),時而緩慢步行,時而蜂擁而入,時而奔跑以及展會中的各種光線變化等條件,但是本文算法都表現出很好的穩定性和準確度,圖15中分別展示了這些條件下的展示結果。 注:由于圖15是上海教育博覽會展會現場的視頻截圖,圖中左下角的數字和行人區域的箭頭是與本文無關的數字,請讀者忽略,窗口中左上角的數字字所在窗口只是為了向讀者展示視頻中的人數。 圖14和圖15中可以看出即使每個行人的前景檢測被分為多塊甚至十幾塊,但是算法依然能很準確地統計出行人的數量,并且圖14~15展示不同程度的遮擋情況,意味著不同程度的人群密度,然而不論是場景中人群密度很低甚至只有一個人還是場景中人群密度很高遮擋很嚴重,本文方法依然能保持很好的穩定性和準確性。 實驗說明本文算法在多種實際場景都有很強的適用性和穩定性。 表1 顯卡各項資源使用對比 圖14 上海理工大學計算中心612實驗室的檢測結果 圖15 2016第十三屆上海教育博覽會人群計數結果 本文針對GMM算法并行化方案中每幀圖像的K個模型在GPU內存上的頻繁讀寫問題、本文算法的GPU多流加速問題以及人群計數中的特征點和N1映射問題提出了相應的改善方案,實驗結果表明本文方案有一定改良。很多研究學者認為將前景檢測直接運用于人群統計很困難,因為前景檢測尤其是基于攝像頭的前景檢測由于受到視覺變換、攝像頭校正等問題干擾使得人群分割很困難,因此本文從另外一個角度考慮,把所有前景區域看成一個整體,去檢測其特征點,并根據特征點個數和人群個數的關系進行人群統計。實驗證明這種方法效果較好,具有一定實用價值,并且本文經過GPU加速后由實驗分析中的圖11可知完全可以做到攝像頭實時檢測。然而需要注意的是,這種方法也有一定的局限性,比如如果場景中存在一直靜止的人,那么這些人將不會被統計到,這也是未來需要持續關注和亟待解決的問題。 References) [1] ZENG C B, MA H D.Robust head-shoulder detection by PCA-based multilevel HOG-LBP detector for people counting [C]// ICPR 2010: Proceedings of the 2010 20th International Conference on Pattern Recognition.Piscataway, NJ: IEEE, 2010: 2069-2072. [2] DALAL N, TRIGGS B.Histograms of oriented gradients for human detection [C]// CVPR’ 05: Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition.Washington, DC: IEEE Computer Society, 2005: 886-893. [3] LI M, ZHANG Z X, HUANG K Q, et al.Estimating the number of people in crowded scenes by MID based foreground segmentation and head-shoulder detection [C]// ICPR 2008: Proceedings of the 19th International Conference on Pattern Recognition.Piscataway, NJ: IEEE, 2008: 1-4. [4] ALBIOL A, SILLA M J, ALBIOL A, et al.Video analysis using corner motion statistics [C]// PETS 2009: Proceedings of the 2009 IEEE International Workshop on Performance Evaluation of Tracking and Surveillance.Washington, DC: IEEE Computer Society, 2009: 31-38. [5] CHAN A B, VASCONCELOS N.Counting people with low-level features and Bayesian regression [J].IEEE Transactions on Image Processing, 2012, 21(4): 2160-2177. [6] KONG D, GRAY D, TAO H.A viewpoint invariant approach for crowd counting [C]// ICPR 2006: Proceedings of the 18th International Conference on Pattern Recognition.Piscataway, NJ: IEEE, 2006: 1187-1190. [7] CHI Y J, SUGIL C, SEUNG W H.A method for counting moving and stationary people by interest point classification [C]// ICIP 2013: Proceedings of the 2013 IEEE International Conference on Image Processing.Piscataway, NJ: IEEE, 2013: 4545-4548. [8] CONTE D, FOGGIA P, PERCANNELLA G, et al.Counting moving people in videos by salient points detection [C]// EUSIPCO 2012: Proceedings of the 20th International Conference on Pattern Recognition.Washington, DC: IEEE Computer Society, 2010: 1743-1746. [9] FRADI H, DUGELAY J L.People counting system in crowded scenes based on feature regression [C]// ICPR 2010: Proceedings of the 20th European Signal Processing Conference.Bucharest, Romania: [s.n.], 2012: 136-140. [10] CONTE D, FOGGIA P, PERCANNELLA G, et al.A method for counting people in crowded scenes [C]// AVSS 2010: Proceedings of the 2010 IEEE International Conference on Advanced Video and Signal Based Surveillance.Piscataway, NJ: IEEE, 2010: 225-232. [11] HOU Y L, PANG G K H.People counting and human detection in a challenging situation [J].IEEE Transactions on Systems, Man, and Cybernetics, Part A: Systems and Humans, 2011, 41(1): 24-33. [12] HOU Y L, PANG G K H.Automated people counting at a mass site [C]// Proceedings of the 2008 IEEE International Conference on Automation and Logistics.Piscataway, NJ: IEEE, 2008: 464-469. [13] LI H, ACHIM A, BULL D R.GMM-based efficient foreground detection with adaptive region update [C]// ICIP 2009: Proceedings of the 16th IEEE International Conference on Image Processing.Piscataway, NJ: IEEE, 2009: 3145-3148. [14] 姬麗娜,陳慶奎,趙永濤,等.一種基于GLCM的運動目標檢測新方法[J].太原理工大學學報,2015,46(6):719-726.(JI L N, CHEN Q K, ZHAO Y T, et al.A novel method of moving object detection based on GLCM [J].Journal of Taiyuan University of Technology, 2015, 46(6): 719-726.) [15] SANDERS J, KANDROT E.GPU高性能編程CUDA實戰[M].聶雪軍,譯.北京:機械工業出版社,2011:139-151.(SANDERS J, KANDROT E.CUDA by Example: An Introduction to General-Purpose GPU Programming [M].NIE X J, translated.Beijing: China Machine Press, 2011: 139-151.) [16] HARRIS C, STEPHENS M.A combined corner and edge detector [C]// Proceedings of the 4th Alvey Vision Conference.Manchester: Alvey Vision Club, 1988: 147-151. [17] 梁榮華,劉向東,馬祥音,等.基于SURF的高密度人群計數方法[J].計算機輔助設計與圖形學學報,2012,24(12):1568-1575.(LIANG R H, LIU X D, MA X Y, et al.High-density crowd counting method based on SURF feature [J].Journal of Computer-Aided Design & Computer Graphics, 2012, 24(12): 1568-1575.) This work is partially supported by the National Natural Science Foundation of China (61572325, 60970012), the Ministry of Education Doctoral Funds for Ph.D Supervisor of China (20113120110008), Shanghai Key Science and Technology Project (14511107902), Shanghai Engineering Research Center Project (GCZX14014), Shanghai Leading Academic Discipline Project (XTKX2012), Shanghai Special Fund for Research Base (C14001). JI Lina, born in 1990, M.S.candidate.Her research interests include computer graphics and image processing, parallel computing, pattern recognition. CHEN Qingkui, born in 1966, Ph.D., professor.His research interests include network computing, parallel computing, Internet of things. CHEN Yuanjing, born in 1991, M.S.candidate.His research interests include single photon detector. ZHAO Deyu, born in 1978, Ph.D.candidate.His research interests include high performance computing, GPU architecture, scheduling strategy in CPU-GPU heterogeneous system. FANG Yuling, born in 1990, Ph.D.candidate.Her research interests include high performance computing, GPU architecture, scheduling strategy in CPU-GPU heterogeneous system. ZHAO Yongtao, born in 1991, M.S.candidate.His research interests include pattern recognition, parallel computing. Real-time crowd counting method from video stream based on GPU JI Lina1*, CHEN Qingkui1,2, CHEN Yuanjing1, ZHAO Deyu2, FANG Yuling2, ZHAO Yongtao1 (1.CollegeofOptical-ElectricalandComputerEngineering,UniversityofShanghaiScienceandTechnology,Shanghai200093,China;2.CollegeofBusiness,UniversityofShanghaiScienceandTechnology,Shanghai200093,China) Focusing on low counting accuracy caused by serious occlusions and abrupt illumination variations, a new real-time statistical method based on Gaussian Mixture Model (GMM) and Scale-Invariant Feature Transform (SIFT) features for video crowd counting was proposed.Firstly, the moving crowd were detected by using GMM-based motion segment method, and then the Gray Level Co Occurrence Matrix (GLCM) and morphological operations were applied to remove small moving objects of background and the dense noise in non-crowd foreground.Considering the high time-complexity of GMM algorithm, a novel parallel model with higher efficiency was proposed.Secondly, the SIFT feature points were acted as the basis of crowd statistics, and the execution time was reduced by using feature exaction based on binary image.Finally, a novel statistical analysis method based on crowd features and crowd number was proposed.The data sets with different level of crowd number were chosen to train and get the average feature number of a single person, and the pedestrians with different densities were counted in the experiment.The algorithm was accelerated by using multi-stream processors on Graphics Processing Unit (GPU) and the analysis about efficiently scheduling the tasks on Compute Unified Device Architecture (CUDA) streams in practical applications was conducted.The experimental results indicate that the speed is increased by 31.5% compared with single stream, by 71.8% compared with CPU. video surveillance; Graphics Processing Unit (GPU) parallel computing; crowd counting; Scale-Invariant Feature Transform (SIFT); Gaussian Mixture Model (GMM); Compute Unified Device Architecture (CUDA) 2016-07-30; 2016-08-08。 基金項目:國家自然科學基金資助項目(61572325, 60970012);高等學校博士學科點專項科研博導基金資助項目(20113120110008);上海重點科技攻關項目(14511107902);上海市工程中心建設項目(GCZX14014);上海市一流學科建設項目(XTKX2012);滬江基金研究基地專項(C14001)。 姬麗娜(1990—),女,河南信陽人,碩士研究生,主要研究方向:計算機圖形圖像處理、并行計算、模式識別; 陳慶奎(1966—),男,上海人,教授,博士生導師,博士,CCF會員,主要研究方向:網絡計算、并行計算、物聯網; 陳圓金(1991—),男,河南信陽人,碩士研究生,主要研究方向:單光子探測器; 趙德玉(1978—),男,山東臨沂人,博士研究生,主要研究方向:高性能計算、GPU架構、CPU-GPU異構集群調度;方玉玲(1990—),女,河南信陽人,博士研究生,主要研究方向:高性能計算、GPU架構、CPU-GPU異構集群調度; 趙永濤(1991—),男,河北邯鄲人,碩士研究生,主要研究方向:模式識別、并行計算。 1001-9081(2017)01-0145-08 10.11772/j.issn.1001-9081.2017.01.0145 TP391.413 A





3 實驗結果與分析







4 結語