http://www.guokr.com/post/37297/
1.什么是Kinect?
Kinect 是 Xbox 360 外接的 3D體感攝影機(jī),如圖所示。它利用即時(shí)動(dòng)態(tài)捕捉、影像辨識(shí)、麥克風(fēng)輸入、語音辨識(shí)等功能,使玩家擺脫了傳統(tǒng)游戲手柄的束縛,使用自己的肢體來控制游戲。而任天堂Wii、索尼Play Station Move等同類產(chǎn)品,則需要玩家借助一個(gè)或者多個(gè)設(shè)備才能完成體感互動(dòng)。
作為Xbox 360的外設(shè),Kinect不需要使用任何道具即可完成整個(gè)動(dòng)作的識(shí)別和捕捉,它使用了由微軟劍橋研究院研發(fā)的基于深度圖像的人體骨骼追蹤算法,而深度圖像則是由PrimeSense公司提供的Range Camera技術(shù)產(chǎn)生的。此外,Kinect使用一個(gè)4-麥克陣列,可以識(shí)別3D立體語音。
Kinect的主要識(shí)別算法和軟件部分都是由微軟旗下的游戲工作室提供的。國內(nèi)外一些所謂的可見光或者紅外識(shí)別公司,大多是從該工作室獲取一些專利權(quán),其產(chǎn)品跟微軟的Kinect相比在精度上還有一定的差距。
2 Kinect的前世今生
2009年6月1日,Kinect在E3游戲展上首次亮相,它當(dāng)時(shí)的代號(hào)是Project Natal。這遵循了微軟以城市名作為開發(fā)代號(hào)的傳統(tǒng),Project Natal是由來自巴西的微軟董事Alex Kipman以巴西城市Natal命名的。Natal是拉丁語,英語中有“初生”之意,由此可見,微軟公司期望Kinect能夠給Xbox 360帶來新生。在E3 2009游戲展上,Kinect的骨骼捕捉技術(shù)已經(jīng)可以在30Hz的條件下同時(shí)捕捉4個(gè)人的48個(gè)骨骼動(dòng)作。
2010年3月25日,微軟宣布將在E3 2010期間召開的“初生計(jì)劃全球首秀”發(fā)布會(huì)上公布Kincet的發(fā)售日期。2010年6月13日晚,這個(gè)發(fā)布會(huì)在格蘭中心體育館舉行,會(huì)上微軟宣布將Project Natal正式命名為Kinect,這融合了kinetic(運(yùn)動(dòng))和connect(溝通)之意。同時(shí)微軟還宣布,Kinect將于2010年11月4日在北美正式發(fā)售。
Kinect在發(fā)布僅僅兩個(gè)月后,就售出了800多萬臺(tái),吉尼斯世界記錄稱其為有史以來銷售最快的電子消費(fèi)產(chǎn)品。但是,Kinect并未就此止步。2011年6月,Kinect for Windows SDK beta版發(fā)布,這標(biāo)志著Kinect開始向PC應(yīng)用領(lǐng)域進(jìn)軍。2011年11月4日,Kinect發(fā)布一周年的日子,世界各地的研究人員已經(jīng)將Kinect應(yīng)用到了醫(yī)療健康、教育、日常生活等各個(gè)領(lǐng)域,以探索Kinect技術(shù)的無限可能,這就是所謂的“Kinect效應(yīng)”。此外,Kinect動(dòng)作捕捉的機(jī)器學(xué)習(xí)技術(shù)還榮獲了2011年MacRobert Award工程創(chuàng)新大獎(jiǎng)。
微軟在Kinect for Xbox 360設(shè)備的基礎(chǔ)上優(yōu)化了硬件組件,并于2012年2月發(fā)布了Kinect for Windows硬件,其固件更適合PC使用。新的Kinect硬件縮短了USB連接線的長度,并支持“近距模式”(Near Mode)。與此同時(shí),微軟還發(fā)布了商業(yè)授權(quán)版的Kinect for Windows SDK 1.0,這意味著開發(fā)者可以使用Kinect for Windows硬件,在Windows平臺(tái)上開發(fā)支持手勢(shì)和語音識(shí)別的應(yīng)用程序,并向?qū)嶋H用戶銷售這些程序。
對(duì)于商業(yè)版的Kinect for Windows,微軟采用了純硬件的商業(yè)模式,向開發(fā)人員和軟件商免費(fèi)提供SDK開發(fā)包。這樣,所有的使用者都可以將精力投入到研發(fā)上,而不必?fù)?dān)心支付任何軟件的授權(quán)費(fèi)用。
2012年5月,微軟發(fā)布了Kinect for Windows SDK的1.5版本,該版本支持人臉以及坐姿半身模式的骨骼追蹤。借助這些新功能和特性,Kinect應(yīng)用程序的開發(fā)工作變得更加容易和靈活。2012年10月,微軟又發(fā)布了Kinect for Windows SDK的1.6版本,主要拓展了Kinect for Windows的開發(fā)平臺(tái),支持在虛擬機(jī)、Windows 8系統(tǒng)上進(jìn)行開發(fā),支持使用最新的Visual Studio 2012開發(fā)工具。此外,1.6版本還增加了獲取紅外圖像等功能,并在性能上做了很大提升。Kinect for Windows SDK可能會(huì)保持每年一到兩次的更新,在功能和性能上也會(huì)越來越強(qiáng)大。
3.Kinect有哪些版本
微軟Kinect體感技術(shù)的硬件產(chǎn)品包括:Kinect for Xbox、V1、V2,現(xiàn)在又出了Xbox One專用Kinect感應(yīng)器。這些硬件產(chǎn)品在功能和版本上有什么區(qū)別呢?我們來簡單解讀一下。。
大家都知道微軟的Xbox 360游戲機(jī)。我們可以用這臺(tái)游戲機(jī)玩手柄游戲,如果加上一臺(tái)Kinect for Xbox感應(yīng)器,就可以玩手柄游戲和體感游戲,但是不能用它編程(有的大神對(duì)其硬件或軟件加以調(diào)整,也能編程)。因?yàn)橹袊凇蛾P(guān)貿(mào)協(xié)定》中的規(guī)定,不能進(jìn)口游戲機(jī)產(chǎn)品,所以大家使用的Xbox 360游戲機(jī)估計(jì)可能也許貌似大概都是,呃,吧啦吧啦……
后面就不說它了。
微軟公司于2012年10月9日開始在中國銷售第一代Kinect for Windows感應(yīng)器,就是我們說的:V1。這個(gè)是我們拿到的第一臺(tái)能夠用于在計(jì)算機(jī)上編程的體感感應(yīng)器。它不是游戲機(jī),所以能在中國合法銷售。
然而現(xiàn)在,V1停產(chǎn)了。
- 第一代Kinect for Windows感應(yīng)器 V1:
微軟公司于2014年10月開始在中國銷售第二代Kinect for Windows感應(yīng)器,就是我們說的:V2。它比V1的功能有很大的提升。但是,它不能向下兼容,V1的程序無法應(yīng)用在V2上。
不過現(xiàn)在,V2升級(jí)了。
差不多與V2同時(shí)上市的,還有微軟在上海自貿(mào)區(qū)生產(chǎn)的游戲機(jī),就是Xbox One。這個(gè)在中國是合法銷售的。這個(gè)游戲機(jī)如果配一臺(tái)感應(yīng)器,也能玩體感游戲。這臺(tái)感應(yīng)器叫“Kinect for Xbox One”。
這個(gè)時(shí)候,微軟在中國已經(jīng)有了兩臺(tái)感應(yīng)器:用于體感游戲機(jī)的叫Kinect for Xbox One,用于PC編程的叫Kinect for Windows V2。
問題來了。V2只能用作開發(fā),Xbox One只能玩游戲。如果你又想玩游戲,又想搞編程開發(fā),就得買兩種感應(yīng)器Kinect for Xbox One和V2。
于是,微軟對(duì)這種復(fù)雜的硬件組合進(jìn)行了優(yōu)化,把這兩種感應(yīng)器精簡為一種,它的名字叫:“Xbox One專用Kinect感應(yīng)器”。為了節(jié)省篇幅,我們?cè)诤竺姘阉喎Q為“全能感應(yīng)器”。
這個(gè)“全能感應(yīng)器”的功能又強(qiáng)大了,它可以兼容Xbox游戲機(jī)。如果再加個(gè)小設(shè)備,就可以兼容PC機(jī)。這個(gè)小設(shè)備叫“適配器 Kinect Adapter”。
此舉得以在不改變零售價(jià)的前提下,把一大堆設(shè)備精簡為3個(gè)設(shè)備:
我們把Xbox One游戲機(jī)稱作“A”;把“全能感應(yīng)器”稱作“B”;把適配器稱作“C”:
A:只能玩手柄游戲
A+B:可以玩手柄游戲和體感游戲
B+C:不能玩游戲,只能做開發(fā)
A+B+C:又能玩手柄游戲和體感游戲,又能做開發(fā)
Bingo就是醬紫滴。
4. Kinect體感交互技術(shù)原理
初看Kinect,你或許只看到了3個(gè)像攝像頭的東西,那么Kinect究竟是怎樣實(shí)現(xiàn)體感交互的呢?Kinect for Windows SDK又有哪些基本功能呢?接下來將揭開Kinect在硬件、軟件方面的神秘面紗。
1.3.1 Kinect的結(jié)構(gòu)組成
下圖給出了Kinect的整體結(jié)構(gòu)。Kinect一共有3個(gè)攝像頭,中間一個(gè)是RGB攝像頭,用來獲取640×480的彩色圖像,每秒鐘最多獲取30幀圖像;兩邊的是兩個(gè)深度傳感器,左側(cè)的是紅外線發(fā)射器,右側(cè)的是紅外線接收器,用來檢測(cè)玩家的相對(duì)位置。Kinect的兩側(cè)是一組四元麥克風(fēng)陣列,用于聲源定位和語音識(shí)別;下方還有一個(gè)帶內(nèi)置馬達(dá)的底座,可以調(diào)整俯仰角。
1.3.2 Kinect for Windows SDK 簡介及功能介紹
2011年6月17日,微軟研究院發(fā)布的非商業(yè)授權(quán)版的Kinect for Windows SDK Beta吸引了眾多開發(fā)者的目光,不過該版本只允許用于研究、測(cè)試和實(shí)驗(yàn),不可以發(fā)布商業(yè)應(yīng)用。2012年,微軟分別在2月、5月和10月接連發(fā)布了商業(yè)授權(quán)版的Kinect for Windows SDK 1.0版本、1.5版本和1.6版本,此舉在明確了微軟盈利模式的同時(shí),使得開發(fā)者可以進(jìn)行軟件開發(fā),并銷售開發(fā)的應(yīng)用程序。
Kinect for Windows SDK目前支持Windows 7操作系統(tǒng)和Windows 8操作系統(tǒng),開發(fā)環(huán)境使用Visual Studio 2010 Express及以上版本,支持的開發(fā)語言包括C++、C#和VB.NET。
Kinect for Windows SDK主要包括以下幾個(gè)功能。
骨骼追蹤:對(duì)在Kinect視野范圍內(nèi)移動(dòng)的一個(gè)或兩個(gè)人進(jìn)行骨骼追蹤,可以追蹤到人體上的20個(gè)結(jié)點(diǎn)(一般是24個(gè)節(jié)點(diǎn))。此外,Kinect還支持更精確的人臉識(shí)別。
深度攝像頭:利用“光編碼”技術(shù),通過深度傳感器獲取到視野內(nèi)的環(huán)境三維位置信息。這種深度數(shù)據(jù)可以簡單地理解為一張利用特殊攝像頭獲取到的圖像,但是其每一個(gè)像素的數(shù)據(jù)不是普通彩色圖片的像素值,而是這個(gè)像素的位置距離Kinect傳感器的距離。由于這種技術(shù)是利用Kinect紅外發(fā)射器發(fā)出的紅外線對(duì)空間進(jìn)行編碼的,因此無論環(huán)境光線如何,測(cè)量結(jié)果都不會(huì)受到干擾。
音頻處理:與Microsoft Speech的語音識(shí)別API集成,使用一組具有消除噪音和回波的四元麥克風(fēng)陣列,能夠捕捉到聲源附近有效范圍之內(nèi)的各種信息。
1.4 Kinect for Windows應(yīng)用領(lǐng)域
目前,國外已經(jīng)出現(xiàn)了很多使用Kinect開發(fā)的精彩應(yīng)用,比如Kinect試衣鏡、Air Presenter演講軟件、Kinect光劍、Kinect街頭霸王等。很多創(chuàng)意都可以在MSDN Channel 9的Coding4fun欄目里看到。
在國內(nèi),Kinect for Windows SDK Beta發(fā)布伊始,微軟亞洲研究院便啟動(dòng)了“微軟校園菁英計(jì)劃”之Kinect Pioneer項(xiàng)目,在全國范圍內(nèi)動(dòng)員微軟學(xué)生技術(shù)俱樂部的同學(xué)們集思廣益,提交他們基于Kinect的新創(chuàng)意,并向優(yōu)秀的創(chuàng)意團(tuán)隊(duì)提供Kinect設(shè)備和技術(shù)支持。僅一個(gè)多月的開發(fā)時(shí)間,多個(gè)優(yōu)秀創(chuàng)意團(tuán)隊(duì)便成功提交了Kinect創(chuàng)意項(xiàng)目原型,其中包括使用手勢(shì)進(jìn)行變臉的3D臉譜虛擬平臺(tái)、Kinect教學(xué)助手、基于Kinect的網(wǎng)上試衣間等。在隨后的2012微軟精英大挑戰(zhàn)Kinect主題上,來自全國30所高校的100余支隊(duì)伍也積極參與到Kinect for Windows的開發(fā)當(dāng)中,這使得Kinect在中國大學(xué)生中得到了全面的推廣。
下面簡單介紹一下來自西安電子科技大學(xué)團(tuán)隊(duì)的3D臉譜虛擬平臺(tái)。此創(chuàng)意將京劇這門傳統(tǒng)藝術(shù)和新穎的Kinect技術(shù)結(jié)合到了一起,通過Kinect搭建了一個(gè)可以讓京劇迷享受虛擬演唱體驗(yàn)的平臺(tái):一個(gè)提供臉譜、服裝和場(chǎng)景的華麗舞臺(tái)。憑借著Kinect的人體識(shí)別和傳感技術(shù),用戶可以直接跳過繁復(fù)的化妝過程,用手勢(shì)來選擇自己喜愛的角色臉譜,生、旦、凈、末、丑,一應(yīng)俱全,選擇完畢后,就可以對(duì)著屏幕表演喜愛的曲目并錄像了,如圖1-3所示。當(dāng)與其他戲迷朋友分享視頻時(shí),他們可以欣賞到惟妙惟肖的場(chǎng)景和表演。這樣的方式不僅能使老京劇迷們的交流更加便捷,還能讓年輕人通過更炫的途徑去了解這門生動(dòng)的國粹。
2011年12月2日,由微軟亞洲研究院舉辦的Kinect for Windows研討會(huì)在北京召開,吸引了來自眾多行業(yè)和研究領(lǐng)域的專家學(xué)者以及全國各地的大學(xué)老師和學(xué)生。研討會(huì)就Kinect的體感交互技術(shù)及其應(yīng)用領(lǐng)域進(jìn)行了交流和討論,并且展示了國內(nèi)基于Kinect for Windows SDK在各個(gè)應(yīng)用領(lǐng)域的研發(fā)成果。下面選擇一些有代表性的項(xiàng)目進(jìn)行簡要介紹。
基于Kinect的手語翻譯系統(tǒng)。手語翻譯系統(tǒng)旨在解決聾啞人與正常人的溝通問題,利用Kinect對(duì)肢體動(dòng)作的實(shí)時(shí)捕捉,對(duì)特定的手語動(dòng)作進(jìn)行識(shí)別,最終翻譯成文字,這樣不懂手語的人也可以跟聾啞人正常交流了。目前,該項(xiàng)目的研究已經(jīng)取得了重大的進(jìn)展,我們相信結(jié)合Kinect強(qiáng)大的體感交互技術(shù),在不遠(yuǎn)的將來就會(huì)看到Kinect手語翻譯系統(tǒng)成為聾啞人的得力助手。
空中手寫。空中手寫軟件巧妙地利用了Kinect對(duì)手部結(jié)點(diǎn)的實(shí)時(shí)追蹤,用戶只需對(duì)著Kinect在空氣中比劃,便能寫出相應(yīng)的漢字,并輸入到計(jì)算機(jī)中。該項(xiàng)目為未來的手寫輸入提供了新的思路。
虛擬試衣系統(tǒng)。虛擬試衣系統(tǒng)實(shí)現(xiàn)了不需用戶真正穿上衣服便可看到衣服上身效果的虛擬試衣體驗(yàn)。用戶只需站在屏幕前,選擇虛擬試衣系統(tǒng)中存儲(chǔ)的品牌衣服圖片,系統(tǒng)會(huì)根據(jù)Kinect獲取到的骨架數(shù)據(jù)自適應(yīng)地穿在用戶在屏幕中的影像上,達(dá)到輕輕松松試衣的效果。這樣不僅使得試衣變得更加便捷、有趣,還能有效減少試衣成本。
Kinect版水果忍者。Kinect版水果忍者也是利用了Kinect的骨骼追蹤技術(shù),將觸屏版的水果忍者游戲移植到Kinect的體感控制上。Kinect追蹤玩家雙手的移動(dòng)軌跡,玩家只需對(duì)著屏幕劃動(dòng)雙手便可切下水果,儼然真實(shí)版忍者,在娛樂的同時(shí)還能鍛煉身體。
Xbox 360 Kinect Teardown
1.5 小結(jié)
Kinect是一種廉價(jià)的動(dòng)作捕捉設(shè)備,適用于對(duì)動(dòng)作捕捉精度要求非常嚴(yán)格的領(lǐng)域,這也是其未來發(fā)展的方向。另外,現(xiàn)在智能手機(jī)和平板電腦的發(fā)展非常迅猛,雖然現(xiàn)在看它們和PC會(huì)怎樣發(fā)展,還沒有定論,但是受此趨勢(shì)影響,Kinect以后絕對(duì)會(huì)趨于小型化,可以斷定這是其發(fā)展的必經(jīng)之路。大家都知道,專業(yè)領(lǐng)域的產(chǎn)品用量通常不會(huì)很大,但是這個(gè)領(lǐng)域的技術(shù)更新相對(duì)較快,隨著技術(shù)的完善,最終專業(yè)領(lǐng)域的技術(shù)一定會(huì)逐漸應(yīng)用到消費(fèi)者領(lǐng)域。互聯(lián)網(wǎng)的發(fā)展歷史就是很好的明證,其他許多成功普及的技術(shù)也都遵循著這樣的發(fā)展軌跡。