給想開始學 Kinect/OpenNI 程式開發的人 2016

這篇的主題,是要開始學 Kinect、或是 OpenNI 程式開發前,應該要知道的一些事情;基本上,主要的目的,是壤還搞不清楚狀況的人,知道自己可以使用哪個開發環境,還有該開發環境的狀況。

其實之前都寫在各個文章裡面了,不過由於不時還是有人會弄錯、或是不知道某些東西,所以這邊彙整一下。

基本上,要選擇體感程式、深度感應器的開發環境,主要要取決於你用的是哪個感應器;根據所使用的感應器的不同,能使用的開發環境自然也就不同了。

所以接下來,這邊就是以硬體為導向,開始分類。首先,下面是以表格形式的彙整:

感應器
ASUS Xtion 與其他 PrimeSene 架構感應器
第一代 Kinect
第二代 Kinect
OpenNI 1
可使用
可使用
不可使用
OpenNI 2
可使用
可使用
不建議使用
Kinect for Windows v1
不可使用
可使用
不可使用
Kinect for Windows v2
不可使用
不可使用
可使用

閱讀全文

Sony 把另一家體感公司 SoftKinetic 買下來了

這是前幾天的新聞,簡單講,就是 Sony 把 SoftKinetic 這家公司買下來了!官方的新聞是《Sony Acquires Belgian Innovator of Range Image Sensor Technology, Softkinetic Systems S.A., in its Push Toward Next-Generation Range Image Sensors and Solutions》。

在新聞稿中,Sony 只有說朝著下一代的深度感應器(距離感應器)、以及完整方案來發展,並沒有強調應用領域。不過一般是認為這應該是和 PlayStation VR(之前的 Project Morpheus、官網)這類的 VR 遊戲拖不了關係;所以,或許可以想像,以後的 PlayStation 或許也會有像現在的 xbox Kinect 一樣的體感裝置吧~

閱讀全文

Visual Gesture Builder C++ API

Heresy 之前在《建立 Kinect 的姿勢辨識資料庫:Visual Gesture Builder 工具(一)》和《建立 Kinect 的姿勢辨識資料庫:Visual Gesture Builder(二)》這兩篇文章,已經把 Visual Gesture Builder 的工具程式的基本操作都做了一定程度的介紹了。

接下來這一篇,則是來講一下要怎麼在自己的 C++ 程式裡面,透過 Visual Gesture Builder 提供的 C++ API、以及自己建立出來的姿勢資料庫、來進行姿勢的辨識。


Visual Gesture Builder 的檔案

要在 C++ 的程式裡面使用 VGB 的 C++ API 的話,首先需要引入 VGB 的 Header 檔、「Kinect.VisualGestureBuilder.h」。這個檔案所在位置和其他 K4W SDKv2 的 Header 檔所在位置相同,都是在「$(KINECTSDK20_DIR)\inc」下。

而在建置階段所需要的 lib 檔,則是「Kinect20.VisualGestureBuilder.lib」,同樣位於「$(KINECTSDK20_DIR)\Lib」這個資料夾下。(x86 與 x64 放置於不同資料夾內)

至於執行時需要的檔案,則是在「$(KINECTSDK20_DIR)\Redist\VGB」這個資料夾下。C++ 程式除了需要「Kinect20.VisualGestureBuilder.dll」這個檔案外,也還需要「vgbtechs」這個資料夾內的檔案;這個資料夾內的兩個 DLL 檔,應該分別是進行連續性、離散式姿勢偵測的演算法實作。

閱讀全文

建立 Kinect 的姿勢辨識資料庫:Visual Gesture Builder(二)

上一篇的文章裡面,Heresy 已經介紹過 Visual Gesture Builder 的使用流程、以及他的離散式的姿勢了。而接下來這一篇,則是先來講一下他的連續性姿勢吧~

首先,在微軟 Channel 9 的《Custom Gestures End to End with Kinect and Visual Gesture Builder Part 2》影片裡面,有提供離散式姿勢和連續性姿勢的比較,這邊就大概引用一下:

閱讀全文

建立 Kinect 的姿勢辨識資料庫:Visual Gesture Builder 工具(一)

微軟在 Kinect for Windows SDK v2 這個開發環境中,在核心環境內有提供人體骨架的追蹤功能、讓程式開發者可以輕鬆地取得人體的骨架資訊(請參考《K4W v2 C++ Part 7:偵測、追蹤人體骨架》)。

而和第一代的 SDK 相比,在這一代的 SDK 中,微軟甚至提供了手掌的一些細節,讓開發者可以判斷手掌的狀態~如此一來,可用性算是比之前提高了不少。

不過,在 K4Wv2 的核心部分,微軟還是沒有提供姿勢辨識、動作辨識這類的功能,所以如果在僅使用核心元件的情況下,想要透過動作來觸發事件的話,就必須要自己根據骨架的資訊來做計算、判斷了。而實際上,這件事算是還滿麻煩、滿繁瑣的…

為了解決這個問題,微軟另外提供了一個名為「Visual Gesture Builder」(官方文件、以下簡稱「VGB」)的工具(包含軟體、以及 API);它可以讓使用者透過 Kinect Studio 錄下來的 XEF 檔來做學習,半自動地建立出姿勢辨識的條件、進而用在程式之中。

閱讀全文

HP 搭載 Intel RealSense 的新概念互動電腦:Sprout

HP 這幾年對於體感相關的新技術,感覺算是反應的滿快的,之前他們就曾經把 Leap Motion 感應器,整合到筆記電腦(介紹)和鍵盤(介紹)上。

而現在,HP 又更進一步,把 Intel 的 RealSense 深度感應技術,整合到 All-In-One PC 上,做成很有趣的互動模式了!

他的名字就是「Sprout」,售價是 1900 美元(產品頁面官網),應該也是目前市面上第一款真正搭載 Intel RealSense 的產品了~

閱讀全文

整合 Intel RealSense 的筆電、平板將上市

之前已經有介紹過,Intel 也推出了 RealSense 這個基於深度感應器的體感互動技術(官網、之前叫做「Perceptual Computing」)。而現在看來,離整合性產品發表的時間應該很接近了!

首先,Dell 已經發表了「Venue 8 7000」這系列號稱世上最薄(6mm)的 Android 平板(右圖、官網),就整合了 Intel RealSense Snapshot 這款深度感應器!

基本上,由於內建了深度感應器,所以他將可以和 Google 的 Project Tango 一樣,用來作為手持的 3D 掃描、量測工具!像下圖就是出自《Dell Venue 8 7000 tablet hands-on review》的量測畫面。

閱讀全文

201407、OpenNI 現況

在 2013 年底,Apple 正式收購了 OpenNI 的主導廠商、PrimeSense;而到了 2014 年的四月底、OpenNI 的官方網站也正式關閉,其後又過了一段時間後、連 PrimeSense 的官方網站也都停止運作了。而這也看得出來,所謂的 OpenNI 聯盟,其實只是靠 PrimeSense 玩起來的…

那現在,OpenNI 的狀況是怎樣呢?

首先,之前針對 iPad 推出外掛深度感應器「Structure Sensor」的公司 Occipital(官網),已經決定接手繼續維護 OpenNI 2 的 SDK 了!他也為此建立了一個專頁、提供了 OpenNI 2 相關的資源下載;其網址是:

http://structure.io/openni

閱讀全文

微軟的懸浮觸控鍵盤:Type–Hover–Swipe in 96 Bytes

這是一個 Microsoft Research 的有趣的專案。這個專案所做的,是在鍵盤上面、按鍵的間隙之間、加入了紅外線的距離感應器(infrared proximity sensors)陣列,藉此來取得人的手在鍵盤上面的移動、並識別定義的手勢來進行操作!

而透過這樣的設計,就變成讓鍵盤除了本來既有的打字的功能外,更讓它可以成為一個非接觸式的觸控板,可以用來做其他操作了!下面就是官方的展示影片:

閱讀全文

《Kinect v2.0 台灣首度曝光暨技術研​討會》參加紀錄

微軟在發表第一代的 Kinect 後過了快三年,終於在去年、搭配新的 Xbox One 推出的新的 Kinect 感應器。不過,和初代的 Kinect 一樣,第二代的 Kinect 最初也僅只搭配遊戲機使用,沒有 PC 版。

但是由於有了 Kinect For Windows 的經驗,所以微軟這次很快地就把目光放到 PC 市場上,在發表後沒多久,也就開始針對第二代的 Kinect for Windows、也就是「Kinect for Windows v2.0」開放了開發者的預覽版本申請,讓有興趣的開發者可以搶先體驗新版的 Kinect 感應器和 SDK 了!

閱讀全文