本發(fā)明涉及人機交互技術(shù)領(lǐng)域,特別涉及一種手勢識別裝置及識別方法。
背景技術(shù):
手勢控制是指用手勢去控制計算機等電子設(shè)備,實現(xiàn)人機之間的交互。不同于日常工作生活中以鼠標(biāo)、遙控器等設(shè)備為基礎(chǔ)的控制方式,手勢控制以人的手臂的移動作為控制要素,實現(xiàn)一種新型的人機交互方式。
自從計算機面世以來,人機交互最初始的方式是通過以鍵盤為主的命令行界面的方式實現(xiàn)的。后來,鼠標(biāo)的面世使得圖形界面作為第二代人機交互方式大行其道,并且在當(dāng)今的人機交互領(lǐng)域,尤其是在個人計算機的控制上,仍然占據(jù)著大部分市場。隨著移動互聯(lián)網(wǎng)的爆發(fā)增長,以觸控技術(shù)為基礎(chǔ)的智能手機等設(shè)備廣泛應(yīng)用于社會的各個角落,因此,觸控技術(shù)也發(fā)展成為第三代人機交互技術(shù)。由之前三代人機交互技術(shù)的發(fā)展歷程可以看出,人機交互的發(fā)展趨勢在于人機交互的方式越來越趨向于人與人之間交互的方式,因此,第四代人機交互方式正是以多媒體技術(shù)為基礎(chǔ),語音識別,圖像識別為具體手段,手勢控制正是第四代人機交互方式的實現(xiàn)手段之一。
手勢控制的一個關(guān)鍵的技術(shù)在于如何提取特定的手勢信息,以便于計算機利用手勢信息實施相關(guān)動作實現(xiàn)人機交互。目前常用的手勢識別方法包括:利用手環(huán)、指套等輔助裝置進(jìn)行手勢識別,利用多攝像頭進(jìn)行立體空間識別的手勢活動把持技術(shù)(Leap motion),或者利用機器學(xué)習(xí)算法對大量手勢數(shù)據(jù)庫進(jìn)行訓(xùn)練學(xué)習(xí)。
然而,在上述方法中采用輔助設(shè)備進(jìn)行手勢識別,穿戴輔助設(shè)備難免會影響用戶體驗;而采用多攝像頭立體識別進(jìn)行手勢識別,需要配備多個高精度攝像頭,成本較高,而且其中的非局部匹配算法也難以用硬件實現(xiàn);機器學(xué)習(xí)算法需要建立龐大的數(shù)據(jù)庫,而且對于硬件設(shè)備要求更高。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于克服現(xiàn)有技術(shù)的缺陷,提供一種能夠方便獲取圖像中手勢的識別裝置及識別方法。
為達(dá)成上述目的,本發(fā)明提供一種手勢識別裝置,包括:圖像傳感器,用于生成圖像信息;預(yù)處理單元,用于獲取用戶手中心位置和用戶手面積;目標(biāo)區(qū)域選擇單元,用于根據(jù)所述用戶手中心位置和用戶手面積確定包圍用戶手掌的矩形目標(biāo)區(qū)域;采樣線設(shè)定單元,用于根據(jù)所述用戶手面積以相應(yīng)間隔在所述矩形目標(biāo)區(qū)域內(nèi)添加多條水平的采樣線;計算單元,用于計算所述矩形目標(biāo)區(qū)域內(nèi)每條采樣線上手指段的數(shù)量;手勢識別單元,根據(jù)每條采樣線上手指段的數(shù)量識別手勢。
優(yōu)選的,所述圖像傳感器為紅外成像傳感器,用于接收經(jīng)反射的紅外光并生成所述圖像信息。所述預(yù)處理單元包括:圖像預(yù)處理模塊,用于對所述圖像傳感器生成的圖像信息進(jìn)行冪次變換;二值圖像生成模塊,其對經(jīng)所述冪次變換的前后兩幀圖像的各像素點的灰度值分別作差并取其絕對值,當(dāng)所述絕對值大于設(shè)定閾值時,將所述像素點的值設(shè)為1,否則設(shè)為0,以生成用1和0表示的二值圖像;以及識別模塊,根據(jù)所述二值圖像中值為1的像素點的數(shù)量確定所述用戶手面積、以及根據(jù)所述二值圖像中值為1的各像素點的坐標(biāo)的平均值確定所述用戶手中心位置。
優(yōu)選的,所述目標(biāo)區(qū)域選擇單元以所述用戶手中心位置為矩形下邊緣的中點向上形成所述矩形目標(biāo)區(qū)域。
優(yōu)選的,所述計算單元計算每條所述采樣線上、長度在閾值范圍內(nèi)的亮線段的數(shù)量作為手指段的數(shù)量。
優(yōu)選的,所述手勢識別單元判斷是否連續(xù)多條采樣線上手指段的數(shù)量相同為N,若是則判斷當(dāng)前圖像信息中的手指數(shù)量為N,并根據(jù)手指數(shù)量相應(yīng)識別手勢;或者,所述手勢識別單元對連續(xù)M幀圖像的每一幀圖像均判斷是否有連續(xù)多條采樣線上手指段的數(shù)量相同為N,若是則判斷所述M幀圖像的手指數(shù)量為N,并根據(jù)手指數(shù)量相應(yīng)識別手勢;其中N為大于等于1且小于等于5的正整數(shù),M為大于等于2的正整數(shù)。
本發(fā)明還提供一種圖像手勢識別方法,包括以下步驟:
S1:生成圖像信息;
S2:獲取用戶手中心位置和用戶手面積;
S3:根據(jù)所述用戶手中心位置和用戶手面積確定包圍用戶手掌的矩形目標(biāo)區(qū)域;
S4:根據(jù)所述用戶手面積以相應(yīng)間隔在所述矩形目標(biāo)區(qū)域內(nèi)添加多條水平的采樣線;
S5:計算所述矩形目標(biāo)區(qū)域內(nèi)每條采樣線上手指段的數(shù)量;以及
S6:根據(jù)每條采樣線上手指段的數(shù)量識別手勢。
優(yōu)選的,所述步驟S1中通過接收經(jīng)反射的紅外光并生成所述圖像信息;
步驟S2包括:
S21:對生成的圖像信息進(jìn)行冪次變換;
S22:對經(jīng)冪次變換的前后兩幀圖像的各像素點的灰度值分別作差并取其絕對值,當(dāng)所述絕對值大于設(shè)定閾值時,將所述像素點的值設(shè)為1,否則設(shè)為0,以生成用1和0表示的二值圖像;
S23:根據(jù)所述二值圖像中值為1的像素點的數(shù)量確定所述用戶手面積、以及根據(jù)所述二值圖像中值為1的各像素點的坐標(biāo)的平均值確定所述用戶手中心位置。
優(yōu)選的,步驟S3中以所述用戶手中心位置為矩形下邊緣的中點向上形成所述矩形目標(biāo)區(qū)域。
優(yōu)選的,所述步驟S5中計算每條所述采樣線上、長度在閾值范圍內(nèi)的亮線段的數(shù)量作為手指段的數(shù)量。
優(yōu)選的,步驟S6包括:
判斷是否連續(xù)N條采樣線上手指段的數(shù)量相同,若是則判斷當(dāng)前圖像信息中的手指數(shù)量為N,并根據(jù)手指數(shù)量相應(yīng)識別手勢;或者,
對連續(xù)M幀圖像的每一幀圖像均判斷是否有連續(xù)多條采樣線上手指段的數(shù)量相同為N,若是則判斷所述M幀圖像的手指數(shù)量為N,并根據(jù)手指數(shù)量相應(yīng)識別手勢;其中N為大于等于1且小于等于5的正整數(shù),M為大于等于2的正整數(shù)。
相較于現(xiàn)有技術(shù),本發(fā)明的有益效果在于只利用單一攝像頭的圖像信息,在圖像目標(biāo)區(qū)域內(nèi)添加采樣線,并通過識別采樣線與手指相交情況就可以實現(xiàn)對于特定手勢的識別,克服了現(xiàn)有技術(shù)中人機交互功能的設(shè)備過于復(fù)雜、算法難以實現(xiàn)的缺陷,更為方便也降低了成本。
附圖說明
圖1所示為本發(fā)明一實施例的手勢識別裝置的方塊圖;
圖2所示為本發(fā)明一實施例的目標(biāo)區(qū)域和采樣線的示意圖;
圖3所示為本發(fā)明另一實施例的目標(biāo)區(qū)域和采樣線的示意圖;
圖4所示為本發(fā)明一實施例的手勢識別方法的流程圖。
具體實施方式
為使本發(fā)明的內(nèi)容更加清楚易懂,以下結(jié)合說明書附圖,對本發(fā)明的內(nèi)容作進(jìn)一步說明。當(dāng)然本發(fā)明并不局限于該具體實施例,本領(lǐng)域內(nèi)的技術(shù)人員所熟知的一般替換也涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
如圖1所示,本發(fā)明的手勢識別裝置包括圖像傳感器1、預(yù)處理單元2、目標(biāo)區(qū)域選擇單元3、采樣線設(shè)定單元4、計算單元5和手勢識別單元6。
其中,圖像傳感器1用于擷取影像并生成圖像信息,預(yù)處理單元2用于對圖像信息進(jìn)行預(yù)處理并獲得用戶手中心位置和用戶手面積。
本實施例中,圖像傳感器1為紅外成像傳感器,其接收由紅外光源發(fā)出、經(jīng)用戶反射后的紅外光并生成原始圖像信息。其中紅外成像傳感器之前可設(shè)有濾光片,用于過濾除經(jīng)反射的紅外光之外的其他光線,僅使紅外光到達(dá)紅外成像傳感器。
預(yù)處理單元2與紅外成像圖像傳感器相連,其包括圖像預(yù)處理模塊21、二值圖像生成模塊22和識別模塊23。圖像預(yù)處理模塊21對紅外成像傳感器生成的原始圖像信息進(jìn)行冪次變換(伽馬變換)的預(yù)處理,使圖像中亮暗區(qū)域的對比度加大,從而形成經(jīng)預(yù)處理的圖像信息,如圖2和圖3所示,經(jīng)預(yù)處理后用戶的手部為亮區(qū)域。二值圖像生成模塊22首先對經(jīng)冪次變換的前后兩幀圖像的各像素點的灰度值分別作差并取其絕對值,當(dāng)絕對值大于設(shè)定閾值時,將該像素點的值設(shè)為1,否則設(shè)為0。由于紅外成像傳感器在一秒內(nèi)可以拍攝幾十甚至幾百幀的圖像,遠(yuǎn)遠(yuǎn)大于手勢位置變化的速度,因此對于前后兩幀經(jīng)冪次變換的圖像來說,手勢位置的變化非常小,手的大部分是重合的,僅手邊緣區(qū)域或手的輪廓所對應(yīng)的像素會出現(xiàn)灰度值的顯著差異,因此二值圖像生成模塊22將手邊緣區(qū)域的像素點的值由0變?yōu)?,從而生成一張二值圖像,該二值圖像中的值為1的像素點近似表現(xiàn)為手的輪廓。優(yōu)選地,為避免將除手以外的其他對象在前后兩幀發(fā)生的位置變化誤認(rèn)為是手勢的變化,二值圖像生成模塊22對二值圖像中所有為1的像素點進(jìn)行一次判別。具體來說,以值為1的每一個像素點為中心,判斷其周圍預(yù)設(shè)范圍內(nèi)(如周圍10*10個像素范圍內(nèi))值為1的像素點的數(shù)量,若數(shù)量超過預(yù)定比例,則保持該像素點的值為1,否則將該像素點的值重置為0,由此更新二值圖像。通過這種密度篩選的方法可以排除二值圖像中值為1的區(qū)域出現(xiàn)手之外的其他個別像素點。識別模塊23則根據(jù)二值圖像識別當(dāng)前手的位置,一般來說可以將二值圖像中像素值為1像素點識別為手的輪廓,那么值為1的像素點所形成或包圍的區(qū)域內(nèi)部識別為手,手輪廓以外的其它像素值為0的部分識別為背景區(qū)域,由此將手的位置提取出來。由于手的面積大小與其輪廓大小也是相對應(yīng)的,而手的輪廓大小可以用二值圖像中值為1的像素點的數(shù)量來表示,因此識別模塊通過統(tǒng)計二值圖像中值為1的像素點的數(shù)量就能夠計算出手的面積大小,而通過計算二值圖像中值為1的各像素點的坐標(biāo)的平均值就能夠得到手中心的坐標(biāo)。雖然本實施例中采用了上述包括圖像預(yù)處理模塊、二值圖像生成模塊和識別模塊的預(yù)處理單元對圖像傳感器的原始圖像進(jìn)行預(yù)處理,但在其它實施例中也可以采用別的預(yù)處理方式,只要能夠得到存在亮暗區(qū)域且手為亮區(qū)域的圖像以及手面積和手中心位置即可。
請繼續(xù)參考圖1,目標(biāo)區(qū)域選擇單元3與預(yù)處理單元2相連,用于根據(jù)用戶手中心位置和用戶手面積在經(jīng)預(yù)處理的圖像信息上形成包圍用戶手掌的矩形目標(biāo)區(qū)域。具體來說,用戶手面積的大小與手和圖像傳感器1之間的距離長短相關(guān)。顯然,手所占據(jù)的面積越大表明與圖像傳感器之間的距離越近,反之手所占據(jù)的面積越小表明與圖像傳感器之間的距離越遠(yuǎn)。目標(biāo)區(qū)域的大小同樣也與用戶手與圖像傳感器之間的距離相關(guān)。這里所說的目標(biāo)區(qū)域表示能夠?qū)⑷渴终瓢ㄟM(jìn)去的矩形區(qū)域。根據(jù)實際測試可以得出矩形目標(biāo)區(qū)域大小和手掌面積之間的映射關(guān)系,可通過另一存儲單元存儲該映射關(guān)系。舉例來說,當(dāng)經(jīng)預(yù)處理后的圖像數(shù)據(jù)為640*480大小的一副圖像,根據(jù)測試結(jié)果,當(dāng)手面積(此處以手所占像素數(shù)據(jù)替代)大于80000時,判定此時為近距離,目標(biāo)區(qū)域的大小采用寬度為240(像素)的矩形區(qū)域;當(dāng)手面積介于8000和80000(像素)之間時,判定為遠(yuǎn)距離,目標(biāo)區(qū)域的大小采用寬度為200(像素)的矩形區(qū)域。本實施例僅劃分了兩個檔位的配置,也可以根據(jù)實際情況進(jìn)行多檔位的配置。在其它實施例中,也可以構(gòu)造一個手面積和目標(biāo)區(qū)域大小的映射函數(shù),不再設(shè)定檔位劃分信息,以滿足更復(fù)雜的使用環(huán)境。
由于經(jīng)預(yù)處理后的圖像中可能會包含用戶的手臂,導(dǎo)致計算出的手中心位置與實際手掌中心位置相比更為靠下,此外由于手指本身位于手掌的上部,因此本實施例中目標(biāo)區(qū)域選擇單元在確定矩形目標(biāo)區(qū)域大小之后,以用戶手中心位置作為矩形下邊緣的終點向上選取矩形目標(biāo)區(qū)域,如圖3和圖4所示,這樣可以避免矩形目標(biāo)選擇區(qū)域無法覆蓋用戶手指部分。
采樣線設(shè)定單元4與目標(biāo)區(qū)域選擇單元3相連,用于根據(jù)用戶手面積以相應(yīng)間隔在矩形目標(biāo)區(qū)域內(nèi)添加多條水平的采樣線,如圖2和圖3所示。采樣線的長度與矩形目標(biāo)區(qū)域的水平方向的長度相同,相鄰采樣線之間的間隔距離與手和圖像傳感器之間的距離有關(guān),也即是和手面積有關(guān)。根據(jù)實際測試也可以得出相鄰采樣線的間隔距離和手面積之間的映射關(guān)系,該映射關(guān)系也可存儲在存儲單元中。舉例來說,當(dāng)手面積大于80000(像素)時,判定此時為近距離,相鄰采樣線間隔為8行像素;當(dāng)手面積介于8000和80000(像素)之間時,判定為遠(yuǎn)距離,相鄰采樣線間隔為5行像素。本實施例也僅劃分了兩個檔位的配置,也可以根據(jù)實際情況進(jìn)行多檔位的配置。在其它實施例中,也可以構(gòu)造一個手面積和相鄰采樣線間隔的映射函數(shù),不再設(shè)定檔位劃分信息,以滿足更復(fù)雜的使用環(huán)境。
計算單元5用于計算矩形目標(biāo)區(qū)域內(nèi)每條采樣線上手指段的數(shù)量。具體來說,由于每條采樣線都是針對手指所在區(qū)域進(jìn)行采樣,存在手指的地方較亮,沒有手指的地方較暗,因此每個采樣線都是由亮暗相間的線段組成。因此,計算單元對采樣線進(jìn)行遍歷,可以計算出每條采樣線上亮線段的數(shù)目。進(jìn)一步地,當(dāng)亮線段的長度在一個閾值范圍內(nèi)時,確認(rèn)該亮線段為一個手指段。由此,計算單元5計算每條采樣線上、長度在閾值范圍內(nèi)的亮線段的數(shù)量,將其作為手指段的數(shù)量。其中,閾值范圍同樣可以根據(jù)手面積的大小分檔設(shè)定,具體每一檔的值可以根據(jù)實際測試計算得到。例如當(dāng)手面積較小認(rèn)為是遠(yuǎn)距離時,閾值范圍為20-63個像素;當(dāng)手面積較大認(rèn)為是近距離時,閾值范圍為28-80個像素。
手勢識別單元6根據(jù)每條采樣線上手指段的數(shù)量識別手勢。具體地,手勢識別單元判斷是否連續(xù)多條(如3條)采樣線上手指段的數(shù)量相同,如果連續(xù)幾條采樣線上的手指段數(shù)量均為N,則可以判斷當(dāng)前圖像中的手勢的手指數(shù)目為N。如此一來,根據(jù)手指的數(shù)量也就得出了當(dāng)前的手勢形狀。優(yōu)選地,為了增加手勢識別結(jié)果的穩(wěn)定性和準(zhǔn)確性,還可以加入幀數(shù)的判斷,對連續(xù)多幀圖像的每一幀圖像均判斷手指數(shù)目是否為N(即對每一幀圖像均判斷是否有連續(xù)幾條采樣線上的手指段數(shù)量為N),如果是則根據(jù)手指數(shù)量識別當(dāng)前的手勢形狀并輸出該手勢的識別信號,否則不輸出。
相應(yīng)地,本發(fā)明還提供了一種手勢識別方法,如圖4所示,其包括以下步驟:
S1:生成圖像信息;
本實施例中,通過接收經(jīng)反射的紅外光并生成圖像信息。
S2:獲取用戶手中心位置和用戶手面積。
本步驟中,包括對圖像信息的預(yù)處理步驟,具體地對生成的圖像信息進(jìn)行冪次變換的預(yù)處理,使圖像中亮暗區(qū)域的對比度加大。之后,對經(jīng)冪次變換的前后兩幀圖像的各像素點的灰度值分別作差并取其絕對值,當(dāng)絕對值大于設(shè)定閾值時,將像素點的值設(shè)為1,否則設(shè)為0,以生成用1和0表示的二值圖像。根據(jù)二值圖像中值為1的像素點的數(shù)量能夠確定用戶手面積、根據(jù)二值圖像中值為1的各像素點的坐標(biāo)的平均值能夠確定用戶手中心位置。
S3:根據(jù)用戶手中心位置和用戶手面積確定包圍用戶手掌的矩形目標(biāo)區(qū)域。
由于用戶手面積與矩形目標(biāo)區(qū)域的大小存在映射關(guān)系,因此在確定用戶手面積后就能夠確定矩形目標(biāo)區(qū)域的大小。本實施例中在確定用戶手中心位置后,以用戶手中心位置為矩形下邊緣的中點向上形成矩形目標(biāo)區(qū)域。
S4:根據(jù)用戶手面積以相應(yīng)間隔在矩形目標(biāo)區(qū)域內(nèi)添加多條水平的采樣線。
用戶的手面積大小與采樣線的間隔距離也存在映射關(guān)系,因此在確定手面積大小之后,能夠以對應(yīng)間距在矩形目標(biāo)區(qū)域內(nèi)添加多條水平的采樣線。
S5:計算矩形目標(biāo)區(qū)域內(nèi)每條采樣線上手指段的數(shù)量。
本步驟中計算每條采樣線上、長度在閾值范圍內(nèi)的亮線段的數(shù)量作為手指段的數(shù)量。其中閾值范圍也可設(shè)定為與手面積大小存在對應(yīng)關(guān)系。
S6:根據(jù)每條采樣線上手指段的數(shù)量識別手勢。
本步驟中,可通過判斷是否連續(xù)多條采樣線上手指段的數(shù)量相同來確定手指數(shù)量并進(jìn)一步識別手勢。若有連續(xù)多條采樣線上手指段的數(shù)量相同均為N,則判斷當(dāng)前圖像信息中的手指數(shù)量為N,并根據(jù)手指數(shù)量相應(yīng)識別手勢并輸出手勢信號,否則不輸出。進(jìn)一步地,還可以加入幀數(shù)的判斷,如果連續(xù)多幀每一幀均判斷手指數(shù)目相同為N,則根據(jù)手指數(shù)量識別手勢并輸出手勢信號,否則不輸出。
綜上所述,本發(fā)明的手勢識別裝置與方法利用單一圖像傳感器的圖像信息,通過在圖像目標(biāo)區(qū)域內(nèi)添加采樣線的方法,識別采樣線與手指相交情況就可以實現(xiàn)對于特定手勢的識別,克服了現(xiàn)有技術(shù)中人機交互功能的設(shè)備過于復(fù)雜、算法難以實現(xiàn)的缺陷,更為方便也降低了成本。
雖然本發(fā)明已以較佳實施例揭示如上,然所述諸多實施例僅為了便于說明而舉例而已,并非用以限定本發(fā)明,本領(lǐng)域的技術(shù)人員在不脫離本發(fā)明精神和范圍的前提下可作若干的更動與潤飾,本發(fā)明所主張的保護(hù)范圍應(yīng)以權(quán)利要求書所述為準(zhǔn)。