opencv人脸识别训练

Chasen_y 2015-05-06 05:08:44
一开始我运用人脸库训练出一个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");//保存特征信息
...全文
365 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chasen_y 2015-05-20
  • 打赏
  • 举报
回复
引用 4 楼 prfans1 的回复:
好像opencv训练时,关闭再重开也可以继续。
应该是不行啊
prfans1 2015-05-19
  • 打赏
  • 举报
回复
好像opencv训练时,关闭再重开也可以继续。
Chasen_y 2015-05-18
  • 打赏
  • 举报
回复
引用 2 楼 prfans1 的回复:
没用过这么高版本的opencv。增量训练 如果时间允许,为啥不重新训练一遍? 另外,难道可以在不改变以前数据的前提下增加人脸?我觉得如果使用LBP特征的,如果增加一个新类别,其它已有类别的数据肯定已经改变了。
人脸库非常大的时候重新训练很费时间的。如果程序不关闭可以将新来的人加入训练。关闭了就不行了
prfans1 2015-05-13
  • 打赏
  • 举报
回复
没用过这么高版本的opencv。增量训练
如果时间允许,为啥不重新训练一遍?
另外,难道可以在不改变以前数据的前提下增加人脸?我觉得如果使用LBP特征的,如果增加一个新类别,其它已有类别的数据肯定已经改变了。
Chasen_y 2015-05-07
  • 打赏
  • 举报
回复
大神们何在,求救求救

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧