Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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 获取最先进的手写数字分类器的最简单方法是什么?_Python_Opencv_Ocr_Caffe - Fatal编程技术网

Python 获取最先进的手写数字分类器的最简单方法是什么?

Python 获取最先进的手写数字分类器的最简单方法是什么?,python,opencv,ocr,caffe,Python,Opencv,Ocr,Caffe,我正在从事一个涉及OCR识别手写数字的项目,该项目使用典型的预处理分割识别管道。我通过调整OpenCV中针对特定任务的一些标准算法,手动完成了前两个阶段。对于第三阶段(识别),我想使用一个现成的分类器 首先我试过Tesseract,但它是。所以我开始研究MNIST的进展情况。由于它的流行性,我希望很容易得到一个好的高质量分类器。事实上,上面的答案建议使用HOG+SVMtandem,它可以方便地在中实现。不幸的是,它没有我希望的那么好。它总是把0与8混淆起来(在我看来,它实际上是一个0),这是迄今

我正在从事一个涉及OCR识别手写数字的项目,该项目使用典型的预处理分割识别管道。我通过调整
OpenCV
中针对特定任务的一些标准算法,手动完成了前两个阶段。对于第三阶段(识别),我想使用一个现成的分类器

首先我试过Tesseract,但它是。所以我开始研究
MNIST
的进展情况。由于它的流行性,我希望很容易得到一个好的高质量分类器。事实上,上面的答案建议使用
HOG+SVM
tandem,它可以方便地在中实现。不幸的是,它没有我希望的那么好。它总是把
0
8
混淆起来(在我看来,它实际上是一个
0
),这是迄今为止我的算法所犯错误最多的原因

以下是一些由
HOG+SVM
产生的错误示例:

顶行是从图像中提取的原始数字(不存在更高分辨率的图像),中间行是这些数字的倾斜、大小规格化和居中,底行是
HOG+SVM
的输出

我试图通过在
HOG+SVM
之后应用
kNN
分类器热修复这个
0-8
错误(如果
HOG+SVM
输出一个
8
运行
kNN
并返回其输出),但结果是相同的

然后我试着调整它,以达到0.45%
MNIST
testerror。然而,在与pylearn2一起度过一周后,我无法让它工作。它,即使是在像AmazonEC2这样的无菌环境中运行(我甚至没有提到我自己的机器)

我知道咖啡馆的存在,但我还没有尝试过


在MINST数据库的网页底部,您可以找到最先进方法的基准,并链接到他们的论文,最简单的方法是什么来设置高精度(例如,MNIST测试错误

表的最后一个条目的结果最好,误差为0.23%(非常令人印象深刻)


简短回答:要达到最先进的费率,没有简单的方法,除非您可以接受2-5%的错误(然后使用sklearn),或者您可以在网上找到代码。

如果您还没有这样做,请继续尝试caffe。 它比cuda convnet更容易编译,它不依赖cuda(尽管它大大加快了速度),并且它有一个使用Lenet算法的mnist示例

看这里:

我当然知道。问题是,顶级结果使用(似乎)cuda convnet的一个分支,几乎不可能编译。其他接近顶端的都是论文。我要求一个我可以编译和运行的解决方案。正如我所说,
Pyrearn2
声称达到了0.45%,但根本不起作用。你可以接受的错误率是多少?我可以建议你一些方法他取决于你的错误阈值根据粗略估计,