资源简介
HOG测试程序
代码片段和文件信息
#include “opencv2/opencv.hpp“
#include “opencv2/ml.hpp“
#include
#include
#include
#include
#include
using namespace cv;
using namespace cv::ml;
using namespace std;
#define FILEPATH “D:/Pedestrians64x128/“
///////////////////////////////////HOG+SVM识别方式2///////////////////////////////////////////////////
void Train()
{
////////////////////////////////读入训练样本图片路径和类别///////////////////////////////////////////////////
//图像路径和类别
vector imagePath;
vector imageClass;
int numberOfLine = 0;
string buffer;
ifstream trainingData(string(FILEPATH)+“TrainData.txt“);
unsigned long n;
while (!trainingData.eof())
{
getline(trainingData buffer);
if (!buffer.empty())
{
++numberOfLine;
if (numberOfLine % 2 == 0)
{
//读取样本类别
imageClass.push_back(atoi(buffer.c_str()));
}
else
{
//读取图像路径
imagePath.push_back(buffer);
}
}
}
//关闭文件
trainingData.close();
////////////////////////////////获取样本的HOG特征///////////////////////////////////////////////////
//样本特征向量矩阵
int numberOfSample = numberOfLine / 2;
Mat featureVectorOfSample(numberOfSample 3780 CV_32FC1);//矩阵中每行为一个样本
//样本的类别
Mat classOfSample(numberOfSample 1 CV_32SC1);
Mat convertedImage;
Mat trainImage;
// 计算HOG特征
for (vector::size_type i = 0; i <= imagePath.size() - 1; ++i)
{
//读入图片
Mat src = imread(imagePath[i] -1);
if (src.empty())
{
cout << “can not load the image:“ << imagePath[i] << endl;
continue;
}
//cout << “processing:“ << imagePath[i] << endl;
// 归一化
resize(src trainImage Size(64 128));
// 提取HOG特征
HOGDescriptor hog(cvSize(64 128) cvSize(16 16) cvSize(8 8) cvSize(8 8) 9);
vector descriptors;
double time1 = getTickCount();
hog.compute(trainImage descriptors);//这里可以设置检测窗口步长,如果图片大小超过64×128,可以设置winStride
double time2 = getTickCount();
double elapse_ms = (time2 - time1) * 1000 / getTickFrequency();
//cout << “HOG dimensions:“ << descriptors.size() << endl;
//cout << “Compute time:“ << elapse_ms << endl;
//保存到特征向量矩阵中
for (vector::size_type j = 0; j <= descriptors.size() - 1; ++j)
{
featureVectorOfSample.at(i j) = descriptors[j];
}
//保存类别到类别矩阵
//!!注意类别类型一定要是int 类型的
classOfSample.at(i 0) = imageClass[i];
}
///////////////////////////////////使用SVM分类器训练///////////////////////////////////////////////////
//设置参数,注意Ptr的使用
Ptr svm = SVM::create();
svm->setType(SVM::C_SVC);
svm->setKernel(SVM::LINEAR);//注意必须使用线性SVM进行训练,因为HogDescriptor检测函数只支持线性检测!!!
svm->setTermCriteria(TermCriteria(CV_TERMCRIT_ITER 1000 FLT_EPSILON));
//使用SVM学习
svm->train(featureVectorOfSample ROW_SAMPLE classOfSample);
//保存分类器(里面包括了SVM的参数,支持向量α和rho)
svm->save(string(FILEPATH) + “Classifier.xml“);
/*
SVM训练完成后得到的xml文件里面,有一个数组,叫做support vector,还有一个数组,叫做alph
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11742 2015-10-30 09:27 HOG.cpp
文件 480 2015-06-14 17:10 Pedestrians64x128\03_ReadFileNames.bat
文件 70468 2015-10-30 09:24 Pedestrians64x128\Classifier.xm
文件 39339 2015-10-30 09:24 Pedestrians64x128\HOG_SVM.txt
文件 11477 2015-06-15 21:35 Pedestrians64x128\Negative\000001.jpg
文件 13598 2015-06-15 21:35 Pedestrians64x128\Negative\000002.jpg
文件 12938 2015-06-15 21:35 Pedestrians64x128\Negative\000003.jpg
文件 10205 2015-06-15 21:35 Pedestrians64x128\Negative\000004.jpg
文件 11850 2015-06-15 21:35 Pedestrians64x128\Negative\000005.jpg
文件 10799 2015-06-15 21:35 Pedestrians64x128\Negative\000006.jpg
文件 13579 2015-06-15 21:35 Pedestrians64x128\Negative\000007.jpg
文件 10725 2015-06-15 21:35 Pedestrians64x128\Negative\000008.jpg
文件 13357 2015-06-15 21:35 Pedestrians64x128\Negative\000009.jpg
文件 14305 2015-06-15 21:35 Pedestrians64x128\Negative\000010.jpg
文件 9266 2015-06-15 21:35 Pedestrians64x128\Negative\000011.jpg
文件 7886 2015-06-15 21:35 Pedestrians64x128\Negative\000012.jpg
文件 13057 2015-06-15 21:35 Pedestrians64x128\Negative\000013.jpg
文件 14991 2015-06-15 21:35 Pedestrians64x128\Negative\000014.jpg
文件 10894 2015-06-15 21:35 Pedestrians64x128\Negative\000015.jpg
文件 7504 2015-06-15 21:35 Pedestrians64x128\Negative\000016.jpg
文件 13590 2015-06-15 21:35 Pedestrians64x128\Negative\000017.jpg
文件 12755 2015-06-15 21:35 Pedestrians64x128\Negative\000018.jpg
文件 8221 2015-06-15 21:35 Pedestrians64x128\Negative\000019.jpg
文件 9533 2015-06-15 21:35 Pedestrians64x128\Negative\000020.jpg
文件 11639 2015-06-15 21:35 Pedestrians64x128\Negative\000022.jpg
文件 15275 2015-06-15 21:35 Pedestrians64x128\Negative\000023.jpg
文件 11677 2015-06-15 21:35 Pedestrians64x128\Negative\000024.jpg
文件 11430 2015-06-15 21:35 Pedestrians64x128\Negative\000025.jpg
文件 10517 2015-06-15 21:35 Pedestrians64x128\Negative\000026.jpg
文件 11527 2015-06-15 21:35 Pedestrians64x128\Negative\000028.jpg
............此处省略2016个文件信息
相关资源
- hog+svm负样本处理
- 基于PCA-HOG的人体检测代码-包括训练,
- 68人脸特征点Hog+SVM人脸表情识别
- 行人数据库正样本
- Linux后台开发工具箱-葵花宝典.pdf
- 基于HOG和LBP的行人检测代码
- 论文研究-Demagnification super-lens with g
- 基于Hog的快速人体检测
- emgucv自行训练HOG
- HOG-LBP+detection 行人检测
- HOG-LBP-detection
- 中文翻译Mastering Chess and Shogi by Self_
- Mastering Chess and Shogi by Self_Play with a
- 基于HOG和SVM的图像识别方法
-
车辆识别 xm
l文件 HOG特征 LEVEL=16 - opencv 人数统计
- hog+lbp+svm人脸识别 特征融合
- 图像特征提取代码HOG、LBP、Haar、Hu矩
- Hogan阻抗控制第一部
- HOG+SVM读取样本路径批处理文件
- SVM+HOG+LBP
- SVM+HOG (行人、车辆等检测)
- Opencv行人检测代码 自带hog检测
- RhoGDIα negatively regulates the glioma
- hog+svm行人检测算法
- hogan阻抗控制最初三篇
- Dalal的经典论文HOG
- HOG特征提取 ppt
- HOG+SVM代码
评论
共有 条评论