2012-07-11 157 views
7

我正在用神经网络对字母和数字进行简单识别。到目前为止,我使用字母图像的每个像素作为网络的输入。毋庸置疑,这种方法会产生非常大的网络。所以我想从我的图像中提取特征并将它们用作神经网络的输入。我的第一个问题是这些字母的属性对于识别它们是有好处的。第二个问题是如何将这些特征表示为神经网络的输入。例如,我可能已经检测到字母中的所有角并将它们作为(x,y)点的矢量。如何将这个向量转换成适合于NN的东西(因为不同的字母的向量大小可能不同)。神经网络特征提取

回答

3

很多人已经采取了多种OCR功能。最简单的是,直接传递像素值。

从UCI数据集中提取的OpenCV样本中有一个字母识别数据。它采用了大约16种不同的功能。检查这个SOF:How to create data fom image like "Letter Image Recognition Dataset" from UCI

你也可以在其中的一个答案中看到这篇文章解释这个。你可以通过谷歌搜索。您可能还会喜欢this PPT。它给出了对现在使用的不同特征提取技术的简要解释。

4

这篇文章Introduction to Artificial Intelligence. OCR using Artificial Neural Networks by Kluever (2008)给出了一个关于使用神经网络的OCR的4种特征提取技术的调查。他描述了以下方法:

  • 运行长度编码(RLE):您需要一个二进制图像(即只有白色或黑色)。二进制字符串可以被编码成更小的表示。
  • 边缘检测:找到边缘。由于这个原因,你可能会非常粗糙,所以不用返回精确的(x,y)坐标,只需在减少的位置出现这样的边缘就可以减少矩阵(即,在20%,40%,60%,80%,80% %的图像)。
  • Count'True Pixels':这将图像矩阵的width * height的维度降低到width + height。您使用width矢量和height矢量作为单独的输入。
  • 基本矩阵输入:您已经尝试过;输入整个矩阵会给出好的结果,但正如您注意到的那样可能会导致高维度和训练时间。您可以尝试缩小图像的大小(例如,从200x200到50x50)。
1

如果您有一个非常高维的输入向量,那么我建议您应用主成分分析(PCA)去除冗余特征并减少特征向量的维数。