我理解神经网络是如何工作的,但如果我想将它们用于像实际字符识别这样的图像处理,我无法理解如何将图像数据输入神经网络.
我有一个非常大的A
信件形象.也许我应该尝试从图像中获取一些信息/规格,然后使用该规范的值向量?它们将成为神经网络的输入?
谁已经做过这样的事情,你能解释一下如何做到这一点吗?
最简单的解决方案是将所有图像标准化,无论是用于训练还是测试,都具有相同的分辨率.此外,每张图像中的字符大小应相同.使用灰度图像也是个好主意,因此每个像素只能给你一个数字.然后,您可以将每个像素值用作网络的一个输入.例如,如果您有大小为16x16像素的图像,则您的网络将具有16*16 = 256个输入神经元.第一个神经元会看到像素的值在(0,0),第二个在(0,1),等等.基本上,您将图像值放入一个向量中,并将此向量提供给网络.这应该已经有效了.
通过首先从图像中提取特征(例如,边缘),然后在这些特征上使用网络,您可以提高学习速度并使检测更加稳健.在这种情况下你做的是结合先前的知识.对于字符识别,您了解某些相关功能.因此,通过将它们作为预处理步骤提取,网络不必学习这些功能.但是,如果您提供错误的,即不相关的功能,网络将无法学习图像 - >字符映射.
您尝试解决的问题的名称是" 特征提取 ".这显然是非平凡的,也是一个积极研究的主题.
解决这个问题的简单方法是简单地将图像的每个像素映射到相应的输入神经元.显然,这仅适用于尺寸相同的图像,并且通常效果有限.
除此之外,你还可以做很多事情...... Gabor过滤器,Haar类功能,PCA和ICA,稀疏功能,仅举几个流行的例子.我的建议是拿起一本关于神经网络和模式识别的教科书,特别是光学字符识别.