大家好,又见面了,我是你们的朋友全栈君。一开始我运用人脸库训练出一个xml文件,后来新增人脸时候需要将新人继续拿来训练,需要将训练的特征信息加在原来xml文件里面。如果程序不关闭是可以将新人特征信息加到xml文件里的。比如,原来的xml文件为face.xml;现在采集了一些人脸,需要将这些人脸的特征信息提取加入到face.cml;然后下次load这个face.xml进行人脸识别。现在就是怎么将这些人脸加入原来的xml文件呢?
这个是全局变量定义:
static vector<Mat> images;//头像集
static vector<int> labels;//标签集
训练:
model->load(“face0.xml”);
try
{//现在的需要加入的图片入栈。调用程序loadFaceImg(train_csv, images, labels);//train_csv图片路径
loadFaceImg(train_csv, images, labels);
stringstream s;
s<<num;
cout<<“加载”+s.str()+”个人脸图片完成”<<endl;
}
catch (cv::Exception& e)
{
cerr << “Error opening file \”” << train_csv << “\”. Reason: ” << e.msg << endl;
}
// Quit if there are not enough images for this demo.
if(images.size() <= 1)
{
string error_message = “This demo needs at least 2 images to work. Please add more images to your data set!”;
CV_Error(CV_StsError, error_message);
}
//初始化提取员工特征
model->train(images, labels);
model->save(“face0.xml”);//保存特征信息
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133905.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...