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