一種基于攝像頭的人機(jī)實(shí)時(shí)交互方法
【專利摘要】本發(fā)明涉及一種基于攝像頭的人機(jī)實(shí)時(shí)交互方法,屬于人機(jī)交互【技術(shù)領(lǐng)域】。首先對(duì)參與人機(jī)交互的人的頭或手進(jìn)行識(shí)別訓(xùn)練,得到識(shí)別參數(shù),建立計(jì)算機(jī)操作與人的頭或手的動(dòng)作之間的映射關(guān)系。攝像頭實(shí)時(shí)拍攝動(dòng)作,從拍攝的視頻中提取多幀圖片,識(shí)別圖片中人的頭或手的區(qū)域信息,得到錨點(diǎn)。比較相鄰兩幀圖片中錨點(diǎn)的變化,得到錨點(diǎn)位移向量。根據(jù)該向量與四個(gè)主方向的單位向量的四個(gè)夾角的大小,得到與該向量夾角最小的方向作為主方向。根據(jù)映射關(guān)系,得到與該主方向關(guān)聯(lián)的計(jì)算機(jī)操作,完成人機(jī)實(shí)時(shí)交互。本發(fā)明的人機(jī)實(shí)時(shí)交互方法,具有便攜、低價(jià)、“即插即用”的特點(diǎn),可以控制多種計(jì)算機(jī)應(yīng)用程序和游戲,無(wú)需任何額外費(fèi)用,即可感受全新用戶體驗(yàn)。
【專利說(shuō)明】一種基于攝像頭的人機(jī)實(shí)時(shí)交互方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于攝像頭的人機(jī)實(shí)時(shí)交互方法,屬于人機(jī)交互【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]隨著人體動(dòng)作感知技術(shù)的快速發(fā)展,以及相關(guān)產(chǎn)品(設(shè)備)的推廣,如MicrosoftKinect (http://www.microsoft, com/en-us/kinectforwindows), Wi i (http://www.nintend0.com/wiiu)和 PlayStat1n Move(http://playstat1nmove.com/index, html),有越來(lái)越多的計(jì)算機(jī)應(yīng)用支持通過(guò)人的肢體動(dòng)作來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)的控制。這些技術(shù)和設(shè)備使得人們不再受限于傳統(tǒng)的人機(jī)交互方式,例如鼠標(biāo)、鍵盤(pán)等,而可以通過(guò)更加新穎、有趣的方式進(jìn)行人機(jī)交互。然而,現(xiàn)有的具有人體動(dòng)作感知功能的設(shè)備通常具有以下幾點(diǎn)局限性:(1)功能依賴于設(shè)備,人們?nèi)粝胧褂脛?dòng)作感知功能,就必須隨身攜帶這些設(shè)備等,而這一點(diǎn)降低了設(shè)備的便攜性;(2)使用這些設(shè)備需要花費(fèi)額外的費(fèi)用,因?yàn)閯?dòng)作感知技術(shù)被固化到設(shè)備中,用戶需要購(gòu)買設(shè)備之后才能使用,但并不是所有用戶都愿意或者有能力支付;(3)設(shè)備中可使用的應(yīng)用程序、游戲需要定制,用戶不能使用這些設(shè)備來(lái)控制他們現(xiàn)有的其它應(yīng)用程序和游戲,這一點(diǎn)降低了設(shè)備的適用范圍。因此,一種更加便攜的、低價(jià)甚至免費(fèi)的、具有“即插即用”特性的動(dòng)作感知產(chǎn)品就更加具有實(shí)用價(jià)值。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是設(shè)計(jì)一種基于攝像頭的人機(jī)實(shí)時(shí)交互方法,利用已廣泛配備在個(gè)人臺(tái)式計(jì)算機(jī)、筆記本電腦等設(shè)備上的攝像頭,通過(guò)攝像頭實(shí)時(shí)捕捉人肢體的動(dòng)作,以實(shí)現(xiàn)實(shí)時(shí)的人機(jī)交互。
[0004]本發(fā)明提出的基于攝像頭的人機(jī)實(shí)時(shí)交互方法,包括以下步驟:
[0005](I)對(duì)參與人機(jī)交互的人的頭或手的動(dòng)作進(jìn)行識(shí)別訓(xùn)練,得到一組識(shí)別參數(shù)F ;
[0006](2)建立計(jì)算機(jī)操作與參與人機(jī)交互的人的頭或手的動(dòng)作之間的--映射關(guān)系;
[0007](3)用攝像頭對(duì)參與人機(jī)交互的人進(jìn)行拍攝,得到人的頭或手的動(dòng)作的視頻,根據(jù)一定的采樣周期,從視頻中獲取多幀圖片;
[0008](4)根據(jù)步驟(1)得到的識(shí)別參數(shù)F,分別從上述獲取的每一幀圖片中識(shí)別出人的頭或手在圖片中的區(qū)域信息,該區(qū)域信息包括區(qū)域在圖片中的二維坐標(biāo)、長(zhǎng)度和寬度;
[0009](5)根據(jù)上述識(shí)別出的區(qū)域在圖片中的長(zhǎng)度和寬度,得到該區(qū)域的幾何中心點(diǎn),將該幾何中心點(diǎn)記為錨點(diǎn),重復(fù)本步驟,得到每幀圖片的錨點(diǎn);
[0010](6)設(shè)前一幀圖片的錨點(diǎn)的坐標(biāo)為(Xi, y),后一幀圖片的錨點(diǎn)的坐標(biāo)為(xi+1,yi+1),計(jì)算得到相鄰兩幀圖片的錨點(diǎn)的位移向量Di+1,該向量表示人的頭或手的動(dòng)作的方向和移動(dòng)的距離,其中i表示圖片的序號(hào),序號(hào)i從I開(kāi)始,第i+l幀圖片即為第i幀圖片的下一幀圖片;
[0011](7)分別計(jì)算上述位移向量Di+1在圖片的二維坐標(biāo)中與上、下、左、右四個(gè)方向的單位向量的四個(gè)夾角,將與四個(gè)夾角中的最小夾角相對(duì)應(yīng)的方向作為主方向島+1;[0012](8)根據(jù)步驟(2)中的計(jì)算機(jī)操作與參與人機(jī)交互的人的頭或手的動(dòng)作之間的一一映射關(guān)系,得到與方向包+1相對(duì)應(yīng)的計(jì)算機(jī)操作Ei+1 ;
[0013](9)執(zhí)行計(jì)算機(jī)操作Ei+1。
[0014]本發(fā)明提出的基于攝像頭的人機(jī)實(shí)時(shí)交互方法,其優(yōu)點(diǎn)在于,本發(fā)明的人機(jī)實(shí)時(shí)交互方法,不需要依賴于額外的設(shè)備,如Microsoft Kinect, Wii和PlayStat1n Move等,只要利用已廣泛配備在個(gè)人臺(tái)式計(jì)算機(jī)、筆記本電腦、平板電腦、手機(jī)等產(chǎn)品上的攝像頭,即可通過(guò)攝像頭實(shí)時(shí)的捕捉到人肢體的動(dòng)作情況,將識(shí)別的圖像區(qū)域的幾何中心作為錨點(diǎn),識(shí)別出錨點(diǎn)的運(yùn)動(dòng)軌跡,并判斷出運(yùn)動(dòng)的主方向,然后查找出與該主方向關(guān)聯(lián)的計(jì)算機(jī)事件,進(jìn)而觸發(fā)計(jì)算機(jī)相應(yīng)的操作,從而實(shí)現(xiàn)實(shí)時(shí)的人機(jī)交互。本發(fā)明的人機(jī)實(shí)時(shí)交互方法,具有便攜、低價(jià)、“即插即用”的特點(diǎn),可以控制多種計(jì)算機(jī)應(yīng)用程序和游戲,而不需要用戶為本方法單獨(dú)定制應(yīng)用程序和游戲。最后,本發(fā)明的人機(jī)實(shí)時(shí)交互方法,無(wú)需任何額外費(fèi)用,用戶僅需在有攝像頭的設(shè)備上安裝本方法軟件,即可感受全新用戶體驗(yàn)。
【專利附圖】
【附圖說(shuō)明】
[0015]圖1是本發(fā)明方法中涉及的位移向量與上、下、左、右四個(gè)方向夾角示意圖。
【具體實(shí)施方式】 [0016]本發(fā)明提出的基于攝像頭的人機(jī)實(shí)時(shí)交互方法,包括以下步驟:
[0017](I)對(duì)參與人機(jī)交互的人的頭或手的動(dòng)作進(jìn)行識(shí)別訓(xùn)練,得到一組識(shí)別參數(shù)F,例如使用常規(guī)的OpenCV的Cascade Classifier分類器,F將被用于實(shí)時(shí)的動(dòng)作識(shí)別中,訓(xùn)練的目的是使得分類器能夠正確地從攝像頭捕捉到的圖片中識(shí)別出目標(biāo)對(duì)象,例如人的頭、手等;
[0018](2)建立計(jì)算機(jī)操作與參與人機(jī)交互的人的頭或手的動(dòng)作之間的--映射關(guān)系;
人對(duì)計(jì)算機(jī)的控制實(shí)際上對(duì)應(yīng)一連串的計(jì)算機(jī)操作,如鼠標(biāo)左(右)鍵的單擊事件、鍵盤(pán)左(右、上、下)方向鍵的事件、數(shù)字鍵的事件等等,而人的肢體的移動(dòng)方向包括上、下、左、右四個(gè)基本的方向,用戶在使用本發(fā)明方法時(shí),根據(jù)自身需要將計(jì)算機(jī)操作分別與人的頭或手的四個(gè)基本移動(dòng)方向產(chǎn)生一一映射關(guān)系,即當(dāng)識(shí)別出人的頭或手的四個(gè)基本移動(dòng)方向時(shí),能夠找到與之關(guān)聯(lián)的計(jì)算機(jī)操作,進(jìn)而執(zhí)行該操作;
[0019](3)用攝像頭對(duì)參與人機(jī)交互的人進(jìn)行拍攝,得到人的頭或手的動(dòng)作的視頻,根據(jù)一定的采樣周期,從視頻中獲取多幀圖片,例如使用常規(guī)的OpenCV中的cvQueryFrame函數(shù);其中的每一幀圖片即為攝像頭捕捉到的場(chǎng)景,而這連續(xù)的圖片幀就形成了對(duì)人的頭或手的運(yùn)動(dòng)描述的原始數(shù)據(jù);
[0020](4)根據(jù)步驟⑴得到的識(shí)別參數(shù)F,分別從上述獲取的每一幀圖片中識(shí)別出人的頭或手在圖片中的區(qū)域信息,該區(qū)域信息包括區(qū)域在圖片中的二維坐標(biāo)、長(zhǎng)度和寬度;識(shí)別過(guò)程可以采用常規(guī)的OpenCV中的cvHaarDetectObjects函數(shù);
[0021](5)根據(jù)上述識(shí)別出的區(qū)域在圖片中的長(zhǎng)度和寬度,得到該區(qū)域的幾何中心點(diǎn),將該幾何中心點(diǎn)記為錨點(diǎn),重復(fù)本步驟,得到每幀圖片的錨點(diǎn);
[0022](6)設(shè)前一幀圖片的錨點(diǎn)的坐標(biāo)為(Xpyi),后一幀圖片的錨點(diǎn)的坐標(biāo)為(Di+1,yi+1),計(jì)算得到相鄰兩幀圖片的錨點(diǎn)的位移向量Di+1,該向量表示人的頭或手的動(dòng)作的方向和移動(dòng)的距離,其中i表示圖片的序號(hào),序號(hào)i從I開(kāi)始,第i+l幀圖片即為第i幀圖片的下一幀圖片;
[0023](7)分別計(jì)算上述位移向量Di+1在圖片的二維坐標(biāo)中與上、下、左、右四個(gè)方向的單位向量的四個(gè)夾角,將與四個(gè)夾角中的最小夾角相對(duì)應(yīng)的方向作為主方向δ?+1;如圖1
所示,其中位移向量Di+1與上、下、左、右四個(gè)方向的夾角分別為α。α2、03和Ct4,四個(gè)夾角大小滿足關(guān)系a ^aZaZa2t5因此,圖1中位移向量Di+1與上方向的夾角最小,于是,上方向?qū)⒆鳛镈i+1的主方向氐+1;
[0024](8)根據(jù)步驟(2)中的計(jì)算機(jī)操作與參與人機(jī)交互的人的頭或手的動(dòng)作之間的—映射關(guān)系,得到與方向? +1相對(duì)應(yīng)的計(jì)算機(jī)操作Ei+1 ;
[0025](9)執(zhí)行計(jì)算機(jī)fe作Ei+1。在Windows操作系統(tǒng)中,可以通過(guò)操作系統(tǒng)自帶的WinUser.h文件中定義的keybd_event函數(shù)和mouse_event函數(shù)分別對(duì)鍵盤(pán)和鼠標(biāo)進(jìn)行控制,由此達(dá)到對(duì)計(jì)算機(jī)進(jìn)行控制的目的。在其它操作系統(tǒng)中,可使用相應(yīng)的執(zhí)行鍵盤(pán)、鼠標(biāo)操作的函數(shù)進(jìn)行實(shí)現(xiàn)。
[0026]本發(fā)明方法可使用多種編程語(yǔ)言開(kāi)發(fā),例如,使用C++編程語(yǔ)言,并使用開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù) OpenCV (http: //opencv.0rg/)等。
【權(quán)利要求】
1.一種基于攝像頭的人機(jī)實(shí)時(shí)交互方法,其特征在于該交互方法包括以下步驟: (1)對(duì)參與人機(jī)交互的人的頭或手的動(dòng)作進(jìn)行識(shí)別訓(xùn)練,得到一組識(shí)別參數(shù)F; (2)建立計(jì)算機(jī)操作與參與人機(jī)交互的人的頭或手的動(dòng)作之間的一一映射關(guān)系; (3)用攝像頭對(duì)參與人機(jī)交互的人進(jìn)行拍攝,得到人的頭或手的動(dòng)作的視頻,根據(jù)一定的采樣周期,從視頻中獲取多幀圖片; (4)根據(jù)步驟(1)得到的識(shí)別參數(shù)F,分別從上述獲取的每一幀圖片中識(shí)別出人的頭或手在圖片中的區(qū)域信息,該區(qū)域信息包括區(qū)域在圖片中的二維坐標(biāo)、長(zhǎng)度和寬度; (5)根據(jù)上述識(shí)別出的區(qū)域在圖片中的長(zhǎng)度和寬度,得到該區(qū)域的幾何中心點(diǎn),將該幾何中心點(diǎn)記為錨點(diǎn),重復(fù)本步驟,得到每幀圖片的錨點(diǎn); (6)設(shè)前一幀圖片的錨點(diǎn)的 坐標(biāo)為(Xi,yi),后一幀圖片的錨點(diǎn)的坐標(biāo)為(xi+1,yi+1),計(jì)算得到相鄰兩幀圖片的錨點(diǎn)的位移向量Di+1,該向量表示人的頭或手的動(dòng)作的方向和移動(dòng)的距離,其中i表示圖片的序號(hào),序號(hào)i從I開(kāi)始,第i+Ι幀圖片即為第i幀圖片的下一幀圖片; (7)分別計(jì)算上述位移向量Di+1在圖片的二維坐標(biāo)中與上、下、左、右四個(gè)方向的單位向量的四個(gè)夾角,將與四個(gè)夾角中的最小夾角相對(duì)應(yīng)的方向作為主方向島+1; (8)根據(jù)步驟(2)中的計(jì)算機(jī)操作與參與人機(jī)交互的人的頭或手的動(dòng)作之間的--映射關(guān)系,得到與方向島+1相對(duì)應(yīng)的計(jì)算機(jī)操作Ei+1 ; (9)執(zhí)行計(jì)算機(jī)操作Ei+1。
【文檔編號(hào)】G06F3/01GK104035560SQ201410253564
【公開(kāi)日】2014年9月10日 申請(qǐng)日期:2014年6月9日 優(yōu)先權(quán)日:2014年6月9日
【發(fā)明者】王朝坤, 陳俊 申請(qǐng)人:清華大學(xué)