專利名稱:用于位置探測的成像方法和系統的制作方法
用于位置探測的成像方法和系統優先權聲明本申請要求享有2009年12月4日提交的題為“A Coordinate Input Device”的澳大利亞臨時申請No. 2009905917的優先權,在此通過引用將其全文并入這里;本申請還要求享有2010年2月23日提交的題為“A Coordinate Input Device”的澳大利亞臨時申請No. 2010900748的優先權,在此通過引用將其全文并入這里;本申請還要求享有2010年6月21日提交的題為“3D Computer Input System”的澳大利亞臨時申請No. 2010902689的優先權,在此通過引用將其全文并入這里。
背景技術:
、
具有觸摸功能的計算裝置已經變得越來越普及。這樣的裝置能夠使用光學、電阻和/或電容傳感器來確定手指、指示筆或其他對象何時接近或觸摸到接觸表面,例如顯示器。使用觸摸能夠有各種界面選項,例如基于跟蹤隨時間變化的觸摸的所謂的“手勢”。盡管具有觸摸功能的系統有優點,但仍然存在缺點。膝上型和臺式計算機受益于具有觸摸功能的屏幕,但特別的屏幕配置或布置可能需要用戶以不舒適的方式觸摸到或以其他方式移動。此外,一些觸摸探測技術仍然很昂貴,尤其是對于較大的屏幕面積而言。
發明內容
本主題的實施例包括計算裝置,例如桌面型、膝上型、平板計算機、移動裝置或集成到另一個裝置(例如,用于打游戲的娛樂裝置、電視機、家電、電話亭、車輛、工具等)中的計算裝置。計算裝置被配置成從空間中一個或多個對象的位置和/或移動確定用戶輸入命令。可以利用一個或多個光學傳感器對對象成像,可以通過任意數量的方式解釋所得的位置數據以確定命令。命令包括,但不限于二維、三維和其他圖形用戶界面之內的圖形用戶界面事件。作為范例,可以使用對象,例如手指或指示筆通過在繪制到屏幕上項目的位置處觸摸到表面或懸停在該位置附近的表面上來選擇屏幕上項目。作為另一范例,命令可以涉及非圖形事件(例如,改變揚聲器音量、激活/停用裝置或特征等)。一些實施例可以依賴于除位置數據之外的其他輸入,例如在手指或對象在給定位置時點擊所提供的物理按鈕。不過,同樣的系統可能能夠解釋不是觸摸特征的其他輸入。例如,可以以圖案的方式移動手指或指示筆,然后將圖案識別為特定的輸入命令,例如,基于一種或多種將移動的圖案關聯到特定命令的啟發式方式識別的手勢。作為另一范例,在自由空間中移動手指或指示筆可以轉換為圖形用戶界面中的移動。例如,即使未物理地觸摸到,也可以將穿過平面或到達指定區域解釋為觸摸或選擇動作。對象在空間中的位置可以影響如何將對象的位置解釋為命令。例如,對象在空間一個部分之內的移動可能導致與對象在空間另一部分之內相同移動不同的命令。作為范例,可以沿著空間之內的一個或兩個軸(例如,沿著空間的寬度和/或高度)移動手指或指示筆,在一個或兩個軸中的移動導致光標在圖形用戶界面中的對應移動。沿著第三軸(例如在不同深度)不同位置的同樣移動可能導致光標的不同對應移動。例如,手指距裝置屏幕越遠,手指從左到右移動可能導致光標的越快移動。在一些實施例中,可以利用虛擬體積(這里稱為“交互式體積”)實現這個目的,虛擬體積是由空間坐標到屏幕/界面坐標的映射定義的,該映射沿著交互式體積的深度而改變。作為另一范例,可以將不同區域用于不同類型的輸入。在一些實施例中,可以將接近裝置的屏幕定義為第一區域,可以將別處定義為第二區域。例如,第二區域可以位于膝上型計算機的屏幕和鍵盤按鍵之間,或者對于平板或移動裝置而言,可以代表第一區域外部的可成像空間。第一區域中的輸入可以被解釋為觸摸、懸停和其他圖形用戶界面命令。可以將第二區域中的輸入解釋為手勢。例如,可以在第二區域中提供“滑動(flick)”手勢,以便通過項目列表移動,而無需通過圖形用戶界面選擇特定的項目/命令按鈕。如下文所述,各實施例的各方面還包括輻照、探測和裝置配置,允許以響應和精確方式提供基于圖像的輸入。例如,可以使用探測器配置和探測器采樣提供更高的圖像處理吞吐量和響應更好的探測。在一些實施例中,對少于探測器所有可用像素的像素采樣,例如,通過將像素限制為交互式體積的投影和/或確定感興趣區域,由第二探測器探測的特、征的一個探測器進行探測。提到這些例示性實施例不是為了限制或界定本主題的限制,而是為了提供范例以輔助其理解。在具體實施方式
中論述了例示性實施例,其中提供了更多描述,包括系統、方法和提供本主題一個或多個方面的計算機可讀介質的例示性實施例。可以通過研究本說明書和/或通過實踐所主張主題的一個或多個實施例來進一步理解各實施例提供的優點。
在說明書的其余部分中更詳細地闡述了完整的且能夠實現的公開。說明書參考了以下附圖。圖1A-1D示出了位置探測系統的示范性實施例。圖2是示出了將成像空間分成多個區域的圖示。圖3是流程圖,示出了基于區域識別的輸入處理范例。圖4是示出了用于提供基于區域的探測能力的示范性傳感器配置的圖示。圖5是光學單元的例示性架構的截面圖。圖6是示出了在位置探測系統中使用基于CMOS的感測裝置的圖示。圖7為電路圖,示出了用硬件從另一幅圖像減去一幅圖像時使用的一個例示性讀出電路。圖8和9是示出了使用具有硬件的傳感器對第一和第二圖像相減的示范性時序圖。圖10為流程圖,示出了用于探測一個或多個空間坐標的示范性方法中的步驟。圖11是示出了確定一個或多個空間坐標時使用的例示性硬件配置和對應坐標系的圖示。圖12和13是示出了使用多個成像裝置確定空間坐標的圖示。圖14是示出了識別圖像中特征的例示性方法的流程圖和附圖。圖15A是使用交互式體積的例示性系統的圖示。
圖15B-15E示出了基于沿著交互式體積深度的映射的變化的不同光標響應的范例。圖16是示出了用于配置交互式體積的用戶界面范例的圖示。圖17A-17B示出了限制探測和/或圖像處理中使用的像素的技術。圖18示出了利用來自單個攝像頭的圖像確定空間坐標的范例。
具體實施例方式現在將詳細參考各種和替代示范性實施例和附圖。提供每個范例是為了解釋,而不是作為限制。對于本領域的技術人員顯而易見的是,可以做出修改和變化。例如,可以在另一實施例上使用作為一個實施例的一部分例示或描述的特征,以獲得更多的實施例。于是,本公開意圖包括落在所附權利要求及其等價物范圍之內的修改和變化。
、
在以下詳細描述中,闡述了眾多具體細節以提供對所主張主題的透徹理解。不過,本領域的技術人員將要理解,可以無需這些具體細節而實踐所主張的主題。在其他情況下,未詳細描述普通技術人員公知的方法、設備或系統,以免使所主張的主題模糊不清。位置探測系統的例示性系統和硬件方面圖IA是例示性位置探測系統100的視圖,而圖IB是示出了系統100的示范性架構的圖示。通常,位置探測系統能夠包括一個或多個成像裝置和硬件邏輯,硬件邏輯用于配置位置探測系統訪問來自至少一個成像裝置的數據,該數據包括空間中對象的圖像數據,訪問定義空間之內的交互式體積的數據,確定與對象相關聯的空間坐標,并基于空間坐標和交互式體積確定命令。在本范例中,位置探測系統為計算系統,其中硬件邏輯包括通過總線106連接到存儲器104的處理器102。程序部件116配置處理器以訪問數據并確定命令。盡管這里示出了基于軟件的實施方式,但位置探測系統可以使用其他硬件(例如,現場可編程門陣列(FPGA)、可編程邏輯陣列(PLA)等)。返回到圖1,存儲器104能夠包括RAM、ROM或可以由處理器102訪問的其他存儲器和/或另一種非暫態計算機可讀介質,例如存儲介質。本范例中的系統100經由I/O部件107連接到顯示器108、多個輻照裝置110和多個成像裝置112。配置成像裝置112以對包括空間114的視場成像。在本范例中,使用了多個輻照和成像裝置,但顯然在一些實施例中可以使用單個成像裝置,一些實施例可以使用單個輻照裝置或可以省去輻照裝置并依賴于環境光或其他環境能量。此外,盡管這里的幾個范例使用了兩個成像裝置,但系統可以在對對象成像時使用超過兩個成像裝置和/或可以使用多個不同成像系統實現不同目的。存儲器104包括一個或多個程序部件116,其配置計算系統以訪問來自成像裝置112的數據,該數據包括空間中一個或多個對象的圖像數據,確定與一個或多個對象相關聯的空間坐標并基于空間坐標確定命令。在下面的范例中將論述程序部件的示范性配置。并非要對圖IB中所示的系統100的架構進行限制。例如,可以使用一個或多個I/0接口 107,包括圖形接口(例如VGA、HDMI)連接顯示器108 (如果使用的話)。I/O接口的其他范例包括通用串行總線(USB)、IEEE1394和內部總線。可以使用用于通過有線或無線通信來通信的一個或多個聯網部件,其可以包括諸如以太網、IEEE802. 11 (Wi-Fi),802. 16(Wi-Max)、藍牙、紅外線等、CDMA, GSM、UMTS的接口或其他蜂窩通信網絡。圖IA示出了膝上型或上網本形狀因子。在本范例中,在主體101中示出了輻照和成像裝置110和112,主體還可以包括處理器、存儲器等。不過,可以在顯示器108中包括任何這樣的部件。例如,圖IC示出了位置探測系統100’的另一例示性形狀因子。在本范例中,顯示裝置108’在屏幕底部更大面積中具有集成的輻照裝置110和成像裝置112。該面積可以大約為2_尺寸。在本范例中,成像裝置對包括顯示裝置108’前方區域的空間114’成像。顯示裝置108’可以連接到包括處理器、存儲器等的計算系統(未示出)。作為另一范例,可以在顯示器108’的主體中包括處理器和額外的部件。盡管被示為顯示裝置(例如IXD、等離子體、OLED監視器、電視機等),可以為其他裝置,例如平板計算機、移動裝置等應用該原理。圖ID示出了另一例示性位置探測系統100”。具體而言,成像裝置112可以位于、細長輻照裝置110的任一側,輻照裝置110可以包括一個或多個發光二極管或發光的其他裝置。在本范例中,空間114”包括輻照裝置110上方以及成像裝置112之間的空間。在本范例中,每個成像裝置的圖像平面位于空間114”的底部屏幕之間的角度 ,在一些實施例中, 可以等于或近似等于45度。盡管這里示為矩形空間,但空間的實際尺寸和范圍可能取決于成像裝置的位置、取向和能力。此外,根據特定形狀因子,輻照裝置110可能不在空間114”上的中心處。例如,如果輻照裝置110和成像裝置112用于膝上型計算機,它們可以位于鍵盤的大致頂部或底部附近,空間114”對應于屏幕和鍵盤之間的區域。輻照裝置110和成像裝置112可以包括在或安裝到也位于獨立屏幕前方的鍵盤。作為另一范例,輻照裝置110和成像裝置112可以包括在或附著于屏幕或平板計算機中。再者,輻照裝置110和成像裝置112可以包括在安裝到另一裝置的獨立主體中或用作有或者沒有屏幕的獨立周邊設備。作為又一范例,可以獨立于輻照裝置110提供成像裝置112。例如,成像裝置112可以位于鍵盤、顯示屏的任一側,或簡單地在要提供空間輸入的區域的任一側上。輻照裝置110可以位于任何適當位置以根據需要提供輻照。一般說來,成像裝置112可以包括面積傳感器,用于拍攝繪示成像裝置視場的一個或多個幀。幀中的圖像可以包括可利用成像單元獲得的任何圖示,例如可以描繪視場的視覺表示、視場中光強度的表示或另一種表示。位置探測系統的處理器或其他硬件邏輯可以使用幀來確定空間114中一個或多個對象的信息,例如對象和/或其部分的位置、取向、方向。當對象在視場中時,可以識別對象的一個或多個特征并用于確定空間114之內的坐標(即“空間坐標”)。計算系統可以基于空間坐標值確定一個或多個命令。在一些實施例中,在確定如何利用空間坐標確定對象(或對象的所識別特征)的位置、取向和/或移動隨時間變化以識別特定命令時使用空間坐標。以多個探測區域為特征的例示件實施例在一些實施例中,在確定命令時以不同方式處理不同范圍的空間坐標。例如,如圖2中所示,可以將成像空間分成多個區域。本范例示出了成像裝置112和三個區域,但可以定義更多或更少的區域;此外,區域可以沿著成像空間的長度、寬度和/或深度變化。可以基于確定空間之內多個區域的哪個包含所確定的空間坐標來識別輸入的命令。例如,如果坐標位于鄰近顯示裝置108的區域(“區域I”)中,那么與該坐標相關聯的對象移動/位置能夠提供與坐標在區域2或3中不同的輸入。在一些實施例中,不論坐標在哪個區中,可以使用同一成像系統確定位置分量。不過,在一些實施例中,使用多重成像系統確定輸入。例如,可以使用距屏幕更遠的一個或多個成像裝置112對區域2和/或3成像。在一個范例中,每個成像系統將屏幕坐標傳遞到例程,該例程根據圖3確定命令。例如,對于區域I中的命令,可以使用一個或多個線傳感器或面積傳感器對屏幕處或附近的區域成像,第二系統用于對區域2、區域3之一或兩者成像。如果第二系統僅對區域2和3之一成像,第三成像系統能夠對區域2和3的另一個成像。成像系統均可以根據如下所述的一個或多個方面確定空間坐標。當然,可以在一個或多個區域之內使用多個成像系統。例如,可以將區域3作為多個子區處理,由相應組的成像裝置對每個子區成像。區域覆蓋范圍也可能交疊。可以結合各種成像系統使用相同或不同的位置探測技術。例如,用于區域I的成像系統可以使用三角測量原理來確定相對于屏幕區域的坐標,或者每個成像系統可以使用、這里論述的位置探測技術的各方面。該同一系統也可以確定距屏幕的距離。此外或替代地,可以協同使用多個系統。例如,用于確定區域I中的坐標的成像系統可以為屏幕坐標使用三角測量,并依賴于來自用于對區域3成像的成像系統的數據,以便確定距屏幕的距離。圖3是流程圖,示出了基于區域識別的輸入處理范例,可以由圖I中所示的程序部件116或由用于實施位置探測系統的其他硬件/軟件來執行。方框302表示確定空間中的一個或多個坐標。例如,如下文所述,可以通過如下方式識別與對象的特征(例如指尖、指示筆尖等)相關聯的空間坐標分析由不同成像裝置112拍攝的圖像中所示的特征的位置和成像裝置的已知幾何形狀。如方框304所示,該例程能夠確定坐標是否位于區域I中,如果是這樣的話,在確定306所示的觸摸輸入命令時使用該坐標。例如,可以利用提供輸入事件(例如圖形用戶界面中的選擇)的例程,基于空間坐標到屏幕坐標的映射識別觸摸輸入命令。作為具體范例,在對象觸摸或接近與顯示器平面對應的屏幕時,點擊或其他選擇可以被注冊。下文結合圖18論述觸摸探測的額外范例。這里論述的任何范例都能夠對應于2D觸摸輸入(例如由對象和感興趣表面之間一個或多個接觸來識別)以及3D坐標輸入。返回到圖3,方框308表示確定坐標是否在區域2中。如果是這樣的話,該流程進行到方框310。在本范例中,區域2位于鍵盤/跟蹤板附近,因此在確定觸摸板命令時使用區域2中的坐標。例如,可以將類似于與觸摸顯示相關聯的那些類似的一組2維輸入手勢與鍵盤或跟蹤板相關聯。可以在與按鍵或跟蹤板接觸期間做出手勢,或者可以在按鍵或跟蹤板附近進行。范例包括,但不限于手指揮動、猛擊、拖動等。可以隨著時間跟蹤坐標值,可以使用一個或多個啟發式方式來確定期望的手勢。啟發式方式可以識別取決于手勢的一個或多個位置或點,其可能需要依次識別。通過匹配移動和/或位置的圖案,可以識別手勢。作為另一范例,可以跟蹤手指移動并用于操控屏幕上光標。方框312表示確定坐標值是否在區域3中。在本范例中,如果坐標不在任何區域中,盡管在一些實施例中可以默認分配一個區域或可以忽略坐標,但定義誤差條件。不過,如果坐標確實在區域3中,那么如方框314所示,使用該坐標確定三維手勢。與識別二維手勢類似,可以通過跟蹤隨時間變化的坐標值并應用一次或多次啟發式方式來識別三維手勢,以便識別期望的輸入。作為另一范例,即使不直接依賴于坐標,也可以應用模式識別技術來識別手勢。例如,可以配置該系統以識別區域中的手或其他對象的邊緣并執行邊緣分析以確定手或其他對象的姿態、取向和/或形狀。可以應用適當的手勢識別啟發式方式以基于所識別的姿態、取向和/或形狀隨時間的變化識別各種輸入手勢。圖4是示出了用于提供基于區域的探測能力的示范性配置的圖示。在本范例中,成像裝置的特征在于像素陣列402,其包括與每個探測區域對應的部分;這里示出了三個區域。可以使用選擇邏輯404對像素值采樣并向板上控制器406提供像素值,板上控制器相應地對數據進行格式化/路由(例如,在一些實施例中經由USB接口)。在一些實施例中,可以操縱陣列402以調節視場或焦點中的至少一個,以包括多個區域的所識別一個。例如,可以利用適當的機械元件(例如微機電系統(MEMS)器件等),響應于來自選擇邏輯404的信號,旋轉和/或平移整個陣列或其子部分。作為另一范例,可以利用電動機、液壓系統等重、新定位整個光學單元,而不是操縱傳感器陣列或其部分。成像裝置的例示性實施例圖5是可用于位置探測系統中的光學單元112的例示性架構的截面圖。在本范例中,光學單元包括由塑料或另一種適當材料制成的外殼502和蓋504。蓋504可以包括玻璃、塑料等,在孔506上方和/或內部至少包括透明部分。光通過孔506傳遞到透鏡508,透鏡508將光聚焦到陣列510上,在本范例中,通過濾波器512聚焦到陣列。在本范例中,陣列510和外殼502安裝到框架514。例如,在一些實施例中,框架514可以包括印刷電路板。在任何事件中,陣列510都能夠包括配置成提供圖像數據的一個或多個像素陣列。例如,如果由輻照系統提供IR光,則該陣列能夠通過感測來自成像空間的IR光來拍攝圖像。作為另一范例,能夠使用環境光或另一個波長范圍。在一些實施例中,使用濾波器512過濾掉一個或多個波長范圍的光,以改善拍攝圖像時使用的其他范圍的光的探測。例如,在一個實施例中,濾波器512包括窄帶IR通過濾波器,以在光達到陣列510之前衰減除期望IR波長之外的環境光,陣列510被配置成至少感測IR波長。作為另一范例,如果對其他波長感興趣,可以配置適當的濾波器512以排除掉不感興趣的徂圍。一些實施例利用了輻照系統,其使用一個或多個輻照裝置,例如發光二極管(LED)以在一個或多個指定的波長范圍上輻照能量(例如紅外(IR) “光”)。這能夠輔助增大信噪比(SNR),其中信號是圖像的被輻照部分,噪聲大部分由環境光構成。例如,可以由適當的信號驅動IR LED以輻照由成像裝置成像的空間,成像裝置拍攝位置探測中使用的一個或多個圖像幀。在一些實施例中,例如,通過在已知頻率驅動輻照裝置來調制輻照。可以基于調制的定時拍攝圖像幀。一些實施例使用軟件過濾,即通過減去圖像來消除背景光,例如,在提供輻照時拍攝第一圖像,然后在無輻照時拍攝第二圖像。可以從第一圖像減去第二圖像,然后可以將所得的“代表圖像”用于進一步處理。從數學上講,可以將該操作表示為Signal=(Signal+Noise)-Noise0 一些實施例利用高強度照射光改善SNR,使得任何噪聲都被淹沒/抑制。從數學上講,可以將這樣的狀況描述為Signal=Signal+Noise,其中Signal Noise。如圖6中所示,一些實施例包括硬件信號調節。圖6是示出了在位置探測系統中使用基于CMOS的感測裝置602的圖示600。在本范例中,傳感器604包括像素陣列。CMOS襯底602還包括信號調節邏輯(或可編程CPU) 606,其可用于通過如下方式方便探測在成像裝置例如通過硬件實施的環境減除、無限脈沖響應(IIR)或有限脈沖響應(FIR)過濾、基于背景跟蹤器的觸摸探測等來提供圖像之前,用硬件至少執行一些圖像處理。在本范例中,襯底602還包括用于提供USB輸出的邏輯,以向計算裝置610傳輸圖像。計算裝置610的存儲器中包含的驅動程序612配置計算裝置610以處理圖像從而確定基于圖像數據的一個或多個命令。盡管在圖6中一起示出,但部件604和606可以在物理上分離,可以用FPGA、DSP、ASIC或微處理器實施606。盡管在本范例中論述了 CMOS,但可以利用用于構造集成電路的任何其他適當技術實現感測裝置。圖7為電路圖700,示出了用硬件從另一幅圖像減去一幅圖像時使用的讀出電路的一個范例。可以將這樣的電路包括在位置探測系統中。具體而言,可以通過分別驅動選擇晶體管TXl和TX2利用兩個不同的存儲裝置704和706 (在本范例中為電容器FDl和FD2)對像素702進行采樣。在驅動行選擇線712時,緩沖晶體管708和710隨后能夠提供讀出、值,將讀出值提供到差分放大器714。放大器714的輸出716表示在驅動TXl時采樣的像素以及驅動TX2時采樣的像素之間的差異。這里示出了單個像素,但將要理解,一行像素中的每個像素可以配置有對應的讀出電路,其中像素被包括在行傳感器或面積傳感器中。此外,可以配置其他適當的電路,由此可以利用適當的電荷存儲裝置或緩存裝置保持兩個(或更多)像素值,以用于輸出代表圖像或用于應用另一種信號處理效果。圖8是時序圖800,示出了在第一和第二時間間隔期間對像素采樣(通過位置探測系統)并取像素差異以輸出代表圖像的范例。這里可以看出,對三個相繼幀(幀n-1 ;幀11;和幀n+1)采樣并作為代表圖像輸出。在提供輻照(“有光”)的時間間隔內(例如通過驅動TXl)讀取每一行I到480,并在不提供光(“無光”)時(例如,通過驅動TX2)再次讀取。然后,可以提供單個輸出圖像。這種方法使得基于軟件的代表圖像采樣能夠并行進行。圖9為時序圖900,示出了能夠由位置探測系統使用的另一采樣例程。本范例的特征在于較高的調制率以及快速的快門,其中在給定的開關周期期間對每一行采樣。幀的總曝光時間可以等于或近似等于行數乘以完整調制周期時間。坐標探測的例示件實施例圖10為流程圖,示出了用于探測一個或多個空間坐標的示范性方法1000中的步驟。例如,位置探測系統(例如圖1A-1D的系統之一)特征在于多個成像裝置,其用于對空間成像并執行根據圖10的方法。在圖11中的1100處示出了另一范例。在本范例中,第一和第二成像裝置112位于顯示器108和鍵盤附近,并被配置成對空間114成像。在本范例中,空間114對應于顯示器108和鍵盤之間的矩形空間。圖11還示出了針對區域114定義的坐標系V (Vx, Vy, Vz),按照V確定空間坐標。每個成像裝置112還以其自己相對于每個相應攝像頭的原點(圖11中示為O1和0 R)定義的坐標系C為特征,Ol定義為坐標系V中的(-I,0,0 ),Ok定義為坐標系V中的(I,0,0 )。對于左側攝像頭,按照(Clx,Cly, Clz)指定攝像頭坐標,而按照(CKX,Cey, Cez)指定右側攝像頭坐標。每個攝像頭中的X和y坐標對應于針對每個單元的X和Y坐標,而Z坐標(G和Ckz)是本范例中成像單元平面的法線或方向。
返回圖10,從方框1002開始,該方法前進到方框1004,其表示采集第一和第二圖
像。在一些實施例中,采集第一和第二圖像包括基于來自第一成像裝置的圖像采集第一差異圖像,以及基于來自第二成像裝置的圖像采集第二差異圖像。可以通過從代表圖像減去背景圖像來確定每個差異圖像。具體而言,在調制光源的同時,第一和第二成像裝置的每個都能夠在有光和無光的時對空間成像。可以通過從來自每個裝置的有光圖像減去來自每個裝置的無光圖像來確定第一和第二代表圖像(或反之,取圖像的絕對值)。作為另一范例,可以利用根據圖7-9的硬件或以另一種適當方式配置成像裝置,以基于光源的調制提供代表圖像。在一些實施例中,可以直接使用代表圖像。不過,在一些實施例中,可以通過從每個代表圖像減去相應的背景圖像來獲得差異圖像,使得要識別其特征的對象(例如手指、指示筆等)保留,但沒有背景特征了。、例如,在一個實施例中,將代表圖像定義為It=| Imt-Inv11,其中Imt代表成像間隔t時成像裝置的輸出。可以替代地通過拍攝有光和無光圖像來確定一系列代表圖像,以獲得I:、12、13、I4等。可以通過首先對背景圖像Btl=I1進行初始化來執行背景減除。然后,可以根據以下算法更新背景圖像If It [n]Then Bt [n] =B^1 [n] +1;Else Bt[n]=It[n]作為另一范例,該算法可以是If It [n]Then Bt [n] =B^1 [n] +1;Else Bt[n] =Bt[n]—I可以通過下式獲得差異圖像Dt=It-Bt當然,各種實施例能夠使用任何適當技術來獲得適當圖像。在任何事件中,在采集第一和第二圖像之后,該方法前進到方框1006,表示在第一和第二圖像的每個中對特征定位。在實踐中,盡管實施例能夠從一個公共特征開始進行,但可以識別多個不同特征。可以使用任何適當的技術識別特征,包括下文稍后指出的示范性方法。不論使用什么技術識別特征,都在采集的每幅圖像中按照二維圖像像素坐標I(I、,Ily)和(1\,1\)定位特征。方框1008表示確定針對特征的攝像頭坐標,然后將坐標轉換成虛擬坐標。可以利用以下表達式將圖像像素坐標轉換成攝像頭坐標C (單位mm):
f(\) fih-PJU (; 二 Uy-l\Vfy
Ir I
\K ^ J \ 1 /其中(Px,Py)是主中心,fx, fy是每個攝像頭校準的焦距。可以根據以下表達式將來自左成像單元坐標CL和右成像單元坐標Ck的坐標轉換成坐標系V中的對應坐標VL=MLeft X Cl
VE=MEightXCE其中Mlrft和MHght是從左右攝像頭坐標到虛擬坐標的變換矩陣;可以通過來自立體攝像頭校準的旋轉矩陣R和平移矢量T計算Mlrft和Mright。可以由兩個成像裝置對棋盤格圖案成像并用于計算攝像頭之間的同類變換,以便導出旋轉矩陣R和平移矢量T。具體而言,假設Pk是右攝像頭坐標系中的點,點P1是左攝像頭坐標系中的點,可以將從右到左的變換定義為Pl=R Pk+T。如前所述,可以沿著虛擬空間的X軸設置攝像頭的原點,左攝像頭原點在(_1,0,0),右攝像頭原點在(0,0,1)。在本范例中,沿著攝像頭的原點定義虛擬坐標Vx的X軸。虛擬坐標Vz的z軸定義為來自攝像頭局部坐標的z軸叉積(即,通過Cz1和CZK的叉積)。虛擬坐標Vy的y軸定義為X和z軸的叉積。利用這些定義和校準數據,可以根據以下步驟推導虛擬坐標系的每個軸Vx=R
t+TVz= ((R
t=T) - Vx) X
TVy=VzXVxVz=VxXVy在Cz1和CZK不是共平面的情況下,計算兩次Vz。因為左攝像頭的原點是在[_1,0,0]T處定義的,所以可以利用如下表達式獲得從左攝像頭坐標到虛擬坐標的同族點變換;類似的計算可以導出從右攝像頭坐標到虛擬坐標的同類變換Mleft= [VxTVyTVzT [-1,0,0,I]T]以及Mright= [RXVxT RXVy1 RXVzt[1,0,0, I]方框1010表示確定第一條線和第二條線的交點。第一條線是從第一攝像頭原點,通過在第一成像裝置探測的特征的虛擬坐標投射的,而第二條線是從第二攝像頭原點并通過在第二成像裝置探測的特征的虛擬坐標投射的第二條線。如圖12-13中所示,探測到的特征具有坐標系V中的左側坐標PL和坐標系V中的右側坐標PK。可以從左側原點O1,通過P1,并從右側原點Ok,通過Pk投射線。理想地,線將在與圖12中所示的特征對應的位置或附近相交。在實踐中,可能不會發現完美的交點,例如,投射的線由于校準誤差,可能不是共面的。于是,在一些實施例中,將交點P定義為兩條線都相切的最小球體的中心。如圖13中所示,該球體與投影線在點a和b處相切,從而將球心n定義為空間坐標。可以通過下式計算球心Ol+ (Pl-Ol) *tL=P+入 *nOe+ (Pe-Oe) ^t8=P-入 *n其中n是從節點b到a的單位矢量,是從兩條射線的叉積(pL_0l) X (Pe-Oe)導出的。可以通過對以下線性方程求解導出剩余三個未知數#、0和入
權利要求
1.一種計算系統,包括 處理器; 存儲器;以及 至少一個成像裝置,配置成對空間成 像, 其中所述存儲器包括至少一個程序部件,所述至少一個程序部件配置所述處理器以迭代地對所述至少一個成像裝置的圖像數據采樣,并基于在所述圖像數據中探測對象的特征的圖像確定與所述空間中的所述對象相關聯的空間坐標, 其中迭代地對所述圖像數據采樣包括,對于每次迭代,訪問定義像素范圍的數據,以供在迭代期間對來自所述至少一個成像裝置的圖像數據采樣時使用。
2.根據權利要求I所述的計算系統,其中所定義的像素范圍包括像素的窗口,并且 其中所述至少一個程序部件配置所述處理器以基于所探測特征的位置更新所述窗口。
3.根據權利要求2所述的計算系統,其中迭代地對所述圖像數據采樣包括對所述窗口中而非所述窗口外部的圖像數據采樣。
4.根據權利要求2所述的計算系統,其中迭代地對所述圖像數據采樣包括以高于所述窗口外部的圖像數據的分辨率對所述窗口中的圖像數據采樣。
5.根據權利要求2所述的計算系統, 其中所述至少一個程序部件配置所述處理器以使用來自第一成像裝置的訪問數據確定像素的子集,以供在訪問來自第二成像裝置的數據時使用, 其中所述像素的子集基于第二成像裝置的圖像平面中的核線,并且 其中至少部分基于所述核線的位置更新所述窗口。
6.根據權利要求I所述的計算系統,其中所述像素范圍定義第一組像素和第二組像素,其中第一組像素供在第一狀態期間對圖像數據采樣使用,第二組像素供在第二狀態期間對圖像數據采樣使用,并且 其中所述至少一個程序部件配置所述處理器以基于在圖像數據中探測特征的成功或失敗在第一和第二狀態之間切換。
7.根據權利要求6所述的計算系統,還包括輻照裝置, 其中所述至少一個程序部件配置所述處理器以在第一狀態期間停用所述成像裝置。
8.根據權利要求6所述的計算系統,其中第一組像素包括交替的行,第二組像素包括連續的行。
9.根據權利要求6所述的計算系統,其中第一組像素包括單行像素,第二組像素包括多行像素。
10.一種計算機實施的方法,包括 在第一次迭代期間對來自至少一個成像裝置的表示空間圖像的數據采樣; 基于在所采樣的表示空間圖像的數據中探測對象的特征確定與所述空間中的所述對象相關聯的空間坐標; 基于第一次迭代期間采樣的數據確定在第二次迭代期間來自所述至少一個成像裝置的采樣所使用的像素范圍;以及 在第二次迭代期間對來自所述至少一個成像裝置的表示空間圖像的數據采樣。
11.根據權利要求10所述的方法,其中所述像素范圍包括像素的窗口,且其中所述方法還包括基于所探測的特征的位置更新所述窗口。
12.根據權利要求11所述的方法,其中對所述圖像數據采樣包括對所述窗口中而非所述窗口外部的圖像數據采樣。
13.根據權利要求11所述的方法,其中對所述圖像數據采樣包括以高于所述窗口外部的圖像數據的分辨率對所述窗口中的圖像數據采樣。
14.根據權利要求10所述的方法,其中確定在第二次迭代期間來自所述至少一個成像裝置的采樣時使用的像素范圍包括基于利用第一成像裝置成像的特征確定第二成像裝置的圖像平面中的核線。
15.根據權利要求10所述的方法,其中所述像素范圍定義第一組像素和第二組像素,其中第一組像素供在第一狀態期間對圖像數據采樣使用,第二組像素供在第二狀態期間對圖像數據采樣使用,并且 其中所述方法還包括基于在圖像數據中探測特征的成功或失敗在第一和第二狀態之間切換。
16.根據權利要求15所述的方法,還包括在第一狀態期間停用成像裝置。
17.根據權利要求15所述的方法,其中第一組像素包括交替的行,第二組像素包括連續的行。
18.根據權利要求15所述的方法,其中第一組像素包括單行像素,第二組像素包括多行像素。
19.根據權利要求10所述的方法,其中在第二次迭代期間對來自所述至少一個成像裝置的表示空間圖像的數據采樣包括利用在第一次迭代期間采樣的同一成像裝置采樣。
20.根據權利要求10所述的方法,其中在第二次迭代期間對來自所述至少一個成像裝置的表示空間圖像的數據采樣包括利用與第一次迭代不同的成像裝置采樣。
21.一種計算機可讀介質,包含用于執行根據權利要求10-20之一所述方法的指令。
全文摘要
一種計算裝置,例如桌面計算機、膝上型、平板計算機、移動裝置或集成到另一裝置(例如,用于打游戲的娛樂裝置、電視機、家電、電話亭、車輛、工具等)中的計算裝置,被配置成從空間中一個或多個對象的位置和/或移動確定用戶輸入命令。可以利用一個或多個光學傳感器對對象成像,可以通過任意數量的方式解釋所得的位置數據以確定命令。在第一次采樣迭代期間,可以從對象特征的位置識別像素范圍,基于第一次迭代期間采樣的數據在第二次迭代期間從至少一個成像裝置采樣時使用該范圍。
文檔編號G06F3/01GK102754048SQ201080063109
公開日2012年10月24日 申請日期2010年12月6日 優先權日2009年12月4日
發明者B·波特, B·雷德福, F·戈菲內, G·麥克唐納, H·耶斯克, J·D·牛頓, 張睿, 李博 申請人:奈克斯特控股公司