年龄识别之ssrnet

 

论文:SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation

Github:https://github.com/shamangary/SSR-Net

 

论文提出了多stage结构的,紧凑,轻量化的年龄识别网络结构SSR-Net(Soft Stagewise Regression Network)。其中,多stage策略(multi-stage strategy),动态区间策略(dynamic range),都有助于模型精度的提升。最终模型大小仅仅0.32M

 

问题定义:

年龄识别之ssrnet

N:一共的图片数目

Y:图片的标签

整体的loss为 mean absolute error (MAE),本质年龄识别问题就是一个回归问题。

 

 

DEX方法到多stage策略(Stagewise Regression):

DEX方法,将整个年龄的回归问题,分解为分类问题。将整个年龄区间 Y = [0; V ] 分解为s个不相交的子区间,每一个子区间的宽度为w

W=v/s

那么第i个子区间ui=i*(V/s)

最终预测的年龄为每一个区间的概率和,即

年龄识别之ssrnet

为了使得模型更加精确,DEX方法设置每一个bin的宽度为1岁,也就是对于 Y = [0::100],一共有101个bin。

但是这样整,参数量比较大。为了减少最后全连接层的参数量。本文基于DEX方法的基础上,提出了分stage策略。

年龄识别之ssrnet

假设年龄一共0-90岁,区间宽度为10,那么DEX方法的全连接层就需要9个神经元 (0 ∼ 10,10 ∼ 20,20 ∼ 30,30 ∼ 40,40 ∼ 50,50 ∼ 60,60 ∼ 70,70 ∼ 80,80 ∼ 90)。而采用多stage策略后,第一个stage只需要3个神经元 (0 ∼ 30,30 ∼ 60,60 ∼ 90),第二个stage在第一个stage的基础上,也只需要3个神经元,因为第一层的3个stage共用第二层的3个神经元,即第二层的stage在第一层stage的基础上,只需要区分(小,中,大)就可以实现0-90岁的分类了。2个stage加起来,只需要6个神经元就可以达到。

 

 

动态区间(Dynamic Range):

动态区间就是在原始DEX这种不重叠的区间的基础上,增加一个尺度scale,一个偏移shift,变化为一个动态的区间

年龄识别之ssrnet

 ∆k为网络输出的结果,1+ ∆k就是偏移shift

年龄识别之ssrnet

w为动态区间的宽度,

年龄识别之ssrnet

η为偏移offset,

最终网络的预测结果就是所有分类预测结果的和,

年龄识别之ssrnet

 

网络结构:

年龄识别之ssrnet

整个网络结构,输入图片为64*64,网络分为3个stage,整体结构是一个双流类型的结构。

这2个流的区别就是激活函数的区别(RELU vs Tanh),池化的区别(average vs maximum)。

每一个stage之间,都会对双流的输出进行特征融合。然后分别输出3个预测结果,分别是

年龄的分布p,尺度 ∆k,偏移η。

 

 

实验结果:

年龄识别之ssrnet

MobileNet,DenseNet,SSR-Net的训练结果,验证结果。SSR-Net的网络拟合能力更好。

年龄识别之ssrnet

SSR-Net的模型更小,精度更高。

 

 

结论:

(1)SSR-Net一个实用的年龄预测网络结构。

(2)Stagewise Regression和 Dynamic Range的思想非常值得借鉴。

上一篇:AlignDet特征对齐:one-stage检测算法的改进


下一篇:八:持续集成环境-jenkins Pipeline 简介