基于MXNET实现的年龄性别识别
年龄性别识别
年龄性别识别,基于insightface功能模块开发的,支持多张人脸同时检测和识别。
源码地址:https://github.com/yeyupiaoling/Age-Gender-MXNET
环境
- 安装mxnet,支持1.3~1.6版本,安装命令如下。
pip install mxnet-cu101==1.5.0
数据集
- 默认支持以下三种数据集,将以下三个数据集下载解压到
dataset
目录下。
- http://afad-dataset.github.io/
- http://mmlab.ie.cuhk.edu.hk/projects/MegaAge/
- 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实现的年龄性别识别相关推荐
- 基于深度学习的人脸性别识别系统(含UI界面,Python代码)
摘要:人脸性别识别是人脸识别领域的一个热门方向,本文详细介绍基于深度学习的人脸性别识别系统,在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面.在界面中可以选择人脸图片.视频进行检 ...
- 基于BP神经网络算法的性别识别
目录 基于 BP 神经网络算法的性别识别 1 目录 1 1.背景介绍 2 2. OpenCV 的介绍 3 3.安装 OpenCV 4 4. BP 神经网络算法介绍和实践 4 4.1 BP 神经网络结构 ...
- 【face-api.js】前端实现,人脸捕获、表情识别、年龄性别识别、人脸比对、视频人脸追踪、摄像头人物识别
face-api.js 效果展示 准备工作 官网看下简介,在线预览看下效果 官方的github文件拷下来 npm i face-api.js 把模型文件拷进你的项目 主要布局 主要是在图片或视频元素上 ...
- JavaCV实现年龄 | 性别 识别(优化版)
一.效果展示 之前的系列教程中写了关于怎么使用Java + OpenCV 进行人脸性别和年龄的识别,但是不同的环境需要安装和搭建OpenCV运行环境,现在用JavaCV重新修改了一下.思路啥的都一样, ...
- 卜若的代码笔记-python系列-神经网络篇-第十四章:基于keras框架的男女性别识别
1.我们来看一下整个网络的实现构架 以下显示面板利用的是keras的summary函数 (None, 65536) (None, 512) ______________________________ ...
- 基于BP神经网络算法的实现静态图片和视频人脸识别、性别识别
资源下载地址:https://download.csdn.net/download/sheziqiong/85772066 资源下载地址:https://download.csdn.net/downl ...
- 基于深度学习人脸性别识别项目
项目概述 要求针对提供的人脸数据集,根据人脸图像预测人脸性别. 本次将提供 20000 多张已经分割的人脸图像,要求基于人脸图像自动识别该人性别.数据集的年龄从 1 岁覆盖到 100 多岁,包括了白种 ...
- 年龄估计系列(1)年龄性别调研:论文阅读和github资源汇总/数据库/挑战/思考
目录 一.论文阅读和github资源汇总 1.1 论文 1.1.1 2012.人脸图像的年龄估计研究 1.1.2 2013.Age Estimation Face Images_Human vs Ma ...
- 【源码】常用的人脸识别数据库以及上篇性别识别源码
上一篇<使用ML.NET模型生成器来完成图片性别识别>发布后,很多朋友希望得到源码,这里附上地址: https://github.com/xin-lai/GenderRecognition ...
- 性别识别_文字性别识别_语音性别识别 - 云+社区 - 腾讯云
广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 通过神经网络对声音进行分类,比对声纹特征,实时判断说话人的性别特征,识别准确率高达 ...
最新文章
- 驳“永远不要对一个外行聊你的专业”【十全十美】
- Program type already present: android.support.v4.app.BackStackRecord$Op
- python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理
- HTML5 实现离线数据缓存
- mysql 日期滞后_如何滞后MySQL中的列?
- gitlab+jenkins=自动化构建
- 一个软件,internal version 和external version, 安装有问题
- java 线程重入,java synchronized加载加锁-线程可重入详解及实例代码
- 网络自由访问 巧解除Win XP文件共享限制
- Arcgis Android API开发之离线地图
- 在桌面计算机找不到光盘驱动,驱动程序存放在Windows7系统光盘的哪 – 手机爱问...
- qt 分贝毫瓦 dBm 与 功率 W 相互转换
- 通过一个html简单实现下载功能
- c# hook技术的实现
- 回答朋友关于美团点评业务线工作体验
- 网络攻防篇 使用批处理文件进行来恶作剧-01
- jyhtfkuy5987tgoluigl.kjylghliuygliuylio
- 判断浏览器是否为ie8调样式
- 图片优化对SEO有着重要作用
- 【javascript】js面试题原型和原型链
热门文章
- qbit linux网页ui不能设置中文,BT下载教程 篇四:qbittorrent 设置补充说明及更换WEB UI...
- 2015年计算机二级office,2015年计算机二级MSoffice考试资料汇总.doc
- python find_peaks 源码理解
- R语言使用dplyr包进行数据聚合统计计算滑动窗口统计值(Window Statistics)、计算滑动分组四分位差(IQR、四分位距)并合并生成的统计数据到原数据集中
- 所有能反演SIF的卫星以及下载链接
- 宝尚市场静候收官的市场又出现短期噪音
- 【视频检测】Flow-Guided Feature Aggregation for Video Object Detection
- 别墅家庭无线WiFi覆盖解决方案
- 学UI设计出来可以从事什么工作?
- 容易遗忘的几个js知识点(一)