王紅霞李枝峻顧 鵬
(沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽 100159)
人體姿態(tài)估計是計算機視覺領(lǐng)域中對圖片中人體關(guān)鍵點進行定位,在視頻監(jiān)控、智能駕駛等領(lǐng)域有著重要作用。
隨著神經(jīng)網(wǎng)絡(luò)的迅猛發(fā)展,基于深度學(xué)習(xí)的多人姿態(tài)估計網(wǎng)絡(luò)通常分為由下至上和由上至下兩類。 2020 年,Cheng 等[1]提出了一種由下至上的HigherHRNet 網(wǎng)絡(luò),該網(wǎng)絡(luò)在HRNet 網(wǎng)絡(luò)末端添加了一個高效反卷積模塊,并采用了多分辨率訓(xùn)練以及熱圖聚合策略,從而有效地解決了小人物關(guān)鍵定位不準(zhǔn)確的問題。 2021 年,Geng 等[2]提出了解耦關(guān)鍵點回歸(DEKR)網(wǎng)絡(luò),通過多個并行分支結(jié)構(gòu)對每個關(guān)鍵點獨立進行特征提取和回歸,實現(xiàn)了關(guān)鍵點之間的解耦。 同年,Yuan 等[3]對HRNet 網(wǎng)絡(luò)進行改進并提出了HRFormer 網(wǎng)絡(luò),該網(wǎng)絡(luò)將多分辨率并行設(shè)計以及局部窗口自注意力引入HRNet,并在前饋神經(jīng)網(wǎng)絡(luò)中添加卷積操作,有效實現(xiàn)了斷開連接的圖像窗口之間的信息交換。 此外,Yang 等[4]提出了一種名為TransPose 的模型,該模型將變換神經(jīng)網(wǎng)絡(luò)引入人體姿態(tài)估計,能夠捕獲人體各部位的全局空間依賴關(guān)系,提高了模型識別準(zhǔn)確度。
上述人體姿態(tài)估計網(wǎng)絡(luò)雖提升了關(guān)鍵點定位準(zhǔn)確度,但同時模型參數(shù)量或計算量也隨之增加,致使模型運行效率低下,無法有效作用于實時性設(shè)備。 因此,本文重點研究如何使模型在具有較高關(guān)鍵點定位準(zhǔn)確度的前提下有效減少模型參數(shù)量和計算量。
YOLOPose[5]是一種無熱度圖,端到端,單階段的聯(lián)合檢測方法。 與自上而下方法相比,該模型不需要通過目標(biāo)檢測算法以及單人姿態(tài)估計網(wǎng)絡(luò)進行關(guān)鍵點定位,也不同于基于熱度圖的自下而上方法,其關(guān)鍵點后處理與多個前向傳播被取消。 該模型在一次前向傳播中聯(lián)合檢測出多人邊框以及相應(yīng)人體關(guān)鍵點,每個人體邊框都對應(yīng)一個人體姿態(tài),從而形成單人關(guān)鍵點的固有分組。因此,本文選擇YOLOPose 模型并進行如下改進。
1)選擇輕量級MobileNetV3 網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),加快特征提取速度。
2)使用損失函數(shù)WIOUV2 評估網(wǎng)絡(luò)邊框損失。
3)添加ECA 高效通道注意力機制保證網(wǎng)絡(luò)識別準(zhǔn)確度。
本文對原始YOLOPose 模型具體做出如下改進。 為實現(xiàn)特征提取網(wǎng)絡(luò)輕量化,本文刪除了原始YOLOPose 模型骨干網(wǎng)絡(luò)最后一個C3 模塊,將刪除了最后一層池化以及三個二維1 ×1 卷積的輕量級MobileNetV3-Small 網(wǎng)絡(luò)作為新的骨干網(wǎng)絡(luò),保留了原始模型中特征提取網(wǎng)絡(luò)的空間金字塔池化(SPP)層。 隨后將不同尺度輸出特征經(jīng)過上采樣輸入到特征融合層中。 為進一步減少模型參數(shù)量,本文將特征融合層的卷積與C3 模塊通道數(shù)由1 024、768、512、256 分別對應(yīng)調(diào)整為512、256、128、96,同時為保持識別準(zhǔn)確度,在特征金字塔(FPN)結(jié)構(gòu)的上采樣以及金字塔注意力(PAN)結(jié)構(gòu)的卷積模塊之前添加了ECA 注意力機制。最后,為更好評估模型性能,本文使用WIOUV2損失函數(shù)替換原有CIOU 邊框損失函數(shù)。 其改進后總體網(wǎng)絡(luò)架構(gòu)如圖1 所示。
圖1 改進后總體網(wǎng)絡(luò)架構(gòu)圖Fig.1 Improved overall network architecture diagram
原始YOLOPose 模型使用CSPDarkNet53 骨干網(wǎng)絡(luò),其首先會通過對輸入圖片進行切片操作。其次,使用4 個卷積及C3 模塊對輸入特征進行不同尺度特征提取,其中C3 模塊由3 個卷積模塊與1 個殘差塊Bottleneck 組成,C3 模塊將輸入特征映射為兩部分,并通過跨階段層次使用通道拼接操作進行合并。 最后,SPP 對輸入特征進行一次卷積后分別經(jīng)過5 ×5、9 ×9 以及13 ×13 的池化,并將不同池化輸出特征與卷積輸出特征進行通道拼接。
綜上可知,YOLOPose 骨干網(wǎng)絡(luò)主要由Focus、Conv 和C3 模塊構(gòu)成,帶來了較大計算量,特征提取速度較慢。 因此,本文選擇輕量級Mobile-NetV3 網(wǎng)絡(luò)替換原有骨干網(wǎng)絡(luò),使得模型輕量化的同時保證網(wǎng)絡(luò)的特征提取能力。
MobileNetV3[6]有Large 與Small 兩個版本,本文將MobileNetV3-Small 作為新的骨干網(wǎng)絡(luò),其具體原理如下。 首先,MobileNetV3 網(wǎng)絡(luò)將Block模塊作為基本單元進行神經(jīng)網(wǎng)絡(luò)搜索,使得不同模塊具有不同的宏觀結(jié)構(gòu),并使用NetAdapt 算法對結(jié)構(gòu)進行微調(diào),減小了擴充層與每層的大小,Block 模塊結(jié)構(gòu)如圖2 所示。 其次,MobileNetV3網(wǎng)絡(luò)加入了SE 注意力機制[7],結(jié)構(gòu)如圖3 所示,圖中X、U、分別為輸入特征、卷積操作的結(jié)果特征、通道賦權(quán)操作的結(jié)果特征;H、W、C分別代表輸入特征寬、高與通道數(shù);H′、W′、C′則表示卷積操作之后的特征寬、高與通道數(shù),圖中Ftr為一系列卷積操作,F(xiàn)sq(?) 表示全局平均池化操作,F(xiàn)ex(?,W)是指非線性變換操作,F(xiàn)scale(?,?)代表通道賦權(quán)操作。 SE 注意力機制首先對輸入特征進行卷積與全局平均池化操作,然后將尺寸為(1,1,C)的向量輸入激活函數(shù)分別為ReLU 與σ的兩個全連接層,最后與輸入特征進行相乘操作,使得特征圖在通道數(shù)不變的情況下每個通道具備不同的權(quán)重,并讓其值保持在[0,1]區(qū)間。
圖2 MobileNetV3-Small 的Block 單元Fig.2 Block unit of MobileNetV3-Small
圖3 SE 注意力模塊Fig.3 SE attention module
最后,MobileNetV3 基于ReLU6 函數(shù)重新設(shè)計出h-swish瓶頸殘差激活函數(shù),ReLU6 函數(shù)與hswish函數(shù)分別為
并使用h-sigmoid函數(shù)取代SE 結(jié)構(gòu)原有σ函數(shù),消除指數(shù)運算對模型運算速度的影響。h-sigmoid函數(shù)和σ函數(shù)分別為
隨著神經(jīng)網(wǎng)絡(luò)的層次加深,提取到的特征語義信息越加豐富,但特征位置信息也會逐漸丟失,YOLOPose 采取FPN 與PAN 來解決此問題。 首先將輸入特征圖送入FPN 結(jié)構(gòu),經(jīng)過卷積和上采樣操作,隨后與骨干網(wǎng)絡(luò)不同尺度輸出特征進行融合并送入C3 模塊,反復(fù)迭代,使其深層特征圖包含更強的位置信息,最后PAN 結(jié)構(gòu)通過下采樣加強特征圖語義信息并融合兩個特征,使不同尺度特征圖充分保留了語義與位置信息。
YOLOPose 在YOLOV5 原有特征融合結(jié)構(gòu)基礎(chǔ)上加深了一層,但增強特征融合能力的同時模型計算量和參數(shù)量也隨之增多。 因此本文對特征融合層卷積通道數(shù)做出調(diào)整,并添加ECA 注意力機制保證模型的識別精度。 ECA 注意力機制[8]是一種改進的SENet 網(wǎng)絡(luò),其在SENet 基礎(chǔ)上提出了無降維局部交叉信道交互策略,結(jié)構(gòu)如圖4 所示,圖中h為自適應(yīng)一維卷積核大小,σ表示激活函數(shù)。
圖4 ECA 注意力模塊Fig.4 ECA attention module
ECA 將原有SENet 中全連接層替換成一維卷積,在避免維度縮減的同時捕獲部分通道信息,減少了模型參數(shù),具體原理如下。 首先,對輸入特征進行全局平均池化,其次通過自適應(yīng)大小為h的一維卷積及σ激活函數(shù)得到通道權(quán)重,并與輸入特征進行通道相乘操作,得到加權(quán)后的特征圖。決定h值自適應(yīng)大小函數(shù)形式為
式中:h為自適應(yīng)一維卷積核大??;b和γ決定了C與h的比例,b值設(shè)置為1,γ值為2;||odd表示取奇數(shù)操作。
YOLOPose 損失包括邊框、關(guān)鍵點位置以及置信度損失,其總損失公式為
式中:s為對象分割區(qū)域平方根;i,j分別代表真實邊框橫縱坐標(biāo);k表示s尺度的第k個錨框;Ltotal、Lb、Lkpts、Lconf分別代表總損失、邊框損失、關(guān)鍵點位置損失以及關(guān)鍵點置信度損失;λb、λkpts、λconf表示不同損失權(quán)重,默認(rèn)值為0.5。
1.4.1 邊框損失
YOLOPose 采取CIOU 損失函數(shù)[9]評估邊框損失,CIOU 損失函數(shù)公式形式為
式中:b,bgt分別代表預(yù)測及真實邊框坐標(biāo);ρ是預(yù)測與真實框中心點歐式距離;c為包含預(yù)測和真實框的最小框?qū)蔷€長度;IOU 表示預(yù)測框與真實框交并比;α為權(quán)重函數(shù);ν為長寬比相似性度量。
1.4.2 關(guān)鍵點位置以及置信度損失
人體關(guān)鍵點標(biāo)簽為[x1,y1,v1,…,xt,yt,vt],預(yù)測結(jié)果為[x1,y1,c1,…,xt,yt,ct],其中t為標(biāo)簽及預(yù)測關(guān)鍵點序號;xt,yt分別代表第t個關(guān)鍵點橫軸、縱軸坐標(biāo);vt為第t個關(guān)鍵點標(biāo)簽可見性標(biāo)志,0 表示未標(biāo)記,1 表示標(biāo)記被遮擋,2 表示標(biāo)記未遮擋;ct為第t個關(guān)鍵點的預(yù)測置信度。 關(guān)鍵點損失包括位置損失以及置信度損失。
基于熱度圖的自底向上人體姿態(tài)估計網(wǎng)絡(luò)使用的L1 損失函數(shù)未考慮目標(biāo)尺度與關(guān)鍵點類型對損失的影響,無法有效評估關(guān)鍵點損失。 而關(guān)鍵點相似度(OKS)損失預(yù)測關(guān)鍵點和真實關(guān)鍵點的接近程度,是一個與IOU 損失類似的相似性度量,尺度不變且不會造成梯度消失,更適用于估計關(guān)鍵點損失。 OKS 損失值介于0 和1 之間,計算公式為
式中:Nkpts表示第N個關(guān)鍵點;dt表示第t個真實與預(yù)測關(guān)鍵點歐式距離;kt是指第t個關(guān)鍵點權(quán)重。 置信度損失是基于可見性標(biāo)志進行訓(xùn)練的,可見性標(biāo)志大于0 的關(guān)鍵點標(biāo)簽置信度記為1,反之為0,其計算公式為
式中BCE 表示二分類交叉熵?fù)p失函數(shù)。
1.4.3 WIOUV2 損失
數(shù)據(jù)集中低質(zhì)量圖片會加重CIOU 損失函數(shù)對錨框中心點距離以及縱橫比的懲罰,從而降低模型的泛化能力。 針對此問題,本文刪除了原有CIOU 邊框損失函數(shù),并引入新的WIOUV2 函數(shù)[10]評估邊框損失。 WIOUV2 損失函數(shù)計算公式為
式中:γ為調(diào)節(jié)因子,γ值越大,代表模型在低質(zhì)量圖片上的聚焦度更高;為單調(diào)聚焦系數(shù),?表示單調(diào)聚焦系數(shù)為非零自然數(shù);為歸一化因子;LWIOUV1表示基于距離度量構(gòu)建出的具有兩層注意力機制的WIOUV1 損失函數(shù),WIOUV1 函數(shù)能夠在IOU 值較大時降低對幾何距離的懲罰,公式為
式中:LIOU為交并比損失;RWIOU函數(shù)的作用是放大普通質(zhì)量錨框的LIOU。
WIOUV2 損失函數(shù)是基于Focal 損失函數(shù)[11]的交叉熵單調(diào)聚焦機制所構(gòu)建的單調(diào)聚焦系數(shù)與WIOUV1 損失函數(shù)所提出的。 WIOUV2 函數(shù)不僅繼承了WIOUV1 損失函數(shù)的優(yōu)點且引入了歸一化因子均值,解決了WIOUV2 損失函數(shù)在訓(xùn)練過程中因單調(diào)聚焦系數(shù)減小而導(dǎo)致后期收斂速度慢的問題,從而能夠更好地評估邊框損失。
本文所有實驗均基于表1 環(huán)境運行。 采用公共OC_Human 數(shù)據(jù)集,該數(shù)據(jù)集存在嚴(yán)重的人體遮擋以及復(fù)雜背景,是多人姿態(tài)識別領(lǐng)域最具挑戰(zhàn)性的數(shù)據(jù)集之一,包含5 081 張圖片,標(biāo)注人體姿態(tài)實例13 360 個。 訓(xùn)練前使用Mosaic、Fliplr等方式進行數(shù)據(jù)增強,設(shè)置初始學(xué)習(xí)率為0.01,預(yù)熱學(xué)習(xí)率為0.1,批次大小為32,訓(xùn)練輪數(shù)為300,采用平均準(zhǔn)確度、參數(shù)量及運算量對模型性能進行評價。
表1 實驗環(huán)境Table 1 Experimental environment
為比較不同方法對模型性能的影響進行消融實驗,所有實驗輸入圖片尺寸均為640 ×640,實驗參數(shù)與環(huán)境保持一致,實驗結(jié)果見表2。
表2 消融實驗結(jié)果對比Table 2 Comparisons of ablation experiments
首先,由表2 中實驗1 和實驗2 的對比結(jié)果可知,在采用輕量級骨干網(wǎng)絡(luò)MobileNetV3 并減少特征融合層通道數(shù)的情況下,模型的準(zhǔn)確度小幅下降,但模型參數(shù)量和計算量分別下降了86.8%和71.2%;其次,實驗3 和實驗4 的結(jié)果表明,添加ECA 注意力機制以及WIOUV2 損失函數(shù)后模型識別準(zhǔn)確度變化不大,但并未引起參數(shù)量和計算量增多;從實驗5 的結(jié)果看,在實驗2 基礎(chǔ)上單獨加入ECA 注意力機制能夠使預(yù)測準(zhǔn)確度提升0.7%;實驗6 的結(jié)果顯示,與加入ECA 注意力機制相比,引入WIOUV2 損失對輕量化模型識別準(zhǔn)確度提升尤為明顯,其準(zhǔn)確度上升了2.6%;最后將ECA 注意力機制與WIOUV2 損失函數(shù)同時加入輕量化模型,結(jié)果如實驗7 所示,模型預(yù)測準(zhǔn)確度相比實驗5 和6 有了更大的提高。
消融實驗數(shù)據(jù)表明,優(yōu)化之后的模型在保持較高準(zhǔn)確度的同時參數(shù)量和計算量均有明顯降低,模型運行效率得到了有效提升。
本文在OC_Human 數(shù)據(jù)集上對YOLOPose和本文提出的MWE-YOLOPose 模型進行了測試, 并 與 HigherHRNet[1]、 DEKR[2]、 HRFormer-B[3]、TransPose-H[4]模型進行了比較。 其中,HRFormer-B、TransPose-H 為自上而下的方法,而HigherHRNet、DEKR 采用由下至上的方法,對比結(jié)果見表3。
表3 不同算法結(jié)果對比Table 3 Comparisons of the results based on different algorithms
實驗結(jié)果表明,相比目前主流的姿態(tài)估計模型HigherHRNet,本文提出的MWE-YOLOPose 模型不僅在AP 和AP50分別高13.9%和10.7%,而且參數(shù)量和計算量分別減少93.0%和87.7%。與HRFormer-B 模型相比,本文模型的預(yù)測精度有所下降,但網(wǎng)絡(luò)模型參數(shù)量和計算量分別減少95.4%和51.6%。 同時對比DEKR 模型,本文模型在預(yù)測精度AP 上減少10.6%,但在AP50上獲得了7.7% 的精度增長,參數(shù)量和計算量降低93.2%與87.0%。 此外,雖然自上而下的Trans-Pose-H 模型在AP 上比本文模型更具競爭力,但本文模型在AP50上僅下降5.1%,且參數(shù)量和計算量降低了88.6%和72.9%,算法運算效率更高。 最后,本文MWE-YOLOPose 對比原始YOLOPose 模型在精度AP50下降2.9%、AP 降低6.7%的情況下,參數(shù)量和計算量分別減少了86.8%和71.2%。
綜上可得,本文提出的MWE-YOLOPose 模型對比原始YOLOPose 模型性價比更高,且在保持一定準(zhǔn)確度的情況下,模型參數(shù)量和計算量大幅低于目前主流的自下而上和自上而下方法,有效降低了模型參數(shù)量和運算復(fù)雜度。
為驗證改進后模型性能,本文對預(yù)測結(jié)果進行了可視化。 圖5 和圖6 分別是部分圖片標(biāo)簽及預(yù)測結(jié)果,兩組圖片分別包含單人、雙人以及多人,且存在人體遮擋、部位缺失等特點。 從圖6 中可見,單人標(biāo)簽的17 個關(guān)鍵點能預(yù)測出來,且構(gòu)成了一副完整的人體骨骼,邊框置信度達0.9。 其次,雖然圖5 雙人圖片存在人體遮擋,但改進后的模型也能夠比較準(zhǔn)確地預(yù)測出遮擋關(guān)鍵點,邊框置信度分別為0.8 和0.2。 圖5 第三張圖片背景為街道,且存在人群擁擠,關(guān)鍵點遮擋,人體部位缺失等特點,預(yù)測結(jié)果如圖6 第三張圖片所示,改進后模型不僅預(yù)測出小女孩的關(guān)鍵點與身后被遮擋男子的關(guān)鍵點,且對于缺失人體部分,模型也識別出存在部位關(guān)鍵點并進行了連接。 通過可視化分析可知,改進后模型在大幅降低參數(shù)量和計算量后,對多人姿態(tài)估計依然有著較好的識別效果。
圖5 不同場景標(biāo)簽圖Fig.5 Label map of different scene
圖6 不同場景預(yù)測結(jié)果圖Fig.6 Prediction results of different scenarios
針對目前人體姿態(tài)估計方法為提升模型準(zhǔn)確度導(dǎo)致模型深度加深,從而使模型參數(shù)量與計算量增多、模型運行效率低下的問題,給出了一系列的改進方案。 本文使用MobileNetV3 將骨干網(wǎng)絡(luò)輕量化,調(diào)整通道數(shù)并引入ECA 高效注意力機制,同時采用了WIOUV2 損失函數(shù)評估模型損失。 實驗表明,對比原始模型以及其他多人姿態(tài)估計方法,本文MWE-YOLOPose 模型參數(shù)量和計算量明顯減少,同時保證了一定的模型識別準(zhǔn)確度,具備較強的泛化性和魯棒性,更易作用于實時性設(shè)備。