- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 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);
问题在于:-
在测试时我得到了非常糟糕的结果(大约 10%-30% 的准确率),即使在应用了不同的内核和 train_auto() 函数之后也是如此。
CvSVM::predict(test_data_mat,true)
给出“NaN”输出
我将非常感谢任何帮助,这让我很困惑。
最佳答案
我想,您的类在您使用的特征空间中是线性难分/不可分的。在分类器训练步骤之前将 PCA 应用于您的数据集可能会更好并估计这个问题的有效维数。此外,我认为使用其他分类器测试您的数据集将很有用。您可以为此目的改编标准 opencv 示例 points_classifier.cpp。它包括许多具有相似界面的不同分类器,您可以使用。
关于opencv - CvSVM.predict() 给出 'NaN' 输出和低精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14924388/
我正在尝试使用特征包模型、训练和支持 vector 机。我正在使用 this教程和this示例代码。我正在使用 Windows 8 和 OpenCV 2.4.10。我在 Visual Studio 2
在使用线路时... map classes_classifiers; classes_classifiers.insert(pair(class_,CvSVM())); 当我编译它时,我收到了错误..
使用opencv CvSVM的一些问题 它使用的是哪种支持向量机?是用svmlight吗? OpenCV2.2 有 svmlight,但我找不到太多关于它的引用资料。 如果我使用 CvSVM,我是否需
我正在尝试使用 this 来熟悉 CvSVM包含 590 张图像的手动标记数据库,从 0-5 分级(0 为模糊,5 为完美)。如果等级 =3,我将其标记为 1(清晰)。 对于功能,我只是使用五种不同的
我正在使用 OpenCV 3.0.0 我已经包含了所有这些库和命名空间,但我仍然收到“CvSVM 未在此范围内声明”的错误 #include #include #include "opencv2/
我使用openCV。我已经训练了SVM,但是输出文件太大(在svm.save()之后)。我想在iPhone的应用程序中使用经过训练的SVM,但文件约为300 Mb。存档后文件大小约为6 Mb。 所以,
我已经在 opencv 中为人脸创建了一个 SVM 检测器。我想分开训练和预测的过程。因此,我想找到一种方法将 CvSVM SVM 对象存储在我的硬盘中,以便在我不需要再次训练新模型的情况下随时访问它
我想创建一个 Opencv CvSVM 对象的 std::vector。当我编译这段代码时: typedef vector svm_vec; svm_vec svm_data = svm_vec();
我找不到关于如何将 SVM 参数传递给 opencv cvSvm 类的正确引用。我得到了参数列表,但没有任何关于如何将参数转换为 CV 数据结构的教程。 请问有什么帮助吗? 最佳答案 构造一个CvSV
我正在使用 Bag of Words 训练图像。但是,每次我更改 if 语句或符号中的条件值时,例如来自 if(response0)或来自 if(responsekeypoints;
我的目标是训练 SVM 并获得支持 vector ,我可以将其插入 opencv 的 HOGdescriptor 以进行对象检测。 我收集了 4000~ 个正样本和 15000~ 个负样本,并使用 o
我是 opencv 的新手。我正在尝试在 opencv 中使用 HOGDescriptor 提取图像的特征。我正在尝试使用 Opencv2.2 训练支持 vector 机,它能够检测图像中的人类。我正
这是一个愚蠢的问题,因为我对 SVM 还很陌生, 我已经成功地使用 OpenCV 的 HoGDescriptor 提取特征和位置: vector features; vector locations;
我使用 CvSVM 仅对两种类型的面部表情进行分类。我使用基于 LBP(局部二进制模式)的直方图从图像中提取特征,并使用 cvSVM::train(data_mat,labels_mat,Mat(),
我正在做一个项目,我需要使用 HOG 特征检测汽车的尾部。计算出 HOG 特征后,我使用正样本和负样本训练了 cvsvm。 cvsvm 正确地对新数据进行了分类。这是我用来训练 cvsvm 的代码。
我想知道如何创建“CvSVM”对象的 vector 。我试过使用: vector svm_bank; 但每当我使用: new_model.train(training_inputs, targets,
我正在使用 OpenCV LibSVM 开发手写字符识别系统。我已经为特征向量提取了 14 个特征,包括 Hu 矩、仿射不变矩、角数等。对于每个字符,我使用 5 个样本(对于字母“A”,有 5 种类型
我是一名优秀的程序员,十分优秀!