目标检测 机器学习方法 静态场景 测试车辆检测
利用机器学习方法(分类)实现静态场景下的测试车辆检测
利用C语言或者Open_CV库,或者是MATLAB软件编写实现静态场景下的测视车辆检测。需使用机器学习方法。代码可以通过一个主函数直接运行出实验结果。
Data文件夹中包含train_34x94(训练集)和test(测试集)两个文件夹。其中,train_34x94文件夹中的数据用于训练模型,包含pos文件夹(内有550个正例样本)和neg文件夹(内有500个负例样本); Test文件夹中的数据用于测试。
在Test测试集中的总体检测性能的评价指标为Recall、Precision 和F-measure,写出对算法的性能评价和对实现中遇到问题的理解。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 77692 2012-10-07 14:28 CVtestCVtest123.jpg
文件 4106 2016-01-19 11:15 CVtestCVtestCVtest.vcxproj
文件 944 2016-01-19 11:15 CVtestCVtestCVtest.vcxproj.filters
文件 2455 2016-01-19 21:01 CVtestCVtestDebugCVtest.log
文件 590 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogcl.command.1.tlog
文件 17562 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogCL.read.1.tlog
文件 392 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogCL.write.1.tlog
文件 167 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogCVtest.lastbuildstate
文件 1904 2016-01-19 21:01 CVtestCVtestDebugCVtest.tloglink.command.1.tlog
文件 4684 2016-01-19 21:01 CVtestCVtestDebugCVtest.tloglink.read.1.tlog
文件 376 2016-01-19 21:01 CVtestCVtestDebugCVtest.tloglink.write.1.tlog
文件 625664 2016-01-19 21:01 CVtestCVtestDebugvc120.idb
文件 1363968 2016-01-19 21:01 CVtestCVtestDebugvc120.pdb
文件 517685 2016-01-19 21:01 CVtestCVtestDebug源.obj
文件 547373 2016-01-19 21:03 CVtestCVtestHOGDetectorForOpenCV.txt
文件 6377 2016-01-19 11:25 CVtestCVtest
egSampName.txt
文件 7029 2016-01-19 12:37 CVtestCVtestposSampName.txt
文件 781963 2016-01-19 20:55 CVtestCVtestSVM_HOG.xml
文件 8321 2016-01-19 21:01 CVtestCVtest源.cpp
文件 15794176 2016-01-19 21:03 CVtestCVtest.sdf
文件 964 2016-01-19 11:13 CVtestCVtest.sln
..A..H. 25088 2016-01-19 21:03 CVtestCVtest.v12.suo
文件 149504 2016-01-19 21:01 CVtestDebugCVtest.exe
文件 1293956 2016-01-19 21:01 CVtestDebugCVtest.ilk
文件 2444288 2016-01-19 21:01 CVtestDebugCVtest.pdb
文件 1717 2016-01-19 10:55 CVtestopencv249.props
文件 25458 2002-02-17 07:57 CVtest est est-0.bmp
文件 38890 2002-02-17 07:57 CVtest est est-1.bmp
文件 31078 2002-02-17 07:57 CVtest est est-10.bmp
文件 22022 2002-02-17 07:57 CVtest est est-100.bmp
............此处省略1236个文件信息
#include
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
#define PosSamNO 549 //正样本个数
#define NegSamNO 499 //负样本个数
#define TRAIN false //是否进行训练true表示重新训练,false表示读取xml文件中的SVM模型
//HardExample必须设置为0,因为特征向量矩阵和特征类别矩阵的维数初始化时用到这个值
#define HardExampleNO 0
//继承自CvSVM的类,因为生成setSVMDetector()中用到的检测子参数时,需要用到训练好的SVM的decision_func参数,
//但通过查看CvSVM源码可知decision_func参数是protected类型变量,无法直接访问到,只能继承之后通过函数访问
class MySVM : public CvSVM
{
public:
//获得SVM的决策函数中的alpha数组
double * get_alpha_vector()
{
return this->decision_func->alpha;
}
//获得SVM的决策函数中的rho参数即偏移量
float get_rho()
{
return this->decision_func->rho;
}
};
int main()
{
//检测窗口(9434)块尺寸(88)块步长(21)cell尺寸(44)直方图bin个数9
HOGDescriptor hog(Size(94 34) Size(8 8) Size(2 1) Size(4 4) 9);//HOG检测器,用来计算HOG描述子的
int DescriptorDim;//HOG描述子的维数,由图片大小、检测窗口大小、块大小、细胞单元中直方图bin个数决定
MySVM svm;//SVM分类器
//若TRAIN为true,重新训练分类器
if (TRAIN)
{
string ImgName;//图片名(绝对路径)
ifstream finPos(“posSampName.txt“);//正样本图片的文件名列表
ifstream finNeg(“negSampName.txt“);//负样本图片的文件名列表
Mat sampleFeatureMat;//所有训练样本的特征向量组成的矩阵,行数等于所有样本的个数,列数等于HOG描述子维数
Mat sampleLabelMat;//训练样本的类别向量,行数等于所有样本的个数,列数等于1;1表示有人,-1表示无人
//依次读取正样本图片,生成HOG描述子
for (int num = 0; num {
cout << “处理:“ << ImgName << endl;
ImgName = “C:\Users\张建虎\Desktop\CVtest\train_34x94\pos\“ + ImgName;//加上正样本的路径名
Mat src = imread(ImgName);//读取图片
vector descriptors;//HOG描述子向量
hog.compute(src descriptors Size(2 1));//计算HOG描述子,检测窗口移动步长(21)
//cout<<“描述子维数:“<riptors.size()<
//处理第一个样本时初始化特征向量矩阵和类别矩阵,因为只有知道了特征向量的维数才能初始化特征向量矩阵
if (0 == num)
{
DescriptorDim = descriptors.size();//HOG描述子的维数
//初始化所有训练样本的特征向量组成的矩阵,行数等于所有样本的个数,列数等于HOG描述子维数sampleFeatureMat
sampleFeatureMat = Mat::zeros(PosSamNO + NegSamNO + HardExampleNO DescriptorDim CV_32FC1);
//初始化训练样本的类别向量,行数等于所有样本的个数,列数等于1;1表示正样本,0表示负样本
sampleLabelMat = Mat::zeros(PosSamNO + NegSamNO + HardExampleNO 1 CV_32FC1);
}
//将计算好的HOG描述子复制到样本特征矩阵sampleFeatureMat
for (int i = 0; iriptorDim; i++)
sampleFeatureMat.at(num i) = descriptors[i];//第num个样本的特征向量中的第i个元素
sampleLabelMat.at(num 0) = 1;//正样本类别为1
}
//依次读取负样本图片,生成HOG描述子
for (int num = 0; num {
cout << “处理:“ << ImgName << endl;
ImgName = “C:\Users\张建虎\Desktop\CVtest\train_34x94\neg\“ + ImgName;//加上负样本的路径名
Mat src = imread(ImgName);//读取图片
vector descriptors;//HOG描述子向量
hog.compute(src descriptors Size(2 1));//计算HOG描述子,检测窗口移动步长(21)
//cout<<“描述子维数:“<riptors.size()<
//将计算好的HOG描述子复制到样本特征矩阵sampleFeatureMa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 77692 2012-10-07 14:28 CVtestCVtest123.jpg
文件 4106 2016-01-19 11:15 CVtestCVtestCVtest.vcxproj
文件 944 2016-01-19 11:15 CVtestCVtestCVtest.vcxproj.filters
文件 2455 2016-01-19 21:01 CVtestCVtestDebugCVtest.log
文件 590 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogcl.command.1.tlog
文件 17562 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogCL.read.1.tlog
文件 392 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogCL.write.1.tlog
文件 167 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogCVtest.lastbuildstate
文件 1904 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogli
文件 4684 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogli
文件 376 2016-01-19 21:01 CVtestCVtestDebugCVtest.tlogli
文件 625664 2016-01-19 21:01 CVtestCVtestDebugvc120.idb
文件 1363968 2016-01-19 21:01 CVtestCVtestDebugvc120.pdb
文件 517685 2016-01-19 21:01 CVtestCVtestDebug源.obj
文件 547373 2016-01-19 21:03 CVtestCVtestHOGDetectorForOpenCV.txt
文件 6377 2016-01-19 11:25 CVtestCVtest
egSampName.txt
文件 7029 2016-01-19 12:37 CVtestCVtestposSampName.txt
文件 781963 2016-01-19 20:55 CVtestCVtestSVM_HOG.xm
文件 8321 2016-01-19 21:01 CVtestCVtest源.cpp
文件 15794176 2016-01-19 21:03 CVtestCVtest.sdf
文件 964 2016-01-19 11:13 CVtestCVtest.sln
..A..H. 25088 2016-01-19 21:03 CVtestCVtest.v12.suo
文件 149504 2016-01-19 21:01 CVtestDebugCVtest.exe
文件 1293956 2016-01-19 21:01 CVtestDebugCVtest.ilk
文件 2444288 2016-01-19 21:01 CVtestDebugCVtest.pdb
文件 1717 2016-01-19 10:55 CVtestopencv249.props
文件 25458 2002-02-17 07:57 CVtest est est-0.bmp
文件 38890 2002-02-17 07:57 CVtest est est-1.bmp
文件 31078 2002-02-17 07:57 CVtest est est-10.bmp
文件 22022 2002-02-17 07:57 CVtest est est-100.bmp
............此处省略1236个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)