2012-06-27 67 views
1

我们目前正在使用opencv.pre-processing进行android ocr应用程序的处理,分割,特征提取步骤已完成。分类是剩下的一步,我们被卡住了..我们正在使用一个填充了每个字母特征的数据库表格。首先,我们每个字母只有一个特征,我们使用了欧几里得距离,但结果不准确,更多需要获得的功能,所以我们做了。现在的问题是,我们有7个功能每封信,绝对不知道如何根据它们对i/p进行分类..有人建议使用knn,但我们无法弄清楚并且该部分中的opencv文档尚不清楚。如果有人能帮助它,那么它会很好。 在此先感谢使用opencv进行图像分类

回答

3

简而不讨论细节。矢量空间在这里派上用场。您需要为训练集中的每个实例构建一个特征向量 <feature1, feature2, feature3.. featureN>。 从这些图像中提取您认为或者您在研究文章中阅读的特征对于图像分类非常重要。例如,你可以做质心,高斯模糊,直方图等。 一旦你有了这些值,线性代数就会发挥一些分类算法的作用:knn,svm,naive bayes等你在你的训练集上运行,那就是你建立你的模型。 如果模型准备就绪,请在测试集上运行它。 使用交叉验证以获得更全面的结果。 有关详情,请在课程笔记: http://www.inf.ed.ac.uk/teaching/courses/iaml/slides/knn-2x2.pdfhttp://www.inf.ed.ac.uk/teaching/courses/inf2b/lectureSchedule.html

+0

谢谢你:)这些链接真的很有用:) – user1486322

0

想补充一点的OpenCV可能不会有那种你可能更喜欢分类的。

这里有几个图书馆,尽管你可能不得不在移动平台上看到最好的图书馆。你能否提供一些你正在使用的功能的细节?

最简单的KNN(k-最近邻)度量将是在输入样本的要素与数据库表中的每个向量之间找到n维(对于n维特征向量)的欧几里德距离。如果您有多个类并且要将输入图像分类为图像的“类型”或“类”之一,还要探索Mahalanobis距离(用于测量点与数据集/类之间的距离)。

正如@matcheek所提到的,使用机器学习技术如SVM,神经网络等可以实现更复杂的功能。然而,首先考虑一个更简单的事情,比如kNN,考虑到它可能会限制计算的复杂性。