gpt4 book ai didi

opencv - CvSVM.predict() 给出 'NaN' 输出和低精度

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:21 25 4
gpt4 key购买 nike

我使用 CvSVM 仅对两种类型的面部表情进行分类。我使用基于 LBP(局部二进制模式)的直方图从图像中提取特征,并使用 cvSVM::train(data_mat,labels_mat,Mat(),Mat(),params) 进行训练,其中,

data_mat 大小为 200x3452,包含 200 个样本的归一化(0-1)特征直方图,行主要形式,每个样本有 3452 个特征(取决于邻域点的数量)

labels_mat是对应的标签矩阵,只包含0和1两个值。参数是:

CvSVMParams 参数;

params.svm_type     =CvSVM::C_SVC;
params.kernel_type =CvSVM::LINEAR;
params.C =0.01;
params.term_crit=cvTermCriteria(CV_TERMCRIT_ITER,(int)1e7,1e-7);

问题在于:-

  1. 在测试时我得到了非常糟糕的结果(大约 10%-30% 的准确率),即使在应用了不同的内核和 train_auto() 函数之后也是如此。

  2. CvSVM::predict(test_data_mat,true) 给出“NaN”输出

我将非常感谢任何帮助,这让我很困惑。

最佳答案

我想,您的类在您使用的特征空间中是线性难分/不可分的。在分类器训练步骤之前将 PCA 应用于您的数据集可能会更好并估计这个问题的有效维数。此外,我认为使用其他分类器测试您的数据集将很有用。您可以为此目的改编标准 opencv 示例 points_classifier.cpp。它包括许多具有相似界面的不同分类器,您可以使用。

关于opencv - CvSVM.predict() 给出 'NaN' 输出和低精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14924388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com