Kinect身份識別:技術與經驗

作者: 微軟亞洲研究院  發布時間: 2011-06-24 13:38  閱讀: 2326 次  推薦: 0   原文鏈接   [收藏]  
摘要:和任何其它系統一樣,Kinect的偉大絕不僅僅因為其內部的一兩個部件,而是在于其作為一個整體設計,對多種技術、工藝、方法和想法的融合。它需要全球各地研究人員、開發人員和產品經理的通力合作,才能讓Kinect無限接近于研究人員的那個夢想:開發完全不用控制器的游戲系統。

  This is a Chinese translation of an article by Tommer Leyvand, Casey Meekhof, Yi-Chen Wei, Jian Sun, and Baining Guo. The original article is at the IEEE Computer Society.

  Kinect身份識別是微軟Xbox 360的Kinect體感設備的重要組成部分之一,它將多種技術和精心設計的用戶交互整合在一起,旨在實現玩家身份識別與跟蹤的目標。

  作者:微軟公司Tommer Leyvand、Casey Meekhof、危夷晨 、孫劍和郭百寧

  很多年來,不用控制器的沉浸式游戲(controller-less immersion)一直是游戲設計師和開發人員心目中的至高境界。其中主要的挑戰之一就是如何無縫地跟蹤和成功地識別游戲中某個人的身份,以保證用戶界面的順暢和自然。

  到目前為止,還沒有完美的解決方案。然而,微軟Xbox 360的Kinect體感設備背后蘊含的身份識別技術以RGB攝像頭、深度感應(depth-sensing)和精心設計的用戶交互為基礎,綜合運用多種技術,提供了強化的游戲和娛樂體驗。

  身份跟蹤技術(IDENTITY TRACKING TECHNIQUES)

  Kinect系統從兩個方面實現身份跟蹤:

  • 生物識別登錄(Biometric Sign-in),系統經過一段時間,了解特定玩家的外形,并且當此人出現在視野中時自動登錄;

  • 會話 (Session),系統會在特定游戲會話過程中記住誰是誰,例如,玩家1與玩家2的對抗,以及他們各自的得分。

  為了最大限度地提高身份跟蹤系統開發的成功率,Kinect的研發人員們首先試驗了一系列獨立的識別技術,并選擇其中的一些成為完整的組合。每一種選中的技術都需要其功能十分強大(至少適用于短期內的變化),不會嚴重占用CPU和內存資源,并盡可能彼此獨立。

  最后選定的一組技術由三個部分組成:人臉識別(face recognition)、服裝色彩跟蹤(clothing color tracking)和身高估測(height estimation)。

  我們可以將其中最重要的面部識別細分為三個子任務:

  • 確定面部的位置和大小;

  • 根據“正常”坐標,對面部進行矯正,也就是頭部豎直向上,面對攝像頭;

  • 提取面部特征,以捕捉微觀結構。

  將服裝顏色和玩家身高信息融入面部識別技術中使得多種特征得以融合,最終實現身份識別。

  在游戲中,如果游戲要求系統記住一個新玩家,系統就會為每一個身份不明的骨架特征——臉部、服裝和身高——采集“印記(prints)”或稱“簽名(signatures)”,其中每一項都會提供一個“肯定”回應(例如襯衫顏色與印記相匹配),或“否定”回應(例如存儲的襯衫顏色是藍色,而身份不明者的襯衫顏色為綠色),或“無法確定”(兩者特征太接近而無法確定)。

  當游戲試圖確定一個新的骨骼結構是否為已知時,系統會查詢全部現有的備選人,并生成一個“真值表(truth table)”,對每個特點提供建議。在表1所示的范例中,當對臉特征進行比較時,#1、#3、#4為候選人。然而,由于#1和#3都是肯定的,他們被視為未知身份。顏色對比后,消除了#3和#4選項,因為回應為否定。雖然#1被作為一個被選項而留下,但這一進程將繼續,因為目前仍未得到肯定回應。最后,在對比身高時,31得到了一個肯定的回應。因為他是候選人集合中唯一的肯定回應,身份認定就取得了成功。 

  表1:在游戲中識別新玩家所使用的真值表

特征

已注冊身份#1

已注冊身份#2

已注冊身份#3

已注冊身份#4

臉部

肯定

否定

肯定

未知

服裝顏色

未知

未知

否定

否定

身高

肯定

肯定

未知

未知

  • 必須至少有一個肯定的回應,而且沒有任何否定回應(除非有非常強烈的臉部識別匹配);

  • 先是臉部識別,其次是服裝顏色,最后是身高,只能有一名候選人為肯定回應,對于存在多個匹配項的情況,系統推斷這些匹配可信度不高,從而認為結果為未知。

  然后,系統對真值表的結果加以處理,產生最終結果。有趣的是,身高等一些特征能夠很好地幫助排除明顯的不匹配項,但如果單憑這些特征,并不能足夠準確地接受特定的匹配項:因為很多人的身高都相同。所以,僅通過身高是不足以識別一個人的。

  隨時間推移的變化(CHANGES OVER TIME)

  當然,識別技術還必須能夠適應玩家外形隨時間推移而發生的變化。會話身份的生命周期較短,而且在游戲過程中玩家不太可能改變自己的服裝、重新整理發型、長出胡子或決定更換隱形眼鏡或框架眼鏡;但是,他們確實會改變他們的面部表情、擺出各種不同姿勢,或者在游戲期間改變照明條件。生物識別身份更具有挑戰性,因為在不同的游戲會話期間,玩家外形幾乎肯定會出現變化(玩家可能會穿不同的衣服,也許有人在游戲間隙去理發),期間的照明條件也會發生變化(例如在下午或晚上玩游戲)。

  要解決這些問題,系統將印記與盡可能多的環境細節進行關聯,例如它們是在哪里捕捉到的,當時的照明情況如何等。然后,系統將這些納入考量,并將新玩家與一些已知玩家進行比對。對于生物識別登錄的身份,Kinect身份只依賴于面部識別。它會要求玩家在游戲空間內走動,以捕捉各種本地的環境細節。如果玩家們顯著改變了他們的穿著或現場光線,則需要重新運用該工具來捕獲更多數據。

  為了記住一個人,并試圖識別一副全新的骨骼結構,系統任務之一就是捕捉一系列的畫面,以獲得更多可能的變化,通常來說,只要條件合適,最好是靜止畫面,可以達到最優識別。例如,最好跳過哪些玩家沒有面對傳感器或者臉部被遮擋的畫面。Kinect也會給玩家反饋和機會,讓他們修正拍攝條件,從而大大提高身份識別的速度和精度。

  當然,玩家可能會在同一賽局繼續的過程中脫掉了一層服裝,如果內層服裝的顏色與系統此前為該玩家所匹配的顏色不同,就會產生錯誤的否定回應。如果系統始終拒絕接受服裝顏色不匹配的判斷,那么玩家在同一賽局中脫去一件衣服時將永遠會產生錯誤的否定回應。但是,如果從不拒絕這一情形又會放棄很多有價值的信息。對于Kinect而言,依賴其他特征進行身份識別是如此重要,這也是另一個原因:如果臉部和身高都提供一個肯定回應,那么服裝顏色不匹配就將被忽略(僅在某些情況下)。

  Kinect如何區分雙胞胎呢?如果真值表知道自己正在面對兩個長相一模一樣的人,而不會因為只認識其中一個而錯誤地匹配了另外一個,那么它的成功率就會更高。如果Kinect同時看到了他們,或者他們有兩個單獨的Kinect身份特征,那么系統正確區分他們的可能性就更高。在同一賽局中,這樣的可能性會進一步提升,因為服裝上的差異可以幫助對他們加以區分。但是要記住,如果即便我們自己有時候也很難區分兩個雙胞胎,Kinect更是如此!

  挑戰(CHALLENGES)

  Kinect身份識別功能在開發過程中所面臨的最大挑戰之一就是準確性,因為對代碼或算法進行調整時,會同時涉及到度量和回歸。準確性非常重要,因為在開發環境中環境和個人的條件并不能代表實際的用戶。

  Kinect開發人員主要側重于度量精度的兩方面要求:數據應該代表著真實世界的環境,而且他們需要大量此類數據。對于第二項要求,開發人員使用了不同的測試程序——比如數據捕獲工具,用于標記場地實況的工具,以及用于訓練算法的測試工具——以收集盡可能多的數據:讓事情變得更具挑戰性的問題在于,一些直接影響到圖像幀(攝像頭的曝光或變焦設置)的變化讓老舊數據集失去效用,需要收集新情境下的新數據。

  開發識別技術是一項艱巨的任務,而要圍繞它實現良好的用戶體驗,即使稱不上更具挑戰性,但至少也是旗鼓相當的。我們所面對的系統無法確定自己是否正確,那你會怎樣設計用戶體驗呢?最好的辦法就是假定身份并不存在,把“一切應該如何運行”設計好,然后再尋找那些可以利用身份識別技術加速其運行的捷徑。

  “wow”(令人驚喜)的因素對Kinect而言非常重要,所以開發人員們仔細考慮了如何處理肯定結果(系統認為自己已經完成目標骨架與已知用戶的匹配)、否定結果(系統無法識別此人)和失敗操作(系統無法完成)的選項。由于肯定結果具有最大的“令人驚喜”的潛力,開發人員因此投入了最大的精力,并使用了“信任但需核查(trust but verify)”的方式:系統并不要求用戶確認一個肯定結果,而是假定結果正確,并直接顯示給用戶,而玩家可以選擇加以糾正。

  為了減少由于信任肯定結果而帶來的損失,Kinect開發人員對系統進行了調整,以盡可能減少錯誤的肯定回應。在出現錯誤的情況下,系統允許玩家糾正他們的身份,或者運行Kinect身份識別程序,以降低將來錯誤識別的概率。如果一個玩家想以另一個玩家的身份玩游戲,他有兩種選擇:

  • 接管控制:一名玩家直接介入,并對當前情境實施掌控。此時,新玩家不需要擁有一個已識別的身份,而后續發生的任何情況都歸因于處于活動狀態的配置文件;

  • 繼承一個身份:新玩家通過對系統的指示,使得自己被識別為已有的玩家,從而使新玩家繼承了他所選定的身份。

  這些挑戰包括決定何時使用哪一種方法,告知玩家目前正在使用的方法——關鍵在于明確且一致的反饋。常見的工作模式下,在游戲開始前會確定玩家身份,審閱處于活動狀態的特征性文件,并允許玩家介入操作,而不改變他們的身份。Kinect開發過程中的一項重要決定是,將特征性文件選擇視為一項身份操作,這意味著只要用戶在登錄對話中選擇了一個特征性文件,那么在當前賽局中玩家身份就與這個特征文件相關聯了。

  和任何其它系統一樣,Kinect的偉大絕不僅僅因為其內部的一兩個部件,而是在于其作為一個整體設計,對多種技術、工藝、方法和想法的融合。它需要全球各地研究人員、開發人員和產品經理的通力合作,才能讓Kinect無限接近于研究人員的那個夢想:開發完全不用控制器的游戲系統(developing a fully controller-free gaming system)。

  致謝(Acknowledgments)

  Kinect身份識別技術由Xbox Kinect身份識別團隊所開發,該團隊成員包括:

  • Tommer Leyvand,自然用戶界面軟件平臺(NUI Platform)和Xbox平臺研發(Xbox Platform R&D)的主管研究員。

  • Casey Meekhof,自然用戶界面軟件平臺(NUI Platform)和Xbox平臺研發(Xbox Platform R&D)的高級項目經理。

  • 危夷晨,微軟亞洲研究院視覺計算組副研究員。

  • 孫劍,微軟亞洲研究院視覺計算組主任研究員。

  • 郭百寧,微軟亞洲研究院常務副院長。

  最后,特別感謝Matt Callcut在本文寫作過程中給予的大力支持。

0
0
 
標簽:Kinect
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()