姿態檢測整理--01-Stacked Hourglass Networks for Human Pose Estimation
Stacked Hourglass Networks for Human Pose Estimation(發表於2016年)
基本上是目前姿態研究的基礎網路,具有bottom-up和top-down二者特性。bottom-up是先得到肢體再歸併到不同個體。
姿態檢測的history:
人們開始從傳統方法[2-9]轉而研究深度神經網路在這方面的應用,是Toshev[24]成功應用神經網路估計人類姿態,他使用的方法是迴歸關節點座標(x,y)。Tompson[15]將熱點圖headtmap替代了迴歸的方法,同時使用不同尺度解析度逐漸獲取特徵。然後又到了Newell的stacked Hourglass,也是組合不同解析度所得特徵,也就是這篇文章嘍。
Hourglass和它之前的網路不同點說明:
Tompson的方法是使用CNN和圖形模式,圖形模式用來獲取關節點間的關係(繼續深挖/探究關節點間的聯絡的方法這也是很多人研究的方向[20,25,17]),比如,chen[25]使用聚類的方法。CNN和影象模式組合的方法是2015年的相關研究的經典基調。當然也有不同的方法,比如有:迭代的方法[19],圖片先作為輸入,然後將預測結果作為輸入來微調網路。Wei[18]使用多個階段的提取結果。
在微調時,,Tompson等的研究使用短視訊cascade(這兒的cascade翻譯是錯誤的,讀過相關論文,這是級聯學習方法,是使用多階段訓練的方法提升精確度)的方式,Newell發現cascade幫助不大,錯誤更多是由於肢體被擋住或者識別錯誤,所以繼續在當前尺度下進行調整不能提高預測結果。
對Hourglass的細節說明:
對於單一的hourglass結構
Hourglass和fully convolutinal networks[23]以及其他網路[15,30,31,32,33,34,35,36,37,38]相似(在不同尺度下識別姿態,截至到目前2017年,較多用到的是Hourglass,FCN,ResNet),但是結構特殊:同時包含了bottom-up(from high resolutions to low resolutions)和top-down (from low resolutions to high resolutions)。而且,整個網路有多個bottom-up和top-down過程。這樣設計的目的是在各個尺度下抓取資訊。[關於典型網路結構,xie[30]做了一個總結。全卷積網路和整體嵌入網路結構傾向與使用bottom-up,不太重視top-down。]
堆疊Hourglass結構之後:
Hourglass處理top-down過程時,不用unpooling或deconv層,而是使用最近鄰的上取樣以及使用跳躍連線方式skip connection(ResNet 結構)。
有人為了得到多尺度下的特徵,使用了多條分支[15,18],Hourglass使用單處理流程線,但能達到多尺度獲取特徵的效果。最後,將不同解析度下的特徵聯絡起來,使用了Tompson的方法—對低解析度做最近鄰上取樣從而得到特徵的元素,最後得到的是熱度圖。
網路設計:
Hourglass使用了殘差網路,並且使用了googlenet中的分解大fliter的方法。
Hourglass還會疊加這個結構,可以在多尺度下發現特徵。第一層結構可以發現區域性和整體的特徵,將這些特徵送入第二層結構之後,高層次特徵會得到更高層次特徵,高層次特徵在地解析度影象中出現。單層Hourglass可能會不能發現一些尺度下特徵與其他尺度下的關係,所以要用兩層這個結構。最後,loss是兩個結構用同一套ground truth進行計算。
訓練:
資料預處理:
用到了FLIC和MPII資料集。FLIC是電影截圖,給出上半身標註。MPII是生活照片,是多人圖片。
因為沒有預先輸入人體檢測的模型,訓練時需要將人放到圖片中間,以決定target person。FLIC是根據標註將人放到圖片中間。MPII是根據target person裁剪得到256×256的圖片,對於centering之後仍不清楚是否合適,需要做資料增強(需要指出,Hourglass 是處理單人姿態檢測)。
這個方法的簡單理解,可以參考到網路的視覺化,不過從準確性和資訊豐富角度,比視覺化多一個ResNet結構,而且是專用的一段網路。