Kinect for Windows v2における概要と開発環境

2014年9月4日(木)
薬師寺 国安

2014年07月15日、世界各地のMicrosoft Storeで「Kinect for Windows v2 センサー (オープン ベータ)」が発売されました。もちろん日本のMicrosoft Storeでも発売が開始されました。

当初、日本のMicrosoft Storeでは発売日が「Coming Soon」とだけ表示され、いつの発売になるのかまったく情報がありませんでした。それが、発売日前日の2014年07月14日に、下記のサイトで突然、7月15日の発売が発表されました。

The Official Microsoft Japan Blog(マイクロソフト公式ブログ)
http://blogs.technet.com/b/microsoft_japan_corporate_blog/archive/2014/07/14/kinect-for-windows-v2-7-15.aspx

Kinect for Windows v2を待ち望んでいた筆者は7月15日の午前1時にすぐに予約し、7月16日には現物を入手しました。現在Kinect for Windows v2は、下記のURLより購入できます。注文すると2~4営業日で手元に届くようです。

Kinect for Windows v2 センサー (オープン ベータ) の購入 - Microsoft Store Japan オンライン ストア
http://www.microsoftstore.com/store/msjp/ja_JP/pdp/productID.298959900

図1: 日本のMicrosoft Storeでの「Kinect for Windows v2 センサー (オープン ベータ)」のオーダー画面(クリックで拡大)

価格は税込みの21,578円です。発売当初は数量限定販売と報道されていたようですが、原稿執筆時点では、まだ在庫があるようです。「Kinect for Windows v2 センサー (オープン ベータ)」の「オープンベータ」という表記は、Kinect for Windows v2(以下Kinect v2)センサー本体そのものが「オープンベータ」という意味ではなく、提供されているKinectv2のSDKが、現状ではパブリック プレビュー版であるため、このような表記になっているものと思われます。

Kinect for Windows SDK 2.0 Public Previewのダウンロード

「Kinect for Windows SDK 2.0 Public Preview」は下記のURLよりダウンロードが可能です(図2)。

Download Kinect for Windows SDK 2.0 Public Preview from Official Microsoft Download Center
http://www.microsoft.com/en-us/download/details.aspx?id=43661

図2: Kinect for Windows SDK 2.0 Public Preview」のダウンロード画面。提供されるのは英語版のみとなる。(クリックで拡大)

インストール時の注意点

SDKをダウンロードしてインストールする場合、先にKinect v2をPCと接続していてはならないので、注意が必要です。SDKをインストール後に、Kinect v2を接続します。すると自動的にデバイスのインストールが開始されます。

後ほど解説しますが、Kinect v2を接続できるPCのUSBポートは「3.0」に限られます。しかも正式にサポートされているUSBコントローラーは「Intel」と「Renesas(ルネサス)」のものだけです。これ以外では、たとえUSB 3.0のポートであってもKinect v2が動作しない可能性があるので、注意が必要です。

SDKをインストールすると、「Kinect for Windows Developer Toolkit v2.0.0(以後、Toolkit)」も一緒にインストールされます。Kinect v1の時は、別個にインストールするようになっていましたが、今回はまだPublic Preview版であるため、SDKの中に一緒に含まれています。正式版では、別個に分けられる可能性があるようです。

このToolkitにはいろいろなサンプルが収録されています。後ほど紹介していきます。

本体の構成

Kinect v2本体の構成は図3のように、「RGBカメラ」、「深度センサー」、「マイクアレイ」から構成されています。

図3: Kinect v2の構成。Kinect v1との比較(クリックで拡大)

Kinect v2センサーのスペックを表1に示します。

表2: Kinect v2センサーの特徴(Kinect v1との比較)

特徴Kinect v1Kinect v2
Color画像640×480 @30 fps1920×1080 @30 fps
Depth(深度)画像320×240512×424
最大奥行き距離~4.5M~4.5M
最少奥行距離40cm(Near Mode)50cm
水平視野角57度70度
垂直視野角43度60度
チルトモーター有り無し
骨格定義数20関節/1人25関節/1人
最大追跡対象スケルトン2人6人
手指の検出なし親指と指先
手のポーズ検出グーとパーのみグー、チョキ、パー
音声入力ありあり

表1から明らかなように、Kinect v1より大幅に性能が向上しています。とくに「Color画像」はKinect v1は解像度が「640×480」であったため、必ずしも綺麗な画像とは言えませんでした、しかし、Kinect v2では解像度が「1920×1080」にアップし、また画像も自然色に近くなり、格段に美しくなりました。

Color画像の比較

Kinect v1時のColor画像とKinect v2時のColor画像の比較は図4になります。

図4: Kinect v1とKinect v2のColor画像の比較。Kinect v1のほうが、少し画像に赤みがかっているのがわかる。一方Kinect v2では、より自然に近い色になっている。(クリックで拡大)

Depth 画像の比較

「Depth画像」のDepthは「深度」、すなわち奥行方向の距離を表しています。「Depth画像」のデータは、ピクセルごとに深度を持っているため、「Color画像」と組み合わせて距離を測ったり、画像をマスクしたりするのに使用されます。「Depth画像」は、Kinect v1では解像度が「320×240」でしたが、Kinect v2では「512×424」まで解像度がアップしています(図5)。

図5: Depth画像の解像度の比較(クリックで拡大)

骨格定義数

では次に、「骨格定義数」についてみていきましょう。Kinect v2とKinect v1のそれぞれが認識できる関節は、図6のようになります。

図6: Kinect v2で認識できる関節部位。Kinect v1との比較(クリックで拡大)

[参照URL] http://msdn.microsoft.com/ja-jp/library/jj131025.aspx

Kinect v1と比較すると、Kinect v2では「首(NECK)」、「右手先(HAND_TIP_RIGHT)」、「右手親指(THUMB_RIGHT)」、「左手先(HAND_TIP_LEFT)」、「左手親指(THUMB_LEFT)」の5関節の追加取得が可能になっています。

動作環境

Kinect v2を動作させるのに必要な環境を表2に示します。

表2: Kinect v2を動作させるのに必要なスペック

OSWindows 8またはWindows 8.1、Embedded含む
プロセッサ64-bit(x64)プロセッサ。デュアルコア3.1GHz以上
USBUSB 3.0(IntelまたはRenesasサポート)
RAM最低2GB(4GB推奨)
グラフィックカードDirectX11(Intel HD 4000, AMD Radeon HD 6470M, NVIDIA GeForce 610m, AMD Radeon HD 6570)
開発環境Visual Studio 2012、Visual Studio 2013(無料のExpress可)、Unity Pro
対応言語C++、C#、Visual Basic、Unity(Pro)、HTML(JavaScript)

※Kinect v2からはWindowsストア アプリにも対応。

ではToolkitに含まれているサンプルを、画像を交えて紹介しましょう。

Kinect for Windows Developer Toolkit v2.0.0に含まれるサンプル

赤外線サンプル

暗闇の中で赤外線画像を取得してみました。

図7: 赤外線サンプル Infrared Basic-WPF(クリックで拡大)

背景とのマッピングサンプル Coordinate Mapping Basics-WPF

背景を除去して人物を残し、別な背景をはめ込み、人物と合成表示しています。

図8: 背景とのマッピングサンプル Coordinate Mapping Basics-WPF(クリックで拡大)

音声認識サンプル

「Forward」、「Back」、「Turn Left」、「Turn Right」の音声を認識して、亀が前後に動いたり、向きを変えたりします。

図9: 音声認識サンプル Speech Basic-WPF(クリックで拡大)

Windowsストアアプリ用インタラクションコントロール

Windowsストアアプリに対して、操作が可能なXAMLコントロールが提供されました。下記の画像では、上部(赤く囲んだ部分)に小さく操作している様子が描画され、Windowsストアアプリのタイル上に、手の形をしたカーソルが表示され、これで画面の操作が可能になっています。

図10: Windowsストアアプリ用インタラクションコントロール Controls Basics-XAML(クリックで拡大)

他にもいろいろなサンプルが用意されているますので、動かして試してみるといいでしょう。これらのサンプルはインストールするとプロジェクトファイル自体がインストールされ、VS2013上で編集が可能になります。但し、Visual Basicのサンプルは付属しておりませんでした。筆者としては少し残念な思いをしました。またKinect v1のToolkit v1.8に付属していた、Kinect Fusion(図11)や顔認識のサンプルは、今回のKinect v2のToolkitには含まれていません。正式版では追加されると思います。Kinect Fusionとは、接続したKinectセンサーで被写体を撮影し、3Dモデルとしてのデータを作成する事が出来る機能です。

図11: 正式版では追加されるであろうKinect Fusion(クリックで拡大)

Kinect Studioとは

またToolkitとは別に「Kinect Studio」も付属しています(図12)。Kinect Studioは、Kinectアプリケーション開発支援ツールです。Kinect Studioは、Kinectから取得できる「Color」や「Depth」のストリームデータをファイルに記録して、いつでも再生して確認できるツールです。 この「記録」と「再生」機能により、Kinectアプリケーションの開発やデバッグを大変に楽にしてくれる点が、Kinect Studioの特徴です。

図12: Kinect Studioの画面(クリックで拡大)

Kinect v2プログラム作成手順

今回のKinect v2プログラミングはWindows Presentation Foundation(以下、WPF)で作成します。無料版のVisual Studio 2013 Express(以下、VS2013 Express)では、WPFを作成できませんので、原則として今回のプログラムは、Visual Studio 2013 Professional(以下、VS2013)以上の開発環境でしか動作しません。但しVS2013 Expressでも、Windowsストアアプリとしてなら作成は可能です。

追記(※)Visual Studio 2013 Express for Desktopでは作成可能です。

今回はOSにWindows 8.1+Update1、開発環境にVisual Studio 2013 Ultimate+Updade3を用いています。言語はVisual Basicを使用します。

まずVS2013を起動します。[ファイル]ー[新規作成]ー[プロジェクト]と選択し、Visual Basicから「WPF アプリケーション」を選択します。「名前」には今回は適当に「WPFTest」と付けておきましょう(図13)。

図13: WPF アプリケーションを選択する(クリックで拡大)

参照設定

MainWindow.xamlのページが表示されます。今回はKinectを使用するため、Kinectへの参照を追加しておく必要があります。ソリューションエクスプローラー内の「すべてのファイルを表示」アイコンをクリックして、「参照設定」を表示させます(図14)。初めて起動した状態ではこの「参照設定」は表示されておりません。

図14: ソリューションエクスプローラーから「すべてのファイルを表示」アイコンをクリックして、「参照設定」を表示する(クリックで拡大)

表示された「参照設定」を選択し、マウスの右クリックで表示される「参照の追加」をクリックします。すると、「参照マネージャー」が表示されます。一度Kinectへの参照を追加しておいた場合は、この画面に「Microsoft.Kinect.dll」が表示されています(図15)。

図15ではすでに表示されていますが、初めての場合は表示されていませんので、「参照」ボタンをクリックして、
C:\Program Files\Microsoft SDKs\Kinect\MainV2\Assemblies
フォルダ内にある「Microsoft.Kinect.dll」を指定します。

上記の「MainV2」のフォルダも、環境によっては「v2.0-PublicPreview」という名前になっている場合があります。

図15: Kinectを一度参照すると、Microsoft.Kinect.dllが表示される(クリックで拡大)

追加した「Microsoft.Kinect.dll」を選択してチェックを付け、「OK」ボタンをクリックすると、「参照設定」の中に「Microsoft.Kinect」が追加されます(図16)。

図16: 参照設定内に「Microsoft.Kinect」が追加された(クリックで拡大)

以上で、Kinect v2のプログラミングを行う環境が整いました。次回から、早速Kinect v2の基本的なプログラムの作成方法に入ります。お楽しみに。

<編集部より> 3ページ目に一部追記しました。(2014.09.03)

薬師寺国安事務所

薬師寺国安事務所代表。Visual Basic プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット PROJECT KySS を結成。2003年よりフリーになり、PROJECT KySS の活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Windows Phoneアプリ開発を経て、現在はWindows ストア アプリを多数公開中

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています