我正在使用AForge库框架及其神经网络。
在我训练网络的那一刻,我以大尺寸(30磅)创建了大量图像(每个字母每个字母一个图像),切出实际字母,将其缩小到更小的尺寸(10x10像素)然后将其保存到我的硬盘。然后我可以去读取所有这些图像,创建带有数据的double []数组。目前我以像素为基础进行此操作。
因此,一旦我成功训练了我的网络,我就会对网络进行测试,让它在不同大小(大写和小写)字母的示例图像上运行。
但结果并不乐观。我训练网络,以便RunEpoch有一个大约1.5的错误(几乎没有错误),但仍然有一些字母在我的测试图像中无法正确识别。
现在我的问题是:这是因为我有一个错误的学习方法(基于像素而不是本文中建议使用的受体:http://www.codeproject.com/KB/cs/neural_network_ocr.aspx - 我是否可以使用其他方法来提取数据网络?)或者这可能发生,因为我的分割算法提取图像中的字母是不好的?
有没有人有关于如何改进它的想法?
答案 0 :(得分:0)
我会尝试让您的网络输入比例不变。换句话说,预处理您在测试图像中找到的对象,以分割出单个候选字母对象,并将它们调整为与训练集大小相同。根据你的描述,你不这样做。我对AForge并不熟悉,所以也许你的问题暗示了这一点。
我对神经网络的经验是,如果有一种已知的良好方法,预处理输入数据通常会产生更好的结果。这里似乎有。