李坤,侯慶,2*
(1.貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽(yáng) 550025;2.貴州省通信產(chǎn)業(yè)服務(wù)有限公司,貴陽(yáng) 550005)
人體姿態(tài)估計(jì)是對(duì)目標(biāo)中人體關(guān)鍵點(diǎn)進(jìn)行預(yù)測(cè)與定位,作為計(jì)算機(jī)視覺(jué)的一個(gè)重要研究課題,在行人檢測(cè)、人機(jī)交互和行人重識(shí)別等方向有著廣泛的應(yīng)用。
在人體姿態(tài)估計(jì)研究發(fā)展中,圖結(jié)構(gòu)模型算法[1-2]一直是傳統(tǒng)人體姿態(tài)估計(jì)算法的主流方式。圖結(jié)構(gòu)模型算法主要由3 部分組成,分別是人體的部件檢測(cè)模型、人體的圖模型結(jié)構(gòu)和相應(yīng)的姿態(tài)推理算法。圖結(jié)構(gòu)模型算法首先將人體結(jié)構(gòu)分解成不同的部件,然后利用圖結(jié)構(gòu)模型對(duì)部件之間的關(guān)系進(jìn)行建模,最后將各個(gè)部件進(jìn)行連接,從而構(gòu)成完整的人體姿態(tài);但在背景復(fù)雜、人體姿態(tài)高度靈活的情況下,圖結(jié)構(gòu)模型的預(yù)測(cè)精度和效率會(huì)急劇下降,難以達(dá)到實(shí)際應(yīng)用的水平。
隨著深度神經(jīng)網(wǎng)絡(luò)的興起與發(fā)展,2014 年Toshev 等[3]首次將深度神經(jīng)網(wǎng)絡(luò)引入人體姿態(tài)估計(jì)算法,將人體姿態(tài)估計(jì)看作是一個(gè)人體關(guān)鍵點(diǎn)的回歸問(wèn)題,通過(guò)深度神經(jīng)網(wǎng)絡(luò)對(duì)輸入的圖像進(jìn)行特征提取,并利用卷積核對(duì)關(guān)鍵點(diǎn)之間的關(guān)系進(jìn)行建模,因?yàn)椴煌木矸e核所學(xué)習(xí)的參數(shù)不同,所以有效地提高了人體關(guān)鍵點(diǎn)的預(yù)測(cè)性能。但隨著對(duì)人體姿態(tài)估計(jì)模型性能要求的不斷提高,模型參數(shù)量在不斷加大,運(yùn)算復(fù)雜度也隨之快速增加,因此在保持模型對(duì)人體關(guān)鍵點(diǎn)預(yù)測(cè)精度的前提下,如何降低模型運(yùn)行時(shí)的參數(shù)量和運(yùn)算復(fù)雜度,是當(dāng)前人體姿態(tài)估計(jì)模型改進(jìn)和優(yōu)化所面臨的重要問(wèn)題。
2019 年提出的高分辨率網(wǎng)絡(luò)(High-Resolution Network,HRNet)[4]重新考慮了分辨率對(duì)人體姿態(tài)估計(jì)模型的影響,與堆疊沙漏網(wǎng)絡(luò)(Stacked Hourglass Network,Hourglass)[5]采用高分辨率下采樣到低分辨率、再?gòu)牡头直媛噬喜蓸拥礁叻直媛实膶?duì)稱(chēng)結(jié)構(gòu)不同,HRNet 模型在Hourglass 基礎(chǔ)上改進(jìn)并提出了基于高分辨率的人體姿態(tài)估計(jì)模型,在整個(gè)模型中一直保持高分辨率特征圖,一定程度上彌補(bǔ)了Hourglass 中上采樣過(guò)程導(dǎo)致的空間分辨率損失的缺陷,進(jìn)一步驗(yàn)證了高分辨率特征圖在人體姿態(tài)估計(jì)模型中對(duì)人體關(guān)鍵點(diǎn)預(yù)測(cè)的重要性。整個(gè)HRNet 模型采用并行子網(wǎng)方式,實(shí)現(xiàn)了多個(gè)分辨率特征圖的充分融合,增強(qiáng)了特征圖的特征信息;但是由于模型始終保持高分辨率特征圖,在提高預(yù)測(cè)人體關(guān)鍵點(diǎn)精度的同時(shí),也增加了模型的參數(shù)量和運(yùn)算復(fù)雜度。2020 年,Zhou 等[6]提出了沙漏(Sandglass)模塊,通過(guò)在高維線性表示之間建立跳躍連接和使用縮放系數(shù),在保證模型性能的同時(shí)降低了模型的參數(shù)量和運(yùn)算復(fù)雜度。Hou 等[7]提出了坐標(biāo)注意力(Coordinate Attention,CoordAttention)模塊,在保證獲取特征圖通道之間關(guān)系的前提下,還能在特征圖一個(gè)空間方向?qū)Ω信d趣的特征區(qū)域進(jìn)行精確定位,在另一個(gè)空間方向捕獲長(zhǎng)程依賴(lài)。
針對(duì)高分辨率模型具有參數(shù)量大、運(yùn)算復(fù)雜度高(本文以浮點(diǎn)運(yùn)算量的大小作為衡量標(biāo)準(zhǔn))的問(wèn)題,本文引入Sandglass 模塊和CoordAttention 模塊,對(duì)HRNet 模型基礎(chǔ)模塊進(jìn)行改進(jìn),提出了結(jié)合沙漏坐標(biāo)注意力瓶頸(Sandglass Coordinate Attention bottleneck,SCAneck)模塊和沙漏坐標(biāo)注意力基礎(chǔ)(Sandglass Coordinate Attention basicblock,SCAblock)模塊的輕量型沙漏坐標(biāo)注意力網(wǎng)絡(luò)(Sandglass Coordinate Attention Network,SCANet),在保持人體關(guān)鍵點(diǎn)預(yù)測(cè)準(zhǔn)確率的前提下,有效地降低了模型的參數(shù)量和運(yùn)算復(fù)雜度。
本文的主要工作如下:
1)針對(duì)HRNet 模型保持高分辨率特征表示,造成參數(shù)量大、運(yùn)算復(fù)雜度高的問(wèn)題,使用輕量型Sandglass 模塊代替標(biāo)準(zhǔn)的3×3 卷積,在保證模型性能的同時(shí),達(dá)到輕量型模型的目的。
2)提出了一種融合注意力機(jī)制的殘差模塊,通過(guò)引入CoordAttention 模塊,在保證獲取特征圖通道特征信息的同時(shí),加強(qiáng)模型在空間方向?qū)μ卣餍畔⒌木_定位,減少關(guān)鍵點(diǎn)定位帶來(lái)的損失,達(dá)到與HRNet 模型性能相當(dāng)甚至更優(yōu)的目的。
人體姿態(tài)估計(jì)模型分為自底向上(Bottom-Up)和自頂向下(Top-Down)兩種框架,其中Top-Down 算法是目前人體姿態(tài)估計(jì)中準(zhǔn)確率最高的網(wǎng)絡(luò)框架。Top-Down 算法首先通過(guò)人體檢測(cè)器[8-9]檢測(cè)出圖片中每個(gè)人體的邊界框,然后將邊界框從輸入圖像中裁剪出來(lái),再進(jìn)行單人的人體姿態(tài)估計(jì),因此預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率會(huì)受到人體檢測(cè)器性能的影響。Mask R-CNN(Mask Region-based Convolutional Neural Network)[10]在 Faster R-CNN(Faster Region-based Convolutional Neural Network)[11]的基礎(chǔ)上進(jìn)行改進(jìn),提出了人體姿態(tài)估計(jì)分支,與人體檢測(cè)分支共享骨干網(wǎng)絡(luò)提取的特征,由于兩個(gè)分支共享骨干網(wǎng)絡(luò),所以在一定程度上降低了模型的參數(shù)量。
相較于Top-Down 的人體姿態(tài)估計(jì)框架,Bottom-Up 的人體姿態(tài)估計(jì)框架中沒(méi)有使用人體檢測(cè)器,而是首先預(yù)測(cè)出輸入圖像中所有人體的關(guān)鍵點(diǎn),然后通過(guò)拼接得到人體姿態(tài)。該算法的優(yōu)勢(shì)在于運(yùn)行速度快、實(shí)時(shí)性高,但是當(dāng)相同類(lèi)型的關(guān)鍵點(diǎn)距離較近時(shí),容易出現(xiàn)分組錯(cuò)誤,因此設(shè)計(jì)不同的分組信息是Bottom-Up 算法的關(guān)鍵。OpenPose 模型[12]是對(duì)序列卷積姿態(tài)機(jī)(Convolutional Pose Machines,CPM)[13]的改進(jìn),將模型分為兩部分:一部分通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征信息;另一部分通過(guò)模型預(yù)測(cè)得到部分親和力場(chǎng)(Part Affinity Field,PAF),通過(guò)PAF 將關(guān)鍵點(diǎn)分組問(wèn)題轉(zhuǎn)化為二分圖最大權(quán)匹配問(wèn)題,并用匈牙利算法求得關(guān)鍵點(diǎn)是否相連以及相應(yīng)的方向信息,實(shí)現(xiàn)對(duì)關(guān)鍵點(diǎn)的分組,以生成最終的人體姿態(tài)。
倒置殘差模塊(Inverted Residual Module,IRM)的概念第一次在MobileNet V2[14]中提出,主要為了輕量型模型設(shè)計(jì)。為了降低模塊的參數(shù)量,首先以一個(gè)低維特征張量作為輸入,通過(guò)1×1 卷積進(jìn)行通道擴(kuò)展生成一個(gè)高維特征張量;然后利用深度卷積對(duì)其進(jìn)行空間上下文編碼;最后再通過(guò)1×1卷積將高維特征張量映射成低維特征張量。ShuffleNet V2[15]證明輸入和輸出通道相同時(shí),可以降低內(nèi)存訪問(wèn)量,因此在倒置殘差模塊前后添加了通道混洗操作,以對(duì)特征圖的通道數(shù)進(jìn)行控制。
注意力機(jī)制通過(guò)卷積特征的學(xué)習(xí)實(shí)現(xiàn)特征通道權(quán)重的重新分配,包括壓縮(Squeeze)和激勵(lì)(Excitation)兩個(gè)操作。相關(guān)研究表明在增加少量運(yùn)算復(fù)雜度的情況下,添加注意力機(jī)制能夠提高輕量型模型的性能。其中,SE(Squeeze-and-Excitation)模塊[16]主要通過(guò)全局池化建模特征通道之間關(guān)系,沒(méi)有考慮空間方向信息的重要性。卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)[17]在此基礎(chǔ)上考慮了通道關(guān)系和空間關(guān)系,并單獨(dú)生成注意力圖,最后與輸入特征圖相乘得到帶有注意力權(quán)重的特征圖。CoordAttention 模塊在保證捕捉特征圖通道之間關(guān)系的前提下,有效地將空間方向的信息保存在注意力圖中,更好地補(bǔ)充了空間方向的特征信息。
輕量型模型[18]主要對(duì)深度神經(jīng)網(wǎng)絡(luò)的深度、寬度進(jìn)行改進(jìn),以減少模型的參數(shù)量和計(jì)算量,達(dá)到輕量型模型的目標(biāo)。其中,空間可分離卷積(Spatially Separable Convolution)將卷積核在空間方向拆分成兩個(gè)較小的卷積核,再依次進(jìn)行卷積運(yùn)算。而深度可分離卷積(Depthwise Separable Convolution)將卷積核拆分成深度卷積(Depthwise Convolution,Dwise)和逐點(diǎn)卷積(Pointwise Convolution,Pwise),這種方法大幅降低了模型的參數(shù)量,但是對(duì)特征圖提取特征相對(duì)較少,可能導(dǎo)致模型對(duì)特征的泛化能力不足。分組卷積(Grouped Convolution)最早是在2012 年提出的AlexNet[19]中出現(xiàn),使用多個(gè)GPU 并行處理特征圖,然后將得到的結(jié)果進(jìn)行融合。
本文以HRNet 模型為基礎(chǔ)架構(gòu)進(jìn)行改進(jìn),提出了SCANet 模型,其結(jié)構(gòu)如圖1 所示。
圖1 SCANet模型的結(jié)構(gòu)Fig.1 Structure of SCANet model
SCANet 模型繼承了HRNet 模型原有的架構(gòu),包含Stage1、Stage2、Stage3 和Stage4 共4 個(gè)階段。這是為了讓特征圖的分辨率采取循序漸進(jìn)的下降方式。如果大幅度采取下采樣操作,會(huì)導(dǎo)致特征圖中人體姿態(tài)的細(xì)節(jié)迅速丟失,即使從模糊圖像中學(xué)習(xí)到特征信息,再與上層高分辨率特征圖提取的特征信息進(jìn)行特征融合,也難以提高預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率。在每個(gè)階段中分別使用1、2、3 和4 個(gè)不同分辨率和通道數(shù)的平行分支,也避免了下采樣過(guò)程中特征圖空間信息丟失。
SCANet 模型具體處理過(guò)程如下:
1)在預(yù)處理階段經(jīng)過(guò)兩個(gè)標(biāo)準(zhǔn)的3×3 卷積核使輸入圖像分辨率變?yōu)樵瓉?lái)的1/4,通道數(shù)也由原來(lái)的3 通道變成64通道;
2)將預(yù)處理后的特征圖作為Stage1 的輸入,經(jīng)過(guò)4 個(gè)SCAneck 模塊對(duì)特征圖進(jìn)行特征提??;
3)在隨后的3 個(gè)階段中分別使用具有不同分辨率(1/4、1/8、1/16、1/32)和通道數(shù)(C、2C、3C、4C)的SCAblock 模塊對(duì)特征圖進(jìn)行特征提取。
本文采用C=32 的模型架構(gòu),在每個(gè)Stage 之間都對(duì)特征圖的分辨率和通道數(shù)進(jìn)行調(diào)整,本文參考文獻(xiàn)[4]的思想,分辨率每減少一半,特征圖通道數(shù)就增加一倍,以彌補(bǔ)分辨率下降帶來(lái)的空間定位損失。具體實(shí)現(xiàn)的Sandglass 模塊、CoordAttention模塊、SCAneck 模塊和SCAblock 模塊結(jié)構(gòu)如下。
Sandglass 模塊結(jié)構(gòu)如圖2 所示,通過(guò)對(duì)倒置殘差模塊翻轉(zhuǎn)和在深度卷積之間添加兩個(gè)1×1 卷積,實(shí)現(xiàn)縮減層和擴(kuò)展層位置的調(diào)整,克服了在高維特征向低維特征映射時(shí),壓縮通道不能保留全部有用特征信息的缺陷。同時(shí)為了保留更多的特征通道和空間上下文信息,在高維特征之間建立跳躍連接。依據(jù)文獻(xiàn)[6]的思想,當(dāng)輸入和輸出的通道數(shù)不相同時(shí),不加入跳躍連接。
圖2 Sandglass模塊Fig.2 Sandglass module
Sandglass 模塊的參數(shù)量與運(yùn)算復(fù)雜度計(jì)算公式如下所示:
其中:Cin和Cout分別表示模塊的輸入通道和輸出通道;T為縮放系數(shù);H和W分別代表特征圖的高和寬。
本文分別對(duì)不同的縮放系數(shù)T在MPII(Max Planck Institute for Informatics)數(shù)據(jù)集[20]上進(jìn)行了實(shí)驗(yàn)比較,發(fā)現(xiàn)縮放系數(shù)T=1 比T=2 對(duì)預(yù)測(cè)人體關(guān)鍵點(diǎn)的平均準(zhǔn)確率多出了1.9 個(gè)百分點(diǎn),同時(shí)縮放系數(shù)T與模型的參數(shù)量和運(yùn)算復(fù)雜度成反比,因此在本文實(shí)驗(yàn)中的縮放系數(shù)T=1。
CoordAttention 模塊在獲取通道間特征信息的同時(shí),在空間方向?qū)崿F(xiàn)對(duì)精確位置信息和感興趣領(lǐng)域的捕獲。該模塊依次實(shí)現(xiàn)坐標(biāo)信息嵌入模塊(Coordinate Information Embedding Module)和坐標(biāo)注意力生成模塊(Coordinate Attention Generation Module)兩個(gè)功能。CoordAttention 模塊的具體結(jié)構(gòu)如圖3 所示。
圖3 CoordAttention模塊Fig.3 CoordAttention module
CoordAttention 模塊的步驟如下:
1)首先對(duì)于輸入的特征圖,分別使用豎直和水平方向的自適應(yīng)平均池化層對(duì)每個(gè)特征通道進(jìn)行特征提??;
2)將生成的特征圖進(jìn)行拼接,然后利用1×1 卷積,同時(shí)生成具有豎直和水平方向空間信息的中間特征圖;
3)沿空間方向?qū)⒅虚g特征圖分為兩個(gè)特征圖,并分別利用1×1 卷積來(lái)對(duì)通道數(shù)轉(zhuǎn)換;
4)得到豎直和水平空間方向的注意力權(quán)重,與輸入特征圖相乘,得到帶有注意力權(quán)重的特征圖。
CoordAttention 模塊中一共采用了3 個(gè)1×1卷積,其中Cmid為壓縮后的特征通道。其參數(shù)量與運(yùn)算復(fù)雜度計(jì)算公式分別如式(3)~(4)所示:
本文提出了兩種構(gòu)建模型的基本模塊,分別是SCAneck模塊和SCAblock 模塊,模塊的結(jié)構(gòu)如圖4 所示。
圖4 SCAneck模塊和SCAblock模塊Fig.4 SCAneck module and SCAblock module
因?yàn)镠RNet 模型主要由Bottleneck 模塊和Basicblock 模塊組成,因此本文對(duì)HRNet 模型中的Bottleneck 模塊和Basicblock 模塊進(jìn)行重新設(shè)計(jì)。首先采用Sandglass 模塊替換標(biāo)準(zhǔn)的3×3 卷積,并重新考慮了縮減層和擴(kuò)展層的縮放系數(shù),保證對(duì)特征圖的特征提取能力;其次在每個(gè)模塊中都添加了CoordAttention 模塊獲取跨通道特征信息和精確的空間位置信息。通過(guò)引入Sandglass 模塊和CoordAttention 模塊,在保證模型性能的前提下大幅降低模型的參數(shù)量和運(yùn)算復(fù)雜度。當(dāng)卷積層的輸入通道和輸出通道數(shù)相同時(shí)[15],系統(tǒng)訪問(wèn)消耗最小、模型速度最快,因此在設(shè)計(jì)SCANet 模型基礎(chǔ)模塊時(shí),保留了HRNet 模型中基礎(chǔ)模塊原有的殘差架構(gòu),并使基礎(chǔ)模塊內(nèi)部的Sandglass 模塊和CoordAttention 模塊中通道數(shù)Cin=Cout。下面分別給出HRNet 基礎(chǔ)模塊和SCANet 基礎(chǔ)模塊的參數(shù)量計(jì)算公式:
相較于HRNet 模型的基礎(chǔ)模塊,本文提出的SCAneck 模塊和SCAblock 模塊在模型訓(xùn)練時(shí)降低參數(shù)量的比率為:
式(5)~(6)表示HRNet 基礎(chǔ)模塊的參數(shù)量計(jì)算公式;式(7)~(8)表示改進(jìn)后SCANet 基礎(chǔ)模塊的參數(shù)量計(jì)算公式。首先將式(1)、(3)代入式(7)~(8)中,得到SCAneck 模塊和SCAblock 模塊的參數(shù)量;然后將式(5)~(8)代入式(9)~(11)中進(jìn)行近似計(jì)算,得到SCANet 模型中的基礎(chǔ)模塊與HRNet模型中的基礎(chǔ)模塊所降低參數(shù)量的比率。在Stage1 中應(yīng)用了4 個(gè)SCAneck 模塊,其中:式(9)表示第1 個(gè)SCAneck 模塊與Bottleneck 模塊相比所降低參數(shù)量的比率;式(10)表示后3個(gè)SCAneck 模塊與Bottleneck 模塊相比所降低參數(shù)量的比率。第1 個(gè)SCAneck 模塊的輸入通道Cin=64,輸出通道Cout=256,所以在進(jìn)行跳躍連接時(shí),添加了1×1 卷積進(jìn)行通道數(shù)轉(zhuǎn)換,使得通道數(shù)由64 變成256;其余3 個(gè)模塊的輸入通道和輸出通道都是256,所以在進(jìn)行跳躍連接時(shí),只進(jìn)行特征圖相加,而不進(jìn)行通道數(shù)轉(zhuǎn)換,因此rneck1與rneck2結(jié)果不同。式(11)表示SCAblock 模塊與Basicblock 模塊相比所降低參數(shù)量的比率。在整個(gè)模型中SCAblock 模塊被應(yīng)用于Stage2、Stage3、Stage4,共有32 個(gè)32 通道、32 個(gè)64 通道、28 個(gè)128 通道和12 個(gè)256 通道的SCAblock 模塊,并且在SCAblock 模塊中輸入通道等于輸出通道。由于在Sandglass 內(nèi)部的縮放系數(shù)T=1,所以在SCAblock 模塊內(nèi)部不進(jìn)行通道數(shù)的轉(zhuǎn)換,因此在整個(gè)模型中,不同平行分支的SCAblock 模塊降低的參數(shù)量比率都可以用rblock表達(dá)。
3.1.1 數(shù)據(jù)集描述
COCO(Common Objects in COntext)數(shù)據(jù)集[21]主要用于計(jì)算機(jī)視覺(jué)中,其中COCO 訓(xùn)練集中包含了118 287 張圖片,校驗(yàn)集中包含了5 000 張圖片,測(cè)試集中包含33 619 張圖片。在COCO 數(shù)據(jù)集標(biāo)注中包含全身17 個(gè)關(guān)鍵點(diǎn),分別是:0 表示鼻子,1 表示左眼,2 表示右眼,3 表示左耳,4 表示右耳,5表示左肩,6 表示右肩,7 表示左肘,8 表示右肘,9 表示左手腕,10 表示右手腕,11 表示左臀,12 表示右臀,13 表示左膝,14 表示右膝,15 表示左腳踝,16 表示右腳踝。
3.1.2 評(píng)估標(biāo)準(zhǔn)
本節(jié)實(shí)驗(yàn)在COCO 訓(xùn)練集上訓(xùn)練,在COCO 校驗(yàn)集上進(jìn)行驗(yàn)證,并在COCO 測(cè)試集上進(jìn)行測(cè)試。驗(yàn)證標(biāo)準(zhǔn)采用OKS(Object Keypoint Similarity),包括:AP50為OKS=0.5 時(shí)預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率,AP75為OKS=0.75 時(shí)預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率,平均精確率均值(mean Average Precision,mAP)為OKS=0.50,0.55,???,0.90,0.95 時(shí)10 個(gè)閾值之間所有預(yù)測(cè)關(guān)鍵點(diǎn)準(zhǔn)確率的平均值,APM是中尺寸物體預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率,APL是大尺寸物體預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率,AR 為OKS=0.50,0.55,…,0.90,0.95 時(shí)10 個(gè)閾值點(diǎn)的平均值。具體實(shí)現(xiàn)方法如式(12)所示:
其中:di表示預(yù)測(cè)的關(guān)鍵點(diǎn)與數(shù)據(jù)集中標(biāo)注的關(guān)鍵點(diǎn)之間的歐氏距離;vi為真實(shí)關(guān)鍵點(diǎn)的標(biāo)志位,vi∈{0,1,2}表示預(yù)測(cè)關(guān)鍵點(diǎn)的可見(jiàn)性;s是目標(biāo)尺度;ki是每種關(guān)鍵點(diǎn)的相關(guān)控制衰減常數(shù);ski表示每個(gè)關(guān)鍵點(diǎn)的標(biāo)準(zhǔn)差。每個(gè)預(yù)測(cè)的關(guān)鍵點(diǎn)相似度都在[0,1]的范圍內(nèi),當(dāng)OKS=1 時(shí),表示完美的預(yù)測(cè)關(guān)鍵點(diǎn);當(dāng)OKS=0 時(shí),表示預(yù)測(cè)值與真實(shí)值差距太大。
3.1.3 訓(xùn)練細(xì)節(jié)
本節(jié)的實(shí)驗(yàn)環(huán)境配置如下:Ubuntu 18.04 LST 64 位系統(tǒng),2 塊GeForce RTX 3090 顯卡,采用PyTorch 1.8.1 深度學(xué)習(xí)框架。
在COCO 訓(xùn)練集上進(jìn)行訓(xùn)練時(shí),將COCO 訓(xùn)練集中的圖像裁剪后縮放到固定的256×192。采用Adam 作為網(wǎng)絡(luò)訓(xùn)練時(shí)的優(yōu)化器,初始學(xué)習(xí)率是1E-3。在第170 輪時(shí)學(xué)習(xí)率衰減到1E-4,在第210 輪時(shí),學(xué)習(xí)率衰減到1E-5,網(wǎng)絡(luò)總共訓(xùn)練230 輪。每個(gè)GPU 的最小批量大小為32。在訓(xùn)練過(guò)程中同時(shí)使用隨機(jī)的圖像旋轉(zhuǎn)和水平翻轉(zhuǎn)進(jìn)行數(shù)據(jù)增強(qiáng)。
3.1.4 實(shí)驗(yàn)驗(yàn)證分析
本節(jié)在COCO 校驗(yàn)集上的實(shí)驗(yàn)結(jié)果如表1 所示。結(jié)果表明SCANet 模型與其他先進(jìn)的人體姿態(tài)估計(jì)模型相比,在更少的參數(shù)量和更低的運(yùn)算復(fù)雜度的基礎(chǔ)上仍然取得了較好的性能。SCANet 模型的每個(gè)階段中同一個(gè)平行分支都保持相同的分辨率,并通過(guò)使用SCAneck 模塊和SCAblock 模塊對(duì)HRNet 基礎(chǔ)模塊進(jìn)行改進(jìn)。與HRNet 模型相比,根據(jù)式(9)~(11)計(jì)算出SCANet 模型降低的參數(shù)量約為57%,并在此基礎(chǔ)上根據(jù)式(2)、(4)計(jì)算出模型降低的運(yùn)行復(fù)雜度約為70%,而實(shí)際上SCANet 模型相較于HRNet 模型降低的參數(shù)量與運(yùn)算復(fù)雜度分別為52.6%和60.6%,這是由于模型中還存在著預(yù)處理階段和信息交互模塊等。
表1 COCO校驗(yàn)集上的性能比較Tab.1 Performance comparison on COCO validation set
與HRNet 模型相比,本文提出的SCANet 模型在mAP 上僅降低了1.1 個(gè)百分點(diǎn),但在AP50上優(yōu)于HRNet 模型,提高了0.5 個(gè)百分點(diǎn),而其他的驗(yàn)證標(biāo)準(zhǔn)OKS與HRNet 模型相比均保持了相當(dāng)?shù)乃健Ec最新的輕量型模型Lite-HRNet-18和Lite-HRNet-30 相比,本文提出的SCANet 模型雖然提升了模型的參數(shù)量和運(yùn)算復(fù)雜度,但是在mAP 上分別提升了7.5和5.1 個(gè)百分點(diǎn),同時(shí)所有的驗(yàn)證標(biāo)準(zhǔn)OKS均優(yōu)于Lite-HRNet-18 模型和Lite-HRNet-30 模型。相較于Hourglass、級(jí)聯(lián)金字塔網(wǎng)絡(luò)(Cascaded Pyramid Network,CPN)、CPN+OHKM(Online Hard Keypoints Mining)和SimpleBaseline,本文提出的SCANet 模型在預(yù)測(cè)關(guān)鍵點(diǎn)的mAP 上分別提升了5.4、3.7、2.9 和1.9 個(gè)百分點(diǎn)。
在COCO 測(cè)試集上的實(shí)驗(yàn)結(jié)果如表2 所示,與COCO 校驗(yàn)集實(shí)驗(yàn)不同的是,輸入尺寸變成了384×288。并且HRNet模型是加載預(yù)訓(xùn)練模型,SCANet 模型是不加載預(yù)訓(xùn)練模型,因此SCANet 模型與HRNet 模型相比,模型的mAP 下降了2.1 個(gè)百分點(diǎn),但是模型的參數(shù)量和運(yùn)算復(fù)雜度分別降低了52.6%和61.2%。
表2 COCO測(cè)試集上的性能比較Tab.2 Performance comparison on COCO test set
3.2.1 數(shù)據(jù)集描述
MPII 是用于人體姿態(tài)估計(jì)的數(shù)據(jù)集,包含24 984 個(gè)圖像,其中包含40 000 個(gè)不同的人體實(shí)例,有28 000 左右的人體實(shí)例被作為訓(xùn)練樣本,2 900 左右的人體實(shí)例被作為校驗(yàn)樣本,11 000 左右的人體實(shí)例被作為測(cè)試樣本,標(biāo)注中包含全身的16 個(gè)關(guān)鍵點(diǎn)。
3.2.2 評(píng)估標(biāo)準(zhǔn)
本節(jié)中MPII 數(shù)據(jù)集采用正確估計(jì)關(guān)鍵點(diǎn)的比例(Percentage of Correct Keypoints,PCK)評(píng)測(cè)指標(biāo)。其中預(yù)測(cè)的關(guān)鍵點(diǎn)坐標(biāo)與真實(shí)關(guān)鍵點(diǎn)坐標(biāo)要小于αlr,α是一個(gè)閾值,lr是參考距離,MPII 數(shù)據(jù)集采用α=0.5(PCKh@0.5),參考距離是頭部框?qū)蔷€的長(zhǎng)度。
3.2.3 訓(xùn)練細(xì)節(jié)
在MPII 數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí),統(tǒng)一將裁剪后的圖像縮放到固定的256×256,其他訓(xùn)練細(xì)節(jié)與COCO 數(shù)據(jù)集相同,采用了相同的參數(shù)配置和實(shí)驗(yàn)環(huán)境。
3.2.4 實(shí)驗(yàn)驗(yàn)證分析
SCANet 模型和其他人體姿態(tài)估計(jì)模型在MPII 校驗(yàn)集上的性能比較如表3 所示。在MPII 數(shù)據(jù)集上計(jì)算模型的參數(shù)量與COCO 數(shù)據(jù)集方法相同,但是在MPII 數(shù)據(jù)集上進(jìn)行訓(xùn)練時(shí)需要將圖像裁剪成256×256,與COCO 數(shù)據(jù)集中圖像為256×192 不同,因此在模型運(yùn)算復(fù)雜度上存在差異。計(jì)算得到SCANet 模型在MPII 數(shù)據(jù)集訓(xùn)練時(shí),相較于HRNet 模型降低的參數(shù)量和運(yùn)算復(fù)雜度分別約為57%和71%,但實(shí)際模型降低的參數(shù)量和運(yùn)算復(fù)雜度分別為52.6%和61.1%。由于SCANet 模型沒(méi)有在ImageNet 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,因此表3中的模型都在不加載預(yù)訓(xùn)練模型的前提下進(jìn)行性能比較。
在人體姿態(tài)估計(jì)模型中,對(duì)人體不同關(guān)鍵點(diǎn)的預(yù)測(cè)難易程度不一樣,因此不同部位的預(yù)測(cè)效果存在差異,對(duì)于腰部和腿部這類(lèi)關(guān)鍵點(diǎn)的預(yù)測(cè)要明顯難于頭部附近的關(guān)鍵點(diǎn)預(yù)測(cè)。從表3 中可以看出SCANet 模型對(duì)于頭部、臀部關(guān)鍵點(diǎn)預(yù)測(cè)的準(zhǔn)確率上均高于HRNet 模型,并且在肩部、肘部、膝蓋等關(guān)鍵點(diǎn)的準(zhǔn)確率保持了相當(dāng)?shù)乃?,只是在手腕和腳踝等這些不容易預(yù)測(cè)關(guān)鍵點(diǎn)的準(zhǔn)確率上有差異。SCANet 模型相較于HRNet 模型在平均準(zhǔn)確率方面僅降低了0.6 個(gè)百分點(diǎn),而相較于輕量型模型Lite-HRNet-18 和Lite-HRNet-30 在平均準(zhǔn)確率上分別提升了2.6 和1.7 個(gè)百分點(diǎn)。相較于其他算法如:Hourglass 和SimpleBaseline,在相同條件下,本文提出的SCANet 模型在預(yù)測(cè)關(guān)鍵點(diǎn)的平均準(zhǔn)確率上分別提升了1.2和0.8 個(gè)百分點(diǎn),并且對(duì)人體不同關(guān)鍵點(diǎn)的預(yù)測(cè)均優(yōu)于這兩種算法。實(shí)驗(yàn)結(jié)果表明,本文提出的SCANet 模型在具有更小的參數(shù)量與計(jì)算量的前提下,通過(guò)引入Sandglass 模塊和CoordAttention 模塊能加強(qiáng)特征圖通道和空間信息的特征提取,對(duì)人體關(guān)鍵點(diǎn)的預(yù)測(cè)仍然具有良好的性能。
表3 MPII校驗(yàn)集上的性能比較(PCKh@0.5)Tab.3 Performance comparison on MPII validation set(PCKh@0.5)
在MPII 測(cè)試集上的驗(yàn)證結(jié)果如表4 所示,結(jié)果表明SCANet 模型與HRNet 模型相比,模型降低的參數(shù)量與運(yùn)算復(fù)雜度與MPII 校驗(yàn)集相同,分別下降了52.6%和61.1%。并且SCANet 模型在測(cè)試集上預(yù)測(cè)人體關(guān)鍵點(diǎn)的準(zhǔn)確率與校驗(yàn)集保持了相當(dāng)?shù)乃?,在平均?zhǔn)確率上下降了0.7 個(gè)百分點(diǎn),原因可能是此數(shù)據(jù)集性能趨于飽和,因此在測(cè)試集和校驗(yàn)集上,SCANet 模型和HRNet 模型性能差距不大。
表4 MPII測(cè)試集上的性能比較(PCKh@0.5)Tab.4 Performance comparison on MPII test set(PCKh@0.5)
3.2.5 消融分析
為了驗(yàn)證添加的Sandglass 模塊和CoordAttention 模塊分別對(duì)SCANet 模型的特征提取能力和對(duì)人體關(guān)鍵點(diǎn)預(yù)測(cè)準(zhǔn)確率的影響程度,分別構(gòu)建了有注意力機(jī)制和無(wú)注意力機(jī)制的SCANet 模型,其中無(wú)注意力機(jī)制的SCANet 模型使用Sandglass 模塊替代標(biāo)準(zhǔn)的3×3 卷積。實(shí)驗(yàn)在MPII 數(shù)據(jù)集上進(jìn)行訓(xùn)練,在MPII 校驗(yàn)集上進(jìn)行驗(yàn)證,并且都不加載預(yù)訓(xùn)練模型。
實(shí)驗(yàn)結(jié)果如表5 所示,采用控制變量的方法,無(wú)注意力機(jī)制的SCANet 模型,只使用Sandglass 模塊對(duì)HRNet 模型中的基礎(chǔ)模塊進(jìn)行改進(jìn),相較于HRNet 模型在參數(shù)量和運(yùn)算復(fù)雜度上分別降低了68.1%和62.1%。而無(wú)注意力機(jī)制的SCANet 模型與有注意力機(jī)制的SCANet 模型相比,兩種模型都使用了Sandglass 模塊。無(wú)注意力機(jī)制的SCANet 模型刪除了CoordAttention 模塊,模型的參數(shù)量和運(yùn)算復(fù)雜度分別下降了32.6%和2.7%,這是由于深度神經(jīng)網(wǎng)絡(luò)在計(jì)算運(yùn)算復(fù)雜度時(shí)涉及圖像的大小,而CoordAttention 模塊在捕獲通道間信息的基礎(chǔ)上還需要分別對(duì)水平和豎直兩個(gè)空間方向的特征進(jìn)行卷積計(jì)算。
表5 消融實(shí)驗(yàn)Tab.5 Ablation experiment
實(shí)驗(yàn)結(jié)果表明無(wú)注意力機(jī)制的SCANet 模型在只使用Sandglass 模塊對(duì)HRNet 模型中的基礎(chǔ)模塊進(jìn)行改進(jìn)時(shí),模型的平均準(zhǔn)確率相比HRNet 模型僅下降了1.3 個(gè)百分點(diǎn),不僅大幅度降低了模型的參數(shù)量與運(yùn)算復(fù)雜度,而且還能夠保證模型的性能,達(dá)到輕量型模型的目的。并且有注意力機(jī)制的SCANet 模型在加入注意力機(jī)制后并不會(huì)對(duì)模型的運(yùn)算復(fù)雜度造成很大的影響,而且SCANet 模型在刪除CoordAttention模塊后,模型的平均準(zhǔn)確率降低了0.7 個(gè)百分點(diǎn)。因此添加注意力機(jī)制能夠提高SCANet 模型在預(yù)測(cè)關(guān)鍵點(diǎn)時(shí)的準(zhǔn)確率。
本文在COCO 校驗(yàn)集上進(jìn)行可視化研究,隨機(jī)選取了一張同時(shí)存在人體折疊遮擋和物體遮擋的多人圖片。如圖5所示,圖中點(diǎn)表示人體的關(guān)鍵點(diǎn)位置,連線表示對(duì)關(guān)鍵點(diǎn)關(guān)系的建模。
圖5 有遮擋的關(guān)鍵點(diǎn)預(yù)測(cè)Fig.5 Key point prediction with occlusions
從圖5(b)和圖5(c)中對(duì)比得出,對(duì)于無(wú)遮擋的人體關(guān)鍵點(diǎn),SCANet 模型和HRNet 模型都能準(zhǔn)確地預(yù)測(cè)出人體關(guān)鍵點(diǎn),僅在預(yù)測(cè)關(guān)鍵點(diǎn)位置上略有差異。當(dāng)存在遮擋關(guān)鍵點(diǎn)和人體尺度較小的情況下,SCANet 模型相較于HRNet 模型能夠更好預(yù)測(cè)人體的關(guān)鍵點(diǎn)。
實(shí)驗(yàn)結(jié)果表明,SCANet 模型采用SCAneck 模塊和SCAblock 模塊這兩種基礎(chǔ)模塊,對(duì)HRNet 模型中的基礎(chǔ)模塊進(jìn)行改進(jìn),雖然降低了模型的參數(shù)量和運(yùn)算復(fù)雜度,但是兩種模塊本質(zhì)上使用了深度可分離卷積,對(duì)特征圖提取的特征少,會(huì)導(dǎo)致模型對(duì)特征的泛化能力不足。但是添加的Sandglass 模塊在高維特征之間傳遞更多的特征信息,CoordAttention 模塊加強(qiáng)了對(duì)特征圖通道和空間方向信息的特征提取,在一定程度上彌補(bǔ)了特征提取不足的缺陷,能夠很好地預(yù)測(cè)出尺度較小和遮擋的人體關(guān)鍵點(diǎn),具有較好的魯棒性。
圖6 是對(duì)人體的背影進(jìn)行關(guān)鍵點(diǎn)預(yù)測(cè)。從圖6 可以看出,當(dāng)人體所處環(huán)境光線較暗,并且同時(shí)存在關(guān)鍵點(diǎn)重疊遮擋的情況下,SCANet 模型和HRNet 模型都能較好地從人體的背影預(yù)測(cè)出人體的關(guān)鍵點(diǎn);但是SCANet 模型能夠預(yù)測(cè)出HRNet 模型沒(méi)有預(yù)測(cè)出來(lái)的關(guān)鍵點(diǎn),并對(duì)建模錯(cuò)誤的人體姿態(tài)進(jìn)行修正。
圖6 背影關(guān)鍵點(diǎn)預(yù)測(cè)Fig.6 Back key point prediction
實(shí)驗(yàn)結(jié)果表明,SCANet 模型相較于HRNet 模型,即使在光線較暗、遮擋等條件下,也能預(yù)測(cè)出關(guān)鍵點(diǎn),并對(duì)關(guān)鍵點(diǎn)關(guān)系進(jìn)行正確的建模,有較好的泛化能力和抗干擾能力。
本文通過(guò)引入Sandglass 模塊和CoordAttention 模塊對(duì)HRNet 模型中的基礎(chǔ)模塊進(jìn)行改進(jìn),通過(guò)構(gòu)建SCAneck 模塊和SCAblock 模塊這兩種輕量型的模塊,提出了一種輕量型人體姿態(tài)估計(jì)網(wǎng)絡(luò)SCANet。在降低模型參數(shù)量和運(yùn)算復(fù)雜度的同時(shí),有效地保證了特征圖的特征信息提取,更好地保留了關(guān)鍵點(diǎn)的空間位置信息。本文提出的SCANet 模型不僅能夠預(yù)測(cè)尺度較小和遮擋的人體關(guān)鍵點(diǎn),還能對(duì)建模錯(cuò)誤的人體姿態(tài)進(jìn)行修正,但是在模型的參數(shù)量和運(yùn)算復(fù)雜度方面仍然需要改進(jìn)。
本文使用COCO 數(shù)據(jù)集和MPII 數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證,在硬件設(shè)施允許的情況下,可以使用更大的ImageNet 數(shù)據(jù)集進(jìn)行人體的關(guān)鍵點(diǎn)預(yù)測(cè)。在保證模型對(duì)人體關(guān)鍵點(diǎn)預(yù)測(cè)準(zhǔn)確率的前提下,如何設(shè)計(jì)在實(shí)際場(chǎng)景中應(yīng)用的輕量型人體姿態(tài)估計(jì)模型,是今后研究的主要方向。