(57)【要約】【課題】光強度の時間的変化からなる光学的パターンで表わされたデータをロバストに伝送する。【解決手段】送信機側では、送信データを構成するバイト列を光学的に分別可能な１以上のパターンとして表示することにデータを送出する。受信機側では、該光学的パターンを２次元受光面で受光して、その受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するとともに、同じ送信機からの受光パターンを同定して、同じ送信機からの光学的パターンを復号化して得たバイト列を受信した順に連結して元の送信データを復元する。【選択図】　図１
2004056343.tif 000002
【特許請求の範囲】
【請求項１】
送信機側では、送信データを構成するバイト列を光学的に分別可能な１以上のパターンとして表示することによりデータを送出し、
受信機側では、該光学的パターンを２次元受光面で受光して、その受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するとともに、受光面上で同じ送信機からの受光パターンを同定して、同じ送信機からの光学的パターンを復号化して得たバイト列を連結して送信データを復元する、
ことを特徴とするデータ通信システム。
【請求項２】
前記受信機は、受光位置が変化する光学的パターンを追跡して、同じ送信機からの光学的パターンを同定する、
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
前記受信機は、受光画像フレーム間で受光位置の変化が所定値以下となる光学的パターンを同じ送信機からの光学的パターンとして同定する、
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項４】
前記受信機は、２次元受光面上での過去の検出位置を基に光学的パターンの運動モデルを仮定して、該運動モデルにより予測される領域にて光学的パターンを探索する、
ことを特徴とする請求項２に記載のデータ通信システム。
【請求項５】
前記送信機は送出するデータ最小単位毎に識別情報を付加し、
前記受信機は受光した光学的パターンを認識してこれに含まれる識別情報を基に同じ送信機からの光学的パターンを同定する、
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項６】
複数の送信機が存在するシステム環境下において、各送信機は、組となって動作する送信機に関する情報及び／又は送信機の位置情報を送信データに付加し、受信機は、前記の送信データに付加された情報を基に送信機の空間的位置を特定する、
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項７】
前記送信機は、実世界オブジェクトに関する情報を送信データに付加する、
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項８】
前記送信機は、送信機自体又はその近辺の状態に関する情報を送信データに付加する、
ことを特徴とする請求項１に記載のデータ通信システム。
【請求項９】
光学的に分別可能な複数のパターンの形式で表示されるデータを受信するデータ受信装置であって、
光学的パターンを２次元受光面上で受光する受光手段と、
受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するデータ復号手段と、
受光面上で同じ送信機からの受光パターンを同定する同定手段と、
同じ送信機からのバイト列を連結して送信データを復元するデータ復元手段と、
を具備することを特徴とするデータ受信装置。
【請求項１０】
前記同定手段は、受光位置が変化する光学的パターンを追跡して、同じ送信機からの光学的パターンを同定する、
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１１】
前記同定手段は、受光画像フレーム間で受光位置の変化が所定値以下となる光学的パターンを同じ送信機からの光学的パターンとして同定する、
ことを特徴とする請求項１０に記載のデータ受信装置。
【請求項１２】
前記同定手段は、２次元受光面上での過去の検出位置を基に光学的パターンの運動モデルを仮定して、該運動モデルにより予測される領域にて光学的パターンを探索する、
ことを特徴とする請求項１０に記載のデータ受信装置。
【請求項１３】
最小送信データ毎に送信機の識別子が付加されており、
前記同定手段は、受光した光学的パターンを認識してこれに含まれる識別子を基に同じ送信機からの光学的パターンを同定する、
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１４】
複数の送信機が存在するシステム環境下において稼働しており、
表示されるデータには組となって動作する送信機に関する情報及び／又は送信機の位置情報が付加されており、
前記同定手段は、前記の表示されるデータに付加された情報を基に送信機の空間的位置を特定する、
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１５】
表示されるデータには実世界オブジェクトに関する情報が付加されており、
前記同定手段は、前記の表示されるデータに付加された情報を認識して、該実世界オブジェクトに関連する処理を起動する、
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１６】
表示されるデータには送信機自体又はその近辺の状態に関する情報が付加されており、
前記同定手段は、前記の表示されるデータに付加された情報を認識して、送信機自体又はその近辺の状態に応じた処理を起動する、
ことを特徴とする請求項９に記載のデータ受信装置。
【請求項１７】
光学的に分別可能な複数のパターンの形式で表示されるデータを受信するデータ受信方法であって、
光学的パターンを２次元受光面上で受光する受光ステップと、
受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するデータ復号ステップと、
受光面上で同じ送信機からの受光パターンを同定する同定ステップと、
同じ送信機からのバイト列を連結して送信データを復元するデータ復元ステップと、
を具備することを特徴とするデータ受信方法。
【請求項１８】
前記同定ステップでは、受光位置が変化する光学的パターンを追跡して、同じ送信機からの光学的パターンを同定する、
ことを特徴とする請求項１７に記載のデータ受信方法。
【請求項１９】
前記同定ステップでは、受光画像フレーム間で受光位置の変化が所定値以下となる光学的パターンを同じ送信機からの光学的パターンとして同定する、
ことを特徴とする請求項１８に記載のデータ受信方法。
【請求項２０】
前記同定ステップでは、２次元受光面上での過去の検出位置を基に光学的パターンの運動モデルを仮定して、該運動モデルにより予測される領域にて光学的パターンを探索する、
ことを特徴とする請求項１８に記載のデータ受信方法。
【請求項２１】
最小送信データ毎に送信機の識別子が付加されており、
前記同定ステップでは、受光した光学的パターンを認識してこれに含まれる識別子を基に同じ送信機からの光学的パターンを同定する、
ことを特徴とする請求項１７に記載のデータ受信方法。
【請求項２２】
複数の送信機が存在するシステム環境下において稼働しており、
表示されるデータには組となって動作する送信機に関する情報及び／又は送信機の位置情報が付加されており、
前記同定ステップでは、前記の表示されるデータに付加された情報を基に送信機の空間的位置を特定する、
ことを特徴とする請求項１７に記載のデータ受信方法。
【請求項２３】
表示されるデータには実世界オブジェクトに関する情報が付加されており、
前記同定ステップでは、前記の表示されるデータに付加された情報を認識して、該実世界オブジェクトに関連する処理を起動する、
ことを特徴とする請求項１７に記載のデータ受信方法。
【請求項２４】
表示されるデータには送信機自体又はその近辺の状態に関する情報が付加されており、
前記同定ステップでは、前記の表示されるデータに付加された情報を認識して、送信機自体又はその近辺の状態に応じた処理を起動する、
ことを特徴とする請求項１７に記載のデータ受信方法。
【請求項２５】
送信データを構成するバイト列を生成するデータ処理手段と、
付加的な情報を表わすＬ１ビットと該バイト列を分割して得たＬ２ビットとを連結したＮ（＝Ｌ１＋Ｌ２）ビットの送信データを光学的に分別可能な１以上のパターンとして表示するデータ送出手段と、
を具備することを特徴とするデータ送信装置。
【請求項２６】
付加的な情報は機器識別子である、
ことを特徴とする請求項２５に記載のデータ送信装置。
【請求項２７】
複数のデータ送信装置が存在するシステム環境下において稼働しており、
付加的な情報は組となって動作するデータ送信装置に関する情報及び／又は送信機の位置情報である、
ことを特徴とする請求項２５に記載のデータ送信装置。
【請求項２８】
付加的な情報は実世界オブジェクトに関する情報である、
ことを特徴とする請求項２５に記載のデータ送信装置。
【請求項２９】
付加的な情報は当該データ送信装置自体又はその近辺の状態に関する情報である、
ことを特徴とする請求項２５に記載のデータ送信装置。
【請求項３０】
送信データを構成するバイト列を生成するデータ処理ステップと、
機器識別子を表わすＬ１ビットと該バイト列を分割して得たＬ２ビットとを連結したＮ（＝Ｌ１＋Ｌ２）ビットの送信データを光学的に分別可能な１以上のパターンとして表示するデータ送出ステップと、
を具備することを特徴とするデータ送信方法。
【請求項３１】
付加的な情報は機器識別子である、
ことを特徴とする請求項３０に記載のデータ送信方法。
【請求項３２】
複数のデータ送信装置が存在するシステム環境下において稼働しており、
付加的な情報は組となって動作するデータ送信装置に関する情報及び／又は送信機の位置情報である、
ことを特徴とする請求項３０に記載のデータ送信方法。
【請求項３３】
付加的な情報は実世界オブジェクトに関する情報である、
ことを特徴とする請求項３０に記載のデータ送信方法。
【請求項３４】
付加的な情報は当該装置自体又はその近辺の状態に関する情報である、
ことを特徴とする請求項３０に記載のデータ送信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、実空間上でデータを転送するデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法に係り、特に、光学的パターンを発光することにより所望のデータを伝送するデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法に関する。
【０００２】
さらに詳しくは、本発明は、伝送データに併せて送信元の空間的位置などの実世界状況を送受信するデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法に係り、特に、送信機側では光学的パターンを発光することにより所望のデータを送信するとともに受信機側では光学的パターンをカメラなどの２次元平面で受光して、光学的パターンが表わす情報とともに送信元の空間的情報を併せて受信するデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法に関する。
【０００３】
【従来の技術】
情報処理技術や情報通信技術が高度に発達した現代においては、パーソナル・コンピュータや携帯情報端末を始めとする情報機器がオフィスや家庭内などの実世界上の至るところに遍在する。このような環境下では、機器どうしを接続して、いつでもどこでも欲しい情報を入手する「ユビキタス（Ｕｂｉｑｕｉｔｏｕｓ）・コンピューティング」や、実世界における状況（実世界の事物やユーザの位置など）を積極的に利用した拡張現実システム（Ａｕｇｍｅｎｔｅｄ　Ｒｅａｌｉｔｙ：ＡＲ）の実現が期待される。
【０００４】
ユビキタス・コンピューティングの概念は、人がどこに移動しても利用できるコンピュータの環境が同じであることである。すなわち、「いつでもどこでも」なのだから、究極のユビキタス・コンピューティングは、必ずしもコンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ）や携帯電話機などの情報端末を必ずしも必要とはしない。
【０００５】
また、拡張現実システムによれば、ユーザの位置などの実世界情報を利用したサービスを提供することができる。拡張現実感システムは、例えば手術補助や製品の組み立て手順の表示といった実用的な産業分野から、コンピュータ・エンターティンメントなどに至るまで、幅広い分野での応用が期待されている。この場合、ユーザは携帯端末を保持するだけで、システムはユーザの近傍や視界中にある実世界の事物に応じた情報を提示して、ネットワーク上にある膨大な情報を利用して日常生活のあらゆる局面を支援することができる。例えば、ショッピング・モールでカメラ付き携帯端末をかざしてＣＤショップを訪ねると、お薦めの新譜が端末上で表示される。また、レストランの看板を見ると、料理の感想が表示される。
【０００６】
【発明が解決しようとする課題】
ネットワーク上でデータ転送先となるコンピュータや周辺機器（すなわちユーザ端末などのターゲット）を指定したり、あるいはユーザの位置や実世界オブジェクトに関連した情報など実世界状況を入手しようとすると、すぐ目の前にある相手であっても、その名前（若しくは、機器固有のＩＤやネットワーク・アドレス、ホスト・ネーム、ＵＲＬ／ＵＲＩなどの資源識別子）を知る必要がある。すなわち、ユーザ操作に関して言えば、間接的な形式でしかコンピュータ間の連携がなされておらず、直感性にやや欠ける。
【０００７】
このような煩雑な手続を省略して、ユーザの識別情報を転送したり、ユーザの位置などの実世界状況を取得するための技術として、「サイバーコード（Ｃｙｂｅｒｃｏｄｅ）」などのビジュアル・コードやＲＦタグのような、実世界コンピューティングを利用した手法が提案されている。これらの手法によれば、ユーザは意識してネットワークにアクセスする必要はなく、自動的に拾われたオブジェクトのＩＤなどから、オブジェクトに関連する情報を獲得することができる。
【０００８】
ここで、サイバーコードとは、モザイク状の２次元バーコードであり、ｎ×ｍ（例えば７×７）マトリックスにセルが配列されたコード・パターン表示領域内で各セルを白又は黒の２値表現することで識別情報を付与することができる。サイバーコードの認識手順は、撮像画像を２値化するステップと、２値画像中からガイド・バーの候補を発見するステップと、ガイド・バーの位置や方向に基づいてコーナー・セルを探索するステップと、ガイド・バー及びコーナー・セルを検出したことに応答して画像ビットマップ・パターンを復号化するステップで構成される。
【０００９】
例えば、サイバーコードに対してあらかじめアプリケーションなどの機能や、機器ＩＤ、ネットワーク・アドレス、ホスト・ネーム、ＵＲＬやその他のオブジェクト関連情報を登録しておく。そして、カメラの撮影画像からサイバーコードを認識したことに応答して、コンピュータは、登録されたアプリケーションを実行させたり（例えば「メールを起動する」など）、認識されたＩＤを基に相手のネットワーク・アドレスを探索して自動的に接続を果たしたり、認識されたＵＲＬを基に資源アクセスを行ったりすることができる。
【００１０】
また、ＲＦタグは、固有の識別情報や読み書き可能な記憶領域を含んだデバイスであり、特定周波数の電波を受信したことに応答して識別情報や記憶されている情報に相当する電波を発信する動作特性を持ち、読み取り装置側で無線タグの識別情報や記憶領域に書き込まれている情報を読み出すことができる。したがって、無線タグの識別情報として機器ＩＤやネットワーク・アドレス、ホスト・ネームを持たせたり、記憶領域にＵＲＬやその他のオブジェクトに関連する情報を書き込んでおくことにより、システムでは、登録されたアプリケーションを実行させたり（例えば「メールを起動する」など）、認識されたＩＤを基に相手のネットワーク・アドレスを探索して自動的に接続を果たしたり、認識されたＵＲＬを基に資源アクセスを行ったりすることができる。
【００１１】
しかしながら、ビジュアル・コードのような視認性の識別情報を用いた場合、距離に応じてコードの大きさが変化する。すなわち、オブジェクトが遠く離れるとコードが小さくなるので、遠くのものを認識するには大きなパターンを持つコードを形成する必要がある。言い換えれば、この手法に基づく情報伝達手法は距離に対するロバスト性に欠ける。例えば、遠くにあるビルを認識するためには、ビルに巨大なコードを貼り付ける必要があり、現実的でない。
【００１２】
また、ＲＦタグの場合、ユーザはＲＦタグをタグ読み取り装置に向けたり接触させたりしなければならない。すなわち、至近距離の物体のみ認識が可能であり、遠くのものを認識することはできない。
【００１３】
また、データやコマンドを送信する簡単なシステムとして赤外線リモコンを挙げることができる。この場合、受信機は一般に単画素で構成されるので、送信機からの送信データが存在するか否かを識別するだけであり、受光信号には空間的分解能がなく、送信機のいる方向も検出できない。また、単画素がノイズとデータを混合して受信するので、ノイズとデータの分離が難しく、周波数フィルタや波長フィルタが必要となる。
【００１４】
例えば、本出願人に既に譲渡されている特願２００２−５７８３６号明細書には、発光素子を点滅されて時間的な光強度の変化からなる光学的パターンを用いたデータ通信システムについて開示されている。すなわち、所定の物理的な配置がなされた２以上のＬＥＤなどの発光部からなる送信機を実世界上の所望の場所に設置して、各発光部は所定ビット長の送信データを表す点滅パターンで明滅することによりデータ送信する。一方の受信機は、２次元受光面からなる受光部を備え、受光された点滅パターンを基に送信データをデコードするとともに、２次元受光面上での点滅位置を基にオブジェクトの空間情報を認識することができる。
【００１５】
この種の光学的パターンを伝送媒体に用いたデータ通信システムによれば、目の前のオブジェクトから比較的遠くにあるオブジェクトに至るまで距離的にロバストなデータ転送が可能である。
【００１６】
また、通信媒体では接続されていない実世界上のオブジェクトからＩＤなどの情報を入手すると同時にオブジェクトの空間的な位置や姿勢などの実世界状況を認識することができる。
【００１７】
しかしながら、送信機と受信機の相対的な位置関係が時間の経過とともに変化するような通信環境においては、受信機側では、２次元受光面上のどの光学的パターンが送信機によるものかを見失ってしまう可能性がある。特に、複数の送信機からの光学的パターンを同時に受信するような場面においては、送信機と受信機の相対位置が変化すると同じ送信機からの光学的パターンを同定することが困難になってくる。
【００１８】
例えば受信機における受光面がハンディタイプのカメラで構成され、ユーザの片手操作により送信機を捕捉しているような場合、あるいは送信機側が移動しておりこれを受信機側で追跡するような場合には、送信機と受信機の相対的な位置関係に対するロバスト性の問題は顕著となる。
【００１９】
一方、拡張現実感システムを実現するためには、実世界オブジェクトとカメラの位置関係が判ることが必要で、その位置関係が判ってはじめて、仮想物体をカメラ画像上の実世界オブジェクトにオーバーレイさせることが可能となる。そのために、画像を使ってその位置関係を算出するシステムが幾つか提案されている。その１つとして、四角形のマーカーの位置・姿勢をカメラの画像から算出する方法（中沢、中野、小松、斎藤共著「画像中の特徴点に基づく実写画像とＣＧ画像との動画像合成システム」（映像情報メディア学会誌、Ｖｏｌ．５１，　Ｎｏ．７，　ｐｐ．１０８６−１０９５，１９９７））を挙げることができる。
【００２０】
しかしながら、この手法は、紙に印刷されたマーカーを利用したり、実世界オブジェクトに貼り付けた複数のマーカーを利用するため、カメラとマーカーの距離が離れたり、マーカーの向きがカメラに対して傾く場合には、マーカーの検出が困難になり、位置姿勢の検出ができなくなるという問題がある。また環境光の変化によって認識が困難になることも多い。また、この種の方法では、四角のマーカーの各頂点の座標情報（参考文献２）など、あらかじめマーカーの位置情報が必要であり、未知の形状のものには適用できないという問題もある。
【００２１】
また、拡張現実感システムでは、仮想オブジェクトを実世界オブジェクトにオーバーレイする処理が必須の構成となる。この際、どのマーカーに対して、どういった仮想オブジェクトをオーバーレイするのかといったことを解決したシステムの１つとして、サイバーコード（Ｃｙｂｅｒｃｏｄｅ）を挙げることができる。サイバーコードは仮想オブジェクトの情報に限らず、近傍にある実世界オブジェクトに関する情報一般（実世界オブジェクトのＩＤや、ネットワーク・アドレス、ホスト・ネーム、ＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）、データ／コンテンツ、プログラム・コードやその他のオブジェクトに関連する情報）を視覚的に表現することができる。サイバーコードに関しては、例えば、Ｊｕｎ　Ｒｅｋｉｍｏｔｏ著の論文”Ｍａｔｒｉｘ：　Ａ　Ｒｅａｌｉｔｉｍｅ　Ｏｂｊｅｃｔ　Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ　ａｎｄ　Ｒｅｇｉｓｔｒａｔｉｏｎ　Ｍｅｔｈｏｄ　ｆｏｒ　Ａｕｇｍｅｎｔｅｄ　Ｒｅａｌｉｔｙ”（ＡＰＣＨＩ’９８）に詳解されている。
【００２２】
しかしながら、このサイバーコードにおいても、カメラとの距離が離れたり、カメラに対して傾いたりすると、サイバーコードの位置姿勢だけでなく、サイバーコードがもつ前記情報をカメラ側で解析することができなくなるといった問題がある。
【００２３】
本発明は上述したような技術的課題を鑑みたものであり、その主な目的は、伝送データに併せて送信元の空間的位置などの実世界状況を送受信することができる、優れたデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法を提供することにある。
【００２４】
本発明のさらなる目的は、送信機側では光学的パターンを発光することにより所望のデータを送信するとともに受信機側では光学的パターンをカメラなどの２次元平面で受光して、光学的パターンが表わす情報とともに送信元の空間的情報を併せて受信することができる、優れたデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法を提供することにある。
【００２５】
本発明のさらなる目的は、送信機と受信機の相対的な位置が変化するような通信環境であっても、光強度の時間的変化からなる光学的パターンで表わされたデータをロバストに伝送することができる、優れたデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法を提供することにある。
【００２６】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、光学的に分別可能なパターンを伝送媒体とするデータ通信システムであって、
送信機側では、送信データを構成するバイト列を光学的に分別可能な１以上のパターンとして表示することによりデータを送出し、
受信機側では、該光学的パターンを２次元受光面で受光して、その受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するとともに、光学的パターンの受光面上での位置を算出して、同じ送信機からの受光パターンを同定する、
ことを特徴とするデータ通信システムである。
【００２７】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００２８】
前記受信機側では、同じ送信機からの光学的パターンを復号化して得たバイト列を受信した順に連結して元の送信データを復元することにより、任意のデータ長からなるバイト列の送受信が可能である。
【００２９】
本発明によれば、送信機と受信機の相対的な位置が変化するような通信環境であっても、光強度の時間的変化からなる光学的パターンで表わされたデータを、送受信機間の相対位置の変化に対してロバストに伝送することができる。
【００３０】
前記受信機は、受光位置が変化する光学的パターンを追跡して、同じ送信機からの光学的パターンを同定することができる。すなわち、受信機側では、表示された光学的パターンを２次元受光面で受光して、その受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するとともに、光学的パターンの受光面上での位置を算出する。そして、送信機が出力する表示パターンの位置が画像フレーム間で変化する場合にも、受光位置の変化が所定値以下の光学的パターンを同じ送信機からの光学的パターンとして同定することにより、任意のバイト列の受信を可能にする。
【００３１】
一方、受信機の受光面上における送信機の位置が高速に変化する場合には、次の受光タイミングでは前回の検出位置の近傍では検出されず、この結果、同じパターンの系列とはみなされないために受信エラーとなってしまう。
【００３２】
そこで、送信機側の運動モデルを仮定したパターン位置の予測を行なうことでパターン検出位置をトラッキングすることにより、同じ送信機からの光学的パターンを同定するようにしてもよい。
【００３３】
しかしながら、受光タイミング毎に光学的パターンの検出位置をトラッキングするという演算が必要であり、特に、複数の送信機から送出される光学的パターンを同時に検出しなければならないような場合には、計算機負荷は過大になってしまう。
【００３４】
そこで、Ｎビットの最小送信データで光学的パターンからなるデータ伝送を行なうとともに、送信機側では、最小送信データの上位Ｌ１ビットを送信機に固有の数値（機器ＩＤ）などのための付加的情報を割り当て、残りのＬ２ビットをデータ送信（ペイロード）に割り当てるようにしてもよい。
【００３５】
このような場合、受信機側では２次元受光面上でのパターン検出位置ではなく、データ毎に含まれる機器ＩＤをキーにして、受信したパターンを対応する逐次パターン系列にマッピングしていくことにより、トラッキングを行なわずに任意のデータ長からなるバイト列の受信処理することが可能となる。
【００３６】
また、複数のデータ送信装置が存在するシステム環境下では、送信データの下位Ｌ２ビットに割り当てる付加的情報として、組となって動作するデータ送信装置に関する情報及び／又は送信機の位置情報を含めるようにしてもよい。このような場合、受信機は、前記の送信データに付加された情報を基に送信機の空間的位置を特定することができる。また、あらかじめ受信機側で登録していない送信機であっても、複数の送信データを基に受信機の位置関係を算出することが可能となる。
【００３７】
また、送信データの下位Ｌ２ビットに割り当てる付加的情報として、実世界オブジェクトに関する情報を含めるようにしてもよい。したがって、サイバーコードで実現していた実世界オブジェクトにリンクしている仮想オブジェクトの情報や、実世界オブジェクトに関する情報一般を、受信機側でロバストに受信することを可能となる。応用分野としては、例えば、３次元広告や標識、案内を携帯端末やＨＭＤに表示したり、コンピュータ・ゲームを実空間と融合して行なうことができる。
【００３８】
また、送信データの下位Ｌ２ビットに割り当てる付加的情報として、送信機自体又はその近辺の状態に関する情報を含めるようにしてもよい。ここで言う状態には、例えばボタンやスイッチ、ジョグダイヤルなどのユーザ入力装置に対するユーザの操作状況、ジャイロセンサや温度センサなどのセンサ出力に基づく送信機側の環境などが挙げられる。そして、受信機側では、付加的情報を認識して、送信機自体又はその近辺の状態に応じた処理を起動することができる。
【００３９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００４０】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４１】
本発明は、有線又は無線ネットワークなどの通信媒体では接続されていないオブジェクトからデータを取得したり、あるいは、ネットワークなどの通信媒体を経由せずにオブジェクトからデータを直接取得することができるデータ通信システムを提供するものである。
【００４２】
本発明に係るデータ通信システムは、光学的な形式で識別情報やその他のデータを担持又は伝送する光学信号と、これを捕捉する高速な２次元イメージ・センサを利用することで、空間解像度を持つとともに、遠距離でも利用可能なデータ伝送を実現する。
【００４３】
例えば、ＬＥＤのような点滅する光源を光学信号とする。したがって、ビジュアル・コードのように色の空間パターンに符号化するのではなく、距離に応じてデータが変化しない点滅パターンなどの時系列の光学信号に符号化してデータを送信することができる。
【００４４】
また、イメージ・センサは、例えばＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ　Ｍｅｔａｌ　Ｏｘｉｄｅ　Ｓｅｍｉｃｏｎｄｕｃｔｏｒ：相補性金属酸化膜半導体）センサやＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ：電荷結合素子）センサなどのように、無数の受光素子すなわち画素が２次元アレイ上に配置された構成であり、光学信号並びにその空間的情報を全画素でデコードする。イメージ・センサは、普通のカメラとしてシーンを撮影するとともに、そのイメージ・センサの視界中に配置された光学信号を長距離からでも受信することができる。
【００４５】
Ａ．システム構成
図１には、本発明の一実施形態に係るデータ通信システム１０の構成を模式的に示している。同図に示すように、このデータ通信システム１０は、実空間に散在するオブジェクト毎に設置された送信機２０Ａ，２０Ｂ，２０Ｃ…と、所定の場所に設置された、又はユーザが携行して用いる受信機５０とで構成される。
【００４６】
送信機２０は、送信データとしてのバイト列を光学的に分別可能な１以上のパターンとして表示することにより、データを送出する。一方の受信機５０は、表示された光学的パターンを受光して、その受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するとともに、光学的パターンの受光面上での位置を算出する。そして、バイト列と受光位置の組み合わせにマッピングされた処理サービスを実行する。
【００４７】
各送信機２０Ａ…は、それぞれオブジェクト表面の見え易い場所に設置されており、１又はそれ以上の発光部を備えている。発光部は、例えばマイコン制御のＬＥＤで構成される。
【００４８】
送信機２０は、所定ビット長のデジタル形式の送信データを所定の変調方式により変調して、最終的に光源の明るさの変化のパターンからなる光学信号に符号化して送信する。その際に採用する変調方式により、光源の明るさの変化パターンは異なる。例えば、ＬＥＤの点灯でビット１を表すとともに消灯でビット０を表すという形式により所定ビット（仮にＮビットとする）長の送信データに相当する点滅パターンを表示したり、あるいは明るさの変化パターンからなる光学信号を生成して表示することによって、距離に対してロバストなデータ転送を行うことができる。
【００４９】
各送信機２０Ａ…が送出する送信データとしては、オブジェクトのＩＤやそのネットワーク・アドレス、ホスト・ネーム、ＵＲＬやＵＲＩなどの資源識別子、その他のオブジェクト関連情報などが挙げられる。
【００５０】
図２には、送信機２０の内部構成を模式的に示している。同図に示すように、送信機２０は、送信データ生成部２１と、情報処理部２２と、パターン表示部２３で構成される。
【００５１】
送信データ生成部２１では、本システム１０の送信用データとして任意のバイト列を生成する。これは、例えば、ボタンやジョイスティックやトラック・ボールなどのユーザからの入力を受け付ける入力回路とＡ／Ｄ変換回路の組み合わせで構成される。あるいは、有線又は無線の通信媒体を介してインターフェース接続されたパーソナル・コンピュータのような外部機器（図示しない）から送信データを受け取ったり、不揮発性メモリから読み出された文字列やバイト列を送信データとしてもよい。
【００５２】
情報処理部２２は、送信データ生成部からデータを読み込み、後述する手順により、パターンの系列を生成する。生成したパターンは、パターン表示部２３に送られる。
【００５３】
パターン表示部２３では、光学的に分別可能な時間的又は空間的な複数のパターンを表示する。例えば、ＬＥＤの点滅を用いることで０と１のビット系列を表示する（時間的パターンの表示）ことができる。また、複数（Ｎ個）のＬＥＤを２次元の格子状に並べ、各ＬＥＤ　がオン又はオフの状態をとることによって、Ｎビットの情報を空間的パターンとして表示することができる。
【００５４】
送信機２０のデータ転送レートは、ＬＥＤを点滅させる駆動速度によって決まる。例えば、現在市販されている一般的な発光ダイオード製品であれば、４ｋＨｚ程度の周波数で点滅駆動させることができる。但し、これは、受信機５０側の受光ブロック５１が持つ応答速度の制限を受ける。
【００５５】
例えば、多数の受光ブロック５１が２次元マトリックス状に配設された受光部としてＣＣＤイメージ・センサを用いた場合、その応答速度は６０Ｈｚ程度であり、ＬＥＤの点滅データを送受信するには遅すぎる。他方、前述したＣＭＯＳイメージ・センサであれば、受光素子は１２ｋＨｚ又はそれ以上の応答速度を持つので、送信機２０側でＬＥＤを最高速で駆動させても、受信機５０側では充分にその点滅パターンを検出することができるであろう。
【００５６】
送信データを８ビット長とした場合、２５６通りのデータを送信することが可能である。８ビット長の送信データを４ｋＨｚのキャリアでマンチェスター符号化して２２ビット長のパケットとして送信する。これにより、光学信号が障害物などによってパケット送信中に隠れても、パケット単位でデータを送ることができる。
【００５７】
図３には、送信機２０内のデータ処理部２２の内部構成を示している。図示の通り、送信データを読み込むデータ入力部３１と、パターン生成の処理を実行する中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）などの演算処理回路３２　と、パターン生成用の実行プログラムをロードしたりパターン生成処理時の作業データを一時的保存するためのＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）３３と、演算処理回路３２で実行されるプログラム・コードを保存するためのＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）などのプログラム・メモリ３４と、生成されたパターンを出力するためのパターン出力部３５から構成される。また、演算処理回路３２と、入出力部３１，３５及びメモリ３３，３４はバス３６によって結ばれている。
【００５８】
なお、上述した送信機２０の構成例では、点滅データの形式でデータを送出する発光ダイオード２３を１つしか含んでいないが、２以上の発光ダイオードを備えていてもよい。このような場合、点滅パターンの組み合わせにより送信データを表現することができるので、データ転送レートが大幅に増大する。また、通信路が複数できることからバンド幅の拡大にもなる。この場合、送信機と受信機の間では、ＬＥＤの個数だけ（あるいは、受信機側の受光した画素数だけ）コネクションが張られることになる。
【００５９】
一方の受信機５０は、複数（Ｍ個）の受光ブロック５１−１，５１−２，…，５１−Ｍと、各受光ブロック５１−１…の出力を統合処理するデータ処理部６０と、データ収集結果に従って所定のサービスを実行するアプリケーション部７０とで構成される。
【００６０】
受光ブロック５１−１，５１−２…は、実際には、図４に示すように、ｎ×ｍ（＝Ｍ）の２次元マトリックス状に配置されており、全体として２次元的な受光面からなる受光部をなしている。このような受光部は、例えばＣＭＯＳイメージ・センサを用いて構成することができ、１つの画素が１つの受光ブロックに相当する。ＣＭＯＳイメージ・センサは、一般に、ＣＣＤセンサに比し駆動速度が速いので、送信機側でＬＥＤを比較的高い周波数で駆動させても、その点滅パターンを読み取ることができる。
【００６１】
図５には、受信機５０における１つの受光ブロック５１の内部構成を模式的に示している。同図に示すように、１つの受光ブロック５１は、受光量に応じた電気信号を生成する受光素子８１と、バンド・パス・フィルタ（ＢＰＦ）８２と、フェーズ・ロック・ループ（ＰＬＬ）８３と、Ａ／Ｄ変換器８４と、撮像データ保存用メモリ８５と、２値化データ保存用メモリ８６と、転送データ保存用メモリ８７と、受光ブロック５１内を統括的にコントロールして同期駆動させるための制御部８８とで構成される。
【００６２】
受光素子８１は、例えばＣＭＯＳセンサ素子で構成される。また、それ以外の受光素子駆動用、デコード用の処理モジュールをＦＰＧＡ（Ｆｉｅｌｄ　ＰｒｏｇｒａｍｍａｂｌｅＧａｔｅ　Ａｒｒａｙ）などのＩＣチップで構成することができる。撮像データ保存用メモリ８５は、受信機５０がカメラとして動作しているときに、受光素子８１による撮像データのデジタル値を一時的に保存するために使用される。
【００６３】
送信機２０側からのＬＥＤの点滅データは、図示しない集光レンズ系を介して受光部の２次元受光面上に結像され、２次元受光面上でＬＥＤに対応する位置にある受光ブロックがその点滅パターンを検出することができる。また、ＣＭＯＳイメージ・センサからなる受光部５０は、各画素すなわち受光ブロック５１−１…毎に単にＬＥＤの点滅信号を検出するだけでなく、受光面に結像された画像を撮影するカメラとしても機能する。
【００６４】
データ処理部６０は、各受光ブロック５１−１…の出力を統合的に処理する。その処理内容は、各画素すなわち受光ブロック毎に検出されたＬＥＤの点滅信号の処理（データ受信処理）と、２次元マトリックス状に配設された各受光ブロック５１−１，…，１５１−Ｍにより撮像された画像フレームの処理（撮影処理）の２種類に大別される。
【００６５】
図６には、受信機５０内のデータ処理部６０の内部構成を模式的に示している。同図に示すように、データ処理部６０は、受光部からの画像を読み込む画像入力部６１と、パターンの検出及び位置の算出、抽出パターンからのバイト列の算出を行う中央処理装置（ＣＰＵ）などの演算処理回路６２と、実行プログラムのロードや作業データの一時的な保存に使用するＲＡＭなどのメモリ６３と、演算処理回路６２で実行されるプログラム・コードを保存するためのＲＯＭなどのプログラム・メモリ６４と、認識されたパターンの種類・位置と受信したバイト列を出力するための結果出力部６５を備えている。また、演算処理回路６２と、入出力部６１，６５及びメモリ６３，６４はバス６６によって結ばれている。
【００６６】
アプリケーション部７０は、データ処理部６０によるデータ収集結果に従って所定のサービスを実行する。例えば、アプリケーション部７０は、カメラとして機能する受光部から得られた撮影画像に対して画像処理や画像認識を行なう以外に、データ収集結果を基に復号された送信機２０からの送信データに対応する処理サービスを実行する。
【００６７】
送信機２０からの送信データは、機器ＩＤ、ネットワーク・アドレス、ホスト・ネーム、ＵＲＬやＵＲＩなどの資源識別子、その他のオブジェクト関連情報などであり、アプリケーション部７０は、オブジェクトに関連した処理を行うことができる。例えば、受信した光学信号から復号されたＵＲＬを基にオブジェクトに関連する情報をＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）情報提供空間で探索したり、探索結果を表示したり、さらにカメラとして撮影した画像の上に探索結果をオーバレイ表示させたりすることができる（ＮａｖｉＣａｍ）。また、デコードされたオブジェクトの機器ＩＤやネットワーク・アドレスを基に、オブジェクトとユーザ端末とのネットワーク接続を確立させたりすることができる（ｇａｚｅ−ｌｉｎｋ）。
【００６８】
受信機５０は、例えば、ＣＭＯＳイメージ・センサを使用するデジタル・カメラをＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）などのインターフェース経由でコンピュータに接続することによって構成される。このような場合、アプリケーション部７０は、コンピュータ上で実行されるアプリケーションに相当し、デジタル・カメラから入力される撮影（シーン）画像に、光学信号から復号されたデジタル・データに基づくコンピュータ画像を重畳した合成画像を表示したりすることができる。
【００６９】
デジタル・カメラのようにシーンを撮影するイメージ・センサに受信機５０としての機能を付加的に装備することができる。例えば高速な点滅パターンとして光学信号を送信する場合、高速にサンプリング可能なデバイスであるＣＭＯＳイメージ・センサを適用する。一般的なデジタル・カメラは３０ｆｐｓで撮影しているが、これ以上高速化しても人の動画認識能力を越えてしまうことから、３０ｆｐｓでシーンを撮像する時間以外の余った時間を利用して光学信号を受信処理することにより、ＣＭＯＳイメージ・センサに付加価値を与えることができる。デジタル・カメラがシーンの撮影を行なう期間を「カメラ・モード」と呼び、それ以外の時間を利用して光学信号を受信処理する期間を「デコード・モード」と呼ぶ。
【００７０】
デコード・モードでは、例えば１２ｋＨｚのサンプリングを２００回繰り返し、送信機２０側で送出するキャリア周波数４ｋＨｚの８ビットの光学信号をイメージ・センサのすべての受光ブロックでデコードして、１５ｆｐｓで光学信号の受信・認識画像を作成することができる。この認識画像は、画像の各画素の値がデコードした結果であり、光学信号が表現する送信データと、光学信号を発する送信機の空間的情報（すなわち実世界オブジェクトが持つ実世界状況）の双方を含んである。
【００７１】
Ｂ．データ伝送手順
本実施形態に係るデータ通信システム１０は、光学的な形式で識別情報やその他のデータを担持又は伝送する光学信号と、これを捕捉する高速な２次元イメージ・センサを利用することで、空間解像度を持つとともに、遠距離でも利用可能なデータ伝送を実現する。
【００７２】
しかしながら、このようなシステムにおいては、送信機と受信機の相対的な位置関係が時間の経過とともに変化するような通信環境下では、受信機側では、２次元受光面上のどの光学的パターンが送信機によるものかを見失ってしまう可能性がある。特に、複数の送信機からの光学的パターンを同時に受信するような場面においては、送信機と受信機の相対位置が変化すると同じ送信機からの光学的パターンを同定することが困難になってくる。
【００７３】
以下では、送信機と受信機の相対位置の変化に対してロバストな光学的パターンの通信方法について提案する。
【００７４】
Ｂ−１．第１の通信方法
上述したように、本実施形態に係るデータ通信システム１０では、送信機２０は、送信データとしてのバイト列を光学的に分別可能な１以上のパターンとして表示することにより、データを送出する。
【００７５】
一方の受信機５０は、表示された光学的パターンを２次元受光面で受光して、その受光画像を認識して、光学的パターンの系列を基に送信されたバイト列を算出するとともに、光学的パターンの受光面上での位置を算出する。そして、送信機２０が出力する表示パターンの位置が画像フレーム間で変化する場合にも、その位置をトラッキングすることにより、任意のバイト列の受信を可能にする。
【００７６】
図７には、送信機２０側のデータ送信処理手順をフローチャートの形式で示している。
【００７７】
まず、送信すべきデータ（バイト列）の１フレーム分のデータをデータ入力部３１より読み込む（ステップＳ１）。
【００７８】
次いで、前ステップで取得したデータを、図８に示すようなデータ・フレームの形式に変換して、メモリ３３上に一時保存する（ステップＳ２）。
【００７９】
次いで、生成したデータ・フレームをメモリ３３から読み出して、パターン表示部３５において、ＬＥＤ光の点滅や光の強弱の変化など光学的に分別可能なパターンを表示することによって、データ送出する（ステップＳ３）。
【００８０】
次いで、データ送信を継続するか又は中止するか判定をする（ステップＳ４）。そして、データの送信を続ける場合には、ステップＳ１へ戻り、上述と同様の光学的パターンの表示処理を行なう。
【００８１】
図８には、本実施形態に係るデータ通信システム１０においてデータ伝送に使用されるデータ・フレームの形式を示している。
【００８２】
このデータ・フレームの先頭には、フレーム開始を示すバイト列（開始コード）が配置される。このバイト列は、ここ以外の場所では生じない固有のバイト列が使用される。
【００８３】
次に、送信データ（ペイロード）が所定の長さで格納される。ペイロードを可変長にする場合には、先頭にペイロード（又はフレーム）のサイズを格納するようにすればよい。
【００８４】
データ・フレームの最後尾には、送信したデータ列に誤りがないかをチェックするためのチェックサムを付加する。但し、このチェックサムは必須ではなく、省略しても構わない。また、ペイロードやチェックサムに、開始コードと同じバイト列が生じる場合には、他のバイト列に変換する必要がある。
【００８５】
ここで、上記の開始コードがデータ部とチェックサムに生じないようにするための変換方法の一例を説明しておく。この例では、開始コードがＡ１，Ａ２，Ａ３，Ａ４という最小送信データの系列であるとし、Ａ１からＡ４は互いに異なる値である。
【００８６】
まず、ペイロードとチェックサム部のデータを順に調べる。そして、Ａ１、Ａ２、Ａ３というパターンが見付かったら、これをＡ１、Ａ２、Ａ３、Ｂというパターンに置き換える。但し、ＢはＡ１からＡ４とは異なる値である。この変換により、開始コードはペイロードやチェックサムには生じない系列となる。
【００８７】
次いで、逆変換の方法について述べる。逆変換では、データの先頭から順にＡ１、Ａ２、Ａ３、Ｂという系列を探し、これをＡ１、Ａ２、Ａ３という系列に変換する。この逆変換により、データ列は変換前のデータに戻る。
【００８８】
図９には、図７に示したデータ送信処理のうち、ステップＳ３におけるデータ・フレーム生成の詳細な処理手順をフローチャートの形式で示している。
【００８９】
まず、何個のパターンを送信したかを計数するパターン・カウンタｋを、初期値０に設定する（ステップＳ１１）。
【００９０】
次いで、データ・フレーム用のメモリ３３から、ｋ番目の最小送信データを読み込んで、表示用のパターンに変換する（ステップＳ１２）。最小送信データは、変換テーブルを用いて、表示パターンに変換される。
【００９１】
次いで、パターンをパターン表示部２３に転送して、光の点滅や強弱の変化など光学的に分別可能なパターンの表示によってデータ送出を行なう（ステップＳ１３）。
【００９２】
次いで、パターン・カウンタｋを１だけ増分する（ステップＳ１４）。そして、データ・フレーム内のデータをすべて送信したかをチェックし（ステップＳ１５）、送信していないデータがあれば、ステップＳ１２へ戻り、次の最小送信データ単位の送出を行なう。
【００９３】
このようにして送信機から表示パターンを切り替えることにより、バイト列を送信することができる。次に、受信機でのデータの受信方法について説明する。
【００９４】
図１０には、パターン表示部２３から光学的に分別可能なパターンの形式で送出されたデータを受信機５０側で受信処理するための手順をフローチャートの形式で示している。この受信処理は、実際には、データ収集部６０が受光部５０による受光画像を認識処理することによって実現される。
【００９５】
まず、画像の読み込みとパターンの認識を行なう（ステップＳ２１）。パターンの認識方法は、表示パターンとして何を用いるかによって異なる。本実施形態では、受光画像上に存在するすべての光学的パターンと、各光学的パターンの位置が検出される。
【００９６】
次いで、認識されたパターンをＮビットのバイト列（最小送信データ）に変換することにより送信データを復元する（ステップＳ２２）。この変換テーブルは、送信機２０側で最小送信データからパターンに変換するために使用した変換テーブル（上述）の逆変換である。
【００９７】
次いで、受光面で受光したすべてのパターンを作業用メモリ５４内に設けられたデータ・バッファに登録する（ステップＳ２３）。登録方法の詳細については後述に譲る。
【００９８】
次いで、終了判定を行なう（ステップＳ２４）。そして、データの受信を続ける場合には、ステップＳ２１に戻って、上述と同様の最小送信データ単位での送信データの復号処理を続行する。
【００９９】
図１１には、作業メモリ５４内に設けられた受信データ・バッファの構成を模式的に示している。同図を参照しながら、ステップＳ２３における受信パターンの登録方法について説明する。
【０１００】
データ・バッファは、認識されたパターンの系列毎、すなわち送信機毎にエントリが用意される。図１１に示すように、各エントリは、受光面上でパターンが検出された位置（Ｘ，Ｙ）と、受光パターンを変換して得たバイト系列の組み合わせで構成される。
【０１０１】
受光面上では、時々刻々と光学的パターンが受光される。そして、変換テーブルを用いて光学的パターンを変換してバイト系列を得ると、これを該当するエントリに登録する。ここで言う登録は、バイト系列に逐次連結していくことを意味する。バイト系列の連結により最終的に生成されたバイト系列が、該当する送信機から送られたデータとなる。
【０１０２】
図１２には、受信機５０側で受光した光学的パターンをバイト系列に追加登録するための処理手順をフローチャートの形式で示している。以下では、認識されたパターンの位置を（Ｘｐ，Ｙｐ）とし、認識されたパターンを変換した最小送信データをＢｐとする。
【０１０３】
まず、バッファ・インデックスｋを初期値０に設定する（ステップＳ３１）。
【０１０４】
次いで、ｋ番目のデータ・バッファの位置（Ｘ（ｋ），Ｙ（ｋ））の近傍に、検出パターンが存在するかを調べる（ステップＳ３２）。これは、適当な閾値ｄを決め、（Ｘ（ｋ），Ｙ（ｋ））と光学的パターンの受光位置（Ｘｐ，Ｙｐ）の間の距離がｄ以下であったら近傍とみなす。
【０１０５】
近傍に検出パターンが存在すれば次ステップＳ３３へ進み、存在しなければ次ステップＳ３３をスキップしてステップＳ３４へ進む。
【０１０６】
ステップＳ３３では、ステップＳ３２で（Ｘ（ｋ），　Ｙ（ｋ））の近傍に存在すると判定されたパターンのうち最も点（Ｘ（ｋ），　Ｙ（ｋ））に近いパターンの最小送信データをｋ番目のデータ・バッファに追加し、その検出パターンの位置を（Ｘ（ｋ），　Ｙ（ｋ））に代入する。次いで、ステップＳ３４では、バッファ・インデックスｋを１だけ増分する。
【０１０７】
次いで、すべてのバッファについて、近傍のチェックが終了したかを判定する（ステップＳ３５）。終了した場合には次ステップＳ３６へ進み、終了していない場合にはステップＳ３２へ戻り、バッファ中の送信データの登録処理を継続する。
【０１０８】
ステップＳ３６では、上記のステップＳ３２〜Ｓ３４の処理によりデータが追加されなかったバッファにＮＵＬＬ文字を追加する。このＮＵＬＬ文字は、データが欠落したことを示すために用いられる。ここで単純に、データが追加されなかったバッファを削除することも考えられる。
【０１０９】
そして、どのバッファにも追加されなかった、新たに認識された入力データをバッファに追加して（ステップＳ３７）、本処理ルーチン全体を終了する。
【０１１０】
データ・バッファからの送信バイト列のデコードは以下のように行う。
【０１１１】
まず、データ・バッファのペイロードを先頭から順に取り出していき、図８に示した開始コードを探す。開始コードが発見されたら、その後ろのデータを所定の長さだけ読み込んだ後、チェックサムを読み込む。
【０１１２】
次いで、開始コードがデータとチェックサム部に生じないように行った変換について、逆変換を施して、元のデータを得る。最後に、チェックサムを用いてデータ部を正しく受信することができたかどうかを確認する。
【０１１３】
受光した光学的パターンに対し上述したような処理を行なうことにより、送信装置と受信装置の相対的な位置が変化した場合にも、パターンの位置をトラッキングすることにより、送信されるデータ列を受信することができる。
【０１１４】
また、パターンの受光面上での位置の変化が非常に大きい場合や、複数のパターンが受光面上で重なり、トラッキングに失敗する場合には、チェックサムを用いることで、正しい受信ができたかどうかをチェックすることができる。
【０１１５】
Ｂ−２．第２の通信方法
バイト列を光学的に分別可能な１以上のパターンとして表示することによりデータを伝送する通信システムにおいては、光学的パターンの受光位置の変化を追跡して、同じ送信機からの光学的パターンを同定することができる。
【０１１６】
上記のＢ−１項では、受光位置の変化が所定値以下の光学的パターンを同じ送信機からの光学的パターンとして同定する。すなわち、ｋ番目のデータ・バッファの位置（Ｘ（ｋ），　Ｙ（ｋ））の近傍で検出された光学的パターンをデータ・バッファのパターン系列に逐次追加していく。
【０１１７】
しかしながら、送信機が高速で移動する場合には、次の受光タイミングでは前回の検出位置の近傍では検出されず、この結果、同じパターンの系列とはみなされないために受信エラーとなってしまう。
【０１１８】
そこで、本項では、送信機側の運動モデルを仮定したパターン位置の予測を行なうことでパターン検出位置をトラッキングするという通信方法を適用する。
【０１１９】
この場合、図１２に示したフローチャートのステップＳ３２において、データ・バッファに保存された位置（Ｘ（ｋ），Ｙ（ｋ））の近傍に検出されたパターンが存在するかどうかをチェックするという処理を下記のサブルーチンに置き換えることにより、パターン位置の予測を適用することができる。
【０１２０】
以下では、時刻ｔのパターンの位置をｐ（ｔ）＝　（ｘ（ｔ），ｙ（ｔ））と表したとき、パターンの運動モデルを下式で表わす。
【０１２１】
【数１】
ｐ（ｔ）＝ｆ（ｐ（ｔ−１）；ｗ）　　…（１）
【０１２２】
但し、ｆは時刻ｔ−１のパターンの位置から、時刻ｔのパターンの位置を算出する関数である。また、ｗは関数ｆのｍ次元パラメータベクトル（ｍ≧１）であるとする。
【０１２３】
図１３には、運動モデルに基づいてパターン位置を検出するために使用されるデータ・バッファの形式を示している。これは図１１に示したデータ・バッファの各エントリに対して検出パターンの運動モデルを記述する運動パラメータｗが追加された構成となっている。
【０１２４】
また、図１４には、運動モデルに基づいた予測を行なうための処理手順をフローチャートの形式で示している。但し、運動パラメータｗについては、受信プロセスの初期化時に、適当な値に初期化されているものとする。
【０１２５】
まず、現在のパターンの位置を、現在のデータ・バッファの位置と運動パラメータを基に、上記の式（１）を用いて推定する（ステップＳ４１）。
【０１２６】
次いで、前ステップＳ４１で求めた推定位置の近傍に検出されたパターンが存在するかを調べる（ステップＳ４２）。
【０１２７】
推定位置の近傍において検出パターンが存在する場合には、次ステップＳ４３へ進む。また、推定位置近傍に検出パターンが存在しない場合には、ステップＳ４３をスキップして、ステップＳ４４へ進む。
【０１２８】
ステップＳ４３では、ステップＳ４２において推定位置の近傍にあると判定されたパターンの位置を用いて、運動パラメータｗを更新する。この更新には、例えば最尤推定を用いることができる。
【０１２９】
次いでステップＳ４４において、データ・バッファのパターン位置の更新を行う。
【０１３０】
図１５には、運動モデルを用いて光学的パターンの検出位置をトラッキングするメカニズムを図解している。
【０１３１】
同図に示すように、時刻ｔ０、ｔ１、ｔ２において光学的パターンを検出した位置情報を基に運動パラメータを推測する。そして、この運動パラメータを用いて次のパターン検出時刻ｔ３での予測位置１８１を推定する。
【０１３２】
推定された予測位置１８１の周りで近傍探索を行なうことにより、近傍探索範囲は参照番号１８２で示される範囲となる。
【０１３３】
一方、上記のＢ−１項で説明した方法によれば、次の受光タイミングでは参照番号１８３で示される近傍探索範囲において光学的パターンの探索が行なわれる。したがって、光学的パターンすなわち送信機が相対的に大きく移動している場合には、時刻ｔ３においてパターンを検出することはできない。
【０１３４】
本項で説明した方法によれば、適当な運動モデルを用いて光学的パターンの運動を推定するので、単純な近傍の探索に比べて、トラッキングの精度を上げることが可能になる。また、この手法は、画像フレーム間でのパターンの位置の変化が大きい場合に有効である。
【０１３５】
上述した例では、１つのパターンに対して１つの運動パラメータを用いて推定を行った。同一の物理オブジェクトに複数の送信機が取り付けられている場合には、それらの送信機のパターンについて同一の運動モデルを適用することにより推定精度を一様に向上させることができる。また、送信機はすべて固定されていて、受信機側が運動するような場合には、推定すべき運動パラメータは受信機の運動パラメータとなり、すべてのパターンについて共通となる。このような場合、受信機に姿勢センサや加速度センサを搭載して、これらのセンサ出力を基に運動モデルを算出することができる。
【０１３６】
また、光学的パターンのトラッキングのために使用する運動モデルは、本システムが実際に適用される条件によって変更してもよい。例えば、加速度一定を仮定するモデルや、対象が平面上にある拘束条件を加えたモデルなどが考えられる。また、複数の送信機に共通の運動パラメータが適用できる条件では、対象オブジェクトの剛体運動を仮定したり、ロボットなどのように複数の剛体が関節によって結合されたモデルを仮定したりすることができる。また、推定方法としてカルマン・フィルタなどを適用することが可能である。
【０１３７】
Ｂ−３．第３の通信方法
上記のＢ−１及びＢ−２の各項で説明した方法によれば、バイト列を光学的に分別可能な１以上のパターンとして表示することによりデータを伝送する通信システムにおいて、受光面上で移動する光学的パターンをトラッキングすることにより、受光位置が変化する場合であっても同じ送信機からの光学的パターンを同定することができる。この結果、送信機と受信機の相対的な位置が変化するような通信環境であっても、光強度の時間的変化からなる光学的パターンで表わされたデータをロバストに伝送することができる
【０１３８】
しかしながら、このような場合、受光タイミング毎に光学的パターンの検出位置をトラッキングするという演算が必要である。特に、複数の送信機から送出される光学的パターンを同時に検出しなければならないような場合には、計算機負荷は過大になってしまう。
【０１３９】
そこで、本項では、トラッキングを行なうことなく、任意のデータ列を送受信する通信方法を適用する。この方法では、Ｎビットの最小送信データでデータ伝送が行なわれ、最小送信データの上位Ｌ１ビットを送信機に固有の数値（機器ＩＤ）を割り当て、残りのＬ２ビットをデータ送信に割り当てる。
【０１４０】
送信機２０におけるデータ送信手順は、１フレーム分のデータの生成・表示以外の処理は図７に示した処理手順と同様である。図１６には、１データ・フレームを送信するための処理手順をフローチャートの形式で示している。
【０１４１】
まず、送信データ・ポインタ変数（ｐｔｒ）をデータ・フレーム用メモリの先頭アドレスに初期化する（ステップＳ５１）。
【０１４２】
次いで、Ｎビットの最小送信データ用メモリＤ１を確保して（ステップＳ５２）、Ｄ１の上位Ｌ１ビットを送信機にユニークな機器ＩＤの値に設定する（ステップＳ５３）。
【０１４３】
次いで、ポインタｐｔｒからＬ２ビットのデータをＤ１の下位Ｌ２ビットにコピーする（ステップＳ５４）。そして、Ｄ１を表示用パターンに変換し、変換したパターンをパターン表示部２３へ送信することにより、パターン表示すなわちデータ出力を行なう（ステップＳ５５）。
【０１４４】
次いで、ポインタｐｔｒをＬ２だけ進め（ステップＳ５６）、ポインタｐｔｒがデータ・フレーム用メモリ内に位置しているかをチェックすることにより、データ・フレームのデータをすべて送信したかをチェックする（ステップＳ５７）。送信が完了していなければ、ステップＳ５３へ戻り、データ送信処理を続ける。
【０１４５】
次いで、受信機５０側でのデータ受信処理について説明する。データ受信の手順は、受信手順についても、図１０に示した受信手続きと同様の手順を実行する。但し、データ・バッファの形式とデータ・バッファへの登録手順が上記とは相違する。
【０１４６】
トラッキングを行なわずに受信を行なう本方法では、送信されるパターンの一部には送信機毎にユニークな機器ＩＤが含まれている。したがって、図１１に示したデータ・バッファのようにパターンの位置を保存しておく必要はない。図１７には、本方法で使用するデータ・バッファの形式を模式的に示している。同図に示すように、２次元受光面上でのパターン検出位置ではなく、データ毎に含まれる機器ＩＤをキーにして、受信したパターンを対応するエントリのパターン系列にマッピングしていけばよい。
【０１４７】
図１８には、このデータ・バッファへのデータ登録手順をフローチャートの形式で示している。
【０１４８】
まず、検出パターン・インデックスｋを０に初期化する（ステップＳ６１）。そして、検出されたｋ番目のパターンを変換して得られた最小送信データについて、上位のＬ１ビットを機器ＩＤ用メモリＤｅｖＩＤに保存し、下位Ｌ２ビットをデータ用メモリＤに保存する（ステップＳ６２）。
【０１４９】
次いで、ＤｅｖＩＤが既にデータ・バッファに登録されているかどうかを調べる（ステップＳ６３）。
【０１５０】
ＤｅｖＩＤが未だ登録されていない場合には、データ・バッファにＤｅｖＩＤをキーとするエントリを新たに生成する（ステップＳ６４）。
【０１５１】
次いで、ＤｅｖＩＤをキーとするデータにＤを追加する（ステップＳ６５）。
【０１５２】
次いで、検出パターン・インデックスｋを１だけ増分する（ステップＳ６６）。そして、ｋの値を基にすべての検出パターンについてデータの登録が終了したかを調べる（ステップＳ６７）。まだ終了していない場合には、ステップＳ６２へ戻り、データの登録を続行する。
【０１５３】
上記の受信手順からも分かるように、最小単位データ毎に送信機の機器ＩＤを付加することにより、受信機側ではパターン検出位置のトラッキングが不要となるので、高速且つロバストなデータの送信が可能になる。
【０１５４】
但し、すべての最小送信データに機器ＩＤを含めることが必要になり、送信データ中のペイロードの割合が低下するので、トラッキングを行なう場合に比しデータの伝送効率は劣化する。しかし、送信機の数が比較的少ない場合には、Ｌ１のデータ長が小さい数となるので、伝送効率の劣化は少ない。
【０１５５】
また、この方法では、使用する送信機が限られている場合には、パターンの検出も簡略化することができる。すなわち、パターン検出中に、上位Ｌ１ビットだけを認識し、その機器ＩＤが対象としている送信機でなければ、下位Ｌ２ビットに関しては処理を行う必要がない。また、機器ＩＤが対象としている送信機でないパターンに関してはパターンの位置検出も行う必要はない。
【０１５６】
また、特殊な場合として、送信バイト列がＬ２ビット以下である場合がある。この場合には、最小送信データの下位Ｌ２ビットに送信したいバイト列を入れればよく、データ・フレームを作成したり、エンコード／デコードの処理をしたりする必要がなくなる。例えば、送信機に付けられたボタンのオン・オフ情報を送信したい場合には、このような方法により、容易にデータを送信することができる。
【０１５７】
Ｃ．送受信機間の位置関係の算出
光学的信号をデータの伝送媒体とする本発明に係るデータ通信システムによれば、カメラからなる受信機側では、画像とともに送信機からの光学的信号とその画像上の位置（Ｘ，Ｙ）を取得することができる。このような仕組みを利用することにより、ある平面に配置された複数の送信機又は光学的信号が見えたときに、これら送信機が形成する平面とカメラすなわち受信機との位置関係を算出することができる。
【０１５８】
Ｃ−１．位置関係の算出方法
まず、座標が既知となる４つの点を基に位置関係を求める方法について説明する。この計算方法の原理自体については、例えば中沢、中野、小松、斎藤共著「画像中の特徴点に基づく実写画像とＣＧ画像との動画像合成システム」（映像情報メディア学会誌、Ｖｏｌ．５１，　Ｎｏ．７，　ｐｐ．１０８６−１０９５，１９９７）にも詳解されている。
【０１５９】
図１９に示すように、カメラ座標系Ｃ（ｘｃ，ｙｃ，ｚｃ）とカメラ画像平面である画面座標系（Ｘ，Ｙ）、ワールド座標系（光ビーコンの座標系）Ｗ（ｘｗ，ｙｗ，ｚｗ）と定義する。ここで、これらの座標系の関係は、以下の式（２）、（３）、（４）で表される。
【０１６０】
【数２】
2004056343.tif 000003
【０１６１】
ここで、Ｕはカメラ・パラメータ行列であり、ワールド座標系Ｗとカメラ座標系Ｃの変換行列である。４つの光ビーコンからワールド座標系Ｗでの座標が既知（本実施形態では、光ビーコンの点滅情報からカメラはこれらの座標を得ることができる）であれば、このＵを求めることができる。カメラ・パラメータ行列Ｕを求めることは、ＩＤカメラと４つの光ビーコンとの位置関係を求めることになり、光ビーコンに対するカメラの相対位置及び姿勢が求まることを意味する。また、上記の式（４）から、焦点距離ｆが求まれば、これを画面座標系（Ｘ、Ｙ）に変換できることから、画像上で光ビーコンの位置に合わせて、３次元的な相対位置にＣＧなどの３次元オブジェクトをオーバーレイさせることが可能である。
【０１６２】
ここで、光ビーコンが平面上に置かれているすると、Ｚｗ＝０とすることができる。したがって、上記の式（３）は、以下の式（５）のようになる。
【０１６３】
【数３】
2004056343.tif 000004
【０１６４】
また、行列Ｕはスケール・ファクタを含んでいるので、ｕ３４を１とすることで、未知数は８つになる。ここで、ＩＤカメラで観察された４点の特徴点座標　ｐｉ＝（ｘｉ，ｙｉ，０）（ｉ＝１．．４）と、それぞれに対応する画面平面上に投影された点Ｐｉ＝（Ｘｉ，Ｙｉ）が既知であるので、これらを（５）式に代入することで、Ｕが求まることになる。以上で、カメラ座標系Ｃとワールド座標系Ｗの位置関係が求めることができる。
【０１６５】
次に、画面座標系（Ｘ、Ｙ）とワールド座標系Ｗとの位置関係を求めるために、焦点距離ｆを求める方法について説明する。ここで、焦点距離ｆを行列Ｕの要素に含めた形である（６）式のように変形する。すなわち、
【０１６６】
【数４】
2004056343.tif 000005
【０１６７】
したがって、行列Ｖと行列Ｕの関係は、次式のような関係となる。
【０１６８】
【数５】
2004056343.tif 000006
【０１６９】
一方、（５）式は、（６）式のように変形できる。ここで、ｕ１，ｕ２，ｕ４は３次元空間を張る基底直交ベクトルである。
【０１７０】
【数６】
2004056343.tif 000007
【０１７１】
基底ベクトルであるから、次の２式の関係が成り立つ。
【０１７２】
【数７】
2004056343.tif 000008
【０１７３】
したがって、ｆは、式（８）と式（１０）の関係から、以下の通りとなる。
【０１７４】
【数８】
2004056343.tif 000009
【０１７５】
また、式（８）と式（１１）の関係から、以下の通りとなる。
【０１７６】
【数９】
2004056343.tif 000010
【０１７７】
そして、上記の式（１２）又は式（１３）から、ｆ値を求めることができる。
【０１７８】
以上、画面座標系（Ｘ、Ｙ）とワールド座標系Ｗの関係を求めることができた。これにより、ワールド座標系Ｗで規定される３次元オブジェクトを、画面上にオーバーレイすることが可能となる。
【０１７９】
なお、（１２）式と（１３）式から求められるｆ値は、光ビーコンの検出誤差から必ずしも一致しないが、中沢外著の論文（前述）には、その２式を利用した評価関数を最小にするような特徴点座標を求めることで、検出誤差を抑制する手法が説明されている。
【０１８０】
また、３点の送信機の座標が既知である場合も、対象物体上の３点の位置から３次元位置及び姿勢を計測することが可能である。例えば、Ｒｏｂｅｒｔ　Ｍ．　Ｈａｒａｌｉｃｋ、　Ｃｈｕｎｇ−ｎａｎ　Ｌｅｅ、　Ｋａｒｓｔｅｎ　Ｏｔｔｅｎｂｅｒｇ、Ｍｉｃｈａｅｌ　Ｎｏｌｌｅ共著の論文“Ａｎａｌｙｓｉｓ　ａｎｄ　Ｓｏｌｕｔｉｏｎｓ　ｏｆ　Ｔｈｅ　Ｔｈｒｅｅ　Ｐｏｉｎｔ　Ｐｅｒｓｐｅｃｔｉｖｅ　Ｐｏｓｅ　Ｅｓｔｉｍａｔｉｏｎ　Ｐｒｏｂｌｅｍ”（Ｉｎ　Ｐｒｏｃｅｅｄｉｎｇｓ　ｏｆ　ｔｈｅ　Ｃｏｎｆｅｒｅｎｃｅ　ｏｎ　Ｃｏｍｐｕｔｅｒ　Ｖｉｓｉｏｎ　ａｎｄ　Ｐａｔｔｅｒｎ　Ｒｅｃｏｇｎｉｔｉｏｎ，　Ｍａｕｉ，　Ｈａｗａｉｉ，　ＵＳＡ，　ｐｐ．５９２−５９８，　１９９１）を参照されたい。
【０１８１】
Ｃ−２．光学的信号に基づく位置関係の算出方法
次いで、カメラで捉えた４つの光学的信号を基に位置関係を求めるための具体的なシステム構成について説明する。なお、３つの光学的信号を用いる場合も、Ｒｏｂｅｒｔ外著の論文（前述）に記載の算出方法により、同様に実現可能である。
【０１８２】
図２０には、カメラで捉えた４つの光学的信号を基に位置関係を求めるためのシステム構成を模式的に示している。
【０１８３】
３次元計測部は、コンピュータ部とＩＤカメラ部から成り、実世界オブジェクト１の近傍に設置された光ビーコン１〜４との位置関係を求める。実世界オブジェクト２にも光ビーコン５〜８が装着されており、ＩＤカメラ部は、この光ビーコン５〜８の位置計測も可能である。また、２つの実世界オブジェクトは厳格に区別される。
【０１８４】
コンピュータ部は、例えば図２１に示すような構成が考えられる。ここで、ＣＰＵはＲＯＭに格納されたプログラムに従って処理を行い、ＲＡＭはそのときのワーキング用メモリとして機能する。また、カメラＩ／Ｆは、ＩＤカメラとデータの送受信を行うインタフェースであり、有線、無線の通信方式、どれでもよいが、その通信方式に従ったインタフェース回路である。通信方式としては、例えば、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＩＥＥＥ１３９４、ＵＳＢ１．０、ＵＳＢ２．０、ＩＥＥＥ８０２．１１Ｘなどが挙げられる。モニタＩ／Ｆと通信Ｉ／Ｆについては、後に説明する。
【０１８５】
図２２には、カメラで捉えた４つの光学的信号（光ビーコン）を基に位置関係を求めるための処理手順をフローチャートの形式で示している。このような処理動作は、実際には、コンピュータ部内のＣＰＵがＲＯＭに格納されているプログラムを実行するという形態で実現される。
【０１８６】
まず、ＩＤカメラが光ビーコンを認識する（ステップＳ１）。ＩＤカメラは、撮影した画像と、光ビーコンの送信データおよびその画像上の座標を出力することができる。
【０１８７】
次いで、光ビーコンの点滅データから、ＩＤカメラは送信データを抽出する。（ステップＳ２）。その送信データのことを本明細書ではＩＤ情報と呼ぶが、このＩＤ情報にはいろいろな情報を含めることが可能である。ここでは、ＩＤ情報を、ビーコンＩＤ、座標情報とする（図２３を参照のこと）。
【０１８８】
ビーコンＩＤとは、光ビーコン固有のＩＤであり、グループの光ビーコンは同じＩＤとする。ここでは、光ビーコン１〜４は同じビーコンＩＤ、光ビーコン５〜８は同じビーコンＩＤ、光ビーコン１〜４と５〜８とでは、ビーコンＩＤは異なる。したがって、このビーコンＩＤを調べることによって、光ビーコン１〜４と光ビーコン５〜８を区別し、さらにそれぞれのグループがペアであることがわかる。すなわち、このビーコンＩＤは、ペア情報を含んだものになっている。
【０１８９】
座標情報とは、各光ビーコンのワールド座標系Ｗにおける座標を示す。前記ｐｉ＝（ｘｉ，ｙｉ，０）（ｉ＝１．．４）に相当する。これらを、実座標（単位系もメートルなど既知のものにする）にしておくことで、３次元的な位置関係が実寸で算出することができる。また、より範囲の広い座標系で表しておくことにより、より広範な範囲でのカメラの位置を算出することも可能である。
【０１９０】
次いで、ＩＤカメラから出力される光ビーコン１〜４の画像上の座標を取得する（ステップＳ３）。光ビーコン１〜４のビーコンＩＤと座標情報とともに、この画像上の座標を取得することで、コンピュータ部により３次元位置関係を算出可能になる。
【０１９１】
そして、上記の式（５）に光ビーコンのワールド座標系の位置情報ｐｉ＝（ｘｉ，ｙｉ，０）（ｉ＝１．．４）と画像上の座標Ｐｉ＝（Ｘｉ，Ｙｉ）（ｉ＝１．．４）を代入することで、カメラ・パラメータ行列Ｕを算出する（ステップＳ４）。このようにして、ＩＤカメラと４つの光ビーコンの３次元的な位置関係を求めることができる訳である。
【０１９２】
また、図２４には、カメラで捉えた４つの光学的信号（光ビーコン）から３次元位置関係算出して、３次元仮装オブジェクトを実世界の撮影画像にオーバーレイ表示するための処理手順をフローチャートの形式で示している。このような処理動作は、実際には、コンピュータ部内のＣＰＵがＲＯＭに格納されているプログラムを実行するという形態で実現される。
【０１９３】
まず、ＩＤカメラが光ビーコンを認識する（ステップＳ１１）。ＩＤカメラは、撮影した画像と、光ビーコンの送信データおよびその画像上の座標を出力することができる。
【０１９４】
次いで、光ビーコンの点滅データから、ＩＤカメラは送信データを抽出する。（ステップＳ１２）。その送信データのことを本明細書ではＩＤ情報と呼ぶが、このＩＤ情報にはいろいろな情報を含めることが可能である。ここでは、ＩＤ情報を、リンク先情報とビーコン番号とする（図２５を参照のこと）。
【０１９５】
ここで言うリンク先情報は、ＩＰアドレスやＵＲＬなどネットワーク上の場所を指し示す情報である。また、ビーコン番号は、同じリンク先情報を持つ光ビーコンが複数あった場合に、その光ビーコンであるかどうかを区別するための番号である。ここでは、光ビーコン１〜４は同じリンク先情報を持つがビーコン番号はそれぞれ異なり、光ビーコン１が１、光ビーコン２が２、光ビーコン３が３、光ビーコン４が４とする。
【０１９６】
次いで、ＩＤカメラ付きネットワーク端末は、先行ステップＳ１２で得たリンク先情報を基に、ネットワーク・インタフェース部を使って、ネットワーク網を介してサーバに接続し、以下のデータを取得する（ステップＳ１３）。
【０１９７】
（１）オーバレイするオブジェクト・データ（３次元オブジェクト）及びその座標、画像合成パラメータ：
勿論、３次元オブジェクト以外にも画像、ビデオ、テキストやこれらの組み合わせであってもよい。オブジェクト・データは、配置するために、ワールド座標系Ｗの位置データを含む。画像合成パラメータとしては、例えば、α値がある。これにより、オーバーレイ表示したときに、オブジェクトに透明度を持たせることができ、オブジェクトの向こうにカメラ画像が薄く見えるようにするといった効果を持たせることが可能となる。
（２）ビーコン番号に対応するワールド座標情報：
光ビーコン１〜４に対応する座標情報ｐｉ＝（ｘｉ，ｙｉ，０）　（ｉ＝１．．４）を取得する。
【０１９８】
次いで、ＩＤカメラから出力される光ビーコン１〜４の画像上の座標を取得する（ステップＳ１４）。光ビーコン１〜４のビーコンＩＤと座標情報とともに、この画像上の座標を取得することで、コンピュータ部により３次元位置関係を算出可能になる。
【０１９９】
次いで、上記の式（５）に光ビーコンのワールド座標系の位置情報ｐｉ＝（ｘｉ，ｙｉ，０）（ｉ＝１．．４）と画像上の座標Ｐｉ＝（Ｘｉ，Ｙｉ）（ｉ＝１．．４）を代入することで、カメラ・パラメータ行列Ｕを算出する（ステップＳ１５）。
【０２００】
次いで、上記の式（１２）又は式（１３）を適用して，焦点距離ｆを算出する（ステップＳ１６）。ここで，検出誤差を小さくするために、中沢外著の論文（前述）に記載の手法を利用してもよい。
【０２０１】
次いで、コンピュータ部は、ＩＤカメラから撮影画像を取得する（ステップＳ１７）。
【０２０２】
次いで、先行ステップＳ１５で求めたカメラ・パラメータ行列Ｕを用いて，上記の式（４）及び（５）から３次元オブジェクト・データを画面座標系（Ｘ，Ｙ）に変換する（ステップＳ１８）。
【０２０３】
次いで、ＩＤカメラから得た画像を先行ステップＳ１８で求めた３次元オブジェクトと画像合成して、表示部に表示出力する（ステップＳ１９）。ここで、もしα値がある場合には、αブレンディングを行なった後に表示するようにしてもよい。
【０２０４】
以上で、ＩＤカメラと４つの光ビーコンの３次元的な位置関係を求め、その光ビーコンに対してある相対位置に３次元オブジェクトを置いたように、カメラ画像に３次元オブジェクトを画像合成することができる訳である。
【０２０５】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０２０６】
【発明の効果】
以上詳記したように、本発明によれば、伝送データに併せて送信元の空間的位置などの実世界状況を送受信することができる、優れたデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法を提供することができる。
【０２０７】
また、本発明によれば、送信機側では光学的パターンを発光することにより所望のデータを送信するとともに受信機側では光学的パターンをカメラなどの２次元平面で受光して、光学的パターンが表わす情報とともに送信元の空間的情報を併せて受信することができる、優れたデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法を提供することができる。
【０２０８】
また、本発明によれば、送信機と受信機の相対的な位置が変化するような通信環境であっても、光強度の時間的変化からなる光学的パターンで表わされたデータをロバストに伝送することができる、優れたデータ通信システム、データ送信装置及び方法、並びにデータ受信装置及び方法を提供することができる。
【０２０９】
カメラとオブジェクトの３次元的な位置関係を計測する場合、従来の手法ではは、紙に印刷されたマーカを利用したり、実世界オブジェクトに貼り付けた複数のマーカを利用するため、カメラとマーカの距離が離れたり、マーカの向きがカメラに対して傾く場合には、マーカの検出が困難となり位置姿勢の検出ができなくなるという問題がある。また、環境光の変化によって認識が困難になることも多い。また、複数点（４点）以上の座標情報が必要であり、未知の形状のものには適用できないという問題がある。
【０２１０】
これに対し、本発明によれば、送信データを点滅パターンとして発光する光ビーコンと、同時に複数の光ビーコンの送信データとその光ビーコンの画像上の位置を認識可能なカメラを用いることによってこれらの問題を解決することができる。すなわち、光ビーコンをマーカーとして用いることで、比較的遠くにある光ビーコンでもロバストに認識可能であり、光ビーコンを多少カメラに対して傾けても、認識可能なシステムを実現することできる。また、屋外などの環境光に対しても、従来のマーカー等に比べると、非常にロバストであるといえる。
【０２１１】
また、複数の光ビーコンがあった場合に、それぞれの光ビーコンの送信データに、どの光ビーコンがペアであるかの情報と座標情報を持たせることで、あらかじめカメラ側で登録されていない光ビーコンであっても、その複数の光ビーコンとカメラの位置関係を算出することが可能となる。
【０２１２】
また、光ビーコンの送信データに、実世界オブジェクトに関する情報を含めることで、サイバーコードで実現していた実世界オブジェクトにリンクしている仮想オブジェクトの情報や、前記実世界オブジェクトに関する情報一般を、カメラ側でロバストに受信することを可能とする。また、この場合には、光ビーコンの送信データに光ビーコンの座標情報を持たせずに、光ビーコンを一意に特定できる情報が送信データに含まれていれば、座標情報をサーバー側に持たせることも可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るデータ通信システム１０の構成を模式的に示した図である。
【図２】送信機２０の内部構成を模式的に示した図である。
【図３】送信機２０内のデータ処理部２２の内部構成を示した図である。
【図４】受信機５０の受光ブロック５１の構成を模式的に示した図である。
【図５】受信機５０における１つの受光ブロック５１の内部構成を模式的に示した図である。
【図６】受信機５０内のデータ処理部６０の内部構成を模式的に示した図である。
【図７】送信機２０側のデータ送信処理手順を示したフローチャートである。
【図８】本実施形態に係るデータ通信システム１０においてデータ伝送に使用されるデータ・フレームの形式を示した図である。
【図９】図７に示したデータ送信処理のうち、ステップＳ３におけるデータ・フレーム生成の詳細な処理手順を示したフローチャートである。
【図１０】パターン表示部２３から光学的に分別可能なパターンの形式で送出されたデータを受信機５０側で受信処理するための手順を示したフローチャートである。
【図１１】作業メモリ５４内に設けられた受信データ・バッファの構成を模式的に示した図である。
【図１２】受信機５０側で受光した光学的パターンをバイト系列に追加登録するための処理手順を示したフローチャートである。
【図１３】運動モデルに基づいてパターン位置を検出するために使用されるデータ・バッファの形式を示した図である。
【図１４】運動モデルに基づいた予測を行なうための処理手順を示したフローチャートである。
【図１５】運動モデルを用いて光学的パターンの検出位置をトラッキングするメカニズムを説明するための図である。
【図１６】１データ・フレームを送信するための処理手順を示したフローチャートである。
【図１７】トラッキングを行なわずに受信を行なう方式で使用されるデータ・バッファの形式を模式的に示した図である。
【図１８】図１７に示したデータ・バッファへのデータ登録手順を示したフローチャートである。
【図１９】カメラで捉えた４つの光学的信号を基に位置関係を求める方法を説明するための図である。
【図２０】カメラで捉えた４つの光学的信号を基に位置関係を求めるためのシステム構成を模式的に示した図である。
【図２１】コンピュータ部の構成を模式的に示した図である。
【図２２】カメラで捉えた４つの光学的信号を基に位置関係を求めるための処理手順を示したフローチャートである。
【図２３】送信データの構成例を示した図である。
【図２４】カメラで捉えた４つの光学的信号（光ビーコン）から３次元位置関係算出して、３次元仮装オブジェクトを実世界の撮影画像にオーバーレイ表示するための処理手順を示したフローチャートである。
【図２５】送信データの構成例を示した図である。
【符号の説明】
１０…データ通信システム
２０…送信機
２１…送信データ生成部
２２…情報処理部
２３…パターン表示部
３１…データ入力部，３２…演算処理回路
３３…ＲＡＭ，３４…ＲＯＭ
３５…パターン出力部，３６…バス
５０…受信機
５１…受光ブロック
６０…データ処理部
６１…画像入力部，６２…演算処理回路
６３…ＲＡＭ，６４…ＲＯＭ
６５…結果出力部，６６…バス
７０…アプリケーション部
８１…受光素子
８２…バンド・パス・フィルタ
８３…フェーズ・ロック・ループ
８４…Ａ／Ｄ変換器
８５…撮像データ保存用メモリ
８６…２値化データ保存用メモリ
８７…転送データ保存用メモリ
８８…制御部
【図１】
2004056343.tif 000011
【図２】
2004056343.tif 000012
【図３】
2004056343.tif 000013
【図４】
2004056343.tif 000014
【図５】
2004056343.tif 000015
【図６】
2004056343.tif 000016
【図７】
2004056343.tif 000017
【図８】
2004056343.tif 000018
【図９】
2004056343.tif 000019
【図１０】
2004056343.tif 000020
【図１１】
2004056343.tif 000021
【図１２】
2004056343.tif 000022
【図１３】
2004056343.tif 000023
【図１４】
2004056343.tif 000024
【図１５】
2004056343.tif 000025
【図１６】
2004056343.tif 000026
【図１７】
2004056343.tif 000027
【図１８】
2004056343.tif 000028
【図１９】
2004056343.tif 000029
【図２０】
2004056343.tif 000030
【図２１】
2004056343.tif 000031
【図２２】
2004056343.tif 000032
【図２３】
2004056343.tif 000033
【図２４】
2004056343.tif 000034
【図２５】
2004056343.tif 000035