基于深度学习的人脸多任务识别(附代码)

项目说明

本项目为人脸多任务识别(单输入,多输出),可以同时输出人脸关键点、性别和年龄。

采用了两个算法进行应用的实现,人脸目标检测和人脸多任务识别。

其中人脸目标检测采用YOLOV5进行实现,主要对人脸部分进行截取,再送入多任务网络进一步处理,实际检测效果如下(支持图像、视频检测):

本项目不包含人脸目标检测的训练,人脸目标检测训练相关内容和数据集参考我另一篇文章:人脸目标检测

基于yolov5的人脸关键点检测(不含性别和年龄)可以参考文章:人脸关键点检测

目录

项目说明

项目使用说明

训练说明

数据集处理

训练

检测


项目使用说明

下载代码:

GitHub - YINYIPENG-EN/yolov5_face_multask: 本项目为人脸多任务识别(单输入,多输出),可以同时输出人脸关键点、性别和年龄

训练说明

数据集处理

数据集共计29055张图,数据集百度云:

百度云链接:百度网盘 请输入提取码 提取码:yypn

注意这里的数据集标签采用的是json格式,这在训练中数据集处理和读取中十分不便利,因此我对该部分进行了优化,采用txt的格式进行读取,使得数据加载速度比之前快了至少10倍。

下载数据集并解压,比如我的数据集放在F:/mydatasets/下,目录形如:

mydatasets/
`-- wiki_crop_face
    |-- image
    |-- label_new
    |-- wiki_crop_face.txt

接下来进行如下步骤生成最终的txt标签

步骤1:

修改tools/JSON2TXT.py的如下路径:

Json_label_path = 'F:/mydatasets/wiki_crop_face/label_new/'  # Json标签存储路径
Txt_label_path = 'F:/mydatasets/wiki_crop_face/label_txt/'   # Json转txt保存路径

然后运行该脚本,将会在wiki_crop_face/label_txt/下生成所有图像对应的标签txt文件,如下所示,命名方式为图像名称,内容为标注的信息。

|-- 3892342_1979-11-07_2009.txt
|-- 38929429_1993-02-22_2014.txt
|-- 38931826_1991-05-21_2013.txt
|-- 38932604_1982-09-28_2014.txt
|-- 3893481_1984-09-03_2011.txt
|-- 38940596_1990-02-19_2012.txt
.....

步骤2:

划分数据集,划分数据集脚本为tools/split_datasets.py,注意修改其中的步骤1得到的label_txt路径,然后运行该脚本即可,相关功能解释可看代码中注解介绍。

函数说明:

脚本中的create_dataset函数是将步骤1中得到的label_txt文件夹中所有的txt信息写入到一个txt中—datasets_list.txt。

脚本中的split_datasets函数是将上一步的datasets_list.txt划分为训练集train_list.txt和val_list.txt。

最终得到的数据集目录如下:

wiki_crop_face/
|-- datasets_list.txt  # 存储了所有数据集信息
|-- image  # 所有图像
|-- label_new  # 所有标签的json格式
|-- label_txt  # 所有标签的txt格式
|-- train_list.txt  # 训练集list
|-- val_list.txt  # 验证集list
`-- wiki_crop_face.txt  

训练

开启快速训练(其他参数可以看train.py)

python train.py --train_path 你的train_list.txt路径 --val_path 你的val_list.txt路径 --batch_size 8

ps:代码参数中的model参数是Backbone,现仅支持resnet34、resnet50(默认为resnet34)

检测

该部分有偿提供

开启快速检测

python predict.py --source img/2.jpg --yolo_weight yolo权重 --face_multask_weights 多任务权重 --draw_points

检测效果如下:

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
人脸表情识别计算机视觉领域的一个重要研究方向,近年来,基于深度学习人脸表情识别取得了很大进展。以下是其发展历程: 1. 传统方法:传统的人脸表情识别方法主要基于特征提取和分类器的组合,如使用LBP特征和SVM分类器。虽然这些方法在一定程度上能够识别人脸表情,但是它们的性能受到特征的质量和分类器的选择的限制。 2. 卷积神经网络(CNN):2012年,AlexNet提出了使用卷积神经网络(CNN)进行图像分类的方法,并在ImageNet数据集上取得了显著的性能提升。CNN对于人脸表情识别的主要优势在于能够自动学习特征,而不需要手动提取特征。在CNN的基础上,出现了许多用于人脸表情识别的模型,如VGGNet、ResNet等。 3. 数据集:人脸表情识别的一个重要问题是数据集的质量和规模。为了解决这个问题,研究人员创建了许多大规模的人脸表情数据集,如FER2013、CK+、AffectNet等,这些数据集提供了标注的人脸图像和相应的表情标签,为人脸表情识别的研究提供了基础。 4. 深度学习模型的优化:为了进一步提升人脸表情识别的性能,研究人员对深度学习模型进行了优化。其中一些优化包括使用注意力机制、多任务学习、迁移学习等方法。 5. 实践应用:基于深度学习人脸表情识别在实践应用中取得了广泛的应用,如智能家居、安防、娱乐等领域。例如,人脸表情识别可以用于检测驾驶员的情绪状态,以提高驾驶的安全性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃肉的鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值