Kinect for Windows 的錄影工具:Kinect Studio

恩…Kinect for Windows SDK v2 的程式開發文章雖然已經寫了不少,但是由於最近都在做其他事,其實也停了好久沒繼續寫了…而接下來這篇,Heresy 是打算來簡單介紹一下 Kinect for Windows SDK 的資料錄製、撥放工具:Kinect Studio。

Kinect Studio 是包含在 Kinect for Windows SDK v2 裡面的一個工具程式,它可以用來預覽 Kinect 的資料,也可以把資料錄製成「eXtended Event File」(XEF)的格式,好方便以後使用。而除了工具程式外,他實際上也有提供 API,可以讓自己寫程式的時候,可以去呼叫、控制。

這部分完整的說明,可以參考 MSDN 上的《Kinect Studio》這個章節(連結)。而 Heresy 這邊,主要是簡單解釋一下,Kinect Studio 要怎麼用。

首先,Kinect Studio 的程式打開之後,應該會是像下圖這樣子。

可以看到,他的上面最左方,是「File」的檔案選單,而右側則依序有「MONITOR」(監控)、「RECORD」(錄製)、「PLAY」(播放)和「LOG」(紀錄)這四個標籤。


MONITOR(監控)

如果是想看現在 Kinect 所抓到的資料的話,基本上就是選這個標籤。

在剛開啟程式時,基本上是還沒有啟動的狀態,這時候就需要按下畫面左上角的連線鈕(左上方「Not connected」左邊、右圖紅色圈內的按鈕)、讓程式連接到 K4W 的服務、進行資料的讀取。

如果一切都正確的話,在左側下方就會出現各式的資料列表,而右側也會顯示目前 Kinect 看到的彩色畫面了~

而如果是想以 3D 的形式來看深度資料的話,則可以點選畫面上方的「Monitor 3D View」,來切到 3D 模式;這時候應該會如下圖所示:

在這個畫面中,可以透過滑鼠來改變視角、切換到自己想看的角度。

另外,如果點選畫面上方的齒輪按鈕(右圖紅色圈的部分)的話,則可以設定要顯示的內容。

這邊跳出的顯示設定視窗會因為 2D 或 3D 模式而有所不同,不過基本上都是選擇要顯示那些資料。像是上面的 3D 畫面截圖是預設的樣子、並沒有色彩,不過透過設定把「Color」勾起來,就可以看到有色彩的畫面了~而如果對「Accessories」的部分做調整,也可以設定要顯示那些輔助的物件。

此外,這邊如果有把「Body」勾起來的話,那只要場景內有被偵測到人,也會顯示出它的骨架的。

基本上,這個功能很適合用來做 Kinect for Windows 2 環境的測試。透過這個功能,可以很簡單地拿來檢視目前 Kinect 收到的資料、並確認 Kinect 有正常運作。

這部分更詳細的介紹、以及各項圖示的說明,可以參考 MSDN 的文章:


RECORD(錄製)

而如果希望把資料錄下來的話,則是要選擇「RECORD」這個分頁。

這個分頁的畫面和「MONITOR」非常的相近,基本上只是左上角、在連線狀態旁邊的難紐變成是錄製鈕(一個紅色的圓點、右圖)而已。

要開始把資料記錄下來的時候,只需要先按下連線鈕、然後再按下錄製鈕,就可以開始錄製了~下面的畫面就是正在錄製中的畫面。

他預設會把檔案儲存在「我的文件」下的「Kinect Studio\Repository」資料夾內,如果有需要修改則要另行設定。
(要修改設定的話,請點選左上方綠色的「File」鈕,然後在裡面點選「Settings」)

由於 Kinect Studio 錄製的資料似乎都是以未壓縮的形式來錄製的,所以檔案會非常地大!Heresy 自己試著錄了一段接近一分鐘的資料,結果就佔了 7GB 的硬碟空間…

而同時,為了讓錄製過程順暢,Kinect Studio 也需要大量的記憶體空間,來當作緩衝空間(Buffer)。他預設會是 1024MB,如果都用完的話,之後的錄製會變得很慢;所以如果要錄常影片的話,建議是找一台記憶體大一點的電腦,然後把緩衝區大小調大、再來錄製。

所以其實在錄製的時候,可以考慮只錄製需要的資料就好了。在視窗左邊的列表裡面,有打勾的資料代表會被錄下來的資料,如果有資料不想把它錄下來的話,也可以手動把它取消勾選,這樣就不會被錄下來了。透過控制要錄製的內容,是可以有效減少檔案大小的。


PLAY(播放)

在錄製完成後,Kinect Studio 會自動跳到「PLAY」這個分頁,並顯示這次錄影的資訊。

這個分頁的畫面比之前的複雜很多,在視窗的上半部,是左右兩個預覽畫面,其中左半邊是目前系統使用的畫面、右半邊則是檔案的畫面;下半部則是有播放的控制、以及各種有被記錄下來的資料的時間軸。其畫面如下:

在這邊,如果左邊的連接按鈕有按下的話,那上半部左邊的畫面,會先顯示目前感應器捕捉到的即時畫面;此時「Monitor」的狀態會顯示是「Live」。

但是當按下播放紐開始撥放檔案的內容的時候,除了上半部右邊的畫面會開始撥放檔案內的資料外,Kinect Service 的資料也會被檔案播放出來的內容給取代,此時「Monitor」的狀態也會由「Live」變為「File」,而此時就算切換到「MONITOR」的分頁,看到的也會是錄製下來的檔案資料、而不再是即時的畫面了~

此時如果執行其他 K4Wv2 的程式的話,這些程式透過 Kinect 的 Service 要到的資料,也會是被 Kinect Studio 介入的結果,也就是說抓到的都會是錄製好的檔案資料!因此,透過這個方法,就可以用錄製好的資料,來測試自己寫的 Kinect for Windows SDK 的程式了~

不過在撥放時可能要注意的是,在下方的資料列表裡面,完整的清單應該是會有 11 個 Stream(根據錄製時的設定,數量可能會有所不同),不過有的 Stream 預設可能不會顯示、也不會被勾選。

這時候,可能就需要先點選列表上方的眼睛按鈕(右圖紅圈),把隱藏的 Stream 顯示出來;這樣,下面的 Stream 列表就會顯示出所有可以使用的資料都顯示出來。

接下來,就是要去根據自己的需求做設定,看要顯示/隱藏哪些 Stream,同時也需要設定那些資料要拿來給 Kinect Service 用了。

而要設定那些資料要給 Kinect Service 使用,基本上就是透過每個 Stream 最前方的核選方塊來做設定;如果是打勾的,就代表會給 Kinect Service 使用、其他 K4Wv2 的程式也會拿到這個資料,而如果是紅色的禁止符號,則代表不會送出。

像是左邊的 Stream 列表裡面,基本上就是有送出深度資料、紅外線資料等,但是彩色影像和聲音都沒有送出去。

這邊也可以看的出來,雖然他總共有 11 個 Stream,但是並非所有資料都可以送出去的。像是「Nui Body Frame」和「Nui Body Index」這兩者,前方就沒辦法勾選。

這應該也代表了 Kinect For Windows SDK v2 的人體偵測是採用即時計算的形式來進行了,沒辦法事先把計算好的結果錄下來、直接重新利用。這點和 OpenNI NiTE 的設計算是相同的。

基本的播放功能就是這樣了。不過為了使用上的便利,微軟其實在撥放這部分,也做了不少功能可以來讓整個使用更方便。例如,再撥放前可以先設定「Loop」的「Count」、來設定這個資料要重複幾次。

另外,在灰色的時間軸上,也可以設定開始點(in point)、結束點(out point)以及暫停點(pause point);透過調整這些控制點,也可以讓偵錯時更為方便。

這部分更完整的說明,就請參考 MSDN 的《Playback View》這篇文章了。


這篇就簡單地寫到這裡了。基本上,這邊只是大概介紹一下 Kinect Studio 這個現成的軟體怎麼用而已;基本上,就是希望可以透過 Kinect Studio 這個工具,可以用來輔助開發了~

不過,Heresy 印象中以前 Kinect Studio 應該是有提供 API 可以讓開發者使用的?但是稍微找了一下,卻發現現在似乎沒有這方面的資料了?不知道是不是微軟不打算開放這部份了呢?
(參考《Documentation for Microsoft.Kinect.Tools API》)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *