?

基于Kinect骨骼信息與深度圖像的指尖點檢測

2019-03-19 01:01,,
計算機測量與控制 2019年3期
關鍵詞:像素點手部輪廓

,,

(河南理工大學 機械與動力工程學院,河南 焦作 454000)

0 引言

手勢識別作為人機交互中的一項關鍵技術,是當前計算機視覺領域的研究熱點。其中的指尖檢測是該技術的一個重要基礎組成部分,已在多個領域得到廣泛應用,如智能家居、人機協同、機器人智能控制等。早期的手勢識別技術多采用普通攝像頭獲取圖像信息,該技術采集的圖像易受到不同光照條件和復雜背景的影響,采用光電傳感器等設備采集圖像成本高、約束條件多[1-2]。傳統的基于數據手套的手勢識別方法識別率雖然不受光照和復雜背景影響,但是需要用戶穿戴復雜設備影響交互的自然特性;基于膚色模型在YCrCb或HSV顏色空間的聚類特性分割出手勢區域易受光照的影響[3];Simen Andresen, Stokkeland等人利用HSV顏色閾值分割提取手掌部分,循環遍歷每一個像素點的深度值,檢測矩陣中突變的像素點,但是受復雜環境影響較大。針對上述問題,提出了一種基于Kinect骨骼信息和深度圖像的指尖點檢測方法,重點研究內容如下:

1)在DRVI平臺創建Kinect接口控件;

2)深度圖像跟蹤手部區域;

3)對不同手勢凸包點進行K-曲率計算,生成相應的HOG特征描述子。

1 系統結構及原理

手勢識別系統的結構包括圖像的采集、手勢跟蹤與定位、手勢分割與預處理、手勢特征提取和指尖檢測五個部分,其中手勢特征提取和指尖檢測是識別系統的關鍵,該部分的主要功能是分析設備采集的圖像,提供原始圖像數據,并根據不同用戶對輸入參數進行實時調整。

目前,國內采集深度圖像的設備主要有兩種,一種是因特爾的RealSense,具有體積小,方便攜帶但深度圖的質量較差,噪聲非常大;另一種是采用PrimeSense公司技術的體感攝像頭,此攝像頭芯片價格便宜,能耗低,而且其微小的體型適用于筆記本以及智能手機等終端。Kinect最初作為XBOX 360主機的外設,旨在讓用戶脫離控制器,通過語音或手勢來操作XBOX的系統界面,是以PrimeSense1080系統級芯片技術為核心的圖像采集裝置,由彩色攝像頭、深度攝像頭等部件構成,還搭配追焦技術,底座馬達會隨著對焦物體移動跟著轉動,內建陣列式麥克風,由四個麥克風同時收音比對后消除雜音,并通過其采集聲音進行語音識別和生源定位,如圖1所示。

圖1 Kinect結構

Kinect傳感器的主要功能就是可以產生三維數據,獲取深度圖像的方法是將結構光投射至場景,對獲取的紅外數據進行計算處理,并由傳感器捕獲相應的帶有結構光的圖案,采集的深度圖像如圖2(a)所示;微軟將偵測到的3D深度圖像轉換到骨架追蹤系統,骨骼追蹤技術是Kinect的核心技術,它可以準確標定人體的20個關鍵點,并能對這20個點的位置進行實時追蹤。利用這項技術,可以開發出各種基于體感人機交互的有趣應用如圖2(b)所示。Kinect捕獲的骨骼數據屬于三維空間數據,將坐標信息映射到所獲取的深度圖像上,關節點用圓形顯示,需要采用坐標映射的方法將節點從骨骼數據三維空間轉換到深度數據的二維空間,根據手掌節點的坐標確定手勢的大致范圍,如圖2(c)所示。

圖2 Kinect采集的圖像

2 手勢分割

手勢分割作為手勢識別的前提,手勢分割的好壞直接影響手勢識別的識別率。一般的分割方法大致分為基于直方圖的分割、 基于局部區域信息的分割、基于顏色等一些物理特征的分割方法,但這些分割技術大都需要對背景、用戶以及視頻采集加以約束,受背景復雜度和光照變化的影響較大。傳統的視覺的手勢提取算法主要有基于膚色的手勢提取、基于運動的手勢提取及基于輪廓的手勢提取等,手部區域的提取通常包括手勢分割、手勢建模、特征匹配等過程[4]。為了更好地檢測手勢區域掌心點和指尖點,首先需要把手掌從復雜的背景中分離出來,在深度圖中利用骨骼追蹤系統確定手部、腕部坐標及灰度值,然后搜索手腕節點的端點,采用最近鄰法則和閾值法則從深度圖像中分離出手部區域[5]。Kinect捕獲到的腕坐標(Xw,Yw,Zw)和手部關節點坐標(Xh,Yh,Zh)是骨骼空間數據,根據骨骼空間數據計算手部、腕部在深度圖的坐標(Dh,Dh)和(Dw,Dw),可以得到相應的深度值dh、dw,對深度圖2維數據可表示為addr(Mij)=M.data+M.step[0]*i+M.step[1]*j;M.step[]表示元素地址(i0,…iM.dims-1), 其中0?ik

(1)

式中,i表示深度圖像手勢區域的行數,j表示深度圖像手勢區域的列數,maxv表示深度圖中輪廓像素的最大值。

本文在DRVI平臺上做了XBOX的接口控件,DRVI是采用軟件總線開放結構和COM/DCOM組件的即插即用特性來設計的具有計算機硬件模塊化組裝特點的面向用戶的可在線編程、調試和重組的新型虛擬儀器技術。從深度圖分割出來的手勢區域邊緣存在很多圖像缺陷影響手勢識別的結果,需要對手勢區域進行高斯濾波處理,如圖3所示。

圖3 高斯濾波處理

圖4(a)中被黑色矩形框圈出來的深度圖像為手部區域,圖4(b)是用最近鄰法則分離出來的深度手勢圖像。然后采用形態學處理中的開閉運算對其進行去除噪聲處理,能有效的消除和抑制噪聲,達到圖像平滑的效果[6],經過濾波和形態學處理后的手勢圖像邊緣鋸齒狀明顯減少,如圖4(c)所示。

圖4 手部區域圖

3 手勢識別

在計算機科學和人機交互領域中,手勢識別是通過數學算法來識別人類手勢的一個議題。手勢識別可以來自人的身體各部位的運動,但是一般是指手的運動或者手形識別,根據交互功能的要求有動態的識別,比如左右揮手,還有靜態的手形識別,比如識別伸出手指個數,用戶可以使用簡單的手勢來控制或與設備交互,讓計算機理解人的意圖,此手勢識別系統主要研究研究靜態手形的識別。

在連續情況下,矩特征主要表現了圖像區域的幾何特性,具有旋轉、平移、尺度等特性的不變特征,可以據此特征來對圖像進行分類。圖像函數為f(x,y),那么圖像的p+q階中心矩和p+q階幾何矩分別定義為:如式(2)所示:

(2)

(3)

利用二階和三階歸一化中心距構造了7個不變矩M1~M7:如式(4)所示:

M1=δ20+δ02

M2=(δ20-δ02)2+4δ112

M3=(δ30-3δ12)2+(3δ21-δ03)2

M4=(δ30+δ12)2+(δ21+δ03)2

M5=(δ30+3δ12)(δ30+δ12)[(δ30+δ12)2-3(δ21+δ03)2]+(3δ21+δ03)(δ21+δ03)[3(δ30+δ12)2-(δ21+δ03)2]

M6=(δ20+δ02)[(δ30+δ12)2-(δ21+δ03)2]+4δ11(δ30+δ12)(δ21+δ03)

M7=(3δ21-δ03)(δ30+δ12)[(δ30+δ12)2-3(δ21+δ03)2]-(δ30-3δ12)(δ21+δ03)[3(δ30+δ12)2-(δ21+δ03)2]

(4)

HOG通過計算和統計圖像局部區域的梯度方向直方圖,如圖5所示。

圖5 標準圖像直方圖

與Hu矩的7個特征構成一組特征向量,每一種手形對應一個XML文件,生成對應的標簽。根據SVM分類思想訓練出一個分割超平面,即分類的決策邊界,當Kinect場景內出現與預定義手形最相近的特征,即被貼上對應的標簽,如圖6所示。

圖6 識別效果圖

4 指尖檢測

4.1 手部區域邊緣檢測

穩定的指尖檢測算法可以應用在人機交互系統中,提升交互技術的靈活性,用 Graham Scan Algorithm掃描算法尋找邊緣輪廓點中橫坐標(縱坐標)最小的點作為第一個點;

1)其他的點按照極角大小順時針排列,如果有共線的取最近的那一個,依次將P0,P1,P2三個坐標壓入棧;

圖7 點集P的凸包

邊緣是指圖像局部強度變化最顯著的部分,邊緣主要存在目標與目標、目標與背景、區域與區域之間。多次實驗得閾值為200效果最好,如果T1<200則判定為偽輪廓,本文采用Canny邊緣檢測算法是對信噪比和定位之乘積的最優化逼近算子,用于手勢邊緣的雙閾值算法檢測和連接邊緣[8-9],如圖8(a)是手部區域的輪廓圖。為去除手腕信息的干擾,首先用ApproxpolyDP逼近多邊形算法只找到輪廓上的關鍵點,目的就是縮小指尖點所在輪廓上的范圍,只是此輪廓粗獷一些[10-11];可以通過掃描圖像法找到手勢圖像最上面的點top,以top為基點沿逼近多邊形輪廓點順時針逆時針各區30個像素點,以Ptop、Ptop+30、Ptop-30三點作圓,如圖8(b)所示。從實驗結果可以看出,這兩種約束條件可以很好的去除冗余的手腕信息。

圖8 手勢輪廓圖

4.2 計算手勢區域掌心點位置

指尖檢測的一個關鍵問題就是掌心點提取,掌心點包含手勢許多重要的信息,比如指尖點的位置、方向以及手勢的種類等。目前,在圖像處理中尋找掌心點有圖像矩和距離變換等兩種常用算法。在圖像處理、計算機視覺和相關領域中,通過圖像矩可以輕易得到圖像質心和關于其方向的信息,圖像矩是沿x、y方向對輪廓邊界像素的積分,利用零階矩和一階矩求重心,深度圖中的手部區域可以用手部節點粗略表示手勢位置但不能準確代表手掌掌心,手勢骨骼節點根據人體姿態不同發生抖動[12-13];距離變換的基本思想就是計算圖像中像素點到最近零像素點的距離,象棋格距離(Chessboard Distance),公式(5)如下:

D=max(|x2-x1|,|y2-y1|

(5)

此距離變換減少了計算量,將二值化手掌圖像內的手掌部分設為白色,外部區域設為黑色,該算法可以精確找到手掌掌心,如圖9所示。

圖9 距離變換掌心圖

計算一個圖像中非零像素點到最近的零像素點距離,通過合理的閾值限制可以得到去除手指的圖像,手部質心即為該圖像的幾何中心,如圖10所示手勢的質心及坐標。

圖10 手勢質心及坐標

4.3 指尖點檢測

指尖檢測的效果影響交互的豐富度、靈活性。Lee等人通過計算掌心與輪廓的邊緣距離檢測單個指尖的位置實現虛擬交互[14]。本文采用手勢輪廓凸包的缺陷和輪廓點曲率結合的方法檢測指尖點,計算不同手勢指尖點的HOG特征描述子,并識別0~5的數字手勢。利用計算機視覺庫函數convexityDefects檢測出手勢輪廓與逼近多邊形圍成的凹缺陷和凸包,在此創建一個迭代器對順序或關聯容器類型中的每個元素進行連續訪問,如圖11所示convexity hull與手掌之間的部分為convexity defects。每個convexity defect區域有四個特征量:起始點(startPoint),結束點(endPoint),距離convexity hull最遠點(farPoint),最遠點到convexity hull的距離(depth),A~F區域為檢測出的缺陷,則startPoint、endPoint為指尖候選點?;谇实闹讣鈾z測法主要依靠計算手部區域中類指尖點的近似K曲率,藍色折線是手指細化的結果,目的就是為了讓圖像信息的特征更加突出,細化算法一定要滿足收斂性、保持原圖的基本形狀及減少筆畫相交處的畸變等,式(6)所示:

y=p0*20+p1*21+p2*22+p3*23+p4*24+…,

(6)

圖11 手勢缺陷圖

(7)

圖12 K曲率算法

一般在指尖點位置的曲率達到最大,曲率K的取值范圍(-1,1),在其范圍中設定閾值T,K?T此點才可能是類指尖點[15-16],需要滿足式(8):

(8)

目前檢測出來的點稱為“類指尖點”可能是指尖點、手指之間的凹槽點或者手掌末端與手臂連接處的點,需要添加一個過濾條件排除凹槽點:

1)由圖12所知,以輪廓上任意一點P(i)前后相隔m個像素點形成的夾角,如果夾角25°<α<35°,則此點為指尖點,如果夾角γ接近180°則此點在手指輪廓上;如果夾角β大于50°則判斷為指尖凹槽點;

2)如圖13所示可以比較單指尖點到掌心點的距離,如果指尖點的到掌心的距離大于1.5倍相鄰凹槽點到掌心點距離,則此點為指尖點,否則沒有手指伸出,此方法既可以檢測單指尖又可以檢測多指尖;

圖13 重心距離法

3)由圖11知凹缺陷深度應該大于掌心圓半徑,但小于手部輪廓最小外接圓半徑,經過五指伸開近似正方形這一條件過濾掉手腕干擾,如果類指尖點符合公式,則此點為凹槽點,如圖14所示。

(9)

圖14 凹槽點檢測法

把檢測到的凸輪廓的凸包點儲存在hullpoint向量容器中,遍歷窗口中所有輪廓,算法中定義ofstream類型,把.txt里面的坐標點導入origin數據處理軟件中生成散點圖,如圖15(a)所示,在一幅圖像中,HOG利用梯度或邊緣的方向密度分布能夠很好地描述局部目標區域的特征的思想,對凸包點集的梯度信息作出統計,生成HOG特征描述,圖像的梯度針對的是每一個像素計算得到,水平邊緣梯度算子:[-1,0,1], 垂直邊緣算子[-1,0,1]T, 圖像中像素點(x,y)的梯度為:

(10)

式中,gx(x,y),gy(x,y),h(x,y)分別表示輸入圖像像素點(x,y)處的水平方向梯度、垂直方向梯度和像素值。

由式(10)得,類指尖點(x,y)的幅值和梯度方向分別為:

(11)

然后在cell中進行方向梯度直方圖的構建,統計局部圖像信息并進行編碼,如圖15(b)所示:

圖15 HOG手勢特征圖

5 實驗結果與分析

為了驗證本文指尖檢測和手勢提取算法的可靠性和準確性,實驗采用微軟Kinect XBOX 360一代攝像頭采集深度圖像和骨骼數據,深度圖像分辨率為320×240?;贛icrosoft Visual Studio 2010環境,通過配置計算機開源視覺庫OpenCV2.4.9、Kinect SDK1.8,DRVI4.5控件接口,用C++進行編程。本文對指尖數目0~5的6種情況進行測試,識別效果如圖16所示。

圖16 不同數目指尖識別效果

針對圖16所示的6種數字手勢進行識別,識別邀請5位實驗者進行試驗測試,每位實驗者在不同光照下對每個手勢分別做10次,總共采集300張樣本圖像,根據測試的結果每種手勢的識別率如表1所示:

表1 6種數字手勢檢測結果

由圖16和表1可以看出,數字手勢0和數字手勢5識別率最高,對于數字5五指伸開時各手指之間間距較大相互不影響,數字手勢0無指尖特征;數字手勢2只有兩個缺陷起始點和一個凹槽點識別率也比較高;數字手勢3和4容易識別混淆手勢發生抖動時檢測不到指尖點導致錯檢漏檢;由于數字手勢1無輪廓缺陷點無法使用曲率算法根據中心距離法求得,所以漏檢率較高。圖17(a)和圖17(b)是在不同光照和復雜環境下檢測的結果。

圖17 不同光照和復雜環境識別結果

6 結語

本文首先分析了手勢識別研究的背景和意義,重點對手勢分割和指尖檢測的方法和關鍵技術做了深入研究,主要工作為:在靜態手勢識別方面利用Kinect骨骼數據快速定位手勢在深度圖的位置;在DRVI平臺創建XBOX接口控件快速處理圖像,減小運算量,利用設定閾值去除為輪廓,距離變換處理尋找掌心點;利用凸包和K-曲率結合方法尋找指尖點,生成相應的特征描述算子。本文的研究內容可以解決不同光照和復雜背景下手勢識別的難題,避免采用膚色轉換算法中的類膚色區域的干擾。當人距離Kinect較遠或者坐著的時候手掌節點發生抖動可能會導致跟蹤失敗,而且對預定義的手勢種類有限,所以該算法還需進一步深入研究。研究成果可以將基于視覺的指尖檢測這一新型技術融入到機器人控制之中,簡化機器人控制的復雜度,提高人與機器人之間的交互性。

猜你喜歡
像素點手部輪廓
手部皮膚軟組織缺損修復的皮瓣選擇
尺動脈腕上皮支逆行島狀皮瓣修復手部皮膚軟組織缺損
封閉負壓吸引技術聯合游離股前外側穿支皮瓣修復手部大面積軟組織缺損
圖像二值化處理硬件加速引擎的設計
基于局部相似性的特征匹配篩選算法
跟蹤導練(三)
基于像素點篩選的艦船湍流尾跡檢測算法
基于canvas的前端數據加密
兒童筒筆畫
創造早秋新輪廓
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合