我似乎在开发光学字符识别引擎时偶然发现了一个小问题。我已经在MNIST图像上训练了K最近邻分类器,并对其进行了测试。它似乎工作正常。但是,当我输入不同尺寸的图像时,似乎无法正确分类输入图像。 有关如何解决此问题的任何建议?通过比较不同尺寸的图像来检测字符
I] KNN分类器 -
为KNN分类的代码是:
% herein, I resize the binary image 'b' to contain the
% same dimensions as the training set 'trainingImages' as the input and training Images
% should have the same no. of columns/dimensions
b = imresize(b, size(trainingImages));
% now i try to classify the input image 'b' against the set of training images and
% training labels.
cls = knnclassify(b, trainingImages, trainingLabels, 3, 'euclidean');
CLS现在是分类矢量。但是,无论输入图像如何,这几乎总是显示1的错误分类。
另一方面,当我对MNIST测试图像进行分类时,得到了非常高的准确性!对于相同的代码如下 -
class = knnclassify(testImg, trainingImages, trainingLabels, 3, 'euclidean');
现在的主要问题是,不管是什么样的输入图像的,我给它来预测,它主要是给了我一个错误的结果(变化为不同的图像),即使是那些截然不同的图像。似乎它不能正常工作。有人能帮我看看这里的问题应该在哪里?我无法从互联网上的现有资源中找到任何解释。提前致谢。
如果训练集trainingImages包含所有模板图像,那么您将调整单个图像b到您的训练集大小。你应该将b的大小设置为训练集中单个字符的大小 – dhanushka
谢谢Dhanushka! 我也是在最后一天晚上得出这个结论的。 – vsdaking