7

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

4

3 回答 3

5

这篇文章,人工智能简介。Kluever (2008) 的使用人工神经网络的OCR 对使用神经网络的 OCR 的 4 种特征提取技术进行了调查。他描述了以下方法:

  • 运行长度编码 (RLE):您需要一个二进制图像(即只有白色或黑色)。二进制字符串可以编码为更小的表示形式。
  • 边缘检测:找到边缘。你可以很粗略,所以不是返回精确的 (x,y) 坐标,你可以通过只计算这样的边缘是否出现在减少的位置(即,在 20%、40%、60& 和 80% 上)来减少矩阵图像)。
  • width * heightCount 'True Pixels':这会将图像矩阵的维度减少到width + height. 您使用width向量和height向量作为单独的输入。
  • 基本矩阵输入:你已经试过了;输入整个矩阵会得到很好的结果,但正如您所注意到的那样会导致高维数和训练时间。您可以尝试减小图像的大小(例如,从 200x200 到 50x50)。
于 2012-07-11T09:02:53.537 回答
4

很多人已经为 OCR 采用了多种功能。其中最简单的当然是直接传递像素值。

OpenCV 样本中有一个字母识别数据,是从 UCI 数据集中提取的。它采用了大约 16 种不同的功能。检查此 SOF:如何从 UCI 创建像“字母图像识别数据集”这样的图像数据

您还可以在其中一个答案中看到解释这一点的论文。你可以通过谷歌搜索得到它。

你也可能对这个PPT感兴趣。它简要解释了当今使用的不同特征提取技术。

于 2012-07-11T15:05:05.707 回答
1

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

于 2012-09-03T15:15:16.977 回答