高 晨, 張亞軍(北京化工大學(xué) 機(jī)電工程學(xué)院, 北京 100029)
基于Kinect深度圖像的指尖檢測(cè)與手勢(shì)識(shí)別①
高 晨, 張亞軍
(北京化工大學(xué) 機(jī)電工程學(xué)院, 北京 100029)
針對(duì)基于普通攝像頭的手勢(shì)識(shí)別系統(tǒng)在不同光照條件和復(fù)雜環(huán)境下易受影響的問(wèn)題, 提出一種基于kinect深度圖像進(jìn)行指尖檢測(cè)和手勢(shì)識(shí)別的算法. 首先利用Kinect傳感器獲取深度圖像, 再利用OpenNI手部跟蹤器檢測(cè)出手部的位置, 根據(jù)手部位置對(duì)手勢(shì)進(jìn)行深度閾值分割. 提出一種結(jié)合凸包和曲率檢測(cè)指尖的算法, 檢測(cè)出指尖數(shù)目和位置后, 計(jì)算出包括指尖和手掌水平方向的夾角、相鄰兩個(gè)指尖夾角以及指尖與掌心的距離的特征向量, 最后利用支持向量機(jī)(SVM)對(duì)預(yù)定的9種數(shù)字手勢(shì)進(jìn)行識(shí)別. 實(shí)驗(yàn)邀請(qǐng)5位實(shí)驗(yàn)者在復(fù)雜環(huán)境下每個(gè)手勢(shì)做30次, 每次的手勢(shì)角度不同, 實(shí)驗(yàn)結(jié)果表明該方法能夠準(zhǔn)確檢測(cè)出指尖的數(shù)目和位置, 9種數(shù)字手勢(shì)平均識(shí)別率達(dá)到97.1%, 該方法使用特征簡(jiǎn)單, 實(shí)時(shí)性好, 有較好的魯棒性.
Kinect傳感器; 指尖檢測(cè); 支持向量機(jī); 手勢(shì)識(shí)別
不同于以往的鼠標(biāo)、鍵盤等交互設(shè)備, 手勢(shì)作為一種新的人機(jī)交互方式, 不需要直接接觸, 這種人機(jī)交互方式更接近人與人之間的交流. 手勢(shì)識(shí)別系統(tǒng)可以通過(guò)攝像頭獲取包含手勢(shì)的圖像信息, 根據(jù)圖像信息解釋手勢(shì)的含義, 成熟的手勢(shì)識(shí)別系統(tǒng)已經(jīng)開始應(yīng)用于很多領(lǐng)域, 如體感游戲, 智能電視, 醫(yī)療設(shè)備, 手語(yǔ)識(shí)別和機(jī)器人控制等[1-3].
采用普通攝像頭獲取圖像信息進(jìn)行手勢(shì)識(shí)別容易受到光照和背景的影響, 針對(duì)此問(wèn)題, 文獻(xiàn)[4]通過(guò)給使用者佩帶有顏色的手套來(lái)分割手勢(shì). 但是當(dāng)背景有和手套顏色一樣的物體時(shí), 仍會(huì)影響手勢(shì)的分割, 并且文獻(xiàn)[4]使用的普通攝像頭在光線不足的情況無(wú)法檢測(cè)到手勢(shì). 而微軟推出的Kinect攝像頭可以同時(shí)獲取彩色圖像和深度圖像信息, 利用深度圖像進(jìn)行手勢(shì)識(shí)別可以避免光照和環(huán)境的影響.
近幾年基于Kinect的指尖檢測(cè)和手勢(shì)識(shí)別已經(jīng)有相關(guān)的研究, 文獻(xiàn)[5]采用三維手勢(shì)模型, 將手部分成21個(gè)不同的部分, 然后使用支持向量機(jī)(SVM)做分類器識(shí)別常用的手語(yǔ). 但是其模型復(fù)雜, 運(yùn)算量大, 實(shí)時(shí)性較差. 文獻(xiàn)[6]和[7]都采用深度閾值分割手勢(shì)區(qū)域,默認(rèn)手勢(shì)區(qū)域是距離攝像頭最近的, 但是當(dāng)手掌和手臂垂直的情況下就會(huì)將手臂也分割出來(lái), 降低手勢(shì)識(shí)別的準(zhǔn)確率. 文獻(xiàn)[8]使用距離直方圖來(lái)識(shí)別手勢(shì), 而文獻(xiàn)[9]綜合了距離特征和曲率特征使用多級(jí)支持向量機(jī)來(lái)識(shí)別手勢(shì). 文獻(xiàn)[10]通過(guò)從深度圖像中分割手部區(qū)域, 并建立表觀特征, 再用決策樹識(shí)別手勢(shì). 文獻(xiàn)[8-10]使用的特征都較復(fù)雜, 需要的計(jì)算量較大.
針對(duì)上述問(wèn)題本文提出一種把指尖數(shù)目, 手部方向, 掌心和指尖距離以及指尖相對(duì)于手部水平方向夾角作為特征向量, 再通過(guò)支持向量機(jī)的方法進(jìn)行手勢(shì)識(shí)別的算法, 如圖1所示.
圖1 手勢(shì)識(shí)別流程圖
主要的工作步驟如下:
Step 1. 檢測(cè)到手部區(qū)域, 將手部區(qū)域從復(fù)雜背景中分割出來(lái);
Step 2. 根據(jù)分割出來(lái)的手勢(shì)區(qū)域, 計(jì)算出手掌掌心、手部水平方向, 再結(jié)合凸包和曲率檢測(cè)指尖, 最后計(jì)算出指尖相對(duì)于手部水平方向的夾角, 相鄰指尖之間的夾角和指尖與掌心的距離;
Step3. 最后采集9種預(yù)設(shè)數(shù)字手勢(shì)樣本, 用支持向量機(jī)方法訓(xùn)練識(shí)別手勢(shì).
Kinect攝像頭可以同時(shí)獲取深度圖像和RGB彩色圖像, 并且支持骨骼跟蹤和動(dòng)作識(shí)別. Kinect一共有三個(gè)攝像頭, 左邊鏡頭為紅外線發(fā)射器, 中間鏡頭是一般常見的 RGB 彩色攝像頭, 右邊鏡頭是由紅外線CMOS 攝像頭所構(gòu)成的 3D 深度傳感器. 根據(jù)深度傳感器可以獲取攝像頭一定范圍內(nèi)物體與攝像頭的距離.
2.1 基于OpenNI的手勢(shì)檢測(cè)
通過(guò)開源庫(kù)OpenNI可以檢測(cè)到揮手、前推和舉起三種預(yù)設(shè)手勢(shì)動(dòng)作并獲得手部掌心的坐標(biāo). 本文采用識(shí)別效果較好的前推動(dòng)作和揮手動(dòng)作, 手部對(duì)著Kinect攝像頭前推或者揮手時(shí), 即可檢測(cè)到手部區(qū)域,并且給出掌心的粗略坐標(biāo), 識(shí)別效果如圖2所示. 距離攝像頭越近的點(diǎn)灰度值越大, 離攝像頭遠(yuǎn)的點(diǎn)灰度值越小, 紅色的點(diǎn)為識(shí)別出來(lái)的掌心位置, 從圖2可以發(fā)現(xiàn)OpenNI給出的掌心位置不準(zhǔn)確, 本文將根據(jù)手部輪廓的最大內(nèi)切圓重新計(jì)算掌心坐標(biāo).
圖2 OpenNI檢測(cè)出掌心位置
2.2 基于深度閾值的手勢(shì)分割
Kinect獲取到的深度數(shù)據(jù)為16位, 若使用不帶用戶ID的方式存儲(chǔ)深度值, 則16位中的低12位為深度值, 即最大值為4096, 其代表4.096m. 通過(guò)OpenNI獲得的粗略掌心坐標(biāo)包括二維坐標(biāo)和深度值, 本文采用雙深度閾值方法分割手勢(shì)區(qū)域, 對(duì)掌心深度d在加減閾值T范圍內(nèi)的像素按照式(1)進(jìn)行二值化, 公式如下所示:
式(1)中d為掌心的深度值, T為手掌厚度的深度閾值, H(x, y)為分割后手部深度圖像中點(diǎn)(x, y)所對(duì)應(yīng)的像素值, D(x, y)為深度圖像中點(diǎn)(x, y)所對(duì)應(yīng)的深度值.
為了避免手臂和手腕的干擾, 取距離掌心長(zhǎng)寬一定的矩形作為包含手勢(shì)的感興區(qū)域, 分割效果如圖3所示, 從圖3(b)中可以看到經(jīng)過(guò)式(1)分割出的手部區(qū)域, 其邊緣存在鋸齒, 會(huì)對(duì)之后的指尖檢測(cè)造成干擾,針對(duì)此問(wèn)題, 本文采用中值濾波和形態(tài)學(xué)開閉運(yùn)算對(duì)其進(jìn)行去除噪聲處理, 使手部邊緣平滑, 效果如圖3(c)所示.
圖3 基于深度閾值的手勢(shì)分割
3.1 手部邊緣檢測(cè)
為了獲取手部輪廓的特征, 本文采用Canny邊緣檢測(cè)算法, 邊緣檢測(cè)即檢測(cè)出圖像亮度變化大的區(qū)域, Canny 邊緣檢測(cè)算法是對(duì)信噪比和定位之乘積的最優(yōu)化逼近算子, 用來(lái)計(jì)算圖像邊緣的梯度幅度和相位值,選取合理幅度閾值來(lái)確定邊緣點(diǎn)[11]. 從抑制噪聲方面來(lái)講, Canny邊緣檢測(cè)子不容易受到噪聲的干擾, 而相同尺度下LOG算子卻容易受到噪聲的干擾, 抑制噪聲的能力要弱一些. 此外, 由于Canny邊緣檢測(cè)算子采用兩種不同的閾值分別檢測(cè)強(qiáng)邊緣和弱邊緣, 并且當(dāng)弱邊緣和強(qiáng)邊緣相連時(shí), 只將弱邊緣包含在輸出圖像中, 故而Canny算子更容易檢測(cè)出真正的弱邊緣, 因此本文采用Canny邊緣檢測(cè)來(lái)提取手部輪廓. 檢測(cè)效果如圖4所示.
圖4 Canny邊緣檢測(cè)
3.2 計(jì)算手掌掌心位置
通過(guò)OpenNI獲得的手掌掌心坐標(biāo)不夠準(zhǔn)確, 本文通過(guò)計(jì)算手部輪廓的最大內(nèi)切圓來(lái)確定手掌掌心坐標(biāo)和掌心圓半徑. 首先計(jì)算手部輪廓內(nèi)每個(gè)點(diǎn)到輪廓邊界距離的最小值, 找出其中最大距離值所對(duì)應(yīng)的點(diǎn)即為掌心點(diǎn), 距離即掌心圓半徑. 這個(gè)過(guò)程計(jì)算量會(huì)很大, 影響手勢(shì)識(shí)別的實(shí)時(shí)性, 因此本文不計(jì)算感興區(qū)間內(nèi)的所有點(diǎn), 而是每隔N個(gè)點(diǎn)計(jì)算一個(gè)點(diǎn), 經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證當(dāng)N=4時(shí)可以保證速度和準(zhǔn)確性. 求出的掌心圓如圖5所示.
圖5 最大內(nèi)切圓計(jì)算掌心圓
3.3 計(jì)算手部水平方向
為了計(jì)算指尖的相對(duì)位置, 要先計(jì)算手部水平方向, 如圖6所示, xh為手部水平方向, α為手部水平方向和x軸方向的夾角, θ為手部主軸和x軸方向的夾角, 這兩個(gè)夾角可以根據(jù)文獻(xiàn)[12]中提出的方法, 利用圖像中心矩計(jì)算, 公式如下所示:
式(2)中θ為手部主軸和水平方向的夾角, α為手部水平方向和x軸水平方向的夾角, (2,0)mu和(0,2)mu為圖像的二階中心矩.
3.4 指尖檢測(cè)
3.4.1 凸包結(jié)合曲率檢測(cè)指尖算法
本文采用凸包算法與曲率檢測(cè)算法相結(jié)合的算法, 可以精確的獲得指尖的位置, 首先求出包圍手部輪廓的最小外接圓, 然后利用OpenCV計(jì)算機(jī)視覺開源庫(kù)中函數(shù)convexHull和convexityDefects求出包含手部輪廓的凸包和凸缺陷, 手部輪廓的凸包和凸缺陷模型如圖7所示, A、B、C等為手部輪廓的凸缺陷, 凸缺陷包括起始點(diǎn)Ps、終止點(diǎn)Pe、缺陷上距離輪廓凸包最遠(yuǎn)的點(diǎn)pd, 凸包缺陷深度Id. 根據(jù)指尖的幾何特征, 指尖點(diǎn)應(yīng)該滿足的條件如下所示:
1) 凸缺陷深度應(yīng)該大于掌心圓半徑, 但小于手部輪廓最小外接圓半徑, 即ra 2) 凸缺陷起始點(diǎn)和終止點(diǎn)的夾角應(yīng)小于90°, 即θα<90o. 3) 指尖點(diǎn)附近最小曲率值應(yīng)小于60°, 即θk<60o. 圖6 手部水平方向 圖7 凸包和曲率檢測(cè)指尖 檢測(cè)指尖時(shí)首先將滿足上述條件(1)和(2)的凸缺陷的起始點(diǎn)和終止點(diǎn)保存到點(diǎn)集Ap中, 并且刪除重復(fù)和距離過(guò)近的點(diǎn), 然后以點(diǎn)集Ap中的點(diǎn)Pi為原點(diǎn), 在手部輪廓中各取Pi之前和之后的10個(gè)點(diǎn), 計(jì)算這20個(gè)點(diǎn)的K曲率, 即向量(Ai(j), Ai(j-k))與(Ai(j), Ai(j+k))之間的夾角, 若點(diǎn)Pi的K曲率值小于60°并且是20個(gè)點(diǎn)中K曲率值最小的點(diǎn), 則其為指尖點(diǎn). 本文算法相比較于傳統(tǒng)的K曲率檢測(cè)指尖運(yùn)算量小, 只需要計(jì)算凸缺陷起始點(diǎn)和終止點(diǎn)極其附近的20個(gè)點(diǎn)的K曲率, 同時(shí)有效地排除了兩個(gè)手指指尖的凹點(diǎn), 通過(guò)實(shí)驗(yàn)驗(yàn)證當(dāng)K取值30時(shí)效果最好. 上述三個(gè)條件雖然能較好的滿足基本的指尖檢測(cè), 但是也存在一些不足, 如只有一個(gè)指尖時(shí), 是沒有凸缺陷滿足條件1)和2), 此時(shí)我們把凸缺陷起始點(diǎn)和終止點(diǎn)夾角 并且凸缺陷深度Id大于閾值Td的凸缺陷起始點(diǎn)和終止點(diǎn)存儲(chǔ)到點(diǎn)集Ap中, 然后通過(guò)上述方法計(jì)算點(diǎn)集Ap中點(diǎn)的K曲率通過(guò)條件3)來(lái)檢測(cè)指尖. 3.4.2計(jì)算指尖點(diǎn)與手部水平方向夾角 在獲得了掌心圓、手部方向, 指尖坐標(biāo)等特征之后, 接下來(lái)計(jì)算指尖點(diǎn)和手部水平方向的夾角, 以及相鄰兩個(gè)指尖與掌心的夾角. 如圖8所示, 分別計(jì)算每個(gè)指尖與手部水平方向的夾角α[i](i=0, 1, 2, 3, 4),在計(jì)算相鄰兩個(gè)指尖和掌心形成的夾角β[i](i=0, 1, 2, 3), 最后計(jì)算每個(gè)指尖和掌心指尖的距離D[i](i=0, 1, 2, 3, 4), 最后把計(jì)算得到的結(jié)果保存到特征向量數(shù)組中, 如式(4)所示: 式(4)中fV儲(chǔ)存特征向量的數(shù)組, N為指尖數(shù)目, []iα為每個(gè)指尖和手部水平方向的夾角, []iβ為相鄰兩個(gè)指尖的夾角, D[]i為每個(gè)指尖與掌心的距離. 圖8 指尖夾角特征 在得到手部特征向量之后, 要設(shè)計(jì)分類器根據(jù)每種手勢(shì)的特征對(duì)手勢(shì)進(jìn)行分類. 本文采用支持向量機(jī)作為分類器, 支持向量機(jī)具有能有效發(fā)現(xiàn)目標(biāo)函數(shù)的全局最優(yōu)解, 最大化決策邊界等特點(diǎn)13. 在解決線性問(wèn)題中, SVM 能直接在該空間中劃分出分割平面, 但在實(shí)際問(wèn)題中更多的是非線性的問(wèn)題, 支持向量機(jī)首先在低維空間中完成計(jì)算, 然后通過(guò)核函數(shù)將輸入空間映射到高維特征空間, 最終在高維特征空間中構(gòu)造出最優(yōu)分離超平面, 從而把平面上本身不好分的非線性數(shù)據(jù)分開, 常用的核函數(shù)包括多項(xiàng)式核函數(shù)、徑向基(RBF)核函數(shù)和 Sigmoid 核函數(shù). 本文采用徑向基函數(shù), 因?yàn)槠淠P秃?jiǎn)單, 參數(shù)相對(duì)較少, 可以有效的把非線性問(wèn)題轉(zhuǎn)換為線性問(wèn)題, 并經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證徑向基核函數(shù)的效果最好. 為了驗(yàn)證本文提出方法的可靠性和準(zhǔn)確性, 本文使用內(nèi)存8G, CPU為Intel(R)CoreTMi5-4200H CPU @2.80GHz的筆記本作為處理平臺(tái), 使用微軟Kinect一代攝像頭采集圖像, 通過(guò)使用開源庫(kù)OpenNI、Opencv進(jìn)行編程, 編程環(huán)境為VS2015, 實(shí)驗(yàn)包括指尖檢測(cè)和手勢(shì)識(shí)別兩個(gè)部分, 實(shí)驗(yàn)過(guò)程中光照環(huán)境不穩(wěn)定, 實(shí)驗(yàn)者與Kinect攝像頭距離約為1m. 5.1 指尖檢測(cè)實(shí)驗(yàn)分析 本文分別對(duì)指尖數(shù)目為0到5的六種情況進(jìn)行測(cè)試, 測(cè)試過(guò)程中, 指尖的方向不斷變化, 測(cè)試結(jié)果如圖9所示. 然后將每種指尖數(shù)目的視頻序列保存1000幀, 每隔5幀提取1幀, 共提取200幀, 統(tǒng)計(jì)出檢測(cè)結(jié)果如表1所示. 圖9 不同數(shù)目、方向指尖檢測(cè)結(jié)果 表1 指尖檢測(cè)準(zhǔn)確率 通過(guò)圖9和表1可以看出, 本文提出的結(jié)合凸包和曲率檢測(cè)指尖的算法平均準(zhǔn)確率可以達(dá)到97.9%,在手部運(yùn)動(dòng)的過(guò)程中能準(zhǔn)確的檢測(cè)出指尖的位置和數(shù)目, 可以有效排除手腕處的干擾點(diǎn), 針對(duì)不同方向的指尖都可以準(zhǔn)確檢測(cè)出來(lái), 具有較好的魯棒性. 同時(shí)可以看出1個(gè)手指和三個(gè)手指的誤判比其他的多, 因?yàn)槿齻€(gè)手指的情況較多, 在手指沒伸直的情況下, 容易造成誤判, 而一個(gè)手指則因?yàn)闊o(wú)法使用凸包和曲率結(jié)合算法, 容易受手腕干擾, 不同光照下的檢測(cè)效果如圖10所示. 圖10 不同光照下指尖檢測(cè)結(jié)果 5.1 數(shù)字手勢(shì)識(shí)別實(shí)驗(yàn) 為了驗(yàn)證本文提出的手勢(shì)識(shí)別算法, 本實(shí)驗(yàn)針對(duì)如圖11所示的9種數(shù)字手勢(shì)進(jìn)行識(shí)別, 實(shí)驗(yàn)前先構(gòu)建訓(xùn)練樣本數(shù)據(jù)庫(kù), 邀請(qǐng)5位實(shí)驗(yàn)者針對(duì)每個(gè)手勢(shì)做10次, 要求每個(gè)手勢(shì)的角度不同, 總共采集450張樣本圖像, 然后對(duì)樣本圖像進(jìn)行訓(xùn)練, 計(jì)算每張樣本圖像對(duì)應(yīng)的特征向量并保存結(jié)果. 訓(xùn)練完成之后, 為了驗(yàn)證算法的魯棒性, 再邀請(qǐng)另外的5個(gè)人實(shí)時(shí)檢測(cè)手勢(shì), 每個(gè)手勢(shì)做30次, 即測(cè)試樣本圖像共1350張, 每種手勢(shì)的識(shí)別率如表2所示. 圖11 9種數(shù)字手勢(shì) 表2 9種數(shù)字手勢(shì)檢測(cè)結(jié)果 從圖11和表2可以看出, 用指尖與掌心的距離、指尖與手部水平方向的夾角以及相鄰指尖之間的夾角作為特征向量可以明確的表示出每種手勢(shì)的特征, 平均手勢(shì)識(shí)別率可以達(dá)到97.1%, 其中手勢(shì)3和手勢(shì)6誤檢率最高, 因?yàn)槭謩?shì)3不是正對(duì)著攝像頭時(shí)容易因?yàn)檎趽醵R(shí)別錯(cuò)誤, 手勢(shì)6因?yàn)樵谶\(yùn)動(dòng)過(guò)程中小拇指會(huì)因?yàn)樵肼暩蓴_而誤判為手勢(shì)8. 每幀手勢(shì)識(shí)別處理時(shí)間平均為0.015秒, 實(shí)時(shí)性比較好. 本文方法與常用的HOG+SVM、幾何特征、模板匹配方法14相比使用的特征簡(jiǎn)單, 計(jì)算量小, 準(zhǔn)確率也相差不多. 本文通過(guò)使用Kinect深度圖像信息進(jìn)行指尖檢測(cè)和手勢(shì)識(shí)別, 有效地解決了在不同光照條件和復(fù)雜背景下指尖檢測(cè)和手勢(shì)識(shí)別的難題, 提出一種結(jié)合凸包和曲率檢測(cè)指尖算法, 避免傳統(tǒng)曲率檢測(cè)誤判點(diǎn)多和凸包檢測(cè)位置不準(zhǔn)確的缺點(diǎn). 檢測(cè)出指尖后, 提出一種需要樣本少, 方法簡(jiǎn)單的手勢(shì)識(shí)別算法, 該方法利用指尖與手部水平方向夾角, 相鄰指尖夾角以及指尖和掌心距離作為特征向量, 使用支持向量機(jī)做分類器.通過(guò)實(shí)驗(yàn)證明該算法手勢(shì)識(shí)別精度較高, 指尖檢測(cè)較準(zhǔn)確, 能夠在不同光照條件和復(fù)雜背景下進(jìn)行檢測(cè),魯棒性較好. 但是本文提出的方法在手指并在一起等一些特殊情況無(wú)法準(zhǔn)確檢測(cè)出指尖, OpenNI的手部跟蹤器效果不是很好, 在有遮擋的情況會(huì)跟丟手部區(qū)域, 在今后的工作中研究更精確, 魯棒性更好的跟蹤算法. 1 孫麗娟,張立材,郭彩龍.基于視覺的手勢(shì)識(shí)別技術(shù).計(jì)算機(jī)技術(shù)與發(fā)展,2008,18(10):214–216. 2 易靖國(guó),程江華,庫(kù)錫樹.視覺手勢(shì)識(shí)別綜述.計(jì)算機(jī)科學(xué), 2016,43(6A):103–108. 3 李勇,高文,姚鴻勛.基于顏色手套的中國(guó)手指語(yǔ)字母的動(dòng)靜態(tài)識(shí)別.計(jì)算機(jī)工程與應(yīng)用,2002,17:55–58. 4 Lamberti L, Camastra F. Real-time hand gesture recognition using a color glove. Springer Proc. of the 16th International Conference on Image Analysis and Processing, 2011, 6978(1): 365–373. 5 Keskin C, Kirac F, et al. Real time hand pose estimation using depth sensors. IEEE International Conference on Computer Vision Workshops, 2011, 28(5): 1228–1234. 6 王艷,張奇志.基于Kinect深度信息的手勢(shì)識(shí)別.北京信息科技大學(xué)學(xué)報(bào),2013,28(1): 22–26. 7 鄧瑞,周玲玲,應(yīng)忍冬.基于Kinect深度信息的手勢(shì)提取與識(shí)別研究.計(jì)算機(jī)應(yīng)用研究,2013,30(4):1263–1265. 8 Ren Z, Yuan J, Zhang Z. Robust hand gesture recognition based on finger earth mover’s distance with a commodity depth camera. Proc. of ACM Conference on Multimedia. 2011. 1093–1096. 9 Domini F, Donadeo M, Marin G. Hand gesture recognition with depth data. ARTEMIS ’13 Proc. of the 4th ACM/IEEE International Workshop on Analysis and Retrieval of Tracked Events and Motion in Imagery Stream. 2013. 9–16 10 曹雛清,李瑞峰,趙立軍.基于深度圖像技術(shù)的手勢(shì)識(shí)別方法.計(jì)算機(jī)工程,2012,38(8):16–18. 11 薛麗霞,李濤,王佐成.一種自適應(yīng)的Canny邊緣檢測(cè)算法.計(jì)算機(jī)應(yīng)用研究,2012,27(9):3588–3590. 12 Liao SX, Pawlak M. Image Analysis by Moments. The University of Manitoba Winnipeg, 1993. 13 祁亨年.支持向量機(jī)及其應(yīng)用研究綜述.計(jì)算機(jī)工程,2004, 30(10):6–9. 14 劉淑萍,劉羽,淤俊,汪增福.結(jié)合手指檢測(cè)的HOG特征的分層靜態(tài)手勢(shì)識(shí)別.中國(guó)圖像圖形學(xué)報(bào),2015,20(6):781–788. Fingertip Detection and Hand Gesture Recognition Based on Kinect Depth Image GAO Chen, ZHANG Ya-Jun Aiming at the problem that hand gesture recognition system based on ordinary camera is susceptible to the different lighting conditions and complex background, a fingertip detection and hand gesture recognition algorithm based on Kinect depth image is proposed. First, we get depth image by Kinect sensor. Then the hand region is extracted by putting the depth of thresholds on hand point detected by using OpenNI library. Fingertip detection based on convex hull and curvature is proposed. After the number of fingertips and the location of fingertips being detected, it calculates a feature vector including the number of fingers, the angles between fingertips and horizontal of the hand, the angles between two consecutive fingers, and the distance between fingertips and hand center point. Finally, a support vector machine(SVM) is applied to identify nine scheduled number hand gesture. Five experimenters are invited to perform 9 different hand gestures in the complex environment, which each gesture is repeated at thirty times and the angle of hand gesture is different every time. The experiment results show that this algorithm can detect the number and location of fingertips, and the recognition rate of nine hand gesture is 97.1% on average. This proposed method uses simple features and has good robustness, also it is real-time. Kinect sensor; fingertip detection; support vector machine; hand gesture recognition 2016-07-31;收到修改稿時(shí)間:2016-09-23 10.15888/j.cnki.csa.0057014 手勢(shì)訓(xùn)練和識(shí)別
5 實(shí)驗(yàn)結(jié)果和分析
6 結(jié)語(yǔ)
(Beijing University of Chemical Technology, College of Mechanical and Electrical Engineering, Beijing 100029, China)