Neural network 神经网络特征提取

Neural network 神经网络特征提取,neural-network,ocr,feature-detection,Neural Network,Ocr,Feature Detection,我正在用神经网络做字母和数字的简单识别。到目前为止,我使用字母图像的每个像素作为网络的输入。不用说,这种方法产生的网络非常大。所以我想从我的图像中提取特征,并将它们作为NNs的输入。我的第一个问题是字母的哪些属性有利于识别它们。第二个问题是如何将这些特征表示为神经网络的输入。例如,我可能检测到字母中的所有角点,并将它们作为(x,y)点的向量。如何将该向量转换为适合神经网络的向量(因为不同字母的向量大小可能不同)。本文概述了使用神经网络进行OCR的4种特征提取技术。他介绍了以下方法: 运行长度编

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

本文概述了使用神经网络进行OCR的4种特征提取技术。他介绍了以下方法:

  • 运行长度编码(RLE):您需要一个二进制图像(即,只有白色或黑色)。二进制字符串可以编码成更小的表示形式
  • 边缘检测:找到边缘。这样做可能会非常粗糙,因此,不必返回精确的(x,y)坐标,只需在减少的位置(即图像的20%、40%、60%和80%)上出现这样的边缘时进行计数,即可减少矩阵
  • 计数“真实像素”:这将图像矩阵的维度从
    width*height
    减少到
    width+height
    。使用
    宽度
    向量和
    高度
    向量作为单独的输入
  • 基本矩阵输入:你已经试过了;输入整个矩阵会得到很好的结果,但正如您所注意到的,可能会导致高维度和训练时间。您可以尝试减小图像的大小(例如,从200x200减小到50x50)

很多人都采用了各种各样的OCR功能。最简单的方法当然是直接传递像素值

从UCI数据集中提取的OpenCV样本中有一个字母识别数据。它使用了大约16种不同的功能。检查此软件:

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


你也可能对它感兴趣。本文简要介绍了目前使用的各种特征提取技术

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