Artificial intelligence 神经网络指纹图谱
我们有一个开发自动指纹识别系统(AFIS)的项目。我们已经阅读了很多有关该领域的论文,还在阅读指纹识别手册。我们无法理解的是;我们到底要在哪里使用神经网络Artificial intelligence 神经网络指纹图谱,artificial-intelligence,neural-network,fingerprint,Artificial Intelligence,Neural Network,Fingerprint,我们有一个开发自动指纹识别系统(AFIS)的项目。我们已经阅读了很多有关该领域的论文,还在阅读指纹识别手册。我们无法理解的是;我们到底要在哪里使用神经网络 到目前为止,我们得到了;1) 应用直方图等式+DFT(如有必要)以获得对比度并去除噪声。2) 图像二值化+3)图像细化(形态学细化)这些都可以。然后进行特征提取。在3x3窗口中,我们搜索细节点,寻找像中间的-1这样的模式,并且只有一个其他1个邻居,所以它是终止-。然后我们得到细节点,并使用庞加莱指数法得到奇异点。但在那之后,当我们有细节和奇点
到目前为止,我们得到了;1) 应用直方图等式+DFT(如有必要)以获得对比度并去除噪声。2) 图像二值化+3)图像细化(形态学细化)这些都可以。然后进行特征提取。在3x3窗口中,我们搜索细节点,寻找像中间的-1这样的模式,并且只有一个其他1个邻居,所以它是终止-。然后我们得到细节点,并使用庞加莱指数法得到奇异点。但在那之后,当我们有细节和奇点时,我们将在哪里使用神经网络呢?如果要分类,如何分类?既然我们用庞加莱指数提取奇异点,为什么我们需要人工神经网络来分类?如果要提取细节点,我们不是用特征提取吗?您可能想指出哪些资源?谢谢。我相信你说的神经网络是指多层感知器(MLP)。对于你的情况,它打算对指纹进行分类。但是如果你的算法已经识别了它们,那么你就不需要MLP。否则,包含细节点的新特性(比如
X
)就是网络的输入(图1)。和y
是指纹标签。MLP将学习一个函数,该函数将特征作为参数,并返回其可能属于的概率(由softmax函数计算)。这在scikit中很容易实现。为了演示,我对下面的代码片段使用逻辑回归,但所有有监督的神经网络算法都遵循相同的过程
from sklearn import linear_model
# Initialize Logistic Regression
lr = linear_model.LogisticRegression(C=10)
# Let X be the training data (Fingerprint Features)
X = [[0,1],[2,3],[1,5]]
# Let y be their labels
y = [0, 1, 2]
# Train Logistic Regression through X and 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)
# Return their probabilities
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
是X
中样本[0,1]
分配给类0
的概率。因为它是该行向量中的最高值,它将返回值0
,第二行和第三行向量将分别返回1
和2
(Figure 1 : Multi-layer Perceptron)
我相信你说的神经网络是指多层感知器(MLP)。对于你的情况,它打算对指纹进行分类。但是如果你的算法已经识别了它们,那么你就不需要MLP。否则,包含细节点的新特性(比如
X
)就是网络的输入(图1)。和y
是指纹标签。MLP将学习一个函数,该函数将特征作为参数,并返回其可能属于的概率(由softmax函数计算)。这在scikit中很容易实现。为了演示,我对下面的代码片段使用逻辑回归,但所有有监督的神经网络算法都遵循相同的过程
from sklearn import linear_model
# Initialize Logistic Regression
lr = linear_model.LogisticRegression(C=10)
# Let X be the training data (Fingerprint Features)
X = [[0,1],[2,3],[1,5]]
# Let y be their labels
y = [0, 1, 2]
# Train Logistic Regression through X and 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)
# Return their probabilities
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
是X
中样本[0,1]
分配给类0
的概率。因为它是该行向量中的最高值,它将返回值0
,第二行和第三行向量将分别返回1
和2
(Figure 1 : Multi-layer Perceptron)