劉圣杰,何寧,于海港,王程,韓文靜
(1.北京聯合大學 北京市信息服務工程重點實驗室,北京 100101;2.北京聯合大學 機器人學院,北京 100101;3.北京聯合大學 智慧城市學院,北京 100101)
人體姿態(tài)估計又稱人體關鍵點檢測,其目的是根據圖像、視頻等輸入數據來定位人體部位并建立人體表征(如人體骨骼)。近年來,人體姿態(tài)估計引起了很多研究人員的關注,已成為計算機視覺的基本任務之一,廣泛應用于人機交互、運動分析、增強現實、虛擬現實等領域[1]。深度學習在人體關鍵點檢測任務中取得了顯著效果,但是其存在訓練數據不足、模糊、遮擋等問題,因此,解決人體姿態(tài)估計問題仍然面臨較大挑戰(zhàn)[2]。
人體關鍵點檢測可以分為基于2D 和基于3D 的兩類方法。2D 人體關鍵點檢測又可以分為單人關鍵點檢測和多人關鍵點檢測兩種類別。
單人關鍵點檢測研究主要在MPII 數據集上展開:WEI等[3]提出CPM,將深度學習應用于人體姿態(tài)估計任務,其網絡結構中設計多個stage,同時用卷積層表達紋理信息和空間信息,提高了關鍵點檢測的效果;NEWELL等[4]提出Hourglass 網絡,其延續(xù)了多stage 結構設計,且結構中包含不同尺度的信息,通過不同stage 來保留不同的關鍵點信息,進一步提升了檢測效果;BULAT等[5]改進了Hourglass 網絡結構,提出更高效準確的跳躍連接網絡,在MPII 數據集上其平均精度(AP)值高達94.1%。
多人姿態(tài)估計又稱多人關鍵點檢測,主要有自上而下和自下而上兩種方法。自上而下的方法分為目標檢測和單人人體關鍵點檢測兩個階段。目標檢測部分采用經典的目標檢測算法從輸入圖像中檢測單個人體,然后將檢測到的結果進行裁剪并實現單人人體關鍵點檢測。但是自上而下的方法主要存在3 個難點:關鍵點局部信息較弱,容易與背景信息混淆,因此,需要較大的感受野來區(qū)分關鍵點和背景信息;不同關鍵點的檢測和區(qū)分難度不同,較難檢測的關鍵點要區(qū)別對待;自上而下的人體關鍵點定位依賴于前一階段的目標檢測結果。FANG等[6]提出的RMPE 方法針對檢測框定位誤差、相同物體重復檢測等問題,通過空間變換網絡調整裁剪區(qū)域。CHEN等[7]提出的CPN 設計兩個階段的網絡,通過特征金字塔檢測簡單關鍵點,再通過RefineNet 檢測較難關鍵點。LI等[8]提出的MSPN 延續(xù)了Refine 的思想,在多階段重復的上采樣和下采樣過程中,采用coarse-Fine 中間監(jiān)督的方式進一步優(yōu)化了人體關鍵點檢測效果。QI等[9]提出的SSN 針對相同關節(jié)相似度較高而難以區(qū)分的問題,設計特征移動模塊來補充空間信息,提高了近似關節(jié)點的檢測精度。SUN等[10]提出的HRNet 由并行的從高到低分辨率子網組成,在不同分辨率子網間進行信息交換,保證網絡中的高分辨率表征,提高了中小尺度人物的檢測效果。自上而下的方法對人體檢測框具有依賴性,對尺度信息不敏感,且多人圖像中每個人體都需要人體檢測框進行檢測,導致計算量較高,使得該類方法很難應用于實時的人體姿態(tài)估計任務。
自下而上的方法分為關鍵點檢測、關鍵點聚類這兩個階段。關鍵點檢測和單人關鍵點檢測方法基本相同,區(qū)別在于自下而上的方法需要全部檢測出輸入圖像所有類別中的所有關鍵點,然后通過聚類處理,將關鍵點進行聚類以組合成不同的人體。自下而上方法的難點在于關鍵點聚類過程,即高效準確地構建不同關鍵點之間的關系。CAO等[11]提出的OpenPose 設計PAF 方法,使檢測到的關鍵點迅速組合成單個人體,提高了人體姿態(tài)估計的效率。HIDALGO等[12]對OpenPose 中的方法進行改進,提高了其在多人場景中的運行速度,并進一步解決了遮擋問題。
對于2D 圖像,現有網絡對小尺度人物檢測效果較差,進而影響網絡整體的檢測效果。通過大量實驗發(fā)現,特征圖多次上采樣和下采樣導致分辨率越低的分支越少保留位置信息和通道信息,很難捕獲位置信息和通道信息之間的關系,且最小分辨率分支由于感受野較小而更關注局部信息,對全局信息提取能力不足。針對以上問題,本文提出一種改進的人體關鍵點檢測網絡CASANet(Coordinated Attention Self-Attention Network),采用CA 模塊提升位置信息和通道信息的提取效果,使用自注意力模塊在低分辨率特征圖上捕獲位置和通道之間的關系,最后在COCO 數據集上驗證CASANet 的有效性。
在當前的人體姿態(tài)估計研究中,HigherHRNet[13]、DEKR[14]等骨干網絡主要采用高分辨率的網絡,因為高分辨率網絡能夠提高局部關節(jié)點信息的提取效果,所以本文選取常用的高分辨率網絡HRNet 作為基礎網絡。HRNet 由于其特殊的結構而被廣泛應用于姿態(tài)估計、目標檢測、語義分割等視覺任務中,并獲得了顯著的效果。HRNet 的結構不同于傳統的串聯結構,傳統串聯網絡結構僅將不同分辨率的特征圖以串聯的形式連接,難以融合不同分辨率特征圖的信息,導致關鍵點檢測效果較差。傳統串聯網絡結構如圖1 所示。
圖1 傳統串聯網絡結構Fig.1 Traditional serial network structure
高分辨率網絡采用并聯的方式實現不同分辨率特征圖之間的信息融合,通過多次跨并行卷積進行多尺度特征融合,從而增強高分辨率的特征信息,使整個網絡保持高分辨率表示,提升人體關鍵點檢測的準確率。HRNet 的網絡結構分為4 個階段,每個階段均包含不同分辨率的特征,第一階段包含1/4 分辨率的特征,第二階段包含1/4、1/8 分辨率的特征,第三階段包含1/4、1/8、1/16 分辨率的特征,第四階段包含1/4、1/8、1/16、1/32 分辨率的特征。每個階段內包含的不同特征通過transition 進行融合,從而保證網絡中的高分辨率信息。簡略的HRNet 網絡結構如圖2 所示。
圖2 HRNet 網絡結構Fig.2 HRNet network structure
近年來,注意力機制[15-16]被廣泛應用于圖像分類、圖像分割等計算機視覺任務,且取得了優(yōu)異的效果。注意力機制最初主要用于人類視覺研究,一些學者在進行人類視覺研究時發(fā)現,人在觀察某些事物時會首先關注一些具有區(qū)分性的重要信息而忽略其他相關信息,通過進一步研究發(fā)現這是一種信號處理機制,人工智能領域的研究人員將其引入到一些模型中,提高了模型的性能表現。目前,注意力機制已經在深度學習領域占據重要位置,成為該領域應用最廣泛的組件之一。
注意力機制依照注意力域進行劃分,可分為通道域注意力、空間域注意力和混合域注意力三大類:通道域注意力主要為不同通道劃分不同的注意力權重,提高了重要通道對網絡的影響;空間域注意力為特征圖的每個像素空間位置分配不同的權重,保留了重要的空間特征;混合域注意力包含以上兩種注意力。HU等[17]提出的SENet 通道注意力的主要思路是壓縮每個2D 特征圖,有效建立通道間的相互依賴關系。WOO等[18]提出的CBAM 通過使用大尺寸的卷積核引入空間信息編碼,進一步推進了SENet的應用。后來出現的許多注意力機制,如GENet[19]、GALA[20]、AA[21]、TA[22]等,都使用了不同的空間注意力機制或設計不同結構的注意力塊,擴展了SENet的思想。
自注意力機制是注意力機制的改進,其減少了對外部信息的依賴,更擅長捕捉數據或特征的內部相關性,比較典型的自注意力機制包括NLNet[23]、GCNet[24]、A2Net[25]、SCNet[26]、GSoP-Net[27]、CCNet[28],所有這些都利用自注意力機制來捕獲不同類型的空間信息。然而,自注意力模塊內部的計算量較大,可能會給網絡增加一定的復雜度。
本文對主干網絡中的特征傳遞過程進行研究,發(fā)現通過下采樣獲取到低分辨率分支的特征圖中缺失位置信息和通道信息,而這些信息對熱圖的生成具有重要作用,進一步影響到關鍵點檢測的準確率。為解決下采樣過程中的信息丟失問題,本文引入CA模塊提高對位置信息和通道信息的獲取能力,降低下采樣操作所帶來的影響。引入自注意力模塊捕獲位置信息和通道信息的內部相關性,提高網絡對信息的敏感性。
人體關鍵點檢測的主干網絡多采用多階段的不同分辨率網絡結構,主體采用下采樣的方式獲得低分辨率的特征圖,再通過上采樣的方式恢復到原分辨率。多次下采樣和上采樣會導致位置信息和通道信息丟失,致使預測生成熱圖和標簽生成熱圖有較大偏差。本文引入2 個模塊解決以上問題:
1)CA 模塊,該模塊可以更好地捕獲通道信息和位置信息,降低采樣過程中的信息丟失,從而保證熱圖預測的準確性。
2)自注意力模塊,該模塊可以捕獲通道信息和位置信息的內部聯系,使得網絡對不同特征的信息具有更好的區(qū)分度。
本文在上述2 個模塊的基礎上進行不同分辨率特征的融合,從而實現更好的預測效果。
本文采用HRNet 作為骨干網絡,但是HRNet 網絡結構中存在一些缺陷,低分辨率的分支對于通道信息和位置信息有一定缺失。本文設計的CASANet網絡結構主要在1/16 分辨率特征后加入CA 模塊,進一步對通道信息和位置信息進行提取,將提取到的信息作為下一階段網絡的輸入。在1/32 的分辨率下捕獲通道信息和位置信息之間的關系,將捕獲到的信息作為下一階段網絡的輸入。通過這2 個模塊提取的信息能夠克服主干網絡自身的問題,提高網絡對人體關鍵點的檢測效果。在得到不同分辨率的特征之后對特征進行融合,特征融合方式有兩種:低分辨率分支通過上采樣的方式恢復分辨率并和高分辨率特征進行融合;高分辨率分支通過步長卷積降低分辨率并與低分辨率特征進行融合。最后,將融合后的不同分辨率的分支特征用于熱圖預測,通過解碼的方式回歸得到各關鍵點的坐標。
CASANet 網絡結構如圖3 所示,其中R為原始圖像分辨率。
圖3 CASANet 網絡結構Fig.3 CASANet network structure
坐標注意力機制是一種輕量化的注意力機制,該機制將位置信息嵌入到通道注意力中,本文利用該注意力機制捕獲位置信息和通道信息。
一個坐標注意力塊可以看作一個計算單元,能夠增強網絡的學習表達能力,其可以將任何中間特征張量X=[x1,x2,…,xC]∈RC×H×W作為輸入,并通過轉換輸出與X張量具有相同大小同時具有增強表征的變換張量Y=[y1,y2,…,yC]。為了更加清晰地描述CA 注意力機制,本文首先分析被廣泛使用的SE 注意力機制。
通道注意力機制主要對通道間的依賴關系進行建模,可以自適應地調整各通道的特征響應值。由于普通卷積本身很難對通道關系進行建模,而構建通道相互依賴性可以增加模型對信息通道的敏感性,這些通道對最終的分類決策有重要貢獻。此外,通道注意力機制中的全局平均池化可以幫助模型捕獲全局信息,這是普通卷積難以實現的。SE 模塊結構如圖4 所示。
圖4 SE 通道注意力模塊結構Fig.4 Structure of SE channel attention module
從整體結構上看,SE 可以劃分為Squeeze 和Excitation兩步,Squeeze用于全局信息嵌入,Excitation可以對通道間的關系進行自適應調整。
給定輸入X,第m通道Squeeze 步長的計算過程如式(1)所示:
其中:Zm是與第m通道相關聯的輸出。輸入X來自具有固定核大小的卷積層,因此,其被視為局部描述符的集合。Squeeze 操作使收集全局信息成為可能。
Excitation 步驟的激勵目的是完全捕獲通道間的依賴關系,計算過程如式(2)所示:
其中:“·”表示通道乘法;σ為Sigmoid函數表示變換函數生成的結果。函數的計算過程如式(3)所示:
其中:T1和T2是2 個線性變換,可以通過學習來捕捉每個通道的重要性。SE 只考慮通過建模通道關系來重新衡量每個通道的重要性,忽略了位置信息帶來的影響,而位置信息對于生成空間選擇性的注意力圖非常重要。因此,本文引入一種新的注意力塊,不僅關注通道間的關系,還考慮對特征空間位置信息的提取能力。
坐標注意力模塊CA 通過精確的位置信息對通道關系和長期依賴性進行編碼,整個過程分為兩步:第一步完成坐標信息嵌入;第二步生成坐標注意力。坐標注意力模塊結構如圖5 所示。
圖5 坐標注意力模塊結構Fig.5 Structure of coordinated attention module
2.4.1 坐標信息嵌入
全局池化方法通常用于通道注意編碼空間信息的全局編碼,但由于其將全局空間信息壓縮到通道描述符中,導致難以保存位置信息,而位置信息在視覺任務中對于捕獲空間結構至關重要。為了促使注意力模塊能夠捕捉具有精確位置信息的遠程空間交互,本文按照式(1)分解全局池化操作,將其轉化為一對一維的特征編碼操作。具體地,給定輸入X,將全局池化操作分解為沿著輸入特征圖的水平方向(H,1)和垂直方向(1,W)分別進行池化操作,從而獲得輸入特征圖的x、y軸相關位置信息。水平方向上得到的一維特征如式(4)所示:
垂直方向上得到的一維特征如式(5)所示:
上述2 種變換分別沿2 個空間方向聚合特征,生成一對方向感知的特征映射,這與通道注意力方法中產生單一特征向量的SE 模塊不同,這2 種轉換不僅能讓注意力模塊捕捉到沿著一個空間方向的長期依賴關系,而且保存沿著另一個空間方向的精確位置信息,這有助于網絡更準確地定位感興趣的目標。
2.4.2 坐標注意力生成
在坐標嵌入的過程中,式(4)和式(5)可以很好地獲得全局感受野并編碼精確的位置信息。為了有效利用由此產生的表征,本文設計第二個轉換,稱為坐標注意力生成。坐標注意力生成參照以下3 個標準:首先,這種轉換應該盡可能的簡單高效;其次,這種轉換可以充分利用捕捉的位置信息來精確定位感興趣區(qū)域;最后,它還能有效捕捉通道之間的關系。
通過信息嵌入中的變換后,將式(4)和式(5)進行拼接操作,并將其送入1×1 卷積函數F1中進行變換操作以獲得注意力圖,計算過程如式(6)所示:
其中:[·,·]表示沿空間維度的串聯操作;δ是非線性激活函數;F1的作用是將水平和垂直方向的池化結果進行拼接;f是在水平方向和垂直方向進行編碼的中間特征映射。
沿著空間維數將f分解為2 個單獨的張量和。與SENet 相同,r是控制模塊大小的一個超參數。利用另外2 個1×1 卷積變換Fh和Fw,分別將fh和fw變換為具有相同通道數的張量,如式(7)和式(8)所示:
經過1×1 卷積統一通道數,利用Sigmoid 函數獲得注意力的權重數據。為了降低模型復雜度和計算量,通常使用適當的縮減比r(如32)來減少f的通道數,然后分別對輸出gh和gw進行擴展,分別作為注意力權重。最后,坐標注意力塊的輸出Y如式(9)所示:
不同于只關注通道權重的注意力機制,坐標注意力塊也考慮對空間信息進行編碼。如上所述,沿水平和垂直方向的注意力同時應用于輸入張量。2 個注意力圖中的每個元素都能反映感興趣對象是否存在于相應的行和列中,這種編碼過程可以使坐標注意力更加準確地定位感興趣對象的準確位置,使得模型進行更有效的識別。
自注意力模塊通過關注所有位置并在嵌入空間中取其加權平均值來計算序列中某個位置(如句子)的響應。自注意力模塊的主要工作是捕捉長距離像素間的信息,針對2D 圖像,這種關系表示圖像中的像素與目標像素的關系權值。卷積神經網絡因自身的局限性,只能利用目標周圍局部信息來計算目標像素,局部信息可能會造成一定的偏差。針對該問題,可使用更大卷積核或加深網絡深度,但是對于人體關鍵點檢測任務,上述操作只能提高參數量,對網絡整體增益效果較差。
本文引入已有的自注意力模塊,以提高網絡捕捉通道信息和位置信息內部關系的能力,克服傳統卷積和下采樣過程中信息丟失的缺陷。自注意力模塊可以簡單高效地嵌入在主干網絡中,提高人體關鍵點檢測的準確率。自注意力模塊結構如圖6 所示。
圖6 自注意力模塊結構Fig.6 Structure of self-attention module
輸入信號X=H×W×256 通過3 個1×1 卷積進行降維,得到θ(xi)、?(xj)、g(xk),該操作的主要目的是降級通道數、降低參數量。然后對θ(xi)、?(xj)、g(xk)進行變形操作得到H×W×128 維,對變形后的?(xj)進行轉置,與θ(xi)進行矩陣相乘得到?(xj)tθ(xi),經過Softmax 函數與g(xk)相乘,再通過1×1 卷積恢復維度為H×W×128,與輸入信號維度保持一致,與xs進行相加操作,如式(10)所示:
其中:Wz是可學習的權重矩陣。
xs分支與輸入信號一致是一種跳躍連接結構,保證輸入信號在進行一系列維度轉變之后還能起到一定的作用。這種結構可以克服普通卷積的局限性,更好地捕捉通道和空間的內部相關性。在特殊情況下,當式(10)中Wz初始化為0 時,這種結構可以允許自注意力模塊在不破壞網絡結構的前提下插入到任何網絡中,體現了自注意力模塊即插即用的特性。
本文實驗環(huán)境為Ubuntu 18.04.6 LTS,64 位操作系統,Intel?Xeon?CPU E5-2678v3@2.50 GHz,內存12 GB,顯卡RTX2080Ti 以及cuda10.0.130、cudnn7.5、Pytorch1.7 和Python3.6 的軟件平臺。網絡預訓練參數使用在ImageNet數據集上預訓練模型的參數。實驗中的優(yōu)化器使用Adam,對模型設置的初始學習率為0.001,學習率衰減系數為0.1,分別在170 和200 周期時進行學習率衰減,分別衰減為1e-4 和1e-5。訓練過程在200 個周期結束。
數據集采用MS COCO 2017,該數據集是一個大型豐富的物體檢測、分割和字幕數據集,以環(huán)境感知為目標,主要從復雜的日常場景中截取圖像,圖像中的目標通過精確分割進行位置標定。圖像包括91 類目標、328 000 個影像和2 500 000 個標簽。COCO 人體姿態(tài)估計數據集中包含了超過20 萬張圖片以及超過25 萬個人體實例對象,每個對象都標記了17 個人體關鍵點。
實驗中的評價指標選用MS COCO 2017 數據集官方給定的OKS,其計算公式如下:
其中:dj是檢測的關鍵點坐標和真實值之間的歐式距離;vj表示能否觀察到人體關鍵點;s是檢測目標的大??;kj是每個關鍵點的衰減系數。
在實驗中采用OKS 方法:AP50(表示在IoU 等于0.5 時的平均精度值)、AP75(表示在IoU 等于0.75 時的平均精度值)、mAP(mean Average Precision)為各類別AP 的平均值,APM表示中等尺度人體,APL表示大型尺度人體,AR 為每個圖像中檢測到固定數量的最大召回率。
將本文提出的CASANet 算法與其他先進的人體關鍵點檢測算法進行對比,表1 所示為各算法在COCOVAL 2017 驗證集上的實驗結果。從表1 可以看出,本文算法在相同輸入尺度下取得了最高的精度值。CASANet 采用HRNet 作為骨干網絡,在網絡的1/16 分辨率特征圖后加入CA 模塊,增加了該分支對位置信息和通道信息的提取能力。在網絡的1/32分辨率特征圖后加入自注意力模塊,使其減少對外部信息的依賴,提高特征內部的相關性。再將2 個分辨率分支通過融合模塊進行特征融合,提高了網絡對于中小尺度人體的關鍵點檢測效果。本文提出的CASANet 算法在平均精度上相較基線方法有2.4 個百分點的提升,平均精度提升主要來自APM提升了2.9 個百分點,說明本文設計的方法極大提高了小尺度人體的檢測效果。此外與輸入圖像更大、具有更大感受野的HRNet-W48 相比,本文CASANet算法依然提高了0.5 個百分點的精度,表明增大輸入圖像尺度會對關鍵點檢測效果有進一步提升。
表1 各方法在COCOVAL 2017 數據集上的實驗結果Table 1 Experimental results of various methods on COCOVAL 2017 dataset
表1 中還將本文方法與其他經典人體關鍵點檢測方法的參數量和平均精度值結果進行了對比。相較基線網絡,本文方法在參數量略有提升的情況下,在驗證集上的準確率提高了2.4 個百分點。與性能較優(yōu)的HRNet-W48 相比,本文方法的參數量不到其一半,平均精度值卻高出0.5 個百分點。綜上,本文網絡可以在提升少量參數量的前提下提高人體關鍵點檢測的平均準確率。
圖7 所示為本文方法在COCO 驗證集上的檢測結果可視化效果。通過可視化效果可以看出,本文方法可以適用于不同情境下的人體關鍵點檢測任務,且檢測效果較優(yōu)。
圖7 CASANet 在COCOVAL 2017 數據集上的可視化效果Fig.7 Visualization of CASANet on COCOVAL 2017 dataset
在COCOVAL 2017 數據集上進行消融實驗,驗證CA 模塊和自注意力模塊對網絡檢測性能的影響。
如表2 所示,在加入2 種模塊后,僅提升了少量的參數,但平均精度值有了明顯提升。其中,采用CA 模塊時有1.1 個百分點的精度提升,使用自注意力模塊時有1.7 個百分點的精度提升。通過引入CA模塊可以更好地提取位置信息和通道信息,保證更有價值的通道特征和位置特征在特征圖中占更高比重。通過引入自注意力模塊可以凸顯出重要特征,增強不同特征之間的內部聯系,減少下采樣過程中的圖像特征丟失。同時采用2 種模塊可以獲得2.4 個百分點的精度提升,表明這2 種模塊能夠提升網絡提取特征的效果,進一步提高人體關鍵點檢測準確率。
表2 消融實驗結果Table 2 Results of ablation experiment
此外,本文還針對2 個模塊在不同階段的分辨率分支的添加位置進行消融實驗。從表3 可以看出,僅添加一個CA 模塊,在任意分辨率分支對于參數量提升都是一致的,當僅添加在1/16 分辨率分支時,提升效果明顯,相較基線網絡有1.1 個百分點的性能提升。從表4 可以看出,僅添加一個自注意力模塊在任意分辨率分支,對網絡整體參數量提升一致,在1/32 分辨率分支上添加自注意力模塊,對網絡性能提升較大,精度值可以提高1.7 個百分點。由上述消融實驗可知,在1/16 分辨率分支添加CA 模塊,在1/32 分辨率分支添加自注意力模塊,可以得到最優(yōu)的檢測準確率。
表3 CA 模塊的消融實驗結果Table 3 Ablation experiment results of CA module
表4 自注意力模塊的消融實驗結果Table 4 Ablation experiment results of self-attention module
本文將高分辨率網絡作為骨干網絡,結合CA 模塊和自注意力模塊設計CASANet 網絡,以實現人體關鍵點檢測。CASANet 網絡可以更好地利用通道信息和位置信息,突出圖像的底層特征,使特征圖中保留更豐富的信息。在COCO 2017 數據集上的實驗結果表明,該網絡在參數量略微提升的情況下能夠大幅提高人體關鍵點檢測準確率。在人體關鍵點檢測任務中,若要實現精度提升,通常需要更加復雜的網絡以及更加龐大的參數量,如何在保證較高精度的同時降低網絡參數量、提高檢測實時性,將是下一步的研究方向。