以下、本発明の第1の実施形態について、図面を参照しながら詳細に説明する。本実施形態における対面システムは、銀行で利用される例を説明するがこれに限定されない。
図1は、実施形態における情報処理システムの外観構成図であり、図2はシステムを構成する情報処理装置100のハードウェア構成図である。本システムは、システム全体の制御を司る情報処理装置100を有する。そして、この情報処理装置100には、投影撮像装置110をはじめ、ユーザとの間のユーザインターフェースとして機能するディスプレイ120、入力デバイス(キーボードやマウス等)130が接続されている。また、図示していないが、業務に係る基幹ネットワークとも接続される。投影する投影データなどは基幹ネットワークなどに記憶されていてもよい。
情報処理装置100は通常のPC(パーソナルコンピュータ)等と同じハードウェア構成の情報処理装置である。プログラムに従って処理を行うCPU101、ブートプログラムやBIOS等を記憶するROM102、CPU101が実行するOSやアプリケーションを格納するため、並びにCPU101がワークエリアとして利用するRAM103を有する。また、情報処理装置100は、投影撮像装置110と通信するためのI/F部105、CPU101の指示に従って描画処理やビデオ信号の出力処理等を行うビデオコントローラ106を有する。更に、情報処理装置100はハードディスク(HDD)に代表される外部記憶装置108(記憶手段)に対する読み書きを行うストレージコントローラ107、基幹ネットワーク(特にネットワークプリンタ)と通信するためのネットワークI/F104を有する。外部記憶装置108には、オペレーティングシステム(OS)108a、情報処理システムとして機能させるためのアプリケーションプログラム108bをはじめ、詳細は後述するシートDB108c、環境情報108d、ジェスチャテーブル(ジェスチャTL)108eが格納されている。
投影撮像装置110は、その筐体内に、情報処理装置100と通信するためのI/F部118、投影部115、撮像部116、距離測定部117(認識部に相当する)を収容している。投影撮像装置110には、投影部115から出射した投影光を通過させるための開口部111が設けられている。更に、撮像部116並びに距離測定部117に共有され、外部からの光(赤外線を含む)を入射するための開口部112も設けられている。
投影部115は、情報処理装置100から要求された映像を表す投影光を開口部112を介して天板113に向け、且つ、若干斜め方向に出射する。天板113の下面側にはミラーが設けられており、投影部115からの投影光を反射する。この結果、図1における投影撮像装置110の設置位置より手前側の領域(実際にはテーブルの上面)が投影スクリーンとして、その映像を表示することになる。なお、出射する方向を斜めにするのではなく、天板113を傾けても構わない。
また、撮像部116並びに距離測定部117は、天板113のミラーを介して、投影部115によるテーブル上の投影領域よりも広い範囲を撮像範囲、又は、測距範囲として設定されている。撮像範囲と測距範囲は同一であっても構わない。撮像部116は通常のデジタルカメラに代表される撮像装置と同じ構成であり、テーブルの撮影範囲内の映像を光学的に読み取るものである。距離測定部117は、奥行き(距離)を検出するものであり、予め設定された2次元パターンを示す赤外線を照射する照射部と、その対象物から2次元空間での反射赤外線を検出するセンサで構成される。そして、撮像部116で得らえた映像データと、距離測定部117より検出された距離データの時間軸に対する変化に基づき、情報処理装置100のCPU101による処理によって、ユーザの手の動きや指(操作指示部)でテーブルをたたく操作(ジェスチャ)、ユーザの手と手の接触の検出処理が実現する。なお、映像と、赤外線によるパターン照射/検出によってユーザのジェスチャ検出を行う技術は公知(たとえば、米国マイクロソフト社のKINECT(商標))であるので、ここでの詳細は省略する。ただし、ユーザのジェスチャが検出できれば良く、その構成、原理は特に問わない。なお、投影撮像装置110の筐体内に十分なスペースがあれば、情報処理装置100を構成する回路を投影撮像装置110に内蔵させることで、これらを一体化しても構わない。
上記構成において、本装置の電源がONになると、CPU101はROM102に格納されたブートプログラムを実行し、外部記憶装置108に格納されたOS108aをRAM103にロードし実行する。そして、そのOSの制御下にて、外部記憶装置108から情報処理システムのアプリケーションプログラム108bをRAM103にロードして、実行させる。
次に図23を用いて、情報処理装置100の機能構成を説明する。
情報処理装置100は機能部として、特定部2301、管理部2302、投影制御部2303、記憶部2304、位置特定部2305を備えている。
特定部2301は、接触している手と手とを特定する機能部である。管理部2302は特定部2301で特定された手と手とを対応付けて管理する機能部である。投影制御部2303は投影部115の投影を制御する機能部である。記憶部2304は、シートDB108cや各種テーブルを記憶する機能部である。位置特定部2305は、接触している手と手の位置座標を特定する機能部である。
以上で図23に示す、情報処理装置100の機能構成の説明を終了する。
次に図3を用いて、本システムの利用形態を示す。本実施形態における情報処理システムは、図示のように、テラー401(説明員)と顧客402がテーブル400を間に挟み、それぞれが椅子に座って対面する形態を想定している。テラー401は投影面上に投影された投影データをもとに顧客402に対して説明業務を行うユーザである。なお顧客は複数人いてもよい。また、テーブル400には、ディスプレイ120、入力デバイス130がテラー401の操作しやすい位置に配置されている。また、投影撮像装置110は、その天板113によって斜め方向から投影光がテーブル400に向けて照射することになるので、テラー401と顧客402が向かい合った際に、邪魔にならない位置に載置することが可能である。この結果、テーブル400の、テラー401と顧客402との間には十分なスペースを確保され、撮像部116及び距離測定部117の検出範囲410(操作領域)、投影部115による投影範囲411が確保される。なお、検出範囲410、投影範囲411が示す矩形は、テーブル400上にそれぞれの範囲が規定されていることを示すためであって、その境界線が表示されることを意図するものではない。また、情報処理装置100は、たとえばテラー側のテーブル400の下に配置するものとする。
以上、実施形態における情報処理システムの構成とその利用形態を説明した。次に、情報処理システムの処理内容を、特にCPU101の処理手順として説明する。
本システムが稼働すると、図3に示すようにテラー401と顧客402との間のテーブル400上(の投影範囲411)に、投影撮像装置110から各種の文書シート(以下、単にシートという)が投影表示される。そして、テラー401はその都度解説や説明を行い、顧客402はその投影内容とテラー401の説明を理解したことの意思を示していって、手続きを進めていく。投影撮像装置110がテラー401から見て右側に設置するのか、左側に設置するのかを事前に設定することができる。投影撮像装置110がテーブル400上に投影することになるシートは、テラー側、顧客側の向きがあり、その向きと座席についているテラー401、顧客402の位置関係の整合性を取るために設定する。設定が完了すると、CPU101は、その設定内容を外部記憶装置108の環境情報108dとして保存する。なお、投影撮像装置110の配置位置を変更しない限り、この設定を変える必要はない。
かかる手続きをCPU101の処理で示せば、以下の通りである。CPU101は、外部記憶装置108から投影すべきシートの選択と選択したシート(詳細は後述)を投影部115に表示させる処理、並びに、テラー401及び顧客402の操作をジェスチャとして、撮像部116及び距離測定部117によって認識していく。そして、次に表示すべきシートの選択…と処理を繰り返し、最終シートの表示で、テラー401と顧客402が合意したことを示すジェスチャを検出した際に、その処理を終える。
以下、更に詳しく説明する。図4は情報処理システムのアプリケーションプログラム108bを実行した際のCPU101の処理手順を示すフローチャートである。
本アプリケーションが実行されると、まず、ステップS101にて、CPU101はメニュー画面(不図示)をディスプレイ120に表示し、テラー401に項目の1つを選択させる。表示する項目は、「環境設定ボタン」、「メニュー画面表示ボタン」と、最初に行う処理をテラーから指示を受け付けることのできる項目が並んでいる。
ステップS102にて、CPU101は、テラー401による入力デバイス130の操作による項目選択を待つ。選択がなされると、ステップS103にて、CPU101はその選択した項目がいずれのボタンであるかを判定する。環境設定ボタンであると判定した場合、処理はステップS104に進み環境設定処理を行う。メニュー画面表示ボタンと判定した場合、処理はステップS105に進む。この環境設定処理は、説明を行う顧客の設定を行う処理である。顧客402が複数いる場合に、テラーから見て左右どちらにユーザ(顧客)が居るのかをあらかじめ設定することが可能である。このようにして説明を行う顧客の情報を表示制御処理の前に入力することにより、継続的に顧客の情報(説明履歴)を蓄積することが可能となる。環境設定処理の詳細は図5を用いて詳細に説明する。
図5は環境設定処理の詳細な処理を説明するフローチャートである。
ステップS501では、情報処理装置100のCPU101が、外部記憶装置108に記憶されたユーザID入力画面600を読み出し、ディスプレイ120に表示する。ユーザID入力画面600は図6に示すような画面であり、テラー401が説明を行う顧客を設定する画面である。顧客を設定することで、顧客ごとにどのような説明を行ったかを管理することが可能になる。ユーザID入力画面600には、複数のユーザID入力欄601があり、テラーから見て顧客がどの位置にいるかに応じて、ユーザID入力欄601にユーザIDをテラー401が入力する。例えば顧客Aが図6に示す(1)の領域側に居る場合には、(1)のユーザID入力欄601に顧客AのユーザIDを入力する。尚、本実施形態ではユーザIDを直接入力するようにしているが、顧客データベースを顧客の氏名で検索し、検索結果からユーザIDを選択するようにしてもよい。
なお、本発明の実施形態では、顧客が二人の例として説明を行ったが、二人以上の人数であっても構わない。また、テラーと顧客の二人でジェスチャが複数人によるジェスチャか否かを判断する構成にしたとしても本発明の範囲に含まれるものである。
ステップS502では、情報処理装置100のCPU101が、ユーザID入力画面600のユーザID入力欄601に対するユーザIDの入力を受け付ける。
ステップS503では、情報処理装置100のCPU101が、ユーザID入力画面600の設定ボタン603の押下を受け付けたか否かを判定する。設定ボタン603の押下を受け付けたと判定した場合には処理をステップS504に進め、そうでない場合は設定ボタン603の押下を受け付けるまで待機する。
ステップS504では、情報処理装置100のCPU101が、領域テーブル1500にステップS502で入力を受け付けたユーザIDを登録する。
領域テーブル1500は例えば図15に示すテーブルである。領域テーブル1500には領域ID1501、領域1502、属性データ1503、ユーザID1204が対応付けて記憶されているデータテーブルである。領域ID1501は投影面上の領域を一意に識別するIDである。領域1502は領域を示す2点の座標を格納している。属性データ1503は領域に対応する属性データのファイル名を記憶している。属性データとは、領域1502の範囲に入った指(物体)に重畳して投影するための投影データである。ユーザID1204は、ステップS502で入力を受け付けたユーザID(付与する属性)を格納する。本発明の実施形態では、図6に示すユーザID入力欄601に入力されたユーザIDを、領域ID1501が「1」のユーザID1204として格納する。ユーザID入力欄602に入力されたユーザIDを、領域ID1501が「2」のユーザID1204として格納する。このようにして、ステップS502のテラー401の入力により、情報処理装置100は領域とユーザを対応付けて記憶することができる。尚、顧客への説明の終了指示をテラーから受け付けると、ステップS504で領域と対応付けて記憶されたユーザIDは消去されるように制御される。これにより、説明を終えるたびにユーザIDを自動的に消去することができる。
以上で図5に示す環境設定処理の説明を終了する。
図4の説明に戻る。
ステップS105では、情報処理装置100のCPU101が、ステップS103の判定の結果メニュー画面表示ボタンの押下を受け付けたと判定した場合、顧客に対して投影データを用いて説明を行う処理である表示制御処理を行う。ステップS105の表示制御処理の詳細な処理の説明を、図7を用いて行う。
図7は表示制御処理の詳細な処理を説明するフローチャートである。
ステップS701では、情報処理装置100のCPU101が、図15に示す領域テーブル1500を参照する。領域テーブル1500の説明は既に上述しているため説明を省略する。
ステップS702では、情報処理装置100のCPU101が、ステップS701で参照した領域テーブル1500のユーザID1204にユーザIDが登録されているか否かを判定する。ユーザID1204にユーザIDが登録されていると判定した場合には処理をステップS703に進め、ユーザIDが一つも登録されていないと判定した場合には処理をステップS713に進める。このようにすることで、図6に示す環境設定処理で顧客の設定を行わずに以降のワークフローに進ませることを防止している。
ステップS703では、情報処理装置100のCPU101が、図8に示すメニュー画面800をディスプレイ120に表示する。メニュー画面800には、住宅ローンボタン801や口座開設ボタン802などおよそ銀行にて対面で行う手続きに関するメニューボタンが配置されるものである。ステップS502で入力したユーザIDが示す顧客に対して手続きを行いたいメニューボタンをテラーより押下されることで、選択された手続きに関する投影データを投影することが可能になる。
ステップS704では、情報処理装置100のCPU101が、ステップS703で表示したメニュー画面800において、メニューボタンの選択を受け付けたか否かを判定する。メニューボタンの選択を受け付けたと判定した場合には処理をステップS705に進め、そうでない場合にはメニューボタンの選択を受け付けるまで待機する。
ステップS705では、情報処理装置100のCPU101が、ステップS704で選択を受け付けたと判定したメニューボタンに対応するGUI構成情報を読み込む。GUI構成情報とはシートDB108cに管理される情報である。シートDB108cには、図9に示すように、ステップS703にて表示するメニュー項目を単位として管理されている。そして、各項目には、それぞれにおける手続きの推移と利用するシート画像を記述したGUI構成情報が格納されている。本実施形態では、この内、「住宅ローンの申請」項目300を例にして説明するので、それに含まれるGUI構成情報301について説明する。このGUI構成情報301は、住宅ローンの借り入れ申請に係る手続きと、その際に利用するシート画像の表示形式を記述するGUIシート情報302を特定する情報が記述されている。
テラー401と顧客402との間の手続きとしては、例えば、(1)顧客登録、(2)商品説明、(3)ローンのシミュレーション、(4)書類読取、(5)今後の手続きの説明の、5段階がある。そして、図5のGUIシート情報302では、(1)〜(5)の各手続において投影するシート(GUI)の表示形態を記述するフォーム情報(「顧客登録フォーム」、「商品説明フォーム」、...)が管理される。また、フォーム情報には、テラー側、顧客側の方向に関する記述も含まれており、且つ、複数のフォームも入れ子式で記述可能としている。
尚、図5では、「住宅ローンの申請」項目300に対して管理する情報の具体例を示しているが、必要な各種項目(例えば、「口座開設」項目350)毎に、必要な情報が適宜、シートDB108c上で管理されていることは言うまでもない。
本実施形態では、図3に示すような対面システムにおいて、操作画面に対する複数の指によるタッチ操作であるマルチタッチ操作による操作を実行可能とする。例えば図22に示す操作テーブル2200があらかじめ記憶されており、タッチ操作を指の本数に応じて異なる処理で実行することを可能とする。なお、操作テーブル2200は説明のための一例であってこれに限定されるものではない。
ステップS706では、情報処理装置100のCPU101が、ステップS705で読み込んだGUI構成情報を投影撮像装置110に投影指示することによって投影面上に投影させる。例えば図10に示すイメージ図である。GUI構成情報の一部である投影データ1000は、投影面に投影された説明資料である。図10では、テラー401は、顧客Aと顧客Bに対して投影データ1000を用いて説明を行う図である。本実施形態においては、投影撮像装置110の撮像部116並びに距離測定部117の撮像範囲および測距範囲は同一の範囲としており例えば測距範囲1006が図10の測距範囲1006のように規定されている。測距範囲1006は本発明の実施形態では四角形であるが、これに限定されることなく円形などでも構わない。なお、手1001と手1003の上に表示されている「A」や「B」は発明を説明するために示しているものであって、実際に手の上に投影されるものではない。手がいずれのユーザであるかは、指の先端部分の属性画像によってユーザは判断するものとする。手がいずれのユーザであるかを示す方法は説明のための一例であり、これに限定されない。また、投影面上の点線は、領域テーブルに示す領域を明示するために示したものであり、実際に投影されるものではない。
ステップS707では、情報処理装置100のCPU101が、投影撮像装置110の距離測定部117から投影面上の物体を認識するための情報であるセンサ情報を取得する。ここでいうセンサ情報とは、距離測定部117が照射する赤外線を投影面上(測距範囲1006上)の対象物が反射する赤外線を距離測定部117の受信部で検出することによって得られる情報である。物体とは例えばユーザの手であるが説明のための一例である。
ステップS708では、情報処理装置100のCPU101が、ステップS707で取得したセンサ情報をもとに、物体が投影面上(測距範囲1006上)にあるか否かを判定する。物体が投影面上にあると判定した場合は処理をステップS709に進め、物体が投影面上にないと判定された場合は処理をステップS712に進める。
ステップS709では、情報処理装置100のCPU101が、投影面上にある物体を解析する処理である物体解析処理を行う。物体解析処理の詳細な処理の説明は、図11に示すフローチャートで説明を行う。
図11は物体解析処理の詳細な処理の流れを説明するフローチャートである。図11の説明を行う。
ステップS1101では、情報処理装置100のCPU101が、図12に示す手管理テーブル1200を取得する。
図12に示す手管理テーブル1200は、距離測定部117から取得したセンサ情報により特定される投影面上にある物体(本実施形態では手)を管理するテーブルである。手ID1201は、手を一意に識別するIDを格納している。先端座標1202は手の先端の座標を格納する。挿入された座標1203は、測距範囲1006を示す辺と手が交差する点を格納している。ユーザID1204は、投影面上の手の属性(つまり、どのユーザの手かを示すユーザID)を格納する。更新フラグ1205は先端座標1202が更新されたか否かを示すフラグである。
ステップS1102では、情報処理装置100のCPU101が、ステップS707で取得したセンサ情報に基づいて投影面上の物体は手か否かを判定する。あらかじめ手の形状のパターン情報を記憶しておき、パターンマッチングにより手か否かを判定するなどの方法によって投影面上の物体は手か否かを判定する。また、投影面上の物体が手か否かは、距離測定部117より取得したセンサ情報ではなく、撮像部116で撮像した画像を用い肌色検出を行うことによって手か否かを判定しても構わない。
投影面上の物体が手であると判定した場合には処理をステップS1103に進め、投影面上の物体が手ではないと判定した場合には処理をステップS1110に進める。
ステップS1103では、情報処理装置100のCPU101が、ステップS1102で手であると判定した手の先端座標と手の挿入された座標を特定する。手の先端座標とは、手の指先に相当する部分の座標であり、手であると判定された物体を測距範囲1006の縁から見て最も先端の部分の座標である。手の挿入された座標とは、測距範囲1006の縁が手とが交わる部分の中点(図10の1005の部分)の座標である。
ステップS1104では、情報処理装置100のCPU101が、投影面上の物体が今まで検出していない手である新たな手であるか否かを判定するべく、ステップS1103で特定した手の挿入された座標と、挿入された座標1203が一致するレコードがあるか否かを判定する。一致するレコードがないと判定された場合は、新たな手であると判断し、一致するレコードがあると判定された場合は、新たな手ではないと判断する。なお、ステップS1103で特定した手の挿入された座標と、挿入された座標1203が完全に一致する必要はなく、所定の閾値の範囲内であれば一致しているとみなしてもよい。ステップS1103で特定した手の挿入された座標と、挿入された座標1203が一致するレコードがあると判定された場合は処理をステップS1108に進め、ステップS1103で特定した手の挿入された座標と、挿入された座標1203が一致するレコードがないと判定された場合は処理をステップS1105に進める。
なお、投影面上で新たな手を検知したか否かの判定方法の一例として、挿入された座標1203による判断の例を説明したが、これ以外の方法によって投影面上で新たな手を検知したか否かを判定してもよい。例えば、ユーザID1204にユーザIDが入っていないレコードがある場合に新たな手が投影面上で検知されたと判定するようにしてもよい。
ステップS1105では、情報処理装置100のCPU101が、外部記憶装置108に記憶される領域テーブル1500を取得する。領域テーブル1500の詳細は前述したとおりである。
ステップS1106では、情報処理装置100のCPU101が、ステップS1103で特定した挿入された座標が属する領域1502に対応するユーザID1204を特定する。例えば図10の手1001であれば、挿入された座標は領域ID「1」が示す領域に含まれるため、ユーザID1204「AAA」として特定することができる。手1003であれば挿入された座標は領域ID「2」が示す領域に含まれるため、ユーザID「BBB」として特定することができる。
ステップS1107では、情報処理装置100のCPU101が、ステップS1101で取得した手管理テーブル1200にレコードを追加する。追加されるレコードは、ステップS1103で特定した手の先端座標を先端座標1202に、ステップS1103で特定した手の挿入された座標を挿入された座標1203に、ステップS1106で特定したユーザID1204をユーザID1204に、それぞれ格納したレコードとなる。追加されるレコードの手ID1201は、手管理テーブルに格納されている手ID1201で最も大きい値に1増加させたものとする。更新フラグ1205には「1」を格納する。
ステップS1108では、情報処理装置100のCPU101が、ステップS1104で一致すると判定されたレコードの挿入された先端座標1202を、ステップS1103で特定した手の先端座標で更新する。
ステップS1109では、情報処理装置100のCPU101が、ステップS1108で更新した先端座標1202に対応する更新フラグ1205に「1」フラグを立てる。
ステップS1110では、情報処理装置100のCPU101が、投影面上のすべての物体に対してステップS1102の判定が済んでいるか否かを判定する。処理が済んでいると判定された場合には処理をステップS1111に進め、そうでない場合には、処理をステップS1102に戻す。
ステップS1111では、情報処理装置100のCPU101が、手管理テーブル1200を参照する。
ステップS1112では、情報処理装置100のCPU101が、ステップS1111で参照した手管理テーブル1200に更新フラグ1205が「1」ではないレコード(更新されていないレコード)があるか否かを判定する。更新フラグ1205が「1」ではないレコードがあると判定された場合は処理をステップS1113に処理を進め、更新フラグ1205が「1」ではないレコードがないと判定された場合は処理をステップS1114に進める。更新されていないレコードとはつまり投影面上から手が検出できなくなった(ユーザが手を投影面上から除いた)ことを示している。
ステップS1113では、情報処理装置100のCPU101が、更新していないレコード(更新フラグ1205が「1」ではないレコード)を削除する。このようにすることで、投影面上からユーザの手が存在しなくなった場合に、適切にレコードを削除することができる。
ステップS1114では、情報処理装置100のCPU101が、先端座標1202に基づいて接触している手(指示体同士)があるか否かを判定する。本実施形態においては、先端座標1202が一致するレコードがあるか否かによって、接触している手があるか否かを判定している。先端座標1202から所定範囲内に他の手の先端座標1202があるか否かを判定するなど、位置座標が完全に一致する必要はなくある程度の許容値を設けてもよい。接触している手があるか否かはこれに限定されず、撮像部116で得られた画像で肌色検出を行うことにより、判断しても構わない。所定範囲外であった状態から所定範囲内の距離となることを判定するようにしてもよい。
ステップS1115では、情報処理装置100のCPU101が、接触していると判定された手と手(指示体群)の対応付けの処理である対応付け処理を実行する。対応付け処理の詳細な処理の説明は、図14のフローチャートを用いて説明する。
図14は対応付け処理の詳細な処理を説明するフローチャートである。
ステップS1401では、情報処理装置100のCPU101が、ステップS1114で接触していると判定された手の先端座標1202を取得する。
ステップS1402では、情報処理装置100のCPU101が、手管理テーブル1200を取得する。
ステップS1403では、情報処理装置100のCPU101が、ステップS1401で取得した先端座標1202に基づいて、接触している複数の手の先端座標1202に対応するユーザID1204(所定の条件を満たしているユーザID)を取得する。例えば、図12の手管理テーブル1200の手ID1201が「1」と「2」の手が接触している(先端座標1202が等しい)場合(所定の条件を満たす)、ユーザID1204の「AAA」と「BBB」を取得する。なお、先端座標1202が等しいかどうかは、座標が完全一致している必要はなく、2点の座標が所定の範囲内であれば等しいと判断してもよい。
ステップS1404では、情報処理装置100のCPU101が、領域テーブル1500を取得する。
ステップS1405では、情報処理装置100のCPU101が、ステップS1401で取得した先端座標1202の属する領域1502を特定の上、領域テーブル1500で当該領域1502に対応するユーザID1204を特定する。つまり、図17で接触している手同士の指の先端部分が、いずれの領域にあるかをこのステップS1405で特定している。図17の場合、接触している位置座標は領域ID「1」にあるため、領域ID「1」に対応するユーザID1204「AAA」を特定する。
ステップS1406では、情報処理装置100のCPU101が、ステップS1403で取得した複数のユーザID1204が一致しているか否かを判定する。ユーザID1204が一致していないと判定した場合は処理をステップS1407に進め、そうでない場合は処理を終了させる。
ステップS1407では、情報処理装置100のCPU101が、ステップS1403で取得したユーザID1204のうち、ステップS1405で特定したユーザID1204と異なるユーザIDの手ID1201を特定する。例えば、ステップS1403で取得したユーザID1204が「AAA」と「BBB」(AとBの手が接触している)で、ステップS1405で特定したユーザIDが「AAA」であるとすると、手管理テーブル1200に基づいて手ID1201「2」(ユーザID1204がAAAではない)を特定する。
ステップS1408では、情報処理装置100のCPU101が、ステップS1407で特定した手ID1201に対応するユーザID1204を、ステップS1405で特定したユーザID1204で更新する。上述した例では、手ID1201「2」のユーザID1204が「AAA」に更新される(具体的に視覚的に示したのが図17である)。
このように、手と手が接触することによって、手の接触した領域に対応するユーザの手として、接触した手同士を対応付けて記憶することを可能とする効果がある。つまり、それぞれ別人の手であるとして認識されたとしても、ユーザの直観的な操作によって同一のユーザの(属性の)手であるとして対応付けることができるようになり、操作性の向上に役立つものである。
以上で、図14に示す対応付け処理の説明を終了する。
図11の説明に戻る。
ステップS1116では、情報処理装置100のCPU101が、手管理テーブル1200のユーザID1204に対応する属性データ1503(属性投影データに相当する)を取得する。属性データが示す属性画像のイメージを図13に示す。
ステップS1117では、情報処理装置100のCPU101が、ステップS1116で取得した属性データ1503を、対応するユーザID1204の先端座標1202の示す位置に投影させる(識別表示手段に相当する)。例えば図10に示すような、RED画像1002とBLUE画像1004がユーザの指先に投影される。RED画像1002とBLUE画像1004は形状が同じで色が異なる画像である(図10では色の違いを点線で示している)。この投影により、手1001と手1003がそれぞれ別の人の手であると認識されていることをユーザに通知することができる。
つまり、これらの画像をユーザの指先に投影することで、情報処理装置で認識した手がそれぞれ同一人物の手として認識されたのか、それぞれ別の人物の手として認識されているのかをユーザに通知することができる。具体的に説明をすると、図16に示すように、ユーザAが、ユーザBの領域から手1601を投影面に挿入してしまったがために、本来はユーザAの手として特定されてRED画像1002が投影されるべき手1601が、ユーザBの手として特定されてしまい、色の異なる画像であるBLUE画像1004が投影されている。
そこで、図17に図示するように手1601に対する誤認識を修正すべくユーザAが、ユーザBの手として認識された手1601と手1001とを接触させることにより、手1601と手1001の接触した位置が含まれる領域に対応するユーザとして(図17ではユーザAの領域で手1601と手1001が接触しているためユーザAの手として)対応付けるとともに、手1601のBLUE画像1004がRED画像1002に変更され、手1001のRED画像1002と同一になることで、ユーザの意図する修正がされているか否かを確認することが可能となる効果がある。なお、本実施形態では同一形状の色が異なる画像を指先に投影しているが、ユーザごとに異なる画像を割り当ててもよく対応付けられている属性がユーザに対して通知可能であればこれに限定されない。
ステップS1118では、情報処理装置100のCPU101が、ステップS1111で参照した手管理テーブル1200のすべてのレコードについて、ステップS1116とステップS1117の処理を実行したか否かを判定する。すべてのレコードについてステップS1116とステップS1117の処理を実行したと判定した場合は処理をステップS1119に進め、そうではない場合にはステップS1116に処理を戻す。
ステップS1119では、情報処理装置100のCPU101が、手管理テーブル1200のレコードの更新フラグ1205をすべて「0」とする。
以上で、図11に示す物体解析処理の詳細な処理の説明を終了する。
図7の説明に戻る。
ステップS710では、情報処理装置100のCPU101が、ステップS707で取得したセンサ情報によって投影面上でタッチがされたか否かを判定する。投影面でタッチがされたと判定した場合は処理をステップS711に進め、そうでない場合はステップS707に処理を戻す。
ステップS711では、情報処理装置100のCPU101が、タッチ操作により所定の処理を実行するタッチ操作実行処理を行う。タッチ操作実行処理の詳細な処理の説明は図21を用いて詳細に説明する。
図21は、タッチ操作実行処理の詳細な処理の流れを説明するフローチャートである。
ステップS2101は、情報処理装置100のCPU101が、ステップS707で取得したセンサ情報に基づいて、投影面上でタッチされた位置座標を特定する。
ステップS2102は、情報処理装置100のCPU101が、例えば図22に示す操作テーブル2200を取得する。操作テーブル2200は、タッチの数2201と操作2202とが対応付けて記憶されるテーブルである。このテーブルにより、投影面上にタッチされた箇所の数に応じて、実行される処理が切り替わる。例えば2本の指でタッチされた場合には、ピンチイン・ピンチアウトが実行される。
ステップS2103は、情報処理装置100のCPU101が、ステップS707で取得したセンサ情報に基づいて、タッチされた箇所は複数か否かを判定する。タッチされた箇所が複数であると判定された場合は処理をステップS2105に進め、タッチされた箇所が複数でないと判定された場合は処理をステップS2104に進める。
ステップS2104は、情報処理装置100のCPU101が、ステップS2102で取得した操作テーブル2200に基づいて、タッチ箇所が1に対応する操作を実行する。図22であればタッチされた箇所に対する「選択」処理となる。
ステップS2105は、情報処理装置100のCPU101が、手管理テーブル1200を取得する。
ステップS2106は、情報処理装置100のCPU101が、ステップS2101で特定した投影面上の位置座標と一致する、手管理テーブルの1200の先端座標1202を特定する。先端座標1202に対応するユーザID1204を特定する。
ステップS2107は、情報処理装置100のCPU101が、ステップS2106で特定したユーザが複数か否かを判断する。特定したユーザが複数であると判定された場合は処理をステップS2109に進め、そうでない場合は処理をステップS2108に進める。
ステップS2108は、情報処理装置100のCPU101が、タッチの箇所に対応する操作を実行する(処理実行手段に相当する)。仮にタッチの箇所が2である場合、「ピンチイン・ピンチアウト」処理を実行する。これにより、一人のユーザによる複数箇所へのタッチ操作の場合に、いわゆるマルチタッチ操作を実現することを可能とする。
ステップS2109では、情報処理装置100のCPU101が、それぞれのタッチについて、タッチ箇所が1(単独の数)に対応する処理を実行する。図22の操作テーブルの場合、「選択」処理をそれぞれのタッチ箇所について実行する。これにより、複数の人がそれぞれ投影面上に投影されたボタンをタッチしたとしても、ピンチイン・ピンチアウトではなく、選択処理をそれぞれのボタンに対して実行させることが可能となる。
尚、タッチにより実行される処理の内容は一例であって他の処理であっても構わない。また、タッチ箇所の数は説明のため、1と2のみの実施例としたが、これに限定されず、さまざまな数が想定される。
以上で、図21に示すタッチ操作実行処理の詳細な処理の説明を終了する。
図7の説明に戻る。
ステップS712では、情報処理装置100のCPU101が、ユーザから本システムの終了指示を受け付けたか否かを判定する。システムの終了指示を受け付けたと判定された場合には処理を終了させ、そうでない場合には処理をステップS707に戻す。
ステップS713では、情報処理装置100のCPU101が、外部記憶装置に記憶されたエラー画面(不図示)をディスプレイ120に表示する。エラー画面には、環境設定処理の際にテラーが顧客IDを入力していない旨の通知を行うことで、テラーに環境設定処理の際に顧客IDの入力を行うよう促す。エラー画面を表示したのち、処理をステップS102に戻す。
本発明の実施形態では、手と手の接触を例として説明したが、必ずしもこれに限定される必要はなく、物体であればこれに限定されるものではない。また、物体同士の対応付けられる属性をユーザとしたが、発明はユーザに限定されるものではなく、例えばグループなど対応付けるための属性であればこれに限定されない。
また、本発明の仕組みによれば、ユーザが誤って他人の手と接触してしまい、他のユーザの手として対応付けて記憶されてしまった場合でも、その手を再度自分のもう一方の手と所定の領域内で接触させることにより、ユーザが容易に正しい対応関係に修正することを可能とする効果がある。
以上で、本発明の第1の実施形態の説明を終了する。
第1の実施形態によれば、物体と物体が接触した位置座標を特定したうえで、この位置座標が属する領域に対応するユーザの物体として接触した物体を対応付けることが可能となる。
次に本発明の第2の実施形態の説明を始める。第1の実施形態では、物体の接触した位置座標によって、対応付ける属性(ユーザ)を決定した。第2の実施形態では、接触した物体同士の加速度(挙動情報)によって、対応付ける属性(ユーザ)を決定することができる。第2の実施形態では、図11が図18に、図12が図20に、図14が図19にそれぞれ変更したものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第1の実施形態と上記の変更点を除き同様とする。
第1の実施形態と同様のものは説明を省略し、第1の実施形態と異なる図18、19、20の説明を行う。
図18は第2の実施形態における物体解析処理の詳細な処理を説明するフローチャートである。
ステップS1801からステップS1803までの処理は、図11に示すフローチャートのステップS1101からステップS1103までと同様の処理であるため説明を省略する。
ステップS1820では、情報処理装置100のCPU101が、手の単位時間当たりの加速度を算出する。具体的には、センサ情報から得られる情報に基づいて指の先端の移動速度の変化率を算出することにより、加速度を求める。本実施形態では、三次元上の加速度とするが、XY平面における指の先端部分の加速度を算出してもよい。センサ情報から加速度を求める方法については従来の公知技術を用いるものとする。算出した加速度は、ステップS1803で特定された手の先端座標と手の挿入された座標とに対応する加速度2001(手管理テーブル2000)に格納される。
図20に示す手管理テーブル2000は、手管理テーブル1200に更に加速度2001を対応付けて管理するデータテーブルである。加速度2001は、手の先端座標の加速度を示す値が格納される。
ステップS1804からステップS1819までの処理は、図11に示すフローチャートのステップS1104からステップS1119までと同様の処理であるため説明を省略する。
以上で、図18に示すフローチャートの説明を終了する。
次に図19に示すフローチャートを用いて、第2の実施形態における対応付け処理の詳細な処理の説明を行う。
ステップS1901からステップS1903までは図14に示すステップS1401からステップS1403までの処理と同様であるため説明を省略する。
ステップS1904では、情報処理装置100のCPU101が、ステップS1903で取得した手ID1201に対応する加速度2001をそれぞれ取得する。(動き情報取得手段に相当する)
ステップS1905では、情報処理装置100のCPU101が、ステップS1904で取得した加速度2001のうち、加速度が小さい加速度2001に対応するユーザID1204を特定する。
ステップS1906は、図14のステップS1406と同様の処理を行うため説明を省略する。
ステップS1907では、情報処理装置100のCPU101が、ステップS1904で取得した加速度2001に基づいて、加速度2001が大きい方の手ID1201を特定したうえで、手ID1201に対応するユーザID1204を特定する。
ステップS1908では、情報処理装置100のCPU101が、ステップS1905で特定した手ID1201に対応するユーザID1204を、ステップS1907で特定したユーザID1204で更新する。このように、加速度の大きい方の手のユーザIDが加速度の小さい方の手のユーザIDに更新される。これによりユーザは直観的に手の属性を変更したい手を、もう一方の手に接触させることで、もう一方の手の属性(ユーザ)として2つの手を対応付けることが可能になるという効果がある。
以上で、図19に示すフローチャートの説明を終了する。尚、第2の実施形態では接触した物体同士の加速度によって、対応付ける属性(ユーザ)を決定(属性決定)したが、加速度以外にも手の動きを示す情報(動き情報)であれば、移動量などでも構わない。
以上で、第2の実施形態の説明を終了する。
次に第3の実施形態の説明を開始する。第3の実施形態は、第1の実施形態のように手の接触した位置座標によって、対応付ける属性(ユーザ)で複数の手を記憶する際に、2本以上(上限値以上)の手が同一のユーザの手として認識されないよう制御することを特徴とするものである。第3の実施形態では、図14が図24に変更したものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第1の実施形態と上記の変更点を除き同様とする。
第1の実施形態と同様のものは説明を省略し、第1の実施形態と異なる図24の説明を行う。
図24のフローチャートを用いて、第3の実施形態における対応付け処理の詳細な処理の説明を行う。
ステップS2401からステップS2407は、図14のステップS1401からステップS1407と処理が同様であるため説明を省略する。
ステップS2408では、情報処理装置100のCPU101が、ステップS2405で特定した領域1502に対応するユーザID1204が、手管理テーブル1200のユーザID1204に格納されているレコードを抽出する。
ステップS2409では、情報処理装置100のCPU101が、ステップS2408で抽出したレコードの数が1つ以下であるか否かを判定する。レコードの数が1つ以下である場合には処理をステップS2410に進め、そうでない場合には処理を終了させる。
ステップS2410の処理は、ステップS1408と処理が同様であるため説明を省略する。
以上で図24の説明を終了する。
以上、第3の実施形態によれば、所定の数(本実施形態では3つ)以上、手(物体)が同一のユーザとして対応付けられないようにすることで、適切に手を対応付けることを可能とする。一人の人間は3本以上の手を具備することはない。つまり、あるユーザとして対応付けようとした手(接触した手)があるユーザの3本目以上である場合には、この手は、あるユーザとは別のユーザの手である可能性が高いため、対応付けることを行わない。これにより、ユーザが誤って他のユーザの手に接触してしまった場合であっても、対応付けて記憶させない効果がある。
次に第4の実施形態の説明を開始する。第4の実施形態は、第2の実施形態のように接触した手それぞれの加速度によって、対応付ける属性(ユーザ)で複数の手を記憶する際に、2本以上の手が同一のユーザの手として認識されないよう制御することを特徴とするものである。第4の実施形態では、図19が図25にそれぞれ変更したものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第2の実施形態と上記の変更点を除き同様とする。
第2の実施形態と同様のものは説明を省略し、第2の実施形態と異なる図25の説明を行う。
図25のフローチャートを用いて、第4の実施形態における対応付け処理の詳細な処理の説明を行う。
ステップS2501からステップS2507は、図19のステップS1901からステップS1907と処理は同様であるため説明を省略する。
ステップS2508では、情報処理装置100のCPU101が、ステップS2505で特定した加速度が小さい加速度2001に対応する手のユーザIDが、手管理テーブル2000のユーザID1204に格納されているレコードを抽出する。
ステップS2409では、情報処理装置100のCPU101が、ステップS2508で抽出したレコードの数が1つ以下であるか否かを判定する。レコードの数が1つ以下である場合には処理をステップS2510に進め、そうでない場合には処理を終了する。
以上で図24の説明を終了する。
以上、第4の実施形態によれば、第3の実施形態と同様に、所定の数(本実施形態では3つ)以上、手(物体)が同一のユーザとして対応付けられないようにすることで、適切に手を対応付けることを可能とする。通常、一人の人間は3本以上の手を具備することはない。つまり、あるユーザとして対応付けようとした手(接触した手)があるユーザの3本目以上である場合には、この手は、あるユーザとは別のユーザの手である可能性が高いため、対応付けることを行わない。これにより、顧客が誤って他の顧客の手に接触してしまった場合であっても、対応付けて記憶させない効果がある。
次に第5の実施形態の説明を開始する。
第5の実施形態では、複数の手(以下、指示体)が所定の条件を満たしたとしても、所定の条件を満たした指示体のうち所定の属性の指示体が含まれる場合には、所定の条件を満たした指示体を対応付けないことを可能とするものである。具体的には、顧客同士の手同士であれば対応付けるようにし、テラーの手と顧客の手など、所定のユーザの手が含まれる場合には対応付けないように制御するというような例である。第5の実施形態では、図14のフローチャートが図26に変更したものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第1の実施形態と上記の変更点を除き同様とするため同様な部分については説明を省略する。
図26は第5の実施形態における対応付け処理の詳細な処理の流れを説明するフローチャートである。図26のフローチャートは、図14のフローチャートにステップS2601を追加したものである。それ以外の処理については同様であるため説明は省略し、ステップS2601の処理の内容について説明を行う。
ステップS2601では、情報処理装置100のCPU101が、ステップS1403で取得したユーザIDにテラーのユーザIDが含まれているか否かを判定する。テラーのユーザIDが含まれていると判定された場合には処理を終了させ、テラーのユーザIDが含まれていないと判定された場合には処理をステップS1407に進める。テラーのユーザIDが含まれているか否かの具体的な判断方法については、例えば、テラーのユーザIDのみを管理するテーブルがあらかじめ外部記憶装置108に記憶されており、ステップS1403で取得されたユーザIDのなかに上記テーブルに含まれるユーザIDがある場合に、テラーのユーザIDが含まれていると判定することができる。なお、テラーのユーザIDが含まれているか否かの判定方法はこれに限定されない。また、テラーのユーザIDを例として説明したがテラーに限定されず、ユースケースに応じて所定のユーザIDが含まれる場合に、所定のユーザの手と他者の手との対応付けを行わないようにすることができればよい。
以上で図26に示すフローチャートの説明を終了し、第5の実施形態の説明を終える。第5の実施形態によれば、指示体(手)同士が所定の条件を満たしたとしても、所定の属性(ユーザ)の指示体(手)が含まれる場合に対応付けないようにすることで、対応付けるべきでない指示体が対応づいてしまうことを防止する効果がある。
次に図27〜図29を用いて本発明の第6の実施形態の説明を行う。第6の実施形態では、投影面上の所定の領域にタッチ操作が行われたことを条件として、所定の領域に該タッチ操作を行った指示体を対応付ける。第6の実施形態では、図21を図27に変更し、図28と図29とを新たに追加したものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第1の実施形態と上記の変更点を除き同様とする。そのため、第1の実施形態と異なる部分についてのみ説明をし、それ以外については省略する。
図27のフローチャートについて説明する。図27は、タッチ操作実行処理の詳細な処理の流れを説明するフローチャートである。図27のフローチャートは、図21のフローチャートにステップS2701とステップS2702とが新たに追加されたフローチャートである。追加された部分以外については、図21のフローチャートと処理は同様であるため説明は省略する。
ステップS2701では、情報処理装置100のCPU101が、ステップS2101で特定された位置座標が対応付け領域の範囲内か否かを判定する。ステップS2101で特定された位置情報が対応付け領域の範囲内であると判定された場合には処理をステップS2702に進め、そうでない場合には処理をステップS2105に進める。
対応付け領域とは、投影面上にあらかじめ設定されている領域である。例えば図29(A)のようにユーザが識別可能に領域を示されている。この対応付け領域にタッチ操作を行った手が対応付けの対象となる。対応付け領域は矩形であっても円形であっても構わず、形状を問わない。
ステップS2702では、情報処理装置100のCPU101が、対応付け領域の範囲内でタッチ操作がされた手同士を対応付ける処理である対応付け処理を行う。対応付け処理の詳細な処理の流れは、図28のフローチャートを用いて説明する。
図28は第6の実施形態におけるステップS2702の対応付け処理の詳細な処理の流れを説明するフローチャートである。図28のフローチャートの処理の流れの説明を行う。
ステップS2801では、情報処理装置100のCPU101が、外部記憶装置108に記憶されている手管理テーブル1200を取得する。
ステップS2802では、情報処理装置100のCPU101が、ステップS2701で対応付け領域の範囲内にある(所定の条件を満たす)と判定された位置情報に対応するユーザID1204を、ステップS2801で取得された手管理テーブル1200から取得する。具体的には、ステップS2101で特定された位置情報と一致する、手管理テーブル1200の先端座標1202を特定し、先端座標1202に対応するユーザID1204を取得する。複数箇所タッチされているので、タッチされている箇所の数だけユーザID1204を取得する。位置情報と先端座標1202との一致の判定は完全一致である必要は無く、ある程度の幅を持たせてもよい。
ステップS2803では、情報処理装置100のCPU101が、ステップS2802で取得されたユーザID1204は一致しているか否かを判定する。本実施形態では、タッチされた位置情報は2つを例として説明するが、タッチされた位置情報は3つ以上であってもよい。ユーザID1204が一致している(タッチをしている手の属性がすべて同じユーザを示している)場合には処理を終了させ、そうでない(タッチをしている手の属性が異なるユーザを示している)場合には処理をステップS2804に進める。
ステップS2804では、情報処理装置100のCPU101が、投影面上にステップS2802で取得したユーザID1204をリストとして表示させる。例えば図29(B)のような表示をする。
ステップS2805では、情報処理装置100のCPU101が、ステップS2804で表示されたユーザID1204の選択を受け付けたか否かを判定する。ユーザID1204の選択を受け付けたと判定された場合には処理をステップS2806に進め、そうでない場合には選択を受け付けるまで待機する。ステップS2804で表示されたユーザIDの1204のうち1つのユーザID1204の選択をユーザから受け付けることで、対応付けるべきユーザの指定を受け付けることができる。これにより適切な対応付けを行うことができるという効果がある。図29(B)では、ユーザBが選択されている。
ステップS2806では、情報処理装置100のCPU101が、ステップS2805で選択されたと判定されたユーザID1204で、ステップS2101で特定された位置情報に対応するユーザID1204を更新する。更新したことを示すべく、図29(C)に示すように、対応付けられたことを示す「対応付けました。」という文言を表示してもよい。なお、図29(C)の表示は一例であって、対応付けられたことを通知することができれば何でもよい。
以上で、第6の実施形態の説明を終了する。第6の実施形態によれば、ステップS2101で特定された位置情報に対応するユーザID1204が同一のユーザIDとなるため、投影面上の対応付け領域の範囲内でタッチ操作をした手同士を対応付けることができる。これにより対応付けられた手によるマルチジェスチャの操作を行うことができるようになる。また、対応付けられたことが投影面上で通知されるため、ユーザに対応付けられたことを認識させることができる。
次に、第7の実施形態の説明を開始する。第7の実施形態では、投影面上をユーザの手により同時にタッチ操作をされること(所定の条件)により、タッチ操作が行われた手を対応付けることのできる操作感を提供することを可能とするものである。第7の実施形態は、第6の実施形態の図27を図30に変更し、図12の手管理テーブル1200を図31に変更したものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第1の実施形態と上記の変更点を除き同様とする。そのため、第1の実施形態と異なる部分についてのみ説明をし、それ以外については省略する。
図30のフローチャートは、第7の実施形態におけるタッチ操作実行処理の詳細な処理の流れを説明するフローチャートである。このフローチャートは、図27のフローチャートにステップS3001、ステップS3002、ステップS2702の処理が新たに追加されたものである。追加された処理以外の部分は図21のフローチャートと処理は共通であるため説明は省略する。
ステップS3001では、情報処理装置100のCPU101が、ステップS707で取得されたセンサ情報に基づいて、投影面上でタッチされた時刻を特定し、図31の手管理テーブル3100のタッチ時刻3101を更新する。具体的に説明する。ステップS2101で特定された位置情報と、先端座標1202とが一致するレコードを特定する。そして、特定されたレコードのタッチ時刻3101を、投影面上でタッチされた時刻で更新する。例えば、ステップS2101で特定された位置情報が(X6,Y6)である場合には手ID1201が「2」のレコードが特定される。このレコードのタッチ時刻3101を例えば「13:25:42」に更新する。
なお、タッチ時刻の更新方法は一例であって、これ以外の方法でタッチされた時刻を特定するようにしても構わない。
ステップS3002では、情報処理装置100のCPU101が、手管理テーブル3100のタッチ時刻3101を参照し、タッチ時刻3101が一致するレコードがあるか否かを判定する。タッチ時刻3101が一致するレコードが存在すると判定された場合には処理をステップS2702に進め、そうでない場合には処理をステップS2106に進める。図31の手管理テーブル3100の場合は、手ID1201が1のレコードと2のレコードのタッチ時刻3101が一致すると判断することができる。なお、タッチ時刻3101の一致の判定は完全一致である必要はなく、目的に応じて所定の幅の範囲内であれば一致すると判断するような構成としても構わない。
ステップS2702の処理は図27のステップS2702と処理フローは共通(図28のフローチャート)であるため、説明を省略する。
第7の実施形態では、第6の実施形態の図28のフローチャートとは、所定の条件が異なっている。
そのため、第7の実施形態における所定の条件を説明するためにステップS2802及びステップS2803について説明する。それ以外の処理の流れについては、第6の実施形態と処理の流れは同じであるため説明は省略する。また、図29(A)〜(C)を、図32(A)〜(C)に置き換えて説明する。
ステップS2802では、情報処理装置100のCPU101が、ステップS3002でタッチ時刻が一致すると判定されたレコードのユーザID1204(所定の条件を満たす手のユーザID)を取得する。例えば図31の手管理テーブル3100であれば、タッチ時刻3101が一致しているユーザID1204が「AAA」と「BBB」であるのでこれらを取得する。
ステップS2803では、ステップS2802で取得されたユーザID1204が一致しているか否かを判定する。一致すると判定された場合には処理を終了させ、そうでない場合には処理をステップS2804に進める。
第7の実施形態のイメージ図が図32のイメージ図である。図32(A)はユーザの手(指示体)が投影面を同時にタッチしていることを示すイメージである。図32(B)はステップS2804で表示されるユーザIDのリストのイメージ図である。図32(C)はステップS2806で手管理テーブル3100が更新されたことに伴い、対応付けて管理されたことをユーザに対して通知する画面例を示す図である。
以上、本発明の第7の実施形態によれば、ユーザが投影面に同時にタッチ操作を行うことを、手を対応付けて管理するための所定の条件とすることで、手を対応付ける際に直観的な操作感で対応付けて管理することを可能とする仕組みをユーザに提供することができ、より使い勝手のよい操作環境を提供することができる。
次に、第8の実施形態の説明を開始する。第8の実施形態では、手を対応付けるためのジェスチャ操作の所定の条件として、対応付けたい手が投影面に同時に検知された(同時にユーザは投影面に挿入すること)ことを条件とする。なお、同時とは、検知された時刻が完全に一致することを意味するのではなく、目的に応じて完全同一ではなく所定の幅を持たせても(所定の時間内としても)構わない。
第8の実施形態では、第1の実施形態の図11が図33に変更され、図12が図34に変更されたものである。その他のシステム構成、ハードウェア構成、機能構成、画面例、データテーブル等は第1の実施形態と上記の変更点を除き同様とする。そのため、第1の実施形態と異なる部分についてのみ説明をし、処理の内容が共通する部分については説明を省略する。
図33は、第8の実施形態における物体解析処理の詳細な処理の流れを説明するフローチャートである。図33は、図11のフローチャートにステップS3301とステップS3302とステップS3303とが追加されたフローチャートである。追加された処理のみの説明を行い、これ以外の部分については図11のフローチャートと処理の内容は共通であるため説明を省略する。
ステップS3301では、情報処理装置100のCPU101が、ステップS1102で検知された手と同じ時刻に、投影面に挿入された手があるか否かを判定する。すなわち、ステップS1102で物体は手であると検知されたタイミングと一致する、手管理テーブル3400の検知時刻3401が存在する(検知時刻3401が一致する)か否かを判定する。同じタイミングで投影面に挿入された手があると判定された場合には処理をステップS3302に進め、そうでない場合には処理をステップS3303に進める。
ステップS3302では、情報処理装置100のCPU101が、ステップS1102で物体は手であると検知された時刻と一致する、手管理テーブル3400の検知時刻3401に対応するユーザID1204を特定する。例えば図34の場合、ステップS1102で手が検出された時刻が「9:14:50」であった場合、この時刻に対応する検知時刻3401に対応するユーザID1204は「AAA」が特定される。
ステップS3303では、情報処理装置100のCPU101が、ステップS1101で取得した手管理テーブル3400にレコードを追加する。追加されるレコードは、ステップS1103で特定した手の先端座標を先端座標1202に、ステップS1103で特定した手の挿入された座標を挿入された座標1203に、ステップS1106で特定したユーザID1204(あるいは、ステップS3302でユーザID1204が特定されている場合にはステップS3302で特定されたユーザID1204)をユーザID1204に、それぞれ格納したレコードとなる。追加されるレコードの手ID1201は、手管理テーブルに格納されている手ID1201で最も大きい値に1増加させたものとする。更新フラグ1205には「1」を格納する。更に、ステップS1102で物体は手であると検知したタイミングの時刻を取得し、検知時刻3401に格納する。なお、本実施形態では、物体は手であると検知したタイミングを手が投影面に挿入されたタイミングと同義で説明するが、一例であって、これに限定されない。
以上で第8の実施形態の説明を終了する。第8の実施形態によれば、指示体を投影面で検知させることを条件に、指示体を対応づけることができるため、容易に指示体を対応付けることを可能とする効果がある。
以上、本発明によれば、投影面上にある複数の指示体を容易に対応付けることを可能にし、対応付けられた複数の指示体による操作を実行可能にすることができる。
なお、本発明の実施形態の説明では、テラーと顧客という2つ種類のユーザを例として説明をしたが、説明の一例であってこれに限定されない。更に、対面システムを例として説明を行ったが、これに限定されない。
また、本発明の実施形態の説明では、対応付ける物体を手(指示体)として説明をしたが、指示の対象としての文書などの物体も指示体に含まれるものである。対応付けて管理することができ、投影面上に検出することのできる物体であれば、手に限定されることなく本発明の範囲に含まれるものである。対応付ける手を同一人物の属性となるように対応付ける例を、本発明の実施形態では説明を行ったが、他人同士の手を一時的に対応付けて、対応付けられた複数の指示体による操作(マルチジェスチャ操作)を行うようにしても当然構わない。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。