首页 文章

OpenCV中的SVM:具有RBF内核的低精度OCR

提问于
浏览
3

我正在使用MS Visual Studio 2008,OpenCV,C和SVM继续我的OCR项目 . 我已经生成了一个> 2000个机器打印字符样本的数据集 . 当我使用线性内核进行测试时,我总是获得96,36%的准确率 .

我如何在OpenCV中使用SVM可以在this thread中引用 .

现在我尝试使用RBF内核并遇到这两个问题:

(1)无论我使用什么参数(C和gamma),所有字符总是被分类为0(零) . 如果我用MNIST测试,所有数字都是9 .

我希望有OpenCV和SVM经验的人可以向我解释 . 我知道还有一些其他良好的机器学习和图像处理框架,比如ACCORD.NET,但我已经使用了C,将整个程序变成C#会很麻烦(OCR只是其中的一部分) .

OpenCV的版本是2.3.1 .

(2)我把这个问题转移到另一个问题作为etarion的建议 . 如果您有时间,请查看:Visual Studio reports error C2664 with train method of SVM in openCV .

2 回答

  • 1

    该理论表明,在正确的参数下,RBF内核至少与线性内核一样有效 . 因此,我将列出常见的问题来源:

    • 您可能遇到数值困难 . 你有规范化数据吗?每个功能是否介于0和1之间?或-1和1?实际决策值的数值范围是多少?功能值的范围是多少?

    • 你是否有可能高估线性分类器的性能(即测试和训练相同的数据?)

    • 可能是你的多类表示有点瑕疵 . 对于两类问题而不是十类问题,是否存在相同的性能差异?

  • 0

    至于第一部分,'s very likely that your parameters are off. There'是train_auto method用于自动参数估计,如果通过将自定义参数网格传递给方法(但首先尝试默认参数)不会产生好的结果,则可以扩展使用的参数范围 .

相关问题