讓視頻姿態(tài)Transformer變得飛速,北大提出高效三維人體姿態(tài)估計(jì)框架HoT
目前,Video Pose Transformer(VPT)在基于視頻的三維人體姿態(tài)估計(jì)領(lǐng)域取得了最領(lǐng)先的性能。近年來,這些 VPT 的計(jì)算量變得越來越大,這些巨大的計(jì)算量同時(shí)也限制了這個(gè)領(lǐng)域的進(jìn)一步發(fā)展,對(duì)那些計(jì)算資源不足的研究者十分不友好。例如,訓(xùn)練一個(gè) 243 幀的 VPT 模型通常需要花費(fèi)好幾天的時(shí)間,嚴(yán)重拖慢了研究的進(jìn)度,并成為了該領(lǐng)域亟待解決的一大痛點(diǎn)。
那么,該如何有效地提升 VPT 的效率同時(shí)幾乎不損失精度呢?
來自北京大學(xué)的團(tuán)隊(duì)提出了一種基于沙漏 Tokenizer 的高效三維人體姿態(tài)估計(jì)框架HoT,用來解決現(xiàn)有視頻姿態(tài) Transformer(Video Pose Transformer,VPT)高計(jì)算需求的問題。該框架可以即插即用無縫地集成到 MHFormer,MixSTE,MotionBERT 等模型中,降低模型近 40% 的計(jì)算量而不損失精度,代碼已開源。
- 標(biāo)題:Hourglass Tokenizer for Efficient Transformer-Based 3D Human Pose Estimation
- 論文地址:https://arxiv.org/abs/2311.12028
- 代碼地址:https://github.com/NationalGAILab/HoT
研究動(dòng)機(jī)
在 VPT 模型中,通常每一幀視頻都被處理成一個(gè)獨(dú)立的 Pose Token,通過處理長達(dá)數(shù)百幀的視頻序列(通常是 243 幀乃至 351 幀)來實(shí)現(xiàn)卓越的性能表現(xiàn),并且在 Transformer 的所有層中維持全長的序列表示。然而,由于 VPT 中自注意力機(jī)制的計(jì)算復(fù)雜度與 Token 數(shù)量(即視頻幀數(shù))的平方成正比關(guān)系,當(dāng)處理具有較高時(shí)序分辨率的視頻輸入時(shí),這些模型不可避免地帶來了巨大的計(jì)算開銷,使得它們難以被廣泛部署到計(jì)算資源有限的實(shí)際應(yīng)用中。此外,這種對(duì)整個(gè)序列的處理方式?jīng)]有有效考慮到視頻序列內(nèi)部幀之間的冗余性,尤其是在視覺變化不明顯的連續(xù)幀中。這種信息的重復(fù)不僅增加了不必要的計(jì)算負(fù)擔(dān),而且在很大程度上并沒有對(duì)模型性能的提升做出實(shí)質(zhì)性的貢獻(xiàn)。
因此,要想實(shí)現(xiàn)高效的 VPT,本文認(rèn)為首先需要考慮兩個(gè)因素:
- 時(shí)間感受野要大:雖然直接減短輸入序列的長度能夠提升 VPT 的效率,但這樣做會(huì)縮小模型的時(shí)間感受野,進(jìn)而限制模型捕獲豐富的時(shí)空信息,對(duì)性能提升構(gòu)成制約。因此,在追求高效設(shè)計(jì)策略時(shí),維持一個(gè)較大的時(shí)間感受野對(duì)于實(shí)現(xiàn)精確的估計(jì)是至關(guān)重要的。
- 視頻冗余得去除:由于相鄰幀之間動(dòng)作的相似性,視頻中經(jīng)常包含大量的冗余信息。此外,已有研究指出,在 Transformer 架構(gòu)中,隨著層的加深,Token 之間的差異性越來越小。因此,可推斷出在 Transformer 的深層使用全長的 Pose Token 會(huì)引入不必要的冗余計(jì)算,而這些冗余計(jì)算對(duì)于最終的估計(jì)結(jié)果的貢獻(xiàn)有限。
基于這兩方面的觀察,作者提出對(duì)深層 Transformer 的 Pose Token 進(jìn)行剪枝,以減少視頻幀的冗余性,同時(shí)提高 VPT 的整體效率。然而,這引發(fā)了一個(gè)新的挑戰(zhàn):剪枝操作導(dǎo)致了 Token 數(shù)量的減少,這時(shí)模型不能直接估計(jì)出與原視頻序列相匹配數(shù)量的三維姿態(tài)估計(jì)結(jié)果。這是因?yàn)椋趥鹘y(tǒng)的 VPT 模型中,每個(gè) Token 通常對(duì)應(yīng)視頻中的一幀,剪枝后剩余的序列將不足以覆蓋原視頻的全部幀,這在估計(jì)視頻中所有幀的三維人體姿態(tài)時(shí)成為一個(gè)顯著的障礙。因此,為了實(shí)現(xiàn)高效的 VPT,還需兼顧另一個(gè)重要因素:
- Seq2seq 的推理:一個(gè)實(shí)際的三維人體姿態(tài)估計(jì)系統(tǒng)應(yīng)當(dāng)能夠通過 seq2seq 的方式進(jìn)行快速推理,即一次性從輸入的視頻中估計(jì)出所有幀的三維人體姿態(tài)。因此,為了實(shí)現(xiàn)與現(xiàn)有 VPT 框架的無縫集成并實(shí)現(xiàn)快速推理,需要保證 Token 序列的完整性,即恢復(fù)出與輸入視頻幀數(shù)相等的全長 Token。
基于以上三點(diǎn)思考,作者提出了一種基于沙漏結(jié)構(gòu)的高效三維人體姿態(tài)估計(jì)框架,? Hourglass Tokenizer (HoT)。總的來說,該方法有兩大亮點(diǎn):
- 簡單的 Baseline、基于 Transformer 通用且高效的框架
HoT是第一個(gè)基于 Transformer 的高效三維人體姿態(tài)估計(jì)的即插即用框架。如下圖所示,傳統(tǒng)的 VPT 采用了一個(gè) “矩形” 的范式,即在模型的所有層中維持完整長度的 Pose Token,這帶來了高昂的計(jì)算成本及特征冗余。與傳統(tǒng)的 VPT 不同,HoT 先剪枝去除冗余的 Token,再恢復(fù)整個(gè)序列的 Token(看起來像一個(gè) “沙漏”),使得 Transformer 的中間層中僅保留少量的 Token,從而有效地提升了模型的效率。HoT 還展現(xiàn)了極高的通用性,它不僅可以無縫集成到常規(guī)的 VPT 模型中,不論是基于 seq2seq 還是 seq2frame 的 VPT,同時(shí)也能夠適配各種 Token 剪枝和恢復(fù)策略。
- 效率和精度兼得
HoT揭示了維持全長的姿態(tài)序列是冗余的,使用少量代表性幀的 Pose Token 就可以同時(shí)實(shí)現(xiàn)高效率和高性能。與傳統(tǒng)的 VPT 模型相比,HoT 不僅大幅提升了處理效率,還實(shí)現(xiàn)了高度競爭性甚至更好的結(jié)果。例如,它可以在不犧牲性能的情況下,將 MotionBERT 的 FLOPs 降低近 50%;同時(shí)將 MixSTE 的 FLOPs 降低近 40%,而性能僅輕微下降 0.2%。
模型方法
提出的 HoT 整體框架如下圖所示。為了更有效地執(zhí)行 Token 的剪枝和恢復(fù),本文提出了 Token 剪枝聚類(Token Pruning Cluster,TPC)和 Token 恢復(fù)注意力(Token Recovering Attention,TRA)兩個(gè)模塊。其中,TPC 模塊動(dòng)態(tài)地選擇少量具有高語義多樣性的代表性 Token,同時(shí)減輕視頻幀的冗余。TRA 模塊根據(jù)所選的 Token 來恢復(fù)詳細(xì)的時(shí)空信息,從而將網(wǎng)絡(luò)輸出擴(kuò)展到原始的全長時(shí)序分辨率,以進(jìn)行快速推理。
Token 剪枝聚類模塊
本文認(rèn)為選取出少量且?guī)в胸S富信息的 Pose Token 以進(jìn)行準(zhǔn)確的三維人體姿態(tài)估計(jì)是一個(gè)難點(diǎn)問題。
為了解決該問題,本文認(rèn)為關(guān)鍵在于挑選那些具有高度語義多樣性的代表性 Token,因?yàn)檫@樣的 Token 能夠在降低視頻冗余的同時(shí)保留必要的信息?;谶@一理念,本文提出了一種簡單、有效且無需額外參數(shù)的 Token 剪枝聚類(Token Pruning Cluster,TPC)模塊。該模塊的核心在于鑒別并去除掉那些在語義上貢獻(xiàn)較小的 Token,并聚焦于那些能夠?yàn)樽罱K的三維人體姿態(tài)估計(jì)提供關(guān)鍵信息的 Token。通過采用聚類算法,TPC 動(dòng)態(tài)地選擇聚類中心作為代表性 Token,借此利用聚類中心的特性來保留原始數(shù)據(jù)的豐富語義。
TPC 的結(jié)構(gòu)如下圖所示,它先對(duì)輸入的 Pose Token 在空間維度上進(jìn)行池化處理,隨后利用池化后 Token 的特征相似性對(duì)輸入 Token 進(jìn)行聚類,并選取聚類中心作為代表性 Token。
Token 恢復(fù)注意力模塊
TPC 模塊有效地減少了 Pose Token 的數(shù)量,然而,剪枝操作引起的時(shí)間分辨率下降限制了 VPT 進(jìn)行 seq2seq 的快速推理。因此,需要對(duì) Token 進(jìn)行恢復(fù)操作。同時(shí),考慮到效率因素,該恢復(fù)模塊應(yīng)當(dāng)設(shè)計(jì)得輕量級(jí),以最小化對(duì)總體模型計(jì)算成本的影響。
為了解決上述挑戰(zhàn),本文設(shè)計(jì)了一個(gè)輕量級(jí)的 Token 恢復(fù)注意力(Token Recovering Attention,TRA)模塊,它能夠基于選定的 Token 恢復(fù)詳細(xì)的時(shí)空信息。通過這種方式,由剪枝操作引起的低時(shí)間分辨率得到了有效擴(kuò)展,達(dá)到了原始完整序列的時(shí)間分辨率,使得網(wǎng)絡(luò)能夠一次性估計(jì)出所有幀的三維人體姿態(tài)序列,從而實(shí)現(xiàn) seq2seq 的快速推理。
TRA 模塊的結(jié)構(gòu)如下圖所示,其利用最后一層 Transformer 中的代表性 Token 和初始化為零的可學(xué)習(xí) Token,通過一個(gè)簡單的交叉注意力機(jī)制來恢復(fù)完整的 Token 序列。
應(yīng)用到現(xiàn)有的 VPT
在討論如何將所提出的方法應(yīng)用到現(xiàn)有的 VPT 之前,本文首先對(duì)現(xiàn)有的 VPT 架構(gòu)進(jìn)行了總結(jié)。如下圖所示,VPT 架構(gòu)主要由三個(gè)組成部分構(gòu)成:一個(gè)姿態(tài)嵌入模塊用于編碼姿態(tài)序列的空間與時(shí)間信息,多層 Transformer 用于學(xué)習(xí)全局時(shí)空表征,以及一個(gè)回歸頭模塊用于回歸輸出三維人體姿態(tài)結(jié)果。
根據(jù)輸出的幀數(shù)不同,現(xiàn)有的 VPT 可分為兩種推理流程:seq2frame 和 seq2seq。在 seq2seq 流程中,輸出是輸入視頻的所有幀,因此需要恢復(fù)原始的全長時(shí)序分辨率。如 HoT 框架圖所示的,TPC 和 TRA 兩個(gè)模塊都被嵌入到 VPT 中。在 seq2frame 流程中,輸出是視頻中心幀的三維姿態(tài)。因此,在該流程下,TRA 模塊是不必要的,只需在 VPT 中集成 TPC 模塊即可。其框架如下圖所示。
實(shí)驗(yàn)結(jié)果
消融實(shí)驗(yàn)
在下表,本文給出了在 seq2seq(*)和 seq2frame(?)推理流程下的對(duì)比。結(jié)果表明,通過在現(xiàn)有 VPT 上應(yīng)用所提出的方法,本方法能夠在保持模型參數(shù)量幾乎不變的同時(shí),顯著減少 FLOPs,并且大幅提高了 FPS。此外,相比原始模型,所提出的方法在性能上基本持平或者能取得更好的性能。
本文還對(duì)比了不同的 Token 剪枝策略,包括注意力分?jǐn)?shù)剪枝,均勻采樣,以及選擇前 k 個(gè)具有較大運(yùn)動(dòng)量 Token 的運(yùn)動(dòng)剪枝策略,可見所提出的 TPC 取得了最好的性能。
本文還對(duì)比了不同的 Token 恢復(fù)策略,包括最近鄰插值和線性插值,可見所提出的 TRA 取得了最好的性能。
與 SOTA 方法的對(duì)比
當(dāng)前,在 Human3.6M 數(shù)據(jù)集上,三維人體姿態(tài)估計(jì)的領(lǐng)先方法均采用了基于 Transformer 的架構(gòu)。為了驗(yàn)證本方法的有效性,作者將其應(yīng)用于三個(gè)最新的 VPT 模型:MHForme,MixSTE 和 MotionBERT,并與它們?cè)趨?shù)量、FLOPs 和 MPJPE 上進(jìn)行了比較。
如下表所示,本方法在保持原有精度的前提下,顯著降低了 SOTA VPT 模型的計(jì)算量。這些結(jié)果不僅驗(yàn)證了本方法的有效性和高效率,還揭示了現(xiàn)有 VPT 模型中存在著計(jì)算冗余,并且這些冗余對(duì)最終的估計(jì)性能貢獻(xiàn)甚小,甚至可能導(dǎo)致性能下降。此外,本方法可以剔除掉這些不必要的計(jì)算量,同時(shí)達(dá)到了高度競爭力甚至更優(yōu)的性能。
代碼運(yùn)行
作者還給出了 demo 運(yùn)行(https://github.com/NationalGAILab/HoT),集成了 YOLOv3 人體檢測(cè)器、HRNet 二維姿態(tài)檢測(cè)器、HoT w. MixSTE 二維到三維姿態(tài)提升器。只需下載作者提供的預(yù)訓(xùn)練模型,輸入一小段含有人的視頻,便可一行代碼直接輸出三維人體姿態(tài)估計(jì)的 demo。
python demo/vis.py --video sample_video.mp4
運(yùn)行樣例視頻得到的結(jié)果:
小結(jié)
本文針對(duì)現(xiàn)有 Video Pose Transforme(VPT)計(jì)算成本高的問題,提出了沙漏 Tokenizer(Hourglass Tokenizer,HoT),這是一種即插即用的 Token 剪枝和恢復(fù)框架,用于從視頻中高效地進(jìn)行基于 Transformer 的 3D 人體姿勢(shì)估計(jì)。研究發(fā)現(xiàn),在 VPT 中維持全長姿態(tài)序列是不必要的,使用少量代表性幀的 Pose Token 即可同時(shí)實(shí)現(xiàn)高精度和高效率。大量實(shí)驗(yàn)驗(yàn)證了本方法的高度兼容性和廣泛適用性。它可以輕松集成至各種常見的 VPT 模型中,不論是基于 seq2seq 還是 seq2frame 的 VPT,并且能夠有效地適應(yīng)多種 Token 剪枝與恢復(fù)策略,展示出其巨大潛力。作者期望 HoT 能夠推動(dòng)開發(fā)更強(qiáng)、更快的 VPT。