【问题标题】:Image classification with opencv使用 opencv 进行图像分类
【发布时间】:2012-06-29 03:59:35
【问题描述】:

我们目前正在使用 opencv 开发一个 android ocr 应用程序。预处理、分割、特征提取步骤已完成。分类是剩下的步骤,我们被卡住了..我们正在使用一个填充了每个字母特征的 DB 表..首先我们每个字母只有一个特征,我们使用了欧几里德距离,但结果不准确等等需要获得特征,所以我们做到了。现在的问题是我们每个字母有 7 个特征,并且完全不知道如何根据它们对 i/p 进行分类。有些人建议使用 knn,但我们不知道如何并且该部分中的opencv文档不清楚..所以如果有人可以帮助它,那就太好了。 在此先感谢

【问题讨论】:

    标签: android opencv classification


    【解决方案1】:

    想补充一点,OpenCV 可能没有您可能喜欢的分类器。

    那里有几个库,但您可能需要看看哪个库在移动平台上效果最好。您能否详细介绍一下您正在使用的功能?

    最简单的 KNN(k 近邻)度量是在输入样本的特征和 DB 表中的每个向量之间找到 n 维(对于 n 维特征向量)的欧几里得距离。如果您有多个类并且输入图像将被归类为这样一种图像“类型”或“类”,则还可以探索马氏距离(用于测量点与数据集/类之间的距离)。

    正如@matcheek 所提到的,使用机器学习技术(例如 SVM、神经网络等)可以实现更复杂的操作。但是首先您可能会考虑像 kNN 这样更简单的东西,因为它是一个移动平台,可能会限制计算复杂性。

    【讨论】:

      【解决方案2】:

      简单地说,不讨论细节。向量空间在这里派上用场。你需要建立一个特征向量 <feature1, feature2, feature3.. featureN> 用于训练集中的每个实例。 从这些图像中的每一个中,您可以提取您认为或在研究文章中阅读的特征,这些特征对于图像分类很重要。例如,您可以进行质心、高斯模糊、直方图等。 一旦你有了这些值,线性代数就会与一些分类算法一起发挥作用:你在训练集上运行的 knn、svm、朴素贝叶斯等,那就是你建立你的模型。 如果模型准备好,您可以在测试集上运行它。 使用交叉验证以获得更全面的结果。 有关更多详细信息,请查看课程说明: http://www.inf.ed.ac.uk/teaching/courses/iaml/slides/knn-2x2.pdf 要么 http://www.inf.ed.ac.uk/teaching/courses/inf2b/lectureSchedule.html

      【讨论】:

      • 谢谢你 :) 这些链接真的很有帮助 :)
      猜你喜欢
      • 1970-01-01
      • 2016-05-11
      • 2012-04-19
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 2018-01-05
      相关资源
      最近更新 更多