gpt4 book ai didi

c++ - 使用 HOGDescriptor 训练 CvSVM 检测图像中的人类

转载 作者:太空宇宙 更新时间:2023-11-03 22:59:29 25 4
gpt4 key购买 nike

我是 opencv 的新手。我正在尝试在 opencv 中使用 HOGDescriptor 提取图像的特征。我正在尝试使用 Opencv2.2 训练支持 vector 机,它能够检测图像中的人类。我正在使用包含 614 个正样本和 1218 个负样本的 INRIA 训练样本。

问题:我没有得到好的结果。当我用训练样本测试 SVM 时,准确度是 70%。任何人都可以帮助我如何调整 SVM 的参数以获得不等的负数和正数。我的 SVM 的参数是:

CvMat *m=cvCreateMat(2,1,CV_32FC1);
cvmSet(m,0,0,1);
cvmSet(m,1,0,1);

CvSVMParams params;

params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::LINEAR;
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6);
params.class_weights=m;
params.C=1000;

SVM训练的全部代码是:

void svm_train(char *列表){
int num_files=1832;

 int features=1620;

float des;

int val=0;
int file_num=0;
int total=num_files*features;
int count=0;
Mat training_mat(num_files,features,CV_32FC1);
float label[1832];
for(int i=0;i<614;i++)
label[i]= 1.0;
for(int j=614;j<1832;j++)
label[j]= -1.0;
Mat labels(num_files,1,CV_32FC1,label);
char *s;
fstream inputfile(list,ios::in);


while(count<=total)
{

if(val<=(features-1))
{inputfile>>des;

training_mat.at<float>(file_num,val)= des;
val++;

}
else
{
val=0;
file_num++;

}
count++;
}
count--;
cout<<count;




CvMat *m=cvCreateMat(2,1,CV_32FC1);
cvmSet(m,0,0,1);
cvmSet(m,1,0,1);
CvSVMParams params;
params.svm_type=CvSVM::C_SVC;
params.kernel_type = CvSVM::LINEAR;
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6);
params.class_weights=m;

inputfile.close();
CvSVM svm;
pg=svm.get_default_grid(CvSVM::C);

params.C=1000;
fstream filelist("result1.txt",ios::app);
filelist<<params.C;
filelist<<"\t1218";
filelist<<"\t\t614";

svm.train(training_mat,labels,Mat(),Mat(),params);
svm.save("svm_train.xml");
filelist.close();

这里的列表初始化了文件名,它存储了从训练样本中提取的特征,即负样本和正样本。总号每张图片的特征数 = 1620。

最佳答案

我不认为设置参数有硬性规定。它或多或少基于一定限度下的命中和试用。

但是您应该阅读以下链接,该链接是关于设置 SVM 开发人员编写的参数的。这不是为了数学......看看

http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

关于c++ - 使用 HOGDescriptor 训练 CvSVM 检测图像中的人类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com