0 有用
2 下载

用于年龄估算的紧凑型软件阶段回归网络

文件列表(压缩包大小 33.40M)

免费

概述

SSR网络

[IJCAI18] SSR-Net:用于年龄估算的紧凑型软件阶段回归网络

结果展示

参考论文

作者:Tsun-Yi Yang, Yi-Husan Huang, Yen-Yu Lin, Pi-Cheng Hsiu, and Yung-Yu Chuang

论文摘要

本文提出了一种新颖的CNN模型,称为“软分段回归网络(SSR-Net)”,用于从具有紧凑模型尺寸的单个图像进行年龄估算。受DEX启发,本项目通过执行多类别分类然后通过计算期望值将分类结果转换为回归来解决年龄估计问题。SSR-Net采用从粗到精的策略,并执行多个阶段的多类分类。每个阶段仅负责完善前一阶段的决策。因此,每个阶段执行的任务很少,而且所需的神经元也很少,从而大大减小了模型的大小。为了解决将年龄分组到类别中引入的量化问题,SSR-Net通过允许根据输入的面部图像进行移动和缩放来为每个年龄类别分配动态范围。多阶段策略和动态范围都被纳入到软阶段回归的公式中。提出了一种新颖的网络架构来进行软件的逐步回归。生成的SSR-Net模型非常紧凑,仅需0.32 MB。尽管具有紧凑的尺寸,但SSR-Net的性能仍能与模型尺寸大1500倍的最新方法相媲美。

平台

  • Keras
  • Tensorflow
  • GTX-1080Ti
  • Ubuntu

依赖

代码

该项目分为三个不同的部分。

  1. 数据预处理
  2. 培训与测试
  3. 视频演示部分我们将在以下各节中详细介绍。

该存储库适用于IMDB,WIKI和Morph2数据集。

数据预处理
cd ./data
python TYY_IMDBWIKI_create_db.py --db imdb --output imdb.npz
python TYY_IMDBWIKI_create_db.py --db wiki --output wiki.npz
python TYY_MORPH_create_db.py --output morph_db_align.npz

训练和测试

通过随机选择80%的数据集作为训练和20%的数据集作为验证(或测试)来完成实验。本文中每个数据集中的设置详细信息。

对于MobileNet和DenseNet:

cd ./training_and_testing
sh run_all.sh

对于SSR-Net:

cd ./training_and_testing
sh run_ssrnet.sh

请注意,在此代码中提供了几种不同的超参数组合。如果只需要单个超参数集,请在“ run_ssrnet.sh”中更改命令。

绘制结果: 例如,在训练IMDB数据集之后,想要绘制曲线和结果。将“ plot.sh”,“ ssrnet_plot.sh”和“ plot_reg.py”复制到“ ./imdb_models”中。以下命令应标出训练过程的结果。

sh plot.sh
sh ssrnet_plot.sh

视频演示部分

纯CPU演示命令:

cd ./demo
KERAS_BACKEND=tensorflow CUDA_VISIBLE_DEVICES='' python TYY_demo_mtcnn.py TGOP.mp4

# Or you can use

KERAS_BACKEND=tensorflow CUDA_VISIBLE_DEVICES='' python TYY_demo_mtcnn.py TGOP.mp4 '3'
  • 注意:你可以选择其他预先训练的模型。但是,morph2数据集处于良好控制的环境中,并且比IMDB和WIKI小得多,来自morph2的预训练模型可能在野外图像上表现出色。因此,对于野外图像或视频演示,建议使用IMDB或WIKI预训练模型。

  • 由于面部数据井井有条,因此本项目在上一个实验部分中使用了dlib检测和面部对齐。但是,dlib无法为野生视频提供令人满意的人脸检测。因此,在演示部分中,本项目将mtcnn用作检测过程。

实时摄像头演示

考虑到人脸检测过程(MTCNN或Dlib)还不够快,无法进行实时演示。本项目通过使用lbp人脸检测器显示实时网络摄像头版本。

cd ./demo
KERAS_BACKEND=tensorflow CUDA_VISIBLE_DEVICES='' python TYY_demo_ssrnet_lbp_webcam.py
  • 请注意,当使用MTCNN,Dlib或LBP时,面部检测的覆盖区域是不同的。你应该在推理和训练之间选择相似的大小。
  • 同样,预训练的模型主要用于数据集的评估。它们并非真正用于真实世界的图像。你应该始终通过自己的数据集重新训练模型。在网络摄像头演示中,发现morph2预训练模型实际上比wiki预训练模型表现更好。讨论将包含在项目的未来工作中。
  • 如果是亚洲人,则可能要使用megaage_asian预训练模型。
  • Morph2预先训练的模型非常适合网络摄像头,但是性别模型过拟合且不实用。

扩展

训练性别模型

可以将二进制分类问题重新构造为回归问题,并且可以使用SSR-Net来预测置信度。例如,本项目在扩展代码中提供了性别回归和演示。

训练性别网络:

cd ./training_and_testing
sh run_ssrnet_gender.sh

分数可以在[0,1]之间,并且对于一般提议回归,可以将SSR-Net内部的'V'更改为1。

第三方

  • MXNET: https://github.com/wayen820/gender_age_estimation_mxnet

  • pytorch: https://github.com/oukohou/SSR_Net_Pytorch

  • Pytorch: https://github.com/CrazySummerday/SSR-Net

转载自:https://github.com/shamangary/SSR-Net

理工酷提示:

如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈

评论(0)

0/250

免费 登录即可免费下载

·圈子

位酷友已加入

空心人

积分 • 3374

圈子: 计算机
标签:
计算机人工智能神经网络人脸识别
文件编号:1369
上传时间:2021-03-26
文件大小:33.40M