论文阅读实践 - 基于CNN的年龄和性别分类

基于CNN的年龄和性别分类

学习论文 Age and Gender Classification using Convolutional Neural Networks.

主要是针对年龄和性别分别建立分类问题,基于CaffeNet,年龄转化为 8 类别、性别为 2 分类问题,训练两个网络模型,实现原理较为直接简单.

项目路径

源码路径

年龄分类网络结构 - 对应caffemodel

性别分类网络结构 - 对应caffemodel

1. 年龄和性别分类的CNN网络

CNN的第一个应用是用于字符识别的 LeNet5 网络. 随着GPU发展,训练数据的快速增长,用于图像分类的深度CNN网络显著提高了准确率. 随后,CNN成功应用于更多领域,如人体姿态估计、人脸关键点检测、语音识别及动作分类等. 这里将CNN网络用于年龄和性别分类任务.

收集大型的、标签化的年龄和性别图像训练集有两种方式:

  • 用户的个人注册信息,如出生日期和性别,往往是私人信息.
  • 手工标注,繁琐且耗时.

现阶段,尚无该类型数据集. 针对小型图像数据集,机器学习方法易出现过拟合问题. 深度CNN网络方法由于其具有大量的模型参数,过拟合问题更加突出. 因此,过拟合问题需要慎重考虑.

网络结构说明

Figure2. CNN网络结构例示. 网络包括 3 个卷积层,每一个卷积层后接一个 ReLU 和 Pooling 层. 此外,前两层采用LRN(local response normalization)归一化. 第一个卷积层是 96 个 7×7 fliters, 第二个卷积层是 256 个5×5 fliters,第三个和最后一个卷积层均是 384 个 3×3 fliters. 网络最后是两个全连接层,均是 512 个输出单元. 如Figure3. 主要是基于CaffeNet.

分类问题:

  • 年龄分类: 8 类
    • age = "0 - 2" age = "4 - 6" age = "8 - 13" age = "15 - 20" age = "25 - 32" age = "38 - 43" age = "48 - 53" age = "60 -"
  • 性别分类: 2 类

网络输入图片是从 256×256 中裁剪 227×227 大小,输出的全连接层后接 softmax layer,以估计各类的概率. 针对测试图片,概率最大的类即为预测结果.

2. 联合训练年龄和性别分类网络

根据对论文方法及其实现的学习,个人考虑,可以将年龄和性别分类问题转化为二标签多任务分类问题,即每张人脸图像均有两个标签——年龄和性别,训练数据格式为:

# train.txt
faceimg1.jpg 1 0
faceimg2.jpg 0 1
faceimg3.jpg 2 0
...

具体操作可参考Caffe实践 - 基于VGG16 多标签分类的训练与部署.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券