OpenCv3.0.0中SVM预测的置信度
confidence of prediction in SVM in OpenCv3.0.0
我正在使用一个图来对道路信号进行分类,我希望获得0-1之间的预测置信度。好吧,我试图计算置信度,并将其与概率进行比较,但没有成功,因为有一些图像表示(exp为60 Km/h),其速率低于0.9,而另一个图像(也表示60 Kkm/h)的速率更高,达到0.9。
但同样的事情在未识别的流量sing中重复:有些图像不代表流量sing,其速率小于0.9,而其他图像的速率高于0.9。我试过这个
decision = svmob.predict(testData, true);
confidence = 1.0 / (1.0 + exp(-decision));
我在这里找到的,但它在OpenCv3.0中不起作用。你能帮帮我吗。
比我试过的要多:
int classObject = decision.at<float>(currentFile) < 0.0 ? 1 : -1;
float confidence = classObject == -1 ? (1.0 / (1.0 + exp(-decision.at<float>(currentFile)))) : (1.0 - (1.0 / (1.0 + exp(-decision.at<float>(currentFile)))));
if(confidence<0.9)
printf("le panneau n'est pas reconnu");
else
printf("decision = %f, response = %fn",
decision.at<float>(0), response);
我想知道谁来做,好吗?
在opencv3.0中,我们应该使用接口predict(p,noArray(),cv::ml::StatModel::RAW_OUTPUT)。它的效果等于opencv2.4中的预测(p,true)
Opencv文档解释了接口:C++:float StatModel::predict(InputArray samples,OutputArray results=noArray(),int flags=0)const参数:samples–输入样本,浮点矩阵results–结果的可选输出矩阵。
flags–可选标志,取决于型号。一些模型,如Boost、SVM识别StatModel::RAW_OUTPUT标志,这使方法返回原始结果(总和),而不是类标签
相关文章:
- 未在此作用域OpenCV3.4中声明cvSaveImage
- 在 SVM-Struct 中未定义对 sqrt 的引用(已使用 -lm)
- 使用 SVM 进行分类,使用来自 Bag of Word 的词汇构建
- SVM 规模:找不到命令
- 将svm分类器设置为HOG检测器
- OpenCV3.3 CUDA 堆栈粉碎
- 在Win10上使用带有Qt5的OpenCV3.0,调试断言失败
- 在Visual Studio 2017上无法使用调试模式x64进行OpenCV3.2编译
- SVM 训练时间是否取决于输入数据的内容?
- 无法通过OpenCv3.2加载Squeezenet 1.0或1.1
- OPENCV 3.4.1获取经过定制训练的线性SVM HOG DETECTMULTISCALE的原始形式
- 如何在Mac上使用带有C++的brew opencv3
- 如何使用 dlib 训练或合并多个 .svm 并检测多个类
- 如何在OPENCV 2.4.13中导入训练有素的SVM检测器
- 如何使用2通道垫子中的OPENCV中使用SVM
- OpenCv3.3安装错误-未定义对的引用
- 汽车的检测和计数 opencv3.0.0 c++.
- 贝叶斯和SVM分类器在OpenCV3中的实现
- OpenCv3.0.0中SVM预测的置信度
- OpenCv3.0.0中的非线性SVM