标签: c++ opencv computer-vision image-recognition
我正在尝试构建一个轻量级的对象识别系统,使用ORB进行特征提取,使用LDA进行分类。但是我遇到的问题就是提取不同大小的提取功能。
这些是我的步骤:
如果我尝试使用cv :: gemm创建一个通用矩阵,由于大小不同,我会得到一个异常。我的第一个想法是通过调整大小来标准化所有图像,但是当对象具有类似的小特征时,这会导致很多准确性问题。
这有什么解决方案吗? LDA是否适合这种方法?我知道它常用于面部识别算法,如fisherfaces。
答案 0 :(得分:1)
LDA需要固定长度功能,大多数优化和机器学习方法也是如此。您可以将图像块调整为固定大小,但这可能不是一个好的功能。通常人们使用比例不变特征,例如SIFT。您还可以尝试颜色直方图,或边缘检测和空间直方图分级的某些变体,例如GIST向量。
如果不了解您希望实现的目标,很难说LDA是否适合这种方法。您还可以考虑使用SVM,某种形式的boosting,或者只是使用大型训练集的普通最近邻居。