【发布时间】:2018-03-12 20:36:16
【问题描述】:
我正在尝试使用 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");
【问题讨论】:
-
嗨@sixfeet!您的解决方案对我有用!您能否将其添加为答案?谢谢你!
-
嗨@GaneshTata,我已将编辑添加为答案!很高兴这对您有所帮助