OpenCV HOG&x2B;SVM:断言失败checkDetectorSize() P>我在C++中遇到了OpenCV问题,当我尝试将自己的SVM检测器设置成HOG:OpenCV中的SETVM检波器(检测器)。
我遵循了以下步骤,但仍停留在第3步 我正在使用openCV 3.0,它目前内置在SVM中。 这就是我培训和构建探测器的方式: 训练 建筑物检测器OpenCV HOG&x2B;SVM:断言失败checkDetectorSize() P>我在C++中遇到了OpenCV问题,当我尝试将自己的SVM检测器设置成HOG:OpenCV中的SETVM检波器(检测器)。,c++,opencv,svm,object-detection,C++,Opencv,Svm,Object Detection,我遵循了以下步骤,但仍停留在第3步 我正在使用openCV 3.0,它目前内置在SVM中。 这就是我培训和构建探测器的方式: 训练 建筑物检测器 vector<float> alpha; vector<float> svidx; vector<float> model; // Getting Support Vectors Mat svs = svm->getSupportVectors(); double rho = svm->getDeci
vector<float> alpha;
vector<float> svidx;
vector<float> model;
// Getting Support Vectors
Mat svs = svm->getSupportVectors();
double rho = svm->getDecisionFunction(0, alpha, svidx);
// Computing w in primal form
for (int i = 0; i < svidx.size(); i++) {
model.push_back(svs.at<float>(i, 0) * alpha.at(i));
for (int j = 1; j < svs.cols; j++) {
model.at(i) += svs.at<float>(i, j) * alpha.at(i);
}
}
// Adding rho
model.push_back(rho);
return model;
OpenCV错误:断言失败
(checkDetectorSize())在setSVMDetector文件中
/home/dario/Desktop/opencv-3.0.0-rc1/modules/objdetect/src/hog.cpp,
在抛出的实例后调用第115行terminate
“cv::Exception”什么()
/home/dario/Desktop/opencv-3.0.0-rc1/modules/objdetect/src/hog.cpp:115:
错误:(-215)函数setSVMDetector中的checkDetectorSize()
你知道我做错了什么吗?我把上面的代码改写为
Ptr<SVM> svm;
HOGDescriptor my_hog;
...
// Load the trained SVM.
svm = StatModel::load<SVM>( "model.yml" );
// Set the trained svm to my_hog
vector< float > hog_detector;
get_svm_detector( svm, hog_detector );
my_hog.setSVMDetector( hog_detector );
Ptr-svm;
我的猪;
...
//加载训练好的支持向量机。
svm=StatModel::load(“model.yml”);
//将经过训练的svm设置为my_hog
向量hog_检测器;
获取_-svm_检测器(svm,hog_检测器);
my_hog.setsvmtodector(hog_detector);
可能是因为您的窗口大小不同,在这种情况下,输入到hog.setDetector(model)的值的数量也会不同代码>我有一个类似的问题。我想手动将探测器大小设置为没有0.5纵横比的大小。我的理由是,我想检测那些不总是处于完美姿态的人,他们的高宽比不是0.5。考虑拳击手手臂伸直,膝盖弯曲的情况。我想这是不可能的,因为使用了pretraine人员检测分类器。有什么建议吗?也许我需要为此手动训练SVM?您好,您使用的是什么版本的opencv?函数get_svm_检测器是否在opencv中
hog.setDetector(model);
Ptr<SVM> svm;
HOGDescriptor my_hog;
...
// Load the trained SVM.
svm = StatModel::load<SVM>( "model.yml" );
// Set the trained svm to my_hog
vector< float > hog_detector;
get_svm_detector( svm, hog_detector );
my_hog.setSVMDetector( hog_detector );