專利名稱:一種在復雜場景的視頻中進行人體頭肩檢測的方法
技術領域:
本發明屬于計算機信息挖掘技術領域,特別涉及一種在復雜場景的圖片中對人體的頭 肩檢測的方法,尤其涉及在真實世界的監控視頻的幀中行人的頭肩檢測。
背景技術:
近年來,在計算機視頻分析領域,在視頻中對人體的檢測是一個熱門的研究方向。在 人體檢測的各種方法中,通過檢測身體的各部分來檢測人體是一個重要輔助手段。而對這 些身體各部分,頭肩區域是一個非常顯著的特征。由于視頻中的經常會出現人體被部分遮 擋的情況,導致檢測困難,而此時頭肩還有很高的概率被檢測出來,所以檢測頭肩對檢測 人體很好的輔助作用。同時,在視頻事件檢測領域,人在頭肩附近的許多動作往往包含一 些隱含的事件信息,比如揮手或者打電話等。所以,復雜背景下的頭肩檢測具有重要的意 義。 .
頭肩檢測屬于目標檢測,而在目標檢測領域,方法可以分為兩類, 一是做背景提取或 分割,分離出的前景目標作為檢測結果。二是在圖像中直接搜索目標。在視頻中用背景提 取的方法只能應用于靜態攝像機,對于場景中靜止不動的目標,檢測非常困難,這限制了 它的應用范圍。所以現在一般采用在圖像中直接搜索目標的方法。這些方法一般使用分類 器根據目標的特征對目標進行分類。目標的特征是目標本身包含的特征信息,比如目標圖 像區域的顏色直方圖,紋理,梯度等。提取目標的特征之后,分類器根據目標的特征對目
標的類別進行判斷。目前國際通用的分類器主要是支持向量機(以下簡稱SVM),但是目 前的單級SVM分類器往往由于只進行一次分類,準確率不高。
發明內容
本發明的目的是為克服已有技術的不足之處,提出一種在復雜場景的視頻中進行人體頭肩 檢測的方法,以梯度方向直方圖作為描述目標的特征。采用兩級的SVM作為分類器,可 以提高準確率,同時提高檢測速度。
本發明是將一定數量的頭肩圖片和背景圖片作為正負樣本集,訓練SVM作為第一級 分類器。用頭肩圖片和身體非頭肩部分的圖片作為正負樣本,訓練SVM作為第二級分類 器。這樣就構成了一個兩級的級聯分類器。檢測區域依次經過這兩級SVM檢測,以此檢
4測結果作為最終結果。
本發明中使用的SVM是目前在國際比較流行的LibSVM分類器,不對它進行修改。 本發明提出的在復雜場景的視頻中進行人體頭肩檢測的方法,主要包括以下步驟
(1) 從待檢測的一類視頻中選擇一個視頻。從該視頻的各幀中人工標定一定數量(至 少1000張)的頭肩圖片、 一定數量(至少1000張)背景圖片和一定數量(至少1000 張)的身體其他部分的圖片,其中要求這些圖片的邊長至少1厘米。以頭肩圖片作為正樣 本圖片,以背景圖片作為負樣本圖片;;
(2) 將得到的正負樣本圖片進行左右鏡像,增加樣本的數量;
(3) 提取得到的正負樣本圖片的梯度方向直方圖,并將梯度方向直方圖轉化為向量 的形式,作為樣本圖片的梯度向量;
(4) 用從正負樣本中提取出的梯度向量對第一級支持向量機(SVM)進行訓練,生 成一個用于分類的第一級模型;
(5) 用所述頭肩圖片作為新正樣本,用所述身體其他部分的圖片代替所述背景圖片 作為新負樣本;
(6) 提取所述新正負樣本圖片的梯度方向直方圖,并將梯度方向直方圖轉化為1乘 N的向量的形式,N為正整數,作為新樣本的梯度向量;
(7) 用從新的正負樣本中提取出的梯度向量對第二級支持向量機(SVM)進行訓練, 生成一個用于分類的第二級模型;
(8) 讀入一個待檢測視頻,提取該視頻的一幀圖像;
(9) 確定該幀圖像上某一個待檢測窗口的位置和大小,采用步驟(3)的方法提取該 窗口的梯度方向直方圖,并得到該窗口的梯度向量;
(10) 將該梯度向量通過第一級分類器進行分類檢測,如果分類結果為負(即此窗口 不包含頭肩頭像),則結束該窗口的檢測,轉步驟(11);如果第一級分類結果為正(即 第一級分類器判定此窗口包含頭肩頭像),則將該梯度向量通過第二級分類器進行分類 檢測;如果第二級分類結果為負,轉步驟(11),如果分類結果為正,則確認該窗口包 含頭肩,將窗口的坐標保存下來,作為該窗口的檢測結果;
.(11)改變窗口的位置和大小,采用步驟(3)的方法提取該窗口的梯度方向直方圖, 并得到該窗口的梯度向量,轉步驟(10)進行該窗口的分類檢測,最終得到各窗口的檢 測結果。
上述方法的步驟(3)具體包括如下步驟
(31)將每一個樣本圖片作為一個窗口,將窗口分為MxN的塊,塊之間有30%-50% 的重疊,M、 N均為正整數;(32) 該每個塊平分成多個單元;
(33) 對該每個單元內的像素計算梯度方向和大小;
(34) 將每個單元內的像素的梯度按方向統計成一個直方圖,并將梯度方向直方圖轉化
為向量的形式,作為該單元的梯度向量;
(35) 將各個單元的梯度向量連接成一個長向量,作為該塊的梯度向量;
(36) 將窗口內各個塊的梯度向量連接成一個長向量,作為該窗口的梯度向量;
(37) 將該窗口的梯度向量進行歸一化,作為該樣本圖片的梯度向量;上述方法的步驟(ll)改變窗口的位置和大小,進行該窗口的分類檢測,具體包括如
下步驟
(111) 移動該窗口的坐標,并保持30%-80%重疊度,進行該窗口的分類檢測;
(112) 改變窗口的尺寸大小(根據視頻中頭肩的大小確定取值范圍),并且依次移動窗
口的位置,進行該窗口的分類檢測。
本發明的特點及效果
本發明提出的在復雜場景的視頻中'進行人體頭肩檢測的方法,用于對真實世界里的監控視頻中的人進行頭肩檢測。選用了梯度方向直方圖作為頭肩的特征表示。梯度方向直方圖最近幾年開始用于目標檢測領域,選用它表示頭肩圖像,能夠保存目標的邊緣走向特征,實驗已經證明,它是一種魯棒的特征,能提高檢測的性能。同時,使用不同的樣本訓練兩個支持向量機,將它們構成級聯分類器。在檢測過程中,第一級分類器去掉明顯不含頭肩的區域,通過第一級分類器的窗口再由第二級分類器進行檢測。這樣,由于采用兩級分類器,可以提高準確率,同時提高了檢測速度。在視頻中將人的頭肩檢測出來,可以用于人體跟蹤、事件檢測,對于實現自動監控具有重要意義。
具體實施例方式
本發明提出的一種在復雜場景的視頻中進行人體頭肩檢測的方法,結合實施例詳細說明如下
在視頻中進行人體的頭肩檢測,實質方法仍是在圖片上進行檢測,本實施例采用直接在圖片上搜索的方法,具體包括以下步驟
(1)從待檢測的一類視頻中選擇一個視頻;從該視頻的各幀中人工標定一定數量(至
少1000張)的頭肩圖片、 一定數量(至少1000張)背景圖片和一定數量(至少1000
張)的身體其他部分的圖片,其中要求這些圖片的邊長至少1厘米;以頭肩圖片作為正樣本圖片,以背景圖片作為負樣本圖片;
6(2) 將得到的正負樣本圖片進行左右鏡像,增加樣本的數量;
(3) 提取得到的正負樣本圖片的梯度方向直方圖,并將梯度方向直方圖轉化為向量的 形式,作為樣本圖片的梯度向量;具體包括
(31 )將一個每個圖片看作一個窗口,將該窗口劃分為3x3的小塊,小塊之間有50% 的重疊;
(32)該每個小塊又被平分為四個小單元;
(33 )對該每個單元內的像素計算梯度方向和大小,本實施例的梯度值采用模板[-1,0,
l]的方法來計算,方向為,《力=arCtan , W+ — , W 大小為
va/we(義力=V
其中,grad(x,y)是該像素點的梯度方向。/(x,y)是該像素點的亮度值。Value(x,y)是該像 素點的梯度的值;
(34) 將單元內各像素的梯度值按照梯度方向統計成顏色直方圖,以向量的形式保存, 將該向量作為該單元的梯度向量;
(35) 將各單元的梯度向量連接起來,每個小塊用一個歸一化的4x9=36維的向量 來表示,作為該塊的梯度向量;
(36) 將各塊的梯度向量連接起來,每個窗口的梯度方向直方圖就可以用一個9x 36=324維的向量來表示,作為該窗口的梯度向量;
(4) 用從正負樣本中提取出的梯度向量對第一級支持向量機(LibSVM)進行訓練,生 成一個用于分類的第一級模型;
(5) 用所述頭肩圖片作為新正樣本,用所述身體其他部分的圖片代替所述背景圖片作 為新負樣本;
(6) 提取得到的新正負樣本圖片的梯度方向直方圖,并將梯度方向直方圖轉化為1乘 324的向量的形式,作為新樣本的梯度向量;
(7) 用從新的正負樣本中提取出的梯度向量對第二級支持向量機(LibSVM)進行訓練, 生成一個用于分類的第二級模型;
(8) 調用openCV庫讀入一個待檢測視頻,解析出該視頻上的一幀;
(9) 確定該幀圖像上某一個待檢測窗口的位置和大小,采用步驟(31)到步驟(37)的方法提取該窗口的梯度方向直方圖,并得到該窗口的梯度向量;
(10) 將該梯度向量通過第一級LibSVM分類器進行分類檢測,如果分類結果為負(即
此窗口不包含頭肩頭像),則結束該窗口的檢測,則轉步驟(13);如果第一級分類結果為
正(即第一級分類器判定此窗口包含頭肩頭像),則將該梯度向量通過第二級LibSVM分 類器進行分類檢測;如果第二級分類結果為負,轉步驟(13),如果分類結果為正,則確 認該窗口包含頭肩,將窗口的坐標保存下來,作為該窗口的檢測結果;
(11) 移動該窗口的坐標,并保持30%-80%重疊度,對該待檢測窗口進行檢測;
(12) 改變窗口的尺寸大小(根據視頻中頭肩的大小確定取值范圍),并且依次移動窗 口的位置,進行該窗口的分類檢測,最終得到各窗口的檢測結果。
權利要求
1、一種復雜場景的視頻中進行人體頭肩檢測的方法,其特征在于,主要包括以下步驟(1)從待檢測的一類視頻中選擇一個視頻。從該視頻的各幀中人工標定一定數量的頭肩圖片、一定數量背景圖片和一定數量的身體其他部分的圖片,其中要求這些圖片的邊長至少1厘米。以頭肩圖片作為正樣本圖片,以背景圖片作為負樣本圖片;(2)將得到的正負樣本圖片進行左右鏡像,增加樣本的數量;(3)提取得到的正負樣本圖片的梯度方向直方圖,并將梯度方向直方圖轉化為向量的形式,作為樣本圖片的梯度向量;(4)用從正負樣本中提取出的梯度向量對第一級支持向量機進行訓練,生成一個用于分類的第一級模型;(5)用所述頭肩圖片作為新正樣本,用所述身體其他部分的圖片代替所述背景圖片作為新負樣本;(6)提取所述新正負樣本圖片的梯度方向直方圖,并將梯度方向直方圖轉化為1乘N的向量的形式,N為正整數,作為新樣本的梯度向量;(7)用從新的正負樣本中提取出的梯度向量對第二級支持向量機進行訓練,生成一個用于分類的第二級模型;(8)讀入一個待檢測視頻,提取該視頻的一幀圖像;(9)確定該幀圖像上某一個待檢測窗口的位置和大小,采用步驟(3)的方法提取該窗口的梯度方向直方圖,并得到該窗口的梯度向量;(10)將該梯度向量通過第一級分類器進行分類檢測,如果分類結果為負,則結束該窗口的檢測,轉步驟(11);如果第一級分類結果為正,則將該梯度向量通過第二級分類器進行分類檢測;如果第二級分類結果為負,轉步驟(11),如果分類結果為正,則確認該窗口包含頭肩,將窗口的坐標保存下來,作為該窗口的檢測結果;(11)改變窗口的位置和大小,采用步驟(3)的方法提取該窗口的梯度方向直方圖,并得到該窗口的梯度向量,轉步驟(10)進行該窗口的分類檢測,最終得到各窗口的檢測結果。
2、 如權利要求1所述方法,其特征在于,所述方法的步驟(3)具體包括如下步驟(31) 將每一個樣本圖片作為一個窗口,將窗口分為MxN的塊,塊之間有30%-50% 的重疊,M、 N均為正整數;(32) 該每個塊平分成多個單元;(33) 對該每個單元內的像素計算梯度方向和大小;(34) 將每個單元內的像素的梯度按方向統計成一個直方圖,并將梯度方向直方圖轉化 為向量的形式,作為該單元的梯度向量;(35) 將各個單元的梯度向量連接成一個長向量,作為該塊的梯度向量;(36) 將窗口內各個塊的梯度向量連接成一個長向量,作為該窗口的梯度向量;(37) 將該窗口的梯度向量進行歸一化,作為該樣本圖片的梯度向量:。
3、如權利要求i所述方法,其特征在于,所述方法的步驟(n)改變窗口的位置和大小,進行該窗口的分類檢測,具體包括如下步驟(111) 移動該窗口的坐標,并保持30%-80%重疊度,進行該窗口的分類檢測;(112) 改變窗口的尺寸大小,并且依次移動窗口的位置,進行該窗口的分類檢測。
全文摘要
本發明涉及一種在復雜場景的視頻中進行人體頭肩檢測的方法,屬于計算機信息挖掘技術領域。從視頻的各幀中人工標定頭肩圖片、背景圖片和身體其他部分的圖片作為正負樣本,鏡像這些圖片;提取正負樣本的梯度向量,對第一級分類器訓練;用頭肩圖片作為新正樣本,用身體其他部分的圖片作為新負樣本;提取正負樣本的梯度向量,對第二級分類器訓練。確定待檢測視頻的一幀中一個待檢測窗口的位置和大小,提取該窗口的梯度向量;將它通過第一級分類器,若分類為負,則結束檢測,若第一級分類為正,則將它通過第二級分類器;若分類為正,則確認該窗口包含頭肩。改變窗口的位置和大小,對新窗口進行同樣的檢測。本發明可以提高準確率,同時提高檢測速度。
文檔編號G06K9/00GK101477626SQ200910077108
公開日2009年7月8日 申請日期2009年1月16日 優先權日2009年1月16日
發明者丁錫鋒, 孫立峰, 鵬 崔, 輝 徐, 楊士強 申請人:清華大學