QT+Opencv实现人脸检测与性别识别(1)

seetaface开源人脸检测框架实现人脸检测,opencv+dnn模块实现性别分类,qt做显示界面,完成一个课程设计。

依赖库:opencv3.1+ 包含dnn模块,QT5

1.性别分类网络训练

1.1.训练数据准备

下载lfw人脸数据库,由于原始数据集未提供性别标签,参考了GitHub项目LFWgender,访问一个网络api接口,根据姓名对数据添加上标签。最终获得了约1600张图片作为训练数据,600张图片作为验证集,男女样本各一半。

1.2.人脸检测与脸部区域截取

性别识别的第一步是人脸检测,而我们送到卷积网络训练和预测的数据,实际上就是检测出来的人脸区域,因此,我们首先要对lfw数据集做人脸检测与脸部截取,截取前与截取后的图如下

截取前这里写图片描述截取后

我们用seetaface开源人脸检测做人脸检测,检测出的人脸区域为红色框部分。为了让输入到卷积网络的图片包含充分的信息,我们把人脸区域按照一定方法,扩展到一个更合理的区域,即绿色框区域。实际的训练集与验证集都应该是最右边的图片,即截取之后的图片。

实现步骤

1.用Python脚本获取图片文件访问路径
形如
E:\female\Adelina_Avila_0001.jpg;0
E:\female\Adelina_Avila_0001.jpg;1
这样的txt文件,前面是文件绝对路径,后面是标签,0表示女性。

#encoding:utf-8
import os
'''
获取male样本和female样本中的图片的绝对路径,
并保存在txt文件中,male样本路径后加上标签1,female样本路径后加上标签2,
如
male0.jpg;1
male1.jpg;1
female0.jpg;2
female1.jpg;2
'''
#root = os.getcwd()
#print root
male_path = os.path.abspath('female') #male相对路径
file_list = os.listdir(male_path)#female路径下的图片相对路径 male0.jpg
#print file_list
f = open('label.txt','w')
abs_path_list=[]#图片绝对路径
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值