身體姿態估計旨在識別出給定影象中人或者動物範例身體的關鍵點,除了典型的身體骨骼關鍵點,還可以包括手、腳、臉部等關鍵點,是計算機視覺領域的基本任務之一。目前,視覺transformer已經在識別、檢測、分割等多個視覺任務上展現出來很好的效能。在身體姿態估計任務上,使用CNN提取的特徵,結合客製化化的transformer模組進行特徵增強,視覺transformer取得了很好的效果。然而,簡單的視覺transformer本身在姿態估計任務上是否能有很好的表現呢?
京東探索研究院聯合悉尼大學在這方面做出了探索,提出了基於簡單視覺transformer的姿態估計模型ViTPose和改進版本ViTPose+。ViTPose系列模型在MS COCO多個人體姿態估計資料集上達到了新的SOTA和帕累託前沿。其中,ViTPose已收錄於Neurips 2022。ViTPose+進一步拓展到多種不同型別的身體姿態估計任務,涵蓋動物、人體以及典型的身體骨骼、手、腳、臉部等關鍵點型別,在不增加推理階段模型複雜度和計算複雜度的情況下,實現了多個資料集上的最佳效能。
ViTPose和ViTPose+的效能和速度對比圖,圓圈大小代表了模型大小
近年來,視覺transformer在多個視覺領域展現出了極佳的效能。在姿態估計領域,也湧現出許多基於transformer的方案,並取得了很好的效果。如TokenPose等工作,使用CNN進行特徵提取,並使用transformer作為後處理模組來建模多個關鍵點之間的關係。儘管他們展現了很好的效果,但是仍然依賴CNN提取特徵,很難充分挖掘transformer在姿態估計領域的潛力。
為了減少CNN的影響,HRFormer等工作僅使用transformer來進行特徵提取和建模人體關鍵點。為了提升模型效能,模型採用了一些特殊的設計,如多尺度建模、多層級結構等方式。這些結構在CNN模型設計和transformer模型設計中都表現出很好的結果。然而,我們是否需要為姿態估計任務客製化化的設計Transformer網路結構呢?為此,京東探索研究院聯合悉尼大學提出了基於簡單視覺transformer的姿態估計基線ViTPose,充分挖掘transformer在姿態估計領域的潛力。基於常見的無監督預訓練技術並結合非常簡單的解碼器,ViTPose展示了視覺transformer在姿態估計方面的簡單性,可延伸性,靈活性,和可遷移性,並在人體,動物,全身關鍵點檢測等方面達到SOTA效能。
圖1 ViTPose結構
為了儘可能避免複雜的設計,ViTPose採用了最簡單的方式來應用簡單的視覺transformer。具體來說,ViTPose使用了簡單的視覺transformer作為編碼器對輸入影象進行特徵提取。提取得到的特徵會作為解碼器的輸入來得到最終的關鍵點預測。帶有transposed折積上取樣和預測層的標準解碼器(c)和直接使用雙線性插值的簡單解碼器(d)被用於評估簡單視覺transformer的簡單性;用於Bottom-up預測的解碼器(e)也被採用來衡量ViTPose對於不同關鍵點檢測正規化的靈活性。
此外,得益於採用了最簡單的編碼器-解碼器設計,ViTPose可以很容易的相容更大規模的簡單視覺transformer模型,並得到效能提升,展示出良好的擴充套件性;此外,通過使用不同的預訓練方式,和不同大小模型的遷移,ViTPose展現出優秀的靈活性和可遷移性。儘管沒有複雜的模型設計,ViTPose在人體,動物,全身關鍵點估計等多個設定下達到或超過了SOTA的模型,充分展示了簡單視覺transformer在姿態估計領域的潛力。
表1 使用不同decoder的ViTPose在MS COCO的效能對比
為了驗證ViTPose的簡單性和可延伸性,研究者使用了不同的解碼器和不同尺寸的編碼器,結果如表1所示。相比於使用經典的反折積解碼器,使用簡單雙線性解碼器的CNN模型出現了極大的效能下降,如ResNet-50和ResNet-152有接近20平均準確度的下降。然而,視覺transformer模型則表現出了很強的競爭力:使用簡單的解碼器和經典解碼器的效能差距不到0.3平均準確度,充分說明由於視覺transformer的強表徵能力,它可以學習到線性可分性極強的特徵表示,從而僅需要簡單的線性解碼器即可以達到很好的效果。此外,使用更大規模的編碼器,ViTPose的效能持續上升,展示了ViTPose良好的擴充套件性。
表2 使用不同預訓練資料的ViTPose在MS COCO的效能對比
在過往的實驗中,使用ImageNet對編碼器進行預訓練已經成為了一種預設設定。然而,對於姿態估計任務來說,這引入了額外的資料需求。為了探索使用ImageNet資料進行預訓練是否是不可避免的,ViTPose探索了能否只使用姿態估計資料 (MS COCO和AI Challenger資料)進行預訓練。結果如表2所示,無論是否使用人體的位置(人體範例的檢測框標註)進行裁剪操作,只使用姿態估計的資料進行預訓練的ViTPose在使用更少的資料量的情況下達到了和使用ImageNet資料進行預訓練的ViTPose相當的效果。
表3 使用不同注意力方式的ViTPose效能
由於使用全注意力方式的計算複雜度,在使用大尺寸特徵圖進行訓練時,ViTPose模型的視訊記憶體消耗會大幅度增長。為此,ViTPose也探索了能否在微調階段使用不同的注意力方式進行計算。如表3所示,使用視窗注意力機制的ViTPose在佔用更少視訊記憶體消耗的情況下可以達到和使用全注意力機制的ViTPose相當的效果。
表4 使用不同模組進行訓練的ViTPose效能
為了充分探索ViTPose中各個模組對於姿態估計任務的貢獻,ViTPose進一步探索了僅使用FFN模組或者MHSA模組進行訓練而保持其他模組不動的訓練方式。結果如表4所示。僅調整FFN模組可以達到和全部可訓練相當的效果,而只訓練MHSA模組則會帶來較大的效能下降,說明FFN模組負責更多特定任務相關的建模,在下游任務遷移學習中發揮更大作用。
2.6 ViTPose+使用MoE機制擴充套件多資料集
圖2 ViTPose+中的FFN-MoE結構
表5 ViTPose+效能比較
然而,不同的姿態估計資料集有不同的分佈,簡單通過單一模型來建模不同的姿態估計資料集會因為資料集之間的衝突造成各個資料集上的效能下降。例如,使用動物資料集和人體資料集進行聯合訓練會影響人體姿態估計效能(如表5中I-FFN所示)。為解決這一問題,ViTPose+模型探索了使用MoE機制來解決資料集衝突的問題,如圖2所示,經過注意力機制處理後的特徵會分塊輸入FFN模組中進行處理。經過自己資料集獨有的部分和各個資料集共用的部分處理後的FFN模組會拼接起來輸入到之後的模組中。如表5所示,這一機制超過了多工學習的基線方法(MT Baseline),並與使用獨立和共用FFN模組(IS-FFN)取得了相當的效果,但節省了更多的引數量。
表6 在MS COCO資料集上不同模型採用Top-down檢測正規化的效能
表7 在MS COCO資料集上不同模型採用Bottom-up檢測正規化的效能
如表6和表7所示,ViTPose在top-down和bottom-up兩種檢測方式下達到了和之前模型相當或者更好的效果。使用更多資料集聯合訓練的ViTPose+系列模型達到了更好的速度和效能的平衡,如ViTPose+-S模型在22M的引數量下達到了1439fps的速度和75.8 AP的準確度。這展示了使用簡單視覺transformer在姿態估計任務上的潛力和可能性。
圖3 MS COCO主觀結果展示
圖4 AI Challenger主觀結果展示
圖5 OCHuman主觀結果展示
圖6 MPII主觀結果展示
圖7 WholeBody主觀結果展示
圖8 動物主觀結果展示
如圖3-8所示,ViTPose+在多個姿態估計資料集和多種姿態估計任務上均可以得到優異的結果,較好的應對遮擋、截斷等多種富有挑戰性的場景。這充分展現了簡單的視覺transformer作為姿態估計基礎模型的潛力。
本文提出了ViTPose,通過使用簡單的視覺transformer進行特徵提取和簡單的解碼器的方式,在姿態估計任務上展現了簡單視覺transformer的簡單性,可延伸性,靈活性和可遷移性。通過使用MoE的機制解決資料集之間的衝突,ViTPose+系列模型在多個姿態估計資料集上重新整理了之前方法的最好結果,達到了新的SOTA和帕累託前沿。我們希望這個工作可以啟發更多基於簡單視覺transformer的工作來探索簡單視覺transformer在更多視覺任務上的可能性,並建立統一多個姿態估計任務的視覺基礎模型。
【文章】ViTPose:https://arxiv.org/abs/2204.12484或https://openreview.net/pdf?id=6H2pBoPtm0s
ViTPose+:https://arxiv.org/abs/2212.04246
【程式碼】https://github.com/ViTAE-Transformer/ViTPose
參考文獻:
[1] Yufei Xu, Jing Zhang, Qiming Zhang, and Dacheng Tao. "ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation." Neurips 2022.
[2] Yufei Xu, Jing Zhang, Qiming Zhang, and Dacheng Tao. "ViTPose+: Vision Transformer Foundation Model for Generic Body Pose Estimation." arXiv preprint arXiv:2212.04246 (2022). [3] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. "Deep residual learning for image recognition." CVPR 2016.
[4] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. "Imagenet: A large-scale hierarchical image database." CVPR 2009.
[5] Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva Ramanan, Piotr Dollár, and C. Lawrence Zitnick. "Microsoft coco: Common objects in context." ECCV 2014.
[6] Yuhui Yuan, Rao Fu, Lang Huang, Weihong Lin, Chao Zhang, Xilin Chen, and Jingdong Wang. "Hrformer: High-resolution vision transformer for dense predict." Neurips 2021.
[7] Yanjie Li, Shoukui Zhang, Zhicheng Wang, Sen Yang, Wankou Yang, Shu-Tao Xia, and Erjin Zhou. "Tokenpose: Learning keypoint tokens for human pose estimation." ICCV 2021.