資源描述:
《人工神經網絡論文-基于lvq神經網絡的人臉朝向識別》由會員上傳分享,免費在線閱讀,更多相關內容在學術論文-天天文庫。
1、基于LVQ神經網絡的人臉朝向識別摘要人臉識別是當今模式識別和人工智能的一個重要的研究方向。人臉的朝向識別是一個復雜的模式識別問題。在實際應用中,大量圖像和視頻源中人臉的位置、朝向、旋轉角度都是不固定的,這大大增加了人臉識別的難度。為了解決這些問題,本實驗采用了LVQ神經網絡模型對圖像中的人臉朝向識別進行研究。本實驗基于matlab平臺設計LVQ神經網絡,實現對人臉朝向的判斷。實驗結果表明,LVQ神經網絡可以根據輸入圖像的二值信息,以較高的準確率判別該圖像中的人臉朝向。關鍵字:人臉朝向識別;LVQ神經網絡;m
2、atlab;特征提取人臉識別是一個活躍的研究領域。盡管相對于虹膜和指紋識別,人臉識別的準確還比較低,但人臉的易采集、非接觸的優(yōu)點,讓人臉識別受到越來越多的關注。人臉識別對人臉位置和狀態(tài)都有一定的限制,實際應用中,圖像和視頻源中人臉的位置,朝向和旋轉都不是固定的,這就為我們后續(xù)的人臉識別有了更大的難度。在人臉識別的研究領域中,人臉朝向識別是其中的一個分支。在以往的研究中,絕大多數的研究人員希望能夠消除人臉朝向在人臉識別中的不良影響,但在復雜的實際環(huán)境中,我們無法忽略人臉朝向對人臉識別的影響。因此,對人臉朝向的
3、判定和識別是非常有必要和有意義的。1LVQ神經網絡學習向量量化(LearningVectorQuantization,LVQ)神經網絡,屬于前向神經網絡類型,在模式識別和優(yōu)化領域有著廣泛的應用。LVQ神經網絡由三層組成,即輸入層、隱含層和輸出層,網絡在輸入層與隱含層間為全連接,而在隱含層與輸出層間為部分連接,每個輸出層神經元與隱含層神經元的不同組相連接。隱含層和輸出層神經元之間的連接權值固定為1。輸入層和隱含層神經元間連接的權值建立參考矢量的分量(對每個隱含神經元指定一個參考矢量)。在網絡訓練過程中,這些權
4、值被修改。隱含層神經元(或稱為Kohnen神經元)和輸出神經元都具有二進制輸出值。當某個輸入模式被送至網絡時,參考矢量最接近輸入模式的隱含神經元因獲得激發(fā)而贏得競爭,因而允許它產生一個“1”,而其它隱含層神經元都被迫產生“0”。與包含獲勝神經元的隱含層神經元組相連接的輸出神經元也發(fā)出“1”,而其它輸出神經元均發(fā)出“0”。產生“1”的輸出神經元給出輸入模式的類,由此可見,每個輸出神經元被用于表示不同的類。2人臉朝向識別的設計2.1問題描述現采集到一組不同人臉朝向的圖像,這組圖像來自于10個人,每人5張圖片,人
5、臉朝向分為:左方、左前方、正面、右前方、右方,如圖2-1所示。創(chuàng)建一個LVQ神經網絡,對給出的人臉進行朝向的判定與識別。2-1人臉朝向識別圖1.2建立模型2.2.1設計思路通過觀察不難發(fā)現,當人臉朝向不同的方向時,眼睛在圖像中的位置差別較大。所以,將眼睛位置的特征信息作為LVQ神經網絡識別的輸入,將5個朝向作為其輸出。在對訓練集進行訓練之后,得到具有預測功能的神經網絡,對測試集中的圖片進行人臉朝向的預測。2.2.2設計步驟根據上述的設計思路,可以歸納為如下步驟,如圖2-2所示。圖2-2設計步驟流程圖(1)眼
6、部特征向量的提取在設計思路中,可以知道人臉朝向不同時,其眼睛所在的位置也有所不同。因此,選取描述人眼位置的特征向量作為LVQ神經網絡的輸入。方法:將整幅圖像分為6行8列,人眼的位置信息可以用第2行的8個子矩陣來描述,邊緣檢測后8個子矩陣中的值為“1”的像素點的個數與人臉朝向有直接關系。只要分別統計出第2行8個子矩陣中值為“1”的像素點的個數即可。(2)生成訓練集和測試集為了保證訓練集數據的隨機性,我們隨機選取圖像庫中的30張圖片作為訓練數據,選取20張圖片作為測試數據。(3)LVQ網絡的創(chuàng)建因為LVQ神經網
7、絡具有不需要將輸入向量正交化、歸一化的優(yōu)點,利用Matlab工具中的newlvq()函數構建一個LVQ神經網絡。(4)LVQ網絡的訓練將訓練集中輸入向量送入LVQ神經網絡,之后對網絡中權值進行迭代調整,達到要求。利用Matlab中的網絡訓練函數train()對LVQ神經網絡進行訓練學習。(5)人臉朝向的識別網絡訓練收斂后,對測試集的數據進行預測。對于任意給定的圖像,只需將其特征向量提取出來,便可以進行識別。2人臉朝向識別的實現Matlab提供了許多函數能夠讓我們在Matlab環(huán)境下可以實現上述步驟。3.1清
8、空環(huán)境變量在程序運行之前,需要清空工作空間中的變量和命令窗口的命令。源代碼如下:clearallclc2.2眼部特征向量的提取首先將圖像中描述眼部信息的特征向量提取出來,即統計出第2行8個子矩陣中值為“1”的像素點的個數,源代碼如下:%%人臉特征向量提取%人數M=10;%人臉朝向類別數N=5;%特征向量提取pixel_value=feature_extraction(M,N);feature_extraction