凝視輔助的計算機界面的制作方法
【專利摘要】本發明提供了使用戶與圖形用戶界面(GUI)相連接的方法、系統和計算機程序。一種方法包括用于識別所述用戶的凝視點(POG)的操作。在光標限定出與執行所述GUI的計算機程序相關的聚焦區域處檢測到所述用戶開始進行移動所述光標在顯示器上位置的身體動作。進一步,所述方法包括用于確定在所述光標的當前位置與所述POG之間的距離是否大于閾值距離的操作。所述光標從所述當前位置移至鄰近所述POG的區域以響應對所述POG的確定和對所述身體動作開始的檢測。
【專利說明】凝視輔助的計算機界面
【技術領域】
[0001]本發明涉及圖形用戶界面(GUI),且尤其涉及用于與提供凝視輔助導航的⑶I相連接的方法、系統和計算機程序。
【背景技術】
[0002]在當前計算機界面中,鼠標控制的屏幕光標在顯示器所提供桌面的虛擬實際使用面積上游走,且其速度由手速和鼠標靈敏度所確定。多年來,由于更大屏幕尺寸、更高的屏幕分辨率、多個屏幕等的出現,虛擬桌面的實際使用面積的大小已經增加。然而,控制光標的人體輸入裝置和鼠標的傳動仍未改變。例如,在640X480的桌面上移動鼠標至多僅需要幾英寸的手部運動,這通常僅涉及手腕運動。然而,對于分辨率為2560X1600的桌面或在使用多個屏幕時分辨率更大的桌面而言,用戶不能僅使用手腕將鼠標光標從桌面的一側移至相反側或從一個顯示器移至另一個。在這種情況下,有時會需要“用手拖動鼠標”,即用戶在鼠標脫離鼠標墊前將鼠標移至盡可能遠的地方,然后向上抬起鼠標,將鼠標移回,并再次將鼠標落下以及再次在鼠標墊上移動鼠標。這是一個繁瑣的操作,且會使與大顯示器的連接很累人。
[0003]在這種背景下,產生了實施方案。
【發明內容】
[0004]本發明的實施方案提供了使用戶與圖形用戶界面(GUI)相連接的方法、系統和計算機程序。應理解的是可通過多種方式,如計算機可讀介質上的進程、設備、系統、裝置或方法實施本發明。下面將描述本發明的幾個發明性實施方案。
[0005]在一個實施方案中,一種方法包括用于識別用戶的凝視點(POG)的操作。在光標限定出與執行GUI的計算機程序相關的聚焦區域處檢測到用戶開始進行移動光標在顯示器上位置的身體動作。進一步,該方法包括用于確定在光標的當前位置與POG之間的距離是否大于閾值距離的操作。光標從當前位置移至鄰近POG的區域以響應對POG的確定和對身體動作開始的檢測。
[0006]在另一實施方案中,一種具有⑶I的系統包括處理器、輸入裝置和凝視檢測模塊。處理器執行提供GUI的計算機程序,且在一個或多個顯示器中提供有GUI。輸入設備可操作以當用戶在輸入裝置上開始進行身體動作時移動光標在一個或多個顯示器上的位置。另夕卜,凝視檢測模塊可操作以識別用戶的P0G,且計算機程序確定在光標的當前位置與POG之間的距離是否大于閾值距離。計算機程序將光標從當前位置移至鄰近POG的區域以響應對距離的確定和對身體動作的檢測。
[0007]在另一實施方案中,提供了一種具有程序指令的非臨時性計算機可讀介質,當計算機執行程序指令時,實施一種使用戶與計算機程序相連接的方法。該方法包括用于識別用戶的凝視點(POG)的操作。在光標限定出與執行GUI的計算機程序相關的聚焦區域處檢測到用戶開始進行移動光標在顯示器上位置的身體動作。進一步,該方法包括用于確定在光標的當前位置與POG之間的距離是否大于閾值距離的操作。光標從當前位置移至鄰近POG的區域以響應對POG的確定和對身體動作開始的檢測。
[0008]根據下面的詳細描述并結合附圖可使其它方面變得顯而易見。
【專利附圖】
【附圖說明】
[0009]可參考下列描述并結合附圖以最好地理解本發明。
[0010]圖1示出根據一個實施方案的用戶將光標移動很長距離所需的努力。
[0011]圖2A-2B示出減少將光標移動很長距離所需努力的凝視輔助的計算機系統的實施方案。
[0012]圖3示出根據一個實施方案對凝視點(POG)與光標的當前位置之間的距離的估
笪
ο
[0013]圖4A示出用于使用角膜反射的POG檢測的實施方案。
[0014]圖4B示出根據一個實施方案的用于使用圖像分析和人臉跟蹤的POG檢測的方法。
[0015]圖5示出根據一個實施方案的用于使用凝視檢測以在手持裝置中快速滾動的方法。
[0016]圖6示出根據一個實施方案的用于使用凝視檢測和用戶輸入以進行快速光標移動的方法。
[0017]圖7示出根據一個實施方案的凝視輔助的游戲界面。
[0018]圖8示出根據一個實施方案的響應于手勢的窗口的圖形用戶界面。
[0019]圖9示出根據一個實施方案的利用凝視檢測、語音識別以及一個或多個計算機外圍設備的界面。
[0020]圖10為實施本發明的實施方案的計算機系統的簡化示意圖。
[0021]圖11示出說明根據本發明的一個實施方案的使用戶與在計算裝置中執行的計算機程序相連接的算法的流程圖。
【具體實施方式】
[0022]本發明的實施方案利用凝視跟蹤以幫助在顯示器中移動光標以及使用較少的努力達到目標光標位置。在一個實施方案中,凝視檢測與表現為身體動作的用戶意圖相結合,從而加強用戶與計算裝置之間的界面。
[0023]將顯而易見的是,本實施方案可在缺少一些或所有這些具體細節的情況下進行實踐。在其它情況下,未詳細描述眾所周知的操作以避免使本實施方案產生不必要的費解。
[0024]圖1示出根據一個實施方案的用戶將光標移動很長距離所需的努力。三個顯示器110a、IlOb和IlOc被連接至計算機108上。在三個顯示器中顯示有窗口環境,使得窗口環境的桌面包含三個顯示器,每個顯示器呈現桌面的一部分。三個部分均邏輯性的相互連接以模擬出區域形成連續的桌面。換句話說,三個顯示器如單一顯示器一樣運行,但是在單一顯示器上的呈像被劃分成三個部分,且每個部分均被顯示在顯示器110a、110b和IlOc的一個中。
[0025]當用戶102移動鼠標時,鼠標可越過三個顯示器,但僅存在于一個顯示器中。例如,當顯示器IlOa中的鼠標被移至顯示器IlOa的右側時,鼠標出現在顯示器IlOb的左側,這是因為三個顯示器表示單一的桌面。
[0026]三個顯示器為用戶提供大桌面并為希望同時顯示多個窗口的用戶提供一個有用的功能。然而,在大桌面中移動鼠標可以是非常繁瑣的,特別是當鼠標的靈敏度高時(即,對于桌面上相同量的光標位移而言,具有高靈敏度的鼠標比具有低靈敏度的鼠標需要更多的鼠標運行)。因此,高的鼠標靈敏度有利于需要精確鼠標運動和對象選擇的行為(例如,圖形創建和編輯),但是高的鼠標靈敏度不利于快速地越過桌面移動鼠標。例如,如果用戶102要將鼠標光標從窗口 112中的位置116移至顯示器IlOa上的位置118時,必須將鼠標104從右向左移動很大的距離。由于鼠標運動的范圍通常是有限的,鼠標光標的大位移通常需要用戶將鼠標移至左側、抬起鼠標、將鼠標放在右側,然后將鼠標再移至左側,重復該操作106數次以將光標移至位置118。在移動過程中,由于“用手拖動鼠標”,鼠標光標會移過軌跡120,其包括幾個停頓。
[0027]本文所使用的“光標”是指與計算機程序相關的且為計算機程序指示焦點形式的指針或指示器。光標可指鼠標光標,其指示由鼠標控制的指針的當前位置且顯示于顯示器上;或指文本光標(例如,垂直線),其指示在文本字段(例如,文字處理器和網頁中的字段)中輸入文本的位置;或指頁面光標,其指示用于頁面(例如,網頁)上所進行操作(例如,向上翻頁、向下翻頁、向上滾動等)的參考點;等等。光標可能在屏幕上以不同形式表示出來,如箭頭、手、手指、豎線、滾動條等,或有時可隱藏起來以使光標為隱式,但仍可用于進行一些界面操作,如“向下翻頁”。光標在本文中可被稱為“聚焦區域”、“鼠標光標”、“頁面光標”、“窗口光標”、“文本插入點”等。雖然實施方案是使用特定形式的光標進行表述的,但也可利用任何類型的光標,因此所表述的實施方案不應被解釋為排他性或限制性的,而是示例性或說明性的。
[0028]通常,用戶102是看著光標所需的目的地,而不是鼠標光標的當前位置。本發明的實施方案利用凝視檢測以加強用戶與計算機系統相連接的方式。例如,使用凝視檢測以確定用戶想要移動光標的位置,并隨后較快地且使用較少努力地將光標移至所需位置。有時,用戶可能甚至不知道鼠標在顯示器上,且用戶必須在用戶實際開始移動鼠標光標前花時間尋找光標。然而,通過使用凝視檢測,無需定位鼠標,這是因為所需了解的是光標要去的地方,而不是光標碰巧所在的位置。
[0029]應注意的是盡管在一些實施方案中僅使用凝視以與計算機系統相連接,但是其它實施方案需要用戶進行相關的身體運動。用戶的POG可能是不穩定的,因此,僅使用POG可能會產生問題,需要用戶的確認或需要用較長時間才能完成的操作(例如,需要將一點上的凝視設置為2秒)。通過結合凝視和其它動作(如,一旦光標在POG的普通區域中,則使用鼠標移動光標),提供了一種易于使用的界面。
[0030]圖2A-2B示出減少將光標移動很長距離所需努力的凝視輔助的計算機系統的實施方案。在一個實施方案中,通過用戶的凝視輔助的光標控制。為了簡單起見,本發明的實施方案所描述的區域利用典型圖形用戶界面(GUI)上的鼠標光標的操作以用于顯示器所提供的桌面。其它實施方案可以利用光標或化身控制的不同形式、不同輸入機構(例如,鍵盤、小鍵盤、觸摸屏、踏板等),或指不同顯示機構(例如,大顯示器、多個顯示器、分節的顯示器等)。因此,示出的實施方案不應被解釋為排他性或限制性的,而是示例性或說明性的。
[0031]眼睛跟蹤或眼睛凝視跟蹤為測量凝視點(POG)(即用戶正在觀看的點)或測量眼睛相對于頭部的運動的過程。POG為人凝視所指向的空間中的點且已被定義為在每只眼睛的視網膜(中央小窩)的最高敏銳度區域中心上所成像的空間中的點。下面將參照圖3和圖4提供有關凝視檢測的更多細節。
[0032]參照圖2A,用戶102想將鼠標光標從顯示器IlOc中的位置204移至顯示器IlOa中的位置208。在計算機108上執行的凝視檢測系統確定用戶在包括有GUI桌面的顯示器中的P0G。用戶將凝視210固定在鼠標光標的所需目的地上(即,看向光標的目標的方向),且凝視檢測系統確定大概的位置206。當用戶102的凝視210位于目標上時,用戶102移動202鼠標104以將光標移至目標處。當計算機系統108檢測到鼠標移動的開始時,使用凝視檢測移動光標以接近目的地(即,鼠標光標“跳”至接近目的地的地方或至目的地)。應注意的是,當利用凝視輔助移動光標時,將光標從第一位置移至第二位置,而無需用戶拖動鼠標以進行凝視輔助的運動。凝視檢測是基于對攝像頭214拍攝的圖像進行圖像分析,但其它類型的凝視檢測也是可能的。
[0033]系統將鼠標光標移至位置206,其為凝視檢測系統所計算出的P0G,且隨后系統僅依賴鼠標移動而找到光標的最終目的地。用戶甚至無需知道鼠標目前處在何處,這是因為目的地才是要完成鼠標光標的移動而所需了解的事情。通過這種方式,用戶不需要搜尋鼠標光標以找到光標當前在桌面上的位置。
[0034]在一個實施方案中,光標移動的速度是可變的,使得在光標接近POG的過程中使光標移動的速度變慢。通過這種方式,當光標遠離POG時,光標移動速度快,但是當光標開始接近目的地時,光標會減慢并增加鼠標的靈敏度,從而允許用戶更好地控制鼠標光標接近目的地。在光標遠離目標時不需要精細的靈敏度,這是因為用戶想要的是快速地到達目標,而且鼠標所遵循的到達目的地的軌跡也并不重要。
[0035]通過使用凝視檢測,系統能夠在需要的時候提供更高級別的鼠標靈敏度,即當用戶在感興趣的區域中進行操作時。其它加速方案是基于用戶移動鼠標的速度的有多快,但這些方案往往會提供意想不到的結果且很難進行適當的調整以在靈敏度與快速將鼠標移動很長距離的能力之間提供平衡。在另一實施方案中,鼠標光標提供磁效應,使得鼠標光標被附接至顯示器上的POG處。
[0036]在一個實施方案中,通過凝視檢測和POG區域中顯示對象的背景輔助鼠標運動。通過這種方式,如果在包含多個屏幕對象中的一個或多個對象的區域中設置P0G,則將光標位置改至多個屏幕對象中最接近所估計POG的屏幕對象。例如,如果用戶凝視的目標區域似乎接近位于Windows桌面左下方的快速啟動圖標,則將光標位置改至最接近POG的快速啟動圖標。
[0037]在另一實施方案中,凝視檢測用于輔助在一個窗口中字段間的導航。如果用戶使用鍵盤導航,頁面光標則基于鍵盤輸入和POG的組合進行移動,使得POG可用于加速導航,而導航在不使用凝視輔助的其它情況下會使用更多的鍵擊。頁面光標在本文中被稱為頁面中的指針,其指示頁面的焦點,如在文字處理器中打字時的插入點,或在包含多個可能的輸入字段的形式中的活動字段。因此,頁面光標是不同于鼠標光標的,這是因為鼠標光標是基于鼠標移動的且與移動的鼠標相關的指針。例如,在具有多個錄入字段且具有位于頁面上頂部字段的頁面光標的頁面中,用戶希望移至頁面底部的字段。在不使用凝視檢測的情況下,典型的順序為用戶按下Tab鍵或向下箭頭鍵、多次從頂部字段移至底部字段通過所有的中間字段(或當然也可使用鼠標)。然而,在使用凝視檢測的情況下,用戶看向底部字段,然后用戶按下Tab鍵(或其它鍵)、接著頁面光標立即跳至底部字段,從而節省了用戶的鍵擊且無需使用鼠標。
[0038]一些基于Windows的⑶I具有窗口焦點的概念。在一個時間點,只有一個窗口被選中以與用戶進行交互,即所選中的窗口為“焦點對準”,除非選中了桌面且無窗口處于焦點對準中。在另一實施方案中,凝視檢測用于改變桌面中焦點對準的窗口。當用戶看向桌面中的窗口且開始移動鼠標時,用戶所看的窗口則變為具有GUI焦點的窗口。光標也被定位于窗口中的某個位置上,如窗口的中心、頂部、底部、窗口上的POG等。
[0039]由于時常會出現眼睛的不穩定移動,因此很難僅使用凝視而控制鼠標光標,這是因為鼠標光標有時會表現不穩定且難于讓用戶所跟隨。此外,有時用戶可能只是想閱讀一些東西,因此使光標沿POG移動是令人分心和惱人的。這就是為什么一些實施方案需要顯示用戶要移動光標的意圖,且該意圖是經除改變凝視以外的身體動作而進行表現的,如移動鼠標或按下一個鍵。
[0040]在一個實施方案中,閾值定時器被定義為在凝視檢測被激活前用于待置于一個目標上的凝視所需的最小時間量。定時器能夠過濾凝視中的潛在不穩定的變化。例如,當用戶開始移動鼠標時,在使用凝視檢測前用戶必須看向屏幕窗口至少一秒。
[0041]圖2B示出根據一個實施方案的使用戶與計算機系統相連接的環境。大顯示器252被分成三個相鄰的面板。窗口 260與計算機應用程序相關并橫越三個不同面板而擴展。計算機應用程序包括可位于窗口 260中不同區域的屏幕對象(例如,工具箱262a)。在一個實施方案中,屏幕對象262a位于鼠標光標所在顯示器的面板中,或在使用多個顯示器的情況下,位于鼠標光標所在的顯示器中。
[0042]最初,鼠標光標(在位置204上)和工具箱262a位于顯不器252的左面板上。用戶102將凝視210設置在P0G256上并開始移動202鼠標104。如前所述,當系統檢測到用戶經身體動作所表現的移動鼠標的意圖時,鼠標光標跳至位置258,其位于P0G256上或鄰近P0G256。由于鼠標光標已跳至左面板,與鼠標光標的當前位置相關的屏幕對象也被移至左面板上的位置262b。因此,用戶得益于凝視輔助的光標運動,以及屏幕對象凝視輔助的運動。
[0043]在一個實施方案中,系統在使用凝視輔助的光標導航前確定P0G256是否位于源自鼠標光標的閾值距離中。在一個實施方案中,閾值距離(例如,100個屏幕像素)限定出環繞P0G256的圓254。當要使用凝視輔助時,也可使用環繞POG的其它類型的區域,如正方形、矩形、橢圓形、八邊形、任何正多邊形等來進行確定。如果在光標的當前位置與POG之間的距離大于閾值距離(或如果當前位置位于環繞POG的限定區域外),則對鼠標光標運動進行凝視輔助。然而,如果距離小于閾值距離(或當前鼠標光標位于區域中),則不使用凝視輔助,這是因為用戶可容易地將鼠標移至目的地附近。通過這種方式,凝視輔助僅用于較大的光標移動,從而在用戶進行小光標移動時避免混亂。
[0044]在另一實施方案中,觸發確定是否使用凝視輔助的情況為POG是否處于與當前鼠標光標相同的窗口中。在這種情況下,圖2B中所描繪的情況不會觸發凝視輔助,這是因為鼠標是在同一窗口中進行移動的。
[0045]在圖2B所示的實施方案中,鼠標運動的開始為觸發凝視輔助的用戶的身體動作。其它實施方案可利用其它類型的用戶的身體動作作為觸發,如按鍵盤、按下按鈕、觸摸屏.、說話、彈手指、拍手等。
[0046]在一個實施方案中,用戶移動鼠標而不想在屏幕上移動鼠標光標。例如,用戶在按住鼠標時可閱讀網頁,并且由于小的手部運動,用戶可將鼠標移動幾毫米。在一個實施方案中,為了過濾隨機的小鼠標運動,在觸發凝視輔助前要設置用于鼠標運動的閾值。因此,僅在至少將鼠標移動閾值鼠標距離時才開始進行凝視輔助。在一個實施方案中,閾值距離為約0.5-5厘米的鼠標運動,且在另一實施方案中,其為0.5-4厘米,而在另一實施方案中,其大于I厘米,但也可根據連接環境使用其它閾值。在另一實施方案中,可參照鼠標光標在屏幕上的運動測量閾值距離。例如,可將閾值設置為鼠標光標在屏幕上至少移動2、5、10、20、25或多于20個像素,然而其它數值也是可能的。
[0047]此外,可通過多個方式將鼠標光標從初始位置204移至接近P0G258的位置。例如,光標可從原來的位置消失并重新出現在目的地位置(即,光標跳躍),或光標可快速地通過原來的位置與目的地之間的桌面進行移動,或光標可短暫地在原來的位置閃爍并隨后在目的地位置上重新出現和閃爍,或可快速地移過桌面并隨光標接近目的地而減速,或光標可在原來的位置與目的地之間的軌跡中的桌面上的幾個位點中短暫地出現(即,離開鼠標蹤跡)等。因此,有許多方法用于向用戶指示鼠標光標是使用凝視輔助而進行移動的。
[0048]圖3示出根據一個實施方案對POG與光標的當前位置之間的距離的估計。不同方法使用不同距離度量以測量在POG與當前光標之間的距離,該距離用于確定是否要利用凝視輔助的光標移動。
[0049]在一個實施方案中,距離是按像素進行測量的。通常情況下,顯示器具有用于像素的水平和垂直分辨率。一旦估計出POG在桌面上的位置,距離312則被計算為包括位于相對頂點上的POG和當前光標的矩形的對角線的以像素為單位的尺寸。如果POG與光標水平對齊或垂直對齊,那么距離則分別等于兩點之間的水平或垂直像素的數量。
[0050]在另一實施方案中,將距離測量為POG與光標之間的實際物理距離。POG限定在顯示器上的第一點,且光標限定在顯示器上的第二點。將距離計算為第一點與第二點之間的距離(例如,以英寸為單位進行測量)。
[0051]在另一實施方案中,將距離測量為頂點在用戶102處(例如,在眼睛之間、在鼻尖處等)的角Φ308,第一光線302從頂點發出到達P0G256處,且第二光線310從頂點發出到達光標的當前位置204。因此,角Φ308越寬,鼠標到達POG所要經過的路線越長。用于凝視激活的閾值是以度進行限定的(例如,當角Φ308大于30度時使用凝視輔助運動,但是其它值也是可能的)。在另一實施方案中,基于角Φ308和用戶的深度304觸發凝視輔助,其中深度為用戶至顯示器中某個位置的距離。例如,當用戶進一步遠離顯示器時,以度為單位測得的閾值可以更小,這是因為用戶進一步遠離顯示器將比用戶更接近顯示器的情況下對同樣的距離限定出更小的角度。
[0052]圖4A示出用于使用角膜反射的POG檢測的實施方案。眼動儀是用于測量眼位和眼睛移動的裝置。有很多用于測量眼睛移動和凝視方向的方法。有些方法使用提取眼位的視頻圖像,而其它方法則基于眼電圖使用搜索線圈,或使用紅外光線以進行凝視檢測。通過利用凝視檢測,裝置可向用戶提供更直觀的交互和改進的經驗。
[0053]圖4A示出用于凝視檢測的一個實施方案,其中對朝向用戶的光線所進行的角膜反射進行了分析。如圖4A所示,紅外光源404發射紅外光線,并通過紅外攝像頭406捕捉從用戶402的角膜所反射的紅外光線。然后,分析該反射以確定用戶402的POG。紅外光源404也可嵌在攝像頭406里。在另一實施方案中,使用可見光譜中的光線代替紅外光線,且也可結合可見光線和紅外光線使用。
[0054]使用虹膜-鞏膜邊界(邊緣)的透視投影估計空間中眼睛的位置和方向,以便計算POG。POG估計確定瞳孔中心的位置以及一個或多個角膜反射。角膜反射為照射眼睛的光源(例如,紅外)的虛擬圖像且是通過作為凸面鏡的角膜前表面所創建的。更多有關使用角膜反射的凝視檢測的細節請參見2006年E.Guestrin和M.Eizenman所著的《IEEETransactions on Biomedical Engineering》中的“General theory of remote gazeestimation using the pupil center and corneal reflections,,,其以弓I用方式并入本文。
[0055]圖4B示出根據一個實施方案的用于使用圖像分析和人臉跟蹤的POG檢測的方法。在一個實施方案中,利用對用戶區域410的視頻圖像412的圖像分析確定凝視檢測,其包括對用戶特征,如眼睛416和418、臉、鼻子422、嘴巴420、軀干414等進行檢測和跟蹤。在圖4B所示的實施方案中,跟蹤臉部特征以估計頭部的三維位置并獲得眼睛旋轉中心的位置。所跟蹤的特征越多,凝視檢測則越可靠。例如,如果用戶轉動其頭部使其遠離攝像頭,則只有一只眼睛對于攝像頭而言是可見的。通過了解鼻子和嘴巴的位置,系統確定用戶已轉動其頭部,而不是假設眼睛檢測失敗。一旦確定了用戶特征的位置,則可計算P0G。頭部與臉部跟蹤可用于提高凝視檢測的精確度。通常,頭部跟蹤比凝視跟蹤更準確,這是因為頭部不會像眼睛一樣不時地進行不穩定的移動。
[0056]從用戶的凝視方向和攝像頭相對于顯示器的位置,可確定在顯示器上用戶凝視所聚焦的地方。由于攝像頭和顯示器可彼此相分開,因此也可進行校準操作以確定顯示器的位置。請用戶看著顯示器,且系統估計顯示器的位置。在另一實施方案中,校準操作可包括使用戶朝顯示器或多個顯示器中的一個或多個目標看,從而進一步地改進對顯示器位置以及對顯示器中⑶I對象的位置的估計。
[0057]在一個實施方案中,當基于圖像分析使用凝視檢測時,桌面上一批凝視位置都聚集在一起。由于人視覺系統的不穩定性,這些位置可能會是特定區域中的一個隨機系列的點。可使用算法從一批點中獲得中央聚焦位置,該算法利用統計分析確定P0G。對一個時間段內從多個圖像中獲得的聚焦位置進行平均以過濾不穩定的凝視移動。
[0058]聚焦位置限定出“目標區域”的中心。也可根據凝視位置流以及之前的聚焦位置確定目標區域的大小。一種算法包括找到每個凝視位置至目標區域中心(聚集位置)的距離以及使用這些距離的平均值或總和估計質心,其限定出目標區域的中心。
[0059]使用凝視焦點的目標區域,應用改變光標的移動方式以更有效地達到目標。如前所述,這包括基于距目標區域的距離改變鼠標光標的速度、將光標吸引至目標聚焦區域或使光標的位置跳至目標區域。
[0060]在一個實施方案中,跟蹤可被分為幾個階段,第一階段由頭部跟蹤所限定,且第二階段則由凝視檢測所限定。當頭部移動時,使用頭部跟蹤確定目標區域,這是因為頭部跟蹤通常比凝視跟蹤更可靠。一旦頭部運動基本上停下來時,利用凝視跟蹤對目標區域的位置進行細調,然后進行鼠標運動以獲得更精細的分辨率,從而將光標移至其目的地。在另一實施方案中,跟蹤的階段至少包括使用頭部跟蹤以從多個顯示器選擇一個顯示器的第一階段,以及使用凝視跟蹤在所選擇的顯示器中限定目標的第二階段。
[0061]圖5示出根據一個實施方案的用于使用凝視檢測以在手持裝置中快速滾動的方法。便攜裝置506包括用于進行凝視檢測的前置攝像頭。然而,由于顯示區域小,當與獨立顯示器的區域相比時,很難僅使用凝視檢測以在顯示器中選擇小的對象。然而,本發明的實施方案通過檢測屏幕中或屏幕外的POG而在使用便攜裝置506時提供導航輔助以加速導航。
[0062]用戶502使凝視504對著位于便攜裝置506的顯示器外部的區域以向計算機程序提供命令或暗示以進行導航。例如,如果用戶502正在閱讀較長的文件且一次僅顯示文件的一部分,那么用戶在使用另一輸入(例如,按鈕或觸摸屏)時凝視屏幕的上方、下方、左側或右側以指示用戶希望對導航加速。因此,如果用戶在觸摸屏上向下滑動手指且同時保持凝視在屏幕上,程序則將向上滾動顯示。然而,如果用戶使凝視504位于顯示器上方,這指示用戶想到達文件的頂部,所以當用戶開始在顯示器上滑動手指時,程序將跳至文件的頂部,且不管正在顯示的是文件的哪一部分。同樣,用戶可以看著顯示器的下方以跳至頁面的底部。這在一些在電子郵件底部顯示附件圖標的電子郵件客戶端中則特別有用。如果電子郵件很長,則需要大量的手指滾動以到達附件圖標。通過使用凝視,可以跳至底部,從而節約精力和時間。
[0063]在另一實施方案中,向正在閱讀智能手機或平板裝置中的書籍或雜志的用戶提供凝視輔助導航。當用戶想翻頁時,用戶看向屏幕左側或右側的遠方,然后則在屏幕上進行輕點以進行翻頁。在另一實施方案中,用戶僅看向顯示器的左邊緣或右邊緣,并結合在屏幕上的輕點,從而促使翻頁,而不需要用戶看向屏幕外側。平板裝置具有更大的顯示器,且凝視檢測可以具有足夠的精確度以確定用戶是看向左側還是右側。例如,角膜分析將指示瞳孔是向左還是向右。
[0064]圖6示出根據一個實施方案的用于使用凝視檢測和用戶輸入以進行快速光標移動的方法。在一個實施方案中,與身體動作相關的預定輸入可使計算機程序將凝視用作補充輸入。例如,用戶602正使用包括觸控板612、顯示器610和面向用戶的攝像頭的筆記本電腦604進行工作。基于用戶的凝視,兩個手指輕點觸控板以觸發鼠標光標的移動。
[0065]在圖6所示的實施方案中,鼠標光標在位置614上。當用戶執行兩手指輕點觸控板612時,在將用戶的凝視608引向P0G620時,鼠標光標跳至位置618,其緊鄰P0G620或正好位于P0G620處。選擇窗口 616,這是因為鼠標光標現正處于窗口 616中。
[0066]應注意的是圖6所示的實施方案為示例性的。其它實施方案可利用不同的輸入(例如,雙擊鼠標、在觸控板上進行兩次連續輕點、在鍵盤上按下一個鍵等)觸發凝視輔助導航,或其它實施方案可通過不同方式(例如,選擇窗口、改變瀏覽器的活動標簽、滾動窗口等)輔助導航。因此,圖6所示的實施方案不應被解釋為排他性或限制性的,而是示例性或說明性的。
[0067]在一個實施方案中,當檢測到用戶的凝視時,GUI在顯示器上提供反饋。例如,近似位于POG上中心的區域在顯示器中進行放大,⑶I上的一些窗口變得透明,圖標或窗口進行重排,或顯示彈出式菜單,等等。
[0068]圖7示出根據一個實施方案的凝視輔助的游戲界面。用戶702正在玩在游戲控制臺704上所執行的游戲,且該游戲控制臺704被連接至用于凝視檢測的攝像頭706。當用戶702按下控制器708上的一個按鈕時,游戲根據按下按鈕時用戶的凝視而以不同動作進行響應。在圖7所示的實施方案中,用戶正控制與敵人角色714進行戰斗的游戲角色712。游戲根據用戶的POG做出不同反應。
[0069]當用戶的P0G716a位于邊緣或顯示器上或位于顯示器外時,按下控制器708上的X按鈕710將會使游戲執行第一個動作(例如,角色712對槍進行重載)。當用戶的P0G716b位于用戶702所控制的角色712上時,按下X按鈕710將會使游戲執行第二個動作(例如,提高游戲角色的健康水平)。當用戶的P0G716C位于敵人角色714上時,按下X按鈕710將會促使游戲執行第三個動作(例如,使角色712在P0G716C的位置進行射擊)。
[0070]應注意的是圖7所示的實施方案為示例性的。其它實施方案可利用不同的按鈕、不同類型的輸入裝置,或使游戲做出不同的反應(例如,選擇一個對象、打開門、使角色移動等等)。因此,圖7所示的實施方案不應被解釋為排他性或限制性的,而是示例性或說明性的。
[0071]圖8示出根據一個實施方案的響應于手勢的窗口的圖形用戶界面。GUI使用凝視和手勢作為輸入以加強用戶與GUI的交互。當用戶執行預定手勢時,在與用戶凝視相關或經用戶凝視選擇的對象上執行動作。
[0072]例如,用戶814希望將窗口 810從顯示器802移至顯示器806。為了進行移動,用戶看著窗口 810、抬起手818并將手818從左側移動816至右側,指示用戶814想將窗口 810從左側移向右側。由于桌面顯示在兩個顯示器上,將窗口從左側移動804至右側將使窗口810在顯示器806中的位置812中終止。從攝像頭820獲得的圖像用于凝視檢測和手勢檢測,然而也可使用任何進行凝視檢測或手勢檢測的方法。在這種情況下,以使用手所進行的手勢的身體動作表現用戶的意圖。
[0073]在另一實施方案中,用戶的手勢用于操作呈現在顯示器上且通過凝視所選擇的對象。例如,在游戲環境中,用戶看著游戲中的對象(例如,武器、寶藏、硬幣、梯子等),且當用戶移動手時,游戲通過在對象上進行相關的動作而響應手的運動。例如,用戶可通過凝視選擇地面上的硬幣,然后用戶移動手就好像要撿起硬幣一樣,從而使用戶所控制的化身或游戲角色撿起硬幣。
[0074]圖9示出根據一個實施方案的利用凝視檢測、語音識別以及一個或多個計算機外圍設備的界面。在一個實施方案中,凝視用于選擇顯示器中的一個區域或一個對象,用戶輸入指示對象的選擇(例如,移動鼠標或按鍵),且語音識別用于在對象上執行一個動作。
[0075]例如,用戶912在窗口環境中工作且想要打開在桌面上以文件夾圖標所表示的文件夾904。鼠標位于桌面中遠離文件夾904的位置908處。用戶912使凝視對著文件夾904并開始移動914鼠標916。當檢測到鼠標運動時,系統檢查用戶的凝視并確定POG為接近文件夾圖標904的目標區域906。然后,系統使鼠標光標移動或跳至在文件夾904上或接近文件夾904的位置902。如果光標位置不在文件夾上,用戶進行小的鼠標運動以將光標定位在文件夾904的頂部。一旦鼠標位于文件夾904上,用戶則說出910通過語音識別程序所檢測的命令(例如,“打開”、“復制”、“刪除”、“移動”)。一旦檢測到語音命令,則進行所要求的操作(例如,打開窗口以顯示文件夾904的內容)。
[0076]圖10為實施本發明的實施方案的計算機系統的簡化示意圖。應理解的是,可使用數字處理系統,如傳統的通用計算機系統執行本文所述的方法。在替代方案中也可使用專用計算機,其被設計或編程為僅執行一個功能。計算裝置1012包括處理器1032,其被耦合到存儲器1034、永久存儲裝置1058以及內部的其它模塊,或被連接至計算裝置1012。⑶I計算機程序1036存在于存儲器1034中,但也可存在于永久存儲裝置1058中。
[0077]計算裝置1012與聲音捕獲裝置1008、圖像捕獲裝置1020和顯示器1026進行通信。在一個實施方案中,聲音捕獲裝置1008、圖像捕獲裝置1020和顯示器1026可嵌入計算裝置1012中,或可被組合至一個或多個裝置,如視頻記錄器中。在一個實施方案中,聲音捕獲裝置包括麥克風,在另一實施方案中,聲音捕獲裝置包括麥克風陣列。
[0078]如前所述,在顯示器中限定出凝視目標1028,然而也可在顯示器外部設置凝視目標1028,如在計算裝置1012上,或在顯示器周圍的區域1028上。凝視檢測模塊1024確定用戶的P0G,并確定用戶1002的凝視1006是否朝向凝視目標1028。在語音方面,語音識別模塊1016處理從聲音捕獲裝置1008接收到的聲音1004,并進行語音識別以確定是否已發出有效的用戶口頭命令。GUI計算機程序1036從凝視檢測1024、語音識別模塊1016和頭部跟蹤模塊1038接收輸入以實現上述本發明的實施方案。
[0079]永久存儲裝置1058表示持久性數據存儲裝置,如軟盤驅動器或固定盤驅動器,其可以是本地的或遠程的。網絡接口 1046提供網絡連接,允許與其它裝置進行通信。應理解的是,處理器1032可以嵌入通用處理器、專用處理器或專門的編程邏輯裝置中。輸入/輸出(I/O)接口 1042提供與不同外圍設備,如顯示器1026、鍵盤1052、鼠標1050、聲音捕獲裝置1008、圖像捕獲裝置1020、揚聲器1054、按鈕、傳感器、觸摸屏1056等等的通信。通用串行總線(USB)模塊1044提供了與USB裝置的連接。
[0080]顯示器1026被配置來顯示本文所述的用戶界面。鍵盤1052、鼠標1050和其它外圍設備被耦合至I/O接口 1042,以便將信息傳送給處理器1032。應理解的是,可通過I/O接口 1042傳送到達和源自外部裝置的數據。本發明也可在分布式計算環境中予以實踐,該分布式計算環境通過經基于有線的或無線網絡而鏈接的遠程處理裝置執行任務。
[0081]應注意的是圖10所示的實施方案為示例性的。其它實施方案可利用不同模塊或具有通過一個模塊所執行的多個功能等。因此,圖10所示的實施方案不應被解釋為排他性或限制性的,而是示例性或說明性的。
[0082]圖11示出說明根據本發明的一個實施方案的使用戶與在計算裝置中執行的計算機程序相連接的算法的流程圖。在操作1102中,識別了用戶的P0G,且在操作1104中,進行檢查以確定用戶是否已發起身體動作以移動光標。如果用戶已發起身體動作,方法前進至操作1106,且如果用戶還未發起身體動作,則返回至操作1102。
[0083]在操作1106中,進行檢查以確定在光標的當前位置與POG之間的距離是否大于閾值距離。如果距離大于閾值距離,該方法前進至操作1108,其中光標被移至緊鄰POG的區域。如果距離不大于閾值距離,該方法流回至操作1102。
[0084]可使用各種計算機系統配置,包括手持裝置、微處理器系統、基于微處理器或可編程的消費電子產品、微型計算機、大型計算機等實踐本發明的實施方案。本發明也可在分布式計算環境中予以實踐,該分布式計算環境通過經網絡鏈接的遠程處理裝置執行任務。
[0085]考慮到上述實施方案,應理解的是,本發明可采用各種涉及存儲在計算機系統中數據的由計算機所實現的操作。這些操作是需要對物理量進行物理操作的那些。形成本發明一部分的本文所描述的任何操作均為有用的機器操作。本發明還涉及用于執行這些操作的裝置或設備。可對設備進行專門構造以用于所需目的,如專用計算機。當限定為專用計算機時,計算機還可進行不構成特殊用途一部分的其它處理、程序執行或例程,其同時還能夠進行操作以用于特殊用途。可替代地,可通過選擇性激活的通用計算機處理或通過存儲于計算機存儲器和緩存器中的一個或多個計算機程序配置或經網絡獲得該操作。當經網絡獲得數據時,可通過網絡上的其它計算機,例如,計算資源云處理數據。
[0086]本發明的一個或多個實施方案也可被制造為計算機可讀介質上的計算機可讀編碼。計算機可讀介質是為任何可存儲數據的數據存儲裝置,其隨后可通過計算機系統進行閱讀。計算機可讀介質的實例包括硬盤驅動器、網絡附加存儲(NAS)、只讀存儲器、隨機存取存儲器、CD-ROM、CD-R、CD-RW、磁帶和其它光學和非光學數據存儲裝置。計算機可讀介質可包括分布在網絡耦合的計算機系統中的計算機可讀有形介質,以便通過分布方式存儲和執行計算機可讀編碼。
[0087]盡管該方法的操作是以特定順序進行描述的,應理解的是,其它內務操作可在操作之間執行,或可對操作進行調整以使其發生的時間略有不同,或操作可分布在一個系統中,只要按所需方式進行疊置操作的處理,則該系統允許與處理相關的處理操作以不同間隔發生。
[0088]雖然前面已對本發明的一些細節進行描述以使人們清楚地理解本發明,但顯而易見的是可在所附權利要求的范圍內實施某些變化和修改。相應地,本實施方案被認為是說明性而非限制性的,且本發明并不限于本文所給出的細節,但可在所附權利要求的范圍和等同范圍內進行修改。
【權利要求】
1.一種使用戶與在計算裝置中所執行的計算機程序相連接的方法,所述方法包括: 識別所述用戶的凝視點(POG); 檢測所述用戶開始進行的用于移動光標在顯示器上位置的身體動作,所述光標限定出與所述計算機程序相關的聚焦區域; 確定在所述光標的當前位置與所述POG之間的距離是否大于閾值距離;以及 將所述光標從所述當前位置移至鄰近所述POG的區域以響應所述確定和所述檢測。
2.根據權利要求1所述的方法,其中所述身體動作為移動鼠標、按下鍵、按下按鈕、觸摸屏幕、觸摸觸控板、做出手勢或說話中的一個。
3.根據權利要求1所述的方法,其中確定所述距離還包括: 確定在所述當前位置與所述POG之間的屏幕像素中測得的距離值。
4.根據權利要求1所述的方法,其中確定所述距離還包括: 確定所述當前位置和所述POG是否位于所述GUI中的不同窗口中。
5.根據權利要求1所述的方法,其中所述光標為鼠標光標、文本光標、字段選擇光標或頁面光標中的一個。
6.根據權利要求1所述的方法,其中移動所述光標還包括: 將所述光標從所述當前位置移除并將所述光標置于所述POG上。`
7.根據權利要求1所述的方法,其中移動所述光標還包括下列操作中的一個或多個: 將所述光標置于所述POG所處的窗口上; 將所述光標置于所述POG所處的顯示器上; 將所述光標置于鄰近所述POG的GUI對象上;或者 將所述光標置于鄰近所述POG的錄入字段上。
8.根據權利要求1所述的方法,其還包括: 基于在所述光標與所述POG之間的距離改變控制所述光標的鼠標的靈敏度。
9.根據權利要求1所述的方法,其還包括: 跟蹤所述用戶的頭部位置。
10.根據權利要求1所述的方法,其還包括: 檢測所述用戶觸發立即凝視輔助導航的輸入;以及 在檢測到輸入后將所述光標移至所述P0G。
11.一種具有圖形用戶界面(⑶I)的系統,所述系統包括: 處理器,其執行提供所述GUI的計算機程序,在一個或多個顯示器中提供有所述GUI ;輸入裝置,其可操作以當所述用戶在所述輸入裝置上開始進行身體動作時移動光標在所述一個或多個顯示器上的位置;和 凝視檢測模塊,其可操作用于識別所述用戶的凝視點(P0G),其中所述計算機程序確定在所述光標的當前位置與所述POG之間的距離是否大于閾值距離,且其中所述計算機程序將光標從所述當前位置移至鄰近所述POG的區域以響應對距離的確定和對身體動作的檢測。
12.根據權利要求11所述的系統,其中所述凝視檢測模塊使用角膜反射分析或對攝像頭拍攝的用戶圖像的分析中的一個。
13.根據權利要求12所述的系統,其中所述凝視檢測模塊分析若干用戶圖像以確定所述用戶的多個身體特征中的一個的位置。
14.根據權利要求11所述的系統,其中所述GUI在所述POG被置于所述GUI中的對象上時向所述用戶提供提示。
15.根據權利要求11所述的方法,其還包括: 語音識別模塊,其可操作以基于所述POG執行語音命令。
16.一種具有程序指令的非臨時性計算機可讀介質,當計算機執行所述程序指令時,實施一種使用戶與計算機程序相連接的方法,所述方法包括: 識別所述用戶的凝視點(POG); 檢測所述用戶開始進行的用于移動光標在顯示器上位置的身體動作,所述光標限定出與所述計算機程序相關的聚焦區域; 確定在所述光標的當前位置與所述POG之間的距離是否大于閾值距離;以及 將所述光標從所述當前位置移至鄰近所述POG的區域以響應所述確定和所述檢測。
17.根據權利要求16所述的非臨時性計算機可讀介質,所述方法還包括下列操作中的一個或多個: 移動所述⑶I的窗口; 按下所述⑶I的按鈕; 打開所述⑶I的窗口 ;` 關閉所述⑶I的窗口; 打開所述GUI的菜單; 從所述菜單選擇選項;或 隱藏除了 POG所在窗口以外的所述⑶I的窗口。
18.根據權利要求16所述的非臨時性計算機可讀介質,其中所述計算機為游戲控制臺,其中所述計算機程序為計算機游戲,且其中所述計算機游戲在所述用戶按下控制器上按鈕時確定所述計算機游戲的反應,所述反應是基于所述P0G。
19.根據權利要求16所述的非臨時性計算機可讀介質,所述方法還包括: 檢測所述用戶正在閱讀;以及 在所述POG接近窗口的邊緣時,滾動所述窗口的內容。
20.根據權利要求16所述的非臨時性計算機可讀介質,所述方法還包括: 確定所述POG位于所述顯示器的外部; 檢測所述用戶的另一身體動作的開始;以及 基于所述POG滾動窗口的內容。
【文檔編號】G06F3/0485GK103518172SQ201280022042
【公開日】2014年1月15日 申請日期:2012年4月6日 優先權日:2011年4月21日
【發明者】J.R.斯塔福德 申請人:索尼計算機娛樂公司