李崤河,劉進(jìn)鋒
(寧夏大學(xué)信息工程學(xué)院,銀川750021)
人體姿態(tài)估計長久以來一直是計算機(jī)視覺領(lǐng)域的一個熱點(diǎn)問題。其主要內(nèi)容,是讓計算機(jī)從圖像或視頻中定位出人物的關(guān)鍵點(diǎn)(也稱為關(guān)節(jié)點(diǎn),如肘、手腕等)。人體姿態(tài)估計作為理解圖像或視頻中人物動作的基礎(chǔ),一直受到眾多學(xué)者的關(guān)注。隨著計算機(jī)技術(shù)的迅猛發(fā)展,人體姿態(tài)估計已經(jīng)在動作識別、人機(jī)交互、智能安防、增強(qiáng)現(xiàn)實等領(lǐng)域獲得了廣泛應(yīng)用。
人體姿態(tài)估計按維度可分為二維和三維兩種:二維人體姿態(tài)估計通常使用線段或者矩形來描述人體各關(guān)節(jié)在圖像上的投影位置,線段的長度和角度表示了人體的二維姿態(tài);三維人體姿態(tài)估計通常使用樹模型來描述估計的姿態(tài),各關(guān)節(jié)點(diǎn)的位置使用三維坐標(biāo)確定。在實際應(yīng)用中,目前獲取的大多數(shù)圖像仍是二維圖像,同時三維姿態(tài)估計可以使用二維預(yù)測進(jìn)行推理[1],所以二維姿態(tài)估計有著重要的研究價值。
自人體姿態(tài)估計的概念提出以來,國內(nèi)外的學(xué)者對此做出了不懈的努力。傳統(tǒng)的姿態(tài)估計算法主要是基于圖結(jié)構(gòu)(Pictorial Structures)模型[2]。該模型將人或物體表示為多個部件的集合,這些部件之間含有空間約束,通過人工指定的特征檢測組件實現(xiàn)關(guān)節(jié)點(diǎn)檢測。傳統(tǒng)方法過于依賴手工設(shè)計的模板,難以應(yīng)付復(fù)雜的姿態(tài)變換并且推廣到多人姿態(tài)估計。
隨著深度學(xué)習(xí)技術(shù)在計算機(jī)視覺領(lǐng)域大放異彩,部分學(xué)者開始研究如何利用深度學(xué)習(xí)來解決人體姿態(tài)估計問題。Toshev 等人利用深度卷積神經(jīng)網(wǎng)絡(luò)對人體姿態(tài)進(jìn)行全局推斷,提出了完全基于神經(jīng)網(wǎng)絡(luò)的模型DeepPose[3]。DeepPose 是第一個將深度學(xué)習(xí)方法應(yīng)用于人體姿態(tài)估計的主要模型。該模型實現(xiàn)了SOTA 性能并擊敗了當(dāng)時的傳統(tǒng)模型。之后,越來越多基于深度學(xué)習(xí)的人體姿態(tài)估計方法相繼提出。
本文總結(jié)了近幾年來二維人體姿態(tài)估計的發(fā)展歷程,從早期的基于模板匹配算法到目前的基于深度學(xué)習(xí)的姿態(tài)估計算法,分析比較相關(guān)算法的優(yōu)缺點(diǎn)及性能,并結(jié)合現(xiàn)有問題對未來發(fā)展進(jìn)行了展望。
早期的人體關(guān)鍵點(diǎn)檢測算法基本都是在幾何先驗的基礎(chǔ)上基于模板匹配的思路進(jìn)行的,其中Fischler[2]于1973 年提出的圖結(jié)構(gòu)是其中一個較為經(jīng)典的算法思路。它將物體表示為多個部件的集合,部件之間具有一定的空間約束。2005 年,F(xiàn)elzenszwalb 和Huttenlocher[4]將圖結(jié)構(gòu)歸入統(tǒng)計學(xué)的框架,并假設(shè)各個部件之間服從樹形結(jié)構(gòu)。這極大地降低了計算復(fù)雜度,使圖結(jié)構(gòu)在人體姿態(tài)估計領(lǐng)域得到了很好的應(yīng)用。此后,一系列基于圖結(jié)構(gòu)的人體姿態(tài)估計算法被提出。
圖結(jié)構(gòu)主要包含兩個部分,其一是部件模型(Part Model),用于描述組成物體的各個部件;其二是空間模型(Spatial Model),用于描述各個部件之間的空間關(guān)系。大多數(shù)的研究致力于尋找表達(dá)能力更強(qiáng)的部件模型和空間模型來提高姿態(tài)估計的準(zhǔn)確率。
與早期方法相比,部件模型中使用了表達(dá)能力更強(qiáng)的圖像特征,例如,HOG[5]和SIFT[6]特征。Ramanan 從圖片中提取具有表達(dá)能力的模板來解決關(guān)節(jié)匹配問題。此外,前景分割技術(shù)也被集成到姿態(tài)估計中[7],更具判別性的部件檢測器被訓(xùn)練出來用于姿態(tài)估計[8]。
空間模型方面,非樹形結(jié)構(gòu)的模型被提出,用于解決人體姿態(tài)估計中的自遮擋問題[9]。Yang 和Ramanan[10]提出的混合部件(Mixtures of Parts)模型能夠表達(dá)更為復(fù)雜多樣的空間約束。該模型包含多種對姿態(tài)估計非常重要的信息,例如,部件的幾何形變約束、部件的外觀信息等。除了關(guān)注兩個部件之間的空間約束,也有一些工作關(guān)注更大范圍的約束。例如,用于上半身姿態(tài)估計的Armlet[11]和用于整體姿態(tài)估計的Poselet[12]。
利用Design-Expert8.0Trial數(shù)據(jù)處理軟件中ANOVA程序?qū)Ρ?的試驗結(jié)果進(jìn)行二次回歸分析,計算出方程各項系數(shù)并進(jìn)行方差分析,可得2個因子與Y之間的回歸方程:Y=99.21+2.22A-1.45B+0.95AB-1.22A2-1.12B2。
傳統(tǒng)的姿態(tài)估計算法依賴于物體的外觀特征,如紋理、邊緣、顏色、前景輪廓或手工設(shè)計的局部特征,有一定的局限性。卷積神經(jīng)網(wǎng)絡(luò)的提出極大地促進(jìn)了計算機(jī)視覺技術(shù)的發(fā)展。隨著Toshev 等人提出Deep-Pose 網(wǎng)絡(luò)[3],人體姿態(tài)估計的研究開始從經(jīng)典方法轉(zhuǎn)向深度學(xué)習(xí)方法。近幾年提出的姿態(tài)估計算法普遍采用ConvNets 作為模型的主要構(gòu)建單元,這一策略極大地提升了姿態(tài)估計的準(zhǔn)確率。
基于深度學(xué)習(xí)的人體姿態(tài)估計主要分為單人姿態(tài)估計和多人姿態(tài)估計兩個方向。單人姿態(tài)估計指輸入圖像中只包含一個人物,算法的主要任務(wù)是檢測出該目標(biāo)的所有關(guān)鍵點(diǎn)。多人姿態(tài)估計的輸入圖像中包含不定數(shù)量的人物,該研究方向更適用于實際場景。同時,多人姿態(tài)估計不光要檢測出圖像中所有的關(guān)鍵點(diǎn),還要對關(guān)鍵點(diǎn)進(jìn)行聚類,將同一個人的關(guān)鍵點(diǎn)分配到一起。
(1)相關(guān)算法
Toshev[3]將姿態(tài)估計設(shè)計為一個基于神經(jīng)網(wǎng)絡(luò)的人體關(guān)節(jié)點(diǎn)回歸問題。與基于圖模型的方法相比,該方法不需要顯式地設(shè)計出部件的特征表示和部件檢測器,也不需要顯式地設(shè)計出模板間的拓?fù)潢P(guān)系。更進(jìn)一步,作者使用了基于神經(jīng)網(wǎng)絡(luò)的級聯(lián)回歸器。這種級聯(lián)回歸器能夠增加關(guān)節(jié)點(diǎn)定位的精度。Carreira[13]針對前饋神經(jīng)網(wǎng)絡(luò)不能很好地對輸出空間中的依賴關(guān)系進(jìn)行有效建模問題,提出了一個自校正模型——迭代錯誤反饋(Iterative Error Feedback),該模型通過反饋錯誤預(yù)測逐步調(diào)整初始預(yù)測。同時,一部分學(xué)者[14-15]將圖結(jié)構(gòu)作為人體先驗知識加入神經(jīng)網(wǎng)絡(luò)模型中,借此提高模型的學(xué)習(xí)能力。
2015 年之前的主要方法將關(guān)節(jié)點(diǎn)直接回歸到精確的坐標(biāo)點(diǎn)(x,y),這增加了學(xué)習(xí)復(fù)雜度,降低了模型的泛化能力,因此在某些場景表現(xiàn)很差。隨后,Tompson[16]對網(wǎng)絡(luò)模型進(jìn)行了改進(jìn)。該網(wǎng)絡(luò)輸出低分辨率、逐像素的熱圖,熱圖描述了該部件可能位置的概率分布,而不是直接回歸預(yù)測關(guān)節(jié)點(diǎn)坐標(biāo),提高了關(guān)節(jié)點(diǎn)定位的魯棒性。然后將各部件位置的概率分布作為先驗輸入“位置細(xì)化”模型計算出部件的最終位置。這種輸出模型非常成功,許多后續(xù)的論文都采用了這種方法。
為了增強(qiáng)網(wǎng)絡(luò)模型對不可見關(guān)節(jié)點(diǎn)的預(yù)測能力,Tompson[14]和Yang[17]將圖模型應(yīng)用到神經(jīng)網(wǎng)絡(luò)中。同時,部分學(xué)者通過構(gòu)建多階段CNN 回歸模型[18-20],增加網(wǎng)絡(luò)的感受野,以此提高模型的預(yù)測能力。例如,Wei[18]提出的卷積姿態(tài)機(jī)(Convolutional Pose Machine)可以同時學(xué)習(xí)圖像特征和依賴于圖像的空間模型;Newell[19]構(gòu)造的經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu)——堆疊沙漏網(wǎng)絡(luò),可以更好地混合全局和局部信息。
(2)性能比較
表1 單人姿態(tài)估計算法性能對比
單人姿態(tài)估計的輸入圖像中僅包含單個目標(biāo),算法只需要確定單人的關(guān)鍵點(diǎn)坐標(biāo)即可,應(yīng)用場景簡單。而多人姿態(tài)估計需要確定圖像中不定數(shù)量人體的關(guān)鍵點(diǎn)坐標(biāo),同時將同一個人的關(guān)鍵點(diǎn)聚類到一起,算法更為復(fù)雜。目前,多人姿態(tài)估計有兩種主流的研究方法:自頂向下(Top-Down)和自底向上(Bottom-Up)。
(1)基于自頂向下的方法
該類方法的基本思路是先使用目標(biāo)檢測算法檢測出多個人,再對每個人應(yīng)用單人姿態(tài)估計。該方法的精度依賴于目標(biāo)檢測算法的輸出精度和單人姿態(tài)估計的精度。同時,多人圖像中遮擋問題更加嚴(yán)重,如何準(zhǔn)確預(yù)測出不可見關(guān)節(jié)點(diǎn)是多人姿態(tài)估計中的一個重要研究方向。
Papandreou[29]構(gòu)建了一個二階段網(wǎng)絡(luò),其中第一階段使用Faster R-CNN 檢測出可能包含人物的區(qū)域,第二階使用全卷積殘差網(wǎng)絡(luò)預(yù)測每個人的關(guān)節(jié)點(diǎn)坐標(biāo)。作者在第二階段引入了兩個偏移參數(shù)來提高關(guān)節(jié)點(diǎn)的預(yù)測精度。Chen 等人[30]通過將第一階段網(wǎng)絡(luò)得到的所有層次特征整合到一起,并結(jié)合在線困難關(guān)鍵點(diǎn)挖掘(Online Hard Keypoint Mining)技術(shù),著重于“困難”關(guān)鍵點(diǎn)的檢測。針對自頂向下方法可能會產(chǎn)生的檢測框定位誤差以及對同一個目標(biāo)重復(fù)檢測等問題,F(xiàn)ang[31]提出了RMPE(Regional Multi-person Pose Estimation)框架。其中,SSTN(Symmetric Spatial Transformer Network)網(wǎng)絡(luò)可以從一個不準(zhǔn)確的目標(biāo)框中提取高質(zhì)量的單人區(qū)域;參數(shù)化的姿態(tài)非極大值抑制算法用于消除冗余位姿。
(2)基于自底向上的方法
該類方法主要包含兩部分,關(guān)鍵點(diǎn)檢測和關(guān)鍵點(diǎn)聚類。其中,關(guān)鍵點(diǎn)檢測需要將圖片中所有類別的所有關(guān)鍵點(diǎn)全部檢測出來,然后對這些關(guān)鍵點(diǎn)進(jìn)行聚類,將不同人的不同關(guān)鍵點(diǎn)連接到一起,從而聚類產(chǎn)生不同的個體。這方面的論文主要側(cè)重于對關(guān)鍵點(diǎn)聚類方法的探索。
Cao 等人[32]使用向量場對人體的不同肢體結(jié)構(gòu)進(jìn)行建模,解決了單純使用肢體中間點(diǎn)產(chǎn)生的錯連問題。Xia[33]則采用部位分割的思想對關(guān)鍵點(diǎn)間的關(guān)系進(jìn)行建模,該方法既可以顯示的提供人體關(guān)鍵點(diǎn)之間的空間先驗知識,同時也對關(guān)鍵點(diǎn)的聚類產(chǎn)生輔助作用。Newell 等人[34]提出了一個單階段的端到端多人姿態(tài)估計網(wǎng)絡(luò),通過使用高維空間向量來編碼不同人體的不同關(guān)鍵點(diǎn)之間的關(guān)系,實現(xiàn)了檢測和分組同步進(jìn)行。
(3)性能比較
多人姿態(tài)估計的基準(zhǔn)數(shù)據(jù)集主要有MPII 多人數(shù)據(jù)集[21]和MSCOCO 關(guān)鍵點(diǎn)數(shù)據(jù)集[35]。評價指標(biāo)主要為mAP。表2 展示了多人姿態(tài)估計算法在MPII 多人數(shù)據(jù)集上的性能比較。
表2 多人姿態(tài)估計算法性能對比
由于人體姿態(tài)的多變性,以及受人物著裝、自遮擋、復(fù)雜背景和相機(jī)視角等多重因素影響,人體姿態(tài)估計一直是計算機(jī)視覺領(lǐng)域的一大挑戰(zhàn)。本文對二維人體姿態(tài)估計算法進(jìn)行了簡單回顧,較為詳細(xì)地介紹了姿態(tài)估計的分類以及幾種常見算法。雖然深度學(xué)習(xí)極大地促進(jìn)了人體姿態(tài)估計的進(jìn)步,但如何更好地利用人體姿態(tài)先驗知識,將人體模型融合到神經(jīng)網(wǎng)絡(luò)中;如何在保證高精度的條件下提高模型處理速度以及如何利用關(guān)鍵點(diǎn)檢測技術(shù)進(jìn)行人體行為分析、姿態(tài)預(yù)測,都是亟需解決的問題。