一種基于視頻監控的快速行人檢測方法
【技術領域】
[0001] 本發明屬于智能視頻監控領域,具體涉及一種基于視頻監控的快速行人檢測方 法。
【背景技術】
[0002] 從小波第一次被用于作為行人檢測的圖像特征以及使用SVM算法來做運動目標 判決分類開始,到2005年法國人Dalai在CVPR發表HOG+SVM的檢測算法時,行人檢測算法 的基本框架結構就已經確立了,即先通過選取合適的圖像特征提取圖像信息,建立合適的 分類模型訓練標準圖像樣本,進而獲得合理的識別分類器用于待檢測圖像,最終檢測得到 行人所在位置和尺寸。此后,行人檢測算法發展越來越快,提取的特征也不再單一,而是因 地制宜的從目標圖像的邊緣輪廓、紋理信息到梯度直方圖、顏色信息等,而與之相適應的分 類器也有神經網絡、SVM、Adaboost以及深度學習等算法。
[0003] 經典H0G+SVM算法,通過實驗可以發現兩點不足:⑴圖像檢測所消耗的時間太 長,遠遠無法達到實際應用中對于視頻實時監控的速度要求;(2)在沒有收集相應場景的 樣本集、沒有訓練相應的分類決策函數的前提下,實際行人檢測的效果相當不準確,過檢、 漏檢的情況很嚴重。由此可以看出,雖然OpenCV中自帶的SVM決策函數默認的訓練集是 INRIA標準行人圖像庫,但是檢測效果并不理想。在實際的視頻監控中,為了提高準確度, 必須要針對不同的檢測環境、場景,動態的采集相應的標準圖像庫,并計算出相應的決策函 數。
[0004] 針對第一點不足,本發明提出的一種類似于HOG描述子的CENTRIST描述子(即 CensusTransformHistogram,也稱C4),其在同樣突出邊緣信息的基礎上計算復雜度卻大 大降低。相比于HOG描述符,C4更注重于保留圖像的邊緣輪廓等信息,有效的捕捉了圖像的 局部特征并完成編碼,避免了由于光照等突然變化引起的不良影響。而且其只需要計算鄰 域像素間的差值計算量被大大減小。
[0005] 為了提高行人檢測的準確度和運行速度,本發明在原有SVM分類算法基礎上提出 了一種改進算法--快速分類的支持向量機算法(FastClassificationSupportVector Machine,縮寫為:FCSVM)。實驗證明這種算法在不明顯降低SVM算法分類效果的基礎上減 少訓練出來的支持向量的個數,相應的也會減少了檢測時決策函數的時間開銷。
【發明內容】
[0006] 針對上述傳統行人檢測方法存在的的問題,本發明提出一種基于視頻監控的快速 行人檢測方法,可以提高行人檢測的準確度和運行速度。
[0007] 為實現上述目的,本發明具體技術方案如下:一種基于視頻監控的快速行人檢測 方法,包括如下步驟:
[0008] 1)視頻采集及參數設定:讀取視頻流,初始化閾值Thread,轉步驟2);
[0009] 2)運動檢測計數器i= 0,轉步驟3);
[0010] 3)讀取一幀圖像,轉步驟4);
[0011] 4)判斷計數器i是否大于閾值Thread,如果i>Thread,轉步驟8),否則轉步驟5);
[0012] 5)圖像預處理:對圖像進行色彩空間變換、去噪以及灰度化處理,利用Gamma公式 壓縮圖像大小,轉步驟6);
[0013] 6)判斷是否有運動目標:檢測視頻圖像中是否有運動目標闖入,如果沒有運動目 標,轉步驟2);否則轉步驟7);
[0014] 7)計數器i加1:i=i+1,轉步驟3);
[0015] 8)行人檢測:判斷闖入的運動目標是否是行人,如果是行人轉步驟9),否則轉步 驟2);
[0016] 9)報警;
[0017] 其中,上述步驟8)包含如下步驟:
[0018] 8. 1)提取當前幀的CENTRIST描述符;
[0019] 8. 2)運用訓練好的線性SVM分類器檢測圖像中行人特征點;
[0020] 8. 3)根據行人特征點判斷闖入的運動物體是否是行人。
[0021] 進一步地,上述步驟8. 1)中提取CENTRIST描述符,包括如下步驟:
[0022] 8. 1. 1)對當前幀I進行灰度化、平滑濾波,消除局部紋理特征,提取基本的邊緣信 息及像素間的大小關系,其中,濾波器為Sobel算子;
[0023] 8. 1. 2)根據當前幀I像素間的大小關系,構造一個新的圖像I、
[0024] 8. 1. 3)求圖像V中每一個像素點的CT編碼值;
[0025] 8. 1. 4)根據圖像V中所有像素點的CT編碼值的直方圖得到CENTRIST描述符。
[0026] 進一步地,上述步驟8. 2)中運用訓練好的線性SVM分類器檢測圖像中行人特征點 的方法包括如下步驟:
[0027] 8. 2. 1)對采集的樣本數據集進行SVM訓練,得到支持向量集S,其中,向量集S的 維數為N;
[0028] 8. 2. 2)設m= 1,n=N_m;
[0029] 8. 2. 3)根據m、n將向量集S分為兩個子集P和Q,其中,子集P的維數為m,子集Q 的維數為n;
[0030] 8. 2. 4)計算子集P的內積Km和子集Q的內積Kn,計算公式如下:
[0033] 8. 2. 5)根據內積Km、Kn計算變換矩陣WT,計算公式如下:
[0034] Kn=ffTKm;
[0035] 8. 2. 6)根據變換矩陣WT計算矩陣A和矩陣B,計算方法如下:
[0036] A= ( 0 !,…,0 L);
[0037] B= ( 0,!0,L)
[0038] 其中:
[0045]上式中:a」為拉格朗日乘子,y」為正負標識
[0046] 8. 2. 7)根據矩陣A和矩陣B求em= | |A-B| | ;
[0047] 8. 2. 8)m=m+1,n=N_m;
[0048] 8. 2. 9)判斷m是否小于N,若m〈N,則轉步驟8. 2. 3),否則轉步驟8. 2. 10);
[0049]8. 2. 10)求出最小的e,得到其對應的變換矩陣WT;
[0050] 8. 2. 11)在上一步WT的基礎上,利用決策函數判斷圖像中像素點是否是行人特征 點,其中決策函數如下:
[0051]
,式中b為閾值(b=y」-WTx);
[0052] 本發明提出的一種基于視頻監控的快速行人檢測方法,有效減少了實際監控中的 開銷,實現對視頻實時監控以及快速、準確的行人檢測。
【附圖說明】
[0053] 圖1基于視頻監控的快速行人檢測方法流程圖。
[0054] 圖2行人檢測流程圖。
[0055] 圖3提取CENTRIST描述符流程圖。
[0056] 圖4線性SVM分類器檢測圖像中行人特征點算法流程圖。
【具體實施方式】
[0057] 下面結合附圖和具體實施例對本發明作進一步描述。
[0058] 圖1所示為基于視頻監控的快速行人檢測方法流程圖,包括以下步驟:
[0059] 1)視頻采集以及參數設定:讀取視頻流,初始化閾值Thread,本實施例中,初始化 Thread為3 ;轉步驟2);
[0060] 2)設運動檢測計數器i= 0,轉步驟3);
[0061] 3)讀取一幀圖像,轉步驟4);
[0062]4)判斷計數器i是否大于閾值Thread,如果