hourglass網絡架構有效地利用了圖像多個尺度的空間信息,可以很好地應用於人體關鍵點檢測和人臉關鍵點檢測等任務,人臉關鍵點檢測一般要求在給定的人臉圖像上檢測出15個關鍵點的坐標,下面一起來看看hourglass網絡的做法,這里參考的算法實現地址為:https://github.com/raymon-tian/hourglass-facekeypoints-detection
1.hourglass網絡

2.網絡原理
網絡的輸入是1x96x96的灰度圖像和15x2的關鍵點坐標,在進行關鍵點檢測時沒有直接對關鍵點的坐標進行回歸,而是對每個關鍵點生成一個heatmap,將此heatmap作為回歸對象,參考算法的具體做法如下:
設某關鍵點坐標為(center_x, center_y),為其生成一個96x96的heatmap,設heatmap上點的坐標表示為(x, y),則heatmap上該點的取值為:
\(exp(-\frac{(x-center\_x)^2+(y-center\_y)^2}{2\sigma^2})\)
顯然heatmap上取值最大的點表示離關鍵點最近,這樣在做預測時,只需取相應的heatmap上取值最大的點的坐標作為預測即可。對15個關鍵點都生成一個heatmap,我們便得到了15x96x96的heatmap作為真實標簽。
如上圖所示,houglass網絡架構將輸入的1x96x96的灰度圖像轉變成了15x96x96的特征圖,loss計算時直接將其與15x96x96的heatmap計算均方差損失。考慮到一些關鍵點標注的缺失問題,參考算法對其做了相應的掩碼處理,即缺失的標注不計算損失。