一種基于sae特征可視化學習的人體檢測方法
【專利摘要】本發明公開了一種基于SAE特征可視化學習的人體檢測方法,包括:根據所采集的深度圖像通過SAE學習構建的CNN提取圖像特征;將所述圖像特征可視化為高維抽象圖像;對所述高維抽象圖像進行第二層SAE學習構建的CNN提取圖像特征;將所述圖像特征輸入已訓練的SVM分類器,得到所述深度圖像是否包含人體。本發明提出的一種基于SAE特征可視化學習進行人體檢測的方法,利用深度圖像提取圖像特征并可視化特征得到高維圖像,通過提取高維圖像特征,提高人體檢測的正確率,可應用于智能監控以及人機交互系統。
【專利說明】
一種基于SAE特征可視化學習的人體檢測方法
技術領域
[0001] 本發明涉及計算機視覺及人體檢測技術領域,具體涉及一種基于SAE特征可視化 學習的人體檢測方法。
【背景技術】
[0002] 人體檢測是人體運動分析與人機交互的重要內容,也是計算機視覺的基礎任務, 其在智能監控、虛擬現實、人機交互、輔助臨床診斷等領域具有廣泛的應用前景。但是因為 人體檢測會受到場景光照變化、視角變化、復雜背景、姿勢變化等的干擾,在實際應用場景 下實現準確可靠的人體檢測仍然是一個難題。
[0003] 傳統的基于彩色圖或灰度圖的人體檢測方法,如H〇G、LBP和Harr-like等,能實現 簡單場景下的人體檢測。但是,基于彩色或灰度圖的人體檢測極大地受到環境光照、復雜背 景、人體姿勢變化等的影響,當被測對象身著衣服與背景顏色相近也會干擾到檢測算法的 效果。
[0004] 由于深度圖對光照、顏色和陰影等不敏感,適用性更廣。同時隨著Kinect等深度傳 感器的普及,我們可以很容易獲取深度圖。本發明利用深度圖做人體檢測任務,提出了一種 基于SAE特征可視化學習的人體檢測方法。
[0005] 另外,傳統的候選框獲取方法是利用滑動窗口的方法生成大量不同尺寸的候選 框。本發明的方法利用深度頻率直方圖的局部極值中選取候選深度平面并提出一種像素點 累計的方法定位出每個深度平面的點聚集中心,以聚集中心為中心設置若干個不同尺寸的 候選框,大大減少了候選框的數量,節省了處理時間和降低了計算機運算量,同時得到更高 質量的候選框,從而提高人體檢測的準確率。
【發明內容】
[0006] 本發明的主要目的在于克服現有技術的缺點與不足,提供提出一種基于SAE特征 可視化學習的人體檢測方法,利用特征可視化技術和優化的候選框獲取方法,實現人體檢 測,提高人體檢測準確率。
[0007] 為了達到上述目的,本發明采用以下技術方案:
[0008] 本發明的一種基于SAE特征可視化學習的人體檢測方法,包括下述步驟:
[0009] (1)訓練第一層CNN,將訓練集中的圖像全部裁剪成固定尺寸的小塊,將所述的小 塊輸入到SAE網絡中進行參數學習,得到SAE網絡的權重和偏置作為第一層CNN網絡的權重 和偏置,訓練樣本經過所述第一層CNN網絡,得到圖像特征;
[0010] (2)訓練第二層CNN,將經過第一層CNN網絡后得到的圖像特征應用特征可視化技 術重構為高維圖像,將高維圖像全部裁剪成固定尺寸的小塊并輸入到一個SAE網絡中進行 參數學習,得到SAE網絡的權重和偏置作為第二層CNN網絡的權重和偏置;高維圖像經過所 述第二層CNN網絡提取圖像高維特征;
[0011] (3)訓練分類器,
[0012] 輸入訓練集正樣本,歸一化為固定尺寸,經過步驟(1)所述第一層CNN網絡得到圖 像特征,將圖像特征經過特征可視化技術重構得到高維圖像,將高維圖像經過步驟(2)所述 第二層CNN網絡得到正樣本高維特征;
[0013] 輸入訓練集負樣本,歸一化為固定尺寸,經過步驟(1)所述第一層CNN網絡得到圖 像特征,將圖像特征經過特征可視化技術重構得到高維圖像;將高維圖像經過步驟(2)所述 第二層CNN網絡得到負樣本高維特征;
[0014] 最后將所述正樣本高維特征和所述負樣本高維特征輸入SVM訓練分類器;
[0015] (4)檢測人體,根據待測深度圖像各像素深度值得到待測深度圖像深度頻率直方 圖得到深度平面,并經過特征可視化技術重構得到高維圖像,使用步驟(3)所述已訓練的 SVM分類器對所述高維特征進行分類,將分類結果中判別為人的候選對象挑選出來,得到最 終的人體檢測結果。
[0016] 作為優選的技術方案,在步驟(1)中,第一層CNN網絡是一個兩層的網絡結構,包括 卷積層和max-poo 1 ing層。
[0017] 作為優選的技術方案,在步驟(2)中,所述特征可視化技術采用深度特征轉化算 法,將圖像特征重構成高維圖像;所述高維圖像是相比于原圖像,保留凸顯圖像本質特征的 抽象圖;所述第二層CNN網絡是一個兩層的網絡結構,包括卷積層和max-pool ing層。
[0018] 作為優選的技術方案,采用深度特征轉化算法,將圖像特征重構成高維圖像的具 體方法為:
[0019] (2-1)設定一個特征表示函數# : pUVxf -欺"'和重構表達①〇=〇(x〇), 使得求得尤€ ,滿足最小化目標:
[0020] 二獻辭aig絕黎杉::⑶r說(黑)
[0021 ]其中,L損失函數比較圖像特征〇( x )和目標重構表達〇 〇的差值, 說:4II是一個圖像標準化步驟。
[0022] (2-2)上述(2-1)中所述的L損失函數采用歐式距離損失函數:
[0023] l(〇(x),O0)= | | O(x)-〇o| |2
[0024] (2-3)上述(2-1)中所述的圖像標準化步驟,包含兩個圖像處理步驟:
[0025] _忠)=製竊(S) + 繚!,#
[0026] 其中說飲<_ = |_g是圖像x的a范式,表達式為:
[0028] 作為優選的技術方案,步驟(4)具體為:
[0029] (4-1)取出深度頻率直方圖中M個局部極大值所在深度值并取出M個局部極大深度 值所在深度平面,M為自然數;
[0030] (4-2)使用像素點累加方法分別對所述深度平面求點集中心,對所述每個點集中 心為中心取N個不同尺寸矩形區域作為候選對象;
[0031] (4-3)將候選對象經過第一層CNN網絡得到圖像特征;將所述圖像特征經過特征可 視化技術重構得到高維圖像;
[0032] (4-4)將高維圖像經過第二層CNN網絡得到高維特征;
[0033] (4-5)使用步驟(3)所述已訓練的SVM分類器對所述高維特征進行分類,得到所述 候選對象的分類結果;
[0034] (4-6)將所述分類結果中判別為人的候選對象挑選出來,應用非極大值抑制算法 WS得到最終人體檢測結果。
[0035] 作為優選的技術方案,步驟(4-2)中像素點累加方法,具體執行如下:
[0036] (4-2-1)將深度平面二值化。當像素點值大于0時將其值置1;當像素值小于等于0 時將其值置為〇;
[0037] (4-2-2)將每一列像素值累加,得到一個向量VeCt〇r_ X,取該向量中最大值所在的 位置作為點集中心的橫坐標px;
[0038] (4-2-3)取出px所在那一列,設置一個單位滑動窗對這一列像素進行卷積,得到一 個向量vector_y,取該向量中最大值所在的位置作為點集中心的縱坐標py;
[0039] (4-2-4)由4.4.2的口叉和4.4.3的口7構成點集中心?(口叉,口丫)。
[0040] 作為優選的技術方案,步驟(4-2)中,以每個點集中心為中心獲取候選對象方法, 具體執行如下:
[0041 ] (4-2-5)設置一個最小寬度Size_Min,設置增長步長為step;
[0042] (4-2-6)以Size_Min為基礎,step為步長,得到第n個候選框的寬度Width_n = Size_Min+(n_l)氺step;
[0043] (4-2-7)設置第 n 個候選框高度 He ight_n = 2*Width_n;
[0044] (4-2-8)以點集中心P(px,py)為中心,Width_nS寬度,Height_n為高度取出n個候 選框。
[0045] 本發明與現有技術相比,具有如下優點和有益效果:
[0046] 1、本發明利用深度圖信息,有效解決傳統人體檢測中的易受光照、背景等變化引 起的檢測不準確的問題,使系統更加魯棒,適用于各種復雜的應用環境;
[0047] 2、本發明針對傳統手工提取特征的方法的不足,運用SAE自動學習出圖像中人體 的特征,可以適用于小數據集并進行無監督學習自動獲取人體特征信息;
[0048] 3、本發明應用特征可視化技術,通過將特征重構成高維圖像再進一步學習高維圖 像的特征,能夠獲得更穩定可靠的特征,提高人體檢測的準確率;
[0049] 4、本發明采用優化的候選框獲取方法,結合深度圖像的特點,提出像素點積累的 算法,準確定位出每個深度平面的聚集中心,大大降低了獲取候選框的運算量,并為人體檢 測提供了高質量的候選框,從而提高人體檢測的準確率。
【附圖說明】
[0050] 圖1為本發明的流程框圖。
[0051 ]圖2為利用本發明實施例構造的兩層CNN檢測器檢測深度圖中人體效果圖。
[0052]圖3為本發明實施例的實驗結果,實線為本發明方法的效果。
【具體實施方式】
[0053]下面結合實施例及附圖對本發明作進一步詳細的描述,但本發明的實施方式不限 于此。
[0054] 實施例
[0055] 本實施例是在深圳大學深度圖像行人數據集SZU Depth Pedestrian Dataset(見 http://yushiqi .cn/research/depthdataset)上實施的,深圳大學深度圖像行人數據集通 過SwissRanger SR4000進行深度圖像采集,包含有3160張圖像的含人體的訓練數據集、 1477張圖像含人體的測試數據集和198張無人的數據集。每張圖像具有深度值和灰度值,在 本實施例中僅利用深度值。每張圖像尺寸大小為176x144,深度值范圍為0~5米。
[0056]從含人體訓練數據集中隨機挑出500張作為本實施例訓練集,將這500張圖像中的 人體區域分割出來并歸一化為64x120作為訓練集正樣本;對訓練集隨機截取1000張 64x120 的背景圖像并從192張無人數據集中隨機生成500張 64x120的背景圖像,組合成一共1500張 背景圖像的訓練集負樣本。將1477張含人體的測試數據集作為本實驗用例的測試集。
[0057]圖1為本發明的流程示意圖,本實施例的具體實施步驟如下:
[0058] 步驟一、訓練第一層CNN。
[0059] 1.1將訓練集中的圖像全部裁剪成16x16尺寸的小塊,每張圖片裁剪出40個小塊, 一共得到20000個小塊;
[0060] 1.2將1.1所述的小塊輸入到一個中間層具有64個神經元的SAE網絡中進行參數學 習,得到SAE網絡的權重和偏置作為第一層CNN網絡的權重和偏置,所述CNN網絡具有兩層結 構,第一層為具有64個連接神經元的卷積層,第二層為一個7x7的max-pooling層;
[0061 ] 1.3每一個訓練樣本經過1.2所述的第一層CNN網絡,每個樣本得到一個6720維的 圖像特征。
[0062] 步驟二、訓練第二層CNN。
[0063] 2.1將1.3所述的圖像特征應用特征可視化技術重構為高維圖像。所述的特征可視 化技術采用Mahendran和Vedaldi等人提出的深度特征轉化算法(參考Mahendran A., Vedaldi A..Understanding deep image representations by inverting them.arXiv: 1412.0035,2014.)將圖像特征重構成高維圖像。這里每個樣本可以重構出一張高維圖像; [0064] 2.2將2.1所述高維圖像全部裁剪成16x16尺寸的小塊,針對每一個64x120的樣本, 隨機裁剪出20個小塊,一共2000個樣本,可以得到40000個小塊;
[0065] 2.3將2.2所述小塊輸入到另一個中間層具有64個神經元SAE網絡(不同于1.2所述 SAE網絡)中進行參數學習,得到SAE網絡的權重和偏置作為第二層CNN網絡的權重和偏置, 所述所述CNN網絡具有兩層結構,第一層為具有64個連接神經元的卷積層,第二層為一個 7x7 的max-poo ling 層;
[0066] 2.4將2.1所述高維圖像經過2.3所述第二層CNN網絡提取圖像高維特征。每個高維 圖像可以得到一個6720維的特征。應用PCA(主成分分析)技術將該6720維特征進行降維處 理,得到1000維的圖像特征。
[0067]步驟三、訓練分類器。
[0068] 3.1依次輸入500個訓練集正樣本,歸一化為64x120的尺寸,經過1.2所述第一層 CNN網絡得到6720維的圖像特征;
[0069] 3.2將3.1所述圖像特征經過2.1所述深度特征轉化算法重構得到高維圖像;
[0070] 3.3將3.2所述高維圖像經過2.3所述第二層CNN網絡得到正樣本高維特征,并采用 PCA進行降維處理,得到1000維的正樣本特征;
[0071] 3.4依次輸入訓練集負樣本,歸一化為64x120的尺寸,經過1.2所述第一層CNN網絡 得到圖像特征;
[0072] 3.5將3.4所述圖像特征經過2.1所述深度特征轉化算法重構得到高維圖像;
[0073] 3.6將3.5所述高維圖像經過2.3所述第二層CNN網絡得到負樣本高維特征,并采用 PCA進行降維處理,得到1000維的負樣本特征;
[0074] 3.7將3.3所述正樣本特征和3.6所述負樣本特征輸入SVM訓練分類器。
[0075]步驟四、檢測人體。
[0076] 4.1針對測試集中的每一張圖像,根據待測深度圖像各像素深度值得到待測深度 圖像深度頻率直方圖;
[0077] 4.2取出4.1所述深度頻率直方圖中10個局部極大值所在深度值;
[0078] 4.3從4.1所述深度圖像中取出4.2所述10個局部極大深度值所在深度平面;
[0079] 4.4使用像素點累加方法分別對4.3所述深度平面求點集中心。所述像素點累加方 法具體為:
[0080] 4.4.1針對每一個深度平面,先轉化為二值圖,即像素值大于0的像素值設置為1, 像素值小于等于〇的設置為〇;
[0081] 4.4.2將每一列像素值累加,得到一個向量vector_x,取該向量中最大值所在的位 置作為點集中心的橫坐標px。
[0082] 4.4.3取出px所在那一列,設置一個8個單位的滑動窗(各位置值為1)對這一列像 素進行卷積,得到一個向量vector_y,取該向量中最大值所在的位置作為點集中心的縱坐 標py。
[0083] 4.4.4由4.4.2的口叉和4.4.3的口7構成點集中心?(口叉,口丫)。
[0084] 4.5以4.4所述每個點集中心為中心取8個不同尺寸矩形區域作為候選對象,以寬 度50為基礎,設置步長為3,高度為寬度的兩倍取出矩形區域,即尺寸范圍為50x100, 53x106,56x112,???,71x142;
[0085] 4.6將4.5所述候選對象歸一化為64x120的尺寸,經過1.2所述第一層CNN網絡得到 6720維的圖像特征;
[0086] 4.7將4.6所述圖像特征經過2.1所述深度特征轉化算法重構得到高維圖像;
[0087] 4.8將4.7所述高維圖像經過2.3所述第二層CNN網絡得到高維特征,并采用PCA進 行降維處理,得到1000維的樣本特征;
[0088] 4.9使用3.7所述SVM分類器對4.8所述樣本特征進行分類,得到4.5所述候選對象 的分類結果;
[0089] 4.10將4.9分類結果中判別為人的候選對象挑選出來,應用非極大值抑制算法匪S 得到最終人體檢測結果。
[0090] 圖2為利用本發明實施例構造的兩層CNN檢測器檢測深度圖中人體效果圖,其中白 色矩形框表示檢測出來的人體。
[0091] 圖3為本發明實施例的實驗結果,縱坐標表示錯誤率,實線為本發明方法的效果, 本發明方法準確率能達到目前最優的人體檢測效果。
[0092]上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受上述實施例的 限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化, 均應為等效的置換方式,都包含在本發明的保護范圍之內。
【主權項】
1. 一種基于SAE特征可視化學習的人體檢測方法,其特征在于,包括下述步驟: (1) 訓練第一層CNN,將訓練集中的圖像全部裁剪成固定尺寸的小塊,將所述的小塊輸 入到SAE網絡中進行參數學習,得到SAE網絡的權重和偏置作為第一層CNN網絡的權重和偏 置,訓練樣本經過所述第一層CNN網絡,得到圖像特征; (2) 訓練第二層CNN,將經過第一層CNN網絡后得到的圖像特征應用特征可視化技術重 構為高維圖像,將高維圖像全部裁剪成固定尺寸的小塊并輸入到一個SAE網絡中進行參數 學習,得到SAE網絡的權重和偏置作為第二層CNN網絡的權重和偏置;高維圖像經過所述第 二層CNN網絡提取圖像高維特征; (3) 訓練分類器, 輸入訓練集正樣本,歸一化為固定尺寸,經過步驟(1)所述第一層CNN網絡得到圖像特 征,將圖像特征經過特征可視化技術重構得到高維圖像,將高維圖像經過步驟(2)所述第二 層CNN網絡得到正樣本高維特征; 輸入訓練集負樣本,歸一化為固定尺寸,經過步驟(1)所述第一層CNN網絡得到圖像特 征,將圖像特征經過特征可視化技術重構得到高維圖像;將高維圖像經過步驟(2)所述第二 層CNN網絡得到負樣本高維特征; 最后將所述正樣本高維特征和所述負樣本高維特征輸入SVM訓練分類器; (4) 檢測人體,根據待測深度圖像各像素深度值得到待測深度圖像深度頻率直方圖得 到深度平面,并經過特征可視化技術重構得到高維圖像,使用步驟(3)所述已訓練的SVM分 類器對所述高維特征進行分類,將分類結果中判別為人的候選對象挑選出來,得到最終的 人體檢測結果。2. 根據權利要求1所述的基于SAE特征可視化學習的人體檢測方法,其特征在于,在步 驟⑴中,第一層CNN網絡是一個兩層的網絡結構,包括卷積層和max-pooling層。3. 根據權利要求1所述的基于SAE特征可視化學習的人體檢測方法,其特征在于,在步 驟(2)中,所述特征可視化技術采用深度特征轉化算法,將圖像特征重構成高維圖像;所述 高維圖像是相比于原圖像,保留凸顯圖像本質特征的抽象圖;所述第二層CNN網絡是一個兩 層的網絡結構,包括卷積層和max-pool ing層。4. 根據權利要求3所述的基于SAE特征可視化學習的人體檢測方法,其特征在于,采用 深度特征轉化算法,將圖像特征重構成高維圖像的具體方法為: (2-1)設定一個特征表示函數φ : 說:〃和重構表達φ〇=φ(χ〇),使得 求得尤€ Sl:rxW'xC?,滿足最小化目標:其中,L損失函數比較圖像特征Φ ( X )和目標重構表達Φ 〇的差值, :說:麗...令徽是一個圖像標準化步驟。 (2-2)上述(2-1)中所述的L損失函數采用歐式距離損失函數:(2-3)上述(2-1)中所述的圖像標準化步驟,包含兩個圖像處理步驟:其中!= Ι?Ι是圖像x的a范式,%_?4*?表達式為:5. 根據權利要求1所述的基于SAE特征可視化學習的人體檢測方法,其特征在于,步驟 (4)具體為: (4-1)取出深度頻率直方圖中Μ個局部極大值所在深度值并取出Μ個局部極大深度值所 在深度平面,Μ為自然數; (4-2)使用像素點累加方法分別對所述深度平面求點集中心,對所述每個點集中心為 中心取Ν個不同尺寸矩形區域作為候選對象; (4-3)將候選對象經過第一層CNN網絡得到圖像特征;將所述圖像特征經過特征可視化 技術重構得到高維圖像; (4-4)將高維圖像經過第二層CNN網絡得到高維特征; (4-5)使用步驟(3)所述已訓練的SVM分類器對所述高維特征進行分類,得到所述候選 對象的分類結果; (4-6)將所述分類結果中判別為人的候選對象挑選出來,應用非極大值抑制算法匪S得 到最終人體檢測結果。6. 根據權利要求5所述的基于SAE特征可視化學習的人體檢測方法,其特征在于,步驟 (4-2)中像素點累加方法,具體執行如下: (4-2-1)將深度平面二值化。當像素點值大于0時將其值置1;當像素值小于等于0時將 其值置為〇; (4-2-2)將每一列像素值累加,得到一個向量vector_x,取該向量中最大值所在的位置 作為點集中心的橫坐標px; (4-2-3)取出px所在那一列,設置一個單位滑動窗對這一列像素進行卷積,得到一個向 量vector_y,取該向量中最大值所在的位置作為點集中心的縱坐標py; (4-2-4)由4.4.2的口叉和4.4.3的口7構成點集中心卩(口叉,口7)。7. 根據權利要求5所述的基于SAE特征可視化學習的人體檢測方法,其特征在于,步驟 (4-2)中,以每個點集中心為中心獲取候選對象方法,具體執行如下: (4-2-5)設置一個最小寬度Size_Min,設置增長步長為step; (4-2-6)以Size_Min為基礎,step為步長,得到第η個候選框的寬度Width_n = Size_Min +(n_l)*step; (4-2-7)設置第η個候選框高度He i ght_n = 2*Wi dth_n; (4-2-8)以點集中心P(px,py)為中心,Width_nS寬度,Height_n為高度取出n個候選 框。
【文檔編號】G06K9/00GK105930793SQ201610246361
【公開日】2016年9月7日
【申請日】2016年4月19日
【發明人】賴劍煌, 劉曉
【申請人】中山大學