論文閱讀:Personalizing Human Video Pose Estimation

一、論文所解決的問題

本文所根據的想法是假設視頻中的人穿的衣服或者飾品都是不變的,
然後通過本文所設計的方法,提取目標視頻中的關節點的位置,然後用該視頻fine-tune通用的CNN Pose 估計器
從而獲得Personalized Pose Estimation.即個性化的人的姿態估計器

二、論文的解決方案

(1)整體架構一覽


stage1:Initial Annotation(首先使用CNN估計骨架,作爲初始的骨架位置)
stage2:Spatical Matching
stage3:Temporal Propagation(時間上傳遞關節的位置)
stage4:自動評價傳遞得到的關節位置的好壞,去掉那些壞的關節點
迭代:不斷重複2-4
Fine-Tune:然後將最終的獲得的關節位置的結果輸入到CNN,fine-tune,得到個性化的骨架估計器




各個stage詳細的解釋:


(1)Initial Annotation(初始化的姿態估計器)
可以使用yangyi的基於Part的姿態估計器,也可以使用zissermanICCV2015的CNN的姿態估計器,獲得前幾個幀中關節的位置

(2)Spatial Matching空間匹配關節位置(匹配下一幀或者下幾個幀中的關節,並獲得關節的位置)
1)獲得候選匹配的圖像塊
首先爲每個關節都都使用隨機森林進行訓練,採用不同大小的窗口,小窗口能夠使得關節位置更準確

2)對候選的圖像塊進行verification
使用HOG計算相似度,如果標註的關節位置的圖像塊和使用隨機森林獲得的圖像塊的相似度大於某個閾值則accept,否則discard。
具體是使用 exemplar-SVM來計算兩個圖像的相似度。exemplar-SVM的代碼見https://github.com/quantombone/exemplarsvm/

3)refinement
因爲不同的幀之間的關節的位置不一樣使用SIFTflowhttps://people.csail.mit.edu/celiu/SIFTflow/  來配準關節,獲得較好的關節位置

上面的1)2)3)步驟如下圖所示。

(3)Temporal Propagation(時間幀上傳播關節的位置)
在temporal window內的關節的周圍計算dense optical flow,代碼如下

(4)自評估模型
1)annotation aggrement
當每個幀有多個標註的時候(這些標註是來自於不同初始標註的幀,也即是一開始的幾個幀,分別用CNN提取關節位置)首先看給定幀關節位置的標準偏差,如果大於該閾值就accept,否則就使用parzen windows with Gaussian Kernel計算密度估計,通過選擇密度最大的二維位置
2)Occlusion-aware puppet model
用lower arm puppet模型檢測不正確的arm位置,以及頭部,肩部、肘部關節是否遮擋
3)Lower arm puppet construction(lower arm是指wrist 和elbow這一塊的膀子)
lower arm puppet模型是用可以進行旋轉和縮放的矩形進行表示的,該矩形內可以使用HOG特徵或者用RGB值作爲兩個線性SVM的輸入,進行二值分類(通過與不通過)。只有兩個分類器的結果都爲通過的時候才認爲lower arm 的關節位置是正確的。
具體的訓練是用CNN所提取出來的lower arm的關節位置作爲正樣本,以及將這些正樣本加入一些噪聲作爲負樣本進行訓練

4)遮擋檢測
使用關節位置的一個矩形框內的HOG以及RBG值作爲輸入,訓練兩個SVM來判斷頭部、肩部以及肘部是不是遮擋。
如果關節被遮擋,則不跟蹤,直到關節不再遮擋

5)discard annotation
如果1)中發現低於閾值,則丟棄
如果2)中發現lower arm檢測通不過則丟棄
6)修正失敗的annotation
通過在失敗的annotation周圍進行隨機採用,然後再進行評估,說不定就可以找到正確的關節位置。


三、論文中的方案解決該問題,解決到了什麼程度?

論文解決的問題是視頻中前幾幀來初始化,然後利用本文提出的方法直接定位關節位置,用本文的自評價模型對關節位置進行評估,通過本文的方法獲得視頻中後續幀的關節的位置,利用這些關節位置去fine-tune,CNN用於骨架提取。


四、其他未能考慮的問題

本文中雖然考慮了關節的遮擋問題,但是解決的方法並沒有實現End To End CNN。只是利用HOG以及RGB的值用SVM進行分類來判斷關節是否遮擋。



五、實驗

(1)結果
不同數據集的比較結果

迭代次數變化的影響

在本文算法中的每個階段(四個階段:初始化、Spatial Matching, Temporal Propagation再這樣循環進行Spatial Matching,Temporal Propagation下去)的各個關節的精確度。

作者說:spatial matching頭部和肩部的準確度已經超過baseline,原文如下:
In comparing the stages of the algorithm on the YouTube
data, by Stage 2 (spatial matching) the head and shoul
der accuracy already exceeds all baselines. By stage 3
(temporal propagation), the system outperforms all base
lines across all body joints. As mentioned above, spatial
matching helps propagate annotations to frames with simi
lar poses but different local background content. This oc
curs frequently in the BBC Pose dataset since signers are
overlaid on moving background content from the broad
cast material. Example pose estimates from personalized
ConvNets are shown for all datasets in Fig8.

最後作者還討論了:如果將本文方法用於多個視頻的自動提取,然後再將這些視頻fine-tune用於骨架提取的CNN是不是性能有提升。
作者說本文是personalized CNN pose estimation,說的是一個視頻。所以最後討論多個視頻去fine-tune CNN。
結果表明還是有效果(我覺得是廢話,只要樣本多,肯定CNN的效果是很好的。)






(2)代碼

沒找到
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章