国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種可用于普通PC攝像頭的手勢檢測與識(shí)別算法

2021-05-28 07:05:14佟喜峰
綏化學(xué)院學(xué)報(bào) 2021年5期
關(guān)鍵詞:膚色手勢手部

佟喜峰 樊 鑫

(東北石油大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院 黑龍江大慶 163318)

近些年來,隨著信息技術(shù)的不斷發(fā)展,手勢識(shí)別技術(shù)作為新型的人機(jī)交互方式得到了廣泛的研究與關(guān)注,但是目前手勢識(shí)別并沒有得到廣泛的應(yīng)用,主要原因是大多都需要昂貴的專用攝像頭和傳感器設(shè)備,比較常見的是Kinect傳感器和深度攝像頭。王攀等通過Kinect傳感器對手勢的深度圖像進(jìn)行獲取,進(jìn)而追蹤手勢的骨骼關(guān)鍵點(diǎn),再利用動(dòng)態(tài)時(shí)間規(guī)整算法(DTW)進(jìn)行識(shí)別,取得了不錯(cuò)的識(shí)別效果[1]。有多位研究人員研究基于成本較低的基于普通PC攝像頭的手勢識(shí)別,取得了較多成果。張勛等人提出一種靜態(tài)手勢檢測網(wǎng)絡(luò)模型ASSD,該模型基于深度學(xué)習(xí)的SSD方法,將原方法的特征提取網(wǎng)絡(luò)VGG16用改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)Alex Net取代,取得了較好的識(shí)別效果[2]。沈雅婷通過深度學(xué)習(xí)提取多層網(wǎng)絡(luò)簡化的高價(jià)值易用特征,通過向量的表示簡化了算法[3]。利用深度學(xué)習(xí)的方法進(jìn)行手勢識(shí)別的確可取得較好的識(shí)別效果,但也存在一些問題,例如訓(xùn)練時(shí)間比較長,需要比較多的學(xué)習(xí)樣本,在識(shí)別速度上會(huì)略慢,而且還需要性能比較好的PC設(shè)備。針對上面存在的問題本文采用普通PC攝像頭進(jìn)行視頻的獲取,采用膚色分割法結(jié)合背景差分法的方法對手勢進(jìn)行分割,采用動(dòng)態(tài)時(shí)間規(guī)整算法(DTW)進(jìn)行實(shí)時(shí)識(shí)別。本文采用的方法沒有用到深度學(xué)習(xí),只需要普通的PC機(jī)就可以流暢地運(yùn)行。實(shí)驗(yàn)結(jié)果表明本文的算法在實(shí)時(shí)性和準(zhǔn)確度方面都取得了比較好的效果。

一、手勢檢測算法

手勢跟蹤的整體流程如圖1所示。由于圖像可能會(huì)受到光照的影響引起色偏以及飽和度不足的情況,從而影響最終手勢分割的效果,因此在得到了視頻圖像之后,先采用色彩平衡算法對視頻圖像進(jìn)行處理。本文使用的是王朝輝等人提出的色彩平衡算法[4],該算法可以在一定程度上消除光照引起的視頻圖像色彩不均勻的情況。接下來利用膚色檢測的方法來獲取視頻圖像中的膚色區(qū)域,膚色檢測常用的方法有三種,分別是基于RGB、HSV和YCbCr顏色空間的膚色檢測。對比實(shí)驗(yàn)結(jié)果表明YCbCr得到的膚色檢測的效果最為良好。雖然基于RGB的效果也不錯(cuò),但是速度較慢,不滿足實(shí)時(shí)檢測的要求。因此選擇了基于YCbCr顏色空間的膚色檢測方法。采用基于YCbCr的方法首先需要把RGB顏色空間轉(zhuǎn)換為YCbCr顏色空間,轉(zhuǎn)換公式如公式(1)-(3)所示。

圖1 手勢跟蹤算法流程圖

基于YCbCr顏色空間的膚色檢測算法的算法步驟為:

(1)利用轉(zhuǎn)化公式將圖像從RGB顏色空間轉(zhuǎn)到Y(jié)CbCr顏色空間;

(2)利用opencv的split函數(shù)分別將轉(zhuǎn)化后的圖像的Y、Cb和Cr顏色提取出來;

(3)將提取出來的Cr顏色空間做高斯濾波;

(4)對Cr進(jìn)行二值化,得到二值化后的膚色區(qū)域。

在得到膚色區(qū)域之后,一般會(huì)存在一些噪聲。為了避免噪聲對后續(xù)處理產(chǎn)生影響,需要進(jìn)行降噪處理。本文通過數(shù)學(xué)形態(tài)學(xué)的閉運(yùn)算,即先做膨脹再做腐蝕,達(dá)到降噪的目的。接下來利用背景差分法獲取動(dòng)態(tài)的前景區(qū)域。背景差分法是一種攝像頭靜止的條件下獲取運(yùn)動(dòng)目標(biāo)的方法[5-6],它的原理是利用當(dāng)前幀和背景圖像差分從而得到運(yùn)動(dòng)區(qū)域。背景差分法首先要選取視頻序列的前N幀圖像做平均得到背景圖像。假設(shè)f(x,y,i)表示第i幀圖像,b(x,y,i)表示根據(jù)第i幀圖像之前的N幀圖像求得的背景圖像,公式(4)給出了b(x,y,i)的計(jì)算公式。假設(shè)d(x,y,i)表示第i幀差分圖像,則d(x,y,i)的計(jì)算公式如公式(5)所示。在獲得差分圖像后,通過閾值化操作獲取二值化后的目標(biāo)。

圖2給出了利用該方法檢測運(yùn)動(dòng)目標(biāo)的算法,圖3給出了背景差分的計(jì)算結(jié)果。

圖2 運(yùn)動(dòng)目標(biāo)檢測算法

圖3 背景差分的計(jì)算結(jié)果

因?yàn)轭^部做不到完全靜止的狀態(tài),因此人臉存在時(shí)人臉也會(huì)被檢測出來,這樣就得到視頻中的運(yùn)動(dòng)目標(biāo)區(qū)域。設(shè)膚色檢測后的視頻圖像為A,背景差分法得到的是B,那么將兩者二值化后做與運(yùn)算就可以將背景中禁止的類膚色區(qū)域剔除掉,得到運(yùn)動(dòng)區(qū)域res=A&B。圖4給出了膚色分割和背景差分做與運(yùn)算結(jié)果。圖4(a)為原始圖像;圖4(b)為膚色分割的結(jié)果;圖4(c)為膚色分割和背景差分做與運(yùn)算的結(jié)果。由圖4可見,墻上的包已經(jīng)被剔除掉。

圖4 類膚色區(qū)域剔除的結(jié)果

經(jīng)過圖像分割后,只剩下運(yùn)動(dòng)的手部區(qū)域和可能出現(xiàn)的較小的噪聲區(qū)域,如果存在人臉,人臉也會(huì)被檢測出來,當(dāng)頭部存在時(shí)應(yīng)去除頭部區(qū)域。去除頭部區(qū)域的方法是利用人臉檢測模型進(jìn)行檢測[7-8],從而判斷人臉是否存在并記錄人臉?biāo)趨^(qū)域的位置,為后面剔除人臉區(qū)域做準(zhǔn)備。接下來要用邊緣檢測算法對上面得到的運(yùn)動(dòng)區(qū)域res進(jìn)行輪廓的提取。一般情況下,邊緣點(diǎn)的周圍既有白點(diǎn)也有黑點(diǎn),對二值圖像的像素點(diǎn)進(jìn)行遍歷,當(dāng)遍歷到黑色點(diǎn)的時(shí)候,判斷這個(gè)點(diǎn)的四周是否全為黑色點(diǎn),否則,說明該點(diǎn)為邊緣點(diǎn)。圖5給出了輪廓提取算法。

圖5 輪廓提取算法

在得到的膚色檢測的圖像中,一般情況下里面包括人臉、手勢和一些較小的噪聲區(qū)域。通常情況下在人臉存在時(shí)手和臉是面積最大的兩個(gè)輪廓,人臉不存在時(shí)手是面積最大的輪廓。接下來對圖像的所有輪廓按面積進(jìn)行排序。如果在前面的步驟中檢測到人臉,則標(biāo)記人臉的位置,選取除人臉外的最大輪廓作為手部區(qū)域。如果在前面的步驟中沒有檢測到人臉,則直接選取最大輪廓作為手部區(qū)域。圖6給出了手部區(qū)域檢測的算法。圖7給出了手部的檢測結(jié)果。

圖6 手部區(qū)域檢測的算法

圖7 手部檢測結(jié)果

二、手勢特征提取

為提取手勢特征,需要先提取手勢輪廓。首先利用數(shù)學(xué)形態(tài)學(xué)的膨脹和腐蝕運(yùn)算消除大部分的噪聲點(diǎn)和空洞區(qū)域,然后利用邊緣提取算法將輪廓提取出來。具體的邊緣提取的規(guī)則為:如果某個(gè)點(diǎn)為黑像素點(diǎn),如果該像素點(diǎn)的上下左右四個(gè)鄰近點(diǎn)有白點(diǎn),則把當(dāng)前黑像素點(diǎn)置為白色。

在得到的手勢輪廓上提取如下特征:(1)各個(gè)輪廓點(diǎn)到中心點(diǎn)的距離;(2)相對曲線高度。為計(jì)算各個(gè)輪廓點(diǎn)到中心點(diǎn)的距離需要求取各個(gè)輪廓點(diǎn)的坐標(biāo),但是當(dāng)一個(gè)手勢輪廓和模板手勢的大小相差太大時(shí),那么輪廓點(diǎn)與中心點(diǎn)的距離會(huì)發(fā)生較大的變。如果把這些距離作為特征,變化的距離會(huì)導(dǎo)致識(shí)別準(zhǔn)確率的降低。所以要提前進(jìn)行大小歸一化,將待識(shí)別的手勢輪廓與模板手勢輪廓?dú)w一化成相同的周長。假設(shè)某個(gè)輪廓點(diǎn)的坐標(biāo)為(xi,yi),手部中心點(diǎn)坐標(biāo)為(xc,yc),那么(xi,yi)與(xc,yc)的距離di為:

算法需要根據(jù)公式(6)計(jì)算出每個(gè)輪廓點(diǎn)到中心點(diǎn)的距離。以各個(gè)輪廓點(diǎn)到中心點(diǎn)的距離為曲線高度,則相對曲線高度是指曲線當(dāng)前高度與當(dāng)前鄰域內(nèi)曲線高度平均值的差值。相對曲線高度的絕對值越大,表明在當(dāng)前位置曲線越彎曲。

三、基于DTW的手勢識(shí)別

DTW算法,即動(dòng)態(tài)時(shí)間規(guī)整算法[9-11],它能夠?qū)蓚€(gè)整體形狀類似,但長度不一致的時(shí)間序列在時(shí)間軸上進(jìn)行動(dòng)態(tài)的扭曲,從而用來計(jì)算兩個(gè)時(shí)間序列的相似性。對于兩個(gè)手勢,當(dāng)發(fā)生較大形變時(shí),該算法也能取得比較好的識(shí)別效果。分別對模板手勢和待識(shí)別手勢提取相對曲線高度特征,然后利用DTW算法計(jì)算匹配距離,最終以最小匹配距離所對應(yīng)的模板手勢的類別作為識(shí)別結(jié)果。

四、實(shí)驗(yàn)結(jié)果及分析

為了驗(yàn)證本文提出的手勢分割算法的有效性,我們將本文的方法和以下兩種方法進(jìn)行了對比:基于橢圓膚色檢測模型的方法;基于YCbCr和OSTU[12]相結(jié)合的方法。圖8給出了實(shí)驗(yàn)結(jié)果的對比情況。

從圖8可以看出,基于橢圓膚色模型的手勢分割和基于YCbCr和OSTU結(jié)合的手勢分割得到的結(jié)果比較相似,會(huì)受到人臉和類膚色區(qū)域的干擾,均不能得到單獨(dú)的手部區(qū)域,本文的方法可以得到單獨(dú)的手勢,剔除掉其它的類膚色區(qū)域。手勢分割算法的好壞在于能否從復(fù)雜環(huán)境中把手勢單獨(dú)提取出來,通過對比實(shí)驗(yàn)表明本文的方法具有較好的分割效果。

本實(shí)驗(yàn)將ASL數(shù)據(jù)集[13]中的手勢作為模板手勢,分別從ASL手勢數(shù)據(jù)集的數(shù)字‘0’到‘9’選取五張不同的圖片,為了滿足實(shí)時(shí)性的要求,避免在識(shí)別時(shí)才提取模板圖片的特征從而導(dǎo)致識(shí)別速度過慢。因此要提前對這些手勢圖像進(jìn)行特征進(jìn)行提取并放在文件中,在識(shí)別時(shí)直接讀取文件中的特征數(shù)據(jù)。準(zhǔn)備工作完成以后,通過測試者在Pc機(jī)前實(shí)時(shí)的對數(shù)字0-9十個(gè)數(shù)字分別做了二十次實(shí)驗(yàn)測試。得到的識(shí)別準(zhǔn)確率如表1所示,從表1可以看出總體的識(shí)別準(zhǔn)確率可以達(dá)到90%,表明本文的識(shí)別算法對實(shí)時(shí)檢測到的手勢具有較高的識(shí)別準(zhǔn)確率。

表1 手勢識(shí)別的準(zhǔn)確率

實(shí)驗(yàn)用到的PC設(shè)備主要參數(shù)如下:CPU為Intel i7-4900m,內(nèi)存為16G。測得識(shí)別每個(gè)手勢需要的平均時(shí)間為0.1秒,可以滿足實(shí)時(shí)識(shí)別的要求。

五、結(jié)論

本文提出了基于普通PC攝像頭的手勢識(shí)別算法,該算法包括基于膚色檢測和背景差分法的手勢跟蹤、手勢特征提取、基于DTW的手勢特征識(shí)別等幾部分內(nèi)容。實(shí)驗(yàn)結(jié)果表明該算法在跟蹤效果、識(shí)別準(zhǔn)確率和識(shí)別速度方面均能取得較好效果。

猜你喜歡
膚色手勢手部
手部皮膚軟組織缺損修復(fù)的皮瓣選擇
Conversation in a house
人的膚色為什么不同
挑戰(zhàn)!神秘手勢
V字手勢的由來
勝利的手勢
兩種皮瓣修復(fù)手部軟組織缺損的比較
發(fā)生于手部的硬下疳一例
復(fù)明膠囊疑致手部腫痛1例
膚色檢測和Hu矩在安全帽識(shí)別中的應(yīng)用
绥滨县| 苏尼特左旗| 洪泽县| 樟树市| 保定市| 雅江县| 克什克腾旗| 黄龙县| 当阳市| 普陀区| 唐河县| 弥渡县| 宣化县| 桂平市| 团风县| 巧家县| 和政县| 延安市| 富平县| 天峨县| 台前县| 宜城市| 万安县| 文安县| 长顺县| 荥阳市| 岳普湖县| 聂拉木县| 莲花县| 都匀市| 正镶白旗| 湄潭县| 应用必备| 聊城市| 福贡县| 天长市| 望城县| 玉溪市| 始兴县| 兰西县| 贵德县|