“你就是控制器。”(You are the controller.)如果你有在關(guān)注Kinect,相信已經(jīng)聽過這句給力的廣告詞了。從《Kinect Adventures!》中手腳并用堵漏水窟窿,到Zune播放界面中揮手換歌,Kinect開創(chuàng)了一種更加自然的娛樂交互方式。在這篇文章中,我將揭秘這款體感系統(tǒng)背后的秘密以及它如何讓開發(fā)者創(chuàng)造Kinect體驗(yàn)。而Kinect團(tuán)隊(duì)的項(xiàng)目經(jīng)理Arjun Dayal則將展示如何實(shí)現(xiàn)通過基于手勢的方式來控制Xbox Dashboard和Kinect Hub。首先,讓我們從指導(dǎo)Kinect研發(fā)的概念原理開始。
我們生活在一個(gè)模擬的世界
微軟 Microsoft Kinect for Xbox 360
傳統(tǒng)編程基于一系列的規(guī)則:原因和結(jié)果,非黑即白,非真即假。在為輸入輸出數(shù)目有限的簡單系統(tǒng)建模時(shí),這種方式工作得挺好。拿游戲《Halo》來說吧:按A鍵是讓士官長跳,前撥左搖桿讓他向前走,前撥右搖桿讓他向上看。不是A,就是B。可惜的是,我們生活的真實(shí)世界并不是如此數(shù)字化,而是模擬的。
在模擬世界中,并不是只有簡單的“是”和“否”,還有“也許是/否”;不僅有“對”和“錯(cuò)”,還有“對/錯(cuò)的可能性”。讓我們想象一下?lián)]手這一簡單動作的所有可能性:身體運(yùn)動的幅度,環(huán)境差異,衣服質(zhì)地的不同,文化差異造成的動作差異等等。你可能需要研究10的23次方這么多的可能性,顯然用傳統(tǒng)編程方式來解決這類問題是不現(xiàn)實(shí)的。
我們從一開始就知道必須采用一種全新的,接近于人腦工作的方式來解決這一問題。當(dāng)你遇到一個(gè)人的時(shí)候,你的大腦立即將注意力集中在他身上,并根據(jù)經(jīng)驗(yàn)辨識出他的身份。這一過程并不是通過數(shù)百層的決策樹來實(shí)現(xiàn),人腦就是知道。嬰兒很難區(qū)分出兩個(gè)人的不同,但我們通過多年的學(xué)習(xí)和訓(xùn)練可以在幾分之一秒內(nèi)做到。事實(shí)上,你也許還能蠻準(zhǔn)確地估摸出他們的年齡、性別、心情甚至個(gè)性。這也是讓我們成就為人類的原因之一。
Kinect以類似的方法被創(chuàng)造出來。它觀察身邊的世界,它注意觀察你的動作。即使Kinect從來沒見過你揮過手,也能很快地從它學(xué)習(xí)過的TB級數(shù)據(jù)中猜測出你所做動作的含義。
Kinect傳感器
微軟 Xbox 360 Kinect 手勢操作說明3D模型
Kinect骨架追蹤處理流程的核心是一個(gè)無論周圍環(huán)境的光照條件如何,都可以讓Kinect感知世界的CMOS紅外傳感器。該傳感器通過黑白光譜的方式來感知環(huán)境:純黑代表無窮遠(yuǎn),純白代表無窮近。黑白間的灰色地帶對應(yīng)物體到傳感器的物理距離。它收集視野范圍內(nèi)的每一點(diǎn),并形成一幅代表周圍環(huán)境的景深圖像。傳感器以每秒30幀的速度生成景深圖像流,實(shí)時(shí)3D地再現(xiàn)周圍環(huán)境。如果你玩過pin point impression 3D針模玩具可能更容易理解這一技術(shù)――將你的手(或者臉,如果你愿意的話)按壓在這種玩具上,就可以產(chǎn)生你身體某一部位的簡單3D模型。
尋找移動部位
Kinect需要做的下一件事是尋找圖像中較可能是人體的移動物體,就像人眼下意識地聚焦在移動物體上那樣。接下來,Kinect會對景深圖像進(jìn)行像素級評估,來辨別人體的不同部位。同時(shí),這一過程必須以優(yōu)化的預(yù)處理來縮短響應(yīng)時(shí)間。
微軟 Xbox 360 Kinect 從背景中提取人體運(yùn)動信息
新聞熱點(diǎn)
疑難解答