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