Matlab神经网络的字符识别

时间:2011-10-21 06:00:04

标签: matlab image-processing neural-network

我正在研究我的最终项目。我选择实现NN进行字符识别。

我的计划是将26张包含26个英文字母的图像作为训练数据,但我不知道如何将这些图像转换为神经网络的输入。

假设我有一个带有2层的反向传播神经网络 - 隐藏层和输出层。输出层有26个神经元,可产生26个字母。我自己创建了26个图像(大小为24 * bmp格式的100 * 100像素),每个图像都包含一个英文字母。我不需要进行图像分割,因为我是图像处理的新手,所以你们可以给我一些关于如何在Matlab中将图像转换为输入向量的建议(或者我是否需要做边缘,形态或其他图像预处理的东西?)。

非常感谢。

3 个答案:

答案 0 :(得分:2)

只有字母相同(像素的位置固定)时,NN才会起作用。您需要将图像转换为灰度并将其像素化。换句话说,使用在正方形上分割图像的网格。正方形必须小到足以得到字母细节,但足够大,所以你不要使用太多的神经元。每个像素(灰度)是NN的输入。剩下的就是确定连接神经元的方式,例如NN拓扑。两层NN就足够了。最有可能你应该将每个输入“像素”连接到第一层的每个神经元,将第一层的每个神经元连接到第二层的每个神经元

答案 1 :(得分:0)

这并不直接回答您提出的问题,但可能有用:

1)您需要更多的训练数据。更重要的是,如果我理解正确(每个字母只有一个样本?)

2)这是一个非常常见的项目,如果允许,您可能想尝试在互联网上查找已处理的数据集,这样您就可以专注于NN组件。

答案 2 :(得分:0)

由于您将进行字符识别,我建议您使用不需要任何训练数据的SOM神经网络;每个字母你将有26个输入神经元,一个神经元。对于图像处理位,Ross有一个有用的建议来隔离每个字母。