以下、図面を参照して本発明の実施形態の一例を詳細に説明する。
図1には、本発明に係る指示動作認識装置としての機能を備えた情報表示装置10の概略構成が示されている。情報表示装置10はパーソナル・コンピュータ(PC)12を備えている。PC12はCPU(中央処理装置)、ROM、RAM、入出力ポート及びHDD(ハードディスク)(何れも図示省略)を含んで構成されている。PC12には大画面ディスプレイ14と制御部16が接続されている。ディスプレイ14はLCD(液晶ディスプレイ)又はプラズマ・ディスプレイ又は有機ELディスプレイから成り、壁部に取り付けられ、制御部16からPC12に入力された情報に従い、PC12によって種々の情報が表示されるようになっている。
制御部16はCPU、ROM、RAM、及び入出力ポート(何れも図示省略)がバスを介して互いに接続されて構成されており、記憶部18が接続されている。記憶部18は各種のデータやプログラム等を記憶するものであり、記憶内容を書き替え可能な不揮発性の情報記憶媒体、例えばハードディスクやバックアップ電源に接続されたRAM等を含んで構成されていることが望ましい。
本実施形態において、利用者はディスプレイ14の配設位置近傍(ディスプレイ14前方の図2及び図3(B)に示した箇所)に到来し(図2及び図3(B)では利用者に「80」の符号を付して示す)、ディスプレイ14の表示画面上に設けられた対応する表示領域の任意の位置を指し示したり、表示領域に表示されている特定の画像(以下、「オブジェクト」という。)の表示状態を変更させるための指示動作を行う。
なお、情報表示装置10では、ディスプレイ14に表示するオブジェクトとして3次元立体画像を適用している。また、情報表示装置10では、オブジェクトの変更対象とする表示状態として、オブジェクトの表示領域内における表示位置、回転角度、及び表示倍率の3種類が適用されている。
情報表示装置10では、利用者が指先を予め設定した初期位置から前方に突き出す動作に応じてオブジェクトの表示サイズを縮小し、逆に指先を手前に引く動作に応じてオブジェクトの表示サイズを拡大する。この際、指先の移動量が大きくなるほどオブジェクトの縮小率ないし拡大率を高くする。
一方、情報表示装置10では、利用者が指先をディスプレイ14の表示面に沿った任意方向に移動させる動作に応じて、当該指先の移動の方向と同一方向へのオブジェクトの表示位置の変更、又は当該指先の移動の方向と同一方向への、オブジェクトの中心付近を通る表示面に平行な軸を中心としたオブジェクトの回転角度の変更を行う。
このように、本実施形態に係る情報表示装置10では、利用者によるオブジェクトの表示位置の変更を指示する動作と、回転角度の変更を指示する動作とが同一の動作とされているため、これらの動作については異なる動作モードとする必要がある。これに対してオブジェクトの表示倍率の変更(拡大又は縮小)を指示する動作は、オブジェクトの表示位置を変更する動作及び回転角度を変更する動作とは異なる動作であるため、これらの動作と同一の動作モードとすることができる。
以上の点から、本実施形態に係る情報表示装置10では、オブジェクトの表示位置を変更する動作及びオブジェクトの表示倍率を変更する動作を同一の動作モード(以下、「移動・拡縮モード」という。)とし、オブジェクトの回転角度を変更する動作及びオブジェクトの表示倍率を変更する動作を同一の動作モード(以下、「回転・拡縮モード」という。)として区別して扱っている。
一方、情報表示装置10では、利用者により指先でディスプレイ14の表示領域内が指し示されている場合には、当該指し示されている位置にカーソルを表示するようにしており、この際のカーソルの移動は、利用者による指先のディスプレイ14の表示面に沿った任意方向への移動動作に対応して行われる。このように、カーソルを移動させる動作は、オブジェクトの表示位置の変更及び回転角度の変更を指示する動作と同一であるため、これらの動作については異なる動作モードとする必要がある。
そこで、情報表示装置10では、カーソルを移動させるのみの動作を、移動・拡縮モード及び回転・拡縮モードとは異なる動作モード(以下、「ノーマルモード」という。)として区別して扱っている。
更に、情報表示装置10では、表示状態の変更対象とするオブジェクトを指定したり、動作モードを切り替えるための動作として、クリック動作を識別するようにしている。クリック動作としては種々の動作を採用することができるが、本実施形態では、利用者が手を前方に素早く移動させる動作(図9(A)参照、以下「前進クリック」という)や、利用者が手を後方に素早く移動させる動作(図9(B)参照、以下「後進クリック」という)をクリック動作としている。このクリック動作は、ディスプレイ14の表示面上の特定の箇所を指し示して選択する動作として極めて自然な動作であり、利用者は違和感を感ずることなくクリック動作を行うことができる。
ここで、当該クリック動作と、上述したオブジェクトの表示倍率の変更を指示する動作とで、指先の移動方向については同一となるため、情報表示装置10では、これらの動作を指先の移動速度によって区別するようにしている。すなわち、指先の移動速度が所定速度以上である場合はクリック動作であるものとし、所定速度未満である場合はオブジェクトの表示倍率の変更を指示する動作であるものとしている。ここで、本実施形態に係る情報表示装置10では、上記所定速度として、情報表示装置10を用いた複数人によるクリック動作を意識した指先の移動速度の測定結果における最低速度を固定的に適用しているが、利用者によって適宜設定ないし設定変更できるようにしてもよい。
そして、本実施形態に係る情報表示装置10では、利用者によってオブジェクトの表示領域以外の領域が指し示された状態でのクリック動作を検出する度に、回転・拡縮モードから移動・拡縮モードへ、移動・拡縮モードからノーマルモードへ、ノーマルモードから回転・拡縮モードへ、動作モードをトグル的に変更するようにしている。
また、情報表示装置10では、オブジェクトの表示状態を初期表示状態に戻すための動作として、クリア動作を識別するようにしている。クリア動作としては種々の動作を採用することができるが、本実施形態では、利用者が手を左右に上記所定速度以上で素早く移動させる動作を採用している。
一方、制御部16には2台のビデオカメラ20A,20Bが接続された撮像制御装置22及び利用者検出センサ24が各々接続されている。ビデオカメラ20A,20Bは本発明に係る撮像手段に対応している。また、利用者検出センサ24は例えばロードセル等で構成されており、指示動作やクリック動作を行う際に利用者が留まる位置(ディスプレイ14前方の所定位置)の床部に埋設されている。
ディスプレイ14の前方の空間(情報入力空間)の上方には、図3(A)に示すように、情報入力空間に到来した利用者を照明する照明装置26A,26Bが配設されている。なお、照明装置26A,26Bから射出される照明光は可視光であっても近赤外光であってもよいが、照明光を近赤外光とする場合には、ビデオカメラ20A,20Bとして、近赤外光に感度を有するCCD(電荷結合素子)等から成るエリアセンサを内蔵し、入射光をエリアセンサの受光面に結像させる結像レンズの光入射側に、近赤外域の波長の光のみを透過するフィルタが設けられた構成のビデオカメラを用いればよい。
一方、情報入力空間の上方には、回転放物面の一部(詳しくは回転対称とならない部分)に相当する凹の反射面を有する凹面鏡28が配置されている。ビデオカメラ20A,20Bは、凹面鏡28との位置関係が、オフセットパラボラアンテナにおける反射鏡と1次放射器の位置関係と略同等になる位置近傍でかつXZ平面に沿って互いに異なる位置に、凹面鏡28を介して情報入力空間を略直上より撮像する向きで各々配置されている。
凹面鏡28は、情報入力空間側から入射された平行光線束をビデオカメラ20A,20B側へ収束光線束として反射する光学性能を備えているので、ビデオカメラ20A,20Bの撮像範囲(図2及び図3(B)において、ビデオカメラ20Aの撮像範囲は一点鎖線を境界とする範囲、ビデオカメラ20Bの撮像範囲は破線を境界とする範囲である)の水平方向に沿った幅は、鉛直方向(Z方向)に亘って各々略一定とされている。
また、本実施形態では、ビデオカメラ20Aは情報入力空間を正確に直上より撮像するように(図に一点鎖線で示す撮像範囲の境界が鉛直方向に沿うように)配置位置が定められている。一方、ビデオカメラ20A,20Bの配置位置はXZ平面に沿ってずれているので、ビデオカメラ20Bによる撮像範囲は、ビデオカメラ20Aによる撮像範囲に対してX方向に偏倚しており(図6(A)参照)、情報入力空間をやや斜め上方より撮像する(各図に破線で示す撮像範囲の境界が鉛直方向に対して若干傾く)範囲となる。
従って、本実施形態に係る情報表示装置10において、利用者による動作(指示動作やポインティング動作)を認識可能な領域(認識領域)は、ビデオカメラ20Aによる撮像範囲とビデオカメラ20Bによる撮像範囲とが重複している領域、すなわち図2及び図3に二点鎖線で囲んで示す領域(図2ではハッチングで示す領域)となり、認識領域の水平方向に沿った幅についても、鉛直方向に亘っておおよそ一定となる。
図3(B)からも明らかなように、本実施形態では、情報入力空間に到来した利用者自体は認識領域から外れ、利用者が指示動作やクリック動作を行った際に、利用者の手のみが認識領域内に入るように、ビデオカメラ20A,20Bの撮像範囲(凹面鏡28の形状・寸法や凹面鏡28、ビデオカメラ20A,20Bの位置関係等)が定められている。
なお、撮像手段(カメラ)として遠赤外線カメラを用い、人間(利用者)の体温による遠赤外線と、人間の体温と所定値以上離れた温度(体温よりも高い温度であっても低い温度であってもよい)に設定又は温度調整された床から放射される遠赤外光と、によって人間と背景とを弁別する方法を用いても良い。
次に本実施形態の作用を説明する。本実施形態では、利用者検出センサ24が利用者の到来を検出する毎に、制御部16で指示判断処理プログラムが実行される。以下、この指示判断処理プログラムについて図4のフローチャートを参照して説明する。なお、指示判断処理プログラムは、利用者検出センサ24によって利用者の退去が検出されると実行が終了される。
ステップ200ではフラグに0を代入し、次のステップ202では特徴点座標演算処理を実行する。以下、この特徴点座標演算処理について、図5のフローチャートを参照して説明する。
ステップ230ではビデオカメラ20Aから出力される画像Aを表す画像データを取り込み、次のステップ232では取り込んだ画像データをRAM等に記憶する。ステップ234では、前回の処理周期で画像Aの画像データを取り込んで記憶しているか否か判定する。利用者が情報入力空間に到来して最初に特徴点座標演算処理を実行したときには、画像Aの画像データが記憶されていないので、ステップ234の判定が否定されて特徴点座標演算処理を終了するが、2回目以降の前記処理実行時には、前回の処理周期で取り込んだ画像Aの画像データがRAM等に記憶されているので、前記判定が肯定されてステップ236へ移行する。
ステップ236では、前回の処理周期で取り込んだ画像Aの画像データ、及び今回取り込んだ画像Aの画像データを用い、双方の画像データが表す画像の差分を画素毎に演算する。この演算により、ビデオカメラ20Aの撮像範囲内に存在している物体のうち、前回の処理周期から現在迄の間に動きが有った物体に相当する画素のみが「差分有り」になるので、「差分有り」の画素のみを抽出することにより、動きが有った物体に相当する画像領域が抽出される。
なお、利用者の手が認識領域内に位置している場合、当該手を空中で完全に静止させることは困難であるので、利用者の手に相当する領域は、殆どの場合、前回の処理周期から現在迄の間に動きが有った物体に相当する画像領域として抽出されることになる。
次のステップ238では、ステップ236の処理により、利用者の手に相当する画像領域(例えば図6(B)に太線で囲んで示す画像領域)が抽出されたか否か判定する。なお、認識領域内に存在している物体は照明装置26A,26Bによって照明されるので、認識領域内に利用者の手が存在している場合、画像A及び画像Bの中には、利用者の手に相当する画像領域が、高輝度の画素から成る所定値以上の面積の連続した領域として現れる。従って、認識領域内に利用者の手が存在していれば、該手に相当する画像領域を容易に抽出することができる。
ステップ236で動きが有った物体に相当する画像領域が抽出されなかった場合、及びステップ236で抽出された画像領域が利用者の手に相当する画像領域でないと判定した場合には、認識領域内に利用者の手は存在していないと判断できるので、ステップ238の判定が否定されて特徴点座標演算処理を終了する。
一方、ステップ238の判定が肯定された場合にはステップ240へ移行する。本実施形態では、利用者による指示動作やクリック動作を認識するための特徴点として利用者の手の指先を用いており、ステップ240では今回取り込んだ画像データが表す画像A上での特徴点P(図6(B)に示す点PA参照)の位置(2次元座標)を演算する。
本実施形態において、ビデオカメラ20Aの配置位置は、情報入力空間がビデオカメラ20Aによって正確に直上より撮像されるように定められているので、特徴点が鉛直方向に沿って移動(X座標値及びY座標値が変化することなく移動)した場合には、特徴点に対応する画像A上の点PAの位置は殆ど変化しない。このように、画像A上での点PAの位置はXYZ座標系のXY平面(水平面)内における特徴点の位置に略対応しているので、ステップ240の演算により水平面内の特徴点の2次元座標(x,y)が求まることになる。
ステップ244では、ビデオカメラ20Bから出力される画像Bを表す画像データを取り込み、次のステップ246では取り込んだ画像データをRAM等に記憶する。ステップ248では、前回の処理周期で取り込んだ画像Bの画像データ、及び今回取り込んだ画像Bの画像データを用い、双方の画像データが表す画像の差分を画素毎に演算し、「差分有り」の画素のみを抽出することで、動きが有った物体に相当する画像領域を抽出する。そしてステップ250では、今回取り込んだ画像データが表す画像B上での特徴点(図6(B)に示す点PB参照)の位置(2次元座標)を演算する。
図6(A)にも示すように、ビデオカメラ20Bによる撮像範囲は、ビデオカメラ20Aによる撮像範囲に対してX方向に偏倚しているので、画像A上での特徴点の位置と画像B上での特徴点の位置は、例として図6(B)に点PA及び点PBとして示すようにX方向に沿ってずれる(偏差dが生ずる)ことになる。
また、偏差dの大きさは特徴点の高さ位置(Z方向位置)に応じて変化し、仮に特徴点が凹面鏡28の反射面上に位置していたとすると偏差dは0になり、特徴点が情報入力空間の床面上に位置していたとすると偏差dは最大となる(偏差dの最大値は、情報入力空間の床面上におけるビデオカメラ20A,20Bの撮像範囲のずれ量に一致する)。従って、偏差dと特徴点の高さ(手の高さ)Hとの間には図6(C)に示すような関係がある。本実施形態では、図6(C)に示すような偏差dと特徴点の高さHとの関係を表すマップが記憶部18に予め記憶されている。
上記に基づき、ステップ252では画像A上での特徴点の位置と画像B上での特徴点の位置のX方向に沿った偏差dを演算し、次のステップ254では、記憶部18に記憶されている偏差dと特徴点の高さHとの関係を表すマップに基づいて、ステップ252で求めた偏差dに対応する特徴点の高さH、すなわちXYZ座標系における特徴点の高さ(座標値z)を求める。そして、ステップ256では、特徴点の3次元座標(x,y,z)を現在の時刻(演算時刻)と対応付けて記憶部18等に記憶する。特徴点座標演算処理は繰り返し実行されるので、該処理によって演算される特徴点の3次元座標は、利用者の姿勢や動作の変化に応じて逐次更新される。
なお、求めた特徴点の高さHが極端に高い、或いは極端に低い場合には、特徴点の誤認識等が生じている可能性が非常に高いので、例えば高さHが、図2及び図3に示す認識領域の上側境界よりも高い、或いは下側境界よりも低い場合には、認識領域内に利用者の手は存在していないと判断する等の例外処理を行うようにしてもよい。
特徴点座標演算処理が終了すると、指示判断処理プログラム(図4)のステップ203へ移行し、基準点の3次元座標を演算する基準点座標演算処理を実行する。以下、この基準点座標演算処理について、図7のフローチャートを参照して説明する。
ステップ260では、先に説明した特徴点座標演算処理(図5)によって演算されて記憶部18に記憶された特徴点の3次元座標データ(x,y,z)を参照し、現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数(例えば特徴点の位置変化の回転中心に相当する座標を演算する処理(詳細は後述)の実行に十分な数:例えば16個)以上有るか否か判定する。利用者が情報入力空間に到来した当初は、特徴点座標演算処理の実行回数が所定数に満たないため、上記の条件を満足する特徴点の3次元座標データの数が所定数に達せず、回転中心に相当する点の座標を高精度に演算することは非常に困難である。
このため、ステップ260の判定が否定された場合にはステップ274へ移行し、記憶部18に記憶されている特徴点の3次元座標に基づいて、特徴点の位置変化の回転中心に相当する点の3次元座標を推定演算する。この推定演算は、例えば以下のようにして行うことができる。
すなわち、例として図10(A)に示すように、利用者が、指示動作として、肘を直角又は直角に近い角度迄曲げ、手を比較的低い位置に維持した状態(ローポジション)で、肘より先の部分のみを動かすことで指示位置を変化させる動作を行っている場合は、おおよそ肘の関節を回転中心として特徴点の位置が変化することが多い。また、例として図10(C)に示すように、利用者が、指示動作として、腕を比較的真っ直ぐに前方へ伸ばし、手を比較的高い位置に維持した状態(ハイポジション)で、腕全体を動かすことで指示位置を変化させる動作を行っている場合には、おおよそ肩の関節を回転中心として特徴点の位置が変化することが多い。更に、例として図10(B)に示すように、利用者が、指示動作として、手をハイポジションとローポジションの中間的な位置に維持した状態(ミドルポジション)で指示位置を変化させる動作を行っている場合には、肘及び肩の関節が各々動かされることにより、肩の関節よりも若干後方の位置を回転中心として特徴点の位置が変化することが多い。
従って、ステップ274の推定演算は、例えば利用者の姿勢(状態)がローポジション/ミドルポジション/ハイポジションの何れであるかを判断し、特徴点の位置変化の回転中心に相当する3次元座標として、肘の関節に相当する位置の3次元座標、肩の関節に相当する位置の3次元座標、及び肩の関節よりも若干後方の位置の3次元座標の何れかを、利用者の姿勢(状態)に応じて選択的に演算することによって行うことができる。なお、利用者の姿勢(状態)がローポジション/ミドルポジション/ハイポジションの何れであるかは、利用者の身長と特徴点の高さ(座標値z)の比率から判断でき、利用者のおおよその身長は、先に説明した特徴点座標演算処理(図5)のステップ252,254と同様に、画像A,B上での利用者の頭部の位置のX方向に沿った偏差dを演算し、偏差dと高さHとの関係を表すマップを用いることで求めることができる。
特徴点の位置変化の回転中心に相当する3次元座標が推定演算されるとステップ276へ移行し、ディスプレイ14までの距離及びディスプレイ14の大きさに応じて回転中心に相当する点の3次元座標(X,Y,Z)を修正することで、基準点の3次元座標(X,Y,Z)を演算し、演算した基準点の3次元座標(X,Y,Z)を記憶部18に記憶させて基準点座標演算処理を終了する。
基準点座標演算処理が終了すると、図4のフローチャートのステップ204へ移行し、特徴点座標演算処理の結果に基づいて利用者が指示動作を行っているか否かを判定する。特徴点座標演算処理では、利用者が指示動作を行っている場合(撮像によって得られた画像中に利用者の手に相当する画像領域が存在している場合)に特徴点の3次元座標を演算するので、この判定は、例えば特徴点の3次元座標が演算されているか否かを判断することで行うことができる。判定が否定された場合にはステップ200に戻り、ステップ200〜ステップ204を繰り返す。
一方、ステップ204の判定が肯定された場合はステップ206へ移行し、フラグが「0」か否か判定する。ステップ206の判定が肯定された場合、情報入力空間に利用者が到来して指示動作を開始した直後であると判断できるので、ステップ208で各種のフラグや動作モード等の初期設定を行い、ステップ210でフラグを「1」にしてステップ212へ移行する。また、ステップ206の判定が否定された場合には、何ら処理を行うことなくステップ212へ移行する。
ステップ212では、先の特徴点座標演算処理で演算された特徴点の3次元座標(x,y,z)と、基準点座標演算処理で演算された基準点の3次元座標(X,Y,Z)に基づき、利用者の指示動作による指示方向を表す線として、図8に示すように、基準点P0と特徴点PXとを結ぶ仮想線(図8の仮想線54参照)の延びる方向を求め、利用者が指し示している位置(指示位置)として、ディスプレイ14の表示面を含む平面と、設定した仮想線の交点(図8に示す点S参照)の座標(2次元座標)を演算する。なお、ステップ212は本発明の導出手段及び導出ステップに対応している。
次のステップ214では、ステップ212で演算した指示位置の座標に基づいて、ディスプレイ14の表示画面上に設けた対応する表示領域を利用者が指し示しているか否か判定する。ステップ214の判定が否定された場合にはステップ202に戻り、ステップ202以降を繰り返す。一方、ステップ214の判定が肯定された場合にはステップ216へ移行し、カーソルを表示すべき位置の座標として現在の指示位置の座標をPC12へ出力し、カーソルの表示を指示する。これにより、PC12は対応する表示領域内の指示された位置(現在の指示位置)にカーソルを表示させる。
ステップ216で表示領域内にカーソルを表示させると、次のステップ218では利用者による指示動作に応じた処理を実行する指示動作実行処理を実行し、その後に上記ステップ202に戻り、ステップ202以降を繰り返す。なお、当該指示動作実行処理は本発明に特に関係する処理であり、詳細は後述する。
ここで、利用者が情報入力空間に到来して指示動作を開始してから若干の時間が経過すると、基準点座標演算処理において、現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数以上になることでステップ260の判定が肯定される。ステップ260の判定が肯定されるとステップ262へ移行し、上記の条件に合致する特徴点の3次元座標データ群のうち、利用者によってクリック動作が行われた期間に対応する特徴点の3次元座標データが有るか否か判定する。この判定は、例えば判定対象の特徴点の3次元座標データ群の各データを演算時刻順に時系列に並べ、各データの中に座標値xが急激に所定値以上変化しているデータが存在しているか否かを探索することで行うことができる。
利用者によってクリック動作が行われた期間に対応する特徴点の位置は、後述する特徴点の位置変化の回転中心に相当する点の座標の演算における演算精度低下の原因となるので、ステップ262の判定が肯定された場合はステップ264へ移行し、該当する特徴点の3次元座標データを、回転中心に相当する点の座標の演算における演算対象から除外する処理を行った後に、ステップ266へ移行する。なお、ステップ262の判定が否定された場合には、何ら処理を行うことなくステップ266へ移行する。
ステップ266では、演算対象の特徴点の3次元座標データ群に、水平面内(XY平面内)及び垂直面内(YZ平面内)での座標の変化が有るか否か判定する。この判定が否定される場合は、例えば利用者が一定の位置を指示している状態を継続している等の場合であり、このような状態でのデータを用いて特徴点の位置変化の回転中心を演算することは、利用者による指示位置の判断精度の低下に繋がる。このため、ステップ266の判定が否定された場合にはステップ274へ移行し、前述の推定演算を行う。
一方、ステップ266の判定が肯定された場合にはステップ268へ移行し、演算対象の特徴点の3次元座標データ群が表す特徴点の移動軌跡に基づいて、特徴点の位置変化の回転中心に相当する点の3次元座標(X,Y,Z)を演算する。以下、ステップ268における演算について詳述する。特徴点の位置は、空間内の特定の位置(この位置は利用者の動作によって相違する)を中心とする仮想的な球の表面に沿って移動すると見なすことができる。座標(X,Y,Z)を中心とする半径Rの球面は次の(1)式で表すことができる。
(x−X)2+(y−Y)2+(x−X)2=R2 …(1)
なお、(1)式における座標(x,y,z)は球面上の任意の点の座標である。特徴点のn個の3次元座標データを(xi,yi,zi)とし(i=1,2,・・・,n)、これらを(1)式に代入して最小二乗法の極値を座標値X及び半径Rでとると、以下のようになる。
上記の結果より次の(3)式が得られる。
(3)式を(2)式に代入して整理すると、次の(4)式が得られる。
上記と同様に座標値Y,Zについて解くと、次の(5),(6)式が得られる。
続いて、(4),(5),(6)式を連立させて座標値X,Y,Zを解く。これらを行列式で表すと次の(7)式のようになる。
そして、(7)式の解は以下の(8)〜(10)式のようになる。
従って、ステップ268は、演算対象の特徴点の3次元座標データ(xi,yi,zi)を(8)〜(10)式に各々代入することで、回転中心に相当する点の3次元座標(X,Y,Z)を求めることができる。また半径Rは、演算対象の特徴点の3次元座標データ、及び(8)〜(10)式の演算結果を(3)式に各々代入することで求めることができる。
次のステップ270では、以前に(現在の利用者が情報入力空間に到来してから現在までの間に)特徴点の位置変化の回転中心に相当する点の3次元座標を演算したか否か判定する。判定が否定された場合には何ら処理を行うことなくステップ276へ移行するが、判定が肯定された場合にはステップ272へ移行し、以前に演算した回転中心に相当する点の3次元座標も考慮して(例えば加重平均値を演算する等により)、回転中心に相当する点の3次元座標(X,Y,Z)を最終決定する。
そして次のステップ276では、ディスプレイ14までの距離及びディスプレイ14の大きさに基づいて回転中心に相当する点の3次元座標(X,Y,Z)が修正されることで基準点の3次元座標(X,Y,Z)が演算され、記憶部18に記憶される。
このように、本実施形態では、利用者が情報入力空間に到来して指示動作を開始してから若干の時間が経過した後(現時点より所定時間前から現時点迄の期間内に演算された特徴点の3次元座標データが所定数以上になった後)は、特徴点の移動軌跡に基づき、特徴点の位置変化の回転中心に相当する点の3次元座標を最小二乗法によって演算し、この回転中心に相当する点の3次元座標に基づいて設定した基準点の3次元座標を用いて利用者による指示位置を判断しているので、指示動作として利用者が図10(A)〜(C)に示す各種動作(姿勢)の何れを行っている場合にも、また図11に示すように、利用者の体格が大きく相違している場合にも、これらの影響を受けることなく基準点を適切な位置に設定することができ、利用者による指示位置を精度良く判断することができる。
また、基準点座標演算処理(及び特徴点座標演算処理)は繰り返し行われるので、例えば図12に示すように(図8(B)及び(C)も参照)、利用者が指示動作に用いている腕が利用途中で変化した場合、或いは指示動作として利用者が行っている動作が利用途中で変化した場合(例えばハイポジションからミドルポジション又はローポジションに変化した等の場合)にも、この変化に追随して基準点を適切な位置に切り替えることができ、利用者による指示位置を常に精度良く判断することができる。
次に、上述した指示判断処理プログラム(図4)のステップ218において実行される指示動作実行処理について、図13のフローチャートを参照して説明する。なお、ここでは、一例として図14に示すように、当該指示動作実行処理の実行に先立って、ディスプレイ14の表示領域の所定位置に、予め定められた3次元立体画像を示す複数のオブジェクト(図14に示す例では、各々自動車の3次元立体画像を示すオブジェクト50A、50B、50Cの3つのオブジェクト)が表示されている場合について説明する。また、ここでは、制御部16が、ディスプレイ14の表示領域における各オブジェクトの表示位置及び表示範囲を把握している場合について説明する。
ステップ300では、利用者によってクリック動作(前進クリック動作又は後進クリック動作)が行われたか否かを判定する。ここで、前進クリック動作や後進クリック動作が行われたか否かの判定は、例えば特徴点の3次元座標(x,y,z)のうちの座標値xが急激に変化したか否かを判断することで行うことができる。
上記ステップ300において否定判定となった場合はステップ302に移行して、利用者によってクリア動作が行われたか否かを判定する。ここで、クリア動作が行われたか否かの判定は、例えば特徴点の3次元座標(x,y,z)のうちの座標値yが急激に変化したか否かを判断することで行うことができる。
上記ステップ302において肯定判定となった場合はステップ304に移行し、ディスプレイ14によって表示されている全てのオブジェクトを初期表示状態に復帰させる処理を行った後、本指示動作実行処理を終了する。なお、上記ステップ302において否定判定となった場合は上記ステップ304の処理を実行することなく本指示動作実行処理を終了する。
一方、上記ステップ300において肯定判定となった場合はステップ306に移行して、指示判断処理プログラム(図4)のステップ212の処理によって演算された指示位置の座標がディスプレイ14によって表示されている何れかのオブジェクトの表示範囲の内部に位置するか否かを判定し、否定判定となった場合はステップ308に移行する。
ステップ308では、この時点で設定されている動作モードを次にトグル的に切り替えられるべき動作モードに切り替え、その後に本指示動作実行処理を終了する。なお、本ステップ308では、この時点で設定されている動作モードが回転・拡縮モードであった場合は移動・拡縮モードへ切り替え、この時点で設定されている動作モードが移動・拡縮モードであった場合はノーマルモードへ切り替え、この時点で設定されている動作モードがノーマルモードであった場合は回転・拡縮モードへ切り替える。
一方、ステップ306において肯定判定となった場合はステップ310に移行して、上記指示位置の座標を初期位置として記憶部18の所定領域に記憶し、次のステップ312にて、上記ステップ306の処理において指示位置の座標が位置されると判定されたオブジェクト(以下、「処理対象オブジェクト」という。)が利用者によるクリック動作によって指定されたものと見なして、当該処理対象オブジェクトを取り囲む円形状の基準枠の表示をPC12に指示する。これにより、PC12は、一例として図15に示すように、当該基準枠52をディスプレイ14に表示させる。
次のステップ314では利用者による指先の上記所定速度未満での移動の開始待ちを行い、次のステップ316にて当該指先移動の停止待ちを行う。なお、指先の上記所定速度未満での移動開始及び移動停止の判断は、例えば、上述した特徴点座標演算処理と同様に繰り返し導出した特徴点の3次元座標(x,y,z)の少なくとも1つの座標値の上記所定速度未満での変化が開始された時点を移動開始と判断し、当該座標値の変化が停止された時点を移動停止と判断することで行うことができる。また、上記ステップ314では、指先の移動開始と判断された時点の特徴点の3次元座標(x,y,z)を記憶部18に記憶し、上記ステップ316では、指先の移動停止と判断された時点の特徴点の3次元座標(x,y,z)を記憶部18に記憶する。
次のステップ318では、上記ステップ314及びステップ316にて処理対象とされた利用者の指先の移動動作に基づいて、このときの指先の移動量及び移動方向を導出する。
なお、上記移動量は、例えば、上記ステップ314において指先の所定速度未満での移動が開始されたと判断された時点の特徴点の3次元座標(x,y,z)と、上記ステップ316において当該指先の移動が停止されたと判断された時点の特徴点の3次元座標(x,y,z)との対応する座標値間の変化量の合計値や、当該変化量の各々の2乗値の合計値(ユークリッド距離の2乗値)等を算出することによって導出することができる。
また、上記移動方向は、例えば、上記ステップ314において指先の所定速度未満での移動が開始されたと判断された時点の特徴点の3次元座標(x,y,z)と、上記ステップ316において当該指先の移動が停止されたと判断された時点の特徴点の3次元座標(x,y,z)との対応する座標値間の変化量が所定量(3次元座標系における各座標方向に対する、利用者による指示動作の際の誤差量と見なすことのできる変化量であり、ここでは、一例として2cmに相当する変化量)以上となる座標の方向として導出することができる。
ここで、例えば、Y座標値及びZ座標値の少なくとも一方の変化量が上記所定量以上であり、かつX座標値の変化量が上記所定量未満である場合には、利用者による指先の移動がディスプレイ14の表示面に沿った任意方向への移動であるので、利用者によって処理対象オブジェクトの移動、又は処理対象オブジェクトの回転が指示されたものと判断することができる。一方、これとは逆に、Y座標値及びZ座標値の双方の変化量が上記所定量未満であり、かつX座標値の変化量が上記所定量以上である場合には、利用者によって処理対象オブジェクトの大きさの変更が指示されたものと判断することができる。
次のステップ320では、この時点における動作モードが回転・拡縮モードであるか否かを判定し、肯定判定となった場合はステップ322に移行して、上記ステップ314及びステップ316にて処理対象とされた利用者の指先の移動動作が処理対象オブジェクトの回転を指示するものであったか否かを判定する。なお、当該判定は、上述したように、Y座標値及びZ座標値の少なくとも一方の変化量が上記所定量以上であり、かつX座標値の変化量が上記所定量未満であるか否かを判定することにより行うことができる。
上記ステップ322において肯定判定となった場合はステップ324に移行し、上記指示判断処理プログラムのステップ212と同様に導出した、この時点の指示位置が基準枠52の内側となっているか否かを判定して、否定判定となった場合は何ら処理を行うことなく本指示動作実行処理を終了し、肯定判定となった場合はステップ326に移行する。
ステップ326では、処理対象オブジェクトの、上記ステップ318において導出した指先の移動量に応じた回転角度(ここでは、当該移動量が多くなるほど大きくなるように導出した角度)での上記ステップ318において導出した指先の移動方向と同一方向への、当該処理対象オブジェクトの中心付近を通るディスプレイ14の表示面に平行な軸を中心とした回転表示をPC12に指示し、その後に上記ステップ314に戻る。本ステップ326の処理により、PC12は、従来既知の3次元立体画像の回転表示技術を用いて、一例として図16に示すように、処理対象オブジェクトを回転表示させる。なお、図16では、便宜上、処理対象オブジェクト(オブジェクト50B)を当該オブジェクトの上記指先の移動方向(回転方向)に対する近傍に回転された状態で模式的に図示しているが、実際には、処理対象オブジェクトの回転前の表示位置(基準枠52の中央位置)に回転された状態で表示される。
一方、上記ステップ322において否定判定となった場合は利用者によって処理対象オブジェクトの表示倍率の変更が指示されたものと見なしてステップ336に移行し、この時点における利用者の指先(特徴点)のX座標方向に対する位置が所定範囲内にあるか否かを判定する。なお、本実施の形態に係る情報表示装置10では、上記所定範囲として、図3(B)に示されるX座標方向に対する認識領域における利用者側端部から若干離れた位置(一例として、X座標方向に対する認識領域範囲の10分の1だけ離れた位置)から、当該認識領域におけるディスプレイ14側端部から若干離れた位置(一例として、X座標方向に対する認識領域範囲の5分の1だけ離れた位置)までの範囲を適用しているが、これに限らず、予め利用者の腕の長さを測定し、当該利用者の指先が届き得る範囲や、当該範囲より若干狭い範囲等を上記所定範囲として適用することもできる。
上記ステップ336において肯定判定となった場合はステップ338に移行し、上記ステップ318において導出した指先の移動方向が利用者の手前方向(図3(B)における左方向)である場合は、上記ステップ318において導出した指先の移動量に応じた拡大率(ここでは、当該移動量が多くなるほど大きくなるように導出した拡大率)での処理対象オブジェクトの拡大表示を、上記ステップ318において導出した指先の移動方向が利用者の前方方向(図3(B)における右方向)である場合は、上記ステップ318において導出した指先の移動量に応じた縮小率(ここでは、当該移動量が多くなるほど大きくなるように導出した縮小率)での処理対象オブジェクトの縮小表示を、各々PC12に指示し、その後に上記ステップ314に戻る。本ステップ338の処理により、PC12は、従来既知の3次元立体画像の拡大表示技術又は縮小表示技術を用いて、処理対象オブジェクトを拡大表示又は縮小表示させる。
一方、上記ステップ336において否定判定となった場合は、この時点における利用者の指先の位置が上記所定範囲を超えたものと見なしてステップ340に移行し、上記ステップ318において導出した指先の移動方向が利用者の手前方向(図3(B)における左方向)である場合は処理対象オブジェクトの継続的な拡大表示を、上記ステップ318において導出した指先の移動方向が利用者の前方方向(図3(B)における右方向)である場合は処理対象オブジェクトの継続的な縮小表示を、各々PC12に指示し、その後に上記ステップ314に戻る。本ステップ340の処理により、PC12は、従来既知の3次元立体画像の拡大表示技術又は縮小表示技術を用いて、一例として図17に示すように、処理対象オブジェクトを継続的に拡大表示又は縮小表示させる。
一方、上記ステップ320において否定判定となった場合はステップ328に移行し、この時点における動作モードが移動・拡縮モードであるか否かを判定し、肯定判定となった場合はステップ330に移行して、上記ステップ314及びステップ316にて処理対象とされた利用者の指先の移動動作が処理対象オブジェクトの移動を指示するものであったか否かを判定する。なお、当該判定は、上述したように、Y座標値及びZ座標値の少なくとも一方の変化量が上記所定量以上であり、かつX座標値の変化量が上記所定量未満であるか否かを判定することにより行うことができる。
上記ステップ330において肯定判定となった場合はステップ332に移行し、上記指示判断処理プログラムのステップ212と同様に導出した、この時点の指示位置が基準枠52の内側となっているか否かを判定して、否定判定となった場合は何ら処理を行うことなく本指示動作実行処理を終了し、肯定判定となった場合はステップ334に移行する。
ステップ334では、処理対象オブジェクトの、上記ステップ318において導出した指先の移動量に応じた移動距離(ここでは、当該移動量が多くなるほど遠くなるように導出した距離)での上記ステップ318において導出した指先の移動方向と同一方向への移動表示をPC12に指示し、その後に上記ステップ314に戻る。本ステップ334の処理により、PC12は、従来既知の3次元立体画像の移動表示技術を用いて、処理対象オブジェクトを移動表示させる。
一方、上記ステップ330において否定判定となった場合は利用者によって処理対象オブジェクトの表示倍率の変更が指示されたものと見なして前述したステップ336に移行する。
一方、上記ステップ328において否定判定となった場合は、この時点における動作モードがノーマルモードであるものと見なしてステップ342に移行し、カーソルの、上記ステップ318において導出した指先の移動量に応じた移動距離(ここでは、当該移動量が多くなるほど遠くなるように導出した距離)での上記ステップ318において導出した指先の移動方向と同一方向への移動表示をPC12に指示し、その後に本指示動作実行処理を終了する。本ステップ342の処理により、PC12は、ディスプレイ14に表示させているカーソルを、上記移動距離だけ上記移動方向へ移動して表示させる。
本指示動作実行処理プログラムのステップ314及びステップ316の処理が本発明の検出手段及び検出ステップに、ステップ300、ステップ302及びステップ306の処理が本発明の判断手段及び判断ステップに、ステップ304、ステップ312、ステップ326、ステップ334、ステップ338及びステップ340の処理が本発明の制御手段及び制御ステップに、ステップ308の処理が本発明の切替手段及び切替ステップに、各々対応している。
以上詳細に説明したように、本実施の形態では、予め定められた表示画像(ここでは、オブジェクト)を表示する表示手段(ここでは、ディスプレイ14)と、互いに異なる複数の方向から利用者を撮像する撮像手段(ここでは、ビデオカメラ20A、20B)と、前記撮像手段による撮像によって得られた撮像画像に基づいて前記利用者が前記表示手段の表示領域に対して指し示す方向を特定し、特定した方向に基づいて前記利用者により指し示された前記表示手段の表示領域上の位置を導出する導出手段(ここでは、制御部16)と、を備えると共に、前記表示手段の表示領域に前記表示画像が表示された状態において前記導出手段により導出された前記表示領域上の位置に基づいて前記利用者により当該表示画像が指定されたか否かを判断し、前記表示画像が指定されたと判断した場合、前記撮像画像に基づいて前記利用者の手又は指先の移動動作を検出し、検出した移動動作が予め定められた範囲内で行われているときは、当該移動動作における移動方向に応じて予め定められた前記表示画像の表示状態(ここでは、表示倍率)の変更を、検出された移動動作に関する量(ここでは、移動量)に応じて行い、前記移動動作が前記予め定められた範囲を超えたときは、それまでの前記表示画像の表示状態の変更を継続して行うように前記表示手段を制御しているので、変更量に上限を設けることなく表示手段による表示画像の表示状態を変更することができる。
また、本実施の形態では、処理対象オブジェクトの表示位置の変更動作及び表示倍率の変更動作を行う動作モードを第1の動作モード(ここでは、移動・拡縮モード)とし、処理対象オブジェクトの回転角度の変更動作及び表示倍率の変更動作を行う動作モードを第2の動作モード(ここでは、回転・拡縮モード)として、クリック動作が検出される毎に前記第1の動作モードと前記第2の動作モードとが含まれた複数の動作モード(ここでは、ノーマルモードを含む3種類の動作モード)の間で動作モードをトグル的に切り替え、当該切り替え後の動作モードに応じて前記表示状態の変更を行うように制御しているので、動作モードを切り替えるための操作を簡易化することができ、利便性を向上させることができる。
また、本実施の形態では、前記表示画像の初期表示状態への復帰を示す動作として予め定められた初期復帰動作が検出された場合に前記表示画像を初期表示状態に復帰させるように制御しているので、表示画像の初期表示状態への復帰を簡易に行うことができ、利便性を更に向上させることができる。
更に、本実施の形態では、処理対象オブジェクトが含まれる領域を取り囲む所定形状の枠(ここでは、円形状の基準枠52)を表示するように前記表示手段を更に制御すると共に、利用者による指示位置が前記枠の内部に位置するときに処理対象オブジェクトの表示状態(ここでは、表示位置及び回転角度)の変更を行い、前記指示位置が前記枠の外側に移動したときに当該表示状態の変更を停止しているので、表示画像の表示状態の変更が可能な範囲を利用者に対して視覚的に明示することができ、利便性を更に向上させることができる。
なお、本実施の形態では、処理対象オブジェクトを取り囲む基準枠52をディスプレイ14に表示し、利用者による指示位置が基準枠52の範囲外となった場合に処理対象オブジェクトの回転角度又は表示位置の変更動作を終了する場合について説明したが、本発明はこれに限定されるものではなく、基準枠52を表示せず、利用者によってクリック動作が行われたことをもって処理対象オブジェクトの回転角度又は表示位置の変更動作を終了する形態とすることもできる。この場合も、本実施の形態と同様の効果を奏することができる。
また、本実施の形態では、利用者による指示位置が基準枠52の範囲外となった場合に処理対象オブジェクトの回転角度又は表示位置の変更動作を終了する場合について説明したが、本発明はこれに限定されるものではなく、利用者による指示位置が基準枠52の範囲外となるか、又は基準枠52とは別に予め定められた領域(基準枠52と共存する場合は基準枠52の内部の領域)の範囲外となった場合に、それまでの回転角度又は表示位置の変更動作を継続して行うように制御する形態とすることもできる。この場合、処理対象オブジェクトの表示倍率の変更動作に加えて、回転角度及び表示位置の変更動作も変更量に上限を設けることなく継続的に行うことができ、本実施の形態に比較して、利便性を向上させることができる。
また、本実施の形態では、処理対象オブジェクトを拡大表示又は縮小表示する際に当該処理対象オブジェクトを移動せずに、その場で拡大表示又は縮小表示する場合について説明したが、本発明はこれに限定されるものではなく、例えば、図18(A)に示すように、処理対象オブジェクト以外のオブジェクトを自動的に縮小させて表示したり、図18(B)に示すように、処理対象オブジェクトを表示領域の中央部に移動させて拡大表示又は縮小表示させると共に、他のオブジェクトを縮小して表示領域の周辺部に固めて表示する形態とすることもできる。この場合、処理対象オブジェクトのみをクローズ・アップすることができ、情報表示装置10をプレゼンテーションで用いる場合の披露効果を向上させることができる。
また、本実施の形態で説明した利用者によるディスプレイ14の表示領域における指示位置の導出手法は一例であり、例えば、上述した特開平4−271423号公報、特開平5−19957号公報、特開平5−324181号公報等に記載されている従来既知の手法を適用できることは言うまでもない。この場合も、本実施の形態と同様の効果を奏することができる。
また、本実施の形態では、処理対象オブジェクトの回転角度、表示位置、表示倍率の各表示状態の変更速度については特に言及しなかったが、例えば、利用者による指示位置が基準枠52に近づくほど変更速度を速くしたり、利用者による指先の移動速度が速くなるほど変更速度を速くする形態とすることもできる。この場合、当該変更速度を利用者による意志に応じて変更することができるので、より利便性を向上させることができる。
その他、本実施の形態で説明した情報表示装置10の構成(図1〜図3参照。)は一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
また、本実施の形態で示した各種処理プログラムの処理の流れ(図4、図5、図7、図13参照。)も一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。