陳立 李穎昉 劉志遠(yuǎn) 王禮華 王艷柏
摘 要:隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展和手勢(shì)識(shí)別技術(shù)的不斷提升,人們對(duì)自然交互的方式不斷提出迫切需求。對(duì)于交互體驗(yàn)的游戲而言,尤為突出。此前的研究主要利用普通攝像頭采集圖像,獲取手勢(shì)的運(yùn)動(dòng)形態(tài)及像素信息,無法獲得具有深度信息手勢(shì)的三維特征。隨著Leap Motion等深度傳感器的出現(xiàn),更多的深度信息可以被獲取,為識(shí)別復(fù)雜的手勢(shì)提供了可靠的數(shù)據(jù)保障。文章使用一種基于深度經(jīng)網(wǎng)絡(luò)的游戲交互手勢(shì)識(shí)別系統(tǒng),與以往的方法相比,具有更好的性能。
關(guān)鍵詞:虛擬現(xiàn)實(shí);手勢(shì)識(shí)別;卷積神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2019)20-0022-03
Abstract: With the development of virtual reality technology and the continuous improvement of gesture recognition technology, people continue to put forward an urgent need for the way of natural interaction. For interactive experience of the game, especially prominent. Previous studies mainly used ordinary cameras to collect images to obtain the motion form and pixel information of gestures, but could not obtain the three-dimensional features of gestures with depth information. With the emergence of depth sensors such as Leap Motion, more depth information can be obtained, which provides a reliable data guarantee for the recognition of complex gestures. In this paper, a game interactive gesture recognition system based on depth neural network is used, which has better performance than the previous methods.
Keywords: virtual reality; gesture recognition; convolution neural network
引言
近年來,在人機(jī)交互、機(jī)器人學(xué)、計(jì)算機(jī)游戲等眾多的領(lǐng)域中[1,2],手勢(shì)識(shí)別[3,4]吸引了越來越多學(xué)者的研究興趣。其中,人機(jī)交互從最初的簡(jiǎn)單通過二維圖像界面交互發(fā)展到了更為直觀的自然手勢(shì)或姿態(tài)的交互。Leap Motion等深度傳感器的出現(xiàn),可以獲取更多的深度信息,為識(shí)別復(fù)雜的手勢(shì)提供了可靠的數(shù)據(jù)保障。本文使用深度神經(jīng)網(wǎng)絡(luò)處理交互游戲中的手勢(shì)識(shí)別,經(jīng)實(shí)驗(yàn),有良好的性能。
1 深度傳感器Leap Motion
Leap Motion通過雙目視覺以及紅外攝像頭,來獲取每一幀的手部幾何數(shù)據(jù),將數(shù)據(jù)綁定模型中的手部骨骼,在虛擬場(chǎng)景中呈現(xiàn)虛擬手。Leap Motion以圖像中的數(shù)據(jù)幀作為采集的基本單位,將識(shí)別到的幾何信息封裝在一個(gè)Frame實(shí)例中。表1中列出了其中的數(shù)據(jù)類型和意義。
Leap Motion采集到的數(shù)據(jù)格式為一組基于時(shí)間的序列信息,記錄的是每個(gè)時(shí)刻下的序列元素,包含了手勢(shì)位移變化、手勢(shì)角度變化、手型彎曲變化和手指變化四個(gè)特征維度的數(shù)據(jù)集合。本文通過設(shè)定手勢(shì)采集起始點(diǎn)和結(jié)束點(diǎn)的閾值,解決采集判斷問題,定義動(dòng)態(tài)手勢(shì)的語(yǔ)義及手勢(shì)特征并進(jìn)行分解提取和存儲(chǔ)。最后,通過對(duì)提取的數(shù)據(jù)進(jìn)行歸一化處理,以降低后續(xù)模型訓(xùn)練的計(jì)算成本。
2 手勢(shì)識(shí)別
基于視覺的手勢(shì)識(shí)別通常分為:手勢(shì)檢測(cè)與分割、手勢(shì)建模和手勢(shì)識(shí)別三個(gè)階段。通常根據(jù)圖像信息之間的向量差,或根據(jù)手部信息比如膚色、手型輪廓等來做檢測(cè)或者分割。手勢(shì)建模則是基于圖像的信息向量序列進(jìn)行模型分析,比如手部輪廓、向量特征、區(qū)域直方圖或運(yùn)動(dòng)向量軌跡特征等。手勢(shì)識(shí)別是通過對(duì)手勢(shì)區(qū)域進(jìn)行分割后對(duì)圖像進(jìn)行特征值提取,再對(duì)手勢(shì)進(jìn)行建模,可將參數(shù)空間中的動(dòng)態(tài)點(diǎn)集合映照到該片區(qū)域中的里某些子集里。一般的手勢(shì)識(shí)別過程如圖1所示。
有許多國(guó)內(nèi)外學(xué)者開展了手勢(shì)識(shí)別的相關(guān)研究。如:Zhou和Du[5]比較了人類動(dòng)物情感機(jī)器人觸摸數(shù)據(jù)集(HAART)中手勢(shì)識(shí)別的各種深度學(xué)習(xí)算法的性能,包括二維CNN、三維CNN和LSTMS,比較了GM LSTMS、LRCNS和3D CNN在社交觸摸手勢(shì)識(shí)別任務(wù)中的表現(xiàn)。其所提出的3D CNN方法的識(shí)別精度達(dá)到76.1%,明顯優(yōu)于其它算法。文中卷積層為4層,每層卷積核的數(shù)目分別為16-32-64-128。與8-16-32-64和32-64-128-256相比,3D CNN獲得了最佳性能。Jung等人[6]應(yīng)用了4種不同的方法和54種特征,如平均和最大壓力、壓力變異性、每行和每列的平均壓力、每幀的接觸面積,使用留一交叉驗(yàn)證用來評(píng)估算法的性能。其中分類準(zhǔn)確率分別為,Bayesian分類器采用前饋網(wǎng)絡(luò)訓(xùn)練60%,支持向量機(jī)(SVM)57%(SD=11%),決策樹算法48%。
3 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
受Hubel和Wiesel對(duì)貓視覺皮層電生理研究啟發(fā),有人提出卷積神經(jīng)網(wǎng)絡(luò)(CNN),其在手寫數(shù)字識(shí)別領(lǐng)域,一直保持領(lǐng)先。最近,卷積神經(jīng)網(wǎng)絡(luò)在多個(gè)方向持續(xù)發(fā)力,在語(yǔ)音識(shí)別、人臉識(shí)別、通用物體識(shí)別、運(yùn)動(dòng)分析、自然語(yǔ)言處理甚至腦電波分析方面均有突破。卷積神經(jīng)網(wǎng)絡(luò)通常包含卷積層、線性整流層、池化層和分類層。
3.1 卷積層
卷積層由若干卷積單元組成,每個(gè)卷積單元的參數(shù)都是通過反向傳播算法優(yōu)化得到的。卷積運(yùn)算的目的是提取輸入的不同特征,第一層卷積層可能只能提取一些低級(jí)的特征如邊緣、線條和角等層級(jí),更多層的網(wǎng)絡(luò)能從低級(jí)特征中迭代提取更復(fù)雜的特征。每個(gè)卷積操作都由步幅、卷積核大小和零填充指定。步幅是一個(gè)正整數(shù),它決定了滑動(dòng)步幅。在同一卷積運(yùn)算中使用的所有卷積核上,卷積核大小必須是固定的。零填充主要是為了在輸入矩陣的邊緣包含數(shù)據(jù)。在沒有零填充的情況下,卷積輸出的大小比輸入的小。因此,網(wǎng)絡(luò)大小通過具有多個(gè)卷積層而縮小,這限制了網(wǎng)絡(luò)中卷積層的數(shù)量。而零填充可以防止網(wǎng)絡(luò)的收縮,并在網(wǎng)絡(luò)體系結(jié)構(gòu)中提供無限的深層結(jié)構(gòu)。
3.2 線性整流層
使用非線性單元的主要目的是調(diào)節(jié)或切斷產(chǎn)生的輸出。CNN中有幾種非線性函數(shù),校正線性單元(ReLU)是應(yīng)用于各種領(lǐng)域的最常見的非線性單元之一。
3.3 池化層
池化層的引入,主要是為了減少輸入的維度。常用的如Max Pooling,是一個(gè)廣泛的和有希望的方法,因?yàn)樗峁┝孙@著的結(jié)果,通常可降低輸入尺寸大小的75%。
3.4 分類層
SoftMax層是證明分類分布的一種很好的方法,主要用于輸出層,是輸出值的標(biāo)準(zhǔn)化指數(shù)[7]。這個(gè)函數(shù)是可微的,表示輸出的一定概率。此外,指數(shù)元素增加了最大值概率。
4 本文方法
本文使用CNN和傳感器數(shù)據(jù)對(duì)游戲交互手勢(shì)進(jìn)行分類識(shí)別,具體實(shí)現(xiàn)畫圓、畫叉、向左劃、向右劃、向上劃、向下劃、向前劃和向后劃8種手勢(shì)的分類。其中,主要的困難在于找不到一個(gè)最佳的CNN架構(gòu)。為此,本文首先定義網(wǎng)絡(luò)的輸入和輸出結(jié)構(gòu),具體結(jié)構(gòu)見表2。LeapMotion以超過每秒200幀的速度追蹤手部移動(dòng),每個(gè)樣本都是一個(gè)640×240的矩陣。本文采集實(shí)驗(yàn)了5~50幀數(shù)的數(shù)據(jù),為有效實(shí)現(xiàn),輸入幀數(shù)固定為25,并對(duì)具有短幀的樣本使用零填充。網(wǎng)絡(luò)輸入(640×240×25)為CNN提供了一個(gè)巨大的輸入
量,并且計(jì)算成本很高。因此使用固定長(zhǎng)度分割樣本,將每個(gè)樣本劃分為子樣本。當(dāng)幀數(shù)不能完全被給定的子樣本長(zhǎng)度整除時(shí),對(duì)于幀數(shù)小于給定子樣本的用零填充。該方法具有以下優(yōu)點(diǎn):
(1)訓(xùn)練神經(jīng)網(wǎng)絡(luò)的樣本數(shù)量增加,具體數(shù)量由幀長(zhǎng)度決定。幀長(zhǎng)度短的表示附加的子樣本信息較少,反之亦然。
(2)從主樣本的一部分獲得了子樣本。
(3)在接收到固定幀數(shù)的數(shù)據(jù)后識(shí)別手勢(shì)。
本文使用傳感器中的輸出數(shù)據(jù)作為計(jì)算分類,具有8個(gè)類的SoftMax函數(shù)是方法的輸出。在CNN中,卷積階段的輸出特征圖數(shù)量等于使用的卷積核數(shù)量。因此,在卷積層中使用的卷積核的增加會(huì)導(dǎo)致輸出特征映射的增加。通過輸入通道增加,從而增加卷積運(yùn)算,如前所述,卷積運(yùn)算的計(jì)算成本很高。
5 結(jié)論
對(duì)于交互手勢(shì)的分類識(shí)別,本文方法使用Python語(yǔ)言實(shí)現(xiàn),Jupyter NoteBook作為開發(fā)環(huán)境,深度學(xué)習(xí)框架使用Keras和TensorFlow。輪數(shù)為50,批量大小為250,簡(jiǎn)單隨機(jī)梯度下降(SGD)作為學(xué)習(xí)函數(shù);動(dòng)量項(xiàng)為0.9,學(xué)習(xí)率分別為1、0.5、0.1、0.05和0.001。在每10個(gè)周期中,通過前一批數(shù)據(jù)搜索一個(gè)新的學(xué)習(xí)率,并選擇損失最小的學(xué)習(xí)。并在算法中進(jìn)行了二次采樣,產(chǎn)生了更多的訓(xùn)練數(shù)據(jù),提高了正確的分類率,表3為本文方法的識(shí)別率。該方法不需要數(shù)據(jù)預(yù)處理或人工特征提取,可以端到端應(yīng)用。其次,可以在接收到少量的傳感器數(shù)據(jù)后識(shí)別分類。
參考文獻(xiàn):
[1]Kumar S, Singh S K, Singh R, et al. Deep Learning Framework for Recognition of Cattle Using Muzzle Point Image Pattern[J]. Measurement, 2017,116.
[2]Yawei Hou, Huailin Zhao. Handwritten Digit Recognition Based on Depth Neural Network[C]. ICIIBMS 2017-2nd International Conference on Intelligent Informatics and Biomedical Sciences , Nov.24-26,2017, Okinawa, Japan. P35-38.
[3]Tian C, Liu J, Peng Z M. Acceleration Strategies for Speech Recognition Based on Deep Neural Networks[J]. Applied Mechanics & Materials, 2014,556-562:5181-5185.
[4]Zhang Q , Yang L T , Chen Z , et al. A survey on deep learning for big data[J]. Information Fusion, 2018,42:146-157.
[5]N. Zhou and J. Du, "Recognition of social touch gestures using 3D convolutional neural networks," in Proceedings of Chinese Conference on Pattern Recognition, November 2016,Changsha,China, pp. 164-173.
[6]M. M. Jung, M. Poel, R. Poppe, and D. K. Heylen, "Automatic recognition of touch gestures in the corpus of social touch,"Journal on Multimodal User Interfaces, 2017, vol. 11, no. 1,pp. 81-96.
[7]Nnhacks,https://nnhacks.github.io/A_Simple_Introduction_to_Soft
max_Function.html, 2017.