人工神經網絡論文_第1頁
人工神經網絡論文_第2頁
人工神經網絡論文_第3頁
人工神經網絡論文_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于LVQ神經網絡的人臉朝向識別摘要 人臉識別是當今模式識別和人工智能的一個重要的研究方向。人臉的朝向識別是一個復雜的模式識別問題。在實際應用中,大量圖像和視頻源中人臉的位置、朝向、旋轉角度都是不固定的,這大大增加了人臉識別的難度。為了解決這些問題,本實驗采用了LVQ神經網絡模型對圖像中的人臉朝向識別進行研究。本實驗基于matlab平臺設計LVQ神經網絡,實現對人臉朝向的判斷。實驗結果表明,LVQ神經網絡可以根據輸入圖像的二值信息,以較高的準確率判別該圖像中的人臉朝向。關鍵字: 人臉朝向識別; LVQ神經網絡; matlab; 特征提取人臉識別是一個活躍的研究領域。盡管相對于虹膜和指紋識別,人

2、臉識別的準確還比較低,但人臉的易采集、非接觸的優點,讓人臉識別受到越來越多的關注。人臉識別對人臉位置和狀態都有一定的限制,實際應用中,圖像和視頻源中人臉的位置,朝向和旋轉都不是固定的,這就為我們后續的人臉識別有了更大的難度。在人臉識別的研究領域中,人臉朝向識別是其中的一個分支。在以往的研究中,絕大多數的研究人員希望能夠消除人臉朝向在人臉識別中的不良影響,但在復雜的實際環境中,我們無法忽略人臉朝向對人臉識別的影響。因此,對人臉朝向的判定和識別是非常有必要和有意義的。1 LVQ神經網絡學習向量量化 (Learning Vector Quantization,LVQ) 神經網絡,屬于前向神經網絡類型

3、,在模式識別和優化領域有著廣泛的應用。LVQ神經網絡由三層組成,即輸入層、隱含層和輸出層,網絡在輸入層與隱含層間為全連接,而在隱含層與輸出層間為部分連接,每個輸出層神經元與隱含層神經元的不同組相連接。隱含層和輸出層神經元之間的連接權值固定為1。輸入層和隱含層神經元間連接的權值建立參考矢量的分量(對每個隱含神經元指定一個參考矢量)。在網絡訓練過程中,這些權值被修改。隱含層神經元(或稱為Kohnen神經元)和輸出神經元都具有二進制輸出值。當某個輸入模式被送至網絡時,參考矢量最接近輸入模式的隱含神經元因獲得激發而贏得競爭,因而允許它產生一個“1”,而其它隱含層神經元都被迫產生“0”。與包含獲勝神經元

4、的隱含層神經元組相連接的輸出神經元也發出“1”,而其它輸出神經元均發出“0”。產生“1”的輸出神經元給出輸入模式的類,由此可見,每個輸出神經元被用于表示不同的類。2 人臉朝向識別的設計2.1 問題描述現采集到一組不同人臉朝向的圖像,這組圖像來自于10個人,每人5張圖片,人臉朝向分為:左方、左前方、正面、右前方、右方,如圖2-1所示。創建一個LVQ神經網絡,對給出的人臉進行朝向的判定與識別。2-1 人臉朝向識別圖2.2 建立模型2.2.1 設計思路通過觀察不難發現,當人臉朝向不同的方向時,眼睛在圖像中的位置差別較大。所以,將眼睛位置的特征信息作為LVQ神經網絡識別的輸入,將5個朝向作為其輸出。在

5、對訓練集進行訓練之后,得到具有預測功能的神經網絡,對測試集中的圖片進行人臉朝向的預測。2.2.2 設計步驟根據上述的設計思路,可以歸納為如下步驟,如圖2-2所示。圖2-2 設計步驟流程圖(1)眼部特征向量的提取在設計思路中,可以知道人臉朝向不同時,其眼睛所在的位置也有所不同。因此,選取描述人眼位置的特征向量作為LVQ神經網絡的輸入。方法:將整幅圖像分為6行8列,人眼的位置信息可以用第2行的8個子矩陣來描述,邊緣檢測后8個子矩陣中的值為“1”的像素點的個數與人臉朝向有直接關系。只要分別統計出第2行8個子矩陣中值為“1”的像素點的個數即可。(2)生成訓練集和測試集為了保證訓練集數據的隨機性,我們隨

6、機選取圖像庫中的30張圖片作為訓練數據,選取20張圖片作為測試數據。(3)LVQ網絡的創建因為LVQ神經網絡具有不需要將輸入向量正交化、歸一化的優點,利用Matlab工具中的newlvq()函數構建一個LVQ神經網絡。(4)LVQ網絡的訓練將訓練集中輸入向量送入LVQ神經網絡,之后對網絡中權值進行迭代調整,達到要求。利用Matlab中的網絡訓練函數train()對LVQ神經網絡進行訓練學習。(5)人臉朝向的識別網絡訓練收斂后,對測試集的數據進行預測。對于任意給定的圖像,只需將其特征向量提取出來,便可以進行識別。3 人臉朝向識別的實現Matlab提供了許多函數能夠讓我們在Matlab環境下可以實

7、現上述步驟。3.1 清空環境變量在程序運行之前,需要清空工作空間中的變量和命令窗口的命令。源代碼如下:clear allclc3.2 眼部特征向量的提取首先將圖像中描述眼部信息的特征向量提取出來,即統計出第2行8個子矩陣中值為“1”的像素點的個數,源代碼如下:% 人臉特征向量提取 % 人數M=10;% 人臉朝向類別數N=5; % 特征向量提取pixel_value=feature_extraction(M,N);feature_extraction()為人臉特征向量提取子函數,函數體如下:% 特征提取子函數function pixel_value=feature_extraction(m,n)

8、pixel_value=zeros(50,8);sample_number=0;for i=1:m for j=1:n str=strcat('Images',num2str(i),'_',num2str(j),'.bmp'); %將字符串進行水平連接 img= imread(str); %將圖像轉換為對應的矩陣 rows cols= size(img); img_edge=edge(img,'Sobel'); %用sobel邊緣提取算子來提取邊緣 sub_rows=floor(rows/6); sub_cols=floor(co

9、ls/8); sample_number=sample_number+1; for subblock_i=1:8 for ii=sub_rows+1:2*sub_rows for jj=(subblock_i-1)*sub_cols+1:subblock_i*sub_cols pixel_value(sample_number,subblock_i)=. pixel_value(sample_number,subblock_i)+img_edge(ii,jj); end end end endend3.3 生成訓練集和測試集將圖片庫中圖片的眼部特征向量提取出來,隨機分為兩組,即訓練集組和測試集

10、組。訓練集中包括30幅圖像的特征向量,測試集中包括20幅圖像的特征向量,具體源代碼如下:% 訓練集/測試集產生% 產生圖像序號的隨機序列rand_label=randperm(M*N); %產生一個從1到m*n的隨機序列% 人臉朝向標號direction_label=repmat(1:N,1,M); %用于矩陣復制% 訓練集train_label=rand_label(1:30);P_train=pixel_value(train_label,:)'Tc_train=direction_label(train_label);% 測試集test_label=rand_label(31:e

11、nd);P_test=pixel_value(test_label,:)'Tc_test=direction_label(test_label);3.4 創建LVQ神經網絡利用newlvq()函數來創建LVQ神經網絡,隱含層神經元個數設置為20,具體源代碼如下:% 計算PCfor i=1:5 ratei=length(find(Tc_train=i)/30;end% 創建LVQ網絡net=newlvq(minmax(P_train),20,cellmat(rate);% 設置訓練參數net.trainParam.epoch = 100;net.trainParam.goal = 0.001;net. trainParam.lr = 0.13.5 訓練LVQ神經網絡 用Matlab提供的train()函數對LVQ神經網絡訓練學習,源代碼如下: net = t

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論