劉穎,鄭力新
(華僑大學(xué)工學(xué)院,泉州262500)
人體姿態(tài)估計(jì)在當(dāng)代生活中的重要性日益凸顯,它在自動(dòng)駕駛、人體尺度測(cè)量、人體異常檢測(cè)、人口密度分析、醫(yī)學(xué)等多個(gè)方面起到很重要的作用。在各種人工智能展會(huì)上我們都會(huì)發(fā)現(xiàn)留有它的一席之地。
現(xiàn)在的人體姿態(tài)估計(jì)算法主要有基于top-down[1-4]和down-up[5-7]兩個(gè)思想的研究。top-down 是先檢測(cè)出人體框,然對(duì)框類人體進(jìn)行關(guān)鍵點(diǎn)檢測(cè)[8]。down-up 是直接對(duì)圖片中的人體關(guān)鍵點(diǎn)進(jìn)行檢測(cè),然后對(duì)檢測(cè)出的關(guān)鍵點(diǎn)進(jìn)行人體歸屬分類。down-up 方法雖然檢測(cè)速度比較快,但在檢測(cè)精度上相比top-down 方法相差還是比較多,因此近年top-down 方法成為人體姿態(tài)估計(jì)研究的主流思想。本文采用top-down 方法綜合以往對(duì)姿態(tài)估計(jì)的研究成果進(jìn)一步對(duì)算法進(jìn)行了改進(jìn),在關(guān)鍵點(diǎn)的檢測(cè)精度上取得了一定的提高。
本文是基于HRNet 網(wǎng)絡(luò)的一種改進(jìn)網(wǎng)絡(luò)[1]。在HRNet 中只將最后一個(gè)stage 的輸出作為反向參數(shù)調(diào)整的依據(jù),這樣可能會(huì)導(dǎo)致中間各層訓(xùn)練效果的丟失,因此我使用了中間監(jiān)督的方法,將每一個(gè)階段的的輸出結(jié)果計(jì)算出的loss 值進(jìn)行相加,以此作為反向參數(shù)調(diào)整的依據(jù)。反卷積利用了卷積核對(duì)尺度較小的圖片矩陣進(jìn)行尺寸上的擴(kuò)張,相對(duì)于直接像素復(fù)制擴(kuò)張的上采樣,保留了更多的原始尺寸上的特征,有利于檢測(cè)出各尺度圖片上的特征信息,使最終的檢測(cè)結(jié)果更加的準(zhǔn)確。因此本次研究在每一個(gè)中間監(jiān)督輸出網(wǎng)絡(luò)上都使用了反卷積。我們?cè)谥虚g監(jiān)督輸出部分加入了一個(gè)子網(wǎng)絡(luò),它包括一個(gè)反卷積層將原始像素進(jìn)行擴(kuò)張,接著是一個(gè)殘差網(wǎng)絡(luò)對(duì)擴(kuò)張后的圖片信息進(jìn)行提取,最后使用了一個(gè)卷積網(wǎng)絡(luò)將其縮小到原始HRNet 網(wǎng)絡(luò)輸出的格式。
HRNet 網(wǎng)絡(luò)總體來(lái)看是由三個(gè)不同分辨率的分支組成,最后使用上采樣對(duì)特征進(jìn)行融合輸出,它分為4個(gè)stage,第一個(gè)stage 包含一個(gè)(32×64×64),然后經(jīng)過一個(gè)分辨率變化層將(32×64×64)變化成為(32×64×64)和(64×32×32),然后進(jìn)入第二個(gè)stage,stage2 包含3 個(gè)相同的module,每個(gè)module 最后一層卷積層均進(jìn)行特征融合,低分辨率向高分辨率融合采用直接上采樣,高分辨率到低分辨率采用卷積,重復(fù)分辨率擴(kuò)張層和stage,到stage4 時(shí)能獲得含有四個(gè)分辨你和通道數(shù)的stage,在最后一個(gè)module 的最后一層卷積層只進(jìn)行低分辨率到最高分辨率的特征融合,如圖1 所示。本次研究在HRNet 上做了一些改善。
圖1
HRNet 中網(wǎng)絡(luò)結(jié)構(gòu)最大的優(yōu)勢(shì)是訓(xùn)練了多分辨率上的圖片特征,分別是64×64、32×32、16×16、8×8,它們之間相互聯(lián)系又相對(duì)獨(dú)立的訓(xùn)練,盡可能多地捕獲到了圖片不同分辨率上的特征和聯(lián)系,使得檢測(cè)結(jié)果獲得了很大的提高,但是隨著網(wǎng)絡(luò)層數(shù)的增加有一些淺層的特征過度訓(xùn)練,導(dǎo)致特征效果降低。但是如果網(wǎng)絡(luò)設(shè)置太短會(huì)使得一些更深層次的特征得不到提取,因此在本次實(shí)驗(yàn)中引入了中間監(jiān)督,將短網(wǎng)絡(luò)和深網(wǎng)絡(luò)訓(xùn)練的特征都進(jìn)行提取,對(duì)它們進(jìn)行訓(xùn)練和加強(qiáng),使得訓(xùn)練效果得到了很大的提高。
本次對(duì)HRNet 中每個(gè)stage 輸出結(jié)果都進(jìn)行了監(jiān)督。我們?cè)诿恳粋€(gè)stage 中的最后一個(gè)模塊的fuse 層輸出的結(jié)果增加了一個(gè)out 用于輸出最高分辨率的圖片特征,最后計(jì)算每一個(gè)out 分支的loss,將所有分支loss 和作為總loss 進(jìn)行反向傳播。如圖2 所示;這樣的改進(jìn)有利于對(duì)前幾層信息的充分利用。
HRNet 是在64×64、32×32、16×16、8×8 四個(gè)級(jí)別的分辨率上對(duì)圖片特征進(jìn)行訓(xùn)練,本次改進(jìn)算法中我們使用了反卷積算法在每一個(gè)stage 輸出上對(duì)分辨率進(jìn)行了放大,由原本的64×64 放大到了128×128,這樣可以提高對(duì)中小型人物特征的獲取。緊接著我們使用了一個(gè)殘差網(wǎng)絡(luò)對(duì)128×128 分辨率特征進(jìn)行訓(xùn)練。我們嘗試過使用更多的殘差模塊對(duì)其進(jìn)行特征訓(xùn)練,但是當(dāng)殘差網(wǎng)絡(luò)為一個(gè)時(shí)取得了最佳的結(jié)果。原始HRNet中上采樣都是使用的基于像素復(fù)制的直接擴(kuò)張方法,相比于直接擴(kuò)張方法利用反卷積進(jìn)行尺度擴(kuò)張更能保留原始尺寸中的特征信息。在本次研究中我們將每個(gè)中間層的輸出使用反卷積操作對(duì)其像素進(jìn)行擴(kuò)張。中間監(jiān)督部分輸出后的網(wǎng)絡(luò)結(jié)構(gòu)如圖3。
圖2 改進(jìn)網(wǎng)絡(luò)總體結(jié)構(gòu)圖
圖3 中間監(jiān)督輸出網(wǎng)絡(luò)圖
HRNet 網(wǎng)絡(luò)是基于殘差網(wǎng)絡(luò)單元實(shí)現(xiàn)的,我們對(duì)殘差基本單元進(jìn)行了改進(jìn),給殘差網(wǎng)絡(luò)多加了一個(gè)分支,在這個(gè)分支中,首先對(duì)殘差輸入c*H*W 中每一個(gè)通道進(jìn)行平均池化,使其結(jié)構(gòu)變?yōu)镃*1*1,再將其進(jìn)行歸一化,用激活函數(shù)ReLU 對(duì)其進(jìn)行激活,接著將其進(jìn)行Sigmoid 操作,將其轉(zhuǎn)換成0-1 的值,再將其與第一個(gè)平均池化的結(jié)果相乘,得到最終每個(gè)通道的權(quán)重W,利用W 對(duì)殘差輸入的每個(gè)通道進(jìn)行軟化。將得到的軟化結(jié)果與殘差輸入和原始輸入X 相加,得到最終的改進(jìn)殘差網(wǎng)絡(luò)輸出結(jié)果[8]。殘差網(wǎng)絡(luò)廣泛應(yīng)用在所有的網(wǎng)絡(luò)算法中,主要是因?yàn)樗茨芎芎玫乇3值讓拥奶卣鞑槐黄茐挠帜芴釤挸龈顚哟蔚膱D片特征。實(shí)現(xiàn)了圖片特征的跨層傳遞[9]。因?yàn)槠涫菦]有領(lǐng)域針對(duì)性的,雖然訓(xùn)練效果得到了提高,但在一些目的性比較強(qiáng)的網(wǎng)絡(luò)中,如對(duì)物體分類、分割和關(guān)鍵點(diǎn)檢測(cè),它不能很好很快的集中到我們想要獲取物體的地方,使得訓(xùn)練難度加大,結(jié)果差強(qiáng)人意,因此我提出了這個(gè)改進(jìn)殘差網(wǎng)絡(luò),它可以在保留原始?xì)埐钚畔⒌耐瑫r(shí)又保持注意力集中機(jī)制,使訓(xùn)練結(jié)果更加的準(zhǔn)確。如圖4 所示。
圖4 改進(jìn)殘差網(wǎng)絡(luò)圖
我們?cè)贛PII 數(shù)據(jù)集上對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了分析,這個(gè)數(shù)據(jù)集來(lái)源于人們?nèi)粘I钆臄z,包含了各種類型的圖片,是當(dāng)前進(jìn)行姿態(tài)訓(xùn)練和評(píng)估比較權(quán)威的一個(gè)數(shù)據(jù)集。它包括22246 個(gè)訓(xùn)練圖片和2958 個(gè)測(cè)試數(shù)據(jù)[10]。我們使用PCKH(正確關(guān)鍵點(diǎn)的頭歸一化概率)得分作為評(píng)價(jià)指標(biāo)。將原始HRNet 網(wǎng)絡(luò)與我們的該進(jìn)HRNet 算法在MPII 數(shù)據(jù)集上的檢測(cè)精度進(jìn)行了比較。
表1 和表2 比較了兩個(gè)算法的結(jié)果、模型大小和方法的GELOPs,可知改進(jìn)后的算法相比原來(lái)的算法在每個(gè)關(guān)鍵點(diǎn)的檢測(cè)精度上都有提升[11]。使用ResNet-152 作為主干,輸入大小為256×256[1]。我們的方法達(dá)到了91.0 KCh@0.5 的分?jǐn)?shù),HRNet 的結(jié)果為90.0,得到了比較大的提升。
表2 模型大小和方法的GELOPs 表
COCO 數(shù)據(jù)集:COCO 數(shù)據(jù)集[12]包含超過20 萬(wàn)張圖像和25 萬(wàn)個(gè)人體實(shí)例,這些實(shí)例都標(biāo)有17 個(gè)關(guān)鍵點(diǎn)。我們?cè)贑OCO 的train2017 數(shù)據(jù)集上訓(xùn)練我們的模型,包括57K 個(gè)圖像和150K 個(gè)person 實(shí)例。我們使用OSK 作為評(píng)判工具將改進(jìn)后的網(wǎng)絡(luò)和原始HRNet 網(wǎng)絡(luò)在COCO 數(shù)據(jù)集上的檢測(cè)精度進(jìn)行了比較,實(shí)驗(yàn)結(jié)果如表3。
由表3 可知我們的改進(jìn)算法在中等大小人體身上的關(guān)鍵點(diǎn)檢測(cè)精度得到了提高。
表1 MPII 數(shù)據(jù)集上檢測(cè)結(jié)果對(duì)比表
表3 COCO 數(shù)據(jù)集上檢測(cè)結(jié)果對(duì)比表
本文對(duì)原始HRNet 網(wǎng)絡(luò)進(jìn)行了改善,將改進(jìn)后的壓縮殘差網(wǎng)絡(luò)代替原始的殘差網(wǎng)絡(luò)[13-14],能更好地檢測(cè)出人體的關(guān)鍵點(diǎn)。在網(wǎng)絡(luò)中加入了中間監(jiān)督概念[15-17],并用反卷積代替原始簡(jiǎn)單的像素賦值擴(kuò)張,這樣可以提高圖片中較小人體的關(guān)鍵點(diǎn)檢測(cè)精度,在我們實(shí)際拍攝照片時(shí),往往較小型人體占大多數(shù),故改進(jìn)的算法更貼近實(shí)際應(yīng)用。