馮 杰,鄭建立
(上海理工大學健康科學與工程學院,上海 200093)
fjie666@outlook.com;zhengjianli163@163.com
人體姿態估計(Human Pose Estimation,HPE)是計算機視覺中的一個重要任務,也是計算機理解人類動作和行為必不可少的一步。近年來,人體姿態估計正越來越多地應用于人們的日常生活,如在人機交互[1]和VR游戲領域對人體動作的捕捉[2],在安防領域對人體行為的分析[3](如智能監控、肢體對抗等),在運動和康復領域用于指導人的訓練[4]。由于人體在執行部分動作時軀體姿態變化較大,以及動作背景環境復雜、觀察角度的不確定,使人體姿態估計面臨很多挑戰,該領域正受到眾多學者的密切關注。
自2012 年AlexNet[5]網絡提出以來,深度學習得到蓬勃發展,給人體姿態估計領域帶來了新的發展驅動力。2014 年,計算機視覺領域首次成功引入卷積神經網絡解決單人姿態估計問題,在此后的很長一段時間內,基于卷積神經網絡的骨干結構一直是該領域內的主流方法。隨后,Transformer結構[6]在時序領域取得巨大成功,開始有研究者將其引入計算機視覺領域,基于Transformer結構的人體姿態估計算法成為新的研究熱點。本文從卷積神經網絡和基于Transformer結構的網絡兩個方面,對人體姿態估計算法做綜合性論述,并總結分析了兩種研究思路的優點和缺點。
人體姿態估計是指在視頻或者圖像中,對人體的關鍵點如肘部、手腕、膝蓋等進行定位,并且能夠計算得到各個關節點之間的最優連接關系。單人姿態估計是指給定預測圖像中只有單個人體或者固定數量的關節點。在深度學習被引入之前,傳統處理姿態估計的方法常常是基于圖結構模型[7]。圖結構模型存在人工設計特征困難、魯棒性低的問題,學者們發現基于深度學習不需要設計圖模型的拓撲結構和關節點之間的交互,具有更大的優勢。單人姿態估計可分為基于坐標回歸的方法、基于熱圖檢測的方法及混合模型方法。基于坐標回歸和基于熱圖檢測方法各有優劣,但由于基于坐標回歸方法在精度上具有較大的局限性,因此目前主流方法仍然是基于熱圖檢測。基于混合模型的方法,則是在一個算法中同時使用了前兩者監督模型學習。表1中列出以上三種方法的優點和缺點對比。

表1 單人姿態估計算法的對比Tab.1 Comparison of single-person estimation algorithms
多人姿態估計任務比單人姿態估計復雜,在圖像中含有數量不等的多個人體。算法不僅需要給出所有關節點,還需要預測不同關節點分屬的不同人體,即關節點分組的過程。目前,多人姿態估計主流方法為二步法,即必須經過兩個階段才能得到最終結果,二步法又分為自頂向下(Top-Down)和自底向上(Bottom-Up)兩種方法。自頂向下的方法需要先在圖像中檢測人體,再在單個人體局部區域內做單人的姿態估計。自底向上的方法和自頂向下的方法相反,其過程是先將圖像中所有關節點檢測出來,然后使用分組算法將同一個人體的關節點連接起來。除二步法外,還有較為新穎的單步法。
自頂向下和自底向上方法各有優劣,自頂向下比較直觀,但由于網絡中還包含目標檢測部分,因此運算效率不高。通常,需要高精度的場景,采用自頂向下的方法;對實時性要求比較高的場景,采用自底向上的方法。表2對兩種方法的優劣進行對比。

表2 自頂向下和自底向上方法的優劣對比Tab.2 Comparison of advantages and disadvantages of top-down and bottom-up methods
在單人姿態估計任務中,TOSHEV等[8]于2014 年首次將深度學習應用于人體姿態估計,并將其網絡結構命名為DeepPose;其研究基于坐標回歸的預測方法,從特征圖中直接預測關鍵點的坐標,使用平方差損失函數進行回歸計算損失值。DeepPose使用了一個級聯回歸預測,將訓練分為多個階段,以提高坐標回歸的準確度。初始階段得到粗略的坐標后,坐標點周圍的局部圖像被裁剪并送到下一個階段的訓練,學習更精細尺度的特征。這與目前流行的一些多尺度特征網絡的思想有共通之處。
即使DeepPose已經使用級聯回歸進行預測,但讓算法直接預測最終坐標值的做法對于模型來說仍然過于困難。這不僅是由于場景和人體動作的復雜多變,更是由于圖像特征和關節坐標值之間是高度的非線性關系,是一個復雜的學習任務。之后,SZEGEDY等[9]在GoogleNet的基礎上提出了誤差迭代修正(Iterative Error Feedback,IEF)[10]方式改進此問題。誤差迭代修正提出了通用型的修正回歸誤差方法,但是如何提高輸出坐標的準確度,仍然沒有行之有效的方法。TOMPSON等[11]較早地使用熱圖檢測的方法進行姿態預測。研究者發現,相比較于坐標回歸,基于熱圖檢測的方法能夠大幅度地提高算法對關節點的預測準確度。熱圖是由概率值代表的一副圖像,圖中像素點代表其為關節點的概率。此外,TOMPSON的研究貢獻在于討論了常規卷積神經網絡中使用的池化層和Dropout會造成空間關聯信息丟失,帶來位置精度損失的問題,尤其是在姿態估計這種精細化任務中,特別需要這種特征信息。近年來,有越來越多的研究者關注和論證池化層會帶來的信息丟失問題,不利于需要精確位置信息的任務。
之后,很多研究者大都從網絡模型結構上進行精巧設計,如卷積姿態機[12]使用多個全卷積結構[13]網絡預測關節的熱圖。NEWELL等[14]在2016 年提出Hourglass網絡,其中的沙漏堆疊結構表現優秀,擊敗了以往所有的模型,成為一個經典的結構。Hourglass使用池化層和上采樣構造沙漏形模塊,使用殘差結構將不同尺度特征進行融合,結合中間監督優化模型訓練(圖1)。

圖1 中間監督Fig.1 Intermediate supervision
基于Hourglass網絡,其他研究者還提出了許多變種網絡[15-16],ZHANG等[17]對沙漏接口進行精簡,提出輕量級沙漏網絡,配合知識蒸餾降低模型復雜度,將知識從大型教師網絡遷移到輕量級網絡中。以上研究都基于一個思路,即設計復雜或者精巧的結構,期望用復雜結構進行姿態估計問題中的高度非線性擬合。XIAO等[18]提出簡單基線網絡,認為提高算法效果不一定要依賴復雜結構,XIAO的研究旨在提出一種簡單的網絡結構降低算法復雜度。簡單基線網絡如圖2所示,算法通過常規順序堆疊卷積層進行特征提取,使用反卷積進行分辨率的復原。

圖2 簡單基線網絡Fig.2 Simple baselines network
簡單基線網絡雖然網絡結構簡單,但是非常有效,能提示研究人員的網絡學習能力已經飽和,另有影響算法表現的因素存在。2019 年,微軟團隊提出高分辨率網絡(High-Resolution Network,HRNet)[19],研究認為不管使用池化層還是其他形式的圖像下采樣,降低分辨率的同時都會丟失特征,而高分辨率網絡在基線上不需要降低分辨率,而是通過并行的子網分支下采樣,通過不同尺度的感受野得到圖像特征后,上采樣疊加回基線分支進行交叉融合信息;其模型結構如圖3所示,該結構目前仍然有優異的表現。

圖3 高分辨率網絡Fig.3 High-resolution network
在多人姿態估計任務中,自頂向下方法對人體檢測器依賴較大,需要準確得到單個人體局部圖像。目前,大量的研究都集中在人體檢測器上,針對多人姿態領域進行優化,希望得到高質量的檢測框,其中對非極大值抑制的策略改進是眾多論文的研究方向。FANG等[20]提出區域多人姿態估計框架(Regional Multi-person Pose Estimation,RMPE),使用Faster R-CNN作為人體檢測器,設計對稱式變壓器網絡獲取高精度的人體檢測框,同時提出參數姿態非極大值抑制(P-Pose NMS)策略對冗余的檢測框進行過濾,在檢測框中配合沙漏堆疊網絡進行單人姿態估計。谷歌團隊將非極大值抑制與人體關節點評價指標關鍵點相似度(Object Keypoint Similarity,OKS)相結合,提出G-RMI[21]網絡。不同于參數姿態非極大值抑制直接使用歐式距離進行過濾,OKP算法使用人體的尺度信息對臨近的關節點間進行歐氏距離的修正,計算其檢測框的相似度。同時,級聯金字塔網絡(Cascaded Pyramid Network,CPN)[22]算法也驗證了不同非極大值抑制策略對于人體檢測質量的影響。
采用自底向上方法時,如何將所有關節點進行分組并聯接得到人體拓撲結構是關鍵。CAO等[23]提出OpenPose網絡是一種典型的自底向上的方法,OpenPose采用經典VGG-19作為主干網絡提取特征,將特征輸入到一個雙分支網絡,其中一個分支獲取所有關節點熱圖,另一個分支獲取部件親和場(Part Affinity Fields,PAFs),部件親和場能將關節點進行分組和連接。PAPANDREOU等[24]提出多任務網絡PersonLab,采用殘差網絡預測關節點熱圖,關節點偏移量及人體實例分割的掩模,利用基于樹形運動學圖的貪婪解碼算法將關鍵點分組到人體檢測實例中。
NEWELL等[25]提出關聯嵌入標簽算法,能夠以端到端的方式對關節點進行檢測和分組;其基本思想是為每次檢測引入一個實數,用作識別對象所屬組的“標簽”,標簽將每個檢測與同一組中的其他檢測相關聯。NEWELL使用損失函數促使相同組的標簽具有相似的值。
C H E N G 等[26]在高分辨率網絡的基礎之上,提出HigherHRNet,結合關聯嵌入標簽算法對關節點進行分組。NIE等[27]于2019 年提出單階段人體姿態器,它是一種新穎的單步法的多人姿態估計器,簡化了人體估計的流程。本文提出了一種新的結構化關節的坐標表示方法,它首先使用根節點將人體進行基礎的檢測和定位,然后將關節點表示距離人體根節點的偏移。
以上經典的算法都基于卷積結構,同時有研究對熱圖損失進行分析。一般熱圖大小為原圖的多倍下采樣,從熱圖中取第一極大值并映射回原圖坐標時,存在數學期望上的偏差。分布坐標感知(Distribution-Aware coordinate Representation of Keypoint,DarkPose)[28]和無偏數據處理(Unbiased Data Processing,UDP)[29]等算法對數據進行無偏處理,得到更精確的預測坐標,可無縫嵌入各種姿態估計模型中使用。
Transformer是目前的熱點研究方向。2020 年,視覺自注意力模型(Vision Transformer,ViT)首次將Transformer結構引入計算機視覺領域。ViT將圖像切分為N×N大小的局部圖像塊作為序列,經過維度轉換后傳入Transformer模塊,得到最終的輸出特征。這種簡單的切分圖像作為序列輸入的方式在小數據集上與同等規模的卷積神經網絡相比并未取得最優秀的表現,但是在大數據集上的訓練能得到出色的結果。這種結果是可預期的,Transformer缺乏卷積結構固有的平移不變性和局部特征性,因此當數據量不足時不能很好地擬合。針對這種原始Transformer參數量大和效果不佳的問題,有許多研究做出了改進。其中,移動窗口自注意力模型(Shift Windows Transformer,Swin-Transformer)[30]通過劃分小窗口進行局部自注意力減少參數量,通過窗口滑動進行信息交換的方式,在各大任務中均超越卷積神經網絡取得了頂尖的成績。
使用Transformer進行人體姿態估計的研究目前不多,其中姿態估計自注意力(Pose Estimation Transformer,PEFormer)與ViT結構相似,將圖像切片后送入Transformer,但這種簡單的設計使其效果并未達到領先水平。還有的研究將卷積結構與Transformer混合使用,例如直接自注意力估計算法(Transformer Pose,TFPose)[31]使用卷積神經網絡作為骨干網絡提取圖像特征后,將特征添加位置嵌入輸入Transformer模塊,經過“編碼—解碼”結構的設計,得到最終的關節點輸出。值得一提的是,TFPose并未使用常用的熱圖輸出,而是直接對關節點坐標進行回歸預測,其結構如圖4所示。與TFPose相同,TransPose也是卷積與Transformer結合的網絡設計,但是使用熱圖進行監督學習,使其效果優于TFPose。而高分辨率自注意力模型(High-Resolution Transformer,HRFormer)則基于高分辨率網絡(High-Resololution Network,HRNet)骨干網絡,將主體的卷積替換為Transformer結構,為了減少參數量,與Swin-Transformer類似,將特征圖劃分窗口進行自注意力學習,取得了不錯的效果。

圖4 TFPose網絡Fig.4 TFPose network
LI等[32]提出的基于級聯Transformer的姿態識別(Pose Recognition with TRansformer,PRTR)研究構建了一個端到端可訓練的自頂向下的多人姿態估計算法。該研究在網絡內構建了人體檢測器,并基于此人體檢測器得到的檢測框進行后續的關鍵點預測,算法中的人體檢測器和關鍵點預測網絡都是由Transformer構成的;而基于Transformer的自底向上的類型算法目前仍較少。
目前,人體姿態估計領域內有許多公開的數據集,涵蓋了單人的估計任務和多人的估計任務。其中,MPII數據集中既含有單人樣本也包括多人樣本;而像微軟COCO競賽數據集的樣本數已經超過了30萬張,是多人估計領域的一個重要數據集。表3和表4給出了常見的公開數據集。

表3 單人姿態估計數據集Tab.3 Single-person pose estimation dataset

表4 多人姿態估計數據集Tab.4 Multi-person pose estimation dataset
對于如何評估算法的表現,常用的有4 個評估指標。①PCK:正確關鍵點的百分比。給定某一閾值,預測關節點與真實關節點的距離在閾值內的,視為正確。②PCP:正確部位百分比。兩個預測關節點構成的肢體部位,與真實肢體關節距離在特定的閾值內的,視為正確。③PDJ:檢測到的關節百分比。預測關節和真實關節之間的距離,在軀干直徑某一百分比范圍內。④OKS:對象關節點相似度。COCO關鍵點挑戰競賽采用這一評估指標。其中,OKS的計算公式見公式(1):
表5給出一些單人姿態估計算法在MPII數據集上的實驗結果對比,以0.5閾值的PCK為評估指標,計算所有類型關節點的平均精度。表6給出一些多人姿態估計算法在COCO數據集上的實驗結果對比,以OKS為評價指標,計算所有類型關節點的平均精度。

表5 單人姿態估計算法在MPII數據集上的表現Tab.5 Results of single-person pose estimation algorithm on dataset MPII

表6 多人姿態估計算法在COCO數據集上的表現Tab.6 Results of multi-person pose estimation algorithm on dataset COCO
從表5中可以看出,沙漏(Hourglass)網絡憑借其獨特的結構在算法表現上取得了較大的突破,MPII數據集中的平均精確度突破90%。之后其他研究中的網絡結構大體上保留“下采樣—上采樣”的沙漏形的設計痕跡,如簡單基線網絡整體上可視為一個沙漏形。這種兩頭大中間小的模型設計,在卷積神經網絡的維度設計中也運用廣泛,稱之為瓶頸(Bottleneck)結構,其特點是首先通過卷積降低維度,然后進行常規的卷積,再使用卷積將維度升高還原。近年來,出現了逆瓶頸層的設計,通過先升高維度提取更多特征后再降低維度。逆瓶頸層的結構在姿態估計中是否能起到效果,是一個值得探討的問題。HRNet相比其他算法,表現更優異,這在很大程度歸因于其網絡全程保持與熱圖一致的高分辨率,也證明了特征圖的分辨率對預測結果具有較大影響。
人體姿態估計自頂向下的方法優于自底向上方法在前文已做介紹,從表6中可以看出自底向上方法指標與自頂向下方法的指標相比仍有較大差距,其主要原因是自頂向下的方法經過檢測器后得到單個人體圖像,可以視為帶有先驗知識,即局部圖像中的人體關節具有某種拓撲連接規律,如頭部之下為肩頸等。這種全體樣本都具備的特征規律能夠很好地指導算法學習,得到準確的關節點。自底向上方法由于需要先檢測圖像中所有關節點,在圖像人體數量眾多的情況下喪失了這種先驗知識,加之關節點分布凌亂,導致誤檢率、漏檢率較高。如何將人體拓撲結構這種先驗知識帶入自底向上的方法,也是一個值得研究的方向。
Transformer在姿態估計中的應用仍然是一個新的研究方向,從表6中可以看出,基于Transformer方法的指標表現與基于卷積方法的指示表現大致持平。HRFormer在HRNet的基礎上,將卷積替換成Transformer結構后,僅帶來準確率的微小提升。Transformer本身是在時序領域提出的,雖然目前在圖像分類領域成為最先進的結構,但是在特定視覺任務姿態估計中,語義分割等未取得突破性的提升。視覺任務的特征本身在空間域的相關性較高,簡單地將其空間展開后模擬成時間域并不能很好地捕捉其特征關系,梳理與處理這兩者間的轉化,或許能成為Transformer提升姿態估計表現的關鍵。近期,有研究開始回歸卷積神經網絡本身,Facebook的存粹卷積模型(ConvNeXt)僅憑借卷積結構和其他算法的設計細節結合,便在大規模視覺識別挑戰賽(Large Scale Visual Recognition Challenge,ILSVRC)圖像分類數據集上達到了目前最好的Top-1的準確率。基于此,卷積與Transformer,誰更有潛力,開始成為研究者討論的熱點。
綜上所述,人體姿態估計領域依托于深度學習的發展,展現出了巨大的潛力和優異的表現。目前,基于卷積結構的算法具有簡單、高效的優點,仍是該領域最具競爭力的算法,基于Transformer結構的新穎算法有著巨大的發展潛力。算法精度與執行速度兼顧的平衡將會是該領域的研究重點,未來隨著深度學習基礎性理論的發展,將會誕生更高效的模型和研究成果。