利用降維方法進行人臉姿態估計的方法
2023-04-23 00:38:56 2
專利名稱:利用降維方法進行人臉姿態估計的方法
技術領域:
本發明涉及一種圖像識別技術領域的方法,具體是一種結合了主成分分析(PCA)和受限玻爾茲曼機神經網絡的降維方法進行人臉姿態估計的方法。
背景技術:
目前人臉識別的研究重點已經從二維拓展到三維,而三維人臉識別中最為核心的技術就是如何根據二維人臉圖像估計該人臉的三維姿態。姿態估計本質上是一個分類問題,即判斷一幅人臉圖像中的人臉屬於哪一個姿態。但是人臉圖像是典型的高維數據,一般的分類方法根本不能夠被直接應用於姿態估計,因此首先必須對高維人臉數據進行降維,然後再對降維後的數據進行姿態估計。
經對現有技術文獻的檢索發現,G.G.Hilton等在《Science》(科學雜誌,2006年第313卷第5786期第504頁)發表的「Reducing the Dimensionality of Data withNeural Networks」(用神經網絡降低數據維數),該文提出了一種基於受限玻爾茲曼機神經網絡的非線性降維方法,實驗證明該方法可以被用於姿態估計。利用大量的不同姿態的人臉圖像數據對網絡進行預訓練得到初始權值,然後再用原始數據對整個網絡的權值進行調整使網絡達到最佳狀態。但是該方法的訓練時間隨著訓練樣本的個數和維數的上升而急劇增加。但是在實際應用上,人臉圖像在生成過程中受到外界的幹擾而包含了很多冗餘的信息和噪音,這些冗餘的信息和噪音不但會增加計算時間,還會影響後期的識別精度,因此在真正對這些數據利用神經網絡進行降維處理之前有必要去除這些冗餘的信息和噪音,另外受限玻爾茲曼機神經網絡降維方法同時還有速度慢、精度低等缺陷。
發明內容
本發明的目的在於克服現有技術中的不足,提供一種利用降維方法進行人臉姿態估計的方法,即首先對原始數據進行PCA處理從而去除冗餘信息和噪音,然後再利用神經網絡方法對PCA處理後的數據進行降維處理操作。把這種新的降維方法應用到人臉姿態識別,從而可以提供人臉姿態信息以能夠在多角度下進行人臉識別。
本發明是通過以下技術方案實現的,本發明首先對訓練樣本進行PCA處理,去除原始數據中的冗餘信息和噪音,並得到PCA處理後的數據,然後使用該數據對受限玻爾茲曼機神經網絡進行預訓練,得到預訓練網絡參數,並用梯度下降方法調整整個網絡參數。最後對於待進行姿態估計的人臉圖像,對其進行PCA處理,再把PCA處理後的數據送入該學習好的神經網絡中進行姿態識別分類。
本發明具體包括如下步驟(1)對不同姿態的人臉圖像訓練樣本進行預處理操作;(2)對預處理後的數據進行PCA處理;(3)初始化受限玻爾茲曼機神經網絡;(4)用PCA處理後的數據預訓練受限玻爾茲曼機神經網絡;(5)調整受限玻爾茲曼機神經網絡參數;(6)對新的人臉圖像進行姿態識別;所述的步驟(1),是指對於每個人臉圖像訓練樣本,首先把其縮放為高為h個像素、寬為w個像素的圖像。然後把該縮放後的人臉圖像變換為灰度圖像,並把所有像素的灰度值歸一化到
,最後把它們拉成長度為h×w的向量,即該向量的維數是h×w。
所述的步驟(2),是指對步驟(1)中的預處理後的數據進行PCA操作,去除冗餘信息和噪音,保持98%的信息,把所有數據都從h×w降到s維,同時得到平均向量 和特徵向量P,如果把原始h×w維的向量數據表示為X,降維後的s維數據表示為b,那麼X可以表示為X=x+Pb,]]>降維後的數據b可以表示為b=PT(X-x).]]>所述的步驟(3),是指設定該神經網絡有L層。每一層的結點數分別為N1,N2,…,NL。類別個數為C,預訓練和調整參數的次數分別為Pt和Pc。根據網絡層數和每層結點的個數確定網絡結構,同時產生
之間的隨機數作為網絡結點之間連接權值。
所述的步驟(4),是指設置網絡中第一層受限玻爾茲曼機的可視層的結點與步驟(2)中向量中的s個值一一對應,即第一層受限玻爾茲曼機的可視層的結點數為s,訓練該受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,共訓練Pt次。然後再以第一層受限玻爾茲曼機的隱層結點作為第二層受限玻爾茲曼機可視層結點,同樣訓練該受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,也訓練Pt次。依此類推,即上一層受限玻爾茲曼機的隱層結點作為下一層受限玻爾茲曼機的可視層結點以訓練下一層受限玻爾茲曼機。這樣就完成了整個網絡的預訓練,同時也得到了預訓練好的各層受限玻爾茲曼機的參數。
所述的步驟(5),是指利用梯度下降法以重建誤差最小為準則反向傳播並調整所有受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,該步驟共執行Pc次。
所述的步驟(6),是指對於一幅新的待進行姿態識別的人臉圖像,先把其縮放到高為h,寬為w的圖像,並把該縮放的圖像變換為灰度圖像,然後把圖像灰度值歸一化到
,接著把歸一化後的圖像拉成一個長度為h×w的向量X,並利用b=PT(X-x)]]>把該向量的維數降到s,最後把該s維的向量送入已經訓練好的網絡進行姿態識別。
本發明提出的人臉姿態估計方法具有相當高的精度,用拍攝的人臉庫做測試,其識別錯誤率為1.95%。與沒有經過PCA處理而直接用受限玻爾茲曼機神經網進行降維的方法相比,該方法的錯誤率進一步降低。同時由於其數據的維數經過PCA處理後大大降維,後續的網絡中每一層的節點數也隨之減少,這不僅減少了訓練時間,同時測試速度也大為提高。
圖1為本實施例姿態示意圖其中1到9分別表示的人臉圖像的姿態角度為-90°、-60°、-45°、-30°、0°、30°、45°、60°、90°。
圖2為本實施例姿態識別的結果其中人臉圖像的姿態角度為60°。
具體實施例方式
下面結合附圖對本發明的實施例作詳細說明本實施例在以本發明技術方案為前提下進行實施,給出了詳細的實施方式和具體過程,但本發明的保護範圍不限於下述的實施例。
實施例1.把人臉庫(該人臉庫包含有2270個人的9個不同姿態的人臉圖像。如圖1所示,圖a、b、c、d、e、f、g、h、i這9個人臉圖像的姿態分別為-90°、-60°、-45°、-30°、0°、30°、45°、60°、90°。把人臉庫中的圖像按照其不同的姿態分為9類,每一類有2270個。)中的所有圖像縮放為高為30個像素,寬為30個像素的圖像,然後把該縮放後的人臉圖像變換為灰度圖像,並把圖像的像素灰度值歸一化到
,最後把灰度圖像拉成長度為900的向量。
2.對步驟(1)中的所有的向量數據進行PCA處理,保持98%的信息,最終把向量的維數從900維降到342維,同時得到平均向量 和特徵向量P,如果把原始900維的向量數據表示為X,降維後的342維數據表示為b,那麼X可以表示為X=x+Pb,]]>降維後的數據b可以表示為b=PT(X-x).]]>3.設定該神經網絡有3層。每一層的結點數分別為300,300,800。類別個數為9,預訓練和調整參數的次數分別為50和100。根據網絡層數和每層結點的個數確定網絡結構,同時產生
之間的隨機數作為網絡結點之間連接權值。
4.設置網絡中第一層受限玻爾茲曼機的可視層的結點與步驟(2)中向量中的342個值一一對應,即第一層受限玻爾茲曼機的可視層的結點數為342,訓練該受限玻爾茲曼機可視層的342個結點與隱層的300個結點之間的權值參數,共訓練50次。然後再以第一層受限玻爾茲曼機的隱層結點作為第二層受限玻爾茲曼機可視層結點,同樣訓練該受限玻爾茲曼機可視層的300個結點與隱層的300個結點之間的權值參數,也訓練50次。依此類推,即上一層受限玻爾茲曼機的隱層結點作為下一層受限玻爾茲曼機的可視層結點以訓練下一層受限玻爾茲曼機。這樣就完成了整個網絡的預訓練,同時也得到了預訓練好的各層受限玻爾茲曼機的參數。
5.利用梯度下降法以重建誤差最小為準則反向傳播並調整所有受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,該步驟共執行100次。
6.對於一幅新的待進行姿態識別的人臉圖像,先把其縮放到高為30,寬為30的圖像,並把該縮放的圖像變換為灰度圖像,然後把圖像灰度值歸一化到
,接著把歸一化後的圖像拉成一個長度為900的向量,並利用b=PT(X-x)]]>把該向量的維數降到342,最後把該342維的向量送入已經訓練好的網絡進行姿態識別。如圖2所示,該待進行姿態識別的圖像為一幅60°的人臉圖像,用本發明的方法可以正確地識別出該人臉圖像的姿態。
從以上可以看出,本實施例提出的人臉姿態識別方法可以進一步應用於三維人臉識別。
權利要求
1.一種利用降維方法進行人臉姿態估計的方法,具體包括如下步驟(1)對不同姿態的人臉圖像訓練樣本進行預處理操作;(2)對預處理後的數據進行PCA處理;(3)初始化受限玻爾茲曼機神經網絡;(4)用PCA處理後的數據預訓練受限玻爾茲曼機神經網絡;(5)調整受限玻爾茲曼機神經網絡參數;(6)對新的人臉圖像進行姿態識別。
2.根據權利要求1所述的利用降維方法進行人臉姿態估計的方法,其特徵是,所述的步驟(1)具體包括1)對於每個人臉圖像訓練樣本,首先把其縮放為高為h個像素、寬為w個像素的圖像;2)把該縮放後的人臉圖像變換為灰度圖像;3)把所有像素的灰度值歸一化到
;4)把它們拉成長度為h×w的向量,即該向量的維數是h×w。
3.根據權利要求1所述的利用降維方法進行人臉姿態估計的方法,其特徵是,所述的步驟(2)具體包括1)對預處理後的數據進行PCA操作,去除冗餘信息和噪音,保持98%的信息信息量2)把所有數據都從h×w降到s維,同時得到平均向量 和特徵向量P,具體關係如下X=x+Pb,]]>降維後的數據b表示為b=PT(X-x),]]>其中X為原始h×w維的向量數據,b為降維後的s維數據。
4.根據權利要求1所述的利用降維方法進行人臉姿態估計的方法,其特徵是,所述的步驟(3)具體包括1)設定該神經網絡有L層;每一層的結點數分別為N1,N2,…,NL;類別個數為C;預訓練和調整參數的次數分別為Pt和Pc;2)根據網絡層數和每層結點的個數確定網絡結構,同時產生
之間的隨機數作為網絡結點之間連接權值。
5.根據權利要求1所述的利用降維方法進行人臉姿態估計的方法,其特徵是,所述的步驟(4)具體包括1)設置網絡中第一層受限玻爾茲曼機的可視層的結點與步驟(2)中向量中的s個值一一對應,即第一層受限玻爾茲曼機的可視層的結點數為s,訓練該受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,共訓練Pt次;2)再以第一層受限玻爾茲曼機的隱層結點作為第二層受限玻爾茲曼機可視層結點,同樣訓練該受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,也訓練Pt次;3)依此類推,即上一層受限玻爾茲曼機的隱層結點作為下一層受限玻爾茲曼機的可視層結點以訓練下一層受限玻爾茲曼機,最終完成了整個網絡的預訓練,同時也得到了預訓練好的各層受限玻爾茲曼機的參數。
6.根據權利要求1所述的利用降維方法進行人臉姿態估計的方法,其特徵是,所述的步驟(5)是指利用梯度下降法以重建誤差最小為準則反向傳播並調整所有受限玻爾茲曼機可視層結點與隱層結點之間的權值參數,該步驟共執行Pc次。
7.根據權利要求1所述的利用降維方法進行人臉姿態估計的方法,其特徵是,所述的步驟(6)是指對於一幅新的待進行姿態識別的人臉圖像,先把其縮放到高為h,寬為w的圖像,並把該縮放的圖像變換為灰度圖像,然後把圖像灰度值歸一化到
,接著把歸一化後的圖像拉成一個長度為h×w的向量X,並利用b=PT(X-x)]]>把該向量的維數降到s,最後把該s維的向量送入已經訓練好的網絡進行姿態識別。
全文摘要
本發明公開了一種圖像識別技術領域的利用降維方法進行人臉姿態估計的方法,具體包括如下步驟(1)對不同姿態的人臉圖像訓練樣本進行預處理操作;(2)對預處理後的數據進行PCA處理;(3)初始化受限玻爾茲曼機神經網絡;(4)用PCA處理後的數據預訓練受限玻爾茲曼機神經網絡;(5)調整受限玻爾茲曼機神經網絡參數;(6)對新的人臉圖像進行姿態識別;本發明於現有技術相比錯誤率進一步降低,同時由於其數據的維數經過PCA處理後大大降維,後續的網絡中每一層的節點數也隨之減少,不僅減少了訓練時間,同時測試速度也大為提高。
文檔編號G06K9/62GK101021900SQ20071003807
公開日2007年8月22日 申請日期2007年3月15日 優先權日2007年3月15日
發明者楊傑, 杜春華, 張田昊, 署光, 楊曉超 申請人:上海交通大學