] 信息獲取模塊41,用于獲取目標對象的位置信息;
[0075] 信息解析模塊42,用于解析所述目標對象的位置信息,獲得所述目標對象的狀態(tài) 信息;
[0076] 狀態(tài)顯示模塊43,用于根據(jù)所述目標對象的狀態(tài)信息,控制對應(yīng)的UI反饋控件進 行顯示。
[0077] 為了更好的反映目標對象所在的位置,本發(fā)明在圖像捕獲裝置所在位置建立一三 維坐標系,本發(fā)明所述位置信息為所述目標對象在該三維坐標系中的點信息(X,y,z)。
[0078] 本發(fā)明對捕獲的圖像進行識別亦采用已有的圖像識別算法來對圖像中的目標對 象進行識別獲取其三維位置信息,比如采用現(xiàn)有的kinect以及PrimeSense方法,獲取目標 對象在三維坐標系中的點信息,故在此不再贅述。
[0079] 具體地,該目標對象為手部、頭部或者其他肢體,甚至某特定操作裝置,如游戲桿、 感應(yīng)手套等。
[0080] 具體地,本發(fā)明信息獲取模塊41按照預設(shè)周期獲取目標對象的位置信息,所述預 設(shè)周期可以設(shè)置為2ms。所述預設(shè)周期設(shè)置的越短,則本發(fā)明位置信息識別的精度越高,但 相應(yīng)的所占用的智能電器設(shè)備的內(nèi)存資源和CPU資源越多。該預設(shè)周期由本領(lǐng)域技術(shù)人員 根據(jù)需求進行設(shè)置。
[0081] 本發(fā)明在具體實現(xiàn)中,信息獲取模塊41通常通過一隊列來保存所述位置信息。 艮P,將接收的位置信息按照接收的時間順序保存到該隊列中。優(yōu)選地,該隊列可采用固定長 度的隊列,該隊列的長度可由本領(lǐng)域普通技術(shù)人員根據(jù)對目標對象進行識別的時效進行設(shè) 定。當隊列存滿位置信息時,清空該隊列,重新保存獲取的位置信息。這樣,既可以避免保 存過多的位置信息占用內(nèi)存資源,也避免起始位置信息超出對目標對象進行識別的時效。
[0082] 本發(fā)明的一種實現(xiàn)中,為了避免目標對象的輕微抖動影響對目標對象所產(chǎn)生操作 事件的識別,參看圖5,所述信息解析模塊42包括:
[0083] 比較單元421,用于比較隊列中當前位置信息與起始位置信息的差值。判斷目標對 象在水平平面上的運動情況,所述目標對象的當前位置信息的X坐標和y坐標與起始位置 信息的X坐標和y坐標的差值在預設(shè)的第一閾值范圍內(nèi)。
[0084] 計算單元422,用于如當前位置信息與起始位置信息的X、Y坐標的差值在預設(shè)的 第一閾值范圍內(nèi),則解析Z坐標,根據(jù)所述Z坐標的差值計算出的深度值作為所述目標對象 的狀態(tài)信息。
[0085] 具體地,所述目標對象的深度值是通過Z軸方向上坐標數(shù)據(jù)進行算法矯正計算獲 得的,所述矯正算法采用最小二乘矯正等已有算法,故在此不再贅述。
[0086] 為了避免獲得過多的無意義狀態(tài)信息,本發(fā)明亦可根據(jù)解析的目標對象的位置信 息,判斷目標對象的操作狀態(tài),根據(jù)操作狀態(tài),確定是否需要獲得所述目標對象的狀態(tài)信 肩、。
[0087] 在本發(fā)明一實施例中,如當前位置信息的z坐標小于隊列中所保存的起始位置信 息的z坐標的差值超過預設(shè)的第二閾值,則識別所述目標對象產(chǎn)生向前操作狀態(tài)。如所述 操作狀態(tài)為向前操作狀態(tài),解析所述目標對象的Z坐標信息,獲得所述目標對象的深度值。 [0088] 在本發(fā)明另一實施例中,如識別所述目標對象產(chǎn)生向前操作狀態(tài)后,獲取的位置 信息的Z坐標繼續(xù)減小,且超過預設(shè)的第三閾值,則識別所述目標對象產(chǎn)生按下(press)操 作狀態(tài)。其中,所述第三閾值大于所述第二閾值。如所述操作狀態(tài)為按下操作狀態(tài),解析所 述目標對象的z坐標信息,獲得所述目標對象的深度值。
[0089] 在本發(fā)明再一實施例中,如識別所述目標對象產(chǎn)生按下操作狀態(tài)后,如當前位置 信息的z坐標大于產(chǎn)生按下操作狀態(tài)時的位置信息的z坐標,且兩者的差值超過預設(shè)的第 四閾值,則識別所述目標對象產(chǎn)生回收(pull)操作狀態(tài)。解析所述目標對象的z坐標信息, 獲得所述目標對象的深度值。
[0090] 具體地,參看圖6,所述狀態(tài)顯示模塊43包括:
[0091] 獲取單元431,用于根據(jù)預設(shè)的深度值與UI反饋控件的顯示信息的對應(yīng)關(guān)系,獲 得所述目標對象的深度值對應(yīng)的UI反饋控件的顯示信息;
[0092] 控制單元432,用于控制所述所述UI反饋控件根據(jù)所述顯示信息進行顯示操作。
[0093] 在本發(fā)明一具體實現(xiàn)中,所述獲取單元431中的所述深度值與UI反饋控件的顯示 信息的對應(yīng)關(guān)系為深度值與所述UI反饋控件的大小的對應(yīng)關(guān)系。
[0094] 具體地,本發(fā)明對應(yīng)關(guān)系通常以表的形式保存。通常深度值低于第五閾值時,對應(yīng) 的UI反饋控件大小為原圖大小,其他UI反饋控件的大小信息為原圖的顯示倍數(shù)。所述第 五閾值為本領(lǐng)域技術(shù)人員根據(jù)需要進行設(shè)定,通常設(shè)定為目標對象產(chǎn)生按下操作事件時刻 的深度值的1/4。所述目標對象的深度值與所述UI反饋控件的大小的對應(yīng)關(guān)系如表一所 示,所述目標對象產(chǎn)生按下操作事件時刻所對應(yīng)的目標對象的深度值為8cm,所述第五閾值 為 2cm〇
[0095] 表一
[0096]
[0097] 當然,所述目標對象的深度值與所述UI反饋控件的大小的對應(yīng)關(guān)系亦可如表二 所示。
[0098] 表二
[0099]
[0100] 通過查詢表一或者表二,獲得所述目標對象的深度值對應(yīng)的UI反饋控件的顯示 信息,即UI反饋控件原圖的顯示倍數(shù)。根據(jù)獲得的所述UI反饋控件原圖的顯示倍數(shù),令所 述UI反饋控件按照其顯示倍數(shù)進行顯示。
[0101] 在本發(fā)明另一具體實現(xiàn)中,控制所述目標對象采用前推的方式觸發(fā)UI反饋控件 的點擊(click)操作事件,當識別出依次產(chǎn)生向前(push)操作狀態(tài)、按下(press)操作狀 態(tài)、回收(pull)操作狀態(tài)后即可以識別成為一點擊操作事件。所述目標對象產(chǎn)生向前操作 事件時刻所對應(yīng)的目標對象的深度值為2cm,產(chǎn)生按下操作事件時刻所對應(yīng)的目標對象的 深度值為8cm。
[0102] 當目標對象向前推,目標對象的深度值逐漸增大,本發(fā)明識別出所述目標對象的 操作狀態(tài)為向前操作狀態(tài),即目標對象的深度值達到2cm。查詢表一或者表二,根據(jù)所述目 標對象的深度值逐漸增大,令與控制命令對應(yīng)的UI反饋控件逐漸變大或者變小。當識別出 所述目標對象的操作狀態(tài)為按下操作狀態(tài),即目標對象的深度值達到8cm,則查詢表一或者 表二,令與控制命令對應(yīng)的UI反饋控件放大為原圖的4倍或者縮小為原圖的1/8。此后即 便目標對象繼續(xù)前推,即所述目標對象的深度值再減小,也無需調(diào)整所述UI反饋控件的大 小。當識別出所述目標對象的操作狀態(tài)為回收操作狀態(tài),獲得的所述目標對象的深度值逐 漸減小,即從8cm減小到2cm及以上,查詢表一或者表二,令與控制命令對應(yīng)的UI反饋控件 逐漸變大或者變小。
[0103] 在本發(fā)明再一具體實現(xiàn)中,所述獲取單元431中的所述深度值與UI反饋控件的顯 示信息的對應(yīng)關(guān)系為深度值與所述UI反饋控件的不同顯示圖片的對應(yīng)關(guān)系。
[0104] 具體地,本發(fā)明對應(yīng)關(guān)系通常以表的形式保存。通常深度值低于第五閾值時,對應(yīng) 的UI反饋控件為顯示圖片一,所述第五閾值為本領(lǐng)域技術(shù)人員根據(jù)需要進行設(shè)定,通常設(shè) 定為目標對象產(chǎn)生按下操作事件時刻的深度值的1/4。所述目標對象的深度值與所述UI反 饋控件的不同顯示圖片的對應(yīng)關(guān)系如表三所示,所述目標對象產(chǎn)生按下操作事件時刻所對 應(yīng)的目標對象的深度值為8cm,所述第五閾值為2cm。
[0105] 表三
[0108] 通過查詢表三,獲得所述目標對象的深度值對應(yīng)的UI反饋控件的顯示圖片,令所 述UI反饋控件按照其顯示圖片進行顯示。
[0109] 在本發(fā)明又一具體實現(xiàn)中,僅在深度值等于或者低于第五閾值時,才觸發(fā)所述對 應(yīng)關(guān)系表進行查表操作。所述第五閾值為本領(lǐng)域技術(shù)人員根據(jù)需要進行