神经网络指纹识别

我们有一个项目,旨在开发一个自动指纹识别系统(AFIS)。我们已经阅读了该领域的许多论文,并且还在阅读《指纹识别手册》。我们无法理解的是:我们到底在哪里使用神经网络?

到目前为止,我们了解到:1)应用直方图均衡化+DFT(如果必要)来增强对比度和去除噪声。2)图像二值化+3)图像细化(形态学细化)。这些步骤是可以的。之后是特征提取。我们在3×3的窗口中搜索细节点,寻找像中间为1,且只有一个其他1作为邻居的模式,这样它就是终止点。然后我们得到细节点,并使用庞加莱指数法来获取奇异点。但是在那之后,当我们有了细节点和奇异点,我们在哪里使用神经网络呢?如果是用于分类,如何分类?既然我们已经用庞加莱指数提取了奇异点,为什么还需要人工神经网络来分类?如果是用于提取细节点,我们不是已经通过特征提取完成了吗?你能推荐一些资源吗?谢谢。


回答:

我认为当你说神经网络时,你指的是多层感知器(MLP)。在你的案例中,它用于分类指纹。但是,如果你的算法已经能够识别它们,那么你就不需要MLP。否则,包含细节点的新特征 – 假设为X – 将作为你的网络的输入(见图1)。而y是指纹标签。MLP将学习一个函数,该函数以这些特征作为参数,并返回它可能属于的概率(由softmax函数计算)。这在scikit中很容易实现。为了演示,我在下面的代码片段中使用了逻辑回归,但所有监督式神经网络算法都遵循相同的程序。

from sklearn import linear_model# 初始化逻辑回归lr = linear_model.LogisticRegression(C=10)# 让X成为训练数据(指纹特征)X = [[0,1],[2,3],[1,5]]# 让y成为它们的标签y = [0, 1, 2]# 通过X和y训练逻辑回归lr.fit(X,y)Out[284]: LogisticRegression(C=10, class_weight=None, dual=False, fit_intercept=True,          intercept_scaling=1, penalty='l2', random_state=None, tol=0.0001)# 返回它们的概率lr.predict_proba(X)Out[285]: array([[ 0.64974581,  0.144104  ,  0.20615019],       [ 0.04442027,  0.81437946,  0.14120027],       [ 0.04096602,  0.0840223 ,  0.87501168]])

第一个值0.64974581是样本[0,1]X中被分配给类0的概率。由于这是该行向量中最高的,它将返回值0,第二和第三行向量将分别返回12

enter image description here

                          (图1:多层感知器)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注