年龄性别识别

年龄性别识别,基于insightface功能模块开发的,支持多张人脸同时检测和识别。

源码地址:https://github.com/yeyupiaoling/Age-Gender-MXNET

环境

  • 安装mxnet,支持1.3~1.6版本,安装命令如下。
pip install mxnet-cu101==1.5.0

数据集

  • 默认支持以下三种数据集,将以下三个数据集下载解压到dataset目录下。
  1. http://afad-dataset.github.io/
  2. http://mmlab.ie.cuhk.edu.hk/projects/MegaAge/
  3. https://ibug.doc.ic.ac.uk/resources/agedb/
  • 执行生成数据列表。
python create_dataset.py
  • 如果想训练自定义数据集,只需生成类似以下的数据列表就可以了。
dataset/AgeDB/0_MariaCallas_35_f.jpg,0,35
dataset/AgeDB/10000_GlennClose_62_f.jpg,0,62
dataset/AgeDB/10001_GoldieHawn_23_f.jpg,0,23
dataset/AgeDB/10003_GoldieHawn_24_f.jpg,0,24
dataset/AgeDB/10004_GoldieHawn_27_f.jpg,0,27
dataset/AgeDB/10005_GoldieHawn_28_f.jpg,0,28
dataset/AgeDB/10006_GoldieHawn_29_f.jpg,0,29

如果想看各个年龄的分布,可以执行show_age_distribution.py生成年龄分布图。

训练

开始训练,具体参数可以查看代码,这里介绍一下network参数,这个参数是选择模型的,当指定为r50则选择ResNet作为特征提取模型,当m50则使用MobileNet作为特征提取模型。

python train.py

训练输出的结果:

gpu num: 1
num_layers 50
data_shape [3, 112, 112]
Called with argument: Namespace(batch_size=128, color=0, ctx_num=1, cutoff=0, data_dir='dataset', data_shape='3,112,112', end_epoch=200, gpu_ids='0', image_channel=3, image_h=112, image_w=112, lr=0.1, lr_steps='10,30,80,150,200', network='m50', num_layers=50, prefix='temp/model', pretrained='', rand_mirror=1, rescale_threshold=0, version_input=1, version_output='GAP')
1 GAP 32
INFO:root:loading recordio dataset\train.rec...
INFO:root:dataset\train.rec 数据大小:303018
INFO:root:是否随机翻转图片:1
INFO:root:loading recordio dataset\val.rec...
INFO:root:dataset\val.rec 数据大小:1032
INFO:root:是否随机翻转图片:False
call reset()
开始训练...
INFO:root:Epoch[0] Batch [0-20] Speed: 520.85 samples/sec   acc=0.572545   MAE=10.734747  CUM_5=0.240699
INFO:root:Epoch[0] Batch [20-40]    Speed: 518.95 samples/sec   acc=0.589844   MAE=9.351172   CUM_5=0.289844
INFO:root:Epoch[0] Batch [40-60]    Speed: 516.86 samples/sec   acc=0.603125   MAE=9.184766   CUM_5=0.303906
INFO:root:Epoch[0] Batch [60-80]    Speed: 508.44 samples/sec   acc=0.609766   MAE=8.759375   CUM_5=0.336719
INFO:root:Epoch[0] Batch [80-100]   Speed: 461.26 samples/sec   acc=0.656250   MAE=8.224609   CUM_5=0.361328
INFO:root:Epoch[0] Batch [100-120]  Speed: 518.43 samples/sec   acc=0.696875   MAE=7.611328   CUM_5=0.400391
INFO:root:Epoch[0] Batch [120-140]  Speed: 514.88 samples/sec   acc=0.715234   MAE=7.224609   CUM_5=0.426172
INFO:root:Epoch[0] Batch [140-160]  Speed: 517.80 samples/sec   acc=0.722266   MAE=6.976172   CUM_5=0.437500

评估

训练结束之后,执行下面的命令评估模型的识别准确率。

python eval.py

输出结果,从结果来看,准确率还是可以的。

100%|██████████| 1032/1032 [00:06<00:00, 153.75it/s]
性别准确率:0.972868
年龄准确率:0.761628

预测

使用训练好的模型或者笔者提供的模型执行年龄性别识别,通过指定图像文件路径完成识别。

python infer.py --image=test.jpg

识别输出结果:

第1张人脸,位置(160, 32, 204, 84), 性别:男, 年龄:30
第2张人脸,位置(545, 162, 579, 206), 性别:女, 年龄:31
第3张人脸,位置(632, 118, 666, 158), 性别:男, 年龄:28
第4张人脸,位置(91, 159, 151, 237), 性别:男, 年龄:38
第5张人脸,位置(723, 123, 760, 169), 性别:男, 年龄:26
第6张人脸,位置(263, 120, 317, 191), 性别:男, 年龄:27
第7张人脸,位置(438, 134, 481, 190), 性别:男, 年龄:46
第8张人脸,位置(908, 160, 963, 224), 性别:男, 年龄:35
第9张人脸,位置(39, 51, 81, 102), 性别:女, 年龄:31
第10张人脸,位置(807, 148, 847, 196), 性别:女, 年龄:26
第11张人脸,位置(449, 40, 485, 84), 性别:男, 年龄:29
第12张人脸,位置(378, 46, 412, 86), 性别:女, 年龄:33
第13张人脸,位置(534, 46, 567, 83), 性别:男, 年龄:30
第14张人脸,位置(272, 20, 311, 67), 性别:男, 年龄:28
第15张人脸,位置(358, 216, 375, 237), 性别:男, 年龄:27

效果图:

基于MXNET实现的年龄性别识别相关推荐

  1. 基于深度学习的人脸性别识别系统(含UI界面,Python代码)

    摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...

  2. 基于BP神经网络算法的性别识别

    目录 基于 BP 神经网络算法的性别识别 1 目录 1 1.背景介绍 2 2. OpenCV 的介绍 3 3.安装 OpenCV 4 4. BP 神经网络算法介绍和实践 4 4.1 BP 神经网络结构 ...

  3. 【face-api.js】前端实现,人脸捕获、表情识别、年龄性别识别、人脸比对、视频人脸追踪、摄像头人物识别

    face-api.js 效果展示 准备工作 官网看下简介,在线预览看下效果 官方的github文件拷下来 npm i face-api.js 把模型文件拷进你的项目 主要布局 主要是在图片或视频元素上 ...

  4. JavaCV实现年龄 | 性别 识别(优化版)

    一.效果展示 之前的系列教程中写了关于怎么使用Java + OpenCV 进行人脸性别和年龄的识别,但是不同的环境需要安装和搭建OpenCV运行环境,现在用JavaCV重新修改了一下.思路啥的都一样, ...

  5. 卜若的代码笔记-python系列-神经网络篇-第十四章:基于keras框架的男女性别识别

    1.我们来看一下整个网络的实现构架 以下显示面板利用的是keras的summary函数 (None, 65536) (None, 512) ______________________________ ...

  6. 基于BP神经网络算法的实现静态图片和视频人脸识别、性别识别

    资源下载地址:https://download.csdn.net/download/sheziqiong/85772066 资源下载地址:https://download.csdn.net/downl ...

  7. 基于深度学习人脸性别识别项目

    项目概述 要求针对提供的人脸数据集,根据人脸图像预测人脸性别. 本次将提供 20000 多张已经分割的人脸图像,要求基于人脸图像自动识别该人性别.数据集的年龄从 1 岁覆盖到 100 多岁,包括了白种 ...

  8. 年龄估计系列(1)年龄性别调研:论文阅读和github资源汇总/数据库/挑战/思考

    目录 一.论文阅读和github资源汇总 1.1 论文 1.1.1 2012.人脸图像的年龄估计研究 1.1.2 2013.Age Estimation Face Images_Human vs Ma ...

  9. 【源码】常用的人脸识别数据库以及上篇性别识别源码

    上一篇<使用ML.NET模型生成器来完成图片性别识别>发布后,很多朋友希望得到源码,这里附上地址: https://github.com/xin-lai/GenderRecognition ...

  10. 性别识别_文字性别识别_语音性别识别 - 云+社区 - 腾讯云

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 通过神经网络对声音进行分类,比对声纹特征,实时判断说话人的性别特征,识别准确率高达 ...

最新文章

  1. 驳“永远不要对一个外行聊你的专业”【十全十美】
  2. Program type already present: android.support.v4.app.BackStackRecord$Op
  3. python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理
  4. HTML5 实现离线数据缓存
  5. mysql 日期滞后_如何滞后MySQL中的列?
  6. gitlab+jenkins=自动化构建
  7. 一个软件,internal version 和external version, 安装有问题
  8. java 线程重入,java synchronized加载加锁-线程可重入详解及实例代码
  9. 网络自由访问 巧解除Win XP文件共享限制
  10. Arcgis Android API开发之离线地图
  11. 在桌面计算机找不到光盘驱动,驱动程序存放在Windows7系统光盘的哪 – 手机爱问...
  12. qt 分贝毫瓦 dBm 与 功率 W 相互转换
  13. 通过一个html简单实现下载功能
  14. c# hook技术的实现
  15. 回答朋友关于美团点评业务线工作体验
  16. 网络攻防篇 使用批处理文件进行来恶作剧-01
  17. jyhtfkuy5987tgoluigl.kjylghliuygliuylio
  18. 判断浏览器是否为ie8调样式
  19. 图片优化对SEO有着重要作用
  20. 【javascript】js面试题原型和原型链

热门文章

  1. qbit linux网页ui不能设置中文,BT下载教程 篇四:qbittorrent 设置补充说明及更换WEB UI...
  2. 2015年计算机二级office,2015年计算机二级MSoffice考试资料汇总.doc
  3. python find_peaks 源码理解
  4. R语言使用dplyr包进行数据聚合统计计算滑动窗口统计值(Window Statistics)、计算滑动分组四分位差(IQR、四分位距)并合并生成的统计数据到原数据集中
  5. 所有能反演SIF的卫星以及下载链接
  6. 宝尚市场静候收官的市场又出现短期噪音
  7. 【视频检测】Flow-Guided Feature Aggregation for Video Object Detection
  8. 别墅家庭无线WiFi覆盖解决方案
  9. 学UI设计出来可以从事什么工作?
  10. 容易遗忘的几个js知识点(一)