曾 瑞, 張海翔, 馬漢杰, 蔣明峰, 馮 杰
(浙江理工大學(xué) 信息學(xué)院, 杭州 310018)
近來,手勢生成的工作多用于從語音或文本中產(chǎn)生協(xié)同的手勢[1-3],以及實現(xiàn)手勢數(shù)據(jù)的增強[4-5]。 生成式對抗網(wǎng)絡(luò)因其在生成上的優(yōu)異表現(xiàn),在手勢生成上也得到了廣泛的應(yīng)用[1-4]。 但是,對于給定話語生成對應(yīng)手勢的主要問題是,手勢作為非語言信號輔助語言,使得交流更加順暢,卻難以單獨表達語義。 這是由于語音到手勢的高度非確定性映射,即使是同一個人說相同的短語,也可能在每次重復(fù)時伴隨不同的手勢動作,并且生成的結(jié)果會特定于個人手勢風(fēng)格。 另外,手勢數(shù)據(jù)增強工作主要針對的是真實的手勢,并且大多數(shù)都是將人體的骨骼關(guān)節(jié)點當(dāng)做圖像的一個像素,將動作的一幀當(dāng)做一個圖像,而沒有考慮到骨骼關(guān)節(jié)點間豐富的人體結(jié)構(gòu)信息,從而可能導(dǎo)致生成的結(jié)果是扭曲的、不自然的。 研究發(fā)現(xiàn),圖卷積神經(jīng)網(wǎng)絡(luò)能夠處理非歐式空間的數(shù)據(jù),而不同于傳統(tǒng)的網(wǎng)絡(luò)模型如CNN、LSTM 等只能處理歐式空間的網(wǎng)格結(jié)構(gòu)的數(shù)據(jù)。 因此,為了能更好地利用手部的結(jié)構(gòu)信息,本文采用了基于圖卷積的生成式對抗網(wǎng)絡(luò)模型來直接生成手勢骨架。 實驗結(jié)果表明,文中的方法對手勢骨架的生成的確有了更自然更高質(zhì)量的結(jié)果。 本文工作的主要貢獻概括為2 個方面:
第一,提出了基于圖卷積神經(jīng)網(wǎng)絡(luò)的手勢骨架生成方法,可以有效地將手部的結(jié)構(gòu)信息編碼到手勢建模中。
第二,在手勢骨架生成任務(wù)上,通過有效地利用手部結(jié)構(gòu)信息,文中的方法比基于全連接神經(jīng)網(wǎng)絡(luò)以及基于卷積神經(jīng)網(wǎng)絡(luò)的生成方法在定性和定量結(jié)果上都取得了更好的結(jié)果。
生 成 式 對 抗 網(wǎng) 絡(luò)[6-8](Generative Adversarial Network,GAN)是一種優(yōu)秀的生成式模型,能夠?qū)W習(xí)已有樣本的分布并生成與之相似的樣本,已然成為學(xué)界研究熱點。 生成器G與判別器D是GAN 模型的重要組成部分,這兩者之間的相互對抗使雙方都得到增強,最終使生成模型盡可能生成逼真的樣本,示意圖如圖1 所示。
圖1 生成式對抗網(wǎng)絡(luò)Fig.1 Generative Adversarial Network
圖1 中,z為表示隨機噪聲的隱變量,可通過生成器生成假樣本。 判別器則對輸入數(shù)據(jù)進行判別區(qū)分。 訓(xùn)練時,生成器和判別器交替訓(xùn)練,不斷往復(fù)。優(yōu)化的目標函數(shù)[9]如下:
其中,E為分布函數(shù)的期望值;x為真實數(shù)據(jù);z為噪聲。 式(1) 其實就是一個最大最小優(yōu)化問題,生成器與判別器都進行優(yōu)化,在交替訓(xùn)練中雙方都逐步得到增強。
GAN 提出之后,各種GAN 的衍生模型相繼提出,在結(jié)構(gòu)改進、應(yīng)用等方面進行創(chuàng)新,用于諸如圖像生成、圖像轉(zhuǎn)換、圖像修復(fù)等多個領(lǐng)域。 在結(jié)構(gòu)改進上,如2017 年提出的wgan[10]、began[11]等改進了目標函數(shù),使得訓(xùn)練更加穩(wěn)定。 在應(yīng)用方面,如CycleGAN[12]和 Pix2Pix[13]實 現(xiàn) 了 風(fēng) 格 遷 移,TPGAN[14]能根據(jù)半邊人臉生成整張人臉的前向圖。
卷積神經(jīng)網(wǎng)絡(luò)通過局部化的卷積核來學(xué)習(xí)局部的穩(wěn)定結(jié)構(gòu),然后通過層級堆疊將其變?yōu)閷哟位亩鄠€尺度的結(jié)構(gòu)模式,其強大的建模能力使得在圖像處理、對象檢測、自然語言處理等任務(wù)上都取得了不錯的效果。 但是,平移不變性卻使其只能處理歐式數(shù)據(jù),而處理不了如交通網(wǎng)絡(luò)這樣非歐結(jié)構(gòu)的數(shù)據(jù)。
2013 年,圖的基于譜域和基于空間的卷積神經(jīng)網(wǎng)絡(luò)[15]被首次提出。 譜方法[15-18]和空間方法[19-20]是目前圖卷積[21-22]的2 種主要方法。 前者把圖的信號變換到譜域,在譜域進行卷積后再變換到空間域,以此完成圖卷積。 后者則直接在空間域定義節(jié)點相關(guān)性。 其應(yīng)用主要集中于計算機視覺、交通預(yù)測、推薦系統(tǒng)、生物化學(xué)、自然語言處理等領(lǐng)域。 比如在計算機視覺中,Marino 等人[23]將知識圖譜引入到圖片分類中,使用圖卷積神經(jīng)網(wǎng)絡(luò)更好地利用知識圖譜中的先驗知識,在COCO 數(shù)據(jù)集的多標簽分類任務(wù)上取得了提升。
本文提出了一種基于圖卷積的手勢骨架生成方法。 模型框架采用的是通用的生成式對抗網(wǎng)絡(luò)[24],由一個生成器和一個判別器組成。
生成器結(jié)構(gòu)見圖2,圖2(a)中的Graph conv layer 具體結(jié)構(gòu)在圖2(b)中說明。 在圖2 中,noise為服從標準正態(tài)分布的隨機噪聲,label為手勢種類的標簽,圖卷積模塊具體見圖2(b)。 圖2(b)中的H即為圖2(a)中圖卷積層的輸入,為鄰接矩陣經(jīng)歸一化處理后的結(jié)果,見公式(2):
其中,鄰接矩陣A為表示手勢各關(guān)節(jié)點之間相鄰關(guān)系的矩陣;I為單位矩陣;D為對應(yīng)的度矩陣。鄰接矩陣A加上一個單位矩陣I,是希望在進行信息傳播的時候關(guān)節(jié)點自身的特征信息也得到保留,那么A + I就聚合了各關(guān)節(jié)點本身以及相鄰關(guān)節(jié)點的特征信息。 而進行歸一化操作D-1(A +I)則是為了信息傳遞的過程中保持原有分布,防止一些相鄰關(guān)節(jié)點多的節(jié)點和相鄰關(guān)節(jié)點少的節(jié)點在特征分布上產(chǎn)生較大的差異。
圖卷積模塊中共有5 個圖卷積層,即圖2(b)中的GC1、GC2、GC3、GC4以及GC5。 第一個圖卷積層以H和為輸入,輸出為H(1),見公式(3):
圖2 生成器結(jié)構(gòu)圖Fig.2 Generator structure chart
第二個圖卷積層以H(1)和為輸入,輸出為H(2)。 這樣,經(jīng)過5 次圖卷積之后,得到生成器的輸出,也就是手勢的各關(guān)節(jié)點的坐標。
判別器的結(jié)構(gòu)如圖3 所示。 判別器以生成器生成的或數(shù)據(jù)集中的手勢各關(guān)節(jié)點為輸入,經(jīng)過多個卷積層和激活層,最終得到2 個輸出:output1結(jié)果在0 到1 之間,用來判別輸入為真或假;output2結(jié)果為輸入手勢的類別。
圖3 判別器結(jié)構(gòu)圖Fig.3 Discriminator structure chart
在訓(xùn)練過程中,判別器和生成器交替訓(xùn)練,通過相互對抗讓這兩個模型同時得到增強。 兩者都使用Adam作為優(yōu)化器,學(xué)習(xí)率為0.000 2。目標函數(shù)見上文公式(1),并采用了交叉熵損失函數(shù)。 另外,為了增加網(wǎng)絡(luò)的抗干擾能力,使用了單側(cè)標簽平滑,用標簽0.9 代替1 表示真實的數(shù)據(jù)。
本文數(shù)據(jù)集采用的是由數(shù)據(jù)堂提供的靜態(tài)手勢識別數(shù)據(jù)。 本文實驗采用了其中的數(shù)字1、數(shù)字2、比心、點贊、握拳等14 種單手手勢,共14 000條數(shù)據(jù)。 每條數(shù)據(jù)含一張手勢圖像以及一個標注文件,標注文件中寫明了手勢的21 個關(guān)節(jié)點及手勢類別等信息。 本文實驗按8:2 將所有數(shù)據(jù)分為訓(xùn)練集和測試集,采用了手勢的21 個關(guān)節(jié)點坐標信息。 手勢關(guān)節(jié)點的標注情況見圖4。
圖4 手勢關(guān)節(jié)點標注示意圖Fig.4 Schematic diagram of gesture joint labeling
Maximum Mean Discrepancy(MMD, 最大平均差異)[25]以樣本x ~P(X) 和y ~Q(Y) 來度量2 個分布P(X)和Q(Y)之間的相似性。 其本質(zhì)上是2 個分布的數(shù)據(jù)經(jīng)過映射函數(shù)變化后的期望之差的上確值,但由于直接計算期望十分困難,可以采取計算期望的無偏估計(unbiased estimate)-均值。 通過兩者間的差值來判別2 個分布的相似程度。 值越小,那么這2個數(shù)據(jù)分布越相似。MMD的具體計算見公式(4):
其中,X∶={x1,...,xm} 和Y∶={y1,...,yn}分別為服從P與Q分布的樣本。xi與xj為服從P分布的獨立的隨機數(shù)據(jù),yi與yj同理。k(·,·) 為高斯核函數(shù),具體計算見公式(5):
另外,文獻[26]比較了Inception Score, Mode Score, MMD 等6 種GAN 具有代表性的基于樣本的評估度量,結(jié)果表明MMD 能夠區(qū)分真實圖像和生成圖像,可以在一定程度上衡量模型生成圖像的優(yōu)劣性,是最合適的評估指標之一。 在深度生成模型[27]和貝葉斯采樣[28]中,則被用于衡量生成樣本相較于真實數(shù)據(jù)的質(zhì)量。 該指標還被用于評估生成的動作與真實動作之間的相似性[24,29]。
本次研究進行了實驗以評估所提出的方法在靜態(tài)手勢骨架生成上的有效性,并采用MMD 來衡量生成手勢的質(zhì)量。 仿真時在同一數(shù)據(jù)集上進行了3次實驗:首先是本文的方法、即基于圖卷積的生成方法,其次是wgan_gp 方法、即基于全連接的生成方法,最后是消融實驗、即基于卷積神經(jīng)網(wǎng)絡(luò)的生成方法。 結(jié)果顯示,本文的方法更好。 下面進行了詳細的闡釋與分析。
由于目前沒有生成靜態(tài)手勢骨架的工作,文中的對比實驗選擇了wgan_gp[31]方法。 wgan_gp 以wgan[10]為基礎(chǔ),將梯度截斷替換為梯度懲罰,以解決梯度消失、梯度爆炸的問題。 優(yōu)化的目標函數(shù)如下:
其中, ~x為生成器生成的樣本為生成數(shù)據(jù)和真實數(shù)據(jù)之間的插值,~x,?~U[0,1]。 式(6) 的最后一項即為添加的梯度懲罰項。 這樣既滿足了1-L條件,也可以保證權(quán)重變化不那么劇烈, 模型不容易壞掉。 本次實驗中,wgan_gp的生成器與判別器采用的皆是全連接網(wǎng)絡(luò)架構(gòu)。 本文方法與該方法的比較結(jié)果見表1,本文在MMD 上的結(jié)果比wgan_gp 方法的要小,也就是本文提出的方法更優(yōu)。
表1 對比實驗結(jié)果Tab.1 Comparative experiment results
此外,還在本文的方法上進行了消融實驗以驗證圖卷積模塊的有效性,實驗結(jié)果見表2。 具體來說,使用5 個CNN 層替換了生成器中的5 個GCN層,并使用相同的隱藏維數(shù)和核大小,其他部分保持完全相同。
表2 消融實驗結(jié)果Tab.2 Ablation results
各方法生成的手勢骨架圖如圖5 所示。 圖5 中列出了數(shù)字1、數(shù)字2、數(shù)字4、數(shù)字6、單手比心、OK、握拳、LOVE 共8 種手勢。 從圖5 中可以看出,本文的方法能夠生成更加合理、自然的手勢,而wgan_gp 與消融實驗生成的手勢較為扭曲。 從定量結(jié)果來看,本次研究提出的方法在MMD 上也更加優(yōu)越。
圖5 生成的手勢骨架對比圖Fig.5 Comparison of the generated gesture skeleton
在本文中,研究提出了基于圖卷積的生成式對抗網(wǎng)絡(luò)模型,以有效地編碼手部結(jié)構(gòu)信息到基于骨架的人體手勢生成。 從對比實驗和消融實驗的結(jié)果可以觀察到,文中的生成結(jié)果在定量和定性評估上有了明顯的改善,證明了圖卷積用于手勢骨架的有效性。 在后續(xù)的工作中,將進一步研究基于圖卷積的序列手勢生成。