4. 指先 3 次元位置推定 27
4.2 手領域検出
肌色検出しただけでは,図27のように背景に肌色に近い物体がある場合,肌 色の背景物体か,ユーザの手なのか判別ができない.また,一方の手で仮想入力 面を持ち,もう一方の手でウェアラブル仮想タブレットの操作をするような場合,
仮想入力面を保持している手と,ウェアラブル仮想タブレットの操作をする手を 分離する必要がある.
本節では,肌色に近い背景物体と,ウェアラブル仮想タブレットの入力に使う 手(以下,操作手領域)を判別し,操作手領域を認識する手法について説明する.
図28に操作手領域を認識する手法のながれをまとめる.
図 28 手領域検出処理フロー
4.2.1 肌色検出部分のクラスタリング
肌色検出された2値化画像のうち,肌色検出部の面積(以下,肌色面積)が一 定値以上,かつ,肌色面積が最も大きいものを操作手領域とする.
環境中に複数の肌色物体がある場合,個々の肌色物体の肌色面積を比較する必 要がある.ここでは,肌色検出結果のうち,面積が100画素以上,肌色検出密度 が7割以上の矩形領域を肌色検出部から探索し,肌色検出部を矩形領域で分割す る.ここで,隣接する矩形領域を同じ肌色物体を指す領域としてクラスタリング した(以降,クラスタリングされた肌色検出部を肌色領域と呼ぶ).肌色検出部 を矩形領域で分割し,クラスタリングした結果を図29に示す.
図 29 肌色検出部分のクラスタリング
仮想タブレットを操作する際,仮想入力面を操作する手は観測画像中,大きな 面積を占めるため,肌色面積の小さな肌色領域を除去することで,背景に含まれ る小さな肌色物体を除去し,操作手領域を絞り込むことができる.
4.2.2 背景肌色領域の除去
肌色領域の面積のみからでは,一方の手で仮想入力面を保持している場合,操 作手領域と仮想入力面を持っている手を判別できない.仮想入力面を保持してい る手,および,肌色検出された面積が大きな物体(以下,操作手領域以外の肌色
領域を背景肌色領域と呼ぶ)を除去するため,仮想入力面を指定する際,同時に 背景肌色領域を登録し,次フレーム以降は,背景肌色領域をトラッキングするこ とで背景肌色領域を常時検出・除去する.しかし,手は変形するため,フレーム 間でのテンプレートマッチングによるトラッキングはできない.そこで,肌色領 域の重心を求め,それが直前のフレームでの背景肌色領域に含まれる場合,その 肌色領域が現フレームでの背景肌色領域として時系列的に対応付け,背景肌色領 域を更新する.
肌色領域のサイズが十分大きく,フレームレートも十分である場合,上記の手 法でのトラッキングが可能である.ただ,片手を背景肌色領域に登録した状態で 左右の手が重なると,同じ肌色領域として認識され,両手とも背景肌色領域となっ てしまうため,使用時には左右の手を重ねないといった拘束を設ける.また,仮 想タブレットを操作する際,入力平面が観測画像の大部分を占めるため,背景が 動く場合であっても,背景の大きな肌色領域が観測画像中に入ることは少ない.
一方,仮想タブレットを操作する手は観測画像外に出ることもあるため,新たに 観測画像中に現れる肌色領域を背景肌色領域に登録するといった処理は行わない.
背景肌色領域が登録されている場合は,背景肌色領域を除去した後,面積が一 定値以上,かつ,最も面積が大きい肌色領域を手領域とする.
次に,手領域の検出結果を図30に示す.仮想入力面を手に持った状態で,仮想 入力面の指示,背景肌色領域の登録を行った.図30中,肌色検出結果:緑色に彩 色された部分,操作手領域:赤枠,背景肌色領域:青枠である.
図30から,背景肌色領域を除去し,操作手領域を検出する様子が正しく検出 できている.
(a) 0 [frame] (b) 1 [frame]
(c) 9 [frame] (d) 20 [frame]
図 30 操作手領域検出結果