Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)

連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)

Intel Perceptual Computing(PerC) SDKの概要と環境構築

2014年1月22日

PerC SDKの開発環境やアーキテクチャ、インストール方法について解説。またSDKに含まれているサンプルを紹介することで、PerCが提供する機能について見ていく。

Natural Software 中村 薫
  • このエントリーをはてなブックマークに追加

 今回はIntel Perceptual Computing SDK(以下「PerC SDK」とする。現在は「Intel RealSense SDK」)の概要と環境構築について解説する。

 PerC SDKは無償で商用利用も可能である。SDKの全ての機能を利用するには、Creative Interactive Gesture Camera Developer Kitの購入(後述)が必要であるが、前回の通り、Colorカメラおよび音声関連機能だけを利用する場合はWebカメラやマイクがあればよい。

Creative Interactive Gesture Camera Developer Kitの購入について

 Creative Interactive Gesture Camera Developer Kitは(プロダクト名: Creative Senze3D)はこちら(次の画像のサイト)から購入できる。デバイスの149米ドルと送料の約24ドルで、日本まで1週間ほどで届く。

Creative Interactive Gesture Camera Developer Kitの購入サイト

Intel Perceptual Computing SDKの環境

 PerC SDKの要求スペックとしては第2世代以降のインテルCoreプロセッサを搭載したWindows 7以降のコンピューターとなっている(現在のHaswellが第4世代)。Windows 8および8.1でも動作するが、Windowsストアアプリ(WinRT)には対応していない。

 開発環境としてサポートされている言語および環境は次の通りだ。

言語および環境バージョンなど
C++ Visual Studio 2008/2010/2012
C#など(.NET) .NET Framework 4.0
Unity Unity PRO 3.5.1f2以降
Java JDK 1.7.0_11以降
Processing 1.5.1以降
openFrameworks(C++) v0071以降
開発環境としてサポートされている言語および環境

 他にもPerC SDK側の対応ではないが、「PCL(Point Cloud Library)」と呼ばれる点群(=RGBおよびDepthの点の集合)を扱うライブラリにPerC SDK対応が入り、点群を扱いやすくなっている。

Intel Perceptual Computing SDKのインストール

 PerC SDKのインストーラーはこちら(次の画像のサイト)からダウンロードできる。[Download]ボタンからはWebインストーラー、[Download Additional Language Packs]からはオフラインインストーラーおよび各国の音声エンジンがダウンロードできる。

PerC SDKのダウンロードサイト

 PerC SDKは2012年末にベータ版がリリースされ、2013年3月に正式版がリリース。その後も細かくリリースされ、現在ではRelease 7となっている。およそ1~2カ月に1回はアップデートされるので、マメにサイトをチェックするとよいだろう(現在のアップデートでは、それほど大きな変更はない)。

 インストーラーをダウンロードしたら、以下の手順に従ってインストールしてみよう。

1. インストーラーを起動してSenz 3Dカメラを検出できなかった場合、警告が出るが無視して構わない

インストーラーの起動

2. インストールする項目の下に音声エンジンの選択があるので、日本語(またはインストールしたいエンジン)を選択する

インストールする項目の選択

3. インストールが完了したらWindowsを再起動する(音声エンジンが1つ、700MBytesほどあるので、インストールに時間がかかるが気長に待ってほしい)

インストールの完了

Intel Perceptual Computing SDKのフォルダー構成

 PerC SDKは既定の設定で「C:\Program Files\Intel\PCSDK」(64bit環境では「C:\Program Files (x86)\Intel\PCSDK」)にインストールされる。ヘッダーファイルやライブラリ、各環境のサンプルなどがここにインストールされる。よく使う/見るフォルダーを紹介しておこう。

フォルダー内容
bin C++およびC#でのサンプルの実行ファイル。画像表示やジェスチャー(手指を含む)、音声など機能ごとに分かれている
doc CHMヘルプファイル形式のドキュメント
framework C#やUnity、Processingなど、C++以外の環境のライブラリ、サンプル
include C++用のヘッダーファイル
lib C++用のライブラリファイル
props C++用のVisual Studioプロジェクトプロパティシート
runtime ランタイムのインストーラー
sample C++版のサンプル
PerC SDKでよく使う/見るフォルダー

 他にもPCSDKフォルダー直下にあるrelease_notes.rtfファイルに変更履歴が書かれているので、更新の際は参照するとよいだろう。

Intel Perceptual Computing SDKのアーキテクチャ

 PerC SDKのアーキテクチャは次の図のようになっている。

PerC SDKのアーキテクチャ

 「コアフレームワーク(Core Framework)」としてC++のライブラリがあり、それをラップしてより簡単にSDKを扱うための「UtilPipeline」というクラスが基礎となる。そこから各言語や環境用にポーティングされている。

 C#(などの.NET)用のライブラリは、コアフレームワークをC++/CLI言語でマネージ化している(「UtilMPipeline」クラスがそれだが、クラス構造としては「UtilPipeline」と同様)。

 その他の言語はUtilPipelineから派生している。ProcessingおよびUnityは、UtilPipelineからさらにCのライブラリに変換され、それぞれの環境用にポーティングされている。.NETとUnityについては共に言語はC#を利用するが、この図からも分かる通り、ライブラリは別になっており、Unity版はよりUnity環境に特化した作りになっている。

サンプルから見るIntel Perceptual Computing SDKの機能

 実際にサンプルをいくつか動作させてPerC SDKの機能を見てみよう。サンプルの実行ファイルは、binフォルダー以下にある。これらのコードはsampleフォルダー以下にある(全て、コアフレームワークとWin32 APIで実装されている)。

サンプル「raw_streams」

 Colorカメラ、Depthカメラの画像を表示するサンプルアプリケーションだ(次の画面)。Depthカメラは平滑化(Smoothing)されたデータとされていない生データを選択できる。

raw_streams.exeの実行画面

サンプル「gesture_viewer」

 手指の検出やジェスチャー、ポーズの検出を行うサンプルアプリケーションだ(次の画面)。PerC SDK最大の特徴ともいえる機能を見ることができる。

gesture_viewer.exeの実行画面

 ここで見られる情報を解説しよう。

  • 手指の検出として、そのまま手および指の位置を検出し、その座標を取得できる
  • 手の開閉度合いとして、手をパーの状態からグーの状態にすることで、右のバーの長さが変化する
  • ポーズおよびジェスチャーの検出を行える。PerC SDKでは下記のポーズおよびジェスチャーを認識できる
種類名称概要
ポーズ Peace 指2本(ピース、チョキ)指2本(ピース、チョキ)
Big5 指5本(パー)指5本(パー)
Thumb Up 親指を上向きに立てる親指を上向きに立てる
Thumb Down 親指を下向きに立てる親指を下向きに立てる
ジェスチャー Swipe Left 手を左に動かす手を左に動かす
Swipe Right 手を右に動かす手を右に動かす
Swipe Up 手を上に動かす手を上に動かす
Swipe Down 手を下に動かす手を下に動かす
Circle 手で円を描く手で円を描く
Wave 手を左右に動かす手を左右に動かす
PerC SDKで認識可能なポーズおよびジェスチャー

サンプル「face_tracking」

 顔の検出および顔の部位(目、鼻、口)の検出を行うサンプルアプリケーションだ(次の画面)。顔の検出は画像処理で行うため、Webカメラでの実行も可能であり、人数に対する制限もない。

face_tracking.exeの実行画面
face_tracking.exeの実行画面

サンプル「segmentation_viewer」

 Depthデータを利用して背景除去を行うサンプルアプリケーションだ(次の画面)。Kinect for Windows SDKのBackground Removalと似た機能を持ち、距離データで背景を除去し、輪郭部分を画像処理することで、人のみを切り出せる。背景を除去したデータを使って、背景と人を合成することもできる。

segmentation_viewer.exeの実行画面

サンプル「voice_recognition」

 音声認識を行うサンプルアプリケーションだ(次の画面)。認識させる言語(Language)と認識方法(Mode)を選択する。認識方法には、あらかじめ認識させる単語を設定し、その単語のみを認識させる「Commandモード」と、発した言葉をそのまま文字列化する「Dictationモード」がある。

voice_recognition.exeの実行画面
voice_recognition.exeの実行画面

サンプル「voice_synthesis」

 文字列から音声データを生成する音声合成のサンプルアプリケーションだ(次の画面)。Languageで発する言語を設定し、文字列を入力すると、それをWAVEデータ化することができる。これをファイルに書き込み、.wavファイルにしたり、そのまま出力して音声化したりできる。

voice_synthesis.exeの実行画面
voice_synthesis.exeの実行画面

まとめ

 PerC SDKの特長の1つである手指の検出はLeap Motionと同じである。筆者の経験から両者を比較すると、手指の検出精度はLeap Motionの方がよい。ジェスチャーは両者ともスワイプを持っているが、PerC SDKの方が認識しやすい。また、手の開閉度合いについてもPerC SDKの方が、精度が高い。手指の検出を行う場合は、何をどのように検出させたいか、ということがデバイスの選択基準になるだろう。

 他にもColorカメラと顔の検出や、音声関連の機能が充実しているため、近距離でのNUI(Natural User Interface)としての利用には有用であると考えている。

 次回からは、下記のタイトルの予定で、C++でPerC SDKを利用したアプリケーションの開発方法について解説する。

  • 第3回:Colorカメラおよび顔検出
  • 第4回:Depthカメラおよび手指の検出
  • 第5回:音声認識と音声合成
連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)
1. Intel Perceptual Computing(PerC) SDKの全体像

Intel Perceptual Computing SDKの概要と、それを利用したアプリの開発方法について解説する連載スタート。今回はセンサーモジュールの仕様や、SDKの概要、Intel社の3Dセンシング技術などについて紹介。

連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)
2. 【現在、表示中】≫ Intel Perceptual Computing(PerC) SDKの概要と環境構築

PerC SDKの開発環境やアーキテクチャ、インストール方法について解説。またSDKに含まれているサンプルを紹介することで、PerCが提供する機能について見ていく。

連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)
3. Colorカメラを使って顔を検出する

Intel Perceptual Computing SDKを使ったアプリの開発方法を解説。Webカメラでも行える顔検出を実装してみよう。

連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)
4. Depthカメラを使って手指を検出する

PerC SDKの最大の特長である「手指の検出」を解説。Depthカメラのデータを取得する方法も説明する。

連載:Intel Perceptual Computing SDK(現:RealSense SDK)入門(2)
5. 無償で簡単にアプリに組み込める「音声認識&音声合成」

マイクに向かってしゃべると音声をテキスト化する「音声認識」や、テキストを音声データに変換する「音声合成」をPC上のアプリで実現したい場合、無償のPerC SDKが便利だ。その開発方法を解説。

サイトからのお知らせ

Twitterでつぶやこう!