首页 > 其他分享 >ARS展览项目(四)——SVM分类器

ARS展览项目(四)——SVM分类器

时间:2024-09-24 10:16:28浏览次数:8  
标签:SVM tags read series 分类器 int ARS data

这个表情识别项目的第二步

下面是代码,作用是把上面识别的n个txt,利用SVM分类器训练出一个数据集,这个数据集可以包含好几个标签。

本篇博客的实现方法参照了https://blog.csdn.net/zmdsjtu/article/details/53667929,这个很好用,感谢这位博主。

#include<opencv2\opencv.hpp> 
#include<string>
#include<fstream>    
using namespace std;
using namespace cv;
using namespace cv::ml;

void read_data(float data[200][136], int begin1, string categrious);
int main()
{

	float data_series[200][136];

	read_data(data_series, 0, "平静");
	read_data(data_series, 50, "高兴");
	read_data(data_series, 100, "厌恶");
	read_data(data_series, 150, "生气");
	int face_tags[200];
	for (int i = 0; i < 50; i++) {
		face_tags[i] = 170;
		face_tags[i + 50] = 250;
		face_tags[i + 100] = 300;
		face_tags[i + 150] = 350;
	}

	//训练需要用到的数据
	//	int 标签[4] = { 1, 2, 3, 4 };
	//	float 训练数据[4][2] = { { 31, 12 },{ 65, 220 },{ 440, 350 },{ 400, 400 } };
	//转为Mat以调用
	Mat training_Mat(200, 136, CV_32FC1, data_series);//这边数据类型要处理好,不然粗事儿
	Mat tags_label(200, 1, CV_32SC1, face_tags);
	//训练的初始化
	Ptr<SVM> svm = SVM::create();
	svm->setType(SVM::C_SVC);
	svm->setKernel(SVM::LINEAR);
	svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 100, 1e-6));
	//开始训练
	svm->train(training_Mat, ROW_SAMPLE, tags_label);
	svm->save("SVM_DATA.xml");
}

void read_data(float data[200][136], int begin1, string categrious) {
	fstream read_file;
	//  read_file.imbue(std::locale("chs")); 


	for (int i = 0; i < 50; i++) {
		read_file.open(categrious + "\\" + to_string(i + 1) + ".txt");
		for (int j = 0; j < 136; j++) {
			string aaa;
			read_file >> aaa;
			//			cout << aaa;			
			data[i + begin1][j] = atof(aaa.c_str());
		}
		read_file.close();//关闭是个好习惯 
	}
}

标签:SVM,tags,read,series,分类器,int,ARS,data
From: https://www.cnblogs.com/atanchen/p/18428490

相关文章

  • ARS展览项目(六)——Socket通信
    本篇前提说明因为我这边做的是表情识别,另外一边做的是贪吃蛇的动作。贪吃蛇的食物就是我的表情,所以要把两者的数据连接起来。贪吃蛇用JAVA来做,我用C++,然后两者可以用Socket来进行数据连接。设计时候是贪吃蛇用客户端,我这边是服务端。本项目在该文档的基础上修改,https://blog.cs......
  • ARS展览项目(五)——表情识别测试
    这个表情识别项目的第三步下面是代码,作用是可以进行表情识别。本篇博客的实现方法参照了https://blog.csdn.net/zmdsjtu/article/details/53667929,这个很好用,感谢这位博主。#pragmacomment(linker,"/subsystem:windows/entry:mainCRTStartup")//去除CMD窗口#include<dlib/......
  • ARS展览项目(三)——识别面部得到特征点
    这个表情识别项目的第一步下面是代码,作用是识别出人脸,并且把人脸标记为68个特征点。然后把每次识别的一组(68个数据)保存在.txt文件里,一秒识别n次,那么一秒就生成n个txt本篇博客的实现方法参照了https://blog.csdn.net/zmdsjtu/article/details/53667929,这个很好用,感谢这位博主。......
  • ARS展览项目(二)——环境搭建:opencv、dlib、VS2017
    先说用到的软件和函数库VS2017——我用VS2017社区版来开发,原因是软件免费而且好用,本项目用C++来做opencv——OpenComputerVision是计算机视觉的库,有多种语言的接口,而且函数库也很丰富dlib——Dlib是一个包含机器学习算法的C++开源工具包,提供大量的机器学习/图像处理算法(网......
  • ARS展览项目(七)——C-多线程:Socket-表情识别整合
    说明一下我这边做表情识别和Socket,表情识别要实时,Socket要一直监听表情识别的结果,那么就只好用C++多线程来解决这个“两个功能一直并且同时运行”的问题。否则,如果是单线程的话,只能运行表情识别一段时间,切换发送一段时间,又切换回来,这样没有多线程好。还要说解决的难点写成多......
  • 【风电功率预测】【多变量输入单步预测】基于BiTCN-SVM的风电功率预测研究(Matlab代码
                             ......
  • QCustomPlot QCPBars横向柱状图示例
    #include"qcustomplot.h"intmain(intargc,char*argv[]){QApplicationa(argc,argv);QCustomPlotcustomPlot;customPlot.resize(700,500);customPlot.show();QCPAxis*keyAxis=customPlot.yAxis;QCPAxis*valueAxis=......
  • QCustomPlot QCPBars纵向柱状图示例
    #include"qcustomplot.h"intmain(intargc,char*argv[]){QApplicationa(argc,argv);QCustomPlotcustomPlot;customPlot.resize(700,500);customPlot.show();QCPAxis*keyAxis=customPlot.xAxis;QCPAxis*valueAxis=......
  • 帝国CMS提示parse error syntax error的解决方法
    当帝国CMS提示 parseerrorsyntaxerror 时,这意味着PHP解析器遇到了一个语法错误。这种错误通常发生在PHP代码中存在不符合PHP语法规范的地方。以下是一些排查和解决此类问题的方法:1.检查错误的具体位置查看错误信息:错误信息通常会指出哪个文件和哪一行出现了问题。打开错......
  • Matlab 基于NRBO-Transformer-LSTM-SVM多特征分类预测 (多输入单输出)[24年算法]
    基于NRBO-Transformer-LSTM-SVM多特征分类预测(多输入单输出)NRBO优化参数为隐藏层节点数、正则化系数、学习率!你先用你就是创新!!!1.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!2.评价指标包含:分类准确率、灵敏度、特异性曲线下面积(AUC值)、卡帕(Kappa)系......