【CV-Pose estimation】PyraNet閱讀筆記
原論文連接:Learning Feature Pyramids for Human Pose Estimation
源代碼:https://github.com/bearpaw/PyraNet
motivation
論文是香港中文科技大學王曉剛教授團隊之作,目前在MPII官網在Single Person領域,PCKh @ 0.5 evaluation measure,取得state-of-the-art水平。
計算機視覺處理人體姿態估計的挑戰在於,隨著計攝像頭視角變化,人體不同部位的圖像會發生顯著性尺度變化(離攝像頭越近的人體部位,看上去越大,圖片中佔用像素越多)。單純低層次或高層次特徵是無意義的,需要用特徵金字塔網路來融合多層特徵,改進CNN特徵提取,這也是為什麼特徵金字塔在目標識別和人體姿態識別領域得到廣泛使用。論文在Stacked Hourglass基礎上,提出PRMs模型和研究多分支網路的權重初始化方法。本人分析論文如何實現改進,從什麼方面考慮問題,力求在論文基礎上更上一層樓。
論文主要有以下貢獻:
1、提出Pyramid Residual Module,金字塔殘差模塊,它通過學習DCNNs中的特徵金字塔來增強深度模型的尺度的不變性,而模型複雜度只有很小的增加。
2、研究具有多個輸入或多個輸出分支圖層的DCNNs初始化問題,提出有效的初始化方案,可用於inception和ResNets等模型。
3、解決由identity mapping引起的激活方差積累的問題。
Architecture
Framework
Stacked Hourglass Networks由多個 stacked hourglass 模塊組成,通過重複進行bottom-up, top-down提取特徵,是Human Pose Estimation領域經典模型。論文延續stacked hourglass這種思路,細節進行補充。我們還是先對比論文提供的模型PyraNet和經典模型Stacked Hourglass區別。
1、Stacked Hourglass Networks網路開始是步長為2,filters為7×7的Conv層,其後是residual模塊和一串Max Pooling層,將解析度由256x256降到64x64。其後兩個hourglass模塊。
論文提出的PyraNet,同樣使用兩個hourglass模塊。hourglass之前是conv+PRM + Pool+PRM同樣是256x256降低到64x64的解析度。
2、Hourglass結構中增加 Score maps(使用score maps表示人體關節的位置)和convolution。
3、Stacked Hourglass使用的殘差模塊是1x1,1x3卷積以及維度變化,而論文中PyraNet殘差模塊PRMs包括BN-ReLU-1x1Conv、BN-ReLU-3x3Conv、BN-ReLU-3x3 Dilated Conv、Upsampling、Downsampling。論文中一口氣提出四種PRMs。從模型結構來看,主體思想相同,PyraNet在殘差模塊更豐富一些,或許可以提取更多的特徵。
4、論文使用fractional max-pooling代替max-pooling。簡單來說,max-pooling是均勻方形池化,fractional max-pooling是不均勻方格池化。max-pooling能帶來性能的提升?表示懷疑。
5、論文使用更多的分支,複雜度增加10%,是因為「由於解析度較小的特徵包含的信息相對較少」,論文中小分支使用較少的信息特徵通道。
Initialization Multi-Branch Networks
Specifically, if several multi-branch layers are stacked together without other operations (e.g., batch normalization,convolution, ReLU, etc.), the output variance would be increased approximately Ql Ci(l) times by using Xavier or MSR initialization。
在多分支並行情況下,論文宣稱殘差模塊identity mappings 恆等映射,使用Xavier和MSR初始化網路,方差成倍數增加。但是使用BN+ReLU+conv 1x1替換identity mappings,阻止了方差爆炸。
Experiment
論文模型在The MPII human posedataset和The Leeds Sports Poses (LSP)兩個數據集測試和驗證。
根據標註身體的位置和規模,輸入圖像裁剪到256×256解析度。對於LSP測試集,我們 只需使用圖像中心作為身體位置,並通過圖像大小來估計人體比例。訓練數據通過縮放,旋轉,翻轉和添加顏色實現數據集增廣。所有模型都使用Torch在4 Titan X GPUs進行訓練,RMSProp優化模型,mini-batch size =16(4 per GPU) ,epochs=200 。The learning rate初始化7×10e-4,並且在150th和170th epoch除以10。
具體實驗數據可參看原論文。
Conclusion
16,17年主流演算法都是根據Stacked Hourglass延伸,但是本論文和Stacked Hourglass結構太多相似之處!主要創新點是PRMs,也就是殘差網路設計。用實驗說明identity mappings不如BN+ReLU+conv 1x1。使用fractional max-pooling代替max-pooling真有性能提升?表示懷疑。
返回CV-Pose estimation目錄
返回CV總目錄
推薦閱讀:
※做圖像檢索,圖像庫從哪兒能下載到?
※如何評價陳天奇團隊新開源的TVM?
※卷積神經網路(CNN)中卷積層與池化層如何進行BP殘差傳遞與參數更新?
※人工神經網路ANN現在發展到什麼的樣的狀態? 有很多人說SVM和adaboost比ANN強,又有人說deep learning的ANN更好.到底如何呢.
※如何評價 Caffe2go?
TAG:计算机视觉 | 算法 | 深度学习DeepLearning |