高 坤,李汪根,束 陽,王志格,葛英奎
安徽師范大學 計算機與信息學院,安徽 蕪湖 241002
人體姿態估計是計算機視覺中一個極為重要的任務,它已經廣泛應用于很多領域[1],諸如骨骼動作識別[2-3]、人機交互[4-5]都需要姿態估計的參與,2D人體姿態估計的目標是在場景中檢測出人體的關節點位置坐標[6]。
當下2D人體姿態估計主要有兩大類方法[1],一類是自頂向下(top down)的方法,這類方法的檢測方式是先從場景中檢測人體并框選,再在所框選區域內檢測關節點。另一類方法是自底向上(bottom up)的方法,這類方法的檢測方式是直接從場景中檢測出所有關節點,再將所檢測到的關節點拼裝出人體結構。
隨著神經網絡的發展,在人體姿態估計領域也陸續出現了很多優秀的研究成果,Newell等提出的堆疊沙漏網絡(stacked hourglass networks,SHN)[7],網絡由數個對稱的沙漏結構網絡單元堆疊而成,前一個單元的輸出作為后一個的輸入,經過對特征的反復提取,最終輸出熱圖用于預測關節點的位置;Chen等提出的級聯金字塔網絡(cascaded pyramid network,CPN)[8],使用了特征金字塔結構用于提取特征,能夠更全面地提取多個尺度上的特征信息;Xiao等提出的簡單基線(simple base‐line,SBL)[9],僅使用簡單的下采樣提取特征再利用轉置卷積還原特征圖尺寸,同樣有著優秀的表現;Sun等提出了高分辨率網絡(high resolution network,HRNet)[10],通過構建多個分支進行多尺度特征融合并始終保留高分辨率分支,從而充分利用了特征信息,網絡的性能表現突出。
但是隨著新的網絡不斷提出,網絡的規模也日漸增大,帶來網絡參數量和計算量的大幅增加,無論對于訓練還是部署,這都需要很高的成本[11],所以一些研究將重心轉向了輕量化,Zhang等基于SBL網絡改進提出輕量級姿態估計網絡(lightweight pose network,LPN)[12],在網絡的推理速度方面展現出較大優勢;Yu等基于HRNet提出了Lite-HRNet[13],雖然網絡性能略有折損,但是卻使得網絡在輕量化方面有著較大優勢。
本文基于以上研究,采用與SBL和LPN相同的簡單結構框架,提出了一個融入密集連接的多尺度輕量級人體姿態估計網絡。首先基于VoVNet[14]的密集連接思想,重新設計了下采樣特征提取瓶頸模塊LGCblock代替原本的瓶頸模塊,特征圖的密集連接能夠實現對特征信息的充分利用,同時為了更好地提取特征,在LGCblock內結合深度可分離卷積的思想設計了GWConv模塊,實現多尺度提取特征信息,同時又保證了參數量和計算量不會大幅增加,使用三組GWConv模塊的輸出相連接并將最終特征圖進行通道維度的變換構成了LGCblock結構。本文還結合分組卷積的思想構建了分組空洞空間卷積池化金字塔(SG-ASPP),用于彌補特征提取過程中可能遺漏的特征信息,最終使得網絡在輕量化的同時取得優秀的精度表現。
基于以上描述,本文提出的網絡主要有如下優勢:
(1)基于VoVNet的思想設計了LGCblock結構,密集連接的結構實現了有效的特征復用,對于輕量級網絡而言極大提升了網絡的性能。
(2)GWConv將深度可分離卷積同多尺度特征提取相結合,在有效控制參數量和計算量的前提下大幅提升特征提取能力。
(3)使用分組空洞空間卷積池化金字塔來進一步對特征進行提取,在僅增加少量參數量的情況下進一步提升網絡的特征提取能力。
密集連接網絡指通過前向傳播的方式將每層都與其他層相連接,每層的輸入特征圖都會包含其前置所有層的特征圖,這樣能夠使特征得到重用,極大提高特征的利用效率,從而提高網絡的性能。DenseNet[15]提出為所有層都添加密集連接,但是這樣會導致網絡的復雜度急劇增大,在DenseNet的基礎上,VoVNet提出僅保留輸入到最后一層的密集連接,在繼承密集連接網絡的優勢的同時使得網絡的復雜度大大降低。
在卷積操作中,分組卷積就是對輸入的特征圖在通道維度上進行分組再對每組進行卷積操作這樣能夠大幅降低參數量和計算量[16],通常在逐通道卷積(depth‐wise convolution)中會使用,這種卷積方式會導致通道方向的特征交互不足,組與組之間無法進行特征交互,最終會使網絡的特征提取能力下降,這時采用通道洗牌(channel shuffle)方法,可以一定程度上彌補特征交互不足的問題,通道洗牌方法就是對分組卷積后的特征圖在通道方向進行打亂重組,使每次對特征圖進行分組卷積時每個組的輸入來自之前的組,這樣特征信息就可以在組與組之間相互流通。
本文提出的LDMNet以LPN網絡作為框架改進而來,整體結構如圖1所示。網絡為類似沙漏結構,主要由下采樣特征提取部分和上采樣還原特征圖尺寸兩部分組成,如圖1所示為LDMNet的網絡結構。

圖1 LDMNet網絡結構Fig.1 Structure of LDMNet network
當圖片輸入網絡時首先會對圖片進行如圖2所示Stem模塊的簡單處理,參考文獻[17],本文將Stem層設計為雙分支結構,相比于僅使用3×3的卷積在幾乎不增加參數量和計算量的情況下,能更好地保留原始特征信息,如圖2所示為Stem模塊的結構。

圖2 Stem模塊Fig.2 Stem module
通過將卷積與池化兩個分支的特征圖相融合,原理上與密集連接網絡相似,通過對特征圖的復用來保留更多原始特征信息,并且在參數量和計算量上與基線LPN預處理模塊幾乎無差別,經過實驗分析,Stem模塊相比基線LPN預處理模塊對模型性能有較大提升作用。
緊接著是LDMNet的下采樣特征提取部分,本文將這一部分劃分為五個階段,前四個階段由LGCblock結構組成,最后一個階段為分組空洞空間卷積池化金字塔模塊(SG-ASPP),本文改進的密集連接的LGCblock瓶頸結構用來代替LPN網絡中原本的瓶頸結構,不僅有效降低了參數量和計算量,網絡的性能表現也有所提升,圖中標注了每個階段所包含的LGCblock結構數目,前四個階段中,都會對特征圖進行維度變換,輸出的通道數依次為112、256、384、512,僅第二、三階段會對特征圖進行下采樣,前四個階段輸出的特征圖尺寸依次為64×64、32×32、16×16、16×16,第五個階段SG-ASPP不改變特征圖的尺寸及通道數,目的是盡可能地再提取特征。
最后通過兩組轉置卷積將下采樣特征提取部分輸出地特征圖進行上采樣,還原高分辨率特征圖,同時將Stem層的輸出與上采樣輸出地特征圖進行相加融合,輸出的高分辨率特征圖用于預測人體關節點,實現對人體的姿態估計。
本文基于密集連接網絡的思想設計了如圖3所示的LGCblock瓶頸結構,主要由三個GWConv模塊和一個逐點卷積模塊組成,串聯三個GWConv模塊用來提取空間維度的特征,并將它們的輸出拼接,使用逐點卷積進行通道方向的特征交互和維度變換。

圖3 LGCblock結構Fig.3 LGCblock structure
對于瓶頸結構內的第一層GWConv模塊可以用公式表示為:

第一層GWConv會將對特征圖降維,使通道數減少為一個較小的中間通道數,能夠在不損失特征提取能力的同時降低網絡參數量和計算量,后續的GWConv模塊可以用公式表示為:

θi+1代表第i+1層的輸出,θi代表第i層的輸入,F代表GWConv模塊,對于最后一層可以用公式表示為:

θend代表輸出,H代表逐點卷積,將前置層的輸出特征圖通過前向傳播的方式與LGCblock的輸入相拼接,再對特征圖進行維度變換,將其轉化為輸出通道數。
通過以上的密集連接結構,LGCblock中的最后一層特征圖會包含其所有前置層特征圖的信息,使得所有中間層特征圖的信息都能夠得到充分的再次利用,在訓練過程中可以加速梯度的反向傳播實現對網絡效率的提升,同時LGCblock僅有所有前置層與最后一層之間的密集連接,并且得益于特征圖能夠充分再次利用,所以在中間層可以對特征圖進行通道維度的壓縮并且不會損失特征信息,能夠有效降低模型的參數量和計算量,網絡的整體性能也有明顯提升。
在過往的研究中可以得知,注意力機制對于提升網絡的性能有著重要的作用[18],尤其對于輕量級的網絡,可以在盡可能小的成本下實現對網絡性能的大幅度提升,所以本文對每一層LGCblock結構的輸出位置都使用了坐標注意力機制(coordinate attention,CA)[19],其結構與其他通道注意力諸如壓縮激活(squeeze-and-excitation,SE)注意力機制[20],高效通道注意力(efficient channel attention,ECA)[21]等相似,不同的是坐標注意力機制將空間位置信息有效地融入進了通道中,如圖4所示為坐標注意力機制的結構,并且不再需要龐大的參數量就可以實現,這對于提升輕量級人體姿態估計網絡的性能是至關重要的,通過后續的實驗也證明了坐標注意力機制在提升網絡性能方面的重要性。

圖4 坐標注意力機制Fig.4 Coordinate attention
對一個特征圖尺寸為(w,h)的特征圖第c通道而言,首先使用均值池化將水平和豎直方向的空間特征信息嵌入到通道方向,計算過程如公式(4)所示,隨后進行特征變換生成注意力權重,轉換過程如公式(5)所示。

其中,g=δ(G([ηh,ηw])),δ和σ為對應的采樣系數,G為特征變換操作,最終得到坐標注意力:

本文還通過實驗對比了使用了密集連接的LGC‐block的LDMNet相比使用僅對GWConv模塊進行串聯的結構的LDMNet,實驗的結果表明使用LGCblock的情況具有更低的參數量和計算量以及更高的性能。
人體姿態估計是一個對位置信息極為敏感的任務,在卷積神經網絡中,感受野關系到提取的特征所覆蓋的特征圖范圍,感受野是由卷積核大小所決定的,當下最常使用的卷積核大小為3×3,對于輕量級網絡使用3×3大小的卷積效果相對有限,與使用更大卷積核相比有明顯的效果差距[22],但是如果僅使用更大卷積核進行特征提取則會無法兼顧特征圖中多尺度的信息,可能會忽略一些細節信息,同時伴隨著大卷積核的引入,網絡的參數量核計算量都會隨之大幅增加。
基于以上問題,本文設計了GWConv模塊,將深度可分離卷積[23]與多尺度卷積相結合,在輕量化的條件下[24]實現更高效的特征提取,如圖5所示為GWConv結構。

圖5 GWConv模塊Fig.5 GWConv module
由于深度可分離卷積將卷積拆分為逐通道與逐點兩個部分,會導致在卷積過程中的特征交互不足,為了解決這個問題,GWConv首先對輸入的特征圖進行通道方向的特征變換,公式表示為:

若輸入特征圖X的通道數為α,經過維度變換fin的輸出特征圖Xδ通道數為α/2,通過對特征圖進行降維的方式實現通道方向的特征交互彌補了深度可分離卷積的不足,并且通道數減少為原來的一半會降低后續操作的參數量和計算量,隨后對特征圖進行四個尺度的逐通道卷積,對應的卷積核尺寸分別為3、5、7、9,再將多尺度卷積的輸出相融合,用公式表示為:

其中,tn代表堆疊n層卷積核尺寸為3的逐通道卷積等價代替更大卷積核的逐通道卷積,本文方法的n設置為4,等效進行了四個尺度的逐通道卷積,fmid表示對拼接后特征圖進行的維度變換,最后將輸出特征圖與輸入特征圖進行拼接并進行維度變換得到輸出,公式表示為:

fout將拼接后的特征圖進行維度變換,將通道數轉化為輸出通道數。
空洞卷積(atrous convolution)是在普通卷積的基礎上加入了膨脹率,在使用相同卷積核尺寸條件下擴大了感受野,通過調整膨脹率的大小,可以將感受野擴展為所需要的大小。
空洞空間卷積池化金字塔(ASPP)模塊[25]使用了空洞卷積和池化來盡可能提取特征圖中的更多信息,通過使用不同膨脹率的空洞卷積來實現多個尺度的特征提取,同時保證特征圖的分辨率不發生改變。按照輕量化的思路,本文對ASPP模塊進行了改進,融合了分組卷積的思想,設計了分組空洞空間卷積池化金字塔(SG-ASPP)模塊,在幾乎不損失性能的前提下將ASPP的參數量降低75%,如圖6所示為SG-ASPP的結構。

圖6 SG-ASPP模塊Fig.6 SG-ASPP module
首先將輸入的特征圖沿通道方向切分為四組,其中三組進行膨脹率分別為4、8、12的空洞卷積提取特征信息,另外一組進行自適應均值池化,隨后將四組的輸出相拼接并進行通道洗牌。本文將SG-ASPP放置在四個LGCblock結構之后,用于在下采樣后再盡可能提取一些可能被忽略的特征信息,實驗結果也表明SG-ASPP模塊在提升網絡性能方面發揮了重要作用。
本文提出的網絡使用了兩個數據集,MPII數據集和COCO數據集。
MPII數據集包含大約25 000張圖片,有約40 000個人體目標且均被標注了16個關節點的信息,一般會把其中28 000張圖片作為訓練集,剩余12 000張圖片作為測試集。MPII數據集的評價指標為PCKh[26](percent‐age of correct keypoints),以人體頭部作為歸一化指標計算預測正確的關鍵點比例,即預測關鍵點距離標注關鍵點之間的歸一化距離小于設定閾值的比例,本文選用閾值為0.5的PCKh@0.5作為評估標準,評估的關鍵點分別為頭部(head)、肩膀(shoulder)、手肘(elbow)、腕部(wrist)、髖部(hip)、膝蓋(knee)以及腳踝(ankle)。
COCO數據集包含330 000張圖片,其中有超過200 000張被標記圖片,擁有標注信息的人體目標約250 000個,每個人體目標被標注了17個關節點的信息,一般使用訓練集中的57 000張圖片進行訓練,在5 000張圖片的驗證集上驗證最后使用測試集的20 000張圖片進行測試。COCO數據集的評價標準是關鍵點相似性[27](object keypoint similarity,OKS),本文采用AP(OKS=0.50,0.55,…,0.95時10個預測關鍵點準確率的均值)作為主要評價指標、AP50(OKS=0.5時的準確率)、AP75(OKS=0.75時的準確率)、APM(中型物體檢測準確率)、APL(大型物體檢測準確率)以及AR(OKS=0.50,0.55,…,0.95時10個預測關鍵點召回率的均值),作為輔助評價指標。
本文的實驗環境為Ubuntu 20.04,GPU為NVIDIA RTX 3060,顯存為12 GB,使用的Pytorch版本為1.10.1,Python版本為3.9,網絡使用的優化器為Adam,設置的訓練周期為150輪,批量大小為32,初始學習率設置為0.001,在訓練第120輪時縮減10倍。
本文采用和LPN網絡相同的數據預處理,對于MPII數據集處理為256×256大小,對于COCO數據集處理為256×192大小,便于與其他方法進行對比。
本文方法在COCO數據集以及MPII數據集上進行了實驗驗證,與基線LPN和其他具有代表性的先進方法進行準確度、參數量和計算量上的比較。
首先,本文方法在MPII數據集上進行了實驗,包括MPII數據集中人體7個部位關節點以及平均預測準確度的結果如表1所示,與Hourglass、SimpleBaseline、HRNet相比,本文方法的參數量和計算量最低并且平均預測準確度達到了相近水準,與基線LPN相比,本文增加了少量的參數量和計算量,在平均精度方面提升了1.9個百分點,在輕量化網絡極其有限的資源以及沙漏結構下采樣帶來的特征信息損失限制下,相比最新的輕量級高分辨率網絡LiteHRNet相比平均精度提高了1.5個百分點。

表1 MPII驗證集實驗結果對比(PCKh@0.5)Table 1 Comparison of experimental results of MPII validation set(PCKh@0.5)
表2是本文方法在COCO驗證集上與其他方法的實驗對比結果,LDMNet在不使用預訓練模型以及基線LPN中的Iterative Training Strategy學習率迭代策略的情況下,平均精度相較使用了學習率迭代訓練策略的基線LPN提升了1.0個百分點,與沒有使用學習率迭代策略的基線LPN相比則提升了3.2個百分點,在與最新的輕量級方法LiteHRNet比較中,本文方法的平均精度提升了2.9個百分點。另外與一些大型網絡作比較,LDMNet在輕量化方面具有極大優勢,平均預測準確度與相同網絡結構的SBL-50相近,達到了與大型網絡相近的主流性能水準。

表2 COCO驗證集實驗結果對比Table 2 Comparison of experimental results of COCO validation set
本文還在COCOtest-dev測試數據集上將LDMNet與其他方法做了對比如表3所示,為了方便比較,網絡輸入的圖片尺寸選擇為384×288,實驗結果表明,LDMNet與一些采用預訓練模型的大型網絡諸如CPN、HRNet相比,平均預測精度雖稍顯遜色,但是在輕量化方面的表現則非常優異并且不再依賴預訓練模型,使得網絡的訓練部署更加輕便,更符合輕量化的設計思路,與使用ResNet-152作為瓶頸結構并且使用ResNet-152預訓練模型的SBL-152相比,LDMNet在網絡結構相同的情況下僅用不足1/10的參數量最終取得了相對不錯的成績,與最新的輕量級網絡LiteHRNet相比,LDMNet在少量增加參數量的條件下,平均預測準確度提升了0.4個百分點。

表3 COCO test-dev測試集實驗結果對比Table 3 Comparison of experimental results of COCO test-dev set
綜合以上實驗結果,本文提出的LDMNet在輕量級模型中表現出優異的性能表現,與最新的輕量級姿態估計方法相比有較大優勢,其中值得注意的是,在與基線LPN的對比中雖然參數量和計算量有所提升,但是不再需要采用在LPN中呈現為對模型進行多次訓練的Iterative Training Strategy學習率迭代策略以及任何類似預訓練手段,僅通過單次訓練即得到最終結果,實際上大大降低了模型的訓練時間成本,與此同時在模型性能上超越了基線LPN;與大型網絡相對比在模型規模上有極大優勢,且性能表現表現穩定,達到了對輕量級人體姿態估計的設計目標。
本文選擇使用MPII數據集進行消融實驗,首先分別單獨將坐標注意力機制(CA)、分組空洞空間卷積池化金字塔(SG-ASPP)單獨用在本文方法,用來驗證各模塊對LDMNet的影響,實驗結果如表4。

表4 模塊消融實驗Table 4 Ablation experiment
結果表明,SG-ASPP模塊與CA對于LDMNet而言都有著重要的作用,對提升模型性能發揮著重要的作用,其中CA對本文模型性能的提升占主導地位。隨后為了深入研究模型中的模塊對性能的影響,本文對圖1中的Stem模塊進行消融實驗,實驗結果如表5。

表5 Stem消融實驗Table 5 Stem ablation experiment
其中LDMNet1代表未使用Stem模塊的情況,使用Stem模塊在幾乎不增加參數量和計算量的條件下大幅度提升了模型性能。隨后本文對LGCblock使用的密集連接進行了實驗分析,結果如表6所示。

表6 LGCblock消融實驗Table 6 LGCblock ablation experiment
LDMNet2代表僅將GWConv模塊進行串聯而不使用密集連接結構組成LGCblock的情況,與不使用密集連接的LGCblock結構相比,使用密集連接的LGCblock在參數量降低了接近50個百分點,計算量也降低了近30個百分點,并且平均預測準確度提高了0.6個百分點,對中間層特征圖進行復用在提升模型預測準確度的同時還能大幅降低模型復雜度。為了更細分地對本文提出模塊效果進行分析,本文還使用GWConv模塊與普通深度可分離卷積模塊分別構建LGCblock結構,實驗結果如表7所示。

表7 GWConv消融實驗Table 7 GWConv ablation experiment
LDMNet3代表使用卷積核尺寸為3的單尺度深度可分離卷積,相比使用普通深度可分離卷積,雖然使用GWConv參數量和計算量都有所增加,但是平均預測準確度提升了2個百分點,實驗結果表明GWConv模塊的多尺度特征提取對于提升網絡性能發揮著極為重要的作用。另外本文還對圖1中的短路連接進行了實驗分析,訓練過程中的模型收斂曲線如圖7所示。

圖7 模型訓練收斂曲線Fig.7 Model training convergence curve
可以看出,相比于不使用短路連接的情況,短路連接能夠使模型的訓練更快收斂,并且平均準確度也有所提升,在MPII驗證集上的實驗對比如表8所示。

表8 短路連接消融實驗Table 8 Residual ablation experiment
LDMNet4代表不使用短路連接,平均準確度相較使用短路連接的情況降低0.5個百分點,以上實驗結果可以推斷出,由于多次進行下采樣縮小特征圖尺寸,會使得特征圖中的信息存在損失,而通過將高分辨率特征圖直接由短路連接的方式與輸出特征圖相融合可以極大緩解這個問題,從而提高模型性能。
對于輕量級姿態估計,模型的推理速度是一個至關重要的參數,本文對LDMNet做了推理速度的測試,測試平臺為I5-10400F,對256×192大小的輸入,與其他經典方法在推理速度上的對比如圖8所示,LDMNet的推理速度可以達到平均19 FPS,圖中圖案的大小表示模型的規模,與SBL以及當下主流的HRNet在相同的環境下對比,有著更快的推理速度和更輕量級的模型規模,具有更強的實時性。

圖8 模型推理速度對比Fig.8 Comparison of model inference speed
本文隨機選取COCO數據集中部分人體樣本做了姿態估計可視化如圖9所示,可視化結果顯示本文方法在各種環境下都能夠順利檢測出人體關節點的位置,包括障礙物遮擋、陰影環境下以及模糊畫面都能準確地檢測出人體關節點,得益于密集連接網絡的特性以及多尺度特征提取,LDMNet能夠學習到畫面中兼顧全局與局部的特征信息,在面對復雜場景時同樣會有優異的性能表現,展現了本文方法的可靠性以及面對復雜環境的魯棒性。

圖9 COCO數據集可視化Fig.9 COCO dataset visualization
本著在盡可能低的網絡參數量以及計算量的條件下提升網絡性能的目標,本文結合密集連接網絡和多尺度特征提取兩種方法提出了輕量級的人體姿態估計網絡LDMNet,網絡以輕量級簡單人體姿態估計網絡LPN為基礎框架,將原本的下采樣瓶頸結構替換為LGCblock,并用GWConv作為其基本模塊,使得網絡能夠在輕量化方面表現優異并且具有高效的特征提取能力,使得網絡的整體性能獲得較大提升,同時提出了SG-ASPP模塊,使得整個特征提取模塊的性能進一步得到提升,最終的實驗結果達到了與現有優秀模型相同的水準,在COCO數據集以及MPII數據集上的實驗結果還表明,本文提出的方法有效地平衡了網絡的復雜度與預測準確率之間的關系。在后續的工作中,如何在進一步縮減網絡參數量以及計算量的前提下,對現有網絡的性能進行提升,能夠在真實場景中得到應用是需要著重思考的內容。