書籍転載:Intel RealSense SDKセンサープログラミング(2)
インテル RealSense SDKの機能概要(手・顔の検出から音声機能まで)
― Part 1 開発の準備 Chapter 1 インテル RealSenseテクノロジーの概要 ―
インテル RealSense SDKで利用できる機能を、実際の使用例を示しながら分かりやすく紹介する。
前回は、インテル RealSenseテクノロジーの概要と、構成要素/SDK/動作環境について紹介しました。
書籍転載について
本コーナーは、翔泳社発行の書籍『Intel RealSense SDKセンサープログラミング』の中から、特にBuild Insiderの読者に有用だと考えられる項目を編集部が選び、同社の許可を得て転載したものです。
『Intel RealSense SDKセンサープログラミング』の詳細や購入は翔泳社のサイトや目次ページをご覧ください。プログラムのダウンロードも、翔泳社のサイトから行えます。
ご注意
本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどはBuild Insiderのそれとは一致しません。あらかじめご了承ください。
■
1-4 インテル RealSense SDKの機能概要
RealSenseを提供するインテル RealSense SDKの機能について解説します。先にも紹介した通り、インテル RealSense 3Dカメラを利用することですべての機能を利用できますが、一般のWebカメラ(ノートPCのディスプレイの上についているようなもの)でも画像処理を使った機能を利用できます。また音声処理についても一般的なマイクで利用ができます。
入力カテゴリー | 機能 | インテル RealSense 3Dカメラ | その他のデバイス(カメラ、マイク) |
---|---|---|---|
手 | 手や指の追跡 | ○ | × |
ジェスチャーの認識 | ○ | × | |
顔 | 顔の検出 | ○ | ○ |
顔の部位検出 | ○ | ○ | |
表情の認識 | ○ | ○ | |
顔の認識 | ○ | × | |
音声 | 音声認識 | ○ | ○ |
環境 | セグメンテーション | ○ | × |
3Dスキャン | ○ | × | |
仮想現実 | ○ | × |
1-4-1 基本ストリーム
RealSenseの基本となるストリームです。インテル RealSense 3Dカメラでは1920×1080までのカラー画像、640×480までのDepthデータ、640×480までのIR(赤外線画像)を取得できます。これらをもとに各種処理を行いますが、これらの画像データそのものも利用できます。
>カラー画像
RGBのカラー画像です。1920×1080までの解像度が使えるので、フルスクリーンのアプリケーションや、デジタルサイネージのコンテンツでの利用も問題ありません。
>Depthデータ
640×480の解像度で60FPSまでの速度で動作します。また縦の解像度を半分にした640×240では100FPSを超える速度での検出も可能です。
>IR画像
640×480の解像度で100FPSを超える速度で動作します。
1-4-2 手の検出
RealSenseの中核をなす機能です。インテル RealSense SDKでは、手の位置及び指の位置を合計22点認識できます。インテルPerceptual Computing SDKでは手の位置及び指先の6点のみであったのに対し非常に細かく認識できるようになっています。
ほかにもパーやチョキといった指のポーズ、スワイプ(手の左右動作)といった手のジェスチャーなど合計10パターンの認識ができます。
>手や指の追跡
手および指の位置を追跡します。追跡された位置はカメラを中心として3次元の位置または、Depth画像の座標系の2次元の位置として取得できます。3次元で位置が取れるため、手指の奥行やお互いの位置関係を知ることができます。
>ジェスチャー認識
パーやグー、スワイプやピンチといったジェスチャーを認識できます。ジェスチャーをアプリケーションに組み込むことで非接触のユーザーインタフェースを作ることができます。
1-4-3 顔の検出
顔検出機能はインテル RealSense SDKの特長の一つですが、筆者は非常に有用な機能だと考えています。なぜなら、顔検出機能は3Dまたは2Dで利用できるからです。3Dはインテル RealSense3Dカメラが前提ですが、2Dは一般的なRGBカメラ(Webカメラ)の利用も可能です。これによって、新しいハードウェアが必要なく、インテル RealSense SDKのインストールのみで恩恵を受けることができます。
さて、その顔検出機能では下記のことができます。
>顔の位置の検出
顔の位置を検出します。解像度を上げても比較的高速に検出します。また、顔検出は画像処理で行っていますので、数字上の検出人数の上限がありません(物理的に画角に何人入るかという制約のほうが先に出てきます)。
>顔の部位と顔や目、鼻、口の輪郭
顔や目、鼻、口の輪郭を取得できます。リアルタイムで検出しているため、口を開けたら口の輪郭も開きますし、目を閉じたら目の輪郭も閉じます。
>表出
目や口の開き具合を検出します。
>心拍
心拍数を計測します。
>表情
嬉しい、楽しい、悲しい、怒っているといった表情を推定します。
>顔認識
顔の識別を行います。登録および照合の機能があります。認識は画像処理で行っているため、写真でも顔を認識してしまいます。
1-4-4 音声
インテル RealSense SDKは音声関連もさまざまな機能を持っています。ユーザーが発した音声をテキストに変換する音声認識と、テキストを音声データ化する音声合成です。音声認識については、認識させたいコマンドをあらかじめ登録しておく「コマンド方式」と、発した言葉をそのままテキストに変換する「ディクテーション方式」があります。
>音声認識
マイクに向かってしゃべると、しゃべった言葉がテキストに変換されます。
>音声合成
テキストに入力した文字を音声データに変換します。
1-4-5 環境
環境というのは人、モノに作用する機能です。背景を除去するセグメンテーション、立体物を取り込む3Dスキャン、AR(拡張現実感)のためのオブジェクト追跡です。
>セグメンテーション
一定の距離内にあるもののみ描画します。背景の合成や、テレビ電話中の背景除去などに使用します。
>3Dスキャン
R2で追加された、立体物を3Dスキャンする機能です。
>AR(拡張現実感)
カメラが認識したマーカーに何かしらの作用を起こすための、マーカー認識機能です。
1-4-6 ブラウザアプリケーション
本書では解説していませんが、インテル RealSense SDKはJavaScriptやUnity Web Playerを使ったブラウザアプリケーションにも対応しています。自身のサイトでもインテル RealSense SDKの機能を活用できます。
1-5 対応アプリケーション
対応アプリケーションはまだ多くありませんが、「KAGURA」という素晴らしいアプリケーションがリリースされています。KAGURAは福岡のしくみデザイン社が開発/リリースしており、「Intel Perceptual Computing Challenge 2013」という、インテルPerceptual Computing SDK時代の世界コンテストでグランプリに輝いたアプリケーションがベースになっています。
前述のとおり、インテル RealSense SDKは3Dカメラを使うことですべての機能を利用できますが、Webカメラでも一部の機能を利用できます。また、しくみデザイン社は、もともとWebカメラや音を使った体験型コンテンツを開発している会社でもあるため、Webカメラだけでも遊べます。
インテル RealSense SDKで提供されている機能が自然と使われています。アプリケーションのコンセプトも素晴らしいので、遊んでみると楽しさとともに、多くの発見があるでしょう。
■
次回からは、インテル RealSenseの活用方法がイメージしやすくなるよう、実際のサンプルアプリ開発を紹介します。まずはUnityとRealSenseを組み合わせたアプリケーションになります。
※以下では、本稿の前後を合わせて5回分(第1回~第5回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。
1. インテル RealSenseテクノロジーとは? 構成要素/SDK/動作環境
インテル RealSenseテクノロジーが登場するまでの流れ、RealSenseの仕様やSDKの概要について紹介する。
2. 【現在、表示中】≫ インテル RealSense SDKの機能概要(手・顔の検出から音声機能まで)
インテル RealSense SDKで利用できる機能を、実際の使用例を示しながら分かりやすく紹介する。
3. RealSense SDK Unity ToolkitによるUnityアプリ開発の基礎
インテル RealSense SDK Unity Toolkitの概要と、それがUnity向けに用意している各種機能を紹介する。
5. WPF(Visual Studio)+RealSenseで作る表情感知アプリ
インテル RealSenseを活用したサンプルアプリケーション開発の第2弾として、Visual StudioとRealSenseを組み合わせる方法を紹介する。