徐 銳,馮 瑞
1(復(fù)旦大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,上海 201203)
2(上海視頻技術(shù)與系統(tǒng)工程研究中心,上海 201203)
從圖片中進行2D 人體姿勢估計是許多計算機視覺高階任務(wù)的基礎(chǔ),例如動作捕捉,手勢識別和活動識別等.在神經(jīng)網(wǎng)絡(luò)出現(xiàn)之前就有很多基于圖結(jié)構(gòu)模型(pictorial structure model)的方法[1–7]試圖去解決這個問題.但是隨著卷積神經(jīng)網(wǎng)絡(luò)和大規(guī)模數(shù)據(jù)集的出現(xiàn),可以讓網(wǎng)絡(luò)模型即使在苛刻的場景中也表示出良好的預(yù)測效果,而無視人體姿勢的約束和大的外觀的變換.DeepPose[8]首先將卷積神經(jīng)網(wǎng)絡(luò)帶入人體姿勢估計領(lǐng)域,就優(yōu)于所有的傳統(tǒng)方法.之后Tompson[9]使用回歸熱點圖方法來取代直接回歸坐標值,目前大部分網(wǎng)絡(luò)都是直接使用均方損失函數(shù)回歸熱點圖的方式來進行學(xué)習(xí),并未考慮到熱點圖中前景和背景之間像素點不均衡問題,會導(dǎo)致網(wǎng)絡(luò)傾向?qū)W習(xí)背景,影響網(wǎng)絡(luò)的性能.
所以本文提出了一個改進的損失函數(shù)去解決熱點圖中前景和背景之間樣本不均衡問題,并命名為聚焦均方損失函數(shù),通過對前景賦予高權(quán)重,背景賦予低權(quán)重,使得網(wǎng)絡(luò)學(xué)習(xí)的重心放在前景部分,減少背景對網(wǎng)絡(luò)性能的影響.
本文組織如下:在第1 節(jié)簡要介紹人體姿勢估計領(lǐng)域經(jīng)典網(wǎng)絡(luò).第2 節(jié)介紹所提出的聚焦均方損失函數(shù),并于均方損失函數(shù)對比,以分析其優(yōu)點.第3 節(jié)為實驗部分,通過實驗驗證我們所提出的聚焦損失函數(shù)在公開數(shù)據(jù)集MPII[10]和MSCOCO[11]上的性能.最后在第4 節(jié)我們對全文工作做了總結(jié)與展望.
深度學(xué)習(xí)出現(xiàn)之前人體姿勢估計的主流模型一直是基于樹形結(jié)構(gòu)的圖模型,通常是基于Felzenszwalb和Huttenlocher 所提出的高效的圖結(jié)構(gòu)方法[12].但是隨著卷積神經(jīng)網(wǎng)絡(luò)和大規(guī)模數(shù)據(jù)集的出現(xiàn),深度學(xué)習(xí)方法主要占據(jù)主流.DeepPose 首先將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于人體姿勢估計領(lǐng)域,DeepPose 網(wǎng)絡(luò)是基于AlexNet[13]結(jié)構(gòu),直接回歸坐標點.之后Tompson 等提出使用網(wǎng)絡(luò)回歸熱點圖的方法來替代直接回歸坐標點值.回歸熱點圖的優(yōu)勢在于:可以讓網(wǎng)絡(luò)全卷積,減少參數(shù)量,并捕捉關(guān)鍵點之間的相關(guān)關(guān)系以及前景與背景之間的對比關(guān)系.CPM[14]網(wǎng)絡(luò)使用級聯(lián)網(wǎng)絡(luò)去逐級精化網(wǎng)絡(luò)的預(yù)測效果,同時生成center map 來約束網(wǎng)絡(luò),把響應(yīng)歸攏到圖像中心.HourglassNet[15]網(wǎng)絡(luò)由多個Hourglass Block 串聯(lián)而成,每個block 之間加入損失函數(shù),進行中間監(jiān)督,防止因為網(wǎng)絡(luò)過深導(dǎo)致的梯度消失.低分辨率的特征圖擁有較大的感受野,捕捉圖像的全局特征,高分辨率的特征圖擁有較小的感受野,捕捉圖像的局部特征,進行信息交融.微軟提出了基于Hourglass 改進的Pose_Resnet[16],將反卷積層替換原網(wǎng)絡(luò)的上采樣層,并剔除shortcut 支路,并只使用一個block 就得到SOTA (State Of The Art)效果.之后微軟又提出了全新的網(wǎng)絡(luò)HRNet[17],其主干網(wǎng)絡(luò)保持高分辨特征圖不變,此時高分辨特征圖不是從低分辨特征圖上采樣或者反卷積得到的,這樣可以保留更多細節(jié)信息,以獲得更豐富的局部特征信息,分支網(wǎng)絡(luò)進行降采樣以獲取全局特征,之后再將分支網(wǎng)絡(luò)的特征圖上采樣后與主干網(wǎng)絡(luò)進行信息交互,因此預(yù)測的熱點圖更加準確.OpenPose[18]使用向量(Part Affinity Field,PAF)對關(guān)鍵點進行建模,其網(wǎng)絡(luò)分成兩支,同時預(yù)測熱點圖和PAF,根據(jù)回歸得到的PAF 對關(guān)鍵點進行聚類.
目前人體姿勢估計領(lǐng)域的網(wǎng)絡(luò)都是通過回歸熱點圖來完成訓(xùn)練的,將各關(guān)鍵點的空間位置標識為前景,其他像素點即為背景.每張熱點圖對應(yīng)一個關(guān)鍵點,數(shù)據(jù)集圖片中標識多少關(guān)鍵點,則網(wǎng)絡(luò)需回歸相應(yīng)的熱點圖數(shù).所回歸的熱點圖中前景部分一般使用高斯函數(shù)來計算像素點值,如式(1)所示:
其中,x0,y0是高斯核中心坐標,x,y是當前坐標,δ是高斯核方差,高斯核寬度為 2 δ+1.我們?nèi)ˇ?6,x0,y0設(shè)置為熱點圖的中心坐標,生成的熱點圖如圖1所示.
圖1 熱點圖
圖1形象地展示了一個標準的熱點圖,高斯核(中心亮斑部分)只占據(jù)熱點圖全部像素的很小一部分.而當前大部分網(wǎng)絡(luò)算法都直接使用均方損失函數(shù)直接計算預(yù)測的特征圖與所標注的熱點圖像素值之間的歐式距離,并沒有考慮到高斯核與背景像素點不均衡問題.假設(shè)網(wǎng)絡(luò)所回歸的熱點圖大小為64×64 像素大小,高斯核的大小設(shè)置為13×13 像素大小,這樣前景與背景的比例為169:3927 (0.00430),故背景占據(jù)了熱點圖的絕大部分的像素點,而當前網(wǎng)絡(luò)直接使用均方損失函數(shù),計算標注熱點圖與網(wǎng)絡(luò)預(yù)測熱點圖的歐式距離,使得網(wǎng)絡(luò)平等地對待前景與背景,可能導(dǎo)致網(wǎng)絡(luò)更加傾向于回歸背景而非前景,降低了網(wǎng)絡(luò)的識別率.
而在目標檢測領(lǐng)域同樣存在著類似的不均衡問題.在檢測網(wǎng)絡(luò)的起始階段,需要通過SS (Selective Search)或卷積網(wǎng)絡(luò)生成一系列的候選框(Proposal),在后續(xù)階段根據(jù)一些規(guī)則,對這些候選框執(zhí)行保留,合并或拋棄等操作,最后得到網(wǎng)絡(luò)的檢測結(jié)果.但是所生成的候選框大部分都是被合并或拋棄的,對最終檢測結(jié)果沒有貢獻,即是負樣本.例如在Faster-R-CNN[19]網(wǎng)絡(luò)的起始階段會生成約2000 個候選框,但是正樣本候選框可能只有幾個,正負樣本比例嚴重失衡.為解決這個問題,有學(xué)者在交叉熵損失函數(shù)(如式(2)所示)的基礎(chǔ)上,提出了focal loss[20],根據(jù)標注標簽對損失函數(shù)賦予權(quán)重,使得降低了大量簡單負樣本在訓(xùn)練中的所占比重,數(shù)學(xué)形式如式(3)所示.
式(3)是focal loss 的數(shù)學(xué)形式,其中α是平衡因子,以平衡正負樣本不均衡問題,y是標注標簽數(shù)據(jù),y′是網(wǎng)絡(luò)所預(yù)測的數(shù)據(jù),γ是調(diào)節(jié)簡單樣本權(quán)重降低的速率,當γ為0 時focal loss 退化為交叉熵損失函數(shù),當γ增加時,調(diào)整因子的影響也在增加.
本文亦受目標檢測領(lǐng)域中focal loss 所啟發(fā),在均方損失函數(shù)的基礎(chǔ)上進行修改,增加前置權(quán)重,根據(jù)熱點圖中各像素點值對損失函數(shù)賦予不同的權(quán)重,使得網(wǎng)絡(luò)更傾向于學(xué)習(xí)高斯核的位置,對于回歸背景位置則施予更大的懲罰.
均方損失函數(shù)和聚焦均方損失函數(shù)的數(shù)學(xué)形式分別如式(4)和式(5)所示,而各自函數(shù)圖像如圖2所示.
圖2 均方損失函數(shù)與聚焦均方損失函數(shù)圖像
在式(4)中,yi為標注標簽,y′i是網(wǎng)絡(luò)所預(yù)測的標簽,n是每個mini batch 所含的樣本數(shù).
在式(5)中,我們在均方損失函數(shù)的基礎(chǔ)上加入了(yi+δ)γ前置權(quán)重,使的它對前景與背景賦予不同的權(quán)重.yi為標注標簽,y′i是網(wǎng)絡(luò)所預(yù)測的標簽,n是每個mini batch 所含的樣本數(shù),δ是極小值,因為背景中像素點yi為0,會導(dǎo)致?lián)p失函數(shù)為0,使得網(wǎng)絡(luò)無法學(xué)習(xí),本文中 σ取1e?3.γ是平衡因子,調(diào)整標注標簽對損失函數(shù)的貢獻大小.當yi處于熱點圖的高斯核中,yi值較大,此時對loss 賦予較高的權(quán)重.當yi處于背景位置時,yi值較小,此時對loss 賦予較低的權(quán)重.當γ為0 時,則聚焦均方損失函數(shù)退化為普通均方損失函數(shù).當γ增加時,像素點yi的值對loss 權(quán)重的影響也在增加.
為探究本文所提出的聚焦均方損失函數(shù)的γ值對網(wǎng)絡(luò)性能的影響影響,我們在MPII 公開數(shù)據(jù)集上使用HouglassNet 作為實驗網(wǎng)絡(luò),設(shè)置不同的聚焦均方損失函數(shù)γ值,并固定其他實驗條件,得到最終實驗結(jié)果如圖3所示.
圖3 聚焦均方損失函數(shù)的γ 值影響
觀察實驗結(jié)果圖3可以得到,當γ=0 時,此時聚焦均方損失函數(shù)退化為普通的均方損失函數(shù),在訓(xùn)練200 輪后,網(wǎng)絡(luò)在驗證集上的成績?yōu)?8.6.而γ=1 時,所提出的損失函數(shù)加速了網(wǎng)絡(luò)的收斂速度,并比使用均方損失函數(shù)的成績提高了4.6 的成績,達到了93.2.當γ值繼續(xù)增加,網(wǎng)絡(luò)的性能反而下降,這說明背景信息同樣可以幫助網(wǎng)絡(luò)定位關(guān)鍵點位置,而此時聚焦損失函數(shù)把過多的權(quán)重分配給前景,背景在損失函數(shù)中所占過低,網(wǎng)絡(luò)丟失了背景信息,導(dǎo)致關(guān)鍵點定位精度,因此一個合適的γ值是非常重要的.
所以在本文的后續(xù)實驗部分,我們設(shè)置聚集均方損失函數(shù)的γ為1.
本節(jié)詳細介紹實驗結(jié)果以及分析,首先簡單介紹實驗所使用的網(wǎng)絡(luò),之后在介紹實驗配置,展示實驗結(jié)果并做出相應(yīng)的分析.
本文實驗使用沙漏網(wǎng)絡(luò)(HourglassNet)和高分辨率網(wǎng)絡(luò)(HRNet)作為基準網(wǎng)絡(luò),來測試我們所提出的聚焦均方損失函數(shù)的有效性.
沙漏沙漏網(wǎng)絡(luò)(HourglassNet)是一種新穎的卷積網(wǎng)絡(luò)架構(gòu),利用多尺度特征來捕捉人體各個關(guān)鍵點的空間位置信息,網(wǎng)絡(luò)結(jié)構(gòu)形似沙漏狀,重復(fù)使用top-down到bottom-up 來推斷人體的關(guān)節(jié)點位置.每一個top-down到bottom-up 的結(jié)構(gòu)都是一個stacked hourglass 模塊(Hourglass Block),并在每個Block 之間都加入loss 進行中間監(jiān)督,以防止網(wǎng)絡(luò)過深導(dǎo)致梯度消失.考慮到參數(shù)問題,本文中我們使用含有8 個沙漏模塊的沙漏網(wǎng)絡(luò),結(jié)構(gòu)如圖4所示.
圖4 沙漏網(wǎng)絡(luò)結(jié)構(gòu)
沙漏網(wǎng)絡(luò)主要由卷積層,Batch Normaliztion,上采樣層和skip connection,激活函數(shù)選取ReLU.
而在HRNet 網(wǎng)絡(luò)的預(yù)處理階段對圖像進行提取特征,之后逐步將高到低分辨率子網(wǎng)逐個添加以形成更多的階段,并將多分辨率子網(wǎng)并行連接.網(wǎng)絡(luò)進行了反復(fù)的多尺度融合,以便每個高到低分辨率表示不斷地從其他并行表示中接收信息,從而獲得豐富的高分辨率表示.網(wǎng)絡(luò)的高分辨率特征圖不再是由低分辨率特征圖上采樣或反卷積得到,而是在主干網(wǎng)上保持,這樣可以保留更多的細節(jié)信息,網(wǎng)絡(luò)所預(yù)測的關(guān)鍵點熱點圖在空間上的位置更加精確.其網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示.
圖5 高分辨率網(wǎng)絡(luò)結(jié)構(gòu)
HRNet 結(jié)構(gòu)分為縱向Depth 和橫向Scale 兩個維度,橫向上不同分辨率子網(wǎng)絡(luò)并行,縱向上進行多分辨率信息融合,從上到下,每個stages 分辨率減半,通道數(shù)加倍.
本文實驗中我們選用MPII 和MSCOCO 為實驗數(shù)據(jù)集,并分別在各自評價指標下(PCKh@0.5 和OKS)報告我們所提出的聚焦損失函數(shù)在應(yīng)用在HourglassNet和HRNet 網(wǎng)絡(luò)的性能.
訓(xùn)練階段我們使用Faster-R-CNN 作為人體檢測網(wǎng),并將人體檢測框的高度或者寬度拓展到固定寬高比為4:3,然后從圖片中裁剪人體檢測框,并調(diào)整圖片到固定大小256×256 像素大小.對圖片使用數(shù)據(jù)增強技術(shù),包括隨機旋轉(zhuǎn)([?30°,30°]),隨機比例大小([0.65,1.35]),和隨機左右翻轉(zhuǎn)(p=0.5).我們選用Adam 優(yōu)化算法,在前10 輪訓(xùn)練中使用較小的學(xué)習(xí)率(1e?6)對網(wǎng)絡(luò)進行預(yù)熱,并在10 輪之后學(xué)習(xí)率設(shè)定為1e?3,之后分別在100 輪訓(xùn)練后下降到1e?5 和在150 輪訓(xùn)練后下降到1e?6.在200 輪后訓(xùn)練過程結(jié)束.
測試階段我們與訓(xùn)練階段一致,使用Faster-RCNN 作為人體檢測網(wǎng),從圖片中裁剪人體檢測框,并調(diào)整圖片到固定大小和左右翻轉(zhuǎn),輸入到關(guān)鍵點檢測網(wǎng)絡(luò)中,回歸熱點圖.我們通過平均原始圖片及其翻轉(zhuǎn)圖片的網(wǎng)絡(luò)回歸的熱點圖來作為最終預(yù)測的熱點圖.
硬件信息:4 塊Titan Xp 12 GB 顯卡,CPU:Intel Xeon E5-2620,RAM:128 GB,DISK:4 TB.
軟件信息:操作系統(tǒng)是Linux Ubuntu16.04,cuda 環(huán)境是cuda9.0+cudnn7,深度學(xué)習(xí)框架是Pytorch 1.0.0.
根據(jù)前文設(shè)置的實驗環(huán)境,訓(xùn)練與測試信息等,我們在表1報告在MPII 數(shù)據(jù)集上的聚焦均方損失函數(shù)應(yīng)用于HourglassNet 和HRNet 網(wǎng)絡(luò)的實驗成績,并在圖5展示詳細的訓(xùn)練與測試信息.
從表1可看出,在MPII 數(shù)據(jù)集上的PCKh@0.5 評價標準下,使用所提出的聚焦均方損失函數(shù)的HourglassNet比使用均方損失函數(shù)的在難以預(yù)測的關(guān)鍵點(Wrist 和Ankle)分別提升了1.3 和1.9 的成績,而在易于預(yù)測的關(guān)鍵點上,我們同樣也提升了網(wǎng)絡(luò)的性能,平均成績達到了88.0,高于原有成績87.5.對于HRNet,聚焦均方損失函數(shù)表現(xiàn)出相似的結(jié)果.這充分說明了我們所提出的聚焦均方損失函數(shù)可以有效地幫助網(wǎng)絡(luò)去學(xué)習(xí)那些困難的關(guān)鍵點,提升了網(wǎng)絡(luò)的性能.
表1 MPII 數(shù)據(jù)集上實驗結(jié)果
通過圖6可以看到,在MPII 數(shù)據(jù)集上使用聚焦均方損失函數(shù)的網(wǎng)絡(luò)(HourglassNet 和HRNet)在訓(xùn)練集和驗證集上的準確率均比使用均方損失函數(shù)的網(wǎng)絡(luò)的更高,其在訓(xùn)練集上的準確率提升了1.2%,驗證集上提升了0.9%,而且其loss 的收斂的速度更快,說明了聚焦均方損失函數(shù)可以有效地提升網(wǎng)絡(luò)的性能.我們又分別在表2和圖4分別報告在MSCOCO 數(shù)據(jù)集上的實驗成績和詳細信息.
在MSCOCO 數(shù)據(jù)集上的OKS 評價標準下,我們使用所提出的聚焦均方損失函數(shù)的HourglassNet 相比比于直接使用均方損失函數(shù)的精準率(AP)和召回率(AR)分別提升了0.021 和0.020 的成績,并可以看出聚焦均方損失函數(shù)提升了AP(M)和AR(M)成績,說明網(wǎng)絡(luò)有助于學(xué)習(xí)那些小的人體關(guān)鍵點.對于HRNet,聚焦均方損失函數(shù)分別提升了0.09 的AP 成績和0.07 的AR 成績.
通過圖7可以得到,在MSCOCO 數(shù)據(jù)集上使用聚焦均方損失函數(shù)的HourglassNet 和HRNet 網(wǎng)絡(luò)模型在訓(xùn)練集和驗證集上的準確率均比均方損失函數(shù)的更高,準確率分別提升了2.1%和0.8%,召回率分別提升了3.4%和1.2%,而且其loss 的收斂的速度更快且值更小.使用聚焦均方損失函數(shù)的loss 震蕩也比使用均方損失函數(shù)要小.本文所提出的聚焦均方損失函數(shù)可以有效地提升網(wǎng)絡(luò)在MSCOCO 數(shù)據(jù)集上的預(yù)測精度.圖8是關(guān)鍵點檢測結(jié)果示例.
圖6 MSCOCO 數(shù)據(jù)集上訓(xùn)練與驗證信息
表2 MSCOCO 數(shù)據(jù)集上實驗結(jié)果
圖7 MSCOCO 數(shù)據(jù)集上訓(xùn)練與驗證信息
圖8 關(guān)鍵點檢測結(jié)果示例
文中提出的方法并不像大多數(shù)方法那樣對網(wǎng)絡(luò)結(jié)構(gòu)進行修改來提升準確率,而是重新設(shè)計損失函數(shù)來解決熱點圖中前景和背景之間不均衡問題,讓網(wǎng)絡(luò)學(xué)習(xí)的重點放在前景中高斯核部分,減少背景噪聲對網(wǎng)絡(luò)性能的干擾.之后將所提出的聚焦損失函數(shù)應(yīng)用在經(jīng)典網(wǎng)絡(luò)(HourglassNet 和HRNet),展示了在公開數(shù)據(jù)集(MPII 和MSCOCO)下的實驗結(jié)果,從各個角度對實驗結(jié)果進行了分析,證明了本文提出的聚焦損失函數(shù)具有較高的精度和魯棒性.
在未來的研究工作中,我們將會在其他的網(wǎng)絡(luò)模型上進行實驗,用于驗證聚焦均方損失函數(shù)的實用性和魯棒性.同時,針對如何對網(wǎng)絡(luò)結(jié)構(gòu)本身進行設(shè)計和改進來提升性能,也需要在未來的科研中更加深入的研究.