(57)【要約】【課題】  情報処理システム、情報処理装置、座標変換方法およびプログラムを提供すること。【解決手段】  本発明の情報処理装置３００は、撮像手段が取得した注目点が存在するイメージ画像を処理する画像処理部３０２と、画像処理部３０２が識別した注目点の位置座標から世界座標を計算する世界座標計算部３０３と、計算された世界座標をディスプレイ装置の表示部に表示させるための表示データを生成する表示データ生成手部３０４と、表示データ生成手段が生成した表示データをディスプレイ装置に表示させるための表示制御部３０５とを備える。世界座標計算部３０３は、注目点が表示部面上に存在するかしないかによらず、注目点の世界座標を、イメージ画像中の位置座標と世界座標とを対応付ける座標変換手段を使用して計算している。【選択図】  図３
2016110597.tif 000002
【特許請求の範囲】
【請求項１】
表示部に相対して３次元空間中の位置を指定するための位置指示手段と、
前記位置指示手段のイメージ画像を取得する少なくとも１の撮像手段と、
前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記位置指示手段の位置座標を世界座標に変換する世界座標計算手段であって、
前記位置指示手段が前記表示部に対して接触するか、非接触かに依らず、少なくとも前記表示部を含む２次元平面上の世界座標を取得する世界座標計算手段と
を備える情報処理システム。
【請求項２】
前記座標変換手段は、３次元空間を規定する座標軸を少なくとも１次元欠いた第１座標変換手段と、前記少なくとも１次元欠いた座標変換手段から計算され、欠いた１次元を追加した第２座標変換手段を含む、請求項１に記載の情報処理システム。
【請求項３】
前記情報処理システムは、少なくとも２以上の前記撮像手段を含み、前記前記少なくとも２以上の前記撮像手段を使用して取得した世界座標と、前記第１座標変換手段により取得された世界座標とのノルムの２乗和の合計を最小とするように前記第１座標変換手段を再帰的に最適化して前記第１座標変換手段を決定する、請求項１または２に記載の情報処理システム。
【請求項４】
前記ノルムの重み付き２乗和を生成する手段を備える、請求項３に記載の情報処理システム。
【請求項５】
イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための情報処理装置であって、前記情報処理装置は、
撮像手段が取得した注目点が存在するイメージ画像を処理する画像処理手段と、
画像処理手段が識別した前記注目点の位置座標から前記世界座標を計算する世界座標計算手段と、
計算された前記世界座標をディスプレイ装置の表示部に表示させるための表示データを生成する表示データ生成手段と、
前記表示データ生成手段が生成した前記表示データを前記ディスプレイ装置に表示させるための表示制御手段と
を備え、
前記世界座標計算手段は、前記注目点が表示部面上に存在するかしないか依らず、前記注目点の前記世界座標を、前記イメージ画像中の位置座標と前記世界座標とを対応付ける座標変換手段を使用して計算する、情報処理装置。
【請求項６】
前記座標変換手段は、３次元空間を規定する座標軸を少なくとも１次元欠いた第１座標変換手段と、前記少なくとも１次元欠いた座標変換手段から計算され、欠いた１次元を追加した第２座標変換手段を含む、請求項５に記載の情報処理装置。
【請求項７】
前記情報処理装置は、少なくとも２以上の前記撮像手段からのイメージ画像を使用して取得した世界座標と、前記第１座標変換手段により取得された世界座標とのノルムの２乗和の合計を最小とするように前記第１座標変換手段を再帰的に最適化して前記第１座標変換手段を決定する変換手段計算手段を含む、請求項５または６に記載の情報処理装置。
【請求項８】
前記ノルムの重み付き２乗和を生成する手段を備える、請求項７に記載の情報処理装置。
【請求項９】
イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための情報処理装置実行可能な方法であって、前記方法は、
撮像手段が取得した注目点が存在するイメージ画像を処理するステップと、
画像処理手段が識別した前記注目点の位置座標から、前記注目点が表示部面上に存在するかしないかに依らず、前記注目点の前記世界座標を、前記イメージ画像中の位置座標と前記世界座標とを対応付ける座標変換手段を使用して計算するステップと、
計算された前記世界座標をディスプレイ装置の表示部に表示させるための表示データを生成するステップと、
生成した前記表示データを前記ディスプレイ装置に表示させるために制御するステップと
を含む、座標変換方法。
【請求項１０】
イメージ画像中の注目点の位置座標を、注目点が存在する３次元空間内の位置座標である世界座標に座標変換するための方法を実行するための情報処理装置可読なプログラムであって、前記プログラムは、情報処理装置を、
撮像手段が取得した注目点が存在するイメージ画像を処理する手段、
識別した前記注目点の位置座標から、前記注目点が表示部面上に存在するかしないかに依らず、前記注目点の前記世界座標を、前記イメージ画像中の位置座標と前記世界座標とを対応付ける座標変換手段を使用して計算する手段、
計算された前記世界座標をディスプレイ装置の表示部に表示させるための表示データを生成する手段、
生成した前記表示データを前記ディスプレイ装置に表示させるために制御するための手段、
として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、座標変換方法およびプログラムに関する。
【背景技術】
【０００２】
座標指示器（指やペン）を用いて座標入力面（ディスプレイ平面）をタッチしたりなぞってその軌跡を表示面に表示させたりする座標入力装置がある。このような座標入力装置では、撮影部の画像上の位置座標（以下イメージ座標）と、ディスプレイ平面上での位置座標（以下世界座標）を対応付けるパラメータ（以下外部変数）をあらかじめ設定しておく必要がある。これらの外部変数は、一般には、イメージ座標と世界座標の組を入力として与え、イメージ座標と、外部変数を用いて世界座標をイメージ座標に投影した点の誤差を最小にするように、最適な座標変換を行う変換行列として定義される。
【０００３】
しかしながら、従来の座標変換行列を決定する処理では、平面中の点（Z=0）の座標（x、y）しか取れないので、Z座標情報が失われ、ホバリング（非接触）の場合の位置情報を簡単に検出できないという問題があった。ホバリングとは、座標検出面に直接タッチしなくても、指をかざすだけで操作できる「ホバリング機能」と言う。例えば、スマートホンなどで、スクリーンにタッチせずに、つまりマウスのホバリングのように指を浮かしたままで位置指定を行うことを可能とする技術的事項を意味する。
【０００４】
さらに、今までの世界座標決定方法は、パラメータの最適化の指標と、ユーザにとっての適切さの指標が一致していないという問題があった。この問題をより具体的にいうと、イメージ座標で誤差があったとき、世界座標上で発生する位置誤差の大きさが場所によって異なっているため、イメージ座標の誤差を均一に最小化しても、位置誤差が極端に大きい箇所が発生しうる。一方で、ユーザが知覚するのは、タッチ点の座標と、算出された座標とのずれであり、世界座標上での位置誤差である。最適化の指標をイメージ座標上での誤差とするか、ユーザによっての適切さの指標である位置誤差とするかは、精度に反映する。このため、イメージ座標上で誤差が均一になるように最小化しても、世界座標上で極端に誤差が大きい領域が発生してしまう、という問題が起こりうる。
【０００５】
例えば、特許文献１（特許４，７５７，１４４号明細書）では、イメージ座標上での誤差が世界座標上での誤差に与える影響を、誤差の敏感度と定義し、誤差の敏感度が世界座標上で大きく異なっていることを、シミュレーション結果を元に指摘している。それに対し、誤差の敏感度が大きい箇所を重み付けしたり、誤差の敏感度が大きい箇所で設計値をもとにオフセットを設けるなど、誤差を軽減する方法が提案されているが、この方法では一部を重視すると他方の誤差が大きくなるため、誤差が均一になるようにバランスをとることが難しいという問題があった。この方法では、パラメータの最適化の指標と、ユーザにとっての適切さの指標が一致していない、という根本的な問題が解決されていなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、接触または非接触を問わず、イメージ画像上の位置座標を３次元空間中の物理座標である世界座標に変換することを可能とする、情報処理システム、情報処理装置、座標変換方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理システムは、表示部に相対して３次元空間中の位置を指定するための位置指示手段と、前記位置指示手段のイメージ画像を取得する少なくとも１の撮像手段と、前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた３次元空間上の位置座標である世界座標に変換するための座標変換手段と、前記座標変換手段を使用して前記イメージ画像中の前記位置指示手段の位置座標を世界座標に変換する世界座標計算手段とを備え、前記世界座標計算手段は、前記位置指示手段が前記表示部に対して接触するか、非接触かに依らず、少なくとも前記表示部を含む２次元平面上の世界座標を取得する。
【図面の簡単な説明】
【０００８】
【図１】本発明が適用される情報処理システム１００の概略的な実施形態を示す。
【図２】本実施形態の制御部１１０の機能を提供する、情報処理装置２００のハードウェア構成を示す
【図３】本実施形態の制御部１１０として機能する情報処理装置２００の機能ブロック３００を示す図。
【図４】本実施形態の変換行列計算部３０７の詳細な機能構成を示した図。
【図５】変換行列計算部３０７および世界座標計算部３０３が実行する処理のデータフローを示す図。
【図６】本実施形態で、非接触方式（ホバリング）により位置指定される態様を可能とする変換行列計算部３０７および世界座標計算部３０３の処理のデータフローの実施形態６００を示す
【図７】本実施形態において変換行列Ｈを計算する処理のフローチャート。
【図８】計算したＨ行列から非接触位置指定に対応するための第２変換行列であるＰ行列を計算するためのフローチャート。
【図９】本実施形態において、接触位置指示方式におけるディスプレイ装置上の世界座標を計算する処理のフローチャート。
【図１０】使用して非接触位置指定方式における世界座標を計算する処理のフローチャート。
【図１１】本実施形態で使用する記号の定義を説明する図。
【図１２】本実施形態の好ましい座標入力方法を可能とする情報処理システム１２００の概略図を示す図。
【図１３】本実施形態の変換行列Ｈ１、Ｈ２の決定のための処理のフローチャート。
【図１４】重みｗを、不満足度に関する誤差を変数とした関数として与える実施形態を示す図。
【図１５】重みｐを、世界座標の関数として与える変更例を示す図。
【図１６】本実施形態の重み付けノルム２乗和を使用した評価関数を用いる最尤化処理のフローチャート。
【符号の説明】
【０００９】
１００    ：情報処理システム
１１０    ：制御部
１２０、１３０    ：撮影部
１４０    ：位置指示装置
１５０    ：ディスプレイ装置
２００    ：情報処理装置
２０１    ：ＣＰＵ
２０２    ：ＲＯＭ
２０３    ：ＲＡＭ
２０４    ：キーボード
２０５    ：マウス
２０６    ：ハードディスク装置
２０７    ：ボード
２０８    ：ネットワーク・カード
２１０    ：外部読取機器
２１１    ：記録媒体
３００    ：機能ブロック
３０１    ：撮影部
３０２    ：画像処理部
３０３    ：世界座標計算部
３０４    ：表示データ生成部
３０５    ：表示制御部
３０６    ：校正点情報保持部
３０７    ：変換行列計算部
３０９    ：表示部
４０１    ：撮影部
４０２    ：撮影部
４０３    ：画像処理部
４０４    ：構成行列計算部
４０４ａ  ：読み取り部
４０４ｂ  ：演算部
４０５    ：世界座標計算部
【発明を実施するための形態】
【００１０】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。
【００１１】
＜セクション１：システム構成＞
図１は、本発明が適用される情報処理システム１００の概略的な実施形態を示す。情報処理システム１００は、制御部１１０と、ディスプレイ装置１５０と、撮影部を含む複数の撮影部１２０、１３０とを含んでいる。制御部１１０は、本実施形態の情報処理装置がその機能を提供し、制御部１１０は、ディスプレイ装置１５０上でのユーザによる位置指示装置１４０の動作を撮影部１２０、１３０からの画像情報を使用して解析し、ユーザの動作に対応した像を生成し、像表示制御を行ってディスプレイ装置１５０上に表示する。
【００１２】
撮影部１２０、１３０は、ディスプレイ装置１５０に接触または近接した１で行われるユーザ動作を検出し、ユーザ動作がディスプレイ装置１５０上の座標（ｘ，ｙ，ｚ）（以下、世界座標として参照する。）を、撮影部１２０、１３０が取得した画像情報から取得する。このため、本実施形態では、ユーザがディスプレイ装置１５０にタッチしているか、非接触（以下、ディスプレイ装置１５０に非接触で入力する入力態様を、ホバリング入力として参照する。）であるかによらず、ユーザ動作から、ユーザ動作に対応する像を生成し、ディスプレイ装置１５０に表示させることが可能となる。なお、図１には、以後の説明の便宜上、撮影部１２０、１３０が取得するイメージ画像中の位置座標を、それぞれ（ｘ１，ｙ１）、（ｘ２，ｙ２）として示す。
【００１３】
図２は、本実施形態の制御部１１０の機能を提供する、情報処理装置２００のハードウェア構成を示す。情報処理装置２００は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、キーボード２０４、マウス２０５を備えており、これらのハードウェア要素は、適切なバス（システムバスおよびバスブリッジ）により相互接続されている。ＣＰＵ２０１は、ＲＡＭ２０３に格納されたプログラムを読み出し、実行することにより、制御部１１０の機能を提供する。ＲＯＭ２０２は、情報処理装置２００の入出力機能を提供するためのＢＩＯＳ(Basic Input Output System)を格納し、ＰＯＳＴ機能を提供し、ＣＰＵ２０１との間の入出力を可能とする。
【００１４】
また、ＲＯＭ２０２としては、随時書換え可能なＲＯＭ、いわゆるＥＥＰＲＯＭなども含んで構成することができる。このような随時書き換え可能なＲＯＭには、情報処理装置２００が使用する個別的なデータやユーザデータを格納させておくことができる。キーボード２０４、マウス２０５は、情報処理装置２００への入出力を可能とするものであり、例えばＰＣＩバス・ブリッジを介したＵＳＢ（Universal Serial Bus)方式で、情報処理装置２００に接続されている。
【００１５】
さらに情報処理装置２００は、ハードディスク装置２０６、グラフィックス・ボード２０７、ネットワーク・カード２０８を備えている。ハードディスク装置２０６は、ＯＳ（オペレーティング・システム）、各種のデバイス・ドライバおよび各種のアプリケーション・プログラムを格納している。ＣＰＵ２０１は、起動されると、ハードディスク装置２０６にアクセスして、ＯＳ、デバイス・ドライバ、各種アプリケーション・プログラムをＲＡＭに読み込み、処理を実行する。グラフィックス・ボード２０７は、ディスプレイ装置１５０に対して出力を行うための処理を実行する処理部であり、グラフィックス・プロセッサを搭載することが好ましい。ネットワーク・カード２０８は、情報処理装置２００をインターネット、ＬＡＮといったネットワークに接続するため、ＯＳＩ基本参照モデルの第１層から第２層の機能を提供する。情報処理装置２００は、各種の外部接続機器との間の入出力を可能とするインタフェース（Ｉ／Ｆ）２０９を備えており、ＣＤ−ＲＯＭ、ＭＯその他の外部読取機器２１０による記録媒体２１１との間の相互通信を可能としている。
【００１６】
図３は、本実施形態の制御部１１０として機能する情報処理装置２００の機能ブロック３００を示す。情報処理装置２００は、ＣＰＵ２０１がプログラムを実行することにより、図３に示す各機能ブロックを情報処理装置２００上に構成する。情報処理装置２００の機能ブロック３００は、画像処理部３０２と、校正点情報保持部３０６と、変換行列計算部３０７とを含んでいる。
【００１７】
画像処理部３０２は、撮影部としての機能を有する撮影部３０１からの画像情報を取得して、位置指示装置１４０などの画像特徴などを解析する。校正点情報保持部３０６は、ディスプレイ装置１５０の表示有効領域に設定した校正点の世界座標を格納し、撮影部３０１と、ディスプレイ装置１５０との間の相対的位置の校正を可能としている。
【００１８】
変換行列計算部３０７は、画像処理部３０２が取得した校正点に関する画像情報と、校正点情報とを使用して、撮影部３０１の撮像平面と、世界座標（ディスプレイ装置１５０上の有効領域）との間の変換行列を計算し、各座標系の間の座標変換を可能としている。変換行列計算部３０７は、生成した変換行列を適切な記憶領域に格納する。
【００１９】
さらに情報処理装置２００は、その機能ブロックとして、世界座標計算部３０３と、表示データ生成部３０４と、表示制御部３０５とを含んでいる。世界座標計算部３０３は、画像処理部３０２の画像解析の結果および変換行列を使用して画像情報の注目点の世界座標を計算する。表示データ生成部３０４は、生成した注目点の世界座標を使用してディスプレイ装置１５０上に表示させるべきデータを生成し、表示制御部３０５に例えばビデオデータとして送付する。表示制御部３０５は、当該データをディスプレイ装置１５０のＬＣＤパネルとして構成される表示部３０９に表示させている。
【００２０】
以上の機能は、ユーザが位置指示装置１４０で、ディスプレイ装置１５０にタッチするか否かによらず、画像解析により、ディスプレイ装置１５０上に画像を表示させることを可能としている。このことにより、本実施形態では、接触および非接触のホバリング状態の両方を検出して、像制御することが可能となる。
【００２１】
図４は、本実施形態の変換行列計算部３０７の詳細な機能構成を示した図である。なお、図４に示した実施形態では、撮影部として２つの撮影部を使用するものとして説明する。撮影部４０１、４０２は、各々が取得した画像情報を画像処理部４０３に送付する。画像処理部４０３は、撮影部４０１、４０２からの画像情報を受領して、説明する実施形態では、各画像情報を構成行列計算部４０４に送付する。
【００２２】
構成行列計算部４０４は、読み取り部４０４ａおよび演算部４０４ｂを備えており、受領した各撮影部４０１、４０２の画像データを使用して世界座標中での位置誤差を最小とするようにして、同時に各撮影部４０１、４０２に対する変換行列を計算する。世界座標計算部４０５は、計算された変換行列を使用して世界座標を計算し、ディスプレイ装置１５０の表示部３０９に世界座標に対応する位置に像を表示させている。
【００２３】
＜セクション２：変換行列および世界座標の算出処理＞
以下、本実施形態における変換行列の詳細および世界座標の生成処理を説明する。図５は、変換行列計算部３０７および世界座標計算部３０３が実行する処理のデータフローを示す。変換行列計算部３０７は、ボックス５１１でユーザ指示された校正点の画像情報を取得する。この画像情報は、ボックス５１２で画像解析され、指示された校正点の世界座標と撮影部画像の画像位置とが対応付けられる。ディスプレイ装置１５０この対応付けは、撮影部の画像平面とディスプレイ装置１５０との間の対応付けは、各カーテシアン座標系の回転行列および各画像中心の並進ベクトルによって行われる。
【００２４】
この対応付けにより、変換行列Ｈが計算される。なお、Ｈ行列の計算についてはより詳細に後述する。計算されたＨ行列は、周知のデータ・フォーマットとして、適切な記憶領域に格納される。世界座標計算部３０３は、ボックス５５１でユーザによる手書動作の画像情報を取得する。そして、ボックス５５２で画像情報中での位置指示装置の先端の座標を取得する。その後、ボックス５５３で、画像情報中での座標を世界座標に写像することにより、ディスプレイ装置１５０上での像表示を可能とする。
【００２５】
図５に示した実施形態は、位置指示装置の先端がディスプレイ装置１５０の表面にある（表示面に垂直な方向における座標が０であることを前提とする、すなわちユーザがディスプレイ装置１５０の表示部に位置指示装置を接触させる場合の実施形態である。以下、本実施形態における世界座標の算出アルゴリズムを説明する。以下、校正点の世界座標を、(Xworld,Yworld,Zworld)とし、校正点を撮影した時のイメージ面上での座標（以下、イメージ座標として参照する。）を(Ximage,Yimage)とする。
【００２６】
世界座標と、イメージ座標との間は、座標系の回転行列および座標中心のずれに対応する並進ベクトル下記式（１）により定義される。
【００２７】
【数１】
2016110597.tif 000003
【００２８】
上記式中、λは、世界座標とイメージ座標との間のサイズの違いを対応付ける比例定数であり、rijが回転行列の要素であり、tlmが並進ベクトルの要素である。ここで、回転並進同時変換の行列Ｐを下記式（２）で定義する。
【００２９】
【数２】
2016110597.tif 000004
【００３０】
上記式中、ｒｉは、ｉ（ｉ＝X，Y，Z）軸回りの回転角に関連する回転の列ベクトルであり、ｔは、座標系間の並進ベクトルである。
【００３１】
２−１：接触位置指定の態様
本セクションでは、ユーザが位置表示装置においてディスプレイ装置１５０のディスプレイ面上に直接タッチして位置を指示する実施形態を検討する。ユーザが位置指示装置で直接ディスプレイ平面上にタッチして位置を示す場合、Zworldは、０に等しい。このため、式（１）からは、Zworldが関連する要素を無視することができ、上記行列Ｐは、３×３の行列Ｈとして下記式（３）に変換できる。
【００３２】
【数３】
2016110597.tif 000005
【００３３】
行列Ｈを以降の処理を記述の目的で各軸X，Y，Zにそれぞれ付すサフィックスとして１，２，３を割り当て、ｈｉとして列ベクトルで表記すると、以下の通りに記述できる。
【００３４】
【数４】
2016110597.tif 000006
【００３５】
ここで、式（３）を要素計算し、λを消去して９次元の行および列ベクトルの積の形式に変形すると、下記式（５）が得られる。
【００３６】
【数５】
2016110597.tif 000007
【００３７】
説明する実施形態ではZworld＝０を想定しているため、Ｈ３３を定数１に設定する。このとき未知変数が８つとなり、上記式（５）を解くためには、最低４個の校正点の情報が得られれば良く、４点以上の情報が使用できる場合、最小二乗法を使用してH11〜H33をフィッティングすることで、変換行列の要素を得ることができる。
【００３８】
世界座標の算出は、以下の通りに行うことができる。上記式（３）のX軸およびY軸について要素を計算し、Xworld，Yworldを変数として行列表示すると、下記式（６）が得られる。
【００３９】
【数６】
2016110597.tif 000008
【００４０】
上記式（６）の左から逆行列を乗じてXworld，Yworldを解くと、下記式（７）が得られる。
【００４１】
【数７】
2016110597.tif 000009
【００４２】
上記式（７）中、画像処理部３０２の解析において、Ximage,Yimageは解析できるので、世界座標(Xworld,Yworld,0)を得ることができる。なお、２つの撮影部を使用することで、三角測量の解析方法を使用することで、より正確な世界座標を取得することが可能となる。
【００４３】
以上の処理は、Zworldの情報を排除して世界座標を算出するので、ユーザの動作がディスプレイ装置１５０の表示部に接触した実施形態について適用される。
【００４４】
２−２：非接触位置指定（ホバリング）の態様
セクション２−１で説明した処理は、Zworldをアプリオリに０であると仮定する接触位置指示方式に対応できるが、Zworldの情報を省略しているので、ホバリング方式には適用できない。ホバリング方式に対応するためにはさらに他の処理が必要になる。以下、ホバリング方式による位置指定を可能とする処理について説明する。ホバリング方式では、式（２）の行列Ｐを再計算させることもできる。しかしながら、すでに、Ｈ行列が求められているので、これを利用することで、陽に行列Ｐを再計算させることなく、ホバリング方式に対しても位置指示認識が可能となる。当該実施形態では、決定された行列Ｈを使用して座標系の回転を校正した後、幾何光学的関係を適用して画像情報からZworldを決定する。
【００４５】
この処理は、行列Ｈから行列Ｐの要素を計算する処理で実現でき、すでに計算済みの行列Ｈを使用し、以下の通り算出する。行列Ｈは、
【００４６】
【数８】
2016110597.tif 000010
であり、行列Ａは、撮影部の内部パラメータであり、下記式（９）で与えられる。
【００４７】
【数９】
2016110597.tif 000011
【００４８】
また、λ１、λ３は、式（１）および式（３）から、下記式（１０）で与えられる。
【００４９】
【数１０】
2016110597.tif 000012
【００５０】
(cx,cy)は、画像中心であり、(fx,fy)は、ピクセル単位で表される焦点距離である。この内部パラメータ行列Ａは、例えば、A Flexible New Technique for Camera Calibration, Zhengyou Zhang. December 2, 1998の方法により予め決定することができる。
【００５１】
上記式（８）中、[h1 h2 h3]と、[r1 r2 r3 t]とに関し、r3は、r1,r2と直交関係にあるので、ベクトルの外積としてr3=r1×r2となる。この関係を使用し、式（８）の左からＡ−１を乗じると、以下の関係が得られ、Ｈ行列からＰ行列を計算することができる。
【００５２】
【数１１】
2016110597.tif 000013
なお、上記式（１１）中、λは、下記式（１２）で与えられる規格化定数である。
【００５３】
【数１２】
2016110597.tif 000014
【００５４】
以上のように得られたＰ行列は、ホバリング方式で位置指定を行うための校正パラメータとして適切な記憶領域に記憶する。
【００５５】
図６は、本実施形態で、非接触方式（ホバリング）により位置指定される態様を可能とする変換行列計算部３０７および世界座標計算部３０３の処理のデータフローの実施形態６００を示す。図６に示した変換行列計算部３０７は、ボックス６１１でユーザ指示された校正点の情報を取得し、ボックス621に送り、世界座標と画像位置とを対応付けし、ボックス６１３で、図５で説明したと同様に変換行列（Ｈ行列）を計算する。計算されたＨ行列は、Ｐ行列を計算するためにボックス６１４に送られる。
【００５６】
一方、変換行列計算部３０７は、式（９）の内部パラメータであるＡ行列を測定し、適切な記憶領域に記憶させる。このＡ行列は、Ｈ行列の計算が終了した後、ボックス６１４に送られる。ボックス６１４では、Ｈ行列の値およびＡ行列の値からＰ行列を計算する。また、世界座標計算部３０３は、ボックス６５１で、ユーザがホバリングで指定した画像を取得する。ボックス６５２では、画像情報中で、位置指示装置の先端の座標を取得する。非接触位置指定の場合、Ｈ行列ではなく、Ｐ行列を変換行列して参照し、ボックス６５３でユーザにより非接触で指示された世界座標を取得する。
【００５７】
以上の処理によって、本実施形態によれば、ハードウェア構成を変更する事無く、接触位置指示方式および非接触位置指示方式により示されたディスプレイ装置上の位置座標を決定する事ができる。
【００５８】
図７は、本実施形態において変換行列Ｈを計算する処理のフローチャートを示す。処理はステップＳ７００から開始し、ステップＳ７０１でユーザが指定した校正点を含むイメージ画像を撮影部により取得する。ステップＳ７０２で、取得したイメージ画像中の指示点のイメージ座標を取得する。その後、予め保存していた校正点の世界座標を読み出し、ステップＳ７０４で構成行列Ｈを計算する。ステップＳ７０５では、計算した変換行列Ｈの要素を適切な形式で記憶領域に格納しステップＳ７０６で処理を終了する。
【００５９】
図８は、計算したＨ行列から非接触位置指定に対応するための第２変換行列であるＰ行列を計算するためのフローチャートを示す。図８の処理は、ステップＳ８００から開始し、ステップＳ８０１で、図７に説明した処理によって変換行列Ｈを計算する。ステップＳ８０２では、すでに測定してある内部パラメータについてのＡ行列を読み出し、ステップＳ８０３で、第２変換行列Ｐを計算する。その後、第２変換行列Ｐを適切なフォーマットで保存し、処理をステップＳ８０５で終了する。
【００６０】
図９は、本実施形態において、接触位置指示方式におけるディスプレイ装置上の世界座標を計算する処理のフローチャートである。処理は、ステップＳ９００から開始し、ステップＳ９０１で、ユーザがディスプレイ装置に対して手書き動作を行う。ステップＳ９０２で撮影部３０１は、ユーザの手書き動作を撮影し、その撮影部によりイメージ画像を取得する。その後、ステップＳ９０３でイメージ画像中の指示点のイメージ座標を取得する。
【００６１】
ステップＳ９０４では、変換行列Ｈを読み出し、ステップＳ９０５で、式（７）を使用して、世界座標（Xworld，Yworld）を計算し、ステップＳ９０６でこれを出力する。その後、例えばディスプレイ装置上にユーザの描画動作に対応した画像を表示させ、ステップＳ９０７で処理を終了する。
【００６２】
さらに以下、図１０を使用して非接触位置指定方式における世界座標を計算する処理を説明する。処理は、ステップＳ１０００から開始し、ステップＳ１００１で、ユーザがディスプレイ装置に対して手書き動作を行う。ステップＳ１００２で撮影部３０１は、ユーザの手書き動作を撮影し、その撮影部によりイメージ画像を取得する。その後、ステップＳ１００３でイメージ画像中の指示点のイメージ座標を取得する。
【００６３】
ステップＳ１００４では、変換行列Ｈを読み出し、ステップＳ１００５で、式（７）を使用して、世界座標（Xworld，Yworld）を計算し、ステップＳ１００６でこれを出力し、例えばディスプレイ装置上にユーザの描画動作に対応した画像を表示させ、ステップＳ１００７で処理を終了する。
【００６４】
以上の処理によって、ユーザが接触方式で、位置指示を行う場合でも、非接触方式で位置指示を行う場合でもディスプレイ装置上の世界座標を決定し、ディスプレイ装置上に表示させる事が可能となる。なお、本実施形態では、接触指示方式および非接触指示方式をマニュアルで設定してそれぞれ処理を行う事もできる。しかしながら、他の実施形態では、ユーザの描画動作が異なる以外、世界座標を計算する処理は、変換行列として、Ｈ行列を使用するか、Ｐ行列を使用するかが実質的な相違である。
【００６５】
これらの変換行列は、いずれも初期の校正処理により、予め計算し、適切な記憶領域に格納されている。このため、ユーザの描画動作を解析した後、Ｈ行列およびＰ行列をそれぞれ使用して世界座標を計算させ、Ｈ行列を使用して生成された世界座標Ｈ、Ｐ行列を使用して生成された世界座標Ｐの位置座標の間のノルムＤ＝｛（ΔXworld）２＋（ΔYworld）２｝１／２が設定したしきい値ε以下の場合には、接触方式による指定とし、世界座標Ｈをその出力とする事ができる。
【００６６】
また、上記ノルムＤが、上述したしきい値εを超える場合には、ユーザが非接触位置指示方式を使用しているものとして、世界座標の出力として世界座標Ｐをその出力とすることができる。この他、複数の撮影部３０１を設置して、一方を接触位置指示のための専用手段とし、他方を非接触位置指示のための専用手段として構成することもできる。その他、接触位置指示方式と、非接触位置指示方式とで、どちらを使用するかの判断については、特定の目的に応じて適宜設定することができる。
【００６７】
＜セクション３：世界座標の視覚的誤差を最小とした変換行列の決定＞
本実施形態は、最小１の撮影部を使用することで、世界座標を計算することも可能であるが、より精度を改善するために複数の撮影部を使用して、カメラ測量を使用して世界座標を決定することもできる。このためには、複数の撮影部を、世界座標の誤差を最小とするように効率的に変換行列を決定する必要がある。
【００６８】
以下、本実施形態の実施形態である複数の撮影部の同時校正方法について説明する。
【００６９】
３−１：記号の定義
本実施形態で使用する記号の定義を、図１１を参照して説明する。
○(Ximage,Yimage)：イメージ座標であり、各カメラの画像面を表す。空間中の物体を撮影すると、この平面上に投影される。
○(Xcamera, Ycamera, Zcamera)：カメラ座標であり光学中心Cを原点に持ち、イメージ座標のXimage軸、Yimage軸に平行に、Xcamera軸、Ycamera軸が定義される。３次元空間中で、カメラ光学系の内部座標軸である。カメラの数だけ、異なるカメラ座標が存在する。
○(Xworld,Yworld,Zworld)：世界座標であり、説明する実施形態では、表示面の左上を原点とし、横方向をXworld軸、縦方向をYworld軸として定義する。なお、表示面は、Zworld=0面である。３次元空間中のカメラからは独立して、１つだけ存在する実空間を定義する座標軸である。
○外部変数：世界座標と、イメージ座標（カメラ座標）との対応関係を表すパラメータ行列であり、世界座標と、イメージ座標（カメラ座標）との間の座標変換を可能とし、校正処理において決定される座標変換行列、すなわちＨ行列に相当する。
【００７０】
３−２：第１実施形態
以下、本実施形態を詳細に説明する。図１２は、本実施形態の好ましい座標入力方法を可能とする情報処理システム１２００の概略図を示す。情報処理システム１２００は、ディスプレイ装置のＬＣＤ、タッチパネルなどとして形成される表示部１２０２と、表示部１２０２の適切な位置、例えば角部に配置される複数の撮影部１２０１と、演算部１２０４とを含むことができる。撮影部１２０１は、ユーザが保持する位置指示装置１２０３の特定の箇所、例えば先端部の位置をイメージ画像として取得する。
【００７１】
撮影部１２０１が取得したイメージ画像は、ＣＰＵ、メモリなどを備える演算部１２０４に送られる。演算部１２０４は、変換行列Ｈを使用して位置指示装置１２０３の示した位置の世界座標を決定する。決定された世界座標は、所定のビデオデータに変換された後、表示部１２０２に送付されて、ディスプレイ装置により、表示部１２０２上に表示される。
【００７２】
図１２に示した実施形態は、少なくとも２以上の撮影部１２０１を使用し、三角測量技術を使用して、世界座標(Xworld,Yworld,Zworld)を決定する場合に好ましく用いる事ができる。また、図１２の情報処理システム１２００は、２つの撮影部１２０１をそれぞれ独立して世界座標決定を行い、その平均を使用して世界座標を精度良く決定するためにも使用できる。
【００７３】
上述した目的のため、式（３）を変形して下記式（１３）とする。
【００７４】
【数１３】
2016110597.tif 000015
【００７５】
この式（１３）に左から逆行列を乗じて変形すると、下記式（１４）が得られる。
【００７６】
【数１４】
2016110597.tif 000016
【００７７】
式（１４）から明らかなように、Ｈ行列および１のイメージ座標が決定されれば、対応する世界座標(Xworld,Yworld,0)が決定できる。撮影部の校正は、言い換えると、カメラ座標と世界座標との間の回転角度を最尤となるように決定する事と言うことができる。理論上では１つの撮影部があれば世界座標の算出を行うことができる。しかしながら、本発明では、ディスプレイの高さ方向のサイズを抑えるために、撮影部をディスプレイ平面にできるだけ近くなるように設置する事が好ましい。
【００７８】
このため、カメラ主点位置と投影点の世界座標を結ぶ光線は、表示面に平行に近くなるので、光線方向の世界座標がイメージ座標上の誤差の影響を大きく受けやすくなってしまう。このため、本実施形態では、少なくとも２つの撮影部を配置し、２つの光軸から取得したイメージ画像を使用して世界座標を求めるようにすることができる。
【００７９】
この目的で、上記式（１３）を書き下し、下記式（１５）、（１６）で与えられる２つの方程式を得る。
【００８０】
【数１５】
2016110597.tif 000017
【００８１】
【数１６】
2016110597.tif 000018
【００８２】
式（１５）の光学上の意義は、カメラ主点Ｃと、Ximage=Ximagejを含む平面が、Zworld=0の面を横切る直線を意味する。また、式（１６）は、カメラ主点Ｃと、イメージ平面上のYimage=Yimagej直線を含む平面と、Zworld=0平面が交わる直線をあらわす。表示面に対し略平行に配置されるという影響を改善する目的で、本実施形態では、式（１４）を使用するのではなく、２つの撮影部１２０１を使用し、式（１３）を解くことにより、世界座標を算出する。
【００８３】
ここで、第１撮影部により決定されたイメージ座標ｍ1_i、第２撮影部により決定されたイメージ座標ｍ2_i、第１撮影部の変換行列Ｈ１、第２撮影部の変換行列Ｈ２として、与えられる個々の世界座標を下記式（１７）で定義する。
【００８４】
【数１７】
2016110597.tif 000019
【００８５】
ここで、評価関数を、ユーザにより知覚される量である下記式（１８）に設定する。すなわち、２つの撮影部を使用して式（１３）から決定された世界座標を、世界座標Ｍｉとしたとき、各撮影部でのＨ行列をそれぞれ使用して計算した世界座標である式（１７）の世界座標とのノルムの二乗和を、評価関数として定義する。
【００８６】
【数１８】
2016110597.tif 000020
【００８７】
すなわち、本実施形態の技術的意義は、式（１３）を使用して直接解くことにより得た世界座標に対する測定点の誤差を、撮影部に対して初期的に得られた変換行列Ｈ１、Ｈ２から得られた世界座標とのノルムの２乗和が最も小さくなるように、変換行列Ｈ１、Ｈ２を最尤法により最適化決定することである。
【００８８】
図１３に、本実施形態の変換行列Ｈ１、Ｈ２の決定のための処理のフローチャートを示す。図１３の処理は、ステップＳ１３００から開始し、ステップＳ１３０１でｊ＝１に設定する。ステップＳ１３０２で、Ｍｉと、ｍj_1とを、式（１３）に代入してＨｊの初期解を決定する。ステップＳ１３０３で、ｊ＜２を判定し、当該判定が肯定的な結果を返す場合（ｙｅｓ）、ステップＳ１３０７で、ｊをインクリメントした後、処理をステップＳ１３０２に戻して、全部の変換行列Ｈｊの初期値を決定する。
【００８９】
一方、ステップＳ１３０３の判断が否定的な結果を返す場合（ｎｏ）、説明する実施形態では、関連する２の撮影部に関して変換行列Ｈｊの初期値が決定されたので、処理をステップＳ１３０４に渡す。ステップＳ１３０４では、Ｈ１、Ｈ２の初期解を初期値とし、これらの初期値を評価関数式（１８）に代入し、非線形最適化法であるLevenberg-Marquardt法を使用して最適化する。最適化終了後、ステップＳ１３０５で、最適解のＨ１、Ｈ２を記憶領域に各変換行列として適切な形式で格納し、ステップＳ１３０６で処理を終了する。
【００９０】
本実施形態の校正行列決定方法によれば、位置決め誤差を含む世界座標の決定からユーザが認識する世界座標のずれが最小となるように変換行列を決定することが可能となり、より高精度の位置決めを可能とする。なお、当該処理は、図３に示した演算部の機能ブロック３００における変換行列計算部３０７の機能として実装することができる。
【００９１】
３−３：第２実施形態
最尤化処理を適用する目的は、世界座標の誤差を最小とすることで、ユーザが、違和感の無い座標表示を提供することで、ユーザの満足度を最大化すること、ということができる。例えば、世界座標上の誤差＝ペン先と描画位置のずれが大きいと、ユーザは書きにくさを感じるため、世界座標上の誤差が大きいほど、ユーザの不満足度は高まるものと考えるのが妥当である。イメージ座標上での誤差を最小化することは、間接的には世界座標上での誤差を小さくすることにも関係するため、ユーザの満足度を高める効果を有する。このため、ユーザの満足度により直結する指標を用いて最尤化処理を行うことで、ユーザの満足度を最大化させることができる。
【００９２】
この観点から、第１実施形態では、世界座標上での誤差を評価関数として、最適化を行った。第１実施形態は、その前提として、ユーザの不満足度が、世界座標上での誤差に線形的に依存するものとしている。ところで、ユーザの誤差に対する感性上の認識性は、必ずしもリニアな関係であるとは言えず、例えば、図１４に示すように、一定の誤差までは、不満足度をまったく感じず、或感覚上のしきい値Ｅｔｈを超えた時から誤差に依存する不満足度が増大し始めるということができる。
【００９３】
この観点から、本実施形態では、校正処理を行う場合の評価関数に用いる指標を、よりユーザにとっての満足度を反映するものにするため、世界座標上の誤差に重み付けを行う。Ｈ行列の初期解を第１実施形態と同様に、式（１３）を使用して直接線形最小二乗法で求める。その後、Ｈ行列の最尤決定処理の段階で、ユーザにとっての満足度を反映するように、世界座標上での誤差に重み付けをし、それを評価関数として、解を最適化する。第２実施形態の処理を以下、詳細に説明する。
【００９４】
線形最小二乗法で計算される世界座標を式（１７）で与える。さらに、本実施形態では、世界座標上での誤差を、線形最小二乗法により得たＨ１、Ｈ２で与えられる世界座標と実際の世界座標Ｍｉとの距離(ノルム）として下記式（１９）で与える。
【００９５】
【数１９】
2016110597.tif 000021
【００９６】
次いで、不満足度に関する重み付けを、図１４に示すｗを、誤差の関数として、実験的に与える。この重み付けを使用して、評価関数式（２０）を以下の通り定義する。
【００９７】
【数２０】
2016110597.tif 000022
【００９８】
上記式（２０）は、第１実施形態の評価関数に対し、世界座標上の誤差(ノルム）の２乗に重み関数ｗ（誤差）を乗じた、重み付けノルム２乗和を生成する技術的意義を与える。上記式（２０）を使用する場合、誤差の小さな領域ではなく、誤差の大きな領域を考慮して最尤化処理を行うことができるので、よりユーザの満足度を向上させることができる。
【００９９】
また、第２実施形態の変更例としては、重みｐ(world)を、世界座標の関数として図１５のように定義する。図１５に示した実施形態１５００では、重みｐ(world)は、表示面に相似的に、階段関数として定義され、中心部１５３０で重みを高く、順次、表示部の端部に近づくにつれて重み１５２０、１５１０として漸減するように設定されている。
【０１００】
図１５の重み付けを使用した場合の評価関数の実施形態を、式（２１）に示す。
【０１０１】
【数２１】
2016110597.tif 000023
【０１０２】
本変更例によれば、ユーザが尤も描画処理を行う可能性の高い箇所を重点的に最尤化することができ、ユーザの描画動作に関連して誤差を最小化させることができる。
【０１０３】
図１６は、本実施形態の重み付けノルム２乗和を使用した評価関数を用いる最尤化処理のフローチャートを示す。図１６の処理は、ステップＳ１６００から開始し、ステップＳ１６０１でｊ＝１に設定する。ステップＳ１６０２で、Ｍｉと、ｍj_1とを、式（１３）に代入してＨｊの初期解を決定する。ステップＳ１６０３で、ｊ＜２を判定し、当該判定が肯定的な結果を返す場合（ｙｅｓ）、ステップＳ１６０７で、ｊをインクリメントした後、処理をステップＳ１６０２に戻して、全部の変換行列Ｈｊの初期値を決定する。
【０１０４】
一方、ステップＳ１６０３の判断が否定的な結果を返す場合（ｎｏ）、説明する実施形態では、関連する２の撮影部に関して変換行列Ｈｊの初期値が決定されたので、処理をステップＳ１６０４に渡す。ステップＳ１６０４では、Ｈ１、Ｈ２の初期解を初期値とし、これらの初期値を評価関数式（２０）または（２１）に代入し、非線形最適化法であるLevenberg-Marquardt法を使用して最適化する。最適化終了後、ステップＳ１６０５で、最適解のＨ１、Ｈ２を記憶領域に各変換行列として適切な形式で格納し、ステップＳ１６０６で処理を終了する。
【０１０５】
これまで本発明を、実施形態をもって説明してきたが、本発明は、実施形態に限定されず、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【先行技術文献】
【特許文献】
【０１０６】
【特許文献１】特許４，７５７，１４４号明細書
【図１】
2016110597.tif 000024
【図２】
2016110597.tif 000025
【図３】
2016110597.tif 000026
【図４】
2016110597.tif 000027
【図５】
2016110597.tif 000028
【図６】
2016110597.tif 000029
【図７】
2016110597.tif 000030
【図８】
2016110597.tif 000031
【図９】
2016110597.tif 000032
【図１０】
2016110597.tif 000033
【図１１】
2016110597.tif 000034
【図１２】
2016110597.tif 000035
【図１３】
2016110597.tif 000036
【図１４】
2016110597.tif 000037
【図１５】
2016110597.tif 000038
【図１６】
2016110597.tif 000039