論文地址:https://arxiv.org/pdf/2111.12707.pdf
Github:https://github.com/Vegetebird/MHFormer
單位:北大深圳研究生院、蘇黎世聯邦理工學院、阿里巴巴
摘要
由於深度模糊和自遮擋,從單目視頻中估計三維人體姿態是一項具有挑戰性的任務。現有的研究工作大多試圖通過利用空間和時間關系來解決這兩個問題,然而,這些研究忽略了一個事實,即存在多個可行的解決方案的逆問題(inverse problem)。為了緩解這一限制,作者提出了一個Multi-Hypothesis Transformer(MHFormer)學習多個看似合理的姿勢假設的時空表征。為了有效地對多假設依賴關系進行建模,並在假設特征間建立強關系,作者將任務分解為三個階段:(1)生成多個初始假設表示;(2)對self-hypothesis進行建模,將多個假設聚合為一個表示,再將其分割成多個不同假設;(3)學習cross-hypothesis communication,聚合多假設的特征以合成最終的3D pose。經過上面的處理,增加了最終的姿態表示,使合成的姿態更加精確。實驗表明,MHFormer在Human3.6M 和 MPI-INF-3DHP兩個數據集上實現了SOTA效果,比之前最好的效果提升了3%。
1&2. Introduction& Related work
主要講一下為什么作者提出這個模型,其他略。
在視頻中的2D到3D的姿態評估,之前的工作要么使用時空圖(spatio-tempral graph),要么使用純粹的基於Transformer的模型,這些方法的共性就是提取2D pose sequence中的時空信息。但是都忽略了一個重要的事實,2D->3D的過程是一個可逆問題,存在多個可行解,即一個2D pose投影到3D上,符合要求的投影可能有多個,這些方法忽略了這個問題,只估計了一個單一的解決方案,這樣得到的結果就不夠精確。如下圖,帶一定的自遮擋,以前的方法只預測一個結果,而作者提出的方法預測了多個可行解,這也是作者為什么要提出這個方法的原因。
如圖Figure 2 是作者提出的三階段框架。從生成多個初始化的表示開始,通過作者稱之為的self-communication以合成一個更為准確的預測。
第一階段引入了稱之為Multi-Hypothesis Generation(MHG)的模塊,對人體關節的內在結構信息進行建模,在空間域生成多個多層次的特征,這些特征包含了從淺到深的不同深度的不同語義信息,可以視為多個假設的初始表征形式。
接下來,作者提出了兩個新的模塊對時間一致性進行建模,並增強了時序上的coase representations。第二階段,一個作者稱之為Self-Hypothesis Refinement (SHR)的模塊用於微調每個單假設的特征,SHR由兩個塊組成。第一個塊是一個多假設自注意塊(multi-hypothesis self-attention,MH-SA),對單個假設構建self-hypothesis communication,使信息在每個假設中傳遞以增強特征。第二個塊是hypothesis-mixing multi-layer perceptron (MLP),多假設混合的多層感知器(十分拗口),用於交換每個假設之間的信息。第二階段的工作是將多個假設聚合成一個中間表示后,又將其分割成幾個不同的假設。
雖然SHR對這些假設進行了微調(refine),但是不同假設之間的聯系依然不夠強,因為MH-SA模塊只傳遞了各自假設的信息,沒有實現跨假設信息交互,為了解決這個問題,作者提出了第三個階段Cross-Hypothesis Interaction (CHI),跨假設交互模塊,對多個假設的的特征進行交互。CHI的關鍵模塊是multi-hypothesis cross-attention(MH-CA),多假設的注意力交互模塊,該模塊捕獲多假設之間的相互關系,構建跨假設的信息交互(cross-hypothesis communication),以實現假設之間的信息傳遞,從而更好地進行交互建模。然后,利用hypothesis-mixing MLP對多個假設進行聚合得到最終地結果。
本文貢獻:
(1)提出了一個基於Transformer的新方法MHFormer,用於單目視頻的3D HPE。該模型能夠以端到端的方式有效學習多個姿態假設的時空表征。
(2)提出了多假設特征之間的信息交互,既能夠實現自假設信息微調,也能夠跨假設進行信息交互。
(3)在兩個數據集上實現了最先進的效果,比之前好了3%。
3.Multi-Hypothesis Transformer
MHFormer整體圖如Fig3所示,2D pose sequence由現成的2D pose detector生成。方法目標是通過充分利用多假設特征的時空信息來構建3D pose,方法實現包括三個關鍵模塊:MHG、SHR和CHI,以及兩個輔助模塊:時序嵌入和回歸頭。
3.1 Preliminary
本文中,作者使用的架構是基於Transformer的,因為其在長期依賴建模中具有良好表現。本文Transformer的基本組件包含:多頭注意力(MSA)和一個多層感知器(MLP)。
MSA 采用點積方式計算注意力分數:
MSA將queries,keys和values分為h個平行輸入,輸出是將h個注意力頭又結合在一起。
MLP 包含兩個線性層,分別用於非線性化(GELU激活函數)和特征轉換
3.2 MultiHypothesis Generation
在空間域,作者通過設計一個基於transformer的級聯結構來解決可逆問題,這個級聯結構能夠輸出不同潛在空間的多個特征。具體就是引進MHG對人體關節關系進行建模,以及初始化多假設表示。
給定一個2D pose sequence,將每一幀的每個關節的坐標作為一個patch,在此基礎上加上spatial position embedding,用於保留身體關節的空間信息,之后將這個embedded features 作為MHG的輸入,為了梯度傳播,這邊也應用了殘差結構。以上過程可用公式表示為:
LN()表示LayerNorm。圖中可以看到是輸出了三個不同的假設表示(presentation),每一個表示經歷過的Transformer Encoder層數不一樣,即深度不一樣,因此包含的信息不一樣,也就是三個特征表示是不一樣,即作者所謂的在不同潛在空間中包含不同深度的多個假設。
3.3 Temporal Embedding
MHG更多是在空間上提取信息,時間上的聯系是不足的,因此作者在每一幀之間加入了一個Temporal embedding,為后面模塊提取時間聯系時提供一個強的參考信息。
3.4. SelfHypothesis Refinement
在時間域上,作者首先構造了SHR來對單個假設特征表示進行細化/微調(refine),每個SHR層由一個多假設自注意力塊(multi-hypothesis self-attention, MH-SA)和一個hypothesis-mixing MLP塊。
MH-SA Transformer模型的核心時MSA,任意兩個元素(這里我理解為輸入的patch)都可以通過它進行信息交互,進而產生長期依賴。而MH-SA是捕捉單假設中獨立的依賴關系,以進行自假設信息交互,也就是說這部分的微調,只和自己有關,從自己身上提取信息后進行微調。公式上可以如下表達:
Hypothesis-Mixing MLP(HM-MLP) 在MH-SA中,多假設被單獨處理,而假設之間是沒有進行信息交換的,因此在MH-SA之后,作者添加了這個HM-MLP模塊。在MH-SA之后,多個假設的特征被連接起來,fed到HM-MLP中進行信息融合,之后將特征沿通道維數均勻划分為不重疊的塊,形成(經過多假設信息交互后的)更精細化的假設表示,公式表示為:
Concat()表示連接操作。經過以上操作,得到的多個假設就包含了其他假設的交互信息了。這邊有點不清楚連接后的划分依據是什么?按照個人理解是多個假設特征只是被簡單的串聯,那么經過MLP層后就發生了信息交互,只需要按照原來連接的地方將一個特征重新拆分成多個假設特征就行了,這樣拆分的幾個假設特征也就實現了作者所說的假設混合。
3.5. CrossHypothesis Interaction
然后利用CHI對多假設特征之間的交互進行建模,CHI包括兩個模塊:multi-hypothesis cross-attention (MH-CA) 和 hypothesis-mixing MLP(HM-MLP)。
MH-CA MH-SA缺少跨假設之間的連接,這會限制其交互建模。為了捕捉多假設之間的相關性,進行交叉假設交互,作者提出了MH-CA,MH-CA由多個平行的multi-head cross attention(MCA)組成。
MCA用於衡量多個假設特征之間的相關性,與MSA有着相似的結構。下圖右側為MCA的結構圖。在MCA中,如果使用相同的keys和values作為輸入,會導致更多的塊,此處作者采用了一種更有效的策略,通過使用不同的輸入來減少參數的數量。對比下圖可知,在MSA中是采用相同參數的輸入,輸入一個特征,輸出一個特征,MCA中輸入三個不同特征,輸出一個特征。
以上實現可表示為公式:
Hypothesis-Mixing MLP(HM-MLP) 這部分操作和3.4HM-MLP基本一致
在最后一層的HM-MLP中,不再進行分配操作,最終將所有假設的特征進行聚合,合成一個單一的假設特征表示ZM。
3.6 Regression Head
經過MHG、temporal embedding、SHR和CHI,輸入關節幀X變成了唯一的特征表示ZM,然后在先行輸出層上進行回歸生成3D pose sequence X~, X~中選擇中間幀X^作為最終的預測結果。
3.7 Loss Function
使用標准的平均關節位置誤差(MPJPE)損失以端到端方式對整個網絡進行訓練
4. Experiments
這里就貼一下效果,實現細節翻譯一下。
4.2. Implementation Details
作者的實驗中,參數采用L1=4 MHG, L2=2 SHR, 和 L3=1 CHI layers。使用pytorch框架在3090單GPU訓練20個epochs,優化器為Amsgrad。初始學習率為0.05,每個epoch后收縮系數為0.95,每5個epoch后收縮系數為0.5。2D pose sequence在Human3.6M上采用CPN,MPI-INF-3DHP上使用ground truth。
4.+ results
Human3.6M上的實驗效果,protocol1為CPN生成的2D pose sequence作為輸入, protocol2為ground truth作為輸入,效果都比之前的好:
關於多個假設的對比實驗:
MPI-INF-3DHP上的實驗效果對比:
Human3.6M上做的消融實驗對比,其實就是2D pose sequence輸入的不同,以及輸入幀數不同時的影響:
消融實驗,改變MHG層數和假設數量后的實驗結果對比,顯示MHG層數最好為4,假設數量最好為3:
消融實驗,改變SHR和CHI層數后的實驗結果:
消融實驗,對比沒有多個假設生成對比,以及部分模塊有無的對比,說明每個模塊都時必要的:
消融實驗做了非常多,說明非常重要,不僅僅提出一個新模型就夠了,還要實驗證明提出的模型不可缺少。
5. Qualitative Results
作者的方法並沒有產生多個3D預測結果,但是中間添加了回歸層后,可以使中間假設可視化。下圖展示了幾個定性的結果,作者的方法能夠生成不同的貌似合理的3D姿態解,特別是對於具有深度模糊、自遮擋和2D檢測器不確定性的模糊身體部位。通過多假設信息聚合得到的最終三維位姿更合理、更准確。
6. Conclusion
貢獻:
(1)提出了一個基於Transformer的新方法MHFormer,用於單目視頻的3D HPE。該模型能夠以端到端的方式有效學習多個姿態假設的時空表征。
(2)提出了多假設特征之間的信息交互,既能夠實現自假設信息微調,也能夠跨假設進行信息交互。
(3)在兩個數據集上實現了最先進的效果,比之前好了3%。
Limitation:要求相對較大的計算復雜度,因為Transformer卓越的性能是以高計算成本為代價的。