李曉明,黃 慧,應 毅,徐建華,曾 岳,劉 洋
(1.三江學院計算機科學與工程學院,南京 210012;2.金陵科技學院軟件工程學院,南京 211169;3.江蘇省清江中學,江蘇淮安 223001)
機器視覺與模式識別技術應用于安全監控領域始于20 世紀90 年代,包括美國國防高等研究計劃署資助的視頻圖像檢索分析工具和遠距離人體識別系統,巴黎公共交通網絡提出的實時事件監測方案等。在公眾場景下,人作為視頻監控中的主要對象,需要對人體動作進行準確識別,以加強對圖像的理解及異常行為的預警。人體姿態估計是人體行為識別的基礎,它是在給定一幅圖像或者一段視頻中進行人體關鍵點位置定位的過程,對智慧醫療、智能安防及增強現實等領域具有廣闊的應用前景。
近年來,學者們提出了多種人體姿態估計算法,這些算法大致可以分為兩類:基于特征描述子的人體姿態估計算法和基于深度學習的人體姿態估計算法,該算法一般使用了大量特征,其中包括顏色、紋理、邊緣、形狀、全局特征、局部特征和塊特征。其中HOG(Histogram of Oriented Gradient)特征是由Dalal 等[1]在行人檢測中第一次提出來的,具有圖像局部信息良好的幾何和光照不變性。該特征已經廣泛應用于人體姿態估計,并對人體姿態估計領域產生積極的推動作用[2-5]。基于深度學習的人體姿態估計算法一般通過卷積神經網絡來提取人體各部件的特征,具有更強特征表達和學習能力。Chu等[6]提出多語境注意力機制提升模型對人體關鍵點空間信息建模的性能。Yang等[7]設計了金字塔殘差模塊來有效提取人體多尺度信息。Newell等[8]提出了堆棧沙漏網絡,在人體姿態估計領域取得較理想的結果。在沙漏網絡基礎上,學者們又提出了多種改進模型。Chou 等[9]將生成對抗學習引入到人體姿態估計中,進一步改善生成人體部件特征的圖質量。但是,現有基于對抗學習的人體姿態估計算法中,缺少對尺度人體部件信息的融合。近年來,大量的研究表明人體目標檢測框一旦發生細微變化,將會對人體姿態估計的結果產生較大影響。這一現象表明人體姿態估計對人體尺度的變化非常敏感。此外,不同人體部件的尺度也不一樣,這些因素均對人體姿態估計造成了嚴峻的挑戰。本文研究基于對抗學習的人體姿態估計算法,通過堆棧沙漏網絡分別構建對抗網絡中的生成器和判別器,再分別在生成器和判別器中融合多尺度人體部件信息,從而改善人體姿態估計算法的性能。
生成式對抗網絡(Generative Adversarial Networks,GAN)是Goodfellow 等[10]提出的一種生成式模型,它由一個生成器和一個判別器構成,生成器的目標是盡量去學習真實數據樣本的潛在分布,并生成新的數據樣本;而判別器是一個二分類器,目標是盡量正確判別輸入是來自真實數據還是生成的樣本。如圖1 所示,G表示生成器,用于生成人體各部件熱圖;D表示判別器,用于重構人體各部件的熱圖。給定一張輸入圖像,通過生成器G得到生成熱圖,然后生成熱圖和真值熱圖一起輸入到判別器D中,并輸出由生成熱圖重構的熱圖和由真值熱圖重構的熱圖。因此,生成器和判別器的構建在基于對抗學習的人體姿態估計中起著至關重要的作用。近年來,由于堆棧沙漏網絡廣泛應用于人體姿態估計的任務中,并且取得較好預測效果,本文采用堆棧沙漏網絡來構建對抗網絡中的生成器和判別器。

圖1 基于對抗學習的人體姿態估計模型
沙漏網絡一般由殘差模塊、池化、卷積和反卷積部分組成,具有較好的感受野,如圖2 所示。堆棧沙漏網絡由多個沙漏網絡串聯而成。生成器主要用于學習并生成人體各部件熱圖,通過沙漏網絡來構造生成器可以在輸入圖像中提取上下文特征,該沙漏網絡單元由一個7 ×7 卷積層和幾個殘差模塊構成,再輸入到下一個沙漏網絡單元中形成堆棧沙漏網絡結構,最終輸出各個關節點的熱圖。本文中生成器由4 個沙漏網絡堆棧而成,在訓練中,生成器損失函數分別來自生成器本身損失LMSE和判別器的對抗損失Ladv。來自于生成器本身的損失函數可以定義為

式中:Cij是第i個堆棧中第j個關節點的真值熱圖,通過2D高斯函數得到是生成的熱圖;N表示沙漏網絡堆棧數;M表示每個沙漏網絡生成熱圖的數量。

圖2 沙漏網絡結構圖
自判別器的對抗損失函數可以表示為


式中:λG是控制兩種損失權重的超參數。
針對給定的訓練圖像,通過生成器得到生成熱圖,并和真值熱圖分別輸入到判別器中,生成重構熱圖。重構熱圖將分別用于計算Lreal和Lfake,在每次迭代中,判別器都使用累積梯度進行更新,該梯度是通過Lreal和Lfake進行計算。在圖1 中,當判別器的輸入為真實熱圖時,其輸出為重構真值熱圖,需要最小化真值熱圖和重構真值熱圖之間的誤差;當判別器的輸入為生成熱圖時,需要最大化生成熱圖和重構生成熱圖之間的誤差。因此,判別器的損失函數表示為:

式中:kt表示超參數,用于控制生成器和判別器之間的平衡,防止整個網絡由于判別器優化過快而引起的模式崩潰問題。
沙漏網絡通過卷積和反卷積運算來獲取豐富的人體部件特征,但是這種性能易受到多尺度金字塔結構中某一特定的尺度影響,同時還缺少魯棒的跨尺度感知性能。因此,本文針對現有人體姿態估計算法對人體尺度變化敏感的特性,提出了基于多尺度對抗學習的人體姿態估計算法。如圖3 所示,該生成器共由4個相同的沙漏網絡堆棧而成,并在每個沙漏網絡中引入了多尺度監督損失函數,從而提高整個網絡檢測不同尺度人體部件的性能。多尺度監督學習跨多個尺度的深層次特征,是通過在生成器和鑒別器沙漏模塊中的每個反卷積層上添加了監督,即每一層對應著一個特征的尺度來實現的。該損失函數是由每個反卷積層上的特征圖和對應尺度的真值熱圖運算得到:例如真值熱圖通過做1/2、1/4、1/8 的向下采樣得到多尺度真值熱圖。此外,為了保證特征圖和真值熱圖在維度上的一致性,本文使用1 ×1 卷積核降維,將高維反卷積特征圖轉化為所需的數量。由式(1)~(3),本文的多尺度對抗學習的生成器損失函數可以定義為:


圖3 多尺度對抗學習的生成器網絡結構
在判別器中,同樣采用了多尺度監督,其網絡結構和生成器類似。判別器的輸入是生成器最后一個沙漏堆棧的輸出熱圖和真值熱圖,然后經過4 個相同的多尺度沙漏網絡,形成多尺度對抗學習的判別器(見圖4)。由式(4)~(6),多尺度對抗學習的生成器損失函數可以定義為:


圖4 多尺度對抗學習的鑒別器網絡結構
本文采用LSP數據集(Leeds Sports Pose Dataset)、LSPE 數據集(Leeds Sports Pose -extended Dataset)、FLIC 數據集(Frames Labeled In Cinema Dataset)和MPII數據集進行人體姿態估計模型的訓練與測試。LSPE數據集用來補充LSP數據集訓練樣本,一共包含11 000 張訓練圖像和1 000 張測試圖像,每張圖像包含一個人且標記了14 個關節點。FLIC 數據集中3 987張圖像用于訓練,剩余1 016 張圖像用于測試,且數據集只標注了上半身人體姿態。這兩類數據集中人體尺寸和著裝多變,場景豐富多樣,對人體姿態估計有著很大的挑戰。MPII 數據集包含25 000 張帶標注圖片超過40 000 人,其中30 000 人用于訓練,10 000 人用于測試。為了增加訓練樣本,本文將訓練樣本進行了順時針和逆時針分別旋轉30°,并做了翻轉變換。整個模型采用Torch7 在NVIDIA GPU 上進行訓練與測試。為了更加客觀地評價模型的性能,本文采用了通用評價指標PCK(Percentage of Correct Keypoints)和PCKh(Percentage of Correct Keypoints with respect to head)。
為了驗證多尺度對抗學習的有效性,在LSP 數據集上對比了基于對抗學習的有/無融合多尺度信息的人體姿態估計算法的結果。如表1 所示,本文分別對人體的不同關節點計算了PCK指標,實驗結果表明多尺度對抗學習能提升各個關節點預測的正確率。此外,在平均值上,加入多尺度信息的人體姿態估計模型比沒有多尺度信息的模型提高了0.7%。

表1 對抗學習實驗結果比較
表2 和表3 給出了本文算法和現有部分人體姿態估計算法分別在LSP數據集和MPII 數據集的測試樣本上的正確率。從表中可以看出,本文算法和現有人體姿態估計算法相比,較為明顯地提高了肢體上的關節點(肘、手腕、膝、踝)預測正確率。表4 中給出了在FLIC數據集上人體姿態估計的正確率比較,結果表明在肘和手腕的關節點上正確率均高出了傳統方法。

表2 LSP數據集上PCK準確率比較

表3 MPII數據集上PCKh準確率比較

表4 FLIC數據集上PCK準確率比較
圖5 給出了本文提出的基于多尺度對抗學習人體姿態估計模型對LSP 數據集中幾幅示例圖片的人體姿態估計結果。示例圖像存在自遮擋、不同衣著、不同尺度、圖像模糊等樣本,從圖5 中可以看出,本文提出的算法可以在這些非常具有挑戰性的圖像中成功定位出人體關節點,這表明了本文提出的算法具有較好魯棒性。

圖5 人體姿態估計示例
本文主要對基于對抗學習的人體姿態估計算法進行了研究,提出了一種基于多尺度對抗學習的策略。通過堆棧沙漏網絡來構造對抗學習的生成器和判別器,然后分別在生成器和判別器上融合多尺度人體部件特征。實驗結果表明本文提出的基于多尺度對抗學習的人體姿態估計算法可以較明顯提升姿態估計的正確率。