使用具有不同大小训练图像的LDA和ORB的对象识别。

时间:2012-07-05 05:06:48

标签: c++ opencv computer-vision image-recognition

我正在尝试构建一个轻量级的对象识别系统,使用ORB进行特征提取,使用LDA进行分类。但是我遇到的问题就是提取不同大小的提取功能。

这些是我的步骤:

  1. 使用ORB提取关键点。
  2. 通过对关键点进行分组来提取图像中的可训练特征。 (最新提取的例子:http://imgur.com/gaQWk
  3. 使用提取的功能训练识别器。 (这是出现问题的地方)
  4. 对来自野外的图像中的对象进行分类。
  5. 如果我尝试使用cv :: gemm创建一个通用矩阵,由于大小不同,我会得到一个异常。我的第一个想法是通过调整大小来标准化所有图像,但是当对象具有类似的小特征时,这会导致很多准确性问题。

    这有什么解决方案吗? LDA是否适合这种方法?我知道它常用于面部识别算法,如fisherfaces。

1 个答案:

答案 0 :(得分:1)

LDA需要固定长度功能,大​​多数优化和机器学习方法也是如此。您可以将图像块调整为固定大小,但这可能不是一个好的功能。通常人们使用比例不变特征,例如SIFT。您还可以尝试颜色直方图,或边缘检测和空间直方图分级的某些变体,例如GIST向量。

如果不了解您希望实现的目标,很难说LDA是否适合这种方法。您还可以考虑使用SVM,某种形式的boosting,或者只是使用大型训练集的普通最近邻居。