Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python NN&;的数字识别前的预处理;用MNIST数据集训练CNN_Python_Matlab_Ocr_Image Recognition_Mnist - Fatal编程技术网

Python NN&;的数字识别前的预处理;用MNIST数据集训练CNN

Python NN&;的数字识别前的预处理;用MNIST数据集训练CNN,python,matlab,ocr,image-recognition,mnist,Python,Matlab,Ocr,Image Recognition,Mnist,我正在尝试对我和几个朋友用USIGNN和CNN写的手写数字进行分类。为了训练神经网络,使用MNIST数据集。问题是使用MNIST数据集训练的神经网络在我的数据集上没有给出令人满意的测试结果。我在Python和MATLAB上使用了一些具有不同设置的库,如下所示 在Python上,我使用了设置 三层神经网络,输入为784,隐藏神经元为30,输出为10 成本函数=交叉熵 纪元数=30 批量大小=10 学习率=0.5 使用MNIST训练集进行训练,测试结果如下: MNIST上的测试结果=96% 在我

我正在尝试对我和几个朋友用USIGNN和CNN写的手写数字进行分类。为了训练神经网络,使用MNIST数据集。问题是使用MNIST数据集训练的神经网络在我的数据集上没有给出令人满意的测试结果。我在Python和MATLAB上使用了一些具有不同设置的库,如下所示

在Python上,我使用了设置

  • 三层神经网络,输入为784,隐藏神经元为30,输出为10
  • 成本函数=交叉熵
  • 纪元数=30
  • 批量大小=10
  • 学习率=0.5
使用MNIST训练集进行训练,测试结果如下:

MNIST上的测试结果=96% 在我自己的数据集上的测试结果=80%

在MATLAB上,我使用了各种设置,包括归一化,类似于上述,神经网络的最佳精度约为75%。神经网络和CNN都在MATLAB上使用

我试图将我自己的数据集与MNIST相似。上述结果来自预处理的数据集。以下是应用于我的数据集的预处理:

  • 每个数字单独裁剪,并通过usign双三次插值调整为28 x 28
  • 通过使用MATLAB上的边界框,路径以MNIST中的平均值为中心
  • 背景为0,最高像素值为1,如MNIST中所示
我不知道还能做什么。仍然存在一些差异,如对比度等,但对比度增强试验不能提高准确性

下面是MNIST和我自己的数据集中的一些数字,用于直观地比较它们

正如你所看到的,有一个明显的对比差异。我认为准确性问题是因为MNIST和我自己的数据集之间缺乏相似性。我如何处理这个问题

在中也有类似的问题,但他的数据集是印刷数字的集合,不像我的

编辑: 我还测试了我自己的数据集的二值化verison,使用二值化MNIST和默认MNIST训练的NN。二值化阈值为0.05

下面是分别来自MNIST数据集和我自己的数据集的矩阵形式的示例图像。他们都是5岁

MNIST:

  Columns 1 through 10

         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0    0.1176    0.1412
         0         0         0         0         0         0         0    0.1922    0.9333    0.9922
         0         0         0         0         0         0         0    0.0706    0.8588    0.9922
         0         0         0         0         0         0         0         0    0.3137    0.6118
         0         0         0         0         0         0         0         0         0    0.0549
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0    0.0902    0.2588
         0         0         0         0         0         0    0.0706    0.6706    0.8588    0.9922
         0         0         0         0    0.2157    0.6745    0.8863    0.9922    0.9922    0.9922
         0         0         0         0    0.5333    0.9922    0.9922    0.9922    0.8314    0.5294
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0

  Columns 11 through 20

         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0    0.0118    0.0706    0.0706    0.0706    0.4941    0.5333    0.6863    0.1020
    0.3686    0.6039    0.6667    0.9922    0.9922    0.9922    0.9922    0.9922    0.8824    0.6745
    0.9922    0.9922    0.9922    0.9922    0.9922    0.9922    0.9922    0.9843    0.3647    0.3216
    0.9922    0.9922    0.9922    0.9922    0.7765    0.7137    0.9686    0.9451         0         0
    0.4196    0.9922    0.9922    0.8039    0.0431         0    0.1686    0.6039         0         0
    0.0039    0.6039    0.9922    0.3529         0         0         0         0         0         0
         0    0.5451    0.9922    0.7451    0.0078         0         0         0         0         0
         0    0.0431    0.7451    0.9922    0.2745         0         0         0         0         0
         0         0    0.1373    0.9451    0.8824    0.6275    0.4235    0.0039         0         0
         0         0         0    0.3176    0.9412    0.9922    0.9922    0.4667    0.0980         0
         0         0         0         0    0.1765    0.7294    0.9922    0.9922    0.5882    0.1059
         0         0         0         0         0    0.0627    0.3647    0.9882    0.9922    0.7333
         0         0         0         0         0         0         0    0.9765    0.9922    0.9765
         0         0         0         0    0.1804    0.5098    0.7176    0.9922    0.9922    0.8118
         0         0    0.1529    0.5804    0.8980    0.9922    0.9922    0.9922    0.9804    0.7137
    0.0941    0.4471    0.8667    0.9922    0.9922    0.9922    0.9922    0.7882    0.3059         0
    0.8353    0.9922    0.9922    0.9922    0.9922    0.7765    0.3176    0.0078         0         0
    0.9922    0.9922    0.9922    0.7647    0.3137    0.0353         0         0         0         0
    0.9922    0.9569    0.5216    0.0431         0         0         0         0         0         0
    0.5176    0.0627         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0

  Columns 21 through 28

         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
    0.6510    1.0000    0.9686    0.4980         0         0         0         0
    0.9922    0.9490    0.7647    0.2510         0         0         0         0
    0.3216    0.2196    0.1529         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
    0.2510         0         0         0         0         0         0         0
    0.0078         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
我自己的数据集:

  Columns 1 through 10

         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0    0.4000    0.5569
         0         0         0         0         0         0         0         0    0.9961    0.9922
         0         0         0         0         0         0         0         0    0.6745    0.9882
         0         0         0         0         0         0         0         0    0.0824    0.8745
         0         0         0         0         0         0         0         0         0    0.4784
         0         0         0         0         0         0         0         0         0    0.4824
         0         0         0         0         0         0         0         0    0.0824    0.8745
         0         0         0         0         0         0         0    0.0824    0.8392    0.9922
         0         0         0         0         0         0         0    0.2392    0.9922    0.6706
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0    0.4431    0.3608
         0         0         0         0         0         0         0    0.3216    0.9922    0.5922
         0         0         0         0         0         0         0    0.3216    1.0000    0.9922
         0         0         0         0         0         0         0         0    0.2784    0.5922
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0

  Columns 11 through 20

         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0    0.2000    0.5176    0.8392    0.9922    0.9961    0.9922    0.7961    0.6353
    0.7961    0.7961    0.9922    0.9882    0.9922    0.9882    0.5922    0.2745         0         0
    0.9569    0.7961    0.5569    0.4000    0.3216         0         0         0         0         0
    0.7961         0         0         0         0         0         0         0         0         0
    0.9176    0.1176         0         0         0         0         0         0         0         0
    0.9922    0.1961         0         0         0         0         0         0         0         0
    0.9961    0.3569    0.2000    0.2000    0.2000    0.0392         0         0         0         0
    0.9922    0.9882    0.9922    0.9882    0.9922    0.6745    0.3216         0         0         0
    0.7961    0.6353    0.4000    0.4000    0.7961    0.8745    0.9961    0.9922    0.2000    0.0392
         0         0         0         0         0    0.0784    0.4392    0.7529    0.9922    0.8314
         0         0         0         0         0         0         0         0    0.4000    0.7961
         0         0         0         0         0         0         0         0         0    0.0784
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0    0.0824    0.4000    0.4000    0.7176
    0.9176    0.5961    0.6000    0.7569    0.6784    0.9922    0.9961    0.9922    0.9961    0.8353
    0.5922    0.9098    0.9922    0.8314    0.7529    0.5922    0.5137    0.1961    0.1961    0.0392
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0         0

  Columns 21 through 28

         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
    0.1608         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
    0.1608         0         0         0         0         0         0         0
    0.9176    0.2000         0         0         0         0         0         0
    0.8353    0.9098    0.3216         0         0         0         0         0
    0.2431    0.7961    0.9176    0.4392         0         0         0         0
         0    0.0784    0.8353    0.9882         0         0         0         0
         0         0    0.6000    0.9922         0         0         0         0
         0    0.1608    0.9137    0.8314         0         0         0         0
    0.1216    0.6784    0.9569    0.1569         0         0         0         0
    0.9137    0.8314    0.3176         0         0         0         0         0
    0.5569    0.0784         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0

你可以接受mnist培训的cnn,尝试对样本的子集进行再培训。应用模糊和small.roto-translations来增加数据量。

因此,您需要的是一种通用的测试数据归一化方法,以便可以将其与MNIST训练数据进行比较。也许您可以首先使用一种技术将MNIST训练数据标准化为标准格式,然后训练CNN,然后使用相同的过程将测试数据标准化,然后应用CNN进行识别

你看过这张报纸吗?它使用基于矩的图像归一化。它是单词级的,所以不完全是您正在做的,但是应该很容易实现


(Kozielski等人):

我想知道您是否只使用了列车/测试集或将数据划分到列车/开发/测试集中。在第二种情况下,确保dev和测试集来自相同的分布。在任何一种情况下,模型都在训练集中训练,并尝试将结果推广到测试集

这似乎是一个高方差问题。但是,由于您创建的数据集来自不同的分布,我相信您会遇到数据不匹配的情况。您准备的数据集可能比您从MNIST数据库获得的训练集有点困难(来自不同的分布),并且模型从未见过这种困难的数据集。因此,该模型不能很好地推广。Ng的模型优化讲座(失配培训和开发/测试集)很好地解决了这个问题

一个简单的解决方案是将数据集的一部分(abt 50%或更多)与MNIST训练集混合,一部分与开发/测试集混合,并重新训练模型。这使您的模型能够很好地推广到困难的数据集。。 此外,使用弹性失真或其他增强技术来增强数据可能会有所帮助,因为它会给数据集带来变化并增加数据量


其他更好地优化模型的方法可能是使用正则化技术,如“退出”(Dropout)

看起来你的数字在亮度上有更多的变化。你试过量化图像吗。x(x>0)=255?您还可以尝试使用中值滤波器来消除压缩带来的任何椒盐噪声。@shaw2thefloor我已经应用了x(x@shaw2thefloor我没有对MNIST集进行任何扩充,只使用MNIST训练集进行训练。MNIST测试集和我自己的数据集分别进行测试。@NeilSlater是的,它以一种褪色的方式显示数字。黑色背景变为灰色。我使用“显示网络”来显示多个数字。它是stanfor的一部分d ufdl课程在这里。我意识到了线条的思维。我应该对它进行转换吗?我没有检查MNIST的总体厚度,但我的数字总体上很薄。@shaw2thefloor是的,这并不奇怪。我的问题是,我如何将任何类型的文字与MNIST相似,以便可以使用经过MNIST训练的分类器对其进行分类。O因此,我需要在训练集中加入其他类型的文字。从上面的图片中可以看出,我的数据集线条较细,因为它们是用智能手机笔书写的。据我所知,这在MNIST中并不常见。我使用三星Note3的笔从4个主题中收集了120位数字。因此,笔的厚度一般没有差异。Y我们的建议可能会提高准确性,因为MNIST数据具有各种类型的数字,通常与我自己的数据集不相似。然而,我的最终目标是从任何图像中准确检测手写字母和数字。它可以是一个类中黑板的图像。在这种情况下,CNN或NN使用MNIST或通过智能笔