特許第6618276号(P6618276)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許6618276情報処理装置、その制御方法、プログラム、及び記憶媒体
<>
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000002
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000003
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000004
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000005
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000006
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000007
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000008
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000009
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000010
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000011
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000012
  • 特許6618276-情報処理装置、その制御方法、プログラム、及び記憶媒体 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6618276
(24)【登録日】2019年11月22日
(45)【発行日】2019年12月11日
(54)【発明の名称】情報処理装置、その制御方法、プログラム、及び記憶媒体
(51)【国際特許分類】
   G06F 3/041 20060101AFI20191202BHJP
   G06F 3/042 20060101ALI20191202BHJP
【FI】
   G06F3/041 520
   G06F3/041 580
   G06F3/041 590
   G06F3/041 595
   G06F3/042 473
【請求項の数】22
【全頁数】25
(21)【出願番号】特願2015-110215(P2015-110215)
(22)【出願日】2015年5月29日
(65)【公開番号】特開2016-224686(P2016-224686A)
(43)【公開日】2016年12月28日
【審査請求日】2018年5月2日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【弁理士】
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】釜森 勇樹
【審査官】 酒井 優一
(56)【参考文献】
【文献】 特開2013−065061(JP,A)
【文献】 特開2001−290585(JP,A)
【文献】 特開2012−003690(JP,A)
【文献】 特表2011−503709(JP,A)
【文献】 米国特許出願公開第2014/0240293(US,A1)
【文献】 遠藤 直樹,外1名,セルフオクルージョンに頑健な指先位置推定,映像情報メディア学会技術報告,日本,一般社団法人映像情報メディア学会,2014年 3月17日,Vol.38 No.16,p.127-128
【文献】 笠松 英,外2名,手の甲の特徴点による手指の形状推定モデルの検討,第75回(平成25年)全国大会講演論文集(4) インタフェース コンピュータと人間社会,一般社団法人情報処理学会,2013年 3月 6日,p.99-100
【文献】 笠松 英,外2名,筋骨格モデルを用いた手の姿勢推定手法の検討,FIT2014 第13回情報科学技術フォーラム 講演論文集,一般社団法人電子情報通信学会,2014年 8月19日,p.269-270
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/041
G06F 3/042
(57)【特許請求の範囲】
【請求項1】
所定の物体を撮像した画像から、前記所定の物体の一部によって示される指示位置を検出する検出手段と、
前記検出手段によって検出された2つ以上の前記指示位置の位置関係の変化に基づいて、所定の操作を認識する第1の認識手段と、
前記画像から、前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴を抽出する抽出手段と、
前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作を認識する第2の認識手段と、
前記検出手段によって検出された前記指示位置の数が2点である場合、前記第1の認識手段及び前記第2の認識手段のうち前記第1の認識手段の認識結果を出力し、前記検出手段によって検出された前記指示位置の数が前記2点から1点に減少したことに応じて、前記第1の認識手段及び前記第2の認識手段のうち前記第2の認識手段の認識結果を出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴とは、前記画像に写っている前記所定の物体の一部の大きさ、又は前記画像に写っている前記所定の物体の方向を表す特徴を含むことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記出力手段は、所定の表示部に表示されている画像に対して、前記第1の認識手段あるいは前記第2の認識手段によって認識された前記所定の操作の操作量に応じた変化量を与える処理を行う
ことを特徴とする請求項1または2のいずれか1項に記載の情報処理装置。
【請求項4】
前記所定の操作とは、前記表示部によって表示されている画像に関する長さを変化させる指示、及び、前記表示部によって表示されている画像に関する方向を変化させる指示の少なくともいずれかを入力するための操作を含む
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記所定の操作とは、前記表示部によって表示されている画像を拡大あるいは縮小させる指示、及び、前記表示部によって表示されている画像を回転させる指示の少なくともいずれかを入力するためのマルチタッチ操作を含む
ことを特徴とする請求項3または4に記載の情報処理装置。
【請求項6】
前記第2の認識手段は、前記検出手段が検出する前記指示位置の数が1点に遷移したことに基づいて、前記遷移の前に前記第1の認識手段が認識していた操作と同じ操作を引き継いで認識する
ことを特徴とする請求項4または5に記載の情報処理装置。
【請求項7】
前記所定の操作は、前記表示部に表示されている画像の縮小を指示する操作を含み、前記第1の認識手段は、2点の前記指示位置の間の距離に応じて前記縮小を指示する操作を認識し、前記第2の認識手段は、前記第1の認識手段が前記縮小を指示する操作を認識している間に前記検出手段に検出される指示位置数が減った場合に、前記縮小を指示する操作を引き継いで認識する
ことを特徴とする請求項3乃至6のいずれか1項に記載の情報処理装置。
【請求項8】
前記所定の物体を撮像した画像は、距離画像センサによって撮像された距離画像であって、
前記距離画像センサは、前記所定の物体と、前記所定の物体を用いたタッチ入力の対象となる操作面との間の距離に対応する軸に沿った距離情報が前記距離画像の画素値に反映されるように設置される
ことを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記第1の認識手段は、前記距離画像から検出される前記指示位置と前記操作面の間の距離に応じて、前記所定の物体と前記操作面とのタッチ状態を認識し、前記第2の認識手段は、前記距離画像から検出される前記所定の物体の重心の位置と前記操作面との間の距離に応じて前記所定の物体と前記操作面とのタッチ状態を認識する
ことを特徴とする請求項8に記載の情報処理装置。
【請求項10】
更に、前記出力手段は、前記出力手段によって前記第2の認識手段による認識結果を出力されている間に、前記検出手段によって検出された指示位置の数が0点に遷移した場合、前記距離画像に基づいて推定される前記所定の物体と操作面との間の距離が所定の条件より小さいことに基づいて前記第2の認識手段による認識結果を出力することを特徴とする請求項8または9に記載の情報処理装置。
【請求項11】
前記出力手段は、前記検出手段によって検出された指示位置の数が3点以上に遷移した場合、前記第2の認識手段の認識結果を出力する
ことを特徴とする請求項2に記載の情報処理装置。
【請求項12】
前記第1の認識手段は、前記検出手段によって検出された2点の前記指示位置の間の距離の変化に基づいて、所定の表示部に表示されている画像を拡大あるいは縮小させる指示を表す操作を認識し、
前記抽出手段は、前記所定の物体を撮像した画像のうち、前記所定の物体の像に対応する領域に基づいて、前記所定の物体の大きさに関する特徴を抽出し、
前記第2の認識手段は、前記抽出手段によって抽出される、前記所定の物体の大きさに対応する特徴の変化に基づいて、前記表示部に表示されている画像を拡大あるいは縮小させる指示を表す操作を認識する
ことを特徴とする請求項1乃至11のいずれか1項に記載の情報処理装置。
【請求項13】
前記第1の認識手段は、前記検出手段によって検出された2つ以上の前記指示位置の相対的な回転に基づいて、所定の表示部によって表示されている画像を回転させる指示を表す操作を認識し、
前記抽出手段は、前記所定の物体を撮像した画像のうち、前記所定の物体の像に対応する領域の形状に関する情報に基づいて、前記所定の物体の方向に関する特徴を抽出し、前記第2の認識手段は、前記抽出手段によって抽出される、前記所定の物体の方向に対応する特徴の変化に基づいて、前記表示部に表示されている画像を回転させる指示を表す操作を認識する
ことを特徴とする請求項1乃至12のいずれか1項に記載の情報処理装置。
【請求項14】
更に、前記検出手段によって検出された前記指示位置の数の遷移に基づいて、前記第1の認識手段と前記第2の認識手段のいずれかを選択する選択手段を備え、
前記第1の認識手段及び前記第2の認識手段は、前記選択手段に選択されたことに応じて、前記所定の物体を用いて入力された操作の認識を実行することを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
【請求項15】
前記所定の物体は、操作者の片手であって、
前記抽出手段は、前記操作者の片手を撮像した画像のうち前記片手が撮像された手領域の特徴を抽出し、
前記検出手段は、前記手領域のうち、1以上の指先の位置を検出することを特徴とする請求項1乃至14のいずれか1項に記載の情報処理装置。
【請求項16】
検出手段により、所定の物体を撮像した画像から、前記所定の物体の一部によって示される指示位置を検出する検出工程と、
第1の認識手段により、前記検出工程において検出された2つ以上の前記指示位置の位置関係の変化に基づいて、所定の操作を認識する第1の認識工程と、
抽出手段により、前記画像から、前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴を抽出する抽出工程と、
第2の認識手段により、前記抽出工程において抽出された特徴の変化に基づいて、前記所定の操作を認識する第2の認識工程と、
出力手段により、前記検出工程において検出されている前記指示位置の数が2点である場合、前記第1の認識手段及び前記第2の認識手段のうち前記第1の認識手段の認識結果を出力し、前記検出工程において検出されている前記指示位置の数が前記2点から1点に減少したことに応じて、前記第1の認識手段及び前記第2の認識手段のうち前記第2の認識手段の認識結果を出力する出力工程と、を備えることを特徴とする情報処理装置の制御方法。
【請求項17】
コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項16に記載された情報処理装置の制御方法を実行させるプログラム。
【請求項18】
請求項17に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項19】
操作者の手を撮像した画像から、前記手のうち1以上の指先の位置を検出する検出手段と、
前記画像から、前記指先の位置とは異なる前記手の状態であって、前記手により所定の操作が入力される場合に変化を伴う状態を表す特徴を抽出する抽出手段と、
前記検出手段によって検出された前記指先の位置の数が2点である場合、検出された前記所定の数の指先の位置の位置関係の変化に基づいて、前記操作者によって入力される前記所定の操作を認識し、前記検出手段によって検出された前記指先の位置の数が2点から1点に減少した場合、前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作の認識を続ける認識手段
を備えることを特徴とする情報処理装置。
【請求項20】
検出手段により、操作者の手を撮像した画像から、前記手のうち1以上の指先の位置を検出する検出工程と、
抽出手段により、前記画像から、前記指先の位置とは異なる前記手の状態であって、前記手により所定の操作が入力される場合に変化を伴う状態を表す特徴を抽出する抽出工程と、
認識手段により、前記検出工程において検出された前記指先の位置の数が2点である場合、検出された前記所定の数の指先の位置の位置関係の変化に基づいて、前記操作者によって入力される所定の操作を認識し、前記検出工程において検出された前記指先の位置の数が2点から1点に減少した場合、前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作の認識を続ける認識工程
を備えることを特徴とする情報処理装置の制御方法。
【請求項21】
コンピュータに読み込ませ実行させることによって、前記コンピュータに、請求項20に記載された情報処理装置の制御方法を実行させるプログラム。
【請求項22】
請求項21に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像された画像に基づいてユーザの操作を認識する技術に関する。
【背景技術】
【0002】
近年では、AR(Augmented Reality)やMR(Mixed Reality)といった環境において、物理的には存在しない操作面(仮想面)に対するタッチ操作が行われる場面がある。また、プロジェクションによってユーザインタフェース(以下、UI)を壁や机など任意の操作面に投影し、投影したUIに対してタッチ操作が行われる場面がある。このような場面においては、ステレオカメラや距離画像センサ等の画像取得手段を用い、操作面と、所定の操作体の一部(例えばユーザの指先)との間の距離に基づく判断により、両者が接触しているか否かを判断することが多い。具体的には、操作面と、ユーザの指先との間の距離に所定の閾値を設ける。
【0003】
画像を用いた体の一部の動きに基づく操作の認識においては、画像取得手段と操作者の位置関係によっては、検出すべき操作者の体の一部が、画像取得手段の死角に入り、その動きを正しく認識できないことが問題となる。
【0004】
上記の問題に対して、特許文献1が開示する技術は、操作者の手先の3次元モデルを用いてその位置と姿勢を連続的にトラッキングすることで、死角に入った場合でも手先位置を大まかに推定し、その動きに基づく空間ジェスチャ操作を継続して認識できる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013−205983号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1のように、死角に隠れた部分の位置を推定することによれば、手等の大きな動きに基づく空間ジェスチャ操作の認識に必要な情報を補うことが可能となる。しかしながら、死角に隠れた指先が示す指示位置の座標を正確に推定し、指先が操作面にタッチしているか否かの判定を行うことは難しい。
【0007】
表示された画像の拡縮や回転などを指示するために、2つの指示位置の動きを協調させるマルチタッチ操作においては、2点のうちの片方だけが死角に隠れることもある。マルチタッチ操作は、どちらか一方でも、指示位置の座標の取得・タッチ判定に失敗すると、操作内容を正しく認識するのが困難となる。
【0008】
そこで本発明は、操作体の一部が画像取得手段の死角に隠れた影響で入力中の操作を構成する複数の指示位置の少なくとも1つの検出が困難となった場合でも、入力中の操作を継続して認識可能とすることを目的とする。
【課題を解決するための手段】
【0009】
本発明は、上記の目的を達成する一手段として、所定の物体を撮像した画像から、前記所定の物体の一部によって示される指示位置を検出する検出手段と、前記検出手段によって検出された2つ以上の前記指示位置の位置関係の変化に基づいて、所定の操作を認識する第1の認識手段と、前記画像から、前記所定の物体の前記所定の操作の入力において変化を伴う状態に関する特徴を抽出する抽出手段と、前記抽出手段によって抽出された特徴の変化に基づいて、前記所定の操作を認識する第2の認識手段と、前記検出手段によって検出された前記指示位置の数が2点である場合、前記第1の認識手段及び前記第2の認識手段のうち前記第1の認識手段の認識結果を出力し、前記検出手段によって検出された前記指示位置の数が前記2点から1点に減少したことに応じて、前記第1の認識手段及び前記第2の認識手段のうち前記第2の認識手段の認識結果を出力する出力手段と、を備える。
【発明の効果】
【0010】
本発明によれば、所定の物体の一部が画像取得手段の死角に隠れた影響で入力中の操作を構成する複数の指示位置の少なくとも1つの検出が困難となった場合でも、入力中の操作を継続して認識可能となる。
【図面の簡単な説明】
【0011】
図1】第1の実施形態の情報処理装置を利用するシステムの外観の一例を表す図。
図2】第1の実施形態の情報処理装置のハードウェア構成、及び機能構成の一例を表すブロック図。
図3】マルチタッチ操作認識処理の流れの一例を表すフローチャート。
図4】第1の認識処理の流れの一例を表すフローチャート。
図5】拡縮操作中および回転操作中の手の様子を表す図。
図6】第2の認識処理の流れの一例を表すフローチャート。
図7】認識結果が不連続となる状態の一例を表す図。
図8】第1の認識処理から第2の認識処理への切り替え時の補正処理の例を表す図。
図9】第2の認識処理から第1の認識処理への切り替え時の補正処理の例を表す図。
図10】実施例2の情報処理装置を利用するシステムの外観と機能構成の一例を表す図。
図11】空間ジェスチャ操作中認識処理の流れの一例を表すフローチャート。
図12】空間ジェスチャ操作中の人体の様子を示す図。
【発明を実施するための形態】
【0012】
以下、本発明に係る実施例の情報処理を、図面を参照して詳細に説明する。なお、実施例に記載する構成は例示であり、本発明の範囲をそれらの構成に限定する趣旨のものではない。
【0013】
<第1の実施形態>
まず、第1の実施形態として、テーブルトップインタフェースシステムのテーブル面に投影されたアイテムに対し、拡縮・回転を指示するために、操作者が片手2本指によって入力するマルチタッチ操作を認識する処理の例を説明する。
【0014】
マルチタッチ操作とは、複数の独立したタッチ位置を同時に指示しながら、それらを予め定められた規則に従って動かすことによって、当該動きに対応付けられた指示コマンドを入力する操作方法である。一般的にスマートホンやタブレットPCなど、携帯型装置にマルチタッチ操作を入力する場合、操作者は、片手で装置を支持し、もう片方の手の複数の指をマルチタッチ操作に用いるのが自然である。従って操作者は、片手でのマルチタッチ操作に慣れており、携帯型装置のみならず他の機器を利用する場合でも、片手でマルチタッチ操作が入力可能であることが期待される。
【0015】
携帯型装置では、表示画面に設けたタッチセンサから、タッチされた位置の座標情報を取得することが多い。この場合、マルチタッチに用いられる手が片手であることが特にタッチ検出の精度に影響することは少ない。それに対し、物体の一部とタッチ対象面との間の接触/非接触状態を、距離画像センサやステレオカメラなどによって取得した距離画像に基づいて判定するシステムの場合は、当該物体の一部がセンサやカメラの死角に入ると、正確な検出が困難となる。特に、片手によるマルチタッチ操作の場合は、操作中の指先が、手の甲部分に隠されることで、センサやカメラの死角に入り易いという問題がある。マルチタッチ操作に用いられている指先のうち1つでも死角に入ると、指とタッチ対処面の間の近接状態を正確に判定する困難性に加え、指先の追跡ができないため、既に継続されているマルチタッチ操作による指示を認識し続けることが難しくなる。操作者にとっては、継続して入力中のマルチタッチ操作の認識が中断されたり、指先を死角にならない位置に移動させて操作を繰り返したりするのは煩わしい。
【0016】
そこで第1の実施形態では、操作者が1つの手を使ってマルチタッチ操作を入力している場合は、距離画像から検出されるタッチ位置の数に応じて、マルチタッチ操作による指示の内容を認識する方法を異ならせる。具体的には、2つのタッチ位置が検出されている間は、従来通り、2つのタッチ位置の動きを追跡することで、マルチタッチ操作の指示内容を認識する。それに対し、2つ検出されていたタッチ位置が1つに減少した場合は、マルチタッチ操作は継続中であるが、片方のタッチ位置を指示する指先が、死角に入った可能性が高いとみなす。そして、指先に示されるタッチ位置の動きではなく、距離画像から抽出される手領域の他の特徴に基づいて、マルチタッチ操作を認識する。なお、本実施形態は、複数の独立した位置を同時に指示することが可能であれば、ユーザがマルチタッチ操作の入力に用いる物体(操作体)として、手指だけでなくスタイラスやロボットアームなどの器具を利用する場合にも適用可能である。
【0017】
[システムの外観]
図1は、本実施形態に係る情報処理装置100を設置したテーブルトップインタフェースシステムの外観の一例である。また、3次元空間内の位置情報を定義する座標軸も示す。操作面101は、テーブルトップインタフェースのテーブル部分であり、操作者は、操作面101をタッチすることでタッチ操作を入力することが可能である。本実施形態では、操作面101の上方に、操作面を見下ろすようにして距離画像センサ102が設置される。距離画像とは、各画素の値に、当該距離画像の撮像手段のレンズ中心などの基準位置から、当該画素に撮像された被写体表面までの距離に対応する情報が反映された画像である。本実施形態において、距離画像センサ102が撮像する距離画像の画素値には、距離画像センサ102から、操作面101あるいはその上方に存在する物体表面までの距離が反映される。撮像された距離画像は、情報処理装置100に入力画像として入力される。情報処理装置100は、入力画像を解析することで操作者の手106の三次元位置を取得し、入力される操作を認識する。従って操作者は、操作面101と距離画像センサ102の間の空間のうち、距離画像センサ102によって撮像可能な範囲で手などの所定の物体を動かすことによって、空間ジェスチャ操作を入力することも可能である。本実施形態では、赤外光の反射パターン(または反射時間)によって距離情報を取得する方式のセンサを利用する。
【0018】
また本実施形態では、可視光カメラ103もまた、上方から操作面101を見下ろすようにして設置される。情報処理装置100は、可視光カメラ103を制御して、操作面101に載置された物体を撮像してその読み取り画像を得る書画カメラとして機能することができる。情報処理装置100は、可視光カメラ103によって得られる可視光画像や、距離画像センサ102によって得られる距離画像に基づいて、操作面101上の空間に存在する物体を検出し、さらに識別する。物体には、例えば、操作者の手、紙媒体や本などのドキュメントやその他の立体物を含む。ただし、図1に例示するシステムの場合は、距離画像センサ102と可視光カメラ103の画角には、テーブル周囲に存在する操作者の頭部は含まれない。従ってシステムは、ユーザの立ち位置を特定する場合、ユーザの顔や頭部を検出するのではなく、距離画像から抽出した手領域の方向や位置に基づく推定処理を必要とする。
【0019】
プロジェクタ104は、操作面101の上面に画像の投影を行う。本システムでは、操作面101が表示面を兼ねており、操作者は、投影された画像に含まれるアイテム105に対して、タッチや空間ジェスチャによる操作を行う。上述したように、本実施形態では、手106の検出および操作の認識には、距離画像センサ102で取得した距離画像を用いる。距離画像を用いることで、プロジェクタ104の投影光の影響でユーザの手の色が変化しても影響を受けにくいという利点がある。本システムの表示装置としては、プロジェクタ104に替えて、操作面101を液晶ディスプレイとするなどとすることもできる。その場合、可視光画像からの肌色領域を検出するなどして画像から人の手を検出する方式を用いることでも、投影光の影響を受けずに手の検出が可能である。
【0020】
なお、操作面101を上方からみた画像が得られる構成であれば、必ずしも距離画像センサ102及び可視光カメラ103自体が上方に設置されている必要はなく、例えばミラーを用いて反射光を撮像するように構成しても構わない。プロジェクタ104も同様に、図1の例では、斜め上方から見下ろすように操作面101上への投影を行うが、異なる方向に向けて投影された投影光を、ミラーなどを利用して操作面101に反射させてもよい。
【0021】
本実施形態では、操作面101上の三次元空間に図1に示すx、y、z軸を定義し、位置情報を扱う。ここでは一例として、テーブルの上面に平行な二次元がxy平面、テーブル上面に直交し上方に伸びる方向をz軸の正方向としている。なお、本実施形態では、z軸方向は、世界座標系での高さ方向に相当する。しかしながら本実施形態は、ホワイトボードや壁面など、水平ではない面を操作面101とするシステムにも適用可能である。
【0022】
[装置の構成]
図2(a)は、本実施形態に係る情報処理装置100を含むテーブルトップインタフェースのハードウェア構成図である。中央処理ユニット(CPU)200は、RAM202をワークメモリとして、ROM201や記憶装置203に格納されたOSやプログラムを実行して、各種処理の演算や論理判断などを行い、システムバス204に接続された各構成を制御する。CPU200が実行する処理には、後述するマルチタッチ操作の認識処理が含まれる。記憶装置203は、ハードディスクドライブや各種インタフェースによって接続された外部記憶装置などであり、実施形態の操作認識処理にかかるプログラムや各種データを記憶する。距離画像センサ102は、CPU200の制御に従い、アイテムが表示されるテーブルとアイテムを操作する操作者の手を含む空間の距離画像を撮像し、撮影した距離画像をシステムバス204に出力する。本実施形態では、距離画像の取得方法として、環境光やテーブル面の表示の影響が小さい赤外パターン投影方式を基に説明するが、用途に応じて視差方式や赤外光の反射時間を利用する方式などを利用することも可能である。プロジェクタ104は、CPU200の制御に従い、テーブルに操作対象となる画像アイテムを投影表示する。
【0023】
なお図1の利用例では、可視光カメラ103、距離画像センサ102、プロジェクタ104はそれぞれ情報処理装置100に入出力用のインタフェースを介して接続された外部装置であり、情報処理装置100と協同して情報処理システムを構成する。ただし、これらのデバイスは、情報処理装置100に一体化されていても構わない。
【0024】
図2(b)は、本実施形態における情報処理装置100の機能構成の一例を示すブロック図である。各機能部は、CPU200が、ROM201に格納されたプログラムをRAM202に展開し、後述する各フローチャートに従った処理を実行することで実現される。また例えば、CPU200を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【0025】
画像取得部210は、距離画像センサ102によって撮像された距離画像を、入力画像として一定時間毎に取得し、RAM202に随時保持する。なお画像取得部210が取得し、各機能部とやりとりする対象は、実際には画像データに対応する信号であるが、本明細書では単に「距離画像を取得する」あるいは「入力画像を取得する」として説明する。
【0026】
手領域抽出部211は、距離画像取得部210によって取得された入力画像の各画素について、閾値判定やノイズ低減処理を施し、距離画像中の手領域を抽出する。手領域とは、入力された距離画像のうち、操作体として操作者が利用する手が写っている領域である。検出部212は、手領域抽出部211によって抽出された手領域の輪郭情報に基づき、操作者の手の指先位置を検出し、指示位置として座標値を特定する。
【0027】
特徴抽出部213は、入力画像のうち手領域抽出部211によって抽出された手領域の部分から、操作体である手の状態に関する特徴を抽出する。抽出する特徴は、情報処理装置100が認識可能なマルチタッチ操作の種類に合わせて選択される。本実施形態では、手領域の大きさと方向に関する情報を抽出するが、このうちのいずれかだけを扱ってもよく、また、さらに他の特徴を抽出しても構わない。
【0028】
判定部214は、検出部212が検出した指示位置の座標と、手領域抽出部211が抽出した手領域の画素値情報に基づいて、操作体によるタッチ入力の有無を判定する。具体的には、少なくとも1つの指示位置のz座標(操作面からの高さに相当する値)が、所定のタッチ閾値より小さい場合に、操作体がタッチ状態にあると判定する。タッチ状態とは、タッチ操作を入力中の状態である。z座標が閾値より小さい指示位置が存在しない場合は、手領域内の画素値に基づいて、手の高さに相当する情報を取得し、閾値判定処理によって、手が操作面よりも十分高い位置にあるかを判定する。なお、手の高さと比較する閾値は、指示位置のz座標と比較するタッチ閾値とは異なる値であって、タッチ閾値よりも大きい。手の高さが、操作面よりも十分高い位置にある場合は、タッチ入力は行われてない非タッチ状態であると判定する。
【0029】
選択部215は、検出部212が検出したうち、タッチ状態にある指示位置の数の遷移に応じたマルチタッチ操作を認識するための処理方法を選択する。本実施形態の場合は、指示位置が2点に遷移した場合は、当該指示位置の位置関係の変化に基づく従来のマルチタッチ操作の認識処理(以下、第1の認識処理)が選択される。一方、指示位置の数が2点から1点に遷移した場合、及び3点以上の指示位置が検出された場合は、特徴抽出部213が抽出した、手領域の少なくとも一部の特徴が示す手の状態の変化に基づくマルチタッチ操作の認識処理(以下、第2の認識処理)が選択される。
【0030】
第1認識部216は、指示位置の検出状態が2点の指示位置が検出されている状態に遷移したことに応じ、選択部215により第1の認識処理が選択された場合に、第1の認識処理によって所定のマルチタッチ操作を認識する。第2認識部217は、検出されている指示位置が2点から1点に遷移したことに応じ、選択部215により第2の認識処理が選択された場合に、第2の認識処理によって所定のマルチタッチ操作を認識する。また、本実施形態では、3点以上の指示位置が検出された場合にも、選択部215は第2の認識処理を選択する。本実施形態で認識可能な所定のマルチタッチ操作には、テーブル101に表示された画像を拡大あるいは縮小させる指示のためのマルチタッチ操作(以下、拡縮操作)と、表示された画像を回転させる指示のためのマルチタッチ操作(以下、回転操作)を含む。拡縮操作は、本実施形態で認識可能な所定の操作は、画像アスペクト比を固定した拡大あるいは縮小に限らず、表示される画像に関する長さを変化させる指示全般を含む。また、回転操作には、回転の中心が固定された回転に限らず、表示される画像に関する方向を変化させる指示全般を含む。
【0031】
表示制御部218は、ROM201や記憶装置203に記憶された情報を用いて、本実施形態の表示部であるプロジェクタ104によって、テーブル101上に投影させる画像を生成する。例えば、第1認識部216または第2認識部217によるマルチタッチ操作の認識結果に基づいて、表示部に表示させている画像の少なくとも一部に対して、拡大/縮小、回転などの変形を施し、表示部に出力させる。出力された画像は、プロジェクタ104によって、操作面であるテーブル101上に投影表示される。投影される画像は、複数のアイテムを含み、アイテム毎に移動や拡大/縮小、回転が可能であってもよく、画像全体が移動や拡大/縮小、回転の対象であってもよい。
【0032】
[マルチタッチ操作の認識処理]
図3のフローチャートに従って第1の実施形態のマルチタッチ操作の認識処理を説明する。図3のフローチャートの処理は、情報処理装置の各機能部を構成するCPU200がROM201に記録されたプログラムをRAM202に展開して実行することで実現される。また、この処理は、距離画像センサ102によって撮影された距離画像が情報処理装置100に入力されたことに応じて起動される。
【0033】
ステップS301では、画像取得部210が、距離画像センサ102から、画像が投影されるテーブルと操作者の手を含む空間を撮像した距離画像を取得する。取得される距離画像の各画素には、センサから被写体までの距離に対応する値が、画素値として保持される。よって、画素値に対して、距離画像センサ102のレンズ特性および操作面101との相対位置関係に基づく座標変換を施すことで、各画素の座標をテーブルに定義された実世界上の座標系にマッピングすることが可能である。
【0034】
ステップS302では、手領域抽出部211が、距離画像の各画素を走査し、距離画像から操作者の手が写る手領域を抽出する。本実施形態においては、入力された操作者の手を含む距離画像と、予め取得した背景のみの距離画像(テーブルのみを撮像した距離画像)との差分を画素毎に求め、差分が閾値よりも大きくなる画素を手領域として抽出する。すなわち、テーブル上面からの高さが閾値以上高い画素が集合した領域を、テーブルより上に存在する手が写っている領域とみなして抽出する。この方式は背景差分法といわれる。さらに、抽出された領域に、膨張収縮処理を施し、距離画像センサの誤差に由来する微小なノイズを除去することで手領域を補正する。なお、環境によっては、センサからの距離が閾値よりも近い画素を手領域として抽出することも可能であり、この場合は背景画像として用いるためのテーブルのみを撮像した距離画像を予め取得することが不要となる。
【0035】
ステップS303では、特徴抽出部213が、ステップS302において抽出された手領域から、手の特徴を取得する。本実施形態では、手の大きさと、手の傾き(xy平面内での方向)を取得する。ここで手の大きさは、拡縮操作を認識するための特徴として取得される。また、手の傾きは、回転操作を認識するための特徴として取得される。ステップS303で取得される手の特徴とそれを利用する操作の認識処理については後述する。
【0036】
ステップS304では、検出部212が、ステップS302において抽出された手領域に基づいて、指先に相当する位置を探索し、指示位置として3次元座標を検出する。本実施形態では、まず手領域の輪郭点を抽出し、各輪郭点について、隣接する輪郭点が成すベクトル間の角度を算出する。そして、ベクトル間角度が閾値よりも小さくなる輪郭点を指先位置の候補点として抽出し、さらに複数の指先位置の候補点が密集する位置を指先として特定する。つまり、輪郭が比較的細まった突端部を表す部分の先端を指先位置として特定する。特定した指先位置、距離画像の画素値、実世界座標系への座標変換パラメータを基に、テーブルに定義された実世界座標系における指示位置の3次元座標を算出することが可能である。さらに、前フレームにおいて検出された指示位置と、最新の指示位置の距離関係に基づき、フレーム間で同一の指先同士を対応付ける。なお、指示位置の検出方法はこれに限らず、円形テンプレートマッチングや、手の構造に基づく制約を使って位置を絞り込む方法を利用することも可能である。本実施形態において、距離画像の画素値は、距離画像センサ102と物体との距離を表す。従って、指先の高さ(指示位置のz座標)は、距離画像の中で、検出された指先位置に対応する画素の画素値と、テーブルの高さ情報に基づき、テーブルから指先までの距離値を算出することで取得する。ただし、テーブルのみを撮像した背景画像と、入力された距離画像の指先位置に対応する画素値同士の差分を、指先の高さに対応する値として簡易に算出することも可能である。
【0037】
ステップS305では、判定部214が、ステップS304において取得された指示位置の座標情報のうち、高さに対応する情報に基づいて、タッチ状態にある指示位置が存在するか否かを判定する。本実施形態では、タッチ閾値と、タッチ閾値よりも高い非タッチ閾値を設け、タッチ閾値よりも低い位置に存在する指示位置をタッチ状態にあると判定する。一旦タッチ状態と判定された指示位置は、非タッチ閾値よりも高い位置に移動した時点で、非タッチ状態と判定される。このように閾値をそれぞれ設けることにより、距離画像センサの検出誤差が原因となって、タッチ中であるはずの指が非タッチ状態であると判定されることで、操作が中断されるという影響を抑えることが可能となる。タッチ状態にある指示位置が存在すると判定した場合(ステップS305でYes)、ステップS306に進む。タッチ状態にある指示位置が存在しないと判定した場合(ステップS305でNo)、ステップS312に進む。
【0038】
ステップS306では、選択部215が、タッチ状態にある指示位置の数を特定する。特定される数は、操作面をタッチすることによって指示されているタッチ位置の数に相当する。選択部215は、特定した数をRAM202に保持する。ステップS307では、選択部215は、特定されたタッチ状態にある指示位置の数が2か否かを判定する。2であると判定した場合(ステップS307でYes)、処理はステップS308に進み、選択部215は、第1の認識処理を選択する。選択部215は、第1の認識処理が選択されていることを示す情報をRAM202に保持するとともに、第1認識部216に認識処理の実行を指示する信号を通知する。一方、タッチ状態にある指示位置の数が2ではないと判定した場合(ステップS307でNo)、処理はステップS309に進む。
【0039】
ステップS309では、選択部215が、特定されたタッチ状態にある指示位置の数が1か否かを判定する。タッチ状態にある指示位置の数が1であると判定した場合(ステップS309でYes)、処理はステップS310に進む。一方、タッチ状態にある指示位置の数が1ではないと判定した場合(ステップS309でNo)、処理はステップS311に進む。なお、ステップS309からステップS311に進む場合は、タッチ状態にある指示位置の数が3以上である場合に相当する。
【0040】
ステップS310では、選択部215が、特定されたタッチ状態にある指示位置の数が2点以上から1点に遷移したか否かを判定する。選択部215は、RAM202に保持されている指示位置の数の情報を参照して判定を行う。タッチ状態にある指示位置の数が2点以上から1点に遷移したと判定した場合(ステップS310でYes)、処理はステップS311に進む。一方、タッチ状態にある指示位置の数が2点以上から1点に遷移したのではない、と判定した場合(ステップS310でNo)、処理を修了する。タッチ状態にある指示位置の数が2点以上から1点に遷移したのではない場合とは、すなわち、0点から1点に遷移した場合である。本実施形態ではこの場合、操作者は、始めから1点の指示位置を使ったシングルタッチ操作を意図している可能性、あるいは、2点目の指示位置がタッチされる前段階の状態である可能性が高いとみなす。従って、マルチタッチ操作の認識処理である図3のフローチャートからは抜ける。ステップS311では、選択部215が、第2の認識処理を選択する。選択部215は、第2の認識処理が選択されていることを示す情報をRAM202に保持するとともに、第2認識部215に認識処理の実行を指示する信号を通知する。
【0041】
一方、ステップS305において、タッチ状態にある指示位置(タッチ位置)が存在しなかった場合、ステップS312では、判定部214が、抽出された手領域に基づいて、手の高さを取得する。本実施形態では、手の高さとして、手領域の重心に当たる画素値に対応する高さ情報を求める。ただし、重心の画素値を採用する方法に限らず、例えば、手首より先の部分の画素値の平均を利用するなどしてもよい。ステップS313において、判定部214は、取得した手の高さが、所定の高さの閾値以上に大きいか否かを判定する。手の高さが所定の高さの閾値より小さいと判定された場合(ステップS313でNo)、ステップS315に進む。そして、過去の処理で選択された状態にある認識処理が実行される。一方、手の高さが所定の高さの閾値以上に大きいと判定された場合(ステップS313でYes)、ステップS314に進む。ステップS314において、選択部215は、認識処理の選択を解除する。本実施形態では、RAM202に保持されている、選択状態にある認識処理を示す情報を参照し、対応する認識部に選択の解除を通知するとともに、当該情報を削除する。タッチ状態にある2点の指示位置の検出数に基づくジェスチャ認識の選択および解除処理の詳細は後述する。
【0042】
そして、ステップS315では、選択された状態にある認識処理が実行される。ステップS308で第1の認識処理が選択された場合、ステップS315では、第1認識部216が、タッチ状態にある2点の指示位置の位置関係の変化に基づいて、所定のマルチタッチ操作を認識する。ステップS311で第の認識処理が選択された場合、ステップS315では、第2認識部217が、特徴抽出部213によって抽出された特徴に基づく操作者の手の状態変化に基づいて、所定のマルチタッチ操作を認識する。それぞれの認識処理の詳細は後述する。ステップS316は、表示制御部218が、ステップS315における第1認識部216あるいは第2認識部217のいずれかの認識結果に基づいて、表示部であるプロジェクタ104に対する出力を制御する。例えば、拡縮操作が認識された場合には、ステップS315において出力される拡縮倍率に応じて表示されている画像を拡大あるいは縮小させる。また、回転操作が認識された場合には、ステップS315で出力される回転角度に応じて、表示されている画像を回転させる。
【0043】
本実施形態では、以上説明したステップS301からS316のマルチタッチ操作の認識処理を、距離画像センサ102から距離画像が入力される毎に繰り返し行う。従って処理が繰り返される周期は、距離画像センサ102の撮像映像のフレームレートに一致する。
【0044】
[第1の認識処理]
ここで、ステップS308において第1の認識処理が選択された場合に、ステップS315で実行される認識処理の詳細を説明する。第1の認識処理では、タッチ状態にある2つの指示位置の位置関係の変化に基づいて、マルチタッチ操作が認識される。本実施形態では、少なくとも2点の指示位置間の距離の変化に基づいて、表示されている画像を拡大あるいは縮小させる指示を入力するマルチタッチ操作を認識可能である。なお、2点の指示位置間の距離を広げることによって表示画像の拡大を指示するマルチタッチ操作はピンチアウト操作、2点の指示位置間の距離を狭めることによって表示画像の縮小を指示するマルチタッチ操作はピンチイン操作と呼ばれることがある。さらに本実施形態では、2点の指示位置の相対的な回転に基づいて表示されている画像を回転させる指示を入力するマルチタッチ操作を認識可能である。ただし、ここに挙げた操作は一例であり、これらに限られない。
【0045】
図4のフローチャートを用いて、ステップS315において第1認識部216が実行するマルチタッチ操作の認識処理の流れを説明する。まず、ステップS401において、第1認識部216は、2つの指示位置間のユークリッド距離を取得する。ステップS402では、現在の処理フレームが、第1の認識処理を開始する最初のフレームであるかを判定し、最初のフレームであると判定された場合(ステップS402でYes)、ステップS403に進む。最初のフレームではない場合(ステップS402でNo)、ステップS404に進む。ステップS403では、ステップS401で現在のフレームから取得された2つの指示位置間の距離を表す情報を、基準距離の情報としてRAM202に保持する。
【0046】
ステップS404では、基準距離としてRAM202に保持されている距離と、現在のフレームから取得される2つの指示位置間の距離の比率を、算出により取得する。ステップS405では、取得した比率と、前回の出力時に取得した比率と、の差分が所定の閾値以上かを判定する。差分が閾値以上大きいと判定される場合(ステップS405でYes)、ステップS406に進む。ステップS406では、ステップS404で取得した比率を、マルチタッチ操作で指示された表示画像の拡縮倍率として、表示制御部218に出力する。差分が閾値より小さいと判定される場合(ステップS405でNo)、ステップS406を省略してステップS407に進む。
【0047】
ステップS407では、2つの指示位置を結ぶベクトルの方向として、x軸周りの回転角度を取得する。ステップS408では、現在の処理フレームが、第1の認識処理を開始する最初のフレームであるかを判定し、最初のフレームであると判定された場合(ステップS408でYes)、ステップS409に進む。最初のフレームではない場合(ステップS408でNo)、ステップS409に進む。ステップS409では、ステップS407で現在のフレームから取得された回転角度を、基準方向の情報としてRAM202に保持する。
【0048】
ステップS410では、基準方向としてRAM202に保持されているx軸周りの回転角度と、現在のフレームから取得された回転角度の角度差を、算出により取得する。ステップS411では、取得した角度差と、前回の出力時に取得した角度差との差分が、所定の閾値以上かを判定する。差分が閾値以上大きいと判定される場合(ステップS411でYes)、ステップS412に進む。ステップS412では、ステップS410で取得した角度差を、マルチタッチ操作で指示された表示画像の回転角度として、表示制御部218に出力する。差分が閾値より小さいと判定される場合(ステップS411でNo)、ステップS412を省略して図4のフローチャートの処理を終了する。
【0049】
なお、基準距離および基準方向は、一旦設定された場合、第1の認識処理の選択状態が解除されるまで変更されない。本実施形態では、ステップS316の処理に基づいて選択が解除される際に、基準距離および基準方向の情報がRAM202から削除される。また、情報処理装置100が拡縮操作を認識しない場合は、拡縮操作に対応するステップS401からステップS406の処理は省略可能である。同様に、情報処理装置100が回転操作を認識しない場合は、拡縮操作に対応するステップS407からステップS412の処理は省略可能である。
【0050】
[第2の認識処理]
次に、ステップS311において第2の認識処理が選択された場合に、ステップS315で実行される認識処理の詳細を説明する。第2の認識処理は、指示位置を2点検出できない場合の補完手段として、指示位置の検出可否に依存せずに、手領域から抽出することが可能な手の特徴が示す手の状態の変化に基づいて所定のマルチタッチ操作を認識する。第2の認識処理では、第1の認識処理で認識可能なピンチアウト操作、ピンチイン操作、回転操作による指示のそれぞれを第1の認識処理とは異なる方法で認識することが可能である。
【0051】
本実施形態では、拡縮操作を認識するために、2つの指示位置間の距離の変化に代わる情報として、手領域から抽出した特徴が示す、手の見た目の大きさ(目で見て、手だと認識できる部分の大きさを指す。以下、単に「手の大きさ」という。)の変化を用いる。ここで、図5(a)の上段は、ピンチイン操作中の手106を、xy平面に平行に見た様子を表し、図5(a)の下段は、上段と同じタイミングでの距離画像中の手106の見た目の様子を表す。図5(a)より、ピンチイン操作により2点の指示位置の間の距離501が小さくなるのに応じて、距離画像中の手の見た目の大きさを表す円602の大きさが変化することが分かる。これは、指先がセンサの死角に入り、指示位置自体を検出できなくなった場合でも、別途継続して検出可能な変化である。そこで第2の認識処理は、距離画像中の手領域の大きさが大きくなれば拡大、小さくなれば縮小を示す拡縮操作として認識し、手領域の大きさの変化量に応じた拡縮率を出力する。ただし、2つの指示位置間の距離は略0に近づけることが可能であるのに対し、手の見た目の大きさは、こぶしの大きさ程度が下限となる。そのため、2つの指示位置間の距離変化に基づいて得られる縮小倍率と、手の見た目の大きさ変化に基づいて得られる縮小倍率が一致するとは限らない。
【0052】
本実施形態では、特徴抽出部213が、ステップS303において、手領域のうち手首より先の部分の外接円を、手の形状を近似した図形として特定し、その直径を「手の大きさ」として算出する。手首より先のいわゆる「手」の部分は、ピンチイン操作/ピンチアウト操作のために指を動かしたときに、その見た目の大きさに変化が生じる部分である。手領域から「手」の部分を特定し、「腕」の部分の面積を除外して特徴を取得することで、ピンチイン操作/ピンチアウト操作に伴う手の大きさの変化をより敏感に検出することができる。ただし、抽出された手領域のうち、少なくとも「手」の部分を含む一部から特徴を抽出すれば、ピンチイン操作/ピンチアウト操作に伴う手の大きさの変化を検出することは可能であるため、「腕」を含む領域全体やその一部から特徴を抽出しても構わない。なお、外接円の大きさの他、距離画像センサ102の設置位置等に応じて、手領域の面積の大きさや、手の甲部分の中心から手領域の輪郭点までの最長距離を、「手の大きさ」として抽出してもよい。
【0053】
さらに、第2の認識処理では、手の見た目の方向(以下、単に「手の方向」という)に基づいて回転操作を認識する。図5(b)は、回転操作中の手の見た目の様子を示す。図5(b)より、回転操作中の2つの指示位置を結ぶベクトル503の方向の変化に応じて、距離画像中の手の方向を表すベクトル504も変化することが分かる。これは、指先がセンサの死角に入った場合でも、別途継続して検出可能な特徴の変化である。そこで第2の認識処理は、距離画像中の手領域の方向の変化に応じて回転操作を認識し、その変化量に応じた回転角度を出力する。本実施形態では、特徴抽出部213がステップS303において、手領域の慣性主軸の方向を「手の方向」として算出する。なお、手の方向の算出処理においては、手領域の手から先の部分を特定し、操作者の腕に当たる画素を除外する処理を加えてから、慣性主軸の方向を求めても良い。手首から先に注目することで、指の動きに伴う変化をより敏感に検出することが可能となる。なお、「手の方向」の定義は、手領域の慣性主軸の方向に限らない。例えば、手領域の形状に基づいて領域内の2点を特定し、それらを結ぶベクトルの方向を手の方向としてもよい。
【0054】
図6のフローチャートを用いて、ステップS315において第2の認識部217が行う第2の認識処理の流れを説明する。第2の認識処理では、まず、ステップS601において、第2の認識処理を開始する最初のフレームであるかを判定する。最初のフレームであれば(ステップS601でYes)、ステップS602において、ステップS303で求めた「手の大きさ」の情報を、基準の大きさの情報としてRAM202に保持する。最初のフレームでなければ(ステップS601でNo)、ステップS603において、基準大きさに対する現フレームの「手の大きさ」の比率を取得する。ステップS604において、取得した比率と、前回の出力時に取得した比率との差分が閾値以上であるかを判定する。差分が閾値以上であれば(ステップS604でYes)、ステップS605において、ステップS603で取得した比率を、マルチタッチ操作で指示された表示画像の拡縮倍率として、表示制御部218に出力する。
【0055】
ステップS606において、現フレームが第2の認識処理を開始する最初のフレームであるかを判定する。最初のフレームであれば(ステップS606でYes)、ステップS607において、ステップS303で抽出した「手の方向」を示す情報と、基準方向の情報としてRAM202に保持する。最初のフレームでなければ(ステップS606でNo)、ステップS608において、基準方向と、現フレームから取得された「手の方向」の角度差を取得する。そして、ステップS609において、取得した角度差と、前回の出力時に取得した角度差との差分が閾値以上かを判定する。差分が閾値以上であれば(ステップS609でYes)、ステップS610において、ステップS608で取得した角度差を、マルチタッチ操作で指示された表示画像の回転角度として、表示制御部218に出力する。
【0056】
なお、ステップS604およびS609の閾値判定を加えることで、微小な手領域の姿勢の変動による不要な拡縮・回転操作認識結果の出力を抑えることが可能になる。基準の大きさおよび基準方向は、一旦設定された場合、第2の認識処理の選択状態が解除されるまでは変更されない。本実施形態では、ステップS316の処理に基づいて選択が解除される際にRAM202から削除される。また、情報処理装置100が拡縮操作を認識しない場合は、拡縮操作に対応するステップS601からステップS605の処理は省略可能である。同様に、情報処理装置100が回転操作を認識しない場合は、回転操作に対応するステップS606からステップS610の処理は省略可能である。
【0057】
[認識処理の選択と解除]
ここで、本実施形態において、タッチ状態にある指示位置の検出数に基づいて、マルチタッチ操作の認識処理を選択および解除する、ステップS305からステップS314の処理について作用と効果を説明する。
【0058】
第1の認識処理は、タッチ状態にある複数の指示位置の座標に基づいて、タッチ操作を認識する処理方法である。タッチ操作に慣れた操作者にとっては、入力した位置座標の変化が拡縮倍率や回転角度に反映される第1の認識処理は、第2の認識処理に比べてより直感的な認識手法であると考えられる。そこで、本実施形態は、タッチ状態にある指示位置が2つ検出できる場合には、可能な限り第1の認識処理を実行する構成としている。そのために、検出された指示位置数が2点である場合、選択部215は、第1認識部216による第1認識処理を選択する(ステップS308)。
【0059】
本実施形態では、第1の認識処理で2つの指示位置の位置関係の変化に基づくマルチタッチ操作を認識中に、タッチ位置の検出数が2点から1点に遷移した場合、選択部215は、第2の認識処理を選択して認識手段の切り替えを行う(ステップS311)。このような検出数の遷移は、マルチタッチ操作中の指先の片方が、距離画像センサ102の死角に入った場合などに生じる。ただし多くの場合、操作者自身は、操作方法を切り替えた意図はなく、途切れることなくタッチ入力を継続しているという認識でいる。切り替えられた第2の認識処理では、タッチ状態の指示位置が2点検出されているか否かに関わらず検出可能な手領域の特徴に基づいて、第1の認識処理で認識可能な所定のマルチタッチ操作と同じ操作を認識可能である。従って、タッチ状態の指示位置の検出数が2点から1点に遷移したタイミングで、第2の認識処理に切り替えることにより、認識中のマルチタッチ操作が操作者の意図に反して中断されてしまうことを防ぎ、認識結果を継続して出力することが可能となる。
【0060】
本実施形態では、マルチタッチ操作認識中でない場合に指示位置検出数が1点に遷移した場合、すなわち指示位置検出数が0点から1点に遷移した場合には、操作者が1つの指先によるシングルタッチ操作を意図的に行った可能性が高いと予測される。よってこの場合は、いずれのジェスチャ認識処理方法も選択せず、マルチタッチ操作の認識を開始しない(ステップS310でNo)。例えば、図3のフローチャートの後段において、あるいは並行してシングルタッチ操作の認識処理を実行した場合、検出されている1点の指示位置の動きをシングルタッチ操作として認識すべき入力か否かが判定される。
【0061】
また、本実施形態では、タッチ状態にある指示位置の検出数が3点以上に遷移した場合にも、第2の認識処理によってマルチタッチ操作を認識する(ステップS309でNo)。タッチ状態にある指示位置の検出数が3点以上の場合とは、例えば、手の指同士が近いため、マルチタッチに用いられていない指の指先も、タッチ閾値を越えて操作面101に近づいてしまう場合などである。このような場合に、第1の認識処理によってマルチタッチ操作を認識するためには、操作者の意図通りに入力に利用されている指示位置を選定する必要が生じる。本実施形態では、入力中のマルチタッチ操作を中断せずに認識し続けることを優先するため、第2の認識処理に処理方法を切り替え、マルチタッチ操作の認識を継続する。ただし当然ながら、タッチ状態にある3点以上の指示位置のうち、マルチタッチ操作に利用されている指示位置を選定する処理を加えた上で、第1の認識処理による認識を継続することも可能である。指示位置の選定は、例えば、直前に第1の認識処理で認識されていた2つの指示位置のそれぞれの直近の座標に最も近い2つの指示位置を選択する。また例えば、3以上の指示位置のうち検出され始めた時刻が古い方から2点の指示位置を選択するなど、システムの状況に適した方法が選択されればよい。
【0062】
また本実施形態では、いずれかの認識処理によりマルチタッチ操作を認識中に、タッチ状態にある指示位置の検出数が0点になった場合、手の高さを取得し(ステップS312)、操作面から十分高い位置にあるかを判定する(ステップS313)。本実施形態は、手が操作面よりも十分高い位置にはない場合、指先が死角に隠れるなどして一次的に指示位置が1つも検出できていないが、タッチ入力は継続されている可能性がある。従って、既に選択されている認識処理の選択状態を維持し、可能であればマルチタッチ操作の認識を行う。第1の認識処理が選択されている場合、検出数が0の状態では具体的な操作認識は困難なので、新たな出力を行わずに次のフレームの画像の取得を待つ。手が操作面よりも十分高い位置に移動した場合(ステップS313でYes)には、マルチタッチ操作が終了されたとみなし、認識処理の選択を解除する(ステップS314)。
【0063】
以上により、本実施形態では、タッチ状態にある指示位置の検出に失敗した場合おいても、マルチタッチ操作の認識を継続できる。さらに、シングルタッチ操作と、マルチタッチ操作中に1点を見失った場合を区別するので、シングルタッチ操作とマルチタッチ操作の認識が両立可能である。
【0064】
なお、上述した例では、ステップS312の手の高さを取得する処理について、手領域の重心の高さを取得する例を説明した。ただし、重心の高さに代わり、指の付け根周辺の高さを手の高さの基準として用いてもよい。タッチ操作は、ユーザが独自の姿勢で入力することが可能であるため、ユーザによっては、タッチ操作を終了するにあたり、手の高さは変えずに、指を操作面から浮かせるだけに留める場合がある。その様な場合い、手の重心の高さより、指の付け根周辺の高さの変動を検出することで、タッチ操作中か否かをより精度よく判断することができる。
【0065】
[補正処理を加える変形例]
2つのマルチタッチ操作の認識処理方法を切り替える際には、認識結果の出力値が不連続になる可能性がある。そこで、本実施形態に適用可能な変形例として、切り替え時に出力値が不連続とならないように補正を加える処理を説明する。
【0066】
(1)第1の認識処理から第2の認識処理への切り替え
マルチタッチ操作の一例として、拡縮操作の認識方法が、第1の認識処理から第2の認識処理に切り替わる際に発生する出力値(拡縮倍率)が不連続となる場合の例を図7(a)に示す。図7(a)は、時刻t0からt5にかけて取得される2点間の距離、「手の大きさ」、前フレームで取得した情報との比率、結果として出力される拡縮倍率を、左から右に順に並べている。時刻t0からt2までは第1の認識処理が実行され、時刻t2からt3にかけて処理方法が切り替わり、t3からt5の間は第2の認識処理が実行されている。図7(a)の例では、時刻t2からt3にかけて処理方法が切り替わる際に、出力値が120%から100%となり不連続が発生する。
【0067】
・補正処理1
補正処理1では、図3のフローチャートのステップS315において、第1の認識処理による最新の出力値が出力される度に、その情報を最終出力値として保持する。そして、ステップS311で第2の認識処理が選択されると、続くステップS315では、第2の認識処理による結果の値を、最終出力値で補正した値を出力する。補正処理1を加えた場合の拡縮操作の認識結果の例を図8(a)に示す。図8(a)の例では、認識処理が切り替わる直前(時刻t2)に第1の認識処理によって求められた比率120%を最終比率として保持し、切り替え以降の第2の認識処理においては、その比率に最終比率120%を乗じた上で出力する。これにより、時刻t2からt3にかけて認識処理が切り替わる際にも、出力値が120%となり不連続とならない。なお、回転操作の場合は、第2の認識処理の出力値に最終出力値を加えた上で出力することにより不連続を抑制できる。
【0068】
・補正処理2
補正処理2においても、第1の認識処理中に、最新の出力値を最終出力値として保持する。また、第1の認識処理中に、最新のフレームに基づくステップS303の処理で得られた手の状態に関する特徴(手特徴)の値を、最終手特徴として保持する。そして、ステップS311で第2の認識処理が選択されると、続くステップS315では、最新フレームから取得した手特徴を基準にするのではなく、前のフレームに基づく第1の認識処理によって保持された最終手特徴を基準として出力値を算出する。第2の認識処理への切り替え以降は、最終手特徴を基準として取得した出力値を、最終出力値で補正した値を出力する。
【0069】
補正処理2を加えた場合の拡縮操作の認識結果の例を図8(b)に示す。図8(b)の例では、認識処理が切り替わる直前(時刻t2)に第1の認識処理によって求められた比率120%を最終比率として保持する。さらに「手の大きさ」として抽出された値160mmを、最終手特徴のうち最終の「手の大きさ」として保持する。切り替え以降の第2の認識処理においては、最終の「手の大きさ」である160mmを基準大きさとして比率を算出し、さらにその比率に最終比率120%を乗じた上で出力する。これにより、時刻t2からt3にかけて認識処理が切り替わる際に、出力値が120%から128%となり、連続的に拡大操作が認識可能となる。
【0070】
(2)第2の認識処理から第1の認識処理への切り替え
マルチタッチ操作の一例として、拡縮操作の認識処理方法が、第2の認識処理から第1の認識処理に切り替わる際に発生する出力値(拡縮倍率)が不連続となる場合の例を図7(b)に示す。図7(b)の場合は、時刻t0からt2までは第2の認識処理が実行され、時刻t2からt3にかけて認識処理が切り替わり、t3からt5の間は第1の認識処理が実行されている。図7(b)の例では、時刻t2からt3にかけて処理方法が切り替わる際に、出力値が114%から100%となり不連続が発生する。
【0071】
・補正処理3
補正処理3では、ステップS308で第1の認識処理が選択され、ステップS315の処理が開始されると、第1の認識処理を開始するフレームについて、第1の認識処理と平行して、第2認識部217による第2の認識処理を実行し、比率を算出する。そして、第1認識部216による第1認識処理に基づく比率との差分を算出し、これを補正値とする。それ以降の第1の認識処理では、第1の認識処理の結果得られた出力値に、補正値による補正を加えた値を出力する。補正処理3を加えた場合の拡縮操作の認識結果の例を図9に示す。図9の例では、認識処理が切り替わった直後(時刻t3)の「手の大きさ」の170mmと、基準大きさである140mmにより比率121%を算出する。比率121%と。第1の認識処理によって取得される比率100%との差分21%を補正値とする。以降の第1の認識処理時には、基準距離65mmとの比率に補正値21%を加えた値を出力する。これにより、時刻t2からt3にかけて認識処理が切り替わる際に、出力値が114%から121%となり、出力値の連続的な変化を実現できる。なお、補正処理3において、補正値を乗算ではなく加算によって考慮するのは、手の外接円の直径と指先2点間の距離の変化量が比例関係にはなく、後者の方が変化の幅が大きいため、乗算を用いると出力値が過度に大きくなる可能性があるためである。
【0072】
以上説明したように、第1の実施形態とその変形例によれば、操作者が片手の2本指によってマルチタッチ操作を入力する場合、片方の指先が画像取得手段の死角に隠れた影響で指示位置の検出が困難となった場合でも、入力中の操作を継続して認識可能となる。なお、上記実施形態では、情報処理装置が認識する所定の操作をマルチタッチ操作として説明したが、類似する手の動きを伴う操作が操作面に対して有る程度の距離がある状態で入力される場合にも本発明は適用可能である。
【0073】
<第2の実施形態>
第2の実施形態では、壁面スクリーンに投影表示されたアイテムに対して、拡縮・回転を指示するために、操作者が両手によって入力する空間ジェスチャ操作を入力する処理の例を説明する。ここで空間ジェスチャ操作とは、操作体を操作面に接触あるいは近接させながら行うことが条件となるタッチ操作に対して、空中で操作体を移動させることによって入力される操作方法をいう。本実施形態では、特に、複数の独立した操作体を使って同時に複数個所を指示しながら、それらを予め定められた規則に従って動かすことによって、当該動きに対応付けられた指示コマンドを入力する空間ジェスチャ操作を認識対象とする。操作体としては、操作者の両方の手(手首から先の部分)が用いられるとし、特に全ての指を掌側に織り込んだ「こぶしを握るポーズ」をとった手を、操作入力中の操作体として追跡する。
【0074】
第2の実施形態では、空間ジェスチャを入力中の操作者の両方の手先による指示位置が、画像取得手段の撮像範囲内で検出される場合には、当該2つの指示位置の動きに基づいて空間ジェスチャ操作を認識する(第1の認識処理)。一方、操作者の手先の両方の一方が死角に隠れるなどして指示位置が1つしか検出されない場合、指示位置が検出されるか否かに影響されずに取得可能な人体の特徴を利用して、上半身の状態の変化に基づいて空間ジェスチャ操作を認識する(第2の認識処理)。
【0075】
なお、第2の実施形態において、操作者の手が「こぶしを握るポーズ」をとっている状態に限定して空間ジェスチャ操作を認識するのは、操作が開始されたタイミングと終了されたタイミングの特定を容易にするためである。この限定は、第1の実施形態において、操作者の指先と操作面との間の距離がタッチ閾値より小さい場合(タッチ状態)に限定してタッチ操作を認識したのと同等の処理である。
【0076】
[システムの外観]
図10(a)により、本実施形態に係るインタフェースシステムの外観の一例を示す。なお、第2実施形態にかかる情報処理装置100のハードウェアの構成は、第1の実施形態に準じるものとし、詳細な説明を省略する。第2の実施形態のシステムでは、スクリーン1000が投影面となるように設置されたプロジェクタ104によって、操作対象のアイテム105がスクリーン1000に投影される。また、スクリーン1000を背景とする空間を撮像可能なように、距離画像センサ102が設置される。当該空間には、スクリーン1000、投影された操作対象アイテム105、操作者1001が含まれる。なお、スクリーン1000をアイテム105の表示機能を備えるディスプレイ一体型のスクリーンとした場合、プロジェクタ104の構成を省略することも可能である。
【0077】
[装置の機能構成]
図10(b)は、本実施形態における情報処理装置100の機能構成の一例を示すブロック図である。各機能部は、CPU200が、ROM201に格納されたプログラムをRAM202に展開し、第1の実施形態に準じた各フローチャートに従った処理を実行することで実現される。ただし、代替としてハードウェアを用いることも可能である。
【0078】
第1の実施形態において、第1の認識処理では指先で入力される指示位置を利用し、第2の認識処理では手領域の特徴を利用した操作認識を行った。それに対し、第2の実施形態では、第1の認識処理ではこぶしを握るポーズをとった手で入力される指示位置(外接円の中心など)を利用し、第2の認識処理では人体領域の特徴を利用した操作認識を行う。図10(b)のブロック図に示す各機能部も、上記のように処理対象として扱う情報が異なるが、機能としては図2(b)で示した第1の実施形態に係る情報処理装置100の機能部に対応する。従って、図10(b)において、第1の実施形態と同等の機能を有する機能部には同じ番号を付し、詳細な説明は省略する。
【0079】
人体領域抽出部1010は、画像取得部210によって入力された距離画像の各画素について閾値判定やノイズ処理を行い、距離画像から、人体が写った領域(人体領域)を抽出する。従って特徴抽出部213は、人体領域抽出部1010によって抽出された人体領域の特徴を抽出する。詳細は後述する。第2の実施形態の検出部1011は、人体領域のうち、こぶしを握るポーズをとった手の部分を特定し、その外接円の中心を指示位置として座標値を特定する。本実施形態では、まず人体領域から各関節の位置を推定して骨格を抽出する。そして、抽出された骨格から手先(拳)に相当する位置を手先位置として検出する。各関節の位置推定は、Random Decision Forest(RDF)によって各画素が人体のどのパーツに属するかを識別し、その識別結果をクラスタリングすることによって推定される。第1認識部216および第2認識部217は、第1の実施形態において、拡縮操作および回転操作に対応するマルチタッチ操作を認識したのと同様に、拡縮操作および回転操作に対応する空間ジェスチャ操作を認識する。ただし第2の実施形態では、拡縮操作および回転操作を入力する指示位置が、操作面に対してタッチ状態である必要はない。また、拡縮操作は、本実施形態で認識可能な所定の操作は、画像アスペクト比を固定した拡大あるいは縮小に限らず、表示される画像に関する長さを変化させる指示全般を含む。そして回転操作には、回転の中心が固定された回転に限らず、表示される画像に関する方向を変化させる指示全般を含む。
【0080】
[空間ジェスチャ操作の認識処理]
図11のフローチャートにより第2の実施形態における操作の認識処理を説明する。なお、図3のフローチャートと同一の番号を付したステップでは、第1の実施形態と同等の処理が実行されるため、説明を省略し、第1の実施形態との差異部分を中心に説明する。図11のフローチャートの処理は、情報処理装置の各機能部を構成するCPU200がROM201に記録されたプログラムをRAM202に展開して実行することで実現される。また、この処理は、距離画像センサ102によって撮影された距離画像が情報処理装置100に入力されたことに応じて起動される。
【0081】
ステップS301では、画像取得部210が、距離画像センサ102から、壁面スクリーン1000と操作者の少なくとも上半身部分とを含む空間を撮像した距離画像を取得する。ステップS1101では、距離画像の各画素を走査し、距離画像中の操作者の人体領域を抽出する。本実施形態においては、第1の実施形態と同様に背景差分法を用いる。
【0082】
ステップS1102では、人体領域抽出部1010が、ステップS1101において抽出された人体領域の姿勢に基づき、人体領域の特徴を抽出する。本実施形態では、拡縮操作を認識するための特徴として人体の上半身の見た目の大きさを、回転操作を認識するための特徴として人体の上半身の方向を抽出する。ステップS1103では、検出部1011が、人体領域のうち手(手首より先)部分を検出する。
【0083】
ステップS1104では、検出部1011が、ステップS1103において検出された手の中に、こぶしを握るポーズをとった手が存在するか否かを判定する。こぶしを握るポーズをとった手が存在する場合(ステップS1104でYes)、ステップS1105に進む。ステップS1105では、判定部214によって、検出部1011が、こぶしを握るポーズをとった手による指示位置とその数を特定する。
【0084】
判定部214によって、指示位置の数が判定され、選択部215によって認識処理方法が選択されるステップS307からステップS311の処理は、第1の実施形態に準じるため、説明を省略する。第2の実施形態では、ステップS308あるいはステップS311において認識処理方法が選択されたら、ステップS1106に進む。ステップS1106では、第1認識部216あるいは第2認識部217によって、選択された認識処理が実行される。第2認識部217によって実行される人体領域の特徴に基づく空間ジェスチャの認識については具体例を後述する。ステップS316の出力処理も、第1の実施形態に準じる。
【0085】
一方で、ステップS1104において、こぶしを握るポーズをとった手が存在しないと判定された場合(ステップS1104でNo)、処理はステップS1107に進む。ステップS1107では、判定部214が、抽出された人体領域に基づいて、人体と操作面(壁面スクリーン)との間の距離を取得する。本実施形態では、人体領域から推定された両肘とスクリーンとの平均距離を人体とスクリーンとの距離として求める。そして、ステップS1108において、判定部214は、人体とスクリーンとの距離について閾値判定を行い、距離が閾値以上であれば(ステップS1108でYes)、ステップS314に進み、選択部215によって認識処理の選択が解除される。本実施形態では、RAM202に保持されている、選択状態にある認識処理を示す情報を参照し、対応する認識部に選択の解除を通知するとともに、当該情報を削除する。人体とスクリーンとの距離が閾値未満であれば(ステップS1108でNo)、処理はステップS1106に進む。本実施形態では、以上説明した空間ジェスチャ操作の認識処理が、距離画像センサ102から距離画像が入力される毎に繰り返し行われる。
【0086】
[第2の認識処理]
ここで、第2の実施形態において、ステップS311で第2の認識処理が選択された場合に、ステップS1106で実行される認識処理の詳細を説明する。第2の認識処理は、指示位置を2点検出できない場合の補完手段として、指示位置の検出可否に依存せずに、人体領域から抽出することが可能な上半身の特徴が示す上半身の状態の変化に基づいて所定の空間ジェスチャ操作を認識する。第2の実施形態においても、第1の認識処理では認識可能なピンチアウト操作、ピンチイン操作、回転操作による指示のそれぞれが認識可能であり、第2の認識処理では、第1の認識処理とは異なる方法でそれらを認識することが可能である。
【0087】
また、本実施形態では、人体領域から得られる上半身部分の見た目の方向(以下、「上半身の方向」)に基づいて、回転操作を認識する。ここで、回転操作中の距離画像中の人体の見た目の様子を12(b)に示す。回転操作中の2つの指示位置を結ぶベクトル1211の方向の変化に応じて、距離画像中の「上半身の方向」を表すベクトル504も変化することが分かる。これは、こぶしがセンサの死角に入り指示位置を検出できない場合にも、検出可能な特徴の変化である。そこで第2の認識処理では、距離画像から得られる「上半身の方向」の変化に応じて回転操作を認識し、その変化量に応じた回転角度を出力する。本実施形態では、人体領域抽出部1010がステップS1102において、人体領域の胸の位置1213を中心とした上半身部分の慣性主軸の方向を「上半身の方向」として算出する。ここでも手の検出と同様、各関節の位置推定による骨格抽出とRDFによるパーツ識別に基づいて、胸の位置の推定を行う。なお、距離画像センサ102の設置位置等に応じて、人体の胸の位置からの最短距離が最長となる上半身部分の輪郭点と胸の中心位置とが成す角度を人体の方向として算出することも可能である。
【0088】
また、本実施形態では、人体領域から得られる上半身部分の見た目の方向(以下、「上半身の方向」)に基づいて、回転操作を認識する。ここで、回転操作中の距離画像中の人体の見た目の様子を12(b)に示す。回転操作中の2つの指示位置を結ぶベクトル1211の方向の変化に応じて、距離画像中の「上半身の方向」を表すベクトル504も変化することが分かる。これは、こぶしがセンサの死角に入り指示位置を検出できない場合にも、検出可能な特徴の変化である。そこで第2の認識処理では、距離画像から得られる「上半身の方向」の変化に応じて回転操作を認識し、その変化量に応じた回転角度を出力する。本実施形態では、人体特徴抽出部1010がステップS1102において、人体領域の胸の位置1213を中心とした上半身部分の慣性主軸の方向を「上半身の方向」として算出する。ここでも手の検出と同様、各関節の位置推定による骨格抽出とRDFによるパーツ識別に基づいて、胸の位置の推定を行う。なお、距離画像センサ102の設置位置等に応じて、人体の胸の位置からの最短距離が最長となる上半身部分の輪郭点と胸の中心位置とが成す角度を人体の方向として算出することも可能である。
【0089】
以上説明したように、第2の実施形態によれば、操作者が両手によって空間ジェスチャ操作を入力する場合に、片手が画像取得手段の死角に隠れた影響で指示位置の検出が困難となった場合でも、入力中の操作を継続して認識可能となる。なお、第2の実施形態においても、第1の実施形態と同様、2つの認識処理の切り替え時に出力が不連続となることを防ぐための補正処理を加えることが可能である。
【0090】
上述した第2の実施形態では、空間ジェスチャ操作の入力のための指示位置を、こぶしを握るポーズをとる手の位置と規定することで、操作の開始と終了のタイミングを特定した。しかしながら、第2の実施形態のような壁面スクリーンを利用したシステムにおいても、操作者の手あるいは指と壁面スクリーンとの間の距離が閾値より小さい場合に入力される、両手によるマルチタッチ操作を認識しても構わない。同様に、第1の実施形態においても、タッチ状態であること以外の条件で、操作が開始されたタイミングと終了されたタイミングを特定し、指による空間ジェスチャ操作を認識することも可能である。例えば、操作者の片手が特定のポーズをとったことを条件に、それ以降に検出される指示位置を操作入力として認識することも可能である。いずれのようなシステムにおいても、上述した実施形態を適用することにより、操作体の一部が画像取得手段の死角に隠れた影響で入力中の操作を構成する複数の指示位置の少なくとも1つの検出が困難となった場合でも、入力中の操作を継続して認識可能となる。
【0091】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0092】
210 画像取得部
211 手領域抽出部
212 検出部
213 特徴抽出部
214 判定部
215 選択部
216 第1認識部
217 第2認識部
218 表示制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12