感知机能否用于手写数字的识别?

9

假设我手写了一个包含单个数字(0..9)的小位图。

是否可以使用(两层)感知器来检测数字?

除了使用神经网络之外,还有其他可能性从位图中检测单个数字吗?

3个回答

8

8
直接将位图的每个像素馈送到神经网络中需要大量训练,并且不能很好地处理图像的缩放或旋转。
为了帮助神经网络进行良好的分类,您需要执行一些预处理步骤。
  • 归一化图像:
    • 调整对比度和亮度,使图像的直方图与参考图像相匹配。
    • 模糊图像以去除噪声。
    • 使用某个阈值将其转换为黑白。
    • 找到形状的边界框,缩放到预定义大小。
  • 计算可用于区分一个数字与另一个数字的各种图像特征:
    • 图像的Euler数 - 告诉您形状中有多少“孔”(例如数字8有两个孔)。
    • 白色像素的数量(数字的面积)
    • 白色像素坐标集的主成分 - 告诉您形状有多“细长”。
    • ...您可以想到的其他具有类似值的特征,用于相似数字。

主成分也可以用于规范化形状的旋转,使最长轴垂直。

特征是您输入神经网络进行分类的内容,而不是像素。

1
我曾尝试使用神经网络来执行类似的任务,并发现(到目前为止)如果我将实际像素提供给网络,而不是进行计算并将这些计算提供给网络,它的效果更好。当然,我可能没有选择好的计算作为输入。但到目前为止,即使假设图像已足够归一化,它也能正常工作。 - Phil

1

这里有一个Matlab示例程序,它使用训练好的神经网络来检测单个数字(图像大小固定为28*28)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接