(57)【要約】【課題】ユーザにとって操作性がよいウェアラブルシステムのインプットデバイスを実現する。【解決手段】通常モードからは、クリックモードまたはドラッグモードに遷移することができる。クリックモードからは、通常モードにだけ遷移することができる。同様に、ドラッグモードからは、通常モードにだけ遷移することができる。例えば、ＣＣＤビデオカメラからの映像に、カーソルＩＤの２Ｄコードが認識された場合、通常モードに遷移され、映像内の２Ｄコードの左上端の位置にカーソルが移動される。映像の中から２Ｄコードを認識する処理は、例えば、１秒間に５回実行されるので、ＣＣＤビデオカメラからの映像内で２Ｄコードを移動させれば、それに追従してカーソルを移動されることができる。本発明は、ウェアラブルシステムの適用することができる。【選択図】　　　図１１
2004110112.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータを取得する取得手段と、
前記取得手段によって取得されたビデオデータの画像を表示デバイスに表示させる表示制御手段と、
前記取得手段によって取得されたビデオデータの画像の中から、所定の画像パターンを検出する検出手段と、
前記検出手段によって検出された前記所定の画像パターンに対応して、前記表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードを遷移する遷移手段と
を含むことを特徴とする情報処理装置。
【請求項２】
前記遷移手段は、前記検出手段によって検出された前記所定の画像パターンに対応して、前記ポインティングカーソルが移動される通常モード、ダブルクリックに相当する処理が行われるクリックモード、およびドラッグに相当する処理が行われるドラッグモードを遷移する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示デバイスは、オーバヘッドディスプレイである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記所定の画像パターンは、ユーザの指先に設けられている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
ビデオデータを取得する取得ステップと、
前記取得ステップの処理で取得されたビデオデータの画像を表示デバイスに表示させる表示制御ステップと、
前記取得ステップの処理で取得されたビデオデータの画像の中から、所定の画像パターンを検出する検出ステップと、
前記検出ステップの処理で検出された前記所定の画像パターンに対応して、前記表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードを遷移する遷移ステップと
を含むことを特徴とする情報処理方法。
【請求項６】
ビデオデータを取得する取得ステップと、
前記取得ステップの処理で取得されたビデオデータの画像を表示デバイスに表示させる表示制御ステップと、
前記取得ステップの処理で取得されたビデオデータの画像の中から、所定の画像パターンを検出する検出ステップと、
前記検出ステップの処理で検出された前記所定の画像パターンに対応して、前記表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードを遷移する遷移ステップと
を含む処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、画面上のポインティングカーソルを、２次元コードを用いて操作する場合に用いて好適な情報処理装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
昨今、パーソナルコンピュータの小型軽量化が進行しており、外出先に携行して利用できる、いわゆるモバイルコンピューティングシステム（Ｍｏｂｉｌｅ　Ｃｏｍｐｕｔｉｎｇ　Ｓｙｓｔｅｍ）が実現されている。
【０００３】
そこで、さらに、モバイルコンピューティングシステムを進化させ、コンピュータを身に付けて利用するウェアラブルシステム（Ｗｅａｒａｂｌｅ　Ｓｙｓｔｅｍ）の開発が進められている。
【０００４】
ウェアラブルシステムの表示に関しては、パーソナルコンピュータの操作画面を、例えば、メガネのように装着して使用するハンドアップディスプレイ（以下、ヘッドマウントディスプレイとも記述する）に表示させる方法がある。また、各種の操作コマンドの入力に関しては、例えば、音声識別を用いる方法がある（例えば、特許文献１参照）。
【０００５】
ところで、従来、ＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ）ビデオカメラを内蔵していたり、あるいはＣＣＤカメラを接続できたりするパーソナルコンピュータが存在する。
そのようなパーソナルコンピュータは、ＣＣＤビデオカメラによって撮影した映像の中に映し出された、図１に示すような２次元コード（以下、２Ｄコードと記述する）を検出し、２Ｄコードが示す識別情報に対応して所定の処理を実行する（例えば、予め設定されているアプリケーションプログラムを起動する）ようになされているものがある（例えば、特許文献２参照）。
【０００６】
【特許文献１】
特開２０００−１９４７２６号公報
【特許文献２】
特開２０００−１４８３３６号公報
【０００７】
【発明が解決しようとする課題】
従来提案されているウェアラブルシステムは、既存の機器やソフトウェアを用いることなく、それぞれ独自の構成を有している。したがって、ウェアラブルシステムを既存の機器やＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）を用いて実現すれば、開発コストや開発の容易さの面で、大きなメリットがあると考えられる。
【０００８】
また、ウェアラブルシステムのインプットデバイスに、２Ｄコードを利用すれば、ユーザにとって操作性が向上すると考えられるが、従来、インプットデバイスに２Ｄコードを利用しているウェアラブルシステムは存在していない課題があった。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、ユーザにとって操作性がよいウェアラブルシステムのインプットデバイスを実現することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の情報処理装置は、ビデオデータを取得する取得手段と、取得手段によって取得されたビデオデータの画像を表示デバイスに表示させる表示制御手段と、取得手段によって取得されたビデオデータの画像の中から、所定の画像パターンを検出する検出手段と、検出手段によって検出された所定の画像パターンに対応して、表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードを遷移する遷移手段とを含むことを特徴とする。
【００１１】
前記遷移手段は、検出手段によって検出された所定の画像パターンに対応して、ポインティングカーソルが移動される通常モード、ダブルクリックに相当する処理が行われるクリックモード、およびドラッグに相当する処理が行われるドラッグモードを遷移するようにすることができる。
【００１２】
前記表示デバイスは、オーバヘッドディスプレイとすることができる。
【００１３】
前記所定の画像パターンは、ユーザの指先に設けられているようにすることができる。
【００１４】
本発明の情報処理方法は、ビデオデータを取得する取得ステップと、取得ステップの処理で取得されたビデオデータの画像を表示デバイスに表示させる表示制御ステップと、取得ステップの処理で取得されたビデオデータの画像の中から、所定の画像パターンを検出する検出ステップと、検出ステップの処理で検出された所定の画像パターンに対応して、表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードを遷移する遷移ステップとを含むことを特徴とする。
【００１５】
本発明のプログラムは、ビデオデータを取得する取得ステップと、取得ステップの処理で取得されたビデオデータの画像を表示デバイスに表示させる表示制御ステップと、取得ステップの処理で取得されたビデオデータの画像の中から、所定の画像パターンを検出する検出ステップと、検出ステップの処理で検出された所定の画像パターンに対応して、表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードを遷移する遷移ステップとを含む処理をコンピュータに実行させることを特徴とする。
【００１６】
本発明の情報処理装置および方法、並びにプログラムにおいては、取得されたビデオデータの画像の中から、所定の画像パターンが検出され、検出された所定の画像パターンに対応して、表示デバイスに表示されているポインティングカーソルに対する操作に関する複数のモードが遷移される。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。図２は、本発明を適用したウェアラブルシステムの構成例を示している。このウェアラブルシステムは、一般に広く使用されているＷｉｎｄｏｗｓ（登録商標）等のＯＳを使用するパーソナルコンピュータ１、およびヘッドマウントディスプレイ２０２から構成される。
【００１８】
ここで、例えば、メニュー選択カード１００には、所定パターンの２Ｄコード１０１が印刷されている。もしくは、この２Ｄコード１０１が印刷されたラベルが貼付されている。
【００１９】
２Ｄコード１０１には、図１に示されたように、１ブロックを１単位とし、縦方向が９．５ブロック分の長さで、横方向が７ブロック分の長さの長方形の範囲内に、黒色のセル部Ａとロゴ部Ｂが、１ブロック分離して配置されている。セル部Ａには、縦方向と横方向が共に、７ブロック分の長さの正方形の範囲内に、方形のセルが２次元的にパターン化されて配置されている。ロゴ部Ｂには、縦方向が１．５ブロック分の長さで、横方向が７ブロック分の長さの大きな長方形のセルが配置され、そのロゴ部Ｂには、２次元コード１０１のコード体系に付された名称、例えば、”ＣｙｂｅｒＣｏｄｅ”（商標）などのロゴマークが白抜き文字で印刷されている。
【００２０】
”ＣｙｂｅｒＣｏｄｅ”（サイバーコード）は、ソニー独自の２次元バーコードであり、約１，６７７万通り（２４ビット）のパターンが存在する。このうち約１００万通り（２０ビット）を、任意のプログラム起動用として自由に登録することが可能である。残りのコード分は、例えば、カーソルに対する操作用（後述する）に利用することができる。または今後の拡張用としても利用される。
【００２１】
パーソナルコンピュータ１は、ノート型コンピュータであり、ＣＣＤビデオカメラ２３が表示部３の上側に設けられている。パーソナルコンピュータ１は、例えば、ＣＣＤビデオカメラ２３により撮像された画像内の２Ｄコード１０１を検出し、検出した２Ｄコード１０１のパターンを識別番号に変換し、識別番号に対応した所定の処理を実行するようになされている。
【００２２】
また、パーソナルコンピュータ１は、接続されたヘッドマウントディスプレイ２０１に、表示部３の画面と同様の画面を表示させるようになされている。ヘッドマウントディスプレイ２０１には、ＣＣＤビデオカメラ２３と同様のＣＣＤビデオカメラ２０２が装着されている。パーソナルコンピュータ１は、ＣＣＤビデオカメラ２３またはＣＣＤビデオカメラ２０２からのビデオデータを取り込むことができるようになされている。
【００２３】
さらに、パーソナルコンピュータ１は、ＣＣＤビデオカメラ２３またはＣＣＤビデオカメラ２０２により撮像されたリアルタイムの映像（動画像）を、いわゆるデスクトップの壁紙のように、表示部３およびヘッドマウントディスプレイ２０１の画面全体に表示させ、それに重畳して各種のアイコンを表示させるようになされている（詳細は６を参照して後述する）。
【００２４】
従って、パーソナルコンピュータ１をＣＣＤビデオカメラ２０２からのビデオデータを取り込むように設定して、ユーザがヘッドマウントディスプレイ２０１を装着した場合、ユーザは、眼前の実空間の景色を、ヘッドマウントディスプレイ２０１の画面に表示されるリアルタイムな映像として視認できることになる。
【００２５】
図３は、パーソナルコンピュータ１の外観斜視図を表している。このパーソナルコンピュータ１は、基本的に、本体２と、本体２に対して開閉自在とされている表示部３により構成されている。
【００２６】
本体２には、各種の文字や記号などを入力するとき操作されるキーボード４、マウスカーソルを移動させるときなどに操作されるスティック式ポインティングデバイス５が、その上面に設けられている。また、本体２の上面には、音を出力するスピーカ８と、表示部３に設けられているＣＣＤビデオカメラ２３で撮像するとき操作されるシャッタボタン１０がさらに設けられている。
【００２７】
表示部３の上端部には、ツメ１３が設けられており、表示部３を本体２に対して閉塞した状態において、ツメ１３に対向する位置における本体２には、ツメ１３が嵌合する孔部６が設けられている。本体２の前面には、スライドレバー７が前面に平行に移動可能に設けられており、スライドレバー７は孔部６に嵌合したツメ１３と係合してロックし、またロック解除することができるようになっている。ロックを解除することにより、表示部３を本体２に対して回動することができる。ツメ１３の隣には、マイクロホン２４が取り付けられている。このマイクロホン２４は、背面からの音も集音できるようになされている。
【００２８】
本体２の正面にはまた、プログラマブルパワーキー（ＰＰＫ）９が設けられている。本体２の右側面には、排気孔１１が設けられており、本体２の前面下部には、吸気孔１４が設けられている。さらに、排気孔１１の右側には、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ　Ｍｅｍｏｒｙ　Ｃａｒｄ　Ｉｎｔｅｒｎａｔｉｏｎａｌ　Ａｓｓｏｃｉａｔｉｏｎ）カード（ＰＣカード）を挿入するためのスロット１２が設けられている。
【００２９】
表示部３の正面には、画像を表示するＬＣＤ（Ｌｉｑｕｉｄ　Ｃｒｙｓｔａｌ　Ｄｉｓｐｌａｙ）２１が設けられており、その上端部には、撮像部２２が、表示部３に対して回動自在に設けられている。すなわち、この撮像部２２は、ＬＣＤ２１と同一の方向と、その逆の方向（背面の方向）との間の１８０度の範囲の任意の位置に回動することができるようになされている。撮像部２２には、ＣＣＤビデオカメラ２３が取り付けられている。表示部３の下側の本体側には、電源ランプＰＬ、電池ランプＢＬ、メッセージランプＭＬ、その他のＬＥＤよりなるランプが設けられている。
【００３０】
図４は、パーソナルコンピュータ１の内部の構成例を示している。内部バス５１には、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）５２、必要に応じて挿入されるＰＣカード５３、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）５４、およびグラフィックチップ８１が接続されている。この内部バス５１は、外部バス５５に接続されており、外部バス５５には、ハードディスクドライブ（ＨＤＤ）５６、Ｉ／Ｏ（入出力）コントローラ５７、キーボードコントローラ５８、スティック式ポインティングデバイスコントローラ５９、サウンドチップ６０、ＬＣＤコントローラ８３、モデム５０等が接続されている。
【００３１】
ＣＰＵ５２は、各機能を統括するコントローラである。ＰＣカード５３は、オプションの機能を付加するとき適宜装着される。
【００３２】
グラフィックチップ８１には、ＣＣＤビデオカメラ２３またはＣＣＤビデオカメラ２０２によって撮影されて取り込まれたビデオデータが処理部８２によって処理された後、入力されるようになされている。グラフィックチップ８１は、処理部８２を介してＣＣＤビデオカメラ２３またはＣＣＤビデオカメラ２０２より入力されたビデオデータを、内蔵するＶＲＡＭ８１Ａに記憶し、適宜、これを読み出して、ＬＣＤコントローラ８３に出力する。ＬＣＤコントローラ８３は、グラフィックチップ８１より供給されたビデオデータをＬＣＤ２１に出力し、表示させる。バックライト８４は、ＬＣＤ２１を後方から照明するようになされている。
【００３３】
ＲＡＭ５４の中には、パーソナルコンピュータ１が起動される過程において、電子メールプログラム（アプリケーションプログラム）５４Ａ、オートパイロットプログラム（アプリケーションプログラム）５４Ｂ、そしてＯＳ（基本プログラム）５４ＣがＨＤＤ５６から転送されて記憶される。
【００３４】
電子メールプログラム５４Ａは、インタネット９２を介して電子メールを授受するプログラムである。電子メールプログラム５４Ａは、特定機能としての着信メール取得機能を有している。この着信メール取得機能は、メールサーバ９３に対してそのメールボックス９３Ａ内に自分（利用者）宛のメールが着信しているかどうかを確認して、自分宛のメールがあれば取得する処理を実行する。
【００３５】
オートパイロットプログラム５４Ｂは、予め設定された複数の処理（またはプログラム）等を、予め設定された順序で順次起動して、処理するプログラムである。
【００３６】
ＯＳ（基本プログラムソフトウェア）５４Ｃは、Ｗｉｎｄｏｗｓ（登録商標）等に代表される、コンピュータの基本的な動作を制御するものである。
【００３７】
一方、外部バス５５側のハードディスクドライブ（ＨＤＤ）５６には、図５に示すように、電子メールプログラム５６Ａ、オートパイロットプログラム５６Ｂ、ＯＳ（基本プログラムソフトウェア）５６Ｃ、２次元コードデータベース（以下、２Ｄコードデータベースと記述する）５６Ｄ、ファインダアプリケーションプログラム（以下、ＦＡプログラムと記述する）５６Ｅ、Ｎ個の２次元コードアソシエートアプリケーションプログラム（以下、２Ｄコードプログラムと記述する）５６Ｆ−１乃至５６Ｆ−Ｎ（以下、個々に区別する必要がない場合、単に２Ｄコードプログラム５６Ｆと記述する）、および２Ｄコードプログラムメニュー情報データベース（以下、メニュー情報データベースと記述する）５６Ｇが記憶されている。
【００３８】
２Ｄコードデータベース５６Ｄには、各２Ｄコード１０１のパターンに対応する識別番号（以下、２ＤコードＩＤと記述する）が記憶されている。
【００３９】
ＦＡプログラム５６Ｅは、例えば、グラフィックチップ８１のＶＲＡＭ８１Ａに記憶されているビデオデータから２Ｄコードを検出し、その２ＤコードＩＤを取得する処理を実行する。この処理は、例えば、１秒間に５回実行される。また、カーソルに対する処理（後述）を実行し、その処理に対応して、２Ｄコードプログラム５６Ｆを起動する。このＦＡプログラム５６Ｅは、２Ｄコードプログラム５６Ｆを呼び出したり、各種メッセージを授受したりするためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ　Ｐｒｏｇｒａｍｍｉｎｇ　Ｉｎｔｅｒｆａｃｅ）を有している。
【００４０】
２Ｄコードプログラム５６Ｆ−１乃至５６Ｆ−Ｎは、ＦＡプログラム５６Ｅにより起動されるアプリケーションプログラムである。これら２Ｄコードプログラム５６Ｆは、ＦＡプログラム５６ＥのＡＰＩを介して、ＦＡプログラム５６Ｅとデータの授受を行うことができる。
【００４１】
メニュー情報データベース５６Ｇには、メニュー選択ボタンの表示上の位置（領域）情報が記憶されているとともに、それに対応して起動される２Ｄコードプログラム５６ＦのプログラムＩＤや、その他、ワードプロセッサ等の一般的なアプリケーションプログラムを特定するためのプログラムＩＤが記憶されている。
【００４２】
図４に戻り、Ｉ／Ｏコントローラ５７は、マイクロコントローラ６１を有し、このマイクロコントローラ６１にはＩ／Ｏインタフェース６２が設けられている。このマイクロコントローラ６１はＩ／Ｏインタフェース６２、ＣＰＵ６３、ＲＡＭ６４、ＲＯＭ６９が相互に接続されて構成されている。このＲＡＭ６４は、キー入力ステイタスレジスタ６５、ＬＥＤ（発光ダイオード）制御レジスタ６６、設定時刻レジスタ６７、レジスタ６８を有している。設定時刻レジスタ６７は、ユーザが予め設定した時刻（起動条件）になると起動シーケンス制御部７６の動作を開始させる際に利用される。レジスタ６８は、予め設定された操作キーの組み合わせ（起動条件）と、起動すべきアプリケーションプログラムの対応を記憶するもので、その記憶された操作キーの組み合わせがユーザにより入力されると、その記憶されたアプリケーションプログラム（例えば電子メールプログラム５４Ａ）が起動されることになる。
【００４３】
キー入力ステイタスレジスタ６５は、ワンタッチ操作用のプログラマブルパワーキー（ＰＰＫ）９が押されると、操作キーフラグが格納されるようになっている。ＬＥＤ制御レジスタ６６は、レジスタ６８に記憶されたアプリケーションプログラム（電子メールプログラム５４Ａ等）の立上げ状態を表示するメッセージランプＭＬの点灯を制御するものである。設定時刻レジスタ６７は、所定の時刻を任意に設定することができるものである。
【００４４】
なお、このマイクロコントローラ６１にはバックアップ用のバッテリ７４が接続されており、各レジスタ６５，６６，６７の値は、本体２の電源がオフとされている状態においても保持されるようになっている。
【００４５】
マイクロコントローラ６１内のＲＯＭ６９の中には、ウェイクアッププログラム７０、キー入力監視プログラム７１、ＬＥＤ制御プログラム７２が予め格納されている。このＲＯＭ６９は、例えばＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ　ｅｒａｓａｂｌｅ　ａｎｄ　ｐｒｏｇｒａｍｍａｂｌｅ　ｒｅａｄ　ｏｎｌｙ　ｍｅｍｏｒｙ）で構成されている。このＥＥＰＲＯＭはフラッシュメモリとも呼ばれている。さらにマイクロコントローラ６１には、常時現在時刻をカウントするＲＴＣ（Ｒｅａｌ−Ｔｉｍｅ　Ｃｌｏｃｋ）７５が接続されている。
【００４６】
ＲＯＭ６９の中のウェイクアッププログラム７０は、ＲＴＣ７５から供給される現在時刻データに基づいて、設定時刻レジスタ６７に予め設定された時刻になったかどうかをチェックして、設定された時刻になると、所定の処理（またはプログラム）等の起動をするプログラムである。キー入力監視プログラム７１は、ＰＰＫ９が利用者により押されたかどうかを常時監視するプログラムである。ＬＥＤ制御プログラム７２は、メッセージランプＭＬの点灯を制御するプログラムである。
【００４７】
ＲＯＭ６９には、さらにＢＩＯＳ（Ｂａｓｉｃ　Ｉｎｐｕｔ／Ｏｕｔｐｕｔ　Ｓｙｓｔｅｍ）７３が書き込まれている。このＢＩＯＳとは、基本入出力システムのことを指し、ＯＳやアプリケーションソフトウェアと周辺機器（ディスプレイ、キーボード、ハードディスクドライブ等）の間でのデータの受け渡し（入出力）を制御するソフトウェアプログラムである。
【００４８】
外部バス５５に接続されているキーボードコントローラ５８は、キーボード４からの入力をコントロールする。スティック式ポインティングデバイスコントローラ５９はトラックポイント５の入力を制御する。
【００４９】
サウンドチップ６０は、マイクロホン２４からの入力を取り込み、あるいは内蔵スピーカ８に対して音声信号を供給する。
【００５０】
モデム５０は、公衆電話回線９０等の通信回線、およびインターネットサービスプロバイダ９１を介して、インタネット等の通信ネットワーク９２やメールサーバ９３等に接続することができる。また、モデム５０は、例えば、ＩＥＥＥ８０２．１１ｂなどの無線技術を適用して、任意の無線ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）に接続することができる。
【００５１】
電源スイッチ４０は、電源をオンまたはオフするとき操作される。半押しスイッチ８５は、シャッタボタン１０が半押し状態にされたときオンされ、全押しスイッチ８６は、シャッタボタン１０が全押し状態にされたときオンされる。反転スイッチ８７は、撮像部２２が１８０度回転されたとき（ＣＣＤビデオカメラ２３がＬＣＤ２１の反対側を撮像する方向に回転されたとき）、オンされるようになされている。
【００５２】
以下において、ユーザがヘッドマウントディスプレイ２０１を装着して使用することを想定して説明する。
【００５３】
次に、図６は、ＣＣＤビデオカメラ２０２により撮像されたリアルタイムの映像を、いわゆるデスクトップの壁紙のように、表示部３およびヘッドマウントディスプレイ２０１の画面全体に表示させ、それに重畳して各種のアイコンを表示させる処理（以下、デスクトップ映像表示処理と記述する）の概要を示している。
【００５４】
このデスクトップ映像表示処理をＷｉｎｄｏｗｓ（登録商標）が起動されている上で実現するためには、ＤｉｒｅｃｔＳｈｏｗと称される技術を用いる。ＤｉｒｅｃｔＳｈｏｗは、ビデオデータの流れの中に様々なフィルタを挟み込むことによって、そのフィルタをインタフェースとして、通過するビデオデータに所定の処理を施したり、ビデオデータを抽出したりすることを可能とする。
【００５５】
具体的に説明する。パーソナルコンピュータ１では、ＣＣＤビデオカメラ２０２から入力されたビデオデータは、大きく分けてプレビュ（Ｐｒｅｖｉｅｗ）とキャプチャ（Ｃａｐｔｕｒｅ）という２種類の流れに分けられて処理される。
【００５６】
プレビュのビデオデータは、内部バス５１やＣＰＵ５２を介することなく、直接的にグラフィックチップ８１によって処理され、表示されるので、その処理が非常に高速である。それに対して、キャプチャのビデオデータは、内部バス５１、ＣＰＵ５２、およびＶＲＡＭ８１Ａを経由して表示される。
【００５７】
デスクトップ映像表示処理では、プレビュのビデオデータが用いられる。始めに、プレビュのビデオデータは、ＤｉｒｅｃｔＳｈｏｗで規定されたオーバレイミキサフィルタに通される。オーバレイミキサフィルタは、入力されたビデオデータにカラーキーを設定し、他の画像と重畳された時にカラーキーの部分の色が透過するような処理を施すためのフィルタである。ここでは、例えば、カラーキーとして色コード”＃０００００ａ”（黒色）を設定する。
【００５８】
次に、オーバレイミキサフィルタを通ったビデオデータは、ＤｉｒｅｃｔＳｈｏｗで規定されたレンダラフィルタを通される。レンダラフィルタは、通されるビデオデータを、実際にウィンドウなどに描画する処理を実行するためのフィルタである。
ここでは、ヘッドマウントディスプレイ２０１の画面と同じサイズの実写映像用ウィンドウ３０１を作成し、レンダラフィルタによってビデオデータの映像を描画する。これにより、画面全体にリアルタイムな映像が映し出されるようになされている。
【００５９】
また、デスクトップ上に開かれた他のウィンドウ３０３によってリアルタイムな映像が描画されている実写映像用ウィンドウ３０１が隠れてしまわないように、当該他のウィンドウ３０３に透過処理を施すように行った。この透過処理は、当該他のウィンドウ３０３の背景色に、オーバレイミキサフィルタで設定したカラーキーの色を用いることによって実現する。
【００６０】
さらに、画面全体に描画されたリアルタイムな映像に、本来のデスクトップの配置されているアイコン３００を重畳して表示するために、まず、本来のデスクトップに表示されているアイコン３００のデータ（各アイコンの画像データ、それぞれのリンク先）を取得する。そして、画面と同じサイズの重畳用デスクトップウィンドウ３０２を作成し、そこにアイコン描画領域を設定してアイコン３００の描画を行う。
【００６１】
この設定されたアイコン描画領域にどのアイコンを配置したかの情報を保持することによって、その領域をクリックした時に読み出されるリンク先が特定される。また、この新しく生成した重畳用デスクトップウィンドウ３０２の背景色に、オーバレイミキサフィルタで設定したカラーキーの色を用いて、実写映像ウィンドウ３０１に上に重畳用デスクトップウィンドウ３０２を表示する。
【００６２】
以上により、ＣＣＤビデオカメラ２０２によって撮影されたリアルタイムなビデオデータの映像の上に、本来のデスクトップに配置されているアイコン３００を表示することができる。以上で、デスクトップ映像表示処理の説明を終了する。
【００６３】
以上説明したように、デスクトップ映像表示処理によれば、ユーザがヘッドマウントディスプレイ２０１を装着した場合、ユーザは、眼前の実空間の景色を、ヘッドマウントディスプレイ２０１の画面に表示されるリアルタイムな映像として視認できることになるので、いわゆる、ウェアラブルシステムに適用することができる。
【００６４】
次に、図７および図８は、映像内に存在する２Ｄコード１０１に対応して所定のアプリケーションを実行する処理の利用方法の一例を示している。例えば、図７に示すように、会社内において各社員が、それぞれ異なるパターンの２Ｄコード１０１が貼付または印刷されたカードなどを身につけるようする。そして、社員をＣＣＤビデオカメラ２０２によって撮影し、映像内から２Ｄコード１０１が認識された場合、図８に示すように、撮影された社員の個人情報を表示するアプリケーションが実行されるようにする利用方法が考えられる。
【００６５】
このように映像の中の２Ｄコード１０１を認識する処理には、キャプチャのビデオデータが用いられる。
【００６６】
次に、２Ｄコード１０１を画面上のカーソルに対する操作（例えば、カーソルの移動操作、ダブルクリック操作、ドラッグ操作）に利用する場合の処理について説明する。以下に説明する処理は、ＦＡプログラム５６Ｅによって実行される。
【００６７】
この場合、例えば、図９に示す２Ｄコード付き指輪３１１のように、２Ｄコード１０１は、指輪または指サックなどに貼付または印刷されて利用される。
【００６８】
２Ｄコード１０１のパターンは、カーソルの移動操作に用いるもの、ダブルクリックと同等の操作に用いるもの、およびドラッグと同等の操作に用いるものの３種類が必要となる。図１０は、これら３種類のパターンの２ＤコードＩＤと、装着する指と、操作との対応を示している。
【００６９】
カーソルを移動させるときに用いるパターンの２Ｄコード１０１は、その２ＤコードＩＤが「カーソルＩＤ」と称され、対応する２Ｄコード付き指輪３１１が、例えば、左手人差し指の腹側（爪がない方の側）に装着される。
【００７０】
ダブルクリックと同等の処理を実行させるときに用いるパターンの２Ｄコード１０１は、その２ＤコードＩＤが「クリックＩＤ」と称され、対応する２Ｄコード付き指輪３１１が、例えば、左手中指の腹側に装着される。
【００７１】
ドラッグと同等の処理を実行させるときに用いるパターンの２Ｄコード１０１は、その２ＤコードＩＤが「ドラッグＩＤ」と称され、対応する２Ｄコード付き指輪３１１が、例えば、左手人差し指の背側（爪がある側）に装着される。なお、２Ｄコード付き指輪３１１を装着する指は、ユーザが使用し易いように任意に変更することができる。
【００７２】
図１１は、２Ｄコード１０１を画面上のカーソルに対する操作に利用する場合におけるモード遷移図を示している。通常モードからは、クリックモードまたはドラッグモードに遷移することができる。クリックモードからは、通常モードにだけ遷移することができる。同様に、ドラッグモードからは、通常モードにだけ遷移することができる。
【００７３】
例えば、図１２に示すように、ＣＣＤビデオカメラ２０２からの映像に、カーソルＩＤの２Ｄコード１０１が認識された場合、通常モードに遷移され、映像内の２Ｄコード１０１の左上端の位置にカーソルが移動される。映像の中から２Ｄコード１０１を認識する処理は、例えば、１秒間に５回実行されるので、図１３に示すように、ＣＣＤビデオカメラ２０２からの映像の中で２Ｄコード１０１を移動させれば、それに追従してカーソルを移動させることができる。
【００７４】
通常モードにおいて、例えば、図１４に示すように、ＣＣＤビデオカメラ２０２からの映像に、クリックＩＤの２Ｄコード１０１が認識された場合、クリックモードに遷移される。クリックモードにおいては、ダブルクリックと同等の処理が実行される（例えば、カーソルが指し示すアイコンに対応するアプリケーションプログラムが実行される）。クリックモードにおいて、ＣＣＤビデオカメラ２０２からの映像に、カーソルＩＤの２Ｄコード１０１が認識された場合、通常モードに遷移される。
【００７５】
なお、クリックモードにおいて、クリックＩＤの２Ｄコード１０１がＣＣＤビデオカメラ２０２からの映像に継続して映し出されていても、ダブルクリックと同等の処理は１度だけしか実行されない。ダブルクリックと同等の処理を再度実行させるには、一度、通常モードに戻り、再びクリックモードに遷移する必要がある。
【００７６】
通常モードにおいて、例えば、図１５に示すように、ＣＣＤビデオカメラ２０２からの映像に、ドラッグＩＤの２Ｄコード１０１が認識された場合、ドラッグモードに遷移される。ドラッグクモードにおいては、ドラッグと同等の処理が実行される（例えば、カーソルが指し示すウィンドウやアイコンが画面上で移動される）。ドラッグモードにおいて、ＣＣＤビデオカメラ２０２からの映像に、カーソルＩＤの２Ｄコード１０１が認識された場合、通常モードに遷移される。
【００７７】
次に、通常モードからの遷移処理について、図１６のフローチャートを参照して説明する。この処理は、通常モードに遷移されているときに継続して実行される。
【００７８】
ステップＳ１において、ＦＡプログラム５６Ｅは、ＣＣＤビデオカメラ２０２からのビデオデータの映像に２Ｄコード１０１が存在するか否かを検知し、２Ｄコード１０１を検知するまで待機する。２Ｄコード１０１が検知された場合、処理はステップＳ２に進む。ステップＳ２において、ＦＡプログラム５６Ｅは、２Ｄコードデータベース５６Ｄを参照して、検知した２Ｄコード１０１のパターンに対応する２ＤコードＩＤを識別する。
【００７９】
ステップＳ３において、ＦＡプログラム５６Ｅは、検知した２Ｄコード１０１がカーソルＩＤであるか否かを判定する。検知した２Ｄコード１０１がカーソルＩＤであると判定された場合、処理はステップＳ４に進む。ステップＳ４において、ＦＡプログラム５６Ｅは、映像の中の２Ｄコード１０１の左上端の位置にカーソルを移動させる。処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。
【００８０】
ステップＳ３において、検知した２Ｄコード１０１がカーソルＩＤではないと判定された場合、処理はステップ５に進む。ステップＳ５において、ＦＡプログラム５６Ｅは、検知した２Ｄコード１０１がクリックＩＤであるか否かを判定する。検知した２Ｄコード１０１がクリックＩＤであると判定された場合、処理はステップＳ６に進む。ステップＳ６において、ＦＡプログラム５６Ｅは、カーソルに対する操作を、通常モードからクリックモードに遷移させる。
【００８１】
ステップＳ６におけるクリックモードの処理について、図１７のフローチャートを参照して説明する。ステップＳ２１において、ＦＡプログラム５６Ｅは、ダブルクリックと同等の処理を実行させる（例えば、カーソルが指し示すアイコンに対応するアプリケーションプログラムを実行させる）。
【００８２】
ステップＳ２２において、ＦＡプログラム５６Ｅは、ＣＣＤビデオカメラ２０２からのビデオデータの映像に２Ｄコード１０１が存在するか否かを検知し、２Ｄコード１０１を検知するまで待機する。２Ｄコード１０１が検知された場合、処理はステップＳ２３に進む。ステップＳ２３において、ＦＡプログラム５６Ｅは、２Ｄコードデータベース５６Ｄを参照して、検知した２Ｄコード１０１のパターンに対応する２ＤコードＩＤを識別する。
【００８３】
ステップＳ２４において、ＦＡプログラム５６Ｅは、検知した２Ｄコード１０１がカーソルＩＤであるか否かを判定する。検知した２Ｄコード１０１がカーソルＩＤでないと判定された場合、すなわち、例えば、検知した２Ｄコード１０１がクリックＩＤである場合、ステップＳ２２に戻り、それ以降の処理が繰り返される。したがって、ＣＣＤビデオカメラ２０２からのビデオデータの映像に、カーソルＩＤの２Ｄコード１０１が継続して映し出されていても、ダブルクリックと同等の処理が繰り返し実行されることはない。
【００８４】
ステップＳ２４において、検知した２Ｄコード１０１がカーソルＩＤであると判定された場合、処理は図１６のステップＳ４にリターンする。
【００８５】
図１６に戻る。ステップＳ５において、検知した２Ｄコード１０１がクリックＩＤではないと判定された場合、処理はステップＳ７に進む。ステップＳ７において、ＦＡプログラム５６Ｅは、検知した２Ｄコード１０１がドラッグＩＤであるか否かを判定する。検知した２Ｄコード１０１がドラッグＩＤであると判定された場合、処理はステップＳ８に進む。ステップＳ８において、ＦＡプログラム５６Ｅは、カーソルに対する操作を、通常モードからドラッグモードに遷移させる。
【００８６】
ステップＳ８におけるドラッグモードの処理について、図１８のフローチャートを参照して説明する。ステップＳ３１において、ＦＡプログラム５６Ｅは、カーソルに対して、マウスの左ボタンを押下した状態（すなわち、ドラッグした状態）を保持する。ステップＳ３２において、ＦＡプログラム５６Ｅは、ドラッグした状態を保持したまま、映像の中の２Ｄコード１０１の左上端の位置にカーソルを移動させる。これに伴い、例えば、カーソルが指し示すウィンドウやアイコンが画面上で移動される。
【００８７】
ステップＳ３３において、ＦＡプログラム５６Ｅは、ＣＣＤビデオカメラ２０２からのビデオデータの映像に２Ｄコード１０１が存在するか否かを検知し、２Ｄコード１０１を検知するまで待機する。２Ｄコード１０１が検知された場合、処理はステップＳ３４に進む。ステップＳ３４において、ＦＡプログラム５６Ｅは、２Ｄコードデータベース５６Ｄを参照して、検知した２Ｄコード１０１のパターンに対応する２ＤコードＩＤを識別する。
【００８８】
ステップＳ３５において、ＦＡプログラム５６Ｅは、検知した２Ｄコード１０１がドラッグＩＤであるか否かを判定する。検知した２Ｄコード１０１がドラッグＩＤであると判定された場合、ステップＳ３２に戻り、それ以降の処理が繰り返される。したがって、ＣＣＤビデオカメラ２０２からのビデオデータの映像に、ドラッグＩＤの２Ｄコード１０１が継続して映し出されている場合、映像内の２Ｄコード１０１の動きに追従して、ドラッグされた状態のカーソルが移動されることになる。
【００８９】
ステップＳ３５において、検知した２Ｄコード１０１がドラッグＩＤではないと判定された場合、処理はステップＳ３６に進む。ステップＳ３６において、ＦＡプログラム５６Ｅは、検知した２Ｄコード１０１がカーソルＩＤであるか否かを判定する。検知した２Ｄコード１０１がカーソルＩＤではないと判定された場合、ステップＳ３３に戻り、それ以降の処理が繰り返される。ステップＳ３６において、検知した２Ｄコード１０１がカーソルＩＤであると判定された場合、処理は図１６のステップＳ４にリターンする。
【００９０】
図１６に戻る。ステップＳ７において、検知した２Ｄコード１０１がドラッグＩＤではないと判定された場合、処理はステップＳ９に進む。この場合、２Ｄコード１０１の２ＤコードＩＤは、カーソルの操作に関するものではい。ステップＳ９において、ＦＡプログラム５６Ｅは、ステップＳ２で識別した２ＤコードＩＤに対応する処理を実行する（例えば、所定のアプリケーションプログラムを実行させる）。この後、処理はステップＳ１に戻り、それ以降の処理が繰り返される。以上で、通常モードからの遷移処理の説明を終了する。
【００９１】
以上説明したように、２Ｄコード１０１を画面上のカーソルに対する操作に利用することにより、２Ｄコード付指輪３１１を、いわゆる、ウェアラブルシステムのインプットデバイスに適用することができる。２Ｄコード付指輪３１１は、既存のインプットデバイスに比較して、小型軽量であって携帯性に優れるので、ウェアラブルシステムに最適なインプットデバイスであるということができる。
【００９２】
ユーザがヘッドマウントディスプレイ２０１を装着し、２Ｄコード付指輪３１１をインプットデバイスとして利用したウェアラブルシステムを用いることにより実現可能なサービスの２つの例について、図１９および図２０、並びに図２１および図２２を参照して説明する。
【００９３】
例えば、音楽ＣＤショップにおいて、図１９に示すように、商品である各音楽ＣＤにそれぞれ固有の２ＤコードＩＤを示す２Ｄコード１０１を貼付（または印刷）するようにする。そして、上述したウェアラブルシステムを装着した客が、ヘッドマウントディスプレイ２０１の画面に、ＣＤに貼付された２Ｄコード１０１を捉えることにより、図２０に示すように、ＣＤの情報（ジャケット写真の画像、アーティスト名、アルバム名、値段、発売日、各曲名等）を表示させるサービスを実現することができる。さらに、２Ｄコード付指輪３１１を用いてカーソルを移動して任意の曲目をダブルクリックすることにより、選択された曲目の視聴用のデータを取得できるようにすることも考えられる。
【００９４】
ただし、ＣＤの情報については、例えば、音楽ＣＤショップ内において、客のウェアラブルシステムが任意に接続可能な無線ＬＡＮと、当該無線ＬＡＮを介してウェアラブルシステムのパーソナルコンピュータ１に、ＣＤの情報を供給するようなサーバを設ける必要がある。
【００９５】
また、例えば、図２１に示すように、駅の看板３６１などに、その場所特有の固有の２ＤコードＩＤを示す２Ｄコード１０１を貼付（またはペイント）するようにする。そして、上述したウェアラブルシステムを装着した客が、ヘッドマウントディスプレイ２０１の画面に、看板３６１に貼付された２Ｄコード１０１を捉えることにより、図２２に示すように、その土地の地図３７１を、映像に重畳表示させるサービスを実現することができる。さらに、２Ｄコード付指輪３１１を用いてカーソルを移動して、表示された地図上の任意の場所をダブルクリックすることにより、選択された場所の詳細な情報を取得して表示できるようにすることも考えられる。
【００９６】
ただし、地図の画像データ等を供給するためには、上述した音楽ＣＤショップの場合と同様のインフラストラクチャを設ける必要がある。
【００９７】
以上説明した２つの例の他、例えば、日本国内のみならず、外国においても、知らない外国語の看板に対する日本語が画面に表示されたり、見知らぬ土地で地図が画面に表示されたり、近隣のお勧めのスポットの情報が表示されたりするようなサービスを実現する他場合にも、本発明を適用したウェアラブルシステムを適用することが可能である。
【００９８】
なお、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられるプログラム格納媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤなどのパッケージメディアのみならず、プログラムが一時的もしくは永続的に格納される半導体メモリや磁気ディスクなどで実現してもよい。さらには、上述したプログラムをインストールする手段としては、ローカルエリアネットワークやインタネット、デジタル衛星放送などの有線および無線通信媒体、およびこれらの通信媒体を介して提供されるプログラムを転送もしくは受信するルーターやモデム等の各種通信インタフェース等を利用することができる。
【００９９】
本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１００】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１０１】
【発明の効果】
以上のように、本発明によれば、ユーザにとって操作性がよいウェアラブルシステムのインプットデバイスを実現することが可能となる。
【図面の簡単な説明】
【図１】２Ｄコードの一例を示す図である。
【図２】本発明を適用したウェアラブルシステムの構成例を示す図である。
【図３】図２のパーソナルコンピュータ１の外観を示す斜視図である。
【図４】パーソナルコンピュータ１の内部の構成例を示すブロック図である。
【図５】図４のＨＤＤ５６に記憶されているプログラムを示す図である。
【図６】デスクトップ映像表示処理の概要を説明するための図である。
【図７】映像内に存在する２Ｄコード１０１に対応して所定のアプリケーションを実行する処理の利用方法を説明するための図である。
【図８】映像内に存在する２Ｄコード１０１に対応して所定のアプリケーションを実行する処理の利用方法を説明するための図である。
【図９】２Ｄコード付き指輪３１１の装着例を示す図である。
【図１０】２Ｄコード付き指輪３１１の２ＤコードＩＤ、装着する指、および操作の対応を示す図である。
【図１１】２Ｄコード１０１を画面上のカーソルに対する操作に利用する場合におけるモード遷移図である。
【図１２】通常モードにおけるカーソルの移動操作を説明するための図である。
【図１３】通常モードにおけるカーソルの移動操作を説明するための図である。
【図１４】クリックモードにおけるダブルクリック操作を説明するための図である。
【図１５】ドラッグモードにおけるドラッグ操作を説明するための図である。
【図１６】通常モードからの遷移処理を説明するフローチャートである。
【図１７】クリックモードの処理を説明するフローチャートである。
【図１８】ドラッグモードの処理を説明するフローチャートである。
【図１９】本発明を適用したウェアラブルシステムの利用例を説明するための図である。
【図２０】本発明を適用したウェアラブルシステムの利用例を説明するための図である。
【図２１】本発明を適用したウェアラブルシステムの他の利用例を説明するための図である。
【図２２】本発明を適用したウェアラブルシステムの他の利用例を説明するための図である。
【符号の説明】
１　パーソナルコンピュータ，　５１　ＣＰＵ，　５６Ｅ　ＦＡプログラム，　１０１　２Ｄコード，２０１　ヘッドマウントディスプレイ，　２０２　ＣＣＤビデオカメラ，３１１　２Ｄコード付指輪
【図１】
2004110112.tif 000003
【図２】
2004110112.tif 000004
【図３】
2004110112.tif 000005
【図４】
2004110112.tif 000006
【図５】
2004110112.tif 000007
【図６】
2004110112.tif 000008
【図７】
2004110112.tif 000009
【図８】
2004110112.tif 000010
【図９】
2004110112.tif 000011
【図１０】
2004110112.tif 000012
【図１１】
2004110112.tif 000013
【図１２】
2004110112.tif 000014
【図１３】
2004110112.tif 000015
【図１４】
2004110112.tif 000016
【図１５】
2004110112.tif 000017
【図１６】
2004110112.tif 000018
【図１７】
2004110112.tif 000019
【図１８】
2004110112.tif 000020
【図１９】
2004110112.tif 000021
【図２０】
2004110112.tif 000022
【図２１】
2004110112.tif 000023
【図２２】
2004110112.tif 000024