Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用多类svm拒绝未知手势_C++_Opencv_Svm - Fatal编程技术网

C++ 使用多类svm拒绝未知手势

C++ 使用多类svm拒绝未知手势,c++,opencv,svm,C++,Opencv,Svm,我目前正在实施一个手识别系统来实时识别手势。我使用了方向梯度直方图作为特征提取,多类支持向量机作为分类器。因为我受过训练 将A作为标签1 手势B作为标签2 手势C作为标签3 手势D为标签4 现在,当我提供用于匹配的手势时,它将手势E识别为手势D。手势F识别为手势A。我想知道如何拒绝不构成我训练数据一部分的未知手势。为了训练训练数据,我使用了svm->train function,为了进行匹配,我使用了svm->predict。多类svm没有你想要的“拒绝”机制。一种可行的方法是用已知的非A、B、

我目前正在实施一个手识别系统来实时识别手势。我使用了方向梯度直方图作为特征提取,多类支持向量机作为分类器。因为我受过训练

  • 将A作为标签1
  • 手势B作为标签2
  • 手势C作为标签3
  • 手势D为标签4

  • 现在,当我提供用于匹配的手势时,它将手势E识别为手势D。手势F识别为手势A。我想知道如何拒绝不构成我训练数据一部分的未知手势。为了训练训练数据,我使用了svm->train function,为了进行匹配,我使用了svm->predict。

    多类svm没有你想要的“拒绝”机制。一种可行的方法是用已知的非A、B、C或D样本训练负类#5。是否可以使用欧几里德距离来计算预测向量和测试向量之间的距离?并以此为线索,了解他们是否属于同一类。你可以试试。更好的启发式方法是SVM输出分数。但这两种方法都是脆弱的启发式方法。如何获得SVM输出分数?OpenCV不直接公开分数,但显示了一种解决方法。我的建议是不要依赖于输入空间上的置信度分数或任何距离值。