【问题标题】:Characters Recognition for Matlab Neural NetworkMatlab神经网络的字符识别
【发布时间】:2011-12-12 07:55:50
【问题描述】:

我正在做我的最后一个项目。我选择实现一个 NN 来进行字符识别。

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

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

非常感谢。

【问题讨论】:

  • 除非您只想(过度)适应您的训练集,否则这甚至还不够接近数据。您需要几个数量级的更多数据。快速阅读这个(经过充分研究的)应用领域的任何论文应该会让你相信这一点。

标签: matlab image-processing neural-network


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 感谢 user670416,我试着自己弄清楚如何转换。我发现也许我可以使用位图。因为我是一个学生而不是图像处理学生。我不想在做图像的东西时努力。 span>
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 2012-05-29
      • 2012-02-29
      • 2012-03-31
      • 2013-11-30
      • 2011-09-18
      • 2014-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多