opencv人脸识别,为什么预测predict返回的label只能返回第一个?

墨瞳july 2014-07-31 05:30:46
openCV人脸识别,训练数据的时候是通过读取csv文件,使用的视频中有3张人脸。训练结束之后,在预测的时候,发现每次只能预测到csv文件中第一张图片的人脸。。是什么原因啊??

predict预测:
int predicted = model->predict(resizeimage);
printf("predicted = %d \n",predicted);

csv文件大概如下:

./train/s15/7.jpg;15
./train/s15/3.jpg;15
./train/s15/9.jpg;15
./train/s8/7.jpg;8
./train/s8/3.jpg;8
./train/s8/9.jpg;8
./train/s3/7.jpg;3
./train/s3/3.jpg;3
./train/s3/9.jpg;3
./train/s10/7.jpg;10
./train/s10/3.jpg;10
./train/s10/9.jpg;10

每次的返回的predicted都是15。如果把./train/s8/7.jpg;8放在第一行,则每次predicted都是8。
就是每次只能预测到第一行的数据。。是怎么回事呢?
...全文
833 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42914339 2018-09-07
  • 打赏
  • 举报
回复
predict返回的索引是根据图像 与已训练数据 的相似度即confidence得出的,你训练的数据太少(甚至有一些数据是无效的)导致相似度较低,在相似度很低的情况下默认是返回第一个(虽然函数说明说会返回-1,但本人实验得出返回第一个),后期可以通过confidence来界定测试数据是否包含在训练数据中

4,445

社区成员

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

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