以下、図面を参照しながら、本発明の実施形態の一例について説明する。
図1は、本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。情報処理システムは、情報処理装置101と投影撮像装置102とを含む。情報処理装置101は、投影撮像装置102と通信可能に接続されており、またディスプレイ410と入力デバイス409とも通信可能に接続されている。図1では、これらの装置は有線で接続されているが、無線であってもよい。尚、図1のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。
情報処理装置101は、オペレーティングシステムを搭載する汎用的な装置である。情報処理装置101は、当該情報処理装置101に接続された各種デバイスに対して各種動作を実行するよう指示を行う。
投影撮像装置102は、プロジェクタと、デジタルカメラと、ジェスチャセンサとを備える装置である。情報処理装置101からの指示に応じてプロジェクタで投影をし、投影をした投影面をデジタルカメラで撮像し、また投影面上でユーザの手の動きや物体の位置を認識する。
投影撮像装置102の外部構造及び内部構造について、図2を用いて説明する。
図2は、投影撮像装置102の正面図と右側面図である。内部構造の隠れ線は破線で表現している。投影撮像装置102はプロジェクタ423(投影装置)とデジタルカメラ421(撮像装置)を格納する箱状の収納部を底面201と左側面202aと右側面202bとで左右から挟みこんで固定している。
また、上面204が左側面202aと右側面202bとの上部に設置され、上面204の下側にプロジェクタ423から照射される光を反射するための反射鏡207を備える。すなわち、プロジェクタ423はプロジェクタ用開口部206を通してこの反射鏡207に向けて投影できるよう、設置されている。デジタルカメラ421も同様に、反射鏡207で反射した投影面を撮像するため、デジタルカメラ421はデジタルカメラ用開口部205を通して反射鏡207に向けて設置されている。
更に、投影撮像装置102は、ジェスチャセンサ422(センサ装置)を備えている。このジェスチャセンサ422は、例えば赤外線を用いた深度センサである。これはプロジェクタ423が投影した投影面上におけるユーザの手や紙文書(以下、書類)等の位置や動きを特定するために、センサからこれらの物体までの距離を算出する。深度センサは、近赤外線のドットパターンを現実空間に投影し、このドットの形や間隔を取得することで物体までの距離を算出する。または、赤外線光を投影し、深度センサが備えるカメラによって反射した赤外線光を読み取り、赤外線光が往復した時間を算出することで距離を算出する方式であってもよい。現実空間における物体の位置や動きを取得することができれば、深度センサの距離の算出方式はどのような方式であってもよいし、深度センサ以外のセンサを用いてもよい。
投影撮像装置102は以上のように大きく3つの装置を内包しており、これらがそれぞれ情報処理装置101と通信可能に接続されている。本実施形態においては、情報処理装置101と投影撮像装置102とが異なる筐体であるが、同一の筐体であってもよい。すなわち、投影撮像装置102に更に情報処理装置101を内包してもよい。
次に図3を用いて、投影撮像装置102とユーザとの位置関係について説明する。投影撮像装置102は、机上303に設置される。本実施形態では机を挟んで二人のユーザがいる。銀行窓口で商品説明を行うテラー301と、商品説明を受ける顧客302である。
テラー301は、入力デバイス409を操作して情報処理装置101に画面の表示指示を行うと、情報処理装置101からプロジェクタ423に対して当該画面の投影指示が送信される。プロジェクタ423はこれを受けると反射鏡207に向かって左右を反転させた画面を投影する。これは、反射鏡207で反射することにより、投影面304に投影される像が左右反転してしまうからである。こうすると、投影面304に指示した画面が投影される。また投影面304は、投影される光が見やすいよう模様のない白い面であることが望ましい。
プロジェクタ423から照射された光が反射鏡207で図3の破線の矢印で示すような方向に反射されると、その光が投影面304に投影される。この光によって表現される画面を見て、テラー301が顧客302に商品説明を行う。本実施形態では、このようにテラー301と顧客302とが机を挟んで位置しており、それぞれが投影された画面を見ながら操作していく形態を前提として説明を行う。
図4は、本発明の実施形態における情報処理装置101のハードウェア構成の一例を示す図である。
CPU401は、システムバス404に接続される各デバイスやコントローラを統括的に制御する。
また、ROM402あるいは外部メモリ411(記憶手段)には、CPU401の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、情報処理装置101の実行する機能を実現するために必要な各種プログラム等が記憶されている。RAM403は、CPU401の主メモリ、ワークエリア等として機能する。
CPU401は、処理の実行に際して必要なプログラム等をRAM403にロードして、プログラムを実行することで各種動作を実現するものである。
また、汎用入出力コントローラ405は、キーボードやマウス等の入力デバイス409、更には投影撮像装置102のデジタルカメラ421やジェスチャセンサ422との入出力を制御する。これらは、USB(Universal Serial Bus)等のバス規格により接続される。
ビデオコントローラ406は、ディスプレイ410や投影撮像装置102のプロジェクタ423等の表示装置や投影装置への表示を制御する。ディスプレイ410は例えばCRTや液晶ディスプレイである。更にビデオコントローラ406は、ディスプレイ410と投影撮像装置102のプロジェクタ423とそれぞれに対して同じ画面または異なる画面を表示・投影指示する。いわゆるミラーリングやマルチモニタが可能である。
メモリコントローラ407は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスクやフレキシブルディスク或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ411へのアクセスを制御する。
通信I/Fコントローラ408は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
尚、CPU401は、例えばRAM403内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ410上での表示や投影撮像装置102のプロジェクタ423での投影を可能としている。また、CPU401は、ディスプレイ410上の不図示のマウスカーソル等でのユーザ指示を可能とする。更にCPU401は、投影面304に投影された画面をユーザの手でタッチすることによっても、ユーザ指示を可能とする。すなわち、ジェスチャセンサ422で検知した現実空間におけるユーザの手の座標位置に応じて、画面のボタン等が押下されたのか否かを検知し、CPU401に動作を実行させる。
本発明の情報処理装置101が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ411に記録されており、必要に応じてRAM403にロードされることによりCPU401によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ411に格納されている。
次に、情報処理装置101の機能構成の一例について図5を用いて説明する。尚、図5の情報処理装置101の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
情報処理装置101は機能部として、記憶部501、表示制御部502、投影制御部503、撮像制御部504、センサ制御部505、座標変換部506、操作検知部507、シミュレーション制御部508、画像データ解析部509、画像処理部510、オーバレイ表示部511を備える。
記憶部501は、後述する各種テーブルの情報や各種画面を構成する情報を記憶するための機能部である。必要に応じて、情報の追加・更新・削除を行う。
表示制御部502は、情報処理装置101と通信可能に接続されたディスプレイ410の表示を制御するための機能部である。表示制御部502から画面等の表示指示がなされると、ビデオコントローラ406を介してディスプレイ410に表示指示が送信される。そして、ディスプレイ410はこの指示を受信すると、指示に従って画面等を表示する。
投影制御部503は、情報処理装置101と通信可能に接続されたプロジェクタ423の投影を制御するための機能部である。投影制御部503から画面等の投影指示がなされると、表示制御部502と同様にビデオコントローラ406を介してプロジェクタ423に投影指示が送信される。そして、プロジェクタ423はこの指示を受信すると、指示に従って画面等を投影する。
撮像制御部504は、情報処理装置101と通信可能に接続されたデジタルカメラ421の撮像を制御するための機能部である。撮像制御部504から投影面304の撮像指示が出されると、汎用入出力コントローラ405を介してデジタルカメラ421に撮像指示がなされる。デジタルカメラ421はこの指示を受信すると、撮像を行い、撮像により生成された画像データを情報処理装置101に送信する。撮像制御部504は、これを受け取り、画像データを左右反転させた上で記憶部501が外部メモリ411等に記憶する。前述した通り、デジタルカメラ421は反射鏡207に写った像を撮像するため左右が反転している。これを補正するために、記憶部501で画像データを記憶する前に、撮像制御部504がこの画像データを左右反転する。
センサ制御部505は、情報処理装置101と通信可能に接続されたジェスチャセンサ422から送信される、投影面304における現実空間の情報(物体の有無や位置等)を制御するための機能部である。ジェスチャセンサ422が検出した現実空間の情報は、ジェスチャセンサ422から情報処理装置101に対して逐一送信される。センサ制御部505はこれを受信し、後述する座標変換部506に渡す。
座標変換部506は、センサ制御部505が受信した現実空間の情報に含まれる、投影面304にある物体の位置を示す座標値を変換するための機能部である。座標変換部506は、この座標値を投影面304に投影された画面における座標値に変換する。基本的に、ジェスチャセンサ422が検知する投影面304における座標値と、情報処理装置101が投影指示する画面の座標値とは、異なる座標値である。これは、ジェスチャセンサ422が認識する座標値の粒度と情報処理装置101が認識する座標値の粒度が異なるためである。すなわち、座標値の絶対値「1」あたりの長さがジェスチャセンサ422と情報処理装置101とで異なるということである。そのため、ジェスチャセンサ422で検知した座標値は情報処理装置101が管理する画面のどの座標値に該当するのかを、この座標変換部506を用いて特定する。尚、座標変換の方法は従来技術を用いるため詳細な説明は省略する。
操作検知部507は、ユーザからの操作を検知するための機能部である。情報処理装置101に接続された入力デバイス409を通じて送信されるユーザからの指示を検知したり、投影面304に投影された画面でユーザが行った指示を検知したりする。後者の指示の検知は、投影面304において検知した物体の座標値を座標変換部506で変換することにより画面上のどのボタンが押下されたのかを検知したり、書類が置かれることにより書類の取込が指示されたのかを検知したりする。
シミュレーション制御部508は、ユーザから指定された入力値を用いてシミュレーションを実行するための機能部である。入力デバイス409や投影面304においてユーザからのタッチ操作等を受け付けることで、シミュレーションを実行するための入力値を取得し、これを用いて将来の状況をシミュレーションする。特に本実施形態では、銀行窓口で住宅ローンの説明を行う場合を想定しているため、月々の返済額はいくらになるのかをシミュレーションする。シミュレーションする対象はこれに限らない。
画像データ解析部509は、デジタルカメラ421から送信された画像データを解析するための機能部である。デジタルカメラ421は、ユーザによって置かれた書類を含む投影面304を撮像しているので、この書類だけを抽出するために画像データを解析する。特に、書類のエッジ検出を行い、後述する画像処理部510がこの書類を抽出できるようにする。エッジ検出の方法は従来技術を用いるため、詳細な説明は省略する。
画像処理部510は、デジタルカメラ421から送信された画像データに対して画像処理を施すための機能部である。画像データ解析部509で書類のエッジが検出されているので、このエッジに沿って書類をトリミングすることで書類の画像データを生成する。更に、この書類の画像データの傾きを当該書類の縦横が画面の縦横とそれぞれ平行になるよう補正する。その他、画像データを閲覧しやすくするための画像処理を行ってもよい。こうして画像処理が施された書類の画像データを記憶部501で記憶する。尚、前述した撮像制御部504で画像データを記憶する前に左右反転させていたが、画像処理部510がこれを行ってもよい。
オーバレイ表示部511は、投影制御部503でプロジェクタ423に投影指示する画面に対して、オーバレイ表示を行うための機能部である。プロジェクタ423で投影する画面の上に前述した書類の画像データを重畳させる(オーバレイする)。そして書類の画像データがオーバレイされた画面を投影制御部503がプロジェクタ423に対して投影指示する。オーバレイ表示の方法は従来技術を用いるため、詳細な説明は省略する。
次に、本発明の実施形態における一連の処理の流れについて、図6に示すフローチャートを用いて説明する。
まず、ステップS601では、情報処理装置101のCPU401は、ユーザであるテラー301からの指示に応じて外部メモリ411等に記憶された投影アプリケーションを起動する。投影アプリケーションは、後述するステップS602乃至ステップS612の各処理を実行するためのアプリケーションである。投影アプリケーションを動作させることにより、投影面304に商品説明のための各種画面をプロジェクタ423から投影する。
ステップS602では、情報処理装置101のCPU401は、図7に示すようなログイン画面700をディスプレイ410に表示する。ログイン画面700には、テラー301ごとに割り振られたユーザIDの入力を受け付けるユーザID入力欄701と、このユーザIDと対応するパスワードの入力を受け付けるパスワード入力欄702とを備えている。投影アプリケーションをテラー301が利用するためには、ユーザ認証を行う必要がある。
ステップS603では、情報処理装置101のCPU401は、投影アプリケーションの終了指示を検知したか否かを判定する。すなわち、ユーザから投影アプリケーションの終了指示(不図示の終了ボタンの押下指示や画面を閉じる指示等)を受け付けたか否かを判定する。終了指示を検知したと判定した場合には、ステップS612に処理を進める。終了指示を検知していないと判定した場合には、ステップS604に処理を進める。
ステップS604では、情報処理装置101のCPU401は、ログイン画面700が備えるログインボタン703の押下を検知したか否かを判定する。ログインボタン703の押下を検知したと判定した場合には、ステップS605に処理を進める。ログインボタン703の押下を検知していないと判定した場合には、ステップS603に処理を戻す。
ステップS605では、情報処理装置101のCPU401は、ユーザID入力欄701とパスワード入力欄702とに入力されたユーザIDとパスワードの組が、あらかじめ外部メモリ411等に記憶されたユーザIDとパスワードの組に一致するか否かを判定する。ユーザ認証の仕組みは従来技術であるので詳細な説明は省略する。ユーザID入力欄701とパスワード入力欄702とに入力されたユーザIDとパスワードの組が、あらかじめ外部メモリ411等に記憶されたユーザIDとパスワードの組に一致すると判定した場合には、ユーザ認証は成功であるので、投影アプリケーションにログインして、ステップS606に処理を進める。ユーザID入力欄701とパスワード入力欄702とに入力されたユーザIDとパスワードの組が、あらかじめ外部メモリ411等に記憶されたユーザIDとパスワードの組に一致しないと判定した場合には、ユーザ認証は失敗であるので、その旨を通知してステップS602に処理を戻す。
ステップS606では、情報処理装置101のCPU401は、図8に示すようなメニュー画面800をディスプレイ410に表示する。メニュー画面800は、説明開始ボタン801、説明再開ボタン802、ログアウトボタン803の3つのボタンを備えている。説明開始ボタン801は、顧客302に対する商品説明を最初から開始するためのボタンである。説明再開ボタン802は、中断した商品説明を再開するためのボタンである。更にログアウトボタン803は、投影アプリケーションからログアウトするためのボタンである。
ステップS607では、情報処理装置101のCPU401は、説明開始ボタン801の押下を検知したか否かを判定する。すなわち、ユーザであるテラー301から説明開始ボタン801の押下を受け付けたか否かを判定する。説明開始ボタン801の押下を検知したと判定した場合には、ステップS608に処理を進める。説明開始ボタン801の押下を検知していない、または説明開始ボタン801以外のボタンの押下を検知したと判定した場合には、ステップS609に処理を進める。
ステップS608では、情報処理装置101のCPU401は、説明開始処理を実行する。説明開始処理の詳細は、後述する図9及び図10に示す。説明開始処理が終了したら、ステップS606に処理を戻す。
ステップS609では、情報処理装置101のCPU401は、説明再開ボタン802の押下を検知したか否かを判定する。すなわち、ユーザであるテラー301から説明再開ボタン802の押下を受け付けたか否かを判定する。説明再開ボタン802の押下を検知したと判定した場合には、ステップS610に処理を進める。説明再開ボタン802の押下を検知していない、または説明開始ボタン801及び説明再開ボタン802以外のボタンの押下を検知したと判定した場合には、ステップS611に処理を進める。
ステップS610では、情報処理装置101のCPU401は、説明再開処理を実行する。説明再開処理の詳細は、後述する図24及び図25に示す。説明再開処理が終了したら、ステップS606に処理を戻す。
ステップS611では、情報処理装置101のCPU401は、ログアウトボタン803の押下を検知したか否かを判定する。すなわち、ユーザであるテラー301からログアウトボタン803の押下を受け付けたか否かを判定する。ログアウトボタン803の押下を検知したと判定した場合には、投影アプリケーションからログアウトし、ステップS602に処理を戻す。ログアウトボタン803の押下を検知していないと判定した場合には、ステップS606に処理を戻す。このとき、すでにメニュー画面800が表示されているのであれば、ステップS607に処理を戻す。
一方、ステップS603で終了指示を検知した場合には、ステップS612では、情報処理装置101のCPU401は、ステップS601で起動した投影アプリケーションを終了する。このように、ユーザであるテラー301が投影アプリケーションを操作することで、説明の準備を行う。
次に、説明開始処理の流れについて、図9及び図10に示すフローチャートを用いて説明する。
まず、ステップS901では、情報処理装置101のCPU401は、図11に示すような顧客情報登録画面1100をプロジェクタ423に投影させて、投影面304に表示する。このとき、ミラーリング機能を用いて、ディスプレイ410には同じ顧客情報登録画面1100が表示されてもよいし、マルチモニタ機能を用いて、ディスプレイ410には顧客情報登録画面1100を操作するためのマニュアルや説明すべきポイントを表示させてもよい。以下、プロジェクタ423から投影面304に画面を投影する場合についても同様である。顧客情報登録画面1100は、顧客302に関する情報(以下、顧客情報)を入力するための画面である。テラー301側には顧客情報の入力を受け付けるための入力欄が備えられており、顧客302側にはテラー301が入力を行った顧客情報がリアルタイムに更新されて表示される。情報処理装置101は、いずれかの入力欄に対するタッチ操作を検知すると、当該入力欄を入力受付状態にする。そして、入力デバイス409のキーボード等を用いて文字入力を受け付けると、この入力欄に文字列が入力される。
ステップS902では、情報処理装置101のCPU401は、顧客情報登録画面1100が備える登録ボタン1101の押下を検知したか否かを判定する。すなわち、ユーザから登録ボタン1101の押下を受け付けたか否かを判定する。登録ボタン1101の押下を検知したと判定した場合には、ステップS903に処理を進める。登録ボタン1101の押下を検知していないと判定した場合には、登録ボタン1101の押下を検知するまでステップS902の処理を繰り返す。
ステップS903では、情報処理装置101のCPU401は、顧客情報登録画面1100で入力を受け付けた顧客情報を図12に示す顧客情報テーブル1200に追加する。より具体的には、顧客情報テーブル1200に新しくレコードを作成し、作成したレコードの各項目に対して、顧客情報を追加する。
顧客情報テーブル1200は、情報処理装置101の外部メモリ411等に記憶されるテーブルである。顧客情報テーブル1200は、顧客ID1201、顧客名1202、フリガナ1203、郵便番号1204、住所1205、電話番号1206、生年月日1207、年齢1208、性別1209から構成される。顧客情報テーブル1200の項目の構成はあくまで一例であり、これに限らない。
顧客ID1201は、顧客302ごとに割り振られる一意な識別情報である。ステップS903で新しくレコードを作成すると、一意な識別情報が割り振られて、顧客ID1201に格納される。顧客名1202は、顧客302の名前である。フリガナ1203は、顧客名1202が示す名前のフリガナを示す。郵便番号1204は、顧客302の住所の郵便番号を示す。住所1205は、顧客302の住所を示す。電話番号1206は、顧客302の電話番号を示す。生年月日1207は、顧客302の生年月日を示す。年齢1208は、顧客302の満年齢を示す。性別1209は、顧客302の性別を示す。
ステップS904では、情報処理装置101のCPU401は、図13に示すような商品説明画面1300をプロジェクタ423に投影させて、投影面304に表示する。商品説明画面1300は、本実施形態においては住宅ローンの説明を行うための画面である。テラー301側には住宅ローンの説明を行うためのチラシのサムネイル画像が表示されており、このいずれかに対するタッチ操作を検知すると、タッチ操作を検知したサムネイル画像に対応するチラシが顧客302側に表示される。例えば、図13のサムネイル画像1303に対するタッチ操作を検知すると、顧客302側にチラシ1304が表示される。顧客302側に表示されるチラシは、チラシの画像データであってもよいし、文書データであってもよい。
ステップS905では、情報処理装置101のCPU401は、再開時操作処理を実行する。再開時操作処理の詳細は、後述する図28に示す。
ステップS906では、情報処理装置101のCPU401は、商品説明画面1300が備える中断ボタン1301の押下を検知したか否かを判定する。すなわち、ユーザから中断ボタン1301の押下を受け付けたか否かを判定する。中断ボタン1301の押下を検知したと判定した場合には、ステップS907に処理を進める。中断ボタン1301の押下を検知していない、または中断ボタン1301以外のボタンの押下を検知したと判定した場合には、ステップS909に処理を進める。
ステップS907では、情報処理装置101のCPU401は、現在、投影面304に投影している画面の画面ID1211を取得し、RAM403に一時記憶する。画面ID1211は、図12に示す画面管理テーブル1210で管理している。すなわち、現在、投影面304に表示されている画面は商品説明画面1300であるので、この商品説明画面1300に対応する画面名1212は、「商品説明画面」である。これに対応する画面ID1211は「UI01」であるので、これを取得する。
画面管理テーブル1210は、情報処理装置101の外部メモリ411等に記憶されるテーブルである。画面管理テーブル1210は、画面ID1211、画面名1212から構成される。画面管理テーブル1210の項目の構成はあくまで一例であり、これに限らない。画面ID1211は、画面ごとに一意に割り振られた識別情報を示す。画面名1212は、画面の名称を示す。
ステップS908では、情報処理装置101のCPU401は、説明中断処理を実行する。説明中断処理の詳細は、後述する図19に示す。このとき、引数としてRAM403に記憶した画面ID1211を渡す。説明中断処理が終了したら、説明開始処理を終了する。
ステップS909では、情報処理装置101にCPU401は、商品説明画面1300が備える次へボタン1302の押下を検知したか否かを判定する。すなわち、ユーザから次へボタン1302の押下を受け付けたか否かを判定する。次へボタン1302の押下を検知したと判定した場合には、ステップS910に処理を進める。次へボタン1302の押下を検知していないと判定した場合には、ステップS905に処理を戻す。
ステップS910では、情報処理装置101のCPU401は、図14に示すようなシミュレーション画面1400をプロジェクタ423に投影させて、投影面304に表示する。シミュレーション画面1400は、住宅ローンの返済シミュレーションを行うための画面である。テラー301側には、シミュレーションを実行するためのパラメータ(以下、入力値)の入力を受け付けるための各種入力欄が表示されている。顧客302側には、テラー301側で入力を受け付けた入力値に応じてシミュレーションが実行された結果が表示される。入力欄に対する入力は、顧客情報登録画面1100と同様である。
ステップS911では、情報処理装置101のCPU401は、再開時操作処理を実行する。再開時操作処理の詳細は、後述する図28に示す。
ステップS912では、情報処理装置101のCPU401は、シミュレーション画面1400が備えるシミュレーションボタン1403の押下を検知したか否かを判定する。すなわち、ユーザからシミュレーションボタン1403の押下を受け付けたか否かを判定する。シミュレーションボタン1403の押下を検知したと判定した場合には、ステップS913に処理を進める。シミュレーションボタン1403の押下を検知していない、またはシミュレーションボタン1403以外のボタンの押下を検知したと判定した場合には、ステップS914に処理を進める。
ステップS913では、情報処理装置101のCPU401は、シミュレーション画面1400の各入力欄に入力された入力値を用いて、住宅ローンの返済シミュレーションを実行する。シミュレーションの方法は従来技術を用いるため、詳細な説明は省略する。シミュレーションが実行されると、シミュレーション画面1400の顧客302側にシミュレーションの実行結果が表示される。
ステップS914では、情報処理装置101のCPU401は、シミュレーション画面1400が備える中断ボタン1401の押下を検知したか否かを判定する。すなわち、ユーザから中断ボタン1401の押下を受け付けたか否かを判定する。中断ボタン1401の押下を検知したと判定した場合には、ステップS915に処理を進める。中断ボタン1401の押下を検知していない、またはシミュレーションボタン1403、中断ボタン1301以外のボタンの押下を検知したと判定した場合には、ステップS918に処理を進める。
ステップS915では、情報処理装置101のCPU401は、シミュレーション画面1400の各入力欄に入力された入力値を取得し、RAM403に一時記憶する。
ステップS916では、情報処理装置101のCPU401は、現在、投影面304に投影している画面の画面ID1211を取得し、RAM403に一時記憶する。すなわち、現在、投影面304に表示されている画面はシミュレーション画面1400であるので、このシミュレーション画面1400に対応する画面名1212は、「シミュレーション画面」である。これに対応する画面ID1211は「UI02」であるので、これを取得する。
ステップS917では、情報処理装置101のCPU401は、説明中断処理を実行する。説明中断処理の詳細は、後述する図19に示す。このとき、引数としてRAM403に記憶したシミュレーションの入力値と画面ID1211とを渡す。説明中断処理が終了したら、説明開始処理を終了する。
ステップS918では、情報処理装置101のCPU401は、シミュレーション画面1400が備える次へボタン1402の押下を検知したか否かを判定する。すなわち、ユーザから次へボタン1402の押下を受け付けたか否かを判定する。次へボタン1402の押下を検知したと判定した場合には、図10のステップS919に処理を進める。次へボタン1402の押下を検知していないと判定した場合には、ステップS911に処理を戻す。
図10に説明を移す。ステップS919では、情報処理装置101のCPU401は、図15に示すような書類読取画面1500をプロジェクタ423に投影させて、投影面304に表示する。書類読取画面1500は、住宅ローンを組むために必要な書類を画像データとして情報処理装置101に取り込むための画面である。テラー301側と顧客302側の双方に提出が必要な書類種別(重要事項説明書、本人確認書類等)の一覧(以下、書類種別欄)が表示されており、このいずれかに対するタッチ操作を検知すると、図16に示す書類読取指示画面1600が表示される。書類読取指示画面1600で書類の読み取り、すなわちデジタルカメラ421による撮像が行われ、撮像により生成された画像データを情報処理装置101が取得する。無事に読み取りが終了すると、再び書類読取画面1500に戻り、タッチ操作を検知した書類の枠に読み取った画像データを表示する。例えば、本人確認書類欄1503に対するタッチ操作を検知すると、この本人確認書類を読み込むために書類読取指示画面1600が表示される。そして、顧客302が投影面304に置いた本人確認書類を読み込む。読み取りが完了すると、書類読取画面1500に戻り、テラー301側と顧客302側の双方の本人確認書類欄に読み込んだ画像データが表示される。
ステップS922では、情報処理装置101のCPU401は、書類読取画面1500が備える書類種別欄において、いずれかの書類種別に対する選択を検知したか否かを判定する。すなわち、ユーザからいずれかの書類種別に対する選択を受け付けたか否かを判定する。書類種別に対する選択を検知したと判定した場合には、ステップS922に処理を進める。書類種別に対する選択を検知していない、また他のボタンに対する選択を検知したと判定した場合には、ステップS929に処理を進める。
ステップS922では、情報処理装置101のCPU401は、図16に示すような書類読取指示画面1600をプロジェクタ423に投影させて、投影面304に表示する。
ステップS923では、情報処理装置101のCPU401は、書類読取指示画面1600が備える書類読取ボタン1601の押下を検知したか否かを判定する。すなわち、ユーザから書類読取ボタン1601の押下を受け付けたか否かを判定する。書類読取ボタン1601の押下を検知したと判定した場合には、ステップS924に処理を進める。書類読取ボタン1601の押下を検知していない、または書類読取ボタン1601以外のボタンの押下を検知したと判定した場合には、ステップS928に処理を進める。
ステップS924では、情報処理装置101のCPU401は、デジタルカメラ421に対して撮像指示を送信する。これにより、デジタルカメラ421が反射鏡207に映る投影面304を撮像する。
ステップS925では、情報処理装置101のCPU401は、撮像により生成された画像データをデジタルカメラから取得し、当該画像データを左右反転させた上で、当該画像データから書類の部分を抽出(トリミング)する。左右反転させるのは、前述した通り、反射鏡207に映る像を撮像しているためである。
ステップS926では、情報処理装置101のCPU401は、ステップS925でトリミングした画像データに対して傾きの補正や色味の補正を行い、外部メモリ411等に保存(記憶)する。
ステップS927では、情報処理装置101のCPU401は、ステップS926で記憶した画像データの保存場所を図17に示す書類管理テーブル1700に追加する。より具体的には、商品説明中の顧客302に対応するレコードがなければ、新しくレコードを作成し、ステップS921で選択を検知した書類種別の項目にステップS926で保存した画像データの保存場所を格納する。すでに商品説明中の顧客302に対応するレコードが存在するのであれば、当該レコードの項目のうち、ステップS921で選択を検知した書類種別の項目にステップS926で保存した画像データの保存場所を格納する。
書類管理テーブル1700は、情報処理装置101の外部メモリ411等に記憶されるテーブルである。書類管理テーブル1700は、顧客ID1701、重要事項説明書1702、本人確認書類1703、住民票1704、源泉徴収票1705、印鑑証明書1706、住宅見取り図 1707から構成される。書類管理テーブル1700の項目の構成はあくまで一例であり、これに限らない。
顧客ID1701は、顧客情報テーブル1200の顧客ID1201に対応する、顧客302を一意に識別するための識別情報を示す。重要事項説明書1702は、書類種別で「重要事項説明書」が選択されて読み込まれた画像データの保存場所を示す。本人確認書類1703は、書類種別で「本人確認書類」が選択されて読み込まれた画像データの保存場所を示す。住民票1704は、書類種別で「住民票」が選択されて読み込まれた画像データの保存場所を示す。源泉徴収票1705は、書類種別で「源泉徴収票」が選択されて読み込まれた画像データの保存場所を示す。印鑑証明書1706は、書類種別で「印鑑証明書」が選択されて読み込まれた画像データの保存場所を示す。住宅見取り図 1707は、書類種別で「住宅見取り図」が選択されて読み込まれた画像データの保存場所を示す。尚、これらの保存場所を示す項目に「NULL」が格納されている場合には、当該書類種別が読み取られていないことを示す。
ステップS928では、情報処理装置101のCPU401は、書類読取指示画面1600が備えるキャンセルボタン1602の押下を検知したか否かを判定する。すなわち、ユーザからキャンセルボタン1602の押下を受け付けたか否かを判定する。キャンセルボタン1602の押下を検知したと判定した場合には、ステップS919に処理を戻す。キャンセルボタン1602の押下を検知していないと判定した場合には、ステップS923に処理を戻す。
一方、ステップS921で書類種別の選択を検知しなかった場合には、ステップS929では、情報処理装置101のCPU401は、書類読取画面1500が備える中断ボタン1501の押下を検知したか否かを判定する。すなわち、ユーザから中断ボタン1501の押下を受け付けたか否かを判定する。中断ボタン1501の押下を検知したと判定した場合には、ステップS930に処理を進める。中断ボタン1501の押下を検知していない、または中断ボタン1501以外のボタンの押下を検知したと判定した場合には、ステップS932に処理を進める。
ステップS930では、情報処理装置101のCPU401は、現在、投影面304に投影している画面の画面ID1211を取得し、RAM403に一時記憶する。すなわち、現在、投影面304に表示されている画面は書類読取画面1500であるので、この書類読取画面1500に対応する画面名1212は、「書類読取画面」である。これに対応する画面ID1211は「UI03」であるので、これを取得する。尚、書類読取指示画面1600は一時的な作業画面であるため、他の画面に存在する中断ボタンは備えていない。特に、本実施形態では、中断する際に投影面304に置いてある書類を画像データとして保存しておき、再開時にはこの画像データを表示した状態で再開する。すなわち、再開時にこの画像データが表示されてしまうと、書類読取指示画面1600で表示した画像データまでデジタルカメラ421が撮像してしまうことになる。これでは書類が綺麗に読み取れないので、中断ボタンは備えていない。
ステップS931では、情報処理装置101のCPU401は、説明中断処理を実行する。説明中断処理の詳細は、後述する図19に示す。このとき、引数としてRAM403に記憶した画面ID1211を渡す。説明中断処理が終了したら、説明開始処理を終了する。
ステップS932では、情報処理装置101のCPU401は、書類読取画面1500が備える次へボタン1502の押下を検知したか否かを判定する。ユーザから次へボタン1502の押下を受け付けたか否かを判定する。次へボタン1502の押下を検知したと判定した場合には、ステップS933に処理を進める。次へボタン1502の押下を検知していないと判定した場合には、ステップS920に処理を戻す。
ステップS933では、情報処理装置101のCPU401は、図18に示すような案内画面1800をプロジェクタ423に投影させて、投影面304に表示する。案内画面1800は、顧客302に今後の流れを説明するための画面である。
ステップS924では、情報処理装置101のCPU401は、案内画面1800が備える終了ボタン1801の押下を検知したか否かを判定する。ユーザから終了ボタン1801の押下を受け付けたか否かを判定する。終了ボタン1801の押下を検知したと判定した場合には、説明開始処理を終了する。終了ボタン1801の押下を検知していないと判定した場合には、終了ボタン1801が押下されるまでステップS924の処理を繰り返す。
案内画面1800においても中断ボタンを設けていないが、案内画面1800は一連の画面遷移の中で最後の画面であるので、次回この画面から再開する意味はあまりない。よって、中断ボタンを設けていない。
次に、説明中断処理の流れについて、図19に示すフローチャートを用いて説明する。
まず、ステップS1901では、情報処理装置101のCPU401は、説明中の顧客302の顧客ID1201を顧客情報テーブル1200から取得する。
ステップS1902では、情報処理装置101のCPU401は、説明中断処理の呼び出し元から引数として渡された画面ID1211と、ステップS1901で取得した顧客ID1201とを図20に示す中断管理テーブル2000に追加する。より具体的には、ステップS1901で取得した顧客ID1201に対応する顧客ID2001が存在しなければ、中断管理テーブル2000に新たなレコードを作成し、説明中断処理の呼び出し元から引数として渡された画面ID1211と、ステップS1901で取得した顧客ID1201とを作成したレコードの顧客ID2001と画面ID2002に追加する。または、ステップS1901で取得した顧客ID1201に対応する顧客ID2001が存在する場合には、当該顧客ID2001を含むレコードの画面ID2002に画面ID1211を格納する。
中断管理テーブル2000は、情報処理装置101の外部メモリ411等に記憶されるテーブルである。中断管理テーブル2000は、顧客ID2001、画面ID2002、中断書類2003、中断書類座標2004、傾き2005、お借入額2006、ボーナス月の返済額2007、お借入金額2008、金利方式2009、お借入金利2010から構成される。中断管理テーブル2000の項目の構成はあくまで一例であり、これに限らない。また、中断管理テーブル2000に作成された顧客302ごとのレコードは、前述したステップS934で終了ボタン1801の押下を検知すると、削除される。
顧客ID2001は、顧客情報テーブル1200の顧客ID1201に対応する、顧客302を一意に識別するための識別情報を示す。画面ID2002は、中断ボタンの押下を検知した画面の画面ID1211を示す。中断書類2003は、中断ボタンの押下を検知した際に、投影面304に置いてある書類を撮影することにより生成される画像データの保存場所を示す。中断書類座標2004は、中断書類2003が示す保存場所に格納された画像データを配置する、画面ID2002が示す画面上の座標値を示す。この座標値は、中断書類2003が示す保存場所に保存される画像データの左上頂点の座標値である。傾き2005は、中断書類2003を画面ID2002が示す画面上に表示する際に傾ける傾き(角度)を示す。お借入額2006、ボーナス月の返済額2007、お借入金額2008、金利方式2009、お借入金利2010は、シミュレーション画面1400で中断ボタン1401の押下を検知した場合に、シミュレーション画面1400に入力されている入力値を示す。
ステップS1903では、情報処理装置101のCPU401は、ジェスチャセンサ422から取得した情報に応じて、投影面304において書類(各図で中断書類と称する)を検知したか否かを判定する。ジェスチャセンサ422を用いることで、投影面304に存在する物体の形状や位置を特定することができる。ここで、投影面304に矩形状で一定範囲の厚さの物体が特定されれば、投影面304で書類を検知したと判定する。書類(紙文書)の特定方法は従来技術を用いるため詳細な説明は省略するが、前述した方法以外の方法で書類を検知してもよい。投影面304において書類を検知したと判定した場合には、ステップS1904に処理を進める。投影面304において書類を検知していないと判定した場合には、ステップS1913に処理を進める。
図21の投影面例2100は、商品説明画面1300が投影面304に投影された状態を示す。この投影面例2100では、中断ボタンの押下を検知したときに書類2101が投影面304に置かれている。ジェスチャセンサ422はこの書類の存在を検知すると、ステップS1904に処理を進めることになる。
ステップS1904では、情報処理装置101のCPU401は、現在投影している画面の投影を終了し、図21に示すような中断書類読取画面2110をプロジェクタ423に投影するよう指示し、投影面304に表示する(投影終了指示手段)。中断書類読取画面2110は、検知した書類を自動的に読み取るための画面であるので、情報は表示せず、白い画面を投影するだけである。
ステップS1905では、情報処理装置101のCPU401は、投影面304に置かれている書類の現実空間における座標値を、ジェスチャセンサ422から取得する。より具体的には、ジェスチャセンサ422が認識する座標系に従って、当該書類の座標値を取得する。取得する座標値は書類の左上頂点の座標値である。中断書類読取画面2110を用いて説明すると、検知した書類2101の左上頂点は、左上頂点2111が示す点である。この点の座標値を取得する。ここでは便宜上、この座標値を(x1、y1)とする。
ステップS1906では、情報処理装置101のCPU401は、ステップS1905で取得した現実空間における書類の座標値を、中断した画面における座標値に変換する。前述した通り、現実空間における座標値、すなわちジェスチャセンサ422が認識する座標値と、中断した画面における(データ上の)座標値というのはそれぞれ異なる。よって、ジェスチャセンサ422で取得した座標値が、画面のどの座標値に該当するのかを特定しなければならない。よって、ステップS1906では現実空間の座標値を画面上の座標値に変換している。
図22の画面例2200では、ステップS1905で取得した現実空間における書類の座標値を、中断ボタンの押下を検知した商品説明画面1300における座標値に変換した結果を示す画面である。すなわち、前述した中断書類読取画面2110で特定した左上頂点2111を商品説明画面1300の座標値に変換すると、座標2201が示す座標値となる。この点が現実空間で投影面304に置かれた書類の左上頂点2111を示す座標値である。ここでは便宜上、この座標値を(x1’,y1’)とする。
ステップS1907では、情報処理装置101のCPU401は、ステップS1906で変換した座標値を中断管理テーブル2000の中断書類座標2004に格納する。
ステップS1908では、情報処理装置101のCPU401は、デジタルカメラ421に対して撮像指示を送信する(第1の撮像指示手段)。これにより、デジタルカメラ421が反射鏡207に映る投影面304を撮像する。
ステップS1909では、情報処理装置101のCPU401は、撮像により生成された画像データをデジタルカメラから取得し、当該画像データを左右反転させた上で、当該画像データから書類の部分を抽出(トリミング)する。図23の画像データ例2300は、図21の中断書類読取画面2110が表示されている投影面304を撮像し、左右反転させた後の例である。この画像データから書類部分だけトリミングをする。
ステップS1910では、情報処理装置101のCPU401は、ステップS1909で抽出した書類部分の画像データの傾きを検出する。図23の画像データ例2300にも示すように、書類はユーザが置くためある程度傾いていることが多い。よって、この傾きを、従来技術を用いて検出する。
ステップS1911では、情報処理装置101のCPU401は、ステップS1910で検出した傾きに応じて、ステップS1909でトリミングした画像データの傾きを補正し、外部メモリ411等に保存する(画像データ保存手段)。図23の画像データ例2300から書類部分をトリミングして、傾き補正した例が画像データ例2310である。このように、画面の縦横に対して、画像の縦横がそれぞれ平行になるよう傾きを補正する。
ステップS1912では、情報処理装置101のCPU401は、ステップS1911で保存した書類部分の画像データの保存場所と、ステップS1910で検出した傾きとを、中断管理テーブル2000に格納する。書類部分の画像データの保存場所は、中断管理テーブル2000の中断書類2003に格納し、ステップS1910で検出した傾きは、中断管理テーブル2000の傾き2005に格納する。
ステップS1913では、情報処理装置101のCPU401は、シミュレーション画面1400で中断されたか否かを判定する。すなわち、中断管理テーブル2000の画面ID2002が示す画面が「シミュレーション画面」であるか否かを判定する。シミュレーション画面1400で中断されたと判定した場合には、ステップS1914に処理を進める。シミュレーション画面1400で中断されていない、すなわちシミュレーション画面1400以外の画面で中断されたと判定した場合には、説明中断処理を終了する。
ステップS1914では、情報処理装置101のCPU401は、説明中断処理の呼び出し元から引数として渡された、シミュレーション画面1400の入力値を、中断管理テーブル2000のお借入額2006、ボーナス月の返済額2007、お借入金額2008、金利方式2009、お借入金利2010、それぞれに格納する。こうしておくことで、説明を再開するときに、前回と同じ入力値を用いてすぐにシミュレーションを実行することができるようになる。
次に、説明再開処理の流れについて、図24及び図25に示すフローチャートを用いて説明する。
説明再開処理は、前述した説明中断処理によって一旦中断された説明を再開する場合の処理である。この再開する際に、中断時に投影面304に置かれていた書類が存在するのであれば、この書類の画像データを再開時の画面と共に表示することで、ユーザが当該書類を持参することなく、説明を再開することができるようになる。
まず、ステップS2401では、情報処理装置101のCPU401は、図26に示すような顧客ID入力画面2600をディスプレイ410に表示する。顧客ID入力画面2600では、説明を再開する顧客の顧客ID1201の入力を受け付けるための顧客ID入力欄2601を備えている。
ステップS2402では、情報処理装置101のCPU401は、顧客ID入力画面2600が備える再開ボタン2602の押下を検知したか否かを判定する。すなわち、ユーザから再開ボタン2602の押下を受け付けたか否かを判定する。再開ボタン2602の押下を検知したと判定した場合には、ステップS2403に処理を進める。再開ボタン2602の押下を検知していないと判定した場合には、再開ボタン2602の押下を検知するまで、ステップS2402を繰り返す。
ステップS2403では、情報処理装置101のCPU401は、中断管理テーブル2000の顧客ID2001に、顧客ID入力欄2601で入力を受け付けた顧客IDと一致するレコードが存在するか否かを判定する。つまり、前回説明を中断した顧客であるのか否かを判定する。中断管理テーブル2000の顧客ID2001に、顧客ID入力欄2601で入力を受け付けた顧客IDと一致するレコードが存在すると判定した場合には、ステップS2404に処理を進める。中断管理テーブル2000の顧客ID2001に、顧客ID入力欄2601で入力を受け付けた顧客IDと一致するレコードが存在しないと判定した場合には、前述したステップS901から説明開始処理を実行する。
ステップS2404では、情報処理装置101のCPU401は、顧客ID入力欄2601で入力を受け付けた顧客IDと一致する顧客ID2001を持つレコードから、画面ID2002を取得する。この画面ID2002が前回中断した画面の画面ID1211である。
ステップS2405では、情報処理装置101のCPU401は、ステップS2404で取得した画面ID2002を用いて、前回、商品説明画面1300で中断したのか否かを判定する。すなわち、ステップS2404で取得した画面ID2002が商品説明画面1300を示すのか否かを判定する。画面ID2002は、画面ID1211と対応するので、画面管理テーブル1210を用いれば、どの画面で中断したのかがわかる。商品説明画面1300で中断したと判定した場合には、ステップS2406に処理を進める。商品説明画面1300で中断していない、すなわち他の画面で中断したと判定した場合には、ステップS2410に処理を進める。
ステップS2406では、情報処理装置101のCPU401は、前回中断したと判定された商品説明画面1300をプロジェクタ423に投影させて、投影面304に表示する。
ステップS2407では、情報処理装置101のCPU401は、ステップS2403で特定したレコードの中断書類2003に書類の画像データの保存場所が格納されているか否かを判定する。すなわち、中断時に投影面304に書類が置かれていたか否かを判定する。中断書類2003に書類の画像データの保存場所が格納されていると判定した場合には、ステップS2408に処理を進める。中断書類2003に書類の画像データの保存場所が格納されていないと判定した場合には、前述したステップS905に処理を進める。
ステップS2408では、情報処理装置101のCPU401は、ステップS2403で特定したレコードの中断書類2003が示す保存場所から書類の画像データを取得し、更に当該レコードの中断書類座標2004と傾き2005とから、書類の画像データの座標値と傾きとを取得する。
ステップS2409では、情報処理装置101のCPU401は、ステップS2408で取得した書類の画像データ、座標値、傾きを用いて、商品説明画面1300に取得した書類の画像データをオーバレイ表示し、これをプロジェクタ423に投影指示する(投影指示手段)。より具体的には、書類の画像データの左上頂点を取得した座標値にあわせる。そして、同じく取得した傾きを用いて画像データの角度を変えて、中断時に書類が置かれていた状況を再現する。
図27のオーバレイ表示例2700では、書類の画像データ例2310を商品説明画面1300に重畳させている様子がわかる。中断書類座標2004は座標2201である(x1’,y1’)を示すので、この点に取得した画像データ例2310の左上頂点を合わせている。そして、ステップS1910で検出した傾きが示す角度で画像データ例2310を回転させることにより、前回中断した際の書類の状況を再現することができる。
尚、図21の投影面例2100と図27のオーバレイ表示例2700とを比較して分かる通り、書類と商品説明画面1300の前後関係が変わっている。これは、図21の投影面例2100が現実の書類の上に商品説明画面1300を投影しているのに対し、図27のオーバレイ表示例2700は、商品説明画面1300の上に書類の画像データを重畳させているためである。投影面例2100と完全に同じ状況を再現するためには、書類の画像データの上に透過した商品説明画面1300を重畳したり、商品説明画面1300の上に透過した書類の画像データを重畳したりすることで、擬似的に再現することはできるのだが、どちらも透過処理を行うことになるので、投影面304に投影した際にユーザが閲覧しにくくなってしまう。よって、商品説明画面1300の上に書類の画像データを重畳している。
ステップS2409でオーバレイ表示が完了したら、前述したステップS905に処理を進める。
ステップS2410では、情報処理装置101のCPU401は、ステップS2404で取得した画面ID2002を用いて、前回、シミュレーション画面1400で中断したのか否かを判定する。すなわち、ステップS2404で取得した画面ID2002がシミュレーション画面1400を示すのか否かを判定する。シミュレーション画面1400で中断したと判定した場合には、ステップS2411に処理を進める。シミュレーション画面1400で中断していない、すなわち他の画面で中断したと判定した場合には、図25のステップS2418に処理を進める。
ステップS2411では、情報処理装置101のCPU401は、前回中断したと判定されたシミュレーション画面1400をプロジェクタ423に投影させて、投影面304に表示する。
ステップS2412では、情報処理装置101のCPU401は、ステップS2403で特定されたレコードに、シミュレーションの入力値が格納されているか否かを判定する。前述した通り、シミュレーションの入力値は、中断管理テーブル2000のお借入額2006、ボーナス月の返済額2007、お借入金額2008、金利方式2009、お借入金利2010にそれぞれ格納されている。シミュレーションの入力値が格納されていると判定した場合には、ステップS2413に処理を進める。シミュレーションの入力値が格納されていないと判定された場合には、ステップS2415に処理を進める。
ステップS2413では、情報処理装置101のCPU401は、ステップS2403で特定されたレコードのお借入額2006、ボーナス月の返済額2007、お借入金額2008、金利方式2009、お借入金利2010からそれぞれ入力値を取得する。
ステップS2414では、情報処理装置101のCPU401は、ステップS2413で取得したシミュレーションの入力値を用いて、ステップS913と同様に返済シミュレーションを実行する。そしてその実行結果をステップS2411で表示したシミュレーション画面1400の顧客302側に表示する。
ステップS2415では、情報処理装置101のCPU401は、ステップS2403で特定したレコードの中断書類2003に書類の画像データの保存場所が格納されているか否かを判定する。すなわち、中断時に投影面304に書類が置かれていたか否かを判定する。中断書類2003に書類の画像データの保存場所が格納されていると判定した場合には、ステップS2416に処理を進める。中断書類2003に書類の画像データの保存場所が格納されていないと判定した場合には、前述したステップS911に処理を進める。
ステップS2416では、情報処理装置101のCPU401は、ステップS2403で特定したレコードの中断書類2003が示す保存場所から書類の画像データを取得し、更に当該レコードの中断書類座標2004と傾き2005とから、書類の画像データの座標値と傾きとを取得する。
ステップS2417では、情報処理装置101のCPU401は、ステップS2416で取得した書類の画像データ、座標値、傾きを用いて、シミュレーション画面1400に取得した書類の画像データをオーバレイ表示する。オーバレイ表示については、ステップS2409で前述した通りである。オーバレイ表示が完了したら、前述したステップS911に処理を進める。
図25に説明を移す。ステップS2418では、情報処理装置101のCPU401は、ステップS2404で取得した画面ID2002を用いて、前回、書類読取画面1500で中断したのか否かを判定する。すなわち、ステップS2404で取得した画面ID2002が書類読取画面1500を示すのか否かを判定する。書類読取画面1500で中断したと判定した場合には、ステップS2419に処理を進める。書類読取画面1500で中断していない、すなわち他の画面で中断したと判定した場合には、エラーを判定して説明再開処理を終了する。
ステップS2419では、情報処理装置101のCPU401は、前回中断したと判定された書類読取画面1500をプロジェクタ423に投影させて、投影面304に表示する。
ステップS2420では、情報処理装置101のCPU401は、ステップS2403で特定したレコードの中断書類2003に書類の画像データの保存場所が格納されているか否かを判定する。すなわち、中断時に投影面304に書類が置かれていたか否かを判定する。中断書類2003に書類の画像データの保存場所が格納されていると判定した場合には、ステップS2421に処理を進める。中断書類2003に書類の画像データの保存場所が格納されていないと判定した場合には、前述したステップS919に処理を進める。
ステップS2421では、情報処理装置101のCPU401は、ステップS2403で特定したレコードの中断書類2003が示す保存場所から書類の画像データを取得し、更に当該レコードの中断書類座標2004と傾き2005とから、書類の画像データの座標値と傾きとを取得する。
ステップS2422では、情報処理装置101のCPU401は、ステップS2421で取得した書類の画像データ、座標値、傾きを用いて、書類読取画面1500に取得した書類の画像データをオーバレイ表示する。オーバレイ表示については、ステップS2409で前述した通りである。オーバレイ表示が完了したら、前述したステップS919に処理を進める。
このようにして、前回中断時に投影面304に置かれていた書類の状況を再現して、説明を再開することにより、前回の状況をテラー301や顧客302に思い出させやすくすることができる。
次に、再開時操作処理の流れについて、図28に示すフローチャートを用いて説明する。再開時操作処理は、前述した説明再開処理によりオーバレイ表示された書類の画像データに対する操作を受け付けるための処理である。
まず、ステップS2801では、情報処理装置101のCPU401は、説明を受けている顧客の顧客ID1201に対応する顧客ID2001を持つレコードが存在し、かつ当該レコードの中断書類2003に書類の画像データの保存場所が格納されているか否かを判定する。中断書類2003に書類の画像データの保存場所が格納されていると判定した場合には、ステップS2802に処理を進める。中断書類2003に書類の画像データの保存場所が格納されていないと判定した場合には、再開時操作処理を終了する。すなわち、メニュー画面800で説明開始ボタン801の押下を検知し、図9及び図10の説明開始処理を実行した場合には、まだ一度も中断していないので何も行わずに再開時操作処理を終了する。また、説明再開ボタン802の押下を検知し、図24の説明再開処理から実行した場合であっても、前回説明時に投影面304に何も書類がなかった場合には、この中断書類2003は「NULL」になっているので、同じく再開時操作処理は行わない。
ステップS2802では、情報処理装置101のCPU401は、ジェスチャセンサ422から取得した情報に応じて、投影面304において書類を検知したか否かを判定する。検知方法については、前述したステップS1903と同様である。投影面304において書類を検知したと判定した場合には、ステップS2803に処理を進める。投影面304において書類を検知していないと判定した場合には、ステップS2808に処理を進める。
ステップS2803では、情報処理装置101のCPU401は、デジタルカメラ421に対して撮像指示を送信する(第2の撮像指示手段)。これにより、デジタルカメラ421が反射鏡207に映る投影面304を撮像する。
ステップS2804では、情報処理装置101のCPU401は、撮像により生成された画像データをデジタルカメラから取得し、当該画像データを左右反転させた上で、当該画像データから書類の部分(被写体)を抽出(トリミング)する(被写体検出手段)。左右反転させるのは、前述した通り、反射鏡207に映る像を撮像しているためである。
ステップS2805では、情報処理装置101のCPU401は、説明を受けている顧客の顧客ID1201に対応する顧客ID2001を持つレコードの中断書類2003が示す保存場所からオーバレイ表示している画像データを取得し、当該画像データの特徴量とステップS2804で抽出した書類の画像データの特徴量とを比較する。画像データ同士の比較方法は従来技術を用いるため、詳細な説明は省略する。
ステップS2806では、情報処理装置101のCPU401は、ステップS2805で比較した結果、特徴量が所定値の割合以上、一致するか否かを判定する。図29の投影面例2900に示すように、オーバレイ表示された画像データ例2310と新たに投影面304に置かれた書類2901とは完全一致しない。なぜなら、新たに投影面304に置かれた書類2901は、その書類2901の上から画面が投影されているためである。よって、ステップS2806ではある程度特徴量が一致するのであれば、オーバレイ表示された画像データは、投影面304に置かれている書類と同じであると判定する。尚、本実施形態では、画面を投影したまま投影面304を撮像しているが、前述したステップS1904のように、投影面304に置かれた書類を読み込みしやすいように、白い画面を投影してもよい。この場合に、オーバレイ表示された画像データと投影面304に置かれている書類が同じであれば、特徴量の一致率が高くなると考えられるので、一致すると判定するための特徴量の閾値を高めに設定してもよい。ステップS2805で比較した結果、特徴量が所定値以上一致すると判定した場合には、ステップS2807に処理を進める。ステップS2805で比較した結果、特徴量が所定値以上一致しないと判定された場合には、再開時操作処理を終了する。
ステップS2807では、情報処理装置101のCPU401は、前述したステップS2409、ステップS2417、ステップS2422でオーバレイ表示された書類の画像データを非表示にする。すなわち、オーバレイ表示を終了する。オーバレイ表示している書類の画像データと同じ書類が投影面304に置かれているということは、顧客302が再度書類を持参したということである。そのため、ステップS2807ではオーバレイ表示を終了する。図29の投影面例2910は、書類2901が投影面304に置かれたため、これと特徴量が所定値以上一致すると判定された画像データ例2310のオーバレイ表示は終了する。不要な情報を非表示とすることで、限られた作業スペースを有効利用することができるようになる。
ステップS2808では、情報処理装置101のCPU401は、ジェスチャセンサ422が検知した投影面304におけるユーザの手の動きにより、オーバレイ表示している画像データに対する操作を検知したか否かを判定する。より具体的には、オーバレイ表示している画像データを指でタッチしたまま、その指を移動させたかどうか(画像データの移動指示)、またはオーバレイ表示している画像データを2本の指でタッチしたまま、当該2本の指の間隔が広がったまたは狭まったかどうか(画像データの拡大・縮小指示)、またはオーバレイ表示している画像データを2本の指でタッチしたまま、当該2本の指を時計回りまたは反時計回りに移動させたかどうか(画像データの回転指示)を判定する。オーバレイ表示している画像データに対する操作を検知したと判定した場合には、ステップS2809に処理を進める。オーバレイ表示している画像データに対する操作を検知していないと判定した場合には、再開時操作処理を終了する。
ステップS2809では、情報処理装置101のCPU401は、ステップS2808で検知した操作が、オーバレイ表示している画像データの移動であるか否かを判定する。すなわち、オーバレイ表示している画像データを指でタッチしたまま、その指を移動させたか否かを判定する。オーバレイ表示している画像データの移動であると判定した場合には、ステップS2810に処理を進める。オーバレイ表示している画像データの移動でないと判定した場合には、ステップS2811に処理を進める。
ステップS2810では、情報処理装置101のCPU401は、オーバレイ表示された画像データをユーザから指示された位置に移動する。図30の投影面例3000では、オーバレイ表示された画像データ例2310を元の位置3001からユーザの指の動作に応じた位置に移動させている様子が表現されている。このようにして、任意の位置に画像データを移動させることができる。ステップS2810の処理が完了したら、再開時操作処理を終了する。
ステップS2811では、情報処理装置101のCPU401は、ステップS2808で検知した操作が、オーバレイ表示している画像データの拡大・縮小であるか否かを判定する。すなわち、オーバレイ表示している画像データを2本の指でタッチしたまま、当該2本の指の間隔が広がったまたは狭まったか否かを判定する。オーバレイ表示している画像データの拡大・縮小であると判定した場合には、ステップS2812に処理を進める。オーバレイ表示している画像データの拡大・縮小でないと判定した場合には、ステップS2813に処理を進める。
ステップS2812では、情報処理装置101のCPU401は、オーバレイ表示された画像データの大きさをユーザからの指示に応じた大きさに拡大・縮小する。図30の投影面例3010では、画像データ例2310を元の大きさ3011から縮小している様子が表現されている。このようにして、画像データをユーザが見やすい大きさや邪魔にならない大きさに調整することができる。ステップS2812の処理が完了したら、再開時操作処理を終了する。
ステップS2813では、情報処理装置101のCPU401は、ステップS2808で検知した操作が、オーバレイ表示している画像データの回転であるか否かを判定する。すなわち、オーバレイ表示している画像データを2本の指でタッチしたまま、当該2本の指を時計回りまたは反時計回りに移動させたか否かを判定する。オーバレイ表示している画像データの回転であると判定した場合には、ステップS2814に処理を進める。オーバレイ表示している画像データの回転でないと判定した場合には、再開時操作処理を終了する。
ステップS2814では、情報処理装置101のCPU401は、オーバレイ表示された画像データの角度をユーザから指示された角度に回転する。図31の投影面例3100では、画像データ例2310を元の角度3101から回転している様子が表現されている。このようにして、ユーザが見やすい角度に調整することができる。ステップS2814の処理が完了したら、再開時操作処理を終了する。
このようにしてオーバレイ表示された画像データを操作することができる。再開時操作処理が行われるのは、説明開始処理であるので、各画面に設けられた次へボタンの押下を検知することで画面が遷移する。画面は遷移するものの、オーバレイ表示は継続するので、商品説明画面1300で説明を再開し、書類の画像データをオーバレイ表示している状態で、次へボタン1302の押下を検知してシミュレーション画面1400に画面が遷移しても、このオーバレイ表示は継続される。図31の投影面例3110がこの一例である。図27のオーバレイ表示例2700の商品説明画面1300からシミュレーション画面1400に画面遷移した場合である。画像データ例2310が継続して商品説明画面1300と同様の位置に存在することがわかる。このように、ステップS2807で表示を終了しない限り、オーバレイ表示を継続することで、どの画面でもユーザが以前持参した書類を閲覧することができる。
以上説明したように、本実施形態によれば、ユーザが持参した紙文書を再度持参することなく、説明を再開することのできる効果を奏する。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。