Matlab神经网络对指纹进行分类

问题描述 投票:-1回答:3

我已经提取了指纹数据库的功能,然后应该应用神经网络按性别对图像进行分类。我还没有和NN合作,我知道一点。

  • 应该使用什么类型的NN?它是人工神经网络还是多层感知器?
  • 如果图像大小不一样,那有关系吗?

也许这方面的一些代码示例可能有所帮助。

matlab neural-network classification fingerprint
3个回答
1
投票

神经网络是函数逼近器。您可以将其视为分段线性拟合的高科技表亲。如果你想用一个参数来适应最复杂的现象 - 你将获得平均值,如果它不是无限有用的话,不应该感到惊讶。为了获得有用的拟合,您必须将所建模的现象的性质与NN结合起来。如果要对平面进行建模,那么您将需要多个系数(通常为3或4,具体取决于您的配方)。

这个问题背后的一个问题是“指纹的基础是什么”。根据我的意思,我指的是来自线性代数和微积分的重要包装词,它涉及向量空间,跨度和特征。一旦你知道“基础”是什么,那么你可以建立一个神经网络来近似基础,这个神经网络将给出合理的结果。

因此,当我在寻找基础上的论文时,我发现了这一点:

在这里,你去了一个关于指纹基础的好文件:http://math.arizona.edu/~anewell/publications/Fingerprint_Formation.pdf

采取非常粗略的刺,你可能会尝试在narxnet(带外部输入的非线性自动回归网络)link上增加一些变化。我会增长它,直到它使用某种倍增容量来表征你的设置。我将收敛率视为“大小”的函数,以便较小的网络告知较大的收敛需要多长时间。这意味着可能需要一个非常大的网络才能完成这项工作,但是大型网络就像787一样 - 它们花费很多,需要永远建立,有时候飞得不好。

如果我很聪明,我会关注Kucken的文章,并将输入表达为某种应力场的逆模型。

祝你好运。


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

0
投票

没有代码示例,但本文可能会有所帮助:An Effective Fingerprint Verification Technique, Gogoi & Bhattacharyya

本文提出了一种有效的指纹验证方法,该方法基于数​​据挖掘技术,称为细节聚类和图论方法,分析指纹比对过程,给出细节的特征空间表示,并产生可检测数量的下界。明显的指纹。该方法还通过使用细节图的拓扑行为以及使用称为Hausdorff距离的距离度量来证明每个单独指纹的不变性。该方法提供了基于图的指纹生物识别数据的索引生成机制。自组织映射神经网络还用于对指纹进行分类。

© www.soinside.com 2019 - 2024. All rights reserved.