假设我有一个小位图,其中包含一个手写的数字(0..9).
是否可以使用(双层)感知器检测数字?
除了使用神经网络之外,还有其他可能从位图中检测单个数字吗?
这是一个庞大的手写数字数据库的链接.首页还具有许多不同方法的相对性能数据,包括2层神经网络.这应该给你一个良好的开端: MNIST数字数据库和性能
您可能还想看看Geoff Hinton关于Restricted Boltzmann Machines的工作,他说这些工作表现相当不错,而且他的网站上有一个很好的解释性演讲(非常容易观看).
将位图的每个像素直接馈送到神经网络中将需要大量训练,并且不能很好地处理图像的缩放或旋转.
为了帮助神经网络执行良好的分类,您需要执行一些预处理步骤.
标准化图像:
调整对比度和亮度,使图像的直方图与参考图像匹配.
模糊图像,消除噪音.
使用一些阈值将其转换为黑白.
找到形状的边界框,缩放到预定义的大小.
计算可用于区分一个数字与另一个数字的图像的各种功能:
图像的欧拉数 - 告诉您形状中有多少个"孔"(例如,数字8的两个孔).
白色像素数(数字区域)
白色像素坐标集的主要组成部分 - 告诉您形状是如何"拉长"的.
...您可以想到的其他功能往往具有类似数字的相似值.
主要成分也可用于标准化形状的旋转,使得最长轴是垂直的.
这些功能是您输入神经网络进行分类的,而不是像素.