opencv - 使用 svm load 加载保存的文件时,在 openCV 中使用 svm predict 函数时出错

标签 opencv svm

我正在尝试使用 OpenCV 中的 SVM 加载函数加载 .xml 文件,然后使用预测函数对交通标志进行分类。当到达预测函数的执行时抛出错误:

Unhandled exception at 0x00007FFE88E54008 in LicentaFunctii.exe: Microsoft C++ exception: cv::Exception at memory location 0x00000025658FD0C0.

并且在控制台中记录了以下消息:

OpenCV Error: Assertion failed (samples.cols == var_count && samples.type()== 5) in cv::ml::SVMImpl::predict, file C:\build\master_winpack-build-win64-
vc14\opencv\modules\ml\src\svm.cpp, line 2005

这是 xml 行中的前 24 行:

<?xml version="1.0"?>
<opencv_storage>
<opencv_ml_svm>
<format>3</format>
<svmType>C_SVC</svmType>
<kernel>
<type>LINEAR</type></kernel>
<C>15.</C>
<term_criteria><epsilon>1.0000000000000000e-02</epsilon>
<iterations>1000</iterations></term_criteria>
<var_count>3600</var_count>
<class_count>7</class_count>
<class_labels type_id="opencv-matrix">
<rows>7</rows>
<cols>1</cols>
<dt>i</dt>
<data>
  0 1 2 3 4 5 6</data></class_labels>
<sv_total>21</sv_total>
<support_vectors>
<_>
  1.06024239e-02 4.48197760e-02 -4.58896300e-03 -2.43553445e-02
  -7.37148002e-02 -1.85971316e-02 -1.32155744e-02 -1.38255786e-02
  -3.20396386e-02 8.21578354e-02 7.99100101e-02 -1.21739525e-02

以下代码用于从xml文件加载训练好的数据:

Ptr<SVM> svm = SVM::create();
svm->load("Images/trainedImages.xml");

注意:我使用的是 OpenCV 3.4.0 版本。

有人可以就此问题提出建议吗?

编辑 1: 似乎像这样加载经过训练的文件会起作用:

Ptr<SVM> svm = SVM::create();
svm = SVM::load("Images/trainedImages.xml");

最佳答案

似乎像这样加载训练好的文件会起作用:

Ptr<SVM> svm = SVM::create();
svm = SVM::load("Images/trainedImages.xml");

关于opencv - 使用 svm load 加载保存的文件时,在 openCV 中使用 svm predict 函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49244008/

相关文章:

c# - 查找图像上的区域 - 自动旋转图像 OpenCv

python - 如何使用两个特征向量训练 svm?

python - 使用 Tensorflow 构建 SVM

visual-studio-2010 - opencv 特征检测器因未处理的异常错误而崩溃

c++ - 如何在 OpenCV 中比较两组关键点

python - 使用 QtWidgets.QSlider 将 Waitkey 更改为 "0"无效

python - 如何让 OpenCv 显示两个颜色 channel 组合的图像?

python-2.7 - 在 python scikit-learn 中,RBF 内核的性能比 SVM 中的线性性能差得多

machine-learning - 支持向量机中的 "support"是什么意思?

python - 如何为 Python 设置 LIBSVM