我想在 OpenCV 中编写 OCR。我需要识别单个字母。我想使用 K 最近邻。我想识别不同大小和字体以及手写的字母。
所以,我将准备要训练的图像。第一个问题是。我应该在 (1) 相同大小的图像或 (2) 适合的图像中使用字母吗?
1)
2)
找到的字母怎么样?我应该将它传递为 1(与火车图像大小相同)还是 2(刚好适合字母的矩形)???
最佳答案
“基准”MNIST dataset按照您描述的场景 (1) 中的规范化和居中字符。如果您只对分类感兴趣,那么您的操作方式可能会有所不同。
如果我没理解错的话,你的第二个问题与 ML 术语中所谓的“预处理”有关。如果您应用转换将每个原始图像转换为 (1) 或 (2) 类型之一,则称为预处理步骤——无论您选择哪个。无论您对训练集进行何种预处理,都必须在应用模型之前对数据进行完全相同的预处理。
为简单起见,如果您有一个巨大的数据集,您想要将其拆分为“训练”和“测试”示例,请先将其转换为“预处理数据”集,然后拆分该数据集。这样您就可以确保训练和测试使用完全相同的转换参数。
关于c++ - opencv 中的 OCR - 如何传递对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28126482/