(57)【特許請求の範囲】
【請求項１】
表示部に相対して３次元空間中の位置を指定するための座標指示手段と、
前記座標指示手段のイメージ画像を取得する少なくとも２の撮像手段と、
前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記座標指示手段の位置座標から世界座標を取得する世界座標計算手段と、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正が必要であるかを判定する再校正判定手段と
を備え、
前記再校正判定手段は、前記世界座標計算手段が計算した世界座標から当該世界座標が与えるイメージ座標を逆算し、前記撮像手段が取得した前記イメージ座標との差を使用して前記座標変換手段の再校正が必要であるかを判定する、
情報処理システム。
【請求項２】
前記座標変換手段は、前記指示点のイメージ座標および前記撮像手段の主点を含む２直線を使用して中点法により、前記世界座標を決定する、請求項１に記載の情報処理システム。
【請求項３】
表示部に相対して３次元空間中の位置を指定するための座標指示手段と、
前記座標指示手段のイメージ画像を取得する少なくとも２の撮像手段と、
前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記座標指示手段の位置座標から世界座標を取得する世界座標計算手段と、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正が必要であるかを判定する再校正判定手段と
を備え、
前記再校正判定手段は、前記指示点のイメージ座標および前記撮像手段の主点を含む２直線の最短距離と、前記最短距離を与える世界座標における前記表示部に直交する軸の座標の値とを使用して前記座標変換手段の再校正が必要であるかを判定する、
情報処理システム。
【請求項４】
イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための情報処理装置であって、
表示部に相対して３次元空間中の位置を指定するための座標指示手段と、
前記座標指示手段のイメージ画像を取得する少なくとも２の撮像手段と、
前記撮像手段の前記イメージ画像中の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記座標指示手段の位置座標から世界座標を取得する世界座標計算手段と、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正が必要であるかを判定する再校正判定手段と
を備え、
前記再校正判定手段は、前記世界座標計算手段が計算した世界座標から当該世界座標が与えるイメージ座標を逆算し、前記撮像手段が取得した前記イメージ座標との差を使用して前記座標変換手段の再校正が必要であるかを判定する、
情報処理装置。
【請求項５】
前記座標変換手段は、前記指示点のイメージ座標および前記撮像手段の主点を含む２直線を使用して中点法により、前記世界座標を決定する、請求項４に記載の情報処理装置。
【請求項６】
イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための情報処理装置であって、
表示部に相対して３次元空間中の位置を指定するための座標指示手段と、
前記座標指示手段のイメージ画像を取得する少なくとも２の撮像手段と、
前記撮像手段の前記イメージ画像中の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記座標指示手段の位置座標から世界座標を取得する世界座標計算手段と、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正が必要であるかを判定する再校正判定手段と
を備え、
前記再校正判定手段は、前記指示点のイメージ座標および前記撮像手段の主点を含む２直線の最短距離と、前記最短距離を与える世界座標における前記表示部に直交する軸の座標の値とを使用して前記座標変換手段の再校正が必要であるかを判定する、
情報処理装置。
【請求項７】
座標変換手段が、イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための情報処理装置実行可能な方法であって、情報処理装置が、
座標指示手段により表示部に相対して３次元空間中の位置を指定するステップと、
前記座標指示手段のイメージ画像を少なくとも２の撮像手段より取得するステップと、
前記撮像手段の前記イメージ画像中の位置座標から前記表示部が置かれた３次元空間上の位置座標である世界座標を取得するステップと、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正が必要であるかを判定するステップと
を実行し、
前記再校正が必要であるかを判定するステップは、変換された世界座標から当該世界座標が与えるイメージ座標を逆算し、前記撮像手段が取得した前記イメージ座標との差を使用して前記座標変換手段の再校正が必要であるかを判定する、
情報処理方法。
【請求項８】
前記指示点のイメージ座標および前記撮像手段の主点を含む２直線を使用して中点法により、前記世界座標を決定し、前記世界座標に変換するステップを実行する、請求項７に記載の情報処理方法。
【請求項９】
座標変換手段が、イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための情報処理装置実行可能な方法であって、情報処理装置が、
座標指示手段により表示部に相対して３次元空間中の位置を指定するステップと、
前記座標指示手段のイメージ画像を少なくとも２の撮像手段より取得するステップと、
前記撮像手段の前記イメージ画像中の位置座標から前記表示部が置かれた３次元空間上の位置座標である世界座標を取得するステップと、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正が必要であるかを判定するステップと
を実行し、
前記再校正が必要であるかを判定するステップは、前記指示点のイメージ座標および前記撮像手段の主点を含む２直線の最短距離と、前記最短距離を与える世界座標における前記表示部に直交する軸の座標の値とを使用して前記座標変換手段の再校正が必要であるかを判定する、
情報処理方法。
【請求項１０】
請求項７〜９のいずれか１項に記載の情報処理方法を、情報処理装置が実行するための装置実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
指やペンといった座標指示体を用いて表示を行うための表示平面をタッチしたりなぞったりして、その軌跡を表示平面に表示させたりする表示システムが知られている。このような表示システムでは、表示平面に対する座標指示体の指示位置を、撮像装置を使用して取得した画像上の座標系（以下、イメージ座標系として参照する。）と、表示平面上での座標系（以下、世界座標系）を対応付けることが必要とされる。
【０００３】
この変換は、多くの場合、ホモグラフィー行列を使用して行われるが、このホモグラフィー行列の要素、（以下、外部変数として参照する。）を予め決定しておく必要がある。外部変数を算出する処理は、校正処理として参照され、一般には、イメージ座標と、世界座標との組を入力として与える。校正処理は、イメージ座標と、外部変数を用いて世界座標を計算し、座標が既知の世界座標を、イメージ座標に写像した時のイメージ座標系の誤差を最小にするように、外部変数の値を最適化する処理を含む。
【０００４】
この処理は、座標を決定するために用いられるセンサ装置（撮像装置）それぞれについて行われる。従来、タッチパネルを表示平面として使用する表示システムでは、多くの場合、１次元センサ装置を使うか、２次元センサ装置でも高さ方向の大きさを押さえるために、表示平面と、センサ光軸がほぼ一致するようにセンサ装置が取り付けられる。
【０００５】
また、センサ装置に対して奥行き方向の座標を正確に算出する目的で、最低でも２つのセンサ装置を使用し、複数のイメージ座標から、それらの光線の交点として世界座標が決定されている。
【０００６】
一方、情報処理システムの校正後、経時変化、気温差、湿度差などの理由によりセンサ装置の取り付け位置がずれると、校正の直後よりも実際の座標指示体の位置座標と、画像から算出された位置座標のずれ、すなわち誤差が大きくなる。この誤差を解消するためには、再度校正処理をし直す必要がある。
【０００７】
従来から再校正を行うタイミングを判断する技術は、種々提案されている。例えば、特開２００１−２８２４４０号公報（特許文献１）には、感圧方式における経時変化による位置誤差の拡大を解消する技術が記載されている。
【０００８】
しかしながら、ペン先発光方式を採用する座標指示体の場合、センサ装置を使用しないため、座標の基準となる情報がセンサ装置から得られない。このため、上記のような要因で誤差が拡大したことを検出することができないという問題があった。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、座標の基準となる情報がセンサ装置から得られなくても、センサ装置の取り付け位置のずれによって位置誤差が拡大したことを検知して再校正処理を行うことを可能とする情報処理システム、情報処理装置、情報処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によれば、
表示部に相対して３次元空間中の位置を指定するための座標指示手段と、
前記座標指示手段のイメージ画像を取得する少なくとも１の撮像手段と、
前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記座標指示手段の位置座標から世界座標を取得する世界座標計算手段と、
前記イメージ画像中の前記座標指示手段の指示点のイメージ座標を使用して、前記座標変換手段の再校正を判定する再校正判定手段と
を備える情報処理システムが提供できる。
【発明の効果】
【００１１】
本発明によれば、座標の基準となる情報がセンサ装置から得られなくても、センサ装置の取り付け位置のずれによって位置誤差が拡大したことを検知して再校正処理を行うことが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明が適用される情報処理システム１００の概略的な実施形態を示す。
【図２】本明細書で使用する変数および用語の定義を説明する図。
【図３】本実施形態の好ましい座標入力方法を可能とする情報処理システム３００の概略図。
【図４】本実施形態の制御部１１０の機能を提供する、情報処理装置４００のハードウェア構成を示す図。
【図５】本実施形態の制御部１１０として機能する情報処理装置４００の機能ブロック５００を示す図。
【図６】本実施形態の変換行列計算部５０７の詳細な機能構成を示した図。
【図７】変換行列計算部３０７および世界座標計算部５０３が実行する処理のデータフローを示す図。
【図８】第１実施形態における再校正要否を判定するための概略的な光学的関係を示す図。
【図９】第１の実施形態における各直線の定式化の際の各位置ベクトルを示す図。
【図１０】第１の実施形態の変形例で、Ｚworldの値を校正要否の判定に使用する光学的構成を示した図。
【図１１】第２の実施形態における概略的な光学的関係を示す図。
【図１２】（１６）および（１７）で与えられる光学的関係を示す図。
【図１３】本実施形態の座標計算方法のフローチャート。
【図１４】ステップＳ１３０９の校正処理のフローチャートを示す
【図１５】第１実施形態における再校正判定パラメータを使用する場合のステップＳ１３０８の実体的判断処理のフローチャート。
【図１６】第２の実施形態の再校正判定パラメータを使用する場合のステップＳ１３０８における実体的な判断処理のフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明を例示的な実施形態を使用して説明するが、本発明は、後述する実施形態に限定されるものではない。
【００１４】
＜セクション１：システム構成＞
図１は、本発明が適用される情報処理システム１００の概略的な概念図示す。情報処理システム１００は、制御部１１０と、ディスプレイ装置１５０と、カメラを含む複数のカメラ１２０、１３０とを含んでいる。制御部１１０は、本実施形態の情報処理装置がその機能を提供する。制御部１１０は、ディスプレイ装置１５０上でのユーザによる座標指示体１４０の動作をカメラ１２０、１３０からの画像情報を使用して解析する。その結果に応じて、ユーザの動作に対応した像を生成し、像表示制御を行ってディスプレイ装置１５０上に表示する。なお、図１に示すカメラの位置は、カメラの主点の位置をもって示している。
【００１５】
カメラ１２０、１３０は、ディスプレイ装置１５０に接触または近接した１で行われるユーザ動作を検出し、ユーザ動作がディスプレイ装置１５０上の座標（ｘ，ｙ，ｚ）（以下、世界座標として参照する。）を、カメラ１２０、１３０が取得した画像情報から取得する。なお、図１には、以後の説明の便宜上、カメラ１２０、１３０が取得するイメージ画像中の位置座標を、それぞれ（ｘ１，ｙ１）、（ｘ２，ｙ２）として示す。
【００１６】
ここで、詳細な座標決定処理を説明するに先立ち、本明細書で使用する変数および用語の定義を、図２を参照して説明する。
○(ximage,yimage)：イメージ座標であり、各カメラの画像面を表す。空間中の物体を撮影すると、この平面上に投影される。
○(Xcamera, Ycamera, Zcamera)：カメラ座標であり光学中心Cを原点に持ち、イメージ座標のXimage軸、Yimage軸に平行に、Xcamera軸、Ycamera軸が定義される。３次元空間中で、カメラ光学系の内部座標軸である。カメラの数だけ、異なるカメラ座標が存在する。
○(Xworld,Yworld,Zworld)：世界座標であり、説明する実施形態では、表示面の左上を原点とし、横方向をXworld軸、縦方向をYworld軸として定義する。なお、表示面は、Zworld=0面である。３次元空間中のカメラからは独立して、１つだけ存在する実空間を定義する座標軸である。
○外部変数：世界座標と、イメージ座標（カメラ座標）との対応関係を表すパラメータ行列であり、世界座標と、イメージ座標（カメラ座標）との間の座標変換を可能とし、校正処理において決定される座標変換行列、すなわちＨ行列に相当する。
【００１７】
図３は、本実施形態の好ましい座標入力方法を可能とする情報処理システムの機能ブロック３００は、ディスプレイ装置のＬＣＤ、タッチパネルなどとして形成される表示部３０２を含む。さらに、機能ブロックは、表示部３０２の適切な位置、例えば角部に配置される複数のカメラ３０１と、演算部３０４とを含むことができる。カメラ３０１は、ユーザが保持する座標指示体３０３の特定の箇所、例えば先端部の位置をイメージ画像として取得する。
【００１８】
カメラ３０１が取得したイメージ画像は、ＣＰＵ、メモリなどを備える演算部３０４に送られる。演算部３０４は、変換行列Ｈを使用して座標指示体３０３の示した位置の世界座標を決定する。決定された世界座標は、所定のビデオデータに変換された後、表示部３０２に送付されて、ディスプレイ装置により、表示部３０２上に表示される。
【００１９】
図３に示した実施形態は、少なくとも２以上のカメラ３０１を使用し、三角測量技術を使用して、世界座標(Xworld,Yworld,Zworld)を決定する場合に好ましく用いる事ができる。また、図３の情報処理システム３００は、２つのカメラ３０１をそれぞれ独立して世界座標決定を行い、その平均を使用して世界座標を精度良く決定するためにも使用できる。
【００２０】
図４は、本実施形態の制御部１１０の機能を提供する、情報処理装置４００のハードウェア構成を示す。情報処理装置４００は、ＣＰＵ４０１、ＲＯＭ４０２、ＲＡＭ４０３、キーボード４０４、マウス４０５を備えており、これらのハードウェア要素は、適切なバス（システムバスおよびバスブリッジ）により相互接続されている。ＣＰＵ４０１は、ＲＡＭ４０３に格納されたプログラムを読み出し、実行することにより、制御部１１０の機能を提供する。ＲＯＭ４０２は、情報処理装置４００の入出力機能を提供するためのＢＩＯＳ(Basic Input Output System)を格納し、ＰＯＳＴ機能を提供し、ＣＰＵ４０１との間の入出力を可能とする。
【００２１】
また、ＲＯＭ４０２としては、随時書換え可能なＲＯＭ、いわゆるＥＥＰＲＯＭなども含んで構成することができる。このような随時書き換え可能なＲＯＭには、情報処理装置４００が使用する個別的なデータやユーザデータを格納させておくことができる。キーボード４０４、マウス４０５は、情報処理装置４００への入出力を可能とするものであり、例えばＰＣＩバス・ブリッジを介したＵＳＢ（Universal Serial Bus)方式で、情報処理装置４００に接続されている。
【００２２】
さらに情報処理装置４００は、ハードディスク装置４０６、グラフィックス・ボード４０７、ネットワーク・カード４０８を備えている。ハードディスク装置４０６は、ＯＳ（オペレーティング・システム）、各種のデバイス・ドライバおよび各種のアプリケーション・プログラムを格納している。ＣＰＵ４０１は、起動されると、ハードディスク装置４０６にアクセスして、ＯＳ、デバイス・ドライバ、各種アプリケーション・プログラムをＲＡＭに読み込み、処理を実行する。グラフィックス・ボード４０７は、ディスプレイ装置１５０に対して出力を行うための処理を実行する処理部であり、グラフィックス・プロセッサを搭載することが好ましい。ネットワーク・カード４０８は、情報処理装置４００をインターネット、ＬＡＮといったネットワークに接続するため、ＯＳＩ基本参照モデルの第１層から第４層の機能を提供する。情報処理装置４００は、各種の外部接続機器との間の入出力を可能とするインタフェース（Ｉ／Ｆ）４０９を備えており、ＣＤ−ＲＯＭ、ＭＯその他の外部読取機器４１０による記録媒体４１１との間の相互通信を可能としている。
【００２３】
図５は、本実施形態の制御部１１０として機能する情報処理装置４００の機能ブロック５００を示す。情報処理装置４００は、ＣＰＵ４０１がプログラムを実行することにより、図５に示す各機能ブロックを情報処理装置４００上に構成する。情報処理装置４００の機能ブロック５００は、画像処理部５０２と、校正点情報保持部５０６と、変換行列計算部５０７とを含んでいる。
【００２４】
画像処理部５０２は、カメラとしての機能を有する撮像装置、具体的にはカメラ５０１からの画像情報を取得して、座標指示体１４０などの画像特徴などを解析する。校正点情報保持部５０６は、ディスプレイ装置１５０の表示有効領域に設定した校正点の世界座標を格納し、カメラ５０１と、ディスプレイ装置１５０との間の相対的位置の校正を可能としている。
【００２５】
変換行列計算部５０７は、画像処理部５０２が取得した校正点に関する画像情報と、校正点情報とを使用して、カメラ５０１の撮像平面と、世界座標（ディスプレイ装置１５０上の有効領域）との間の変換行列を計算し、各座標系の間の座標変換を可能としている。変換行列計算部５０７は、生成した変換行列を、適切な記憶領域として実装される変換行列保持部５０８に格納する。
【００２６】
さらに情報処理装置４００は、その機能ブロックとして、世界座標計算部５０３と、再校正判定部５０４と、表示データ生成部５０５と、表示制御部５０９とを含んでいる。世界座標計算部５０３は、画像処理部５０２の画像解析の結果および変換行列を使用して画像情報の注目点の世界座標を計算する。
【００２７】
再校正判定部５０４は、ユーザ指示、または設定されたタイマなどの満了に応答して、再校正の要否を判定する。再校正判定部５０４は、ユーザ指示またはタイマの満了に応答して、第１の実施形態では光学系の光軸のずれを計算することで、再校正の必要性を判断する。また第２の実施形態では計算した世界座標からイメージ平面上でのイメージ座標を逆計算することで、再校正が必要であるかを判定する。それ以外は、取得した世界座標をそのまま、表示データ処理部に渡し、ディスプレイ装置１５０上に、世界座標に対応したイメージを表示させる。なお、再校正の要否判断の詳細な処理については後述する。
【００２８】
表示データ生成部５０５は、生成した注目点の世界座標を使用してディスプレイ装置１５０上に表示させるべきデータを生成し、表示制御部５０９に例えばビデオデータとして送付する。表示制御部５０９は、当該データをディスプレイ装置１５０のＬＣＤパネルとして構成される表示部５１０に表示させている。
【００２９】
以上の機能は、ユーザが座標指示体１４０で、ディスプレイ装置１５０にタッチするか否かによらず、画像解析により、ディスプレイ装置１５０上に画像を表示させることを可能としている。このことにより、本実施形態では、接触および非接触状態で位置の指定を可能とする態様に関わらず検出して、画像の表示制御を行うことが可能となる。
【００３０】
図６は、本実施形態の変換行列計算部５０７の詳細な機能構成を示した図である。なお、図６に示した実施形態では、２つのカメラを使用するものとして説明する。カメラ６０１、６０２は、各々が取得した画像情報を画像処理部６０３に送付する。画像処理部６０３は、カメラ６０１、６０２からの画像情報を受領して、説明する実施形態では、各画像情報を変換行列計算部６０６に送付する。
【００３１】
変換行列計算部６０６は、読み取り部６０６ａおよび演算部６０６ｂを備えており、受領した各カメラ６０１、６０２の画像データを使用して世界座標中での位置誤差を最小とするようにして、同時に各カメラ６０１、６０２に対する変換行列を計算する。世界座標計算部６０５は、計算された変換行列を使用して世界座標を計算し、ディスプレイ装置１５０の表示部３０２の世界座標に対応する位置に像を表示させている。
【００３２】
＜セクション２：世界座標とイメージ座標のモデル＞
以下、本実施形態における世界座標とイメージ座標の関係を表すモデルについて説明する。３次元空間中のある点ｘを、世界座標系で表した時の座標(Xworld,Yworld,Zworld)、カメラ座標系で表した時の座標(Xcamera,Ycamera,Zcamera)と、その点をイメージ平面に投影したときのイメージ座標(ximage,yimage)の関係は、以下の式で表される。
【００３３】
【数１】
0006578737.tif 000002
【００３４】
式（１）のλは、世界座標系とイメージ座標系の単位の違いを吸収する比例定数である。ここで式（1）の３×４のパラメータ行列を、行列Ｐで表す。
【００３５】
【数２】
0006578737.tif 000003
【００３６】
行列Ｐは外部変数とも呼ばれる。Ｒは回転行列、ｔは並進行列と呼ばれる。それぞれの行列が、カメラ座標系に対する世界座標系の回転と並進を表している。逆に世界座標に対するカメラ座標の関係とみれば、行列Ｐは、カメラの世界座標上での配置、つまり光学中心Ｃの位置と回転角度（光軸方向とイメージ平面の回転角度）を表していると言える。行列Ｐの算出方法は、校正方法のセクションで説明する。
【００３７】
今回の課題について、座標算出時にはペン先が常にディスプレイ平面中にあるという前提を加えると、Zworld＝０という制約が加えられる。これより、式１からZworldに関する項を除くと下記式３になる。
【００３８】
【数３】
0006578737.tif 000004
【００３９】
上式（３）の３×３のパラメータ行列は、定数倍しても比例定数λに吸収されるので、本実施形態では３行３列目の成分が１になるように正規化して扱う。
【００４０】
【数４】
0006578737.tif 000005
【００４１】
上式（４）の３×３のパラメータ行列を、Ｈ行列として参照する。
【００４２】
Ｈ行列と、Ｐ行列には以下のような関係がある。
【００４３】
【数５】
0006578737.tif 000006
【００４４】
＜セクション３：校正処理＞
以下、本実施形態における校正処理を概説する。校正処理とは、前セクションで説明した外部変数（行列Ｈ、行列Ｐ）を算出する処理になる。行列Hをまず算出し、行列Ｈから行列Ｐを算出する流れになる。
【００４５】
図７は、変換行列計算部３０７および世界座標計算部５０３が実行する処理のデータフローを示す。変換行列計算部５０７は、ボックス５１１でユーザ指示された校正点の画像情報を取得する。この画像情報は、ボックス５１２で画像解析され、指示された校正点の世界座標とカメラ画像の画像位置とが対応付けられる。ディスプレイ装置１５０この対応付けは、カメラの画像平面とディスプレイ装置１５０との間の対応付けは、各カーテシアン座標系の回転行列および各画像中心の並進ベクトルによって行われる。
【００４６】
この対応付けにより、変換行列Ｈ（ホモグラフィー行列）が計算される。なお、Ｈ行列の計算についてはより詳細に後述する。計算されたＨ行列は、周知のデータ・フォーマットとして、適切な記憶領域に格納される。世界座標計算部５０３は、ボックス７７１でユーザによる手書動作の画像情報を取得する。そして、ボックス７７２で画像情報中での座標指示体の先端の座標を取得する。その後、ボックス７７３で、画像情報中での座標を世界座標に写像することにより、ディスプレイ装置１５０上での像表示を可能とする。
【００４７】
また、図７には、変換行列計算部５０７の概略処理についても記載する。変換行列計算部５０７は、ボックス７１１でユーザが指示した校正点の情報を取得し、ボックス７１２で、指示された校正点のディスプレイ上の世界座標と画像情報中の画像位置（イメージ座標）を対応付ける。その後、得られた情報を使用して変換行列（Ｈ行列）を計算し、変換行列保持部５０８に読み出し可能な形式、具体的には配列変数として保存する。
【００４８】
以下、本実施形態における校正処理を概説する。２個のセンサで位置決定を行うものとし、センサ番号を添え字i(i=1,2)で表す。校正点は、予めｎ点得られているとし、点番号を添え字j(j=1,2,…,n)で表す。校正点について予め得られている世界座標を下記式（６）で示す。
【００４９】
【数６】
0006578737.tif 000007
【００５０】
Ｍｊの値は、校正点の世界座標として、校正点情報保持部５０６に格納されている。座標指示体１４０でユーザが校正点を指示した状態を、カメラで撮影し、画像を得て、その画像の画像特徴を、画像処理部５０２で処理して得た特徴点の画像中での座標、すなわち、イメージ座標を下記式（７）で示す。
【００５１】
【数７】
0006578737.tif 000008
【００５２】
このイメージ座標ｍｉｊは、各校正点jおよび各カメラiごとに得られる。ここで、カメラiの変換行列Ｈを下記式（８）で定義する。
【００５３】
【数８】
0006578737.tif 000009
【００５４】
セクション1で述べたように、Ｈ行列は、Ｈ３３が１になるように正規化して扱う。ここで、世界座標と、イメージ座標の組がｎ点得られている場合、式（１）を変形して以下のように書き下す。
【００５５】
【数９】
0006578737.tif 000010
【００５６】
Ｈ行列は、Ｈ１１,i〜Ｈ３２,iまで８未知数を有しているので、これらを決定するために、校正点は、平面座標として高々４点あれば、連立方程式から一意に決定できる。ｎ＞４の場合は、上記式（９）をＡｘ＝Ｂとし、目的ベクトルｘを下記式（１０）で算出することで、誤差和Σ|Ａｘ＝Ｂ|を最小化する解ｘを求めることができる。
【００５７】
【数１０】
0006578737.tif 000011
【００５８】
さらに他の実施形態では、上記の解を初期値とし、目的に応じた評価関数を設定して、非線形最適化法（Levenberg-Marquardt法など）で探索的にH行列を算出する過程が設けられる。これをバンドル調整という。従来の一般的な手法では、再投影誤差の二乗和を評価関数とし、これを最小化するようにH行列の探索を行う。ここで再投影誤差とは、画像から得られたイメージ座標ｍｉｊと、世界座標Ｍｊと行列Ｈｉから算出したイメージ座標ｍｉｊ′の距離を指す。
【００５９】
Ｐ行列は、算出したＨ行列をもとに（００３６）で述べた関係式を用いて算出することができる。
【００６０】
＜セクション３：世界座標算出方法＞
本セクションでは、世界座標の算出方法と、再校正判定方法の組み合わせについて述べる。
【００６１】
＜セクション３-1：中点法による世界座標算出方法と、光線の最小距離による再校正判定方法＞
本実施形態では、中点法による世界座標算出方法と、光線の最小距離による再校正判定方法について述べる。なお、本実施形態の再校正判定方法は、中点法による世界座標算出方法と組み合わせると効率的に計算することができるが、他の世界座標算出方法と組み合わせることも可能である。
【００６２】
式（１）は、３次元世界座標空間中の直線を表しており、カメラ主点位置と、座標指示体１４０の注目点とを結ぶ直線（以下光線と呼ぶ）を世界座標系で表したものである。センサ１，２から、２組のイメージ座標、ｍ１＝（ｘimage1，yimage1）Ｔｍ2＝（ｘimage2，yimage2）Ｔが得られると、各イメージ座標に対して上記式（１）が適用されるので、光線に対応する１次関数が２つ得られる。
【００６３】
世界座標とイメージ座標が前述のモデルに従う場合、2直線は1点で交わるため、その交点を求めることにより世界座標を算出することができる。しかし、カメラの経時的な配置ずれなどで、実際のカメラの配置と、推定したカメラの配置（P行列として反映されている）にずれが生じると、２直線の位置誤差が大きくなり、２直線は１点で交差しなくなる。２直線が交差しない場合には、２直線の最短距離に対応する各直線上の点を算出し、その２点の中点をもって世界座標とする方法（中点法）がよく用いられる。
【００６４】
２直線の最短距離“ｌ”（エル）が大きくなるほど、当初配置からの誤差が大きくなっている可能性が高い。よって、座標算出の際に２つの光線の最短距離を計算することで、再校正の要否を判断することができる。このずれが設定したしきい値ｌ＿ｔｈｒよりも小さい場合、最短距離“ｌ”の中点から世界座標を決定する（従来法における中点法に相当する）。しかしながら、最短距離“ｌ”がｌ＿ｔｈｒよりも大きくなる場合には、変換行列Ｐを再校正することが好ましい。
【００６５】
図８に、第１実施形態における再校正要否を判定するための概略的な光学的関係を示す。図８は、ディスプレイ装置１５０を正面から見たときの光学的関係を示し、図８（ｂ）は、ディスプレイ装置１５０の面に沿った方向から見たときの光線の関係を示す。図８では、カメラ１２０が位置ずれしたものとして説明する。カメラ１２０が位置ずれを起こすと、イメージ面８２０上のイメージ座標８４０が元のイメージ座標８３０の値からずれる。このため、カメラ１２０の主点と、イメージ座標とを通る１次関数は、本来の光線Ｌ３とは異なる光線Ｌ１を与える。
【００６６】
通常、カメラが位置ずれを生じる場合には、左右方向の他、上下方向にも位置ずれを生じるが、この状況を示したのが図８（ｂ）である。本来、Ｌ１およびＬ２は、同一の世界座標Ｍで交差する。ところが、光線がずれると、図８（ｂ）に示すように、世界座標Ｍの位置で交差せず距離“ｌ”だけずれる。このため、第１の実施形態では、校正の要否判断を、２直線で与えられる光線Ｌ１およびＬ２の間の最短距離を使用して行う。
【００６７】
２つの光線Ｌ１、Ｌ２を、以下の通り、定式化する。なお、図９に下記定式化の際の各位置ベクトルを示す。
【００６８】
【数１１】
0006578737.tif 000012
【００６９】
Ｌ１、Ｌ２の最短距離に対応するＬ１上の点とＬ２上の点とを結ぶベクトル“ｌ（エル）”は、以下のように表せる。
【００７０】
【数１２】
0006578737.tif 000013
【００７１】
ただし、ｓ１，ｓ２は、直交条件から、下記式（１３）を満たす。
【００７２】
【数１３】
0006578737.tif 000014
【００７３】
ここで、上記式（１３）から、ｓ１，ｓ２を解くと、下記（１４）が得られる。
【００７４】
【数１４】
0006578737.tif 000015
【００７５】
上記式（１４）で得られたｓ１，ｓ２を式（１２）に代入することにより、Ｌ１の点と、Ｌ２の点とを最短距離で結ぶベクトルが得られる。中点法では、このベクトルの中点を世界座標Ｍとして算出する。
【００７６】
また、このベクトルのノルムを求めることで、2直線の最短距離“ｌ”を求めることができる。なお、Ｌ１、Ｌ２が平行な場合、解は一義的に定まらないため、世界座標を算出することはできない。
【００７７】
＜セクション３-１の変形：|Zworld|による再校正判定方法＞
第１の実施形態の変形例は、表示部５１０のディスプレイ平面に直交する座標Ｚの値であるＺworldの値を、再校正の判定に直接使用する方法である。なお、本実施形態の再校正判定方法は、世界座標算出時にZworldも算出できる方法であれば、中点法に限らず組み合わせて使うことが可能である。本実施形態では、世界座標算出時にはペン先が常にディスプレイ平面中にあるという前提を加える。この時、モデルからの誤差がない場合は、算出した世界座標の高さＺworldが０となるはずである。そのため、高さ｜Ｚworld｜が大きくなるほど、当初配置からの誤差が大きくなっている可能性が高いと推測できる。これより、｜Ｚworld｜が設定したしきい値Ｚworld_thrを超えることを、再校正の必要性の判断基準として使用することができる。
【００７８】
＜セクション３-２：Ｚworld =0を前提にした世界座標算出方法と、再投影誤差による再校正判定方法＞
第２の実施形態では、計算された世界座標から対応するカメラのイメージ座標を逆に計算し、実測されたイメージ座標との差を使用して再校正の判断を行う実施形態である。図１１に第２の実施形態における概略的な光学的関係を示す。
【００７９】
本実施形態では、世界座標算出時にはペン先が常にディスプレイ平面中にある（Ｚworld =0）ことを前提にした世界座標算出方法と合わせて説明を行う。本世界座標算出方法と組み合わせると、本再校正判定処理を効率的に計算することができる。なお、他の世界座標算出方法（中点法など）でも、本実施形態の再校正判定方法を適用することは可能である。
【００８０】
特定のカメラi(iはカメラ番号)に関し、上記式（２）を行列形式から書き下すと、下記式（１６）、（１７）が得られる。
【００８１】
【数１６】
0006578737.tif 000016
【００８２】
上記式（１６）および（１７）で与えられる光学的関係を図１２に示す。図１２（ａ）は、式（１６）の与える光学的関係を示す。図１２（ａ）のように、カメラ主点とイメージ平面上のｘｉｍａｇｅ＝ｘｉｍａｇｅｊ直線を含む平面（以下平面Ａ）と、Ｚworld＝０平面が交わる直線（以下直線Ａ）をあらわしている。また、図１２（ｂ）は、式（１７）の与える光学的関係を示す。式（１７）は、カメラ主点とイメージ平面上のｙｉｍａｇｅ＝ｙｉｍａｇｅｊ直線を含む平面（以下平面Ｂ）と、Ｚworld＝０平面が交わる直線（以下直線Ｂ）を表している。
【００８３】
原理的には、Ｚworld＝０という制約を加えると、1つのセンサで世界座標の算出を行うことができる。しかし、本実施形態では、ディスプレイの高さ方向のサイズを抑えるために、センサをディスプレイ平面（Ｚworld＝０平面）にできるだけ近くなるように設置する。このため、平面Ｂは、Ｚworld＝０平面とほぼ一致するので、ｙｉｍａｇｅの測定誤差の影響を大きく受けやすく、直線Ｂの位置を精度良く求めることは困難である。これを図１２の矢線Ｖｉｅｗの方向からＺworld＝０に平行な方向から見たものとして示す。このため本実施形態では、２つのセンサからｘimageを使用する式（１６）を２つ得て、この２つの直線Ａの交点を求めることで、世界座標を算出する。
【００８４】
算出された世界座標Ｍ＝（Ｘworld，Yworld）Ｔを、各カメラi（iはカメラ番号）に再投影したイメージ座標をｍｉ′＝（ｘimagei′，ｙimagei′）Ｔとする。具体的には、式（２）に世界座標Ｍを代入することで算出される。一方で各カメラiは、イメージ画像からすでにイメージ座標ｍｉ＝（ｘimagei，ｙimagei）Ｔを得ている。
【００８５】
モデルからの誤差が無い場合は、ｍｉ′と、ｍｉは、一致する。これらの２つのイメージ座標のずれ｜ｍｉ′−ｍｉ｜が大きいほど、モデルからの誤差が大きくなっている可能性が高いといえる。よって、｜ｍｉ′−ｍｉ｜が、設定したしきい値Δｍｔｈｒを超えた場合に、再校正が必要であると判断することができる。
【００８６】
本実施形態で説明した世界座標算出方法では、ｍｉ′のｘimagei′座標と、ｍｉのｘimagei座標は一致するため、｜ｍｉ′−ｍｉ｜＝｜ｙimagei′−ｙimagei｜を計算するだけでよい。
【００８７】
図１３は、本実施形態の座標計算方法のフローチャートを示す。図１３の処理は、ステップＳ１３００から開始し、ステップＳ１３０１で、ユーザがディスプレイ装置１５０に対して手書き動作を行う。ステップＳ１３０２で、カメラにより座標指示体１４０のイメージ画像を取得する。ステップＳ１３０３で、イメージ画像中の指示点のイメージ座標を取得し、ステップＳ１３０４で変換行列Ｈを読み出す。ステップＳ１３０５では、式（８）を適用して世界座標を計算する。
【００８８】
その後処理は、ステップＳ１３０６で現在再校正を行うタイミングであるか否かを判断する。再校正の判断タイミングは、（１）ユーザが入力開始前に明示的に再校正を指示する態様、または（２）情報処理システムが内部タイマなどにより計時しておく態様が想定できる。内部タイマを使用する態様では、設定された時間間隔を経過した時点で動作開始した場合、最初の入力時に自動的に再校正を開始する態様がある。なお、他の態様では、世界座標計算時に常時再校正判定パラメータを計算させることもできる。
【００８９】
ステップＳで再校正判断タイミングではない（ｎｏ）と判断された場合、ステップＳ１３１０で世界座標を基に表示データを生成する。その後、ステップＳ１３１１で表示制御部５０９が、表示部５１０にビデオデータを送り、ディスプレイ装置１５０に表示を行わせ、ステップＳ１３１２で当該指示に対する処理を終了する。
【００９０】
一方、再校正判断タイミングである（ｙｅｓ）と判断した場合、処理をステップＳ１３０７に分岐させ、再校正判定パラメータを計算する。この再校正判定パラメータは、第１の実施形態で説明した２直線Ｌ１、Ｌ２の最短距離またはＺworld、若しくは世界座標から計算したｍｉ、ｍｉ′の差である。ステップＳ１３０８では、再校正が必要と判断された場合（ｙｅｓ）、ステップＳ１３０９で校正処理を適用し、処理をステップＳ１３１２に分岐させ、校正処理を終了させる。このため、本実施形態では、入力中に世界座標を算出するための変換行列が修正されることなく、スムースな表示が可能となる。
【００９１】
図１４には、ステップＳ１４０９の校正処理のフローチャートを示す。処理はステップＳ１４００から開始し、ステップＳ１４０１でユーザが指定した校正点を含むイメージ画像をカメラにより取得する。ステップＳ１４０２で、取得したイメージ画像中の指示点のイメージ座標を取得する。その後、予め保存していた校正点の世界座標を読み出し、ステップＳ１４０４で構成行列Ｈを計算する。ステップＳ１４０５では、計算した変換行列Ｈの要素を読み出し可能な適切な形式、例えば配列形式やベクトル形式で記憶領域に格納し、ステップＳ１４０６で処理を終了する。
【００９２】
一方、ステップＳ１４０８で再校正不要と判断された場合（ｎｏ）処理をステップＳ１４１２に分岐させ、再校正判断処理を続行させる。ここで、図１４および図１５を使用して、ステップＳ１４０８の再校正の要否判断の処理を詳細に説明する。
【００９３】
図１５は、第１実施形態における再校正判定パラメータを使用する場合のステップＳ１４０８の実体的判断処理のフローチャートである。図１５（ａ）は、２直線の最短距離を再校正判定パラメータとする場合の処理であり、図１５（ｂ）が、Ｚworldの値を再校正判定パラメータとする場合の処理である。以下、図１５（ａ）の処理から説明する。ステップＳ１５００でカメラの主点から延び、対応するカメラのイメージ座標を通過する各直線の間の最短距離“ｌ”を計算する。ステップＳ１５０１では、計算した“ｌ”が、しきい値ｌ＿ｔｈｒを超えるか否かを判断する。計算した“ｌ”が、しきい値ｌ＿ｔｈｒを超える場合（ｙｅｓ）、処理をステップＳ１４０９に分岐させ、再校正処理を実行する。一方、計算した“ｌ”が、しきい値ｌ＿ｔｈｒを超えない場合（ｎｏ）、処理をステップＳ１３１２に分岐させ、校正処理を終了させる。
【００９４】
また、図１５（ｂ）の処理では、ステップＳ１５１０で最短距離“ｌ”ではなく、式（１１）のＺｗ（Ｚworld）を計算する。ステップＳ１５１１では、計算したＺworldが、設定したしきい値Ｚworld_thrを超えるか否かを判断する。ステップＳ１５１１で、計算したＺworldが、設定したしきい値Ｚworld_thrを超えると判断した場合（ｙｅｓ）、処理をステップＳ１３０９に分岐させ、校正処理を実行させる。一方、計算したＺworldが、設定したしきい値Ｚworld_thrを超えないと判断した場合（ｎｏ）、処理をステップＳ１２１２に分岐させ、校正処理を終了させる。
【００９５】
図１６は、第２の実施形態の再校正判定パラメータを使用する場合のステップＳ１３０８における実体的な判断処理のフローチャートである。ステップＳ１６００で算出した世界座標と、カメラｉ（ｉは、カメラを指定する番号である。）のＨ行列から、イメージ座標ｍｉ′を計算する。また、イメージ画像から得たイメージ座標をｍｉとする。ステップＳ１５０１では、｜ｍｉ−ｍｉ′|が、Δｍ＿ｔｈｒを超えるか否かを判断する。計算した｜ｍｉ−ｍｉ′|が、Δｍ＿ｔｈｒを超える場合（ｙｅｓ）、処理をステップＳ１３０９に分岐させ、再校正処理を実行する。一方、計算した｜ｍｉ−ｍｉ′|が、Δｍ＿ｔｈｒを超えない場合（ｎｏ）、処理をステップＳ１３１２に分岐させ、校正処理を終了させる。
【００９６】
その後、ステップＳ１６０２で、番号ｉが、カメラの台数Ｎを超えたか否かを判断し、番号ｉが、カメラの台数Ｎを超えた場合（ｙｅｓ）、処理をステップＳ１３１２に分岐させ、校正処理を終了させる。一方、ステップＳ１６０２で、番号ｉが、カメラの台数Ｎ未満の場合（ｎｏ）ステップＳ１６０３で番号ｉをインクリメントし、次のカメラの校正の要否判断および校正を、ステップＳ１６０２の判断が肯定的な結果を返すまで反復させる。
【００９７】
以上、本実施形態によれば、センサ装置に代えてカメラなど撮像装置の取り付け位置のずれによって位置誤差が拡大したことを検知し、再校正を行うことを可能とする情報処理システム、校正方法およびプログラムを提供することが可能となる。
【００９８】
これまで本発明を、実施形態をもって説明してきたが、本発明は、実施形態に限定されず、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００９９】
１００    ：情報処理システム
１１０    ：制御部
１２０    ：カメラ
１３０    ：カメラ
１４０    ：座標指示体
３０１    ：カメラ
３０２    ：表示部
３０３    ：座標指示体
３０４    ：演算部
３０７    ：変換行列計算部
４００    ：情報処理装置
４０１    ：ＣＰＵ
４０２    ：ＲＯＭ
４０３    ：ＲＡＭ
４０４    ：キーボード
４０５    ：マウス
４０６    ：ハードディスク装置
４０７    ：ボード
４０８    ：カード
４１０    ：外部読取機器
４１１    ：記録媒体
５００    ：機能ブロック
５０１    ：カメラ
５０２    ：画像処理部
５０３    ：世界座標計算部
５０４    ：再校正判定部
５０５    ：表示データ生成部
５０６    ：校正点情報保持部
５０７    ：変換行列計算部
５０８    ：変換行列保持部
５０９    ：表示制御部
５１０    ：表示部
【先行技術文献】
【特許文献】
【０１００】
【特許文献１】特開２００１−２８２４４０号公報
【図１】
0006578737.tif 000017
【図２】
0006578737.tif 000018
【図３】
0006578737.tif 000019
【図４】
0006578737.tif 000020
【図５】
0006578737.tif 000021
【図６】
0006578737.tif 000022
【図７】
0006578737.tif 000023
【図８】
0006578737.tif 000024
【図９】
0006578737.tif 000025
【図１０】
0006578737.tif 000026
【図１１】
0006578737.tif 000027
【図１２】
0006578737.tif 000028
【図１３】
0006578737.tif 000029
【図１４】
0006578737.tif 000030
【図１５】
0006578737.tif 000031
【図１６】
0006578737.tif 000032