論文筆記 Stacked Hourglass Networks for Human Pose Estimation
Stacked Hourglass Networks for Human Pose Estimation
key words:
人體姿態估計 Human Pose Estimation 給定單張RGB影象,輸出人體某些關鍵點的精確畫素位置.
堆疊式沙漏網路 Stacked Hourglass Networks
多尺度特徵 Features processed across all scales
特徵用於捕捉人體的空間關係 Capture spatial relationships associated with body
中間監督 Intermediate supervision
圖 - Stacked Hourglass Networks由多個 stacked hourglass 模組組成,通過重複進行bottom-up, top-down推斷以估計人體姿態.
沙漏設計 Hourglass Design
動機:捕捉不同尺度下圖片所包含的資訊.
區域性資訊,對於比如臉部、手部等等特徵很有必要,而最終的姿態估計需要對整體人體一致理解. 不同尺度下,可能包含了很多有用資訊,比如人體的方位、肢體的動作、相鄰關節點的關係等等.
Hourglass設計:
圖 - 單個hourglass模組示例. 圖中個方框分別對應一個residual模組. 整個hourglass中,特徵數是一致的.
hourglass設定:
首先Conv層和Max Pooling層用於將特徵縮放到很小的解析度;
每一個Max Pooling(降取樣)處,網路進行分叉,並對原來pre-pooled解析度的特徵進行卷積;
得到最低解析度特徵後,網路開始進行upsampling,並逐漸結合不同尺度的特徵資訊. 這裡對較低解析度採用的是最近鄰上取樣(nearest neighbor upsampling)方式,將兩個不同的特徵集進行逐元素相加.
整個hourglass是對稱的,獲取低解析度特徵過程中每有一個網路層,則在上取樣的過程中相應低就會有一個對應網路層.
得到hourglass網路模組輸出後,再採用兩個連續的 1×1 Conv層進行處理,得到最終的網路輸出.
Stacked Hourglass Networks輸出heatmaps的集合,每一個heatmap表徵了關節點在每個畫素點存在的概率.
Residual模組提取了較高層次的特徵(卷積路),同時保留了原有層次的資訊(跳級路)。不改變資料尺寸,只改變資料深度。可以把它看做一個保尺寸的高階“卷積”層。
中間監督 Intermediate Supervision
Hourglass網路輸出heatmaps集合(藍色方框部分),與真值進行誤差計算。 其中利用1×1的Conv層對heatmaps進行處理並將其添加回特徵空間中,作為下一個hourglass model的輸入特徵。每一個Hourglass網路都新增Loss層.Intermediate Supervision的作用在[2]中提到:如果直接對整個網路進行梯度下降,輸出層的誤差經過多層反向傳播會大幅減小,即發生vanishing gradients現象。
為解決此問題,[2]在每個階段的輸出上都計算損失。這種方法稱為intermediate supervision,可以保證底層引數正常更新。
堆疊沙漏與中級監督 Stack Hourglass with Intermediate Supervision
正如本文開頭所示,網路的核心結構為堆疊多個hourglass model,這為網路提供了重複自下而上,自上而下推理的機制,允許重新評估整個影象的初始估計和特徵。實現這一過程的核心便是預測中級熱度圖並讓中級熱度圖參與loss計算。
如果對單一的Hourglass Model進行Intermediate Supervision,監督放在哪個位置比較合適呢?如果在網路進行上取樣後提供監督,那麼在更大的全球堆疊沙漏網路人類姿勢估計上下文中,無法相對於彼此重新評估這些特徵;如果在上取樣之前監督,此時,給定畫素處的特徵是處理相對區域性感受野的結果,因此不知道關鍵的全域性線索。本文提供的解決方式是repeated bottom-up,top-down inference with Stacked hourglass(圖解在本文文首),通過該方式, the network can maintain precise local information while considering and then reconsidering the overall coherence of the features。