微軟版 Kinect SDK Beta 版推出!


image微軟 XBox 360 的 Kinect(介紹)目前在各方面的應用都算是非常地熱門;不過由於微軟本身一開始只將他設定成 XBox 360 上的裝置,所以在其他環境(尤其是 PC)上要使用他,就得靠各式各樣的替代方案了~而 Heresy 之前也針對 Kinect 技術製造商 PrimeSense 所推動的 OpenNI,做了一些程式開發上的介紹(介紹文)。

不過,之前二月的時候,微軟也已經放話過,會在春季推出 Winodws 上的 Kinect SDK 了(當時的紀錄)~大家等了很久,現在微軟終於放出第一個 Beta 版的 SDK 了!有需要的人可以到 Microsoft Research 的網頁上去下載了!他的網址是:http://research.microsoft.com/kinectsdk

目前 Kinect SDK 僅能用在 Winodws 7 的電腦上、不能在其他版本的 Windows 上執行;而微軟有同時提供 32 位元和 64 位元的版本,裡面包含了:

  • Kinect 在 Windows 7 上所需的驅動程式(包含四個裝置:Microsoft Kinect Audio Array Control、Microsoft Kinect Camera、Microsoft Kinect Device、Kinect USB Audio)
  • Application programming interfaces (APIs)、裝置介面(device interface),以及技術文件
  • 範例原始碼

不過也要注意,由於目前各種平台的 Kinect 驅動程式都不相同,所以如果使用微軟官方的 SDK 的話,建議先移除其他版本的驅動程式,以確保微軟官方的驅動程式能正確地安裝;當然,像是 OpenNI 這類的平台也就無法使用了~

另外,雖然微軟有提供 32 位元和 64 位元兩種版本,但是主要是針對驅動程式的部分;目前的 Kinect SDK 應該僅只有支援建置 x86(win32)、也就是 32 位元的程式,並沒有辦法編譯出 64 位元的 Kinect 程式。同時,這個版本也只能用在非商業用途,如果想寫個要賣錢的程式,就得等之後的版本看看微軟要怎麼收費了~

而在系統需求方面,硬體上需要:

  • Kinect(當然,要能接上電腦,所以需要他的轉接線)
  • 雙核心 2.66-GHz 或更快的處理器
  • 支援 DirectX 9.0c、相容 Windows 7 的顯示卡
  • 2GB 記憶體(建議 4GB)

軟體的部分,則需要:

他目前提供了那些功能呢?透過 Kinect SDK,開發者可以在 Visual Studio 2010 裡使用 C++、C# 或 VisualBasic 進行開發(範例程式都是 C++ 或 C#),並且可以:

  • 讀取 Kinect 感應器的原始資料(raw data streams、包括了深度感應器、彩色攝影機以及四個單元的麥克風陣列)
  • 追蹤一或兩個人的人體骨架,並根據骨架資料進行分析
  • 進階聲音處理,包含了聲音雜訊的抑制、回音的消除以及聲音來源方向的判斷,同時也可以整合 Microsoft Speech 來做語音辨識。

目前 Heresy 自己還沒真的下去寫,不過根據《Kinect SDK Reference》和《Programming Guide》(PDF)的內容來看的話,在 SDK 的內部,他是把功能分為 NUI APIAudio API 兩個部分。前者主要就是視訊(深度、彩色影像)、骨架以及 Kinect 角度控制(Kinect 上是有馬達的)的部分;而後者,則就是聲音的部分了~

下面的圖則是《Programming Guide》內的 Kinect SDK 的架構圖:

image

而如果把微軟的 Microsoft SDK 拿來和 OpenNI 的 NITE 相比呢?

image首先,Kinect SDK 的骨架分析能分析出更多的骨架;相較於 NITE 能抓出 15 個關節點(參考),Kinect SDK 能抓到 20 個關節,在手腕、腳踝的部分,也都能獨立抓出來(準確度就不知道了 XD)。

再來,Kinect SDK 的骨架辨識與追蹤是不需要像 OpenNI 一樣要先擺出校正姿勢的!而且辨識的速度感覺還相當地快~當然,OpenNI + NITE 在某種程度上也可以做到不用校正姿勢的骨架追蹤中(參考),但是相較之下,Kinect SDK 直接使用這樣的方法,算是更方便的了。

以這兩點來說,Microsoft 的 Kinect SDK 是比較強大的;不過相對的,Kinect SDK 的骨架關節應該都只有位置的資訊,而不像 OpenNI 的骨架關節,除了位置以外,還同時提供方向和可靠度的資訊,可以做額外的處理。以這方面來說,應該還是 OpenNI 做得比較好。

另外,目前 Kinect SDK 似乎只能追蹤一或兩個人的完整骨架(原文為:The skeletal tracking engine provides full skeletal tracking for one or two players in the sensor’s field of view.);所以在人數方面,應該是 OpenNI 勝出的~(不過在 Kinect 視野裡面能塞多少人又是另一回事了)

而在聲音的部分,Kinect 本身內建了四個單元的麥克風陣列,理論上應該可以提供相當好的效果,不過很可惜、OpenNI 目前在聲音的部分,應該算是沒有實際的功用的。

相較與此,Kinect SDK 則是有提供相對完整的聲音處理功能,利用這組麥克風陣列,除了可以做到更好的雜音抑制回音消除外,也可以透過「Beamforming」(參考維基百科)來判斷聲音的來源方向;而如果搭配 Microsoft Speech 的話,也可以做到語音辨識的功能~功能算是相當地強大了!

整體來看,Microsoft Kinect SDK 目前所提供的功能算是相當強大的!在骨架分析的部分基本上和 OpenNI 應該算是互有勝負,但是在聲音處理的部分,就真的是完全勝利了~另外對於 OpenNI 不能控制到的 Kinect 馬達,Kinect SDK 也可以順利地去讀取、設定 Kinect 攝影機角度的參數

不過和 OpenNI 相比,Kinect SDK 在某些方面卻還是沒有 OpenNI 來的多功能,例如 OpenNI 有提供的手勢辨識、姿勢偵測(雖然 OpenNI + NITE 提供的也不多)、前景分析、錄製/重播…等等。再加上 OpenNI 有跨平台的特性、不像 Kinect SDK 被綁在 Windows 7 上,所以基本上,OpenNI 應該還是有它存活的空間吧?


附註:Kinect SDK 的 USB 似乎會挑 USB Port,如果確定驅動程式有安裝正確、但是執行官方的範例程式時還是出現「NuiInitialize failed」或是找不到 Kinect 之類的錯誤的話,請試著把 Kinect 接到另一個 USB Port 再試試看。

關於 Heresy
https://kheresy.wordpress.com

37 Responses to 微軟版 Kinect SDK Beta 版推出!

  1. 通告: Kinect for Windows SDK v2 基本介紹 | Heresy's Space

  2. 通告: 2013 OpenNI 簡介 | Heresy's Space

  3. 通告: 針對微軟正式版 Kinect for Windows SDK 的 kinect-mssdk-openni-bridge « Heresy's Space

  4. 通告: Kinect for Windows 五月下旬即將在台上市 « Heresy's Space

  5. 通告: Kinect for Windows SDK Beta 2 推出! « Heresy's Space

  6. 敌门 說道:

    請問MIKUMIKUDANCE7.30是否支持!?OAO
    好東西啊!!GJ!!

    喜歡

    • Heresy 說道:

      至少 MMD 官方沒支援。
      請使用 OpenNI。

      喜歡

      • 敵門 說道:

        吾輩在一個MMD製作者的博客里看到了MIKUMIKUDANCE支持的插件出來了
        mikudan.blog120.fc2.com/blog-entry-272.html
        YOUTUBE還有一些測試視頻,
        因為家裡磁盤壓力而不能裝上Visual Studio 2010||||
        所以也不能對其測試了T-T
        希望KINCET SDK早日更新,不再依赖Visual Studio 2010支持吧。。TUT(喂!)

        喜歡

  7. 通告: Kinect for Windows 創意應用競賽 決賽得獎作品 « Heresy's Space

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

你正使用 WordPress.com 帳號留言。 登出 / 變更 )

Twitter picture

你正使用 Twitter 帳號留言。 登出 / 變更 )

Facebook照片

你正使用 Facebook 帳號留言。 登出 / 變更 )

Google+ photo

你正使用 Google+ 帳號留言。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: