第 3 章 大画面を最適視距離で操作できるヒューマンインタフェース
3.4 実装
前章で述べた設計を基に,フロアガイドの機能を提供するデジタルサイネージのプ ロトタイプを開発した.
プロトタイプの全体構成を図 3.7に示す.ハードウェアは,センサ,ディスプレイ,
PC の3つで構成される.プロトタイプに適用するジェスチャ操作は,前章で述べた ディスプレイに対する手の近づき等,3 次元で手を動かす動きになる.この動きを認 識するために,センサには 3次元距離画像カメラ[32]を用いた.ジェスチャ操作の認 識やGUIの表示処理はPCのソフトウェアで行う.
29 図 3.7 プロトタイプの全体構成
3.4.1 ハードウェア構成
図 3.8 にハードウェア構成を示す.GUI やジェスチャ認識を行うソフトウェアは PC上で動作しており,HDMIを経由してGUIをディスプレイにモニタ出力する.
以下,各ハードウェアの基本的な仕様を示す.
図 3.8 ハードウェア構成
PC
Hand Tracking
Interaction
•Gesture Recognition
•GUI Control
Display
(52inch LCD)
Sensor
(3D Range Camera)
30 (1)PC
PC はデジタルサイネージで多く利用される産業用ボックスコンピュータ を用い た.
・ CPU:Intel Core Duo プロセッサ 1.2GHz
・ メモリ:1GB
(2)ディスプレイ
デ ィ ス プ レ イ に は 三 菱 電 機 社 の デ ジ タ ル サ イ ネ ー ジ 用 の 液 晶 デ ィ ス プ レ イ
MDT52ISを用いた.本液晶ディスプレイの仕様を表 3.4に示す.PCからはHDMI
を介してディスプレイに解像度 1080p(1920×1080pixel)の映像を出力する.
表 3.4 ディスプレイの仕様
Brightness 700 cd/m2
Contrast 2000:1
Response Time 8 ms
(3) 3Dカメラ
ジェスチャの認識には3Dカメラを用いた.この理由を以下に示す.
・ 距離情報を利用することで,手先と,手先以外の腕,体,背景とを,精度良 く分離して認識できる.
・ カメラが自発行する光源で撮像するため,照明などの外光の影響が少ないロ バストな認識ができる.
3Dカメラは,オプテックス株式会社製の ZC 1070Uを用いた.本3Dカメラは,
筺体に設けられた LED 光源から赤外線を照射し,その赤外線が物体に反射してイ メージセンサで受光されるまでの飛行時間を計測するTOF(Time of Flight)方式 より,距離情報を含む画像データ(以下,距離画像)を取得する.本3Dカメラの 仕様を表 3.5に示す.
3Dカメラからは,フレーム毎に以下の情報を取得できる.3Dカメラで取得でき る距離画像および赤外画像を図 3.9に示す.
・ カメラを原点とした奥行方向の距離情報(世界座標系の Z座標値)
・ カメラを原点とした横方向(左右)の距離情報(世界座標系のX座標値)
・ カメラを原点とした縦方向(上下)の距離情報(世界座標系のY座標値)
・ 赤外線の反射強度
31 表 3.5 3Dカメラの仕様
FOV Angle 70°/55°/90°
Effective 160x120 pixel (176x132 )
Light Source Infrared LED (850nm)
Measuring Range 0.5~4.0 m
Accuracy X, Y direction:±5%,Z direction: ±2%
Usage Environment 10,000 lux or below
図 3.9 3Dカメラの距離画像と赤外画像
3.4.2 ソフトウェア構成
ソフトウェアは大きく以下の2つで構成される.
・ ハンドトラッキング
距離画像から撮像範囲内にある物体の 3次元形状を解析することにより,ユ ーザの手の位置を検出,追跡する.実装はC++を用いた.
・ インタラクティブアプリケーション
手の動きからジェスチャを認識し,認識した動きに応じて GUIの表示を変更 する.実装はAdobe Systems社のFlash(Action Script)を用いた.
上記2つのソフトウェア間の通信は,Local Connectionによるプロセス間通信を用 いた.Local Connectionは,Memory-Mapped File(ファイルマッピングオブジェク トによる共有メモリ)を排他制御しながらプロセス間通信を行うインタフェースであ り,通信プロトコルにはFlash Action Scriptの独自バイナリ形式となる AMF(Action script Message Format)を使用する.
32 3.4.3 ハンドトラッキング
図 3.10 に 3D カメラを用いたハンドトラッキングの処理の概要を示す.ハンドト ラッキングでは,大きく以下の3つの処理を行う.
(1)検出エリアの設定
操作する手を検出するエリアを設定する.このエリアは,3 次元の世界座標系にお いて立方体形状のエリアとなる.
(2)最近傍点の検出
検出エリア内で,3Dカメラから最近傍となる座標を検出する.ユーザが操作する 手を画面に差し出している場合,最近傍点は手先の位置となる.
(3)手のオブジェクト抽出
上記(2)で検出した最近傍点の周辺物体の大きさを見て,手として扱うオブジェク トを抽出する.抽出したオブジェクトが,手のサイズとして小さすぎる,あるいは 大きすぎる場合は,最近傍点をノイズとして扱い,検出済みの最近傍点周辺を除い た領域で新たな最近傍点を探索する.
(4)手の位置推定
上記(2)で得られた手のオブジェクトの中心座標を計算し,この座標を操作中の手 の位置として出力する.
図 3.10 ハンドトラッキングの処理の概要
33