-1

I have already extracted the features of a fingerprint database then a Neural Network should be applied to classify the images by gender. I haven't worked with NN yet and I know a bit.

  • What type of NN should be used? Is it Artificial Neural Network or Multi-layer perceptron?

  • If the image size is not the same among all, does it matter?

Maybe some code sample in this area could help.

user3269865
  • 49
  • 3
  • 11

3 Answers3

1

A neural network is a function approximator. You can think of it as a high-tech cousin to piecewise linear fitting. If you want to fit the most complex phenomena ever with a single parameter - you are going to get the mean and should not be surprised if it isn't infinitely useful. To get a useful fit, you must couple the nature of the phenomena being modeled with the NN. If you are modeling a planar surface, then you are going to need more than one coefficient (typically 3 or 4 depending on your formulation).

One of the questions behind this question is "what is the basis of fingerprints". By basis I mean the heavily baggaged word from Linear Algebra and calculus that talks about vector spaces, span, and eigens. Once you know what the "basis" is then you can build a neural network to approximate the basis, and this neural network will give reasonable results.

So while I was looking for a paper on the basis, I found this:

And here you go, a good document of the basis of fingerprints: http://math.arizona.edu/~anewell/publications/Fingerprint_Formation.pdf

Taking a very crude stab, you might try growing some variation on an narxnet (nonlinear autogregressive network with external inputs) link. I would grow it until it characterizes your set using some sort of doubling the capacity. I would look at convergence rates as a function of "size" so that the smaller networks inform how long convergence takes for the larger ones. That means it might take a very large network to make this work, but large networks are like the 787 - they cost a lot, take forever to build, and sometimes do not fly well.

If I were being clever, I would pay attention to the article by Kucken and formulate the inputs as some sort of a inverse modeling of a stress field.

Best of luck.

EngrStudent
  • 1,924
  • 31
  • 46
0

You can try a SOM/LVQ network for classification in MATLAB, and image sizes does matter you should try to normalize the images down to a standard size before doing the feature extraction. This will ensure that each feature vector gets assigned to an input neuron.

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
Romaine Carter
  • 637
  • 11
  • 23
0

Doesn't have code examples but this paper may be helpful: An Effective Fingerprint Verification Technique, Gogoi & Bhattacharyya

This paper presents an effective method for fingerprint verification based on a data mining technique called minutiae clustering and a graph-theoretic approach to analyze the process of fingerprint comparison to give a feature space representation of minutiae and to produce a lower bound on the number of detectably distinct fingerprints. The method also proving the invariance of each individual fingerprint by using both the topological behavior of the minutiae graph and also using a distance measure called Hausdorff distance.The method provides a graph based index generation mechanism of fingerprint biometric data. The self-organizing map neural network is also used for classifying the fingerprints.

Kirt Undercoffer
  • 591
  • 4
  • 11