本次实验使用opencv中的ml组件中的SVM做有无行人的判别,内涵完整代码和图片数据。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-05 14:05 Pedestrian recognition
文件 493420 2017-03-05 10:12 Pedestrian recognitiongcc_commands.docx
文件 4799 2017-03-05 10:05 Pedestrian recognition est_svm.cpp
目录 0 2017-03-05 14:05 Pedestrian recognition rain
目录 0 2017-03-05 14:05 Pedestrian recognition rain
eg
文件 34982 2017-03-05 10:31 Pedestrian recognition rain
eg.lst
文件 75789 2017-03-05 10:33 Pedestrian recognition rain
eg 0000002a.png
文件 125260 2017-03-05 10:33 Pedestrian recognition rain
eg 0000003a.png
文件 99005 2017-03-05 10:33 Pedestrian recognition rain
eg 0000004a.png
文件 85053 2017-03-05 10:33 Pedestrian recognition rain
eg 0000005a.png
文件 117914 2017-03-05 10:33 Pedestrian recognition rain
eg 0000006a.png
文件 167692 2017-03-05 10:33 Pedestrian recognition rain
eg 0000010a.png
文件 161229 2017-03-05 10:33 Pedestrian recognition rain
eg 0000011a.png
文件 97190 2017-03-05 10:33 Pedestrian recognition rain
eg 0000012a.png
文件 167631 2017-03-05 10:33 Pedestrian recognition rain
eg 0000014a.png
文件 144751 2017-03-05 10:33 Pedestrian recognition rain
eg 0000015a.png
文件 141506 2017-03-05 10:33 Pedestrian recognition rain
eg 0000030a.png
文件 121766 2017-03-05 10:33 Pedestrian recognition rain
eg 0000033a.png
文件 130510 2017-03-05 10:33 Pedestrian recognition rain
eg 0000051a.png
文件 86046 2017-03-05 10:33 Pedestrian recognition rain
eg 0000052a.png
文件 106541 2017-03-05 10:33 Pedestrian recognition rain
eg 0000053a.png
文件 120286 2017-03-05 10:33 Pedestrian recognition rain
eg 0000054a.png
文件 78707 2017-03-05 10:33 Pedestrian recognition rain
eg 0000055a.png
文件 130531 2017-03-05 10:33 Pedestrian recognition rain
eg 0000056a.png
文件 124379 2017-03-05 10:33 Pedestrian recognition rain
eg 0000057a.png
文件 154481 2017-03-05 10:32 Pedestrian recognition rain
eg 0000058a.png
文件 143847 2017-03-05 10:32 Pedestrian recognition rain
eg 0000060a.png
文件 136301 2017-03-05 10:32 Pedestrian recognition rain
eg 0000061a.png
文件 126152 2017-03-05 10:32 Pedestrian recognition rain
eg 0000062a.png
文件 151182 2017-03-05 10:32 Pedestrian recognition rain
eg 0000068a.png
文件 94886 2017-03-05 10:32 Pedestrian recognition rain
eg 0000070a.png
............此处省略198个文件信息
#include
#include
#include
#include
#include
#include
#include
#define PosSamNum 100 //正样本个数
#define NegSamNum 100 //负样本个数
std::string train_image_folder = “./“;
std::string test_image_folder = “./“;
void train(){
std::cout<<“start traning...“<
std::ifstream train_pos_file(train_image_folder + “train/pos.lst“);
std::ifstream train_neg_file(train_image_folder + “train/neg.lst“);
std::string image_name; //图片路径
cv::Mat src;
//定义HOG检测器
int descriptor_dim = 0;
//检测窗口(64128)块尺寸(1616)块步长(88)cell尺寸(88)直方图bin个数9
cv::HOGDescriptor hog(cv::Size(64128)cv::Size(1616)cv::Size(88)cv::Size(88)9);//HOG检测器,用来计算HOG描述子的
std::vector descriptors; //HOG描述子向量
cv::Mat sample_features; //所有训练样本的特征向量组成的矩阵,行数等于所有样本的个数,列数等于HOG描述子维数
cv::Mat sample_labels; //训练样本的类别向量,行数等于所有样本的个数,列数等于1;1表示有人,-1表示无人
//获取训练数据的正样本
for(int num=0; num image_name = train_image_folder + image_name;
src = cv::imread(image_name0);
cv::resize(srcsrccv::Size(96160)); //统一训练格式
if(src.empty()){
std::cout<<“no image in pos image path:“< exit(0);
}
hog.compute(srcdescriptorscv::Size(88));
if(num==0){
std::cout<<“Init feature size...“< descriptor_dim = descriptors.size();
sample_features = cv::Mat::zeros(PosSamNum+NegSamNumdescriptor_dimCV_32FC1);
sample_labels = cv::Mat::zeros(PosSamNum+NegSamNum1CV_32SC1); //注意这里必须要32SC1不能用32FC1
}
for(int i=0;iriptor_dim;i++){
sample_features.at(numi) = descriptors[i];
}
sample_labels.at(num0) = 1; //正样本类别为1,有人
std::cout<<“finish Pos “<
}
//获取训练数据的负样本
for(int num=0;num image_name = train_image_folder + image_name;
src = cv::imread(image_name0);
if(src.empty()){
std::cout<<“no image in neg image path...“< exit(0);
}
cv::resize(srcsrccv::Size(96160));
hog.compute(srcdescriptorscv::Size(88));
for(int i=0;iriptor_dim;i++){
sample_features.at(num+PosSamNumi) = descriptors[i];
}
sample_labels.at(num+PosSamNum0) = -1; //正样本类别为-1,没有人
std::cout<<“finish Neg “< }
//训练SVM分类器
std::cout<<“start svm training...“< cv::Ptr svm = cv::ml::SVM::create();
svm->setType(cv::ml::SVM::C_SVC);
svm->setKernel(cv::ml::SVM::LINEAR);
svm->setTermCriteria(cv::TermCriteria(cv::TermCriteria::MAX_ITER 100 1e-6));
svm->train(sample_featurescv::ml::ROW_SAMPLEsample_labels);
//保存SVM分类器
std::cout<<“start saving svm file...“< svm->save(“test_svm.xml“);
std::cout<<“finish training...“< return;
}
void test(std::string test_im
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-05 14:05 Pedestrian recognition
文件 493420 2017-03-05 10:12 Pedestrian recognitiongcc_commands.docx
文件 4799 2017-03-05 10:05 Pedestrian recognition est_svm.cpp
目录 0 2017-03-05 14:05 Pedestrian recognition rain
目录 0 2017-03-05 14:05 Pedestrian recognition rain
eg
文件 34982 2017-03-05 10:31 Pedestrian recognition rain
eg.lst
文件 75789 2017-03-05 10:33 Pedestrian recognition rain
eg 0000002a.png
文件 125260 2017-03-05 10:33 Pedestrian recognition rain
eg 0000003a.png
文件 99005 2017-03-05 10:33 Pedestrian recognition rain
eg 0000004a.png
文件 85053 2017-03-05 10:33 Pedestrian recognition rain
eg 0000005a.png
文件 117914 2017-03-05 10:33 Pedestrian recognition rain
eg 0000006a.png
文件 167692 2017-03-05 10:33 Pedestrian recognition rain
eg 0000010a.png
文件 161229 2017-03-05 10:33 Pedestrian recognition rain
eg 0000011a.png
文件 97190 2017-03-05 10:33 Pedestrian recognition rain
eg 0000012a.png
文件 167631 2017-03-05 10:33 Pedestrian recognition rain
eg 0000014a.png
文件 144751 2017-03-05 10:33 Pedestrian recognition rain
eg 0000015a.png
文件 141506 2017-03-05 10:33 Pedestrian recognition rain
eg 0000030a.png
文件 121766 2017-03-05 10:33 Pedestrian recognition rain
eg 0000033a.png
文件 130510 2017-03-05 10:33 Pedestrian recognition rain
eg 0000051a.png
文件 86046 2017-03-05 10:33 Pedestrian recognition rain
eg 0000052a.png
文件 106541 2017-03-05 10:33 Pedestrian recognition rain
eg 0000053a.png
文件 120286 2017-03-05 10:33 Pedestrian recognition rain
eg 0000054a.png
文件 78707 2017-03-05 10:33 Pedestrian recognition rain
eg 0000055a.png
文件 130531 2017-03-05 10:33 Pedestrian recognition rain
eg 0000056a.png
文件 124379 2017-03-05 10:33 Pedestrian recognition rain
eg 0000057a.png
文件 154481 2017-03-05 10:32 Pedestrian recognition rain
eg 0000058a.png
文件 143847 2017-03-05 10:32 Pedestrian recognition rain
eg 0000060a.png
文件 136301 2017-03-05 10:32 Pedestrian recognition rain
eg 0000061a.png
文件 126152 2017-03-05 10:32 Pedestrian recognition rain
eg 0000062a.png
文件 151182 2017-03-05 10:32 Pedestrian recognition rain
eg 0000068a.png
文件 94886 2017-03-05 10:32 Pedestrian recognition rain
eg 0000070a.png
............此处省略198个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)