本發明涉及計算機應用領域,尤其涉及一種偏離深度相機的用戶體感交互標定方法和系統。
背景技術:
利用深度相機(3d相機)可以獲取人體的深度圖像,進一步利用深度圖像可以識別出人體姿勢或動作從而實現人機交互。比如目前比較常見的設備中,將深度相機(比如kinect,astra等)與主機設備(如游戲主機、智能電視等)相連,當人體對象處在深度相機的可測范圍內,由深度相機獲取含人體的深度圖像,將深度圖像傳輸到主機設備中,通過處理器對深度圖像進行人體姿勢或動作(如手勢等)識別后,將識別到的手勢與預設的主機指令對應后觸發該指令以實現體感交互。
用戶在與電視、機器人等主體設備在進行體感交互時,往往面對這些主體設備,同時深度相機被放置在主體設備上或與主體設備集成在一起。但在其他的應用中,深度相機與主體設備分離且處在不同的方位,比如利用單個深度相機來控制處在不同位置上的多個主體設備等,此時當用戶面對主體設備進行體感交互時,用戶則會偏離深度相機,比如在左右揮手時,深度相機所得到的深度圖像中則并非是左右揮手,這就使得在交互過程中用戶意圖與體感識別之間的差異。
技術實現要素:
本發明為了解決深度相機與主體設備偏離時不能獲取準確指令的問題,提供一種偏離深度相機的用戶體感交互標定方法和系統。
為了解決上述問題,本發明采用的技術方案如下所述:
一種偏離深度相機的用戶體感交互標定方法,包括以下步驟:
s1:接收深度相機獲取的人體面向主體設備發出指令時的深度相機坐標系中的第一深度圖像;
s2:根據所述第一深度圖像識別出所述人體的正面朝向;
s3:根據所述正面朝向將所述第一深度圖像轉換為主體設備坐標系中的第二深度圖像;
s4:識別所述第二深度圖像代表的所述指令并輸出所述指令。
優選地,所述人體的正面朝向指的是所述人體的臉部正面或所述人體的軀干正面所指的方向。
優選地,所述步驟s3包括以下步驟:
s31:由所述正面朝向確定出正面朝向的方向向量并計算出該方向向量在所述深度相機坐標系中的方向夾角;
s32:利用所述方向夾角計算出轉換矩陣;
s33:根據所述轉換矩陣將所述第一深度圖像轉換為所述第二深度圖像。
優選地,所述步驟s4中識別所述第二深度圖像代表的指令包括:
s41:根據所述第二深度圖像提取其對應的姿勢或動作;
s42:識別所述姿勢或動作對應的指令;
s43:輸出所述指令。
本發明采用的技術方案還包括一種偏離深度相機的用戶體感交互標定方法,包括以下步驟:
t1:接收深度相機獲取的人體面向主體設備發出指令時的深度相機坐標系中的第一深度圖像,并根據所述第一深度圖像提取第一姿勢或動作;
t2:根據所述第一深度圖像識別出所述人體的正面朝向;
t3:根據所述正面朝向將所述第一姿勢或動作轉換為主體設備坐標系中的第二姿勢或動作;
t4:識別所述第二姿勢或動作代表的所述指令并輸出所述指令。
優選地,所述姿勢或動作指的手勢或手部動作。
優選地,所述人體的正面朝向指的是所述人體的臉部正面或所述人體的軀干正面所指的方向。
優選地,所述步驟t3包括以下步驟:
t31:由所述正面朝向計算出所述正面朝向的方向向量并計算出該方向向量在所述深度相機坐標系中的方向夾角;
t32:利用所述方向夾角計算出轉換矩陣;
t33:根據所述轉換矩陣將所述第一姿勢或動作轉換為所述第二姿勢或動作。
本發明采用的技術方案還包括一種采用如以上任一所述的偏離深度相機的用戶體感交互標定方法的系統,包括至少一臺深度相機和至少一臺主體設備,所述深度相機包括圖像采集單元、深度計算單元以及接口單元,所述主體設備包含處理器、存儲器、接口單元。
一種計算機可讀存儲介質,其存儲有標定偏離深度相機的用戶體感交互的計算機程序,所述計算機程序被處理器執行以實現以上任一所述方法。本發明的有益效果為:提供了一種偏離深度相機的用戶體感交互標定方法,利用對深度相機獲取人體面向主體設備發出指令時的第一深度圖像提取人體的正面朝向,并根據該正面朝向來重新標定深度相機所得到的第一深度圖像或重新標定由第一深度圖像提取的第一姿勢或動作,獲得人體發出的準確的指令,由此實現無論深度相機的擺放方位如何,均可以實現較佳的用戶交互體驗。
附圖說明
圖1是本發明實施例體感交互的場景示意圖。
圖2是本發明實施例偏離深度相機的用戶體感交互標定方法示意圖。
圖3是本發明實施例偏離深度相機的用戶體感交互標定方法中第一深度圖像轉化為第二深度圖像的方法示意圖。
圖4是本發明實施例偏離深度相機的用戶體感交互標定方法中識別并輸出指令的方法示意圖。
圖5是本發明實施例偏離深度相機的用戶體感交互標定系統示意圖。
圖6是本發明實施例又一偏離深度相機的用戶體感交互標定方法示意圖。
圖7是本發明實施例又一偏離深度相機的用戶體感交互標定方法中第一姿勢或動作轉化為第二姿勢或動作的方法示意圖。
其中,1-電視、2-深度相機、3-用戶。
具體實施方式
下面結合附圖通過具體實施例對本發明進行詳細的介紹,以使更好的理解本發明,但下述實施例并不限制本發明范圍。另外,需要說明的是,下述實施例中所提供的圖示僅以示意方式說明本發明的基本構思,附圖中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪制,其實際實施時各組件的形狀、數量及比例可為一種隨意的改變,且其組件布局形態也可能更為復雜。
圖1是根據本發明實施例的體感交互的場景示意圖。圖中深度相機2與電視1相連,深度相機2被用來獲取目標區域的深度圖像。
目前深度相機2主要有三種形式:基于雙目視覺的深度相機、基于結構光的深度相機以及基于tof(時間飛行法)的深度相機。以下進行簡要說明,無論哪種形式都可以被用在實施例中。
基于雙目視覺的深度相機是利用雙目視覺技術,利用處在不同視角的兩個相機對同一空間進行拍照,兩個相機拍攝出的圖像中相同物體所在像素的差異與該物體所在的深度直接相關,因而通過圖像處理技術通過計算像素偏差來獲取深度信息。
基于結構光的深度相機通過向目標空間投射編碼結構光圖案,再通過相機采集目標空間含有結構光圖案的圖像,然后將該圖像進行處理比如與參考結構光圖像進行匹配計算等可以直接得到深度信息。
基于tof的深度相機通過向目標空間發射激光脈沖,激光脈沖經目標反射后被接收單元接收后并記錄下激光脈沖的來回時間,通過該時間計算出目標的深度信息。
這三種方法中第一種一般采集彩色相機,因而受光照影響大,同時獲取深度信息的計算量較大。后兩種一般利用紅外光,不受光照影響,同時計算量相對較小。在室內環境中,使用結構光或tof深度相機是更佳的選擇。
圖1中的電視1一般意義上為智能電視或數字電視,可以看成是含有顯示器、處理器以及諸多接口的計算設備,目前大多數的智能電視運行android操作系統。深度相機2一般擁有usb等接口,用于與計算設備相連,還可以進行供電。圖1中深度相機2與電視1連接,將獲取到的深度圖像傳輸到電視中,通過存儲在電視1中的軟件對深度圖像進行處理,比如圖像去噪預處理、骨架提取等,進一步地將處理的結果變成相應的指令來控制電視1中的應用程序,比如控制光標移動、選中、翻頁等。
在本實施例的變通實施例中,電視也可以是其他主體設備,比如顯示器、電腦、機器人等。
在本實施例中,用戶3正面朝向主體設備電視1進行體感交互,體感交互方式包括體感游戲、手勢操控光標等。傳統的體感交互一般要求深度相機2處在電視1的前方或者上部固定,這樣做的好處在于可以使得深度相機2正面與電視1的正面平行,然而也存在一些場景,如圖1所示,深度相機2與電視1處在不同的方位,使得深度相機2正面與電視1正面之間有一定的夾角。
圖1中用兩個向量以方便說明,其中向量a表示用戶正面朝向,向量a表示深度相機朝向,圖中xyz坐標系為深度相機的坐標系。本發明針對向量a與a存在一定夾角的情形。在這種情形下,當用戶3面對主體設備電視1作出平行移動操作時,對于電視1而言該操作即為一個二維的平面操作,而對于深度相機2而言,該操作卻為三維的空間移動,當深度相機以在深度相機的坐標系中識別出的該三維移動結果輸出到電視1中去,即會使得電視1中的目標也執行三維操作,并非用戶3想要的二維操作,這就導致了用戶3意圖與實際交互目的之間的差距,導致交互體驗差。
如圖2所示,本實施例采用本發明所述的偏離深度相機的用戶體感交互標定方法,可以準確識別用戶3的指令,具體包括以下步驟:
s1:接收深度相機獲取的人體面向主體設備發出指令時的深度相機坐標系中的第一深度圖像;
默認地,該第一深度圖像中各像素的坐標是在深度相機所在的坐標系中的。
s2:根據所述第一深度圖像識別出所述人體的正面朝向;
在本實施例的變通實施例中,該正面朝向根據不同的應用也有區別。比如對于一些人體軀干總是面對主體設備的應用,用軀干正面的朝向作為正面朝向是合理的;而對于一些人體臉部軀干總是面對主體設備的應用而言,用人臉正面的朝向作為正面朝向則更佳合理。正面朝向的方向向量的計算方法有多種,比如對于人臉而言,通過識別兩只眼睛以及嘴巴的三點坐標確定人臉平面,從而確定出垂直與該平面的向量作為人臉正面朝向的方向向量。
s3:根據所述正面朝向將所述第一深度圖像轉換為主體設備坐標系中的第二深度圖像;
如圖3所示,所述步驟s3包括以下步驟:
s31:由所述正面朝向確定出正面朝向的方向向量并計算出該方向向量在所述深度相機坐標系中的方向夾角;
s32:利用所述方向夾角計算出轉換矩陣;
s33:根據所述轉換矩陣將所述第一深度圖像轉換為所述第二深度圖像。根據所述正面朝向的方向向量可以得到該向量與深度相機向量之間的夾角θ,該夾角在三個方向上的分量為(α,β,γ),由此可以得到轉換矩陣r:
將第一深度圖像中各個像素的三維空間點與該轉換矩陣相乘就可以得到所述主體設備的坐標系中的第二深度圖像,該深度圖像將不會隨著深度相機的方位影響,因此可以實現更好的人機交互。
s4:識別所述第二深度圖像代表的所述指令并輸出所述指令;
如圖4所示,所述步驟s4中識別所述第二深度圖像代表的指令包括:
s41:根據所述第二深度圖像提取其對應的姿勢或動作;
s42:識別所述姿勢或動作對應的指令;
s43:輸出所述指令。
值得注意的是,該轉換矩陣僅考慮了轉換,沒有考慮平移及縮放,在本實施例的變通實施例中,轉換矩陣也可以增加平移及縮放分量。
在本實施例的變通實施例中,存在一種計算機可讀存儲介質,其存儲有標定偏離深度相機的用戶體感交互的計算機程序,所述計算機程序被處理器執行以實現圖2、圖3、圖4所示方法。
如圖5所示,是本實施例偏離深度相機的用戶體感交互標定系統示意圖。系統由主體設備以及深度相機組成,其中主體設備包含處理器、存儲器、接口單元,主體設備還外接了一個顯示器;深度相機中包含深度計算單元、接口單元、圖像采集單元,對于結構光深度相機以及tof深度相機,圖像采集單元包括光學投影儀以及圖像傳感器;而對于雙目深度相機,圖像采集單元包括兩個圖像傳感器。主體設備與深度相機之間通過接口單元連接,該接口單元為usb有線連接。
在本實施例的變通實施例可以是例如如下所述:主體設備可以包括顯示器,在進行體感交互時,用戶一般朝向顯示器;計算設備與深度相機之間還可以通過其他有線形式連接,也可以為wifi等無線連接。
深度相機采集到目標區域的圖像后,由深度計算單元計算出目標區域的深度圖像,根據不同原理的深度相機,其計算方式也有區別,以結構光深度相機為例。結構光深度相機中結構光投影儀向空間中投影結構光圖像,該圖像由圖像傳感器采集后傳給深度計算單元,由結構光圖像計算深度圖像是基于結構光三角法來實現的。以結構光圖像為散斑圖像為例,預先需要對采集一幅已知深度平面上的結構光圖像為參考圖像,然后深度計算單元利用當前獲取的結構光圖像與參考圖像,通過圖像匹配算法計算各個像素的偏離值(變形),最后利用三角法原理可以計算出深度,計算公式如下:
其中,zd指三維空間點距離采集模組的深度值,即待求的深度數據,b是采集相機與結構光投影儀之間的距離,z0為參考圖像離采集模組的深度值,f為采集相機中透鏡的焦距。其中參考圖像、b以及f等參數預先要存儲在存儲器中。
在本實施例中,存儲器為flash閃存。在本實施例的變通實施例中,可以為其他非易失性存儲器,若深度相機被集成到計算設備中,該存儲器與計算設備中的存儲器可以指合二為一。
深度計算單元計算出目標區域的深度圖像后,深度圖像經由接口單元傳輸到計算設備中,深度圖像可以被保存在存儲器中,然后由主體設備的處理器處理,此處的深度圖像包括深度圖像預處理、人體識別、骨架提取等信息。
在本發明的變通實施例中,深度圖像也可以直接經由主體設備的處理器進行實時的處理,處理的程序(如深度圖像預處理、人體識別、骨架提取等)被預先保存在主體設備的存儲器中。處理器將調用這些程序對深度圖像進行處理,最終可以輸出控制其他應用程序的指令。
在本實施例中,為了解決前面提出的用戶真實體感與虛擬操控對象不一致的問題,處理器還需要對深度相機獲取的深度圖像進行進一步的處理。問題產生的根本原因在于深度相機朝向與主體設備朝向不一致的問題。
如圖6所示,本實施例還可以采用本發明另一所述的方法解決上述問題,先對深度圖像進行進一步處理后得到姿勢、或動作后再進行轉換,具體包括如下步驟:
t1:接收深度相機獲取的人體面向主體設備發出指令時的深度相機坐標系中的第一深度圖像,并根據所述第一深度圖像提取第一姿勢或動作;所述姿勢或動作指的手勢或手部動作;
t2:根據所述第一深度圖像識別出所述人體的正面朝向;
在本實施例的變通實施例中,該正面朝向根據不同的應用也有區別。比如對于一些人體軀干總是面對主體設備的應用,用軀干正面的朝向作為正面朝向是合理的;而對于一些人體臉部軀干總是面對主體設備的應用而言,用人臉正面的朝向作為正面朝向則更佳合理。正面朝向的方向向量的計算方法有多種,比如對于人臉而言,通過識別兩只眼睛以及嘴巴的三點坐標確定人臉平面,從而確定出垂直與該平面的向量作為人臉正面朝向的方向向量。
t3:根據所述正面朝向將所述第一姿勢或動作轉換為主體設備坐標系中的第二姿勢或動作;
如圖7所示,所述步驟t3包括以下步驟:
t31:由所述正面朝向計算出所述正面朝向的方向向量并計算出該方向向量在所述深度相機坐標系中的方向夾角;
t32:利用所述方向夾角計算出轉換矩陣;
t33:根據所述轉換矩陣將所述第一姿勢或動作轉換為所述第二姿勢或動作。
t4:識別所述第二姿勢或動作代表的所述指令并輸出所述指令。
與圖2所示的方法相比,圖6所示的方法所需要的計算量較小,首先得到深度圖像后,還需要從深度圖像中提取出第一姿勢或動作;其次也需要計算轉換矩陣;最后根據轉換矩陣將第一姿勢或動作轉換為相對于人體正面朝向的第二姿勢或動作。
計算設備中的存儲器用于存儲操作系統以及應用程序;處理器通過對深度圖像的處理后發出相應的指令,通過該指令進一步控制應用程序。顯示器用于應用程序的顯示。
在本實施例的變通實施例中,存在一種計算機可讀存儲介質,其存儲有標定偏離深度相機的用戶體感交互的計算機程序,所述計算機程序被處理器執行以實現圖6、圖7所示方法。
在本實施例的變通實施例中,主體設備的存儲器用于存儲實現圖2、圖3、圖4和圖6、圖7所示方法的操作系統以及應用程序,所述處理器按照圖2、圖3、圖4和圖6、圖7所示的方法執行同步所述步驟,取兩種方法中最先輸出的指令;或者處理器將兩種方法所得到的指令進行校準后再輸出最終指令。
以上只是本實施例的部分變通實施例,其他的變通方式,在不改變本發明所述方法的基本思想的基礎上都應視為本發明所保護的范圍。
在大型超市或商場中,售賣電視的賣家需要向客戶展示一面墻上不同分辨率、不同配置的多臺電視的效果。為了展示效果更佳明顯,可以使不同配置的多臺電視展示相同的畫面,此時的深度相機可以擺放在與電視機所在墻面不同的方位上,采用本發明所述的兩種方法中任一一種,用一臺深度相機同時控制多臺電視,同時發送指令給多臺電視用于切換畫面。
這臺深度相機通過接口的方式與多臺電視相連,使用時,商家可以朝向電視所在墻面作出指令,由深度相機采集商家的深度圖像,采用如上所述的任一方法,對深度圖像進行處理得到所述指令并輸出,然后通過該指令進一步控制多臺電視的應用程序,實現對多臺電視的同時控制,與傳統的需要用遙控器單個調試相比更方便快捷。
在本實施例的變通實施例中,計算設備與深度相機之間還可以通過其他有線形式連接,也可以為wifi等無線連接。
在本實施例的變通實施例中,也可以通過設置不同的指令,有選擇的控制所述的多臺電視。
本實施例只是一種使用場景,但是不限于該使用場景,在本實施例的變通實施例中,還可以擴展到其他的使用場景,比如用一臺深度相機同時或分別控制多個游戲界面等均應屬于本發明保護的范圍。
以上內容是結合具體的優選實施方式對本發明所作的進一步詳細說明,不能認定本發明的具體實施只局限于這些說明。對于本發明所屬技術領域的技術人員來說,在不脫離本發明構思的前提下,還可以做出若干等同替代或明顯變型,而且性能或用途相同,都應當視為屬于本發明的保護范圍。