Fine-Grained Head Pose Estimation Without Keypoints
簡介
head pose estimation 經典論文,使用CNN預測三個角度值,pitch,yaw,roll,本文提出一種combined classification and regression方法,並且用了HopeNet,在BIWI、300W-LP和AFLW2000數據集上訓練和測試,比使用landmark方法得到了提升,模型大小也不是特別大,能夠實時。
網絡結構
使用resnet作為backbone,分別全連接三個fc層,每個層單獨預測。其中,fc層的全連接數是bin數,也就是將全部-99到+99一共199個數值每三個數分為一組,fc連接數就是66(實際上數據在超過這個范圍的都剔除了,等於的剔除)。這個想法是借鑒了年齡識別的網絡模型,先做分類,然后將分類的結果map到一個范圍,這樣精度會有大的提升。而且是multi-loss,分類的loss占比會影響梯度方向,從而會起到一個導向作用,引導回歸往一個合適的方向,這是梯度方向上的引導。
對fc的結果做softmax,就把fc的值映射成了概率值,所有類別數據相加為1,映射成了概率就很方便能求出期望了,所以網絡的輸出又被映射到[0,99]這個區間范圍內,然后乘以3減去99,這個區間范圍就被映射到了[-99,+99]這個區間范圍,也就是我們需要的回歸。然后就是計算回歸的loss,用的是mse loss。
與前面分類的loss(BCE LOSS) 按照一定權重加權求和,然后對最終的loss梯度反向,就完成了整個過程。
他這個網絡兩個好處,一來是利用multi-loss來引導回歸,而是利用分類的結果去映射到一個可以回歸的區間范圍,這樣就把原本是回歸問題的問題轉化為了分類 + 回歸的問題,后來也看了其他幾篇文章,基本都是轉化為分類 + 回歸問題來解決的,感覺這篇算是鼻祖了吧。解決思路很有效果。
數據集和實驗
數據集用的是BIWI和AFLW2000,300W-LP作者只探究了高低分辨率對結果的影響。
在BIWI數據集上,划分了訓練集和測試集,使用MAE作為評估標准,對比了自己的方法、FAN和直接Dlib,以及3DFFA,自己的方法在不適用深度信息的使用是SOTA的,然后去AFLW2000數據集上划分訓練集和測試集去評估,只跟Gu et al.使用了CNN和RNN訓練的結果做了對比,也是SOTA。
我個人感覺這個結果說服力不是很強,我自己實驗的時候發現其實很難訓練,想要收斂很難,網絡總是會朝着局部極小值點去逼近,很難訓練到一個全局極小值,即網絡總是輸出一個類似均值值,使得局部最小。后面也試了很多方法,訓練感覺都是挺難的。網絡和方法看起來很簡單,但是其實挺難擬合的。