論文閱讀-年齡估計_SSRNet


我的博客已全部遷往個人博客站點:oukohou.wang,敬請前往~~


年齡估計,也是一個頗有點意思的task。
今天來介紹一個其中的經典算法:SSRNet。

1. 前情提要

年齡估計,其實遠在深度學習風行之前就已經有了一些工作了,不過多是用傳統方法來做,先提取特徵,再在特徵上進行分類或者回歸。
提取特徵的方法,比如 AAM、 LBP、 Gabor 等等,得到特徵後,加個 SVM/SVR/PLSR 等就做了個年齡估計模型出來~~

而由於深度學習的再次大火,自然又有衆多探索如何用深度學習做年齡這個task的了,DEX 是其一,本文的 SSRNet 也是其一。

2. 廬山真面

先來張圖一睹爲快:
SSRNet_structure

然後故事還要從 DEX 說起。
DEX 將年齡均分爲 ss 個年齡段,即對於[0,V]的年齡跨度,每個年齡段跨度爲 V/sV/s,該段的代表性年齡取 μ=V/s\mu = V/s.
然後對於一個 s 類的分類模型,取其每一類的概率與當前類的代表年齡的加和作爲最終的預測值:

y~=pμ=i=0s1piμi=i=0s1pii(Vs)\tilde{y} = \vec{p}\cdot \vec{\mu}=\sum_{i=0}^{s-1}p_i\cdot\mu_i=\sum_{i=0}^{s-1}p_i\cdot i(\frac{V}{s})

這是 DEX 的做法。

然而,作者說:“To reduce the model size without sacrificing much accuracy, we propose to use a coarse-to-fine strategy with
multi-stage prediction.”

啥意思呢,就是作者要分階段進行 DEX 的這個操作,然後不同階段的值再進行融合:

y~=k=1Kp(k)μ(k)=k=1Ki=0sk1pi(k)i(Vj=1ksj)\tilde{y} =\sum_{k=1}^{K} \vec{p}^{(k)}\cdot \vec{\mu}^{(k)}=\sum_{k=1}^{K}\sum_{i=0}^{s_k-1}p_i^{(k)}\cdot i(\frac{V}{\prod_{j=1}^k s_j })

看起來有點摸不着頭腦?舉個栗子:

令 V=90,也就是年齡跨度爲0到90歲,階段數 K=2,每個階段的年齡段數爲3,即s1=s2=3s_1=s_2=3
那麼階段K=1時,每段年齡分別是(0~ 30),(30~ 60),(60~ 90),對於階段K=2時,每段年齡段又被
分爲3段,即每段年齡分別是(+0~ 10),(+10~ 20),(+20~ 30)。

這麼說是不是好像有點懂了?
不懂也不怕,我們先往下說,最後融會貫通,你就恍然大明白啦~~~

細心的客官應該已經發現了,上面這個式子裏的VV 怎麼分母不是sis_i,變成了j=1ksj\prod_{j=1}^k s_j
沒錯,事出反常必有妖,這裏又是作者的一個trick創新點:
作者說,年齡是連續的,而且有一定的不確定性,所以粗暴地把年齡劃分爲平均且不重疊的區域是不怎麼flexible的,於是乎,
作者決定使用dynamic range,什麼意思?就是每個年齡區域可以被shifted and scaled,怎麼樣,是不是覺得這個術語很面熟,當年batchnorm提出來的時候也見過對不對?
具體怎麼實現這個年齡的dynamic range呢?
很簡單,看:

sˉk=sk(1+k)\bar{s}_k=s_k \cdot (1+\bigtriangleup_k)

式中,sks_k是在階段k時的均分不重疊的年齡區域個數,加個波動區域k\bigtriangleup_k,則每個年齡區域的跨度應該爲:

wˉk=Vj=1ksˉj\bar{w}_k=\frac{V}{\prod_{j=1}^k \bar{s}_j}

於是乎,就實現了這個scale了~~那麼shift呢?
作者又把每個年齡區域的索引做了個偏移:

iˉ=i+ηik\bar{i}=i +\eta^k_i

這樣一來,每個年齡區域的索引有了微小的改變,自然也就是shift了~~

最後,就是整合各個階段的輸出來求加權和作爲最終的年齡預測結果了:

y~=k=1Ki=0sk1pikiˉ(Vj=1ksˉj)\tilde{y}=\sum_{k=1}^{K}\sum_{i=0}^{s_k-1}p_{i}^{k}\cdot \bar{i}(\frac{V}{\prod_{j=1}^k\bar{s}_j})

不過作者在此基礎上又多走了一個trick一步:用個2-stream模型來儘量提取不同特徵,融會貫通。
好了現在到了各位看官融匯貫通的時候了,現在再回頭看一下開始那張圖:

SSRNet_structure
怎麼樣,是不是有種恍然大明白的感覺?

3. 顧盼生姿

最後貼張結果對比圖,感性地評估一下SSRNet的性能:
results_on_MORPH

好啦, 現在到了各位看官捧個場的時候啦~~
敬請期待下次更新,完結撒花~~

微信公衆號:璇珠雜俎,也可搜索oukohou ,提供本站優質非技術博文~~
 點擊圖像直達微信公衆號


regards.

oukohou.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章