2014-02-25 26 views
-1

我已經提取了指紋數據庫的特徵,然後應用神經網絡按照性別對圖像進行分類。我還沒有使用過NN,我知道一點。Matlab神經網絡對指紋進行分類

  • 應該使用哪種類型的NN?是人工神經網絡還是多層感知器?

  • 如果圖像大小不一樣,它有關係嗎?

也許這方面的一些代碼示例可以提供幫助。

回答

0

您可以嘗試使用SOM/LVQ網絡進行MATLAB分類,圖像大小很重要,您應該在進行特徵提取之前嘗試將圖像歸一化至標準大小。這將確保每個特徵向量被分配給一個輸入神經元。

function scan(img) 
    files = dir('*.jpg'); 
    hist = []; 
    for n = 1 : length(files) 
     filename = files(n).name; 
     file = imread(filename); 

     hist = [hist, imhist(rgb2gray(imresize(file,[ 50 50])))]; %#ok 
    end 

    som = selforgmap([10 10]); 
    som = train(som, hist); 
    t = som(hist); %extract class data 

    net = lvqnet(10); 
    net = train(net, hist, t); 

    like(img, hist, files, net) 
end 
1

神經網絡是一個函數逼近器。你可以認爲它是分段線性擬合的高科技表哥。如果你想用一個參數來適應最複雜的現象 - 你會得到這個意思,如果它不是無限的話,不應該感到驚訝。爲了獲得有用的擬合,您必須將正在建模的現象與NN進行耦合。如果你正在建模一個平面表面,那麼你將需要多於一個係數(通常取決於你的公式3或4)。

這個問題背後的問題之一是「什麼是指紋的基礎」。根據我的意思是來自線性代數和微積分的重要詞彙,它涉及矢量空間,跨度和特徵。一旦你知道什麼是「基礎」,那麼你可以建立一個神經網絡來逼近基礎,這個神經網絡將給出合理的結果。

因此,雖然我一直在尋找的基礎上的論文中,我發現這一點:

在這裏你走,指紋的基礎上的一個很好的文件: http://math.arizona.edu/~anewell/publications/Fingerprint_Formation.pdf

以一種非常原始的刺,你可以嘗試的narxnet(非線性autogregressive網絡與外部輸入)link上生長有一些變化。我會擴大它,直到它使用某種加倍容量來表徵你的設置。我會將收斂速度看作「規模」的一個函數,這樣較小的網絡就可以知道收斂速度需要多長時間。這意味着它可能需要一個非常大的網絡來完成這項工作,但大型網絡就像787一樣 - 它們花費很大,需要永久構建,有時不能很好地運行。

如果我很聰明,我會關注Kucken的文章,並將輸入表達爲某種壓力場的逆模型。

祝你好運。

+0

+1的細節數量。 – Schorsch

0

不具備的代碼示例,但本文可能會有所幫助:An Effective Fingerprint Verification Technique, Gogoi & Bhattacharyya

本文提出了基於數據挖掘技術,稱爲細節集羣和一個圖形理論方法用於指紋驗證的有效方法來分析指紋比較的過程給出細節的特徵空間表示併產生可檢測到的不同指紋數量的下限。該方法還通過使用細節圖的拓撲行爲以及使用稱爲Hausdorff距離的距離度量來證明每個個體指紋的不變性。該方法提供了基於圖的指紋生成數據的索引生成機制。自組織映射神經網絡也用於分類指紋。