JP2016110597A - 情報処理システム、情報処理装置、座標変換方法およびプログラム - Google Patents
情報処理システム、情報処理装置、座標変換方法およびプログラム Download PDFInfo
- Publication number
- JP2016110597A JP2016110597A JP2014260634A JP2014260634A JP2016110597A JP 2016110597 A JP2016110597 A JP 2016110597A JP 2014260634 A JP2014260634 A JP 2014260634A JP 2014260634 A JP2014260634 A JP 2014260634A JP 2016110597 A JP2016110597 A JP 2016110597A
- Authority
- JP
- Japan
- Prior art keywords
- image
- world
- coordinate
- coordinates
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
【課題】 情報処理システム、情報処理装置、座標変換方法およびプログラムを提供すること。【解決手段】 本発明の情報処理装置300は、撮像手段が取得した注目点が存在するイメージ画像を処理する画像処理部302と、画像処理部302が識別した注目点の位置座標から世界座標を計算する世界座標計算部303と、計算された世界座標をディスプレイ装置の表示部に表示させるための表示データを生成する表示データ生成手部304と、表示データ生成手段が生成した表示データをディスプレイ装置に表示させるための表示制御部305とを備える。世界座標計算部303は、注目点が表示部面上に存在するかしないかによらず、注目点の世界座標を、イメージ画像中の位置座標と世界座標とを対応付ける座標変換手段を使用して計算している。【選択図】 図3
Description
本発明は、情報処理システム、情報処理装置、座標変換方法およびプログラムに関する。
座標指示器(指やペン)を用いて座標入力面(ディスプレイ平面)をタッチしたりなぞってその軌跡を表示面に表示させたりする座標入力装置がある。このような座標入力装置では、撮影部の画像上の位置座標(以下イメージ座標)と、ディスプレイ平面上での位置座標(以下世界座標)を対応付けるパラメータ(以下外部変数)をあらかじめ設定しておく必要がある。これらの外部変数は、一般には、イメージ座標と世界座標の組を入力として与え、イメージ座標と、外部変数を用いて世界座標をイメージ座標に投影した点の誤差を最小にするように、最適な座標変換を行う変換行列として定義される。
しかしながら、従来の座標変換行列を決定する処理では、平面中の点(Z=0)の座標(x、y)しか取れないので、Z座標情報が失われ、ホバリング(非接触)の場合の位置情報を簡単に検出できないという問題があった。ホバリングとは、座標検出面に直接タッチしなくても、指をかざすだけで操作できる「ホバリング機能」と言う。例えば、スマートホンなどで、スクリーンにタッチせずに、つまりマウスのホバリングのように指を浮かしたままで位置指定を行うことを可能とする技術的事項を意味する。
さらに、今までの世界座標決定方法は、パラメータの最適化の指標と、ユーザにとっての適切さの指標が一致していないという問題があった。この問題をより具体的にいうと、イメージ座標で誤差があったとき、世界座標上で発生する位置誤差の大きさが場所によって異なっているため、イメージ座標の誤差を均一に最小化しても、位置誤差が極端に大きい箇所が発生しうる。一方で、ユーザが知覚するのは、タッチ点の座標と、算出された座標とのずれであり、世界座標上での位置誤差である。最適化の指標をイメージ座標上での誤差とするか、ユーザによっての適切さの指標である位置誤差とするかは、精度に反映する。このため、イメージ座標上で誤差が均一になるように最小化しても、世界座標上で極端に誤差が大きい領域が発生してしまう、という問題が起こりうる。
例えば、特許文献1(特許4,757,144号明細書)では、イメージ座標上での誤差が世界座標上での誤差に与える影響を、誤差の敏感度と定義し、誤差の敏感度が世界座標上で大きく異なっていることを、シミュレーション結果を元に指摘している。それに対し、誤差の敏感度が大きい箇所を重み付けしたり、誤差の敏感度が大きい箇所で設計値をもとにオフセットを設けるなど、誤差を軽減する方法が提案されているが、この方法では一部を重視すると他方の誤差が大きくなるため、誤差が均一になるようにバランスをとることが難しいという問題があった。この方法では、パラメータの最適化の指標と、ユーザにとっての適切さの指標が一致していない、という根本的な問題が解決されていなかった。
本発明は、接触または非接触を問わず、イメージ画像上の位置座標を3次元空間中の物理座標である世界座標に変換することを可能とする、情報処理システム、情報処理装置、座標変換方法およびプログラムを提供することを目的とする。
本発明の情報処理システムは、表示部に相対して3次元空間中の位置を指定するための位置指示手段と、前記位置指示手段のイメージ画像を取得する少なくとも1の撮像手段と、前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた3次元空間上の位置座標である世界座標に変換するための座標変換手段と、前記座標変換手段を使用して前記イメージ画像中の前記位置指示手段の位置座標を世界座標に変換する世界座標計算手段とを備え、前記世界座標計算手段は、前記位置指示手段が前記表示部に対して接触するか、非接触かに依らず、少なくとも前記表示部を含む2次元平面上の世界座標を取得する。
100 :情報処理システム
110 :制御部
120、130 :撮影部
140 :位置指示装置
150 :ディスプレイ装置
200 :情報処理装置
201 :CPU
202 :ROM
203 :RAM
204 :キーボード
205 :マウス
206 :ハードディスク装置
207 :ボード
208 :ネットワーク・カード
210 :外部読取機器
211 :記録媒体
300 :機能ブロック
301 :撮影部
302 :画像処理部
303 :世界座標計算部
304 :表示データ生成部
305 :表示制御部
306 :校正点情報保持部
307 :変換行列計算部
309 :表示部
401 :撮影部
402 :撮影部
403 :画像処理部
404 :構成行列計算部
404a :読み取り部
404b :演算部
405 :世界座標計算部
110 :制御部
120、130 :撮影部
140 :位置指示装置
150 :ディスプレイ装置
200 :情報処理装置
201 :CPU
202 :ROM
203 :RAM
204 :キーボード
205 :マウス
206 :ハードディスク装置
207 :ボード
208 :ネットワーク・カード
210 :外部読取機器
211 :記録媒体
300 :機能ブロック
301 :撮影部
302 :画像処理部
303 :世界座標計算部
304 :表示データ生成部
305 :表示制御部
306 :校正点情報保持部
307 :変換行列計算部
309 :表示部
401 :撮影部
402 :撮影部
403 :画像処理部
404 :構成行列計算部
404a :読み取り部
404b :演算部
405 :世界座標計算部
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。
<セクション1:システム構成>
図1は、本発明が適用される情報処理システム100の概略的な実施形態を示す。情報処理システム100は、制御部110と、ディスプレイ装置150と、撮影部を含む複数の撮影部120、130とを含んでいる。制御部110は、本実施形態の情報処理装置がその機能を提供し、制御部110は、ディスプレイ装置150上でのユーザによる位置指示装置140の動作を撮影部120、130からの画像情報を使用して解析し、ユーザの動作に対応した像を生成し、像表示制御を行ってディスプレイ装置150上に表示する。
図1は、本発明が適用される情報処理システム100の概略的な実施形態を示す。情報処理システム100は、制御部110と、ディスプレイ装置150と、撮影部を含む複数の撮影部120、130とを含んでいる。制御部110は、本実施形態の情報処理装置がその機能を提供し、制御部110は、ディスプレイ装置150上でのユーザによる位置指示装置140の動作を撮影部120、130からの画像情報を使用して解析し、ユーザの動作に対応した像を生成し、像表示制御を行ってディスプレイ装置150上に表示する。
撮影部120、130は、ディスプレイ装置150に接触または近接した1で行われるユーザ動作を検出し、ユーザ動作がディスプレイ装置150上の座標(x,y,z)(以下、世界座標として参照する。)を、撮影部120、130が取得した画像情報から取得する。このため、本実施形態では、ユーザがディスプレイ装置150にタッチしているか、非接触(以下、ディスプレイ装置150に非接触で入力する入力態様を、ホバリング入力として参照する。)であるかによらず、ユーザ動作から、ユーザ動作に対応する像を生成し、ディスプレイ装置150に表示させることが可能となる。なお、図1には、以後の説明の便宜上、撮影部120、130が取得するイメージ画像中の位置座標を、それぞれ(x1,y1)、(x2,y2)として示す。
図2は、本実施形態の制御部110の機能を提供する、情報処理装置200のハードウェア構成を示す。情報処理装置200は、CPU201、ROM202、RAM203、キーボード204、マウス205を備えており、これらのハードウェア要素は、適切なバス(システムバスおよびバスブリッジ)により相互接続されている。CPU201は、RAM203に格納されたプログラムを読み出し、実行することにより、制御部110の機能を提供する。ROM202は、情報処理装置200の入出力機能を提供するためのBIOS(Basic Input Output System)を格納し、POST機能を提供し、CPU201との間の入出力を可能とする。
また、ROM202としては、随時書換え可能なROM、いわゆるEEPROMなども含んで構成することができる。このような随時書き換え可能なROMには、情報処理装置200が使用する個別的なデータやユーザデータを格納させておくことができる。キーボード204、マウス205は、情報処理装置200への入出力を可能とするものであり、例えばPCIバス・ブリッジを介したUSB(Universal Serial Bus)方式で、情報処理装置200に接続されている。
さらに情報処理装置200は、ハードディスク装置206、グラフィックス・ボード207、ネットワーク・カード208を備えている。ハードディスク装置206は、OS(オペレーティング・システム)、各種のデバイス・ドライバおよび各種のアプリケーション・プログラムを格納している。CPU201は、起動されると、ハードディスク装置206にアクセスして、OS、デバイス・ドライバ、各種アプリケーション・プログラムをRAMに読み込み、処理を実行する。グラフィックス・ボード207は、ディスプレイ装置150に対して出力を行うための処理を実行する処理部であり、グラフィックス・プロセッサを搭載することが好ましい。ネットワーク・カード208は、情報処理装置200をインターネット、LANといったネットワークに接続するため、OSI基本参照モデルの第1層から第2層の機能を提供する。情報処理装置200は、各種の外部接続機器との間の入出力を可能とするインタフェース(I/F)209を備えており、CD−ROM、MOその他の外部読取機器210による記録媒体211との間の相互通信を可能としている。
図3は、本実施形態の制御部110として機能する情報処理装置200の機能ブロック300を示す。情報処理装置200は、CPU201がプログラムを実行することにより、図3に示す各機能ブロックを情報処理装置200上に構成する。情報処理装置200の機能ブロック300は、画像処理部302と、校正点情報保持部306と、変換行列計算部307とを含んでいる。
画像処理部302は、撮影部としての機能を有する撮影部301からの画像情報を取得して、位置指示装置140などの画像特徴などを解析する。校正点情報保持部306は、ディスプレイ装置150の表示有効領域に設定した校正点の世界座標を格納し、撮影部301と、ディスプレイ装置150との間の相対的位置の校正を可能としている。
変換行列計算部307は、画像処理部302が取得した校正点に関する画像情報と、校正点情報とを使用して、撮影部301の撮像平面と、世界座標(ディスプレイ装置150上の有効領域)との間の変換行列を計算し、各座標系の間の座標変換を可能としている。変換行列計算部307は、生成した変換行列を適切な記憶領域に格納する。
さらに情報処理装置200は、その機能ブロックとして、世界座標計算部303と、表示データ生成部304と、表示制御部305とを含んでいる。世界座標計算部303は、画像処理部302の画像解析の結果および変換行列を使用して画像情報の注目点の世界座標を計算する。表示データ生成部304は、生成した注目点の世界座標を使用してディスプレイ装置150上に表示させるべきデータを生成し、表示制御部305に例えばビデオデータとして送付する。表示制御部305は、当該データをディスプレイ装置150のLCDパネルとして構成される表示部309に表示させている。
以上の機能は、ユーザが位置指示装置140で、ディスプレイ装置150にタッチするか否かによらず、画像解析により、ディスプレイ装置150上に画像を表示させることを可能としている。このことにより、本実施形態では、接触および非接触のホバリング状態の両方を検出して、像制御することが可能となる。
図4は、本実施形態の変換行列計算部307の詳細な機能構成を示した図である。なお、図4に示した実施形態では、撮影部として2つの撮影部を使用するものとして説明する。撮影部401、402は、各々が取得した画像情報を画像処理部403に送付する。画像処理部403は、撮影部401、402からの画像情報を受領して、説明する実施形態では、各画像情報を構成行列計算部404に送付する。
構成行列計算部404は、読み取り部404aおよび演算部404bを備えており、受領した各撮影部401、402の画像データを使用して世界座標中での位置誤差を最小とするようにして、同時に各撮影部401、402に対する変換行列を計算する。世界座標計算部405は、計算された変換行列を使用して世界座標を計算し、ディスプレイ装置150の表示部309に世界座標に対応する位置に像を表示させている。
<セクション2:変換行列および世界座標の算出処理>
以下、本実施形態における変換行列の詳細および世界座標の生成処理を説明する。図5は、変換行列計算部307および世界座標計算部303が実行する処理のデータフローを示す。変換行列計算部307は、ボックス511でユーザ指示された校正点の画像情報を取得する。この画像情報は、ボックス512で画像解析され、指示された校正点の世界座標と撮影部画像の画像位置とが対応付けられる。ディスプレイ装置150この対応付けは、撮影部の画像平面とディスプレイ装置150との間の対応付けは、各カーテシアン座標系の回転行列および各画像中心の並進ベクトルによって行われる。
以下、本実施形態における変換行列の詳細および世界座標の生成処理を説明する。図5は、変換行列計算部307および世界座標計算部303が実行する処理のデータフローを示す。変換行列計算部307は、ボックス511でユーザ指示された校正点の画像情報を取得する。この画像情報は、ボックス512で画像解析され、指示された校正点の世界座標と撮影部画像の画像位置とが対応付けられる。ディスプレイ装置150この対応付けは、撮影部の画像平面とディスプレイ装置150との間の対応付けは、各カーテシアン座標系の回転行列および各画像中心の並進ベクトルによって行われる。
この対応付けにより、変換行列Hが計算される。なお、H行列の計算についてはより詳細に後述する。計算されたH行列は、周知のデータ・フォーマットとして、適切な記憶領域に格納される。世界座標計算部303は、ボックス551でユーザによる手書動作の画像情報を取得する。そして、ボックス552で画像情報中での位置指示装置の先端の座標を取得する。その後、ボックス553で、画像情報中での座標を世界座標に写像することにより、ディスプレイ装置150上での像表示を可能とする。
図5に示した実施形態は、位置指示装置の先端がディスプレイ装置150の表面にある(表示面に垂直な方向における座標が0であることを前提とする、すなわちユーザがディスプレイ装置150の表示部に位置指示装置を接触させる場合の実施形態である。以下、本実施形態における世界座標の算出アルゴリズムを説明する。以下、校正点の世界座標を、(Xworld,Yworld,Zworld)とし、校正点を撮影した時のイメージ面上での座標(以下、イメージ座標として参照する。)を(Ximage,Yimage)とする。
世界座標と、イメージ座標との間は、座標系の回転行列および座標中心のずれに対応する並進ベクトル下記式(1)により定義される。
上記式中、λは、世界座標とイメージ座標との間のサイズの違いを対応付ける比例定数であり、rijが回転行列の要素であり、tlmが並進ベクトルの要素である。ここで、回転並進同時変換の行列Pを下記式(2)で定義する。
上記式中、riは、i(i=X,Y,Z)軸回りの回転角に関連する回転の列ベクトルであり、tは、座標系間の並進ベクトルである。
2−1:接触位置指定の態様
本セクションでは、ユーザが位置表示装置においてディスプレイ装置150のディスプレイ面上に直接タッチして位置を指示する実施形態を検討する。ユーザが位置指示装置で直接ディスプレイ平面上にタッチして位置を示す場合、Zworldは、0に等しい。このため、式(1)からは、Zworldが関連する要素を無視することができ、上記行列Pは、3×3の行列Hとして下記式(3)に変換できる。
本セクションでは、ユーザが位置表示装置においてディスプレイ装置150のディスプレイ面上に直接タッチして位置を指示する実施形態を検討する。ユーザが位置指示装置で直接ディスプレイ平面上にタッチして位置を示す場合、Zworldは、0に等しい。このため、式(1)からは、Zworldが関連する要素を無視することができ、上記行列Pは、3×3の行列Hとして下記式(3)に変換できる。
行列Hを以降の処理を記述の目的で各軸X,Y,Zにそれぞれ付すサフィックスとして1,2,3を割り当て、hiとして列ベクトルで表記すると、以下の通りに記述できる。
ここで、式(3)を要素計算し、λを消去して9次元の行および列ベクトルの積の形式に変形すると、下記式(5)が得られる。
説明する実施形態ではZworld=0を想定しているため、H33を定数1に設定する。このとき未知変数が8つとなり、上記式(5)を解くためには、最低4個の校正点の情報が得られれば良く、4点以上の情報が使用できる場合、最小二乗法を使用してH11〜H33をフィッティングすることで、変換行列の要素を得ることができる。
世界座標の算出は、以下の通りに行うことができる。上記式(3)のX軸およびY軸について要素を計算し、Xworld,Yworldを変数として行列表示すると、下記式(6)が得られる。
上記式(6)の左から逆行列を乗じてXworld,Yworldを解くと、下記式(7)が得られる。
上記式(7)中、画像処理部302の解析において、Ximage,Yimageは解析できるので、世界座標(Xworld,Yworld,0)を得ることができる。なお、2つの撮影部を使用することで、三角測量の解析方法を使用することで、より正確な世界座標を取得することが可能となる。
以上の処理は、Zworldの情報を排除して世界座標を算出するので、ユーザの動作がディスプレイ装置150の表示部に接触した実施形態について適用される。
2−2:非接触位置指定(ホバリング)の態様
セクション2−1で説明した処理は、Zworldをアプリオリに0であると仮定する接触位置指示方式に対応できるが、Zworldの情報を省略しているので、ホバリング方式には適用できない。ホバリング方式に対応するためにはさらに他の処理が必要になる。以下、ホバリング方式による位置指定を可能とする処理について説明する。ホバリング方式では、式(2)の行列Pを再計算させることもできる。しかしながら、すでに、H行列が求められているので、これを利用することで、陽に行列Pを再計算させることなく、ホバリング方式に対しても位置指示認識が可能となる。当該実施形態では、決定された行列Hを使用して座標系の回転を校正した後、幾何光学的関係を適用して画像情報からZworldを決定する。
セクション2−1で説明した処理は、Zworldをアプリオリに0であると仮定する接触位置指示方式に対応できるが、Zworldの情報を省略しているので、ホバリング方式には適用できない。ホバリング方式に対応するためにはさらに他の処理が必要になる。以下、ホバリング方式による位置指定を可能とする処理について説明する。ホバリング方式では、式(2)の行列Pを再計算させることもできる。しかしながら、すでに、H行列が求められているので、これを利用することで、陽に行列Pを再計算させることなく、ホバリング方式に対しても位置指示認識が可能となる。当該実施形態では、決定された行列Hを使用して座標系の回転を校正した後、幾何光学的関係を適用して画像情報からZworldを決定する。
この処理は、行列Hから行列Pの要素を計算する処理で実現でき、すでに計算済みの行列Hを使用し、以下の通り算出する。行列Hは、
また、λ1、λ3は、式(1)および式(3)から、下記式(10)で与えられる。
(cx,cy)は、画像中心であり、(fx,fy)は、ピクセル単位で表される焦点距離である。この内部パラメータ行列Aは、例えば、A Flexible New Technique for Camera Calibration, Zhengyou Zhang. December 2, 1998の方法により予め決定することができる。
上記式(8)中、[h1 h2 h3]と、[r1 r2 r3 t]とに関し、r3は、r1,r2と直交関係にあるので、ベクトルの外積としてr3=r1×r2となる。この関係を使用し、式(8)の左からA−1を乗じると、以下の関係が得られ、H行列からP行列を計算することができる。
以上のように得られたP行列は、ホバリング方式で位置指定を行うための校正パラメータとして適切な記憶領域に記憶する。
図6は、本実施形態で、非接触方式(ホバリング)により位置指定される態様を可能とする変換行列計算部307および世界座標計算部303の処理のデータフローの実施形態600を示す。図6に示した変換行列計算部307は、ボックス611でユーザ指示された校正点の情報を取得し、ボックス621に送り、世界座標と画像位置とを対応付けし、ボックス613で、図5で説明したと同様に変換行列(H行列)を計算する。計算されたH行列は、P行列を計算するためにボックス614に送られる。
一方、変換行列計算部307は、式(9)の内部パラメータであるA行列を測定し、適切な記憶領域に記憶させる。このA行列は、H行列の計算が終了した後、ボックス614に送られる。ボックス614では、H行列の値およびA行列の値からP行列を計算する。また、世界座標計算部303は、ボックス651で、ユーザがホバリングで指定した画像を取得する。ボックス652では、画像情報中で、位置指示装置の先端の座標を取得する。非接触位置指定の場合、H行列ではなく、P行列を変換行列して参照し、ボックス653でユーザにより非接触で指示された世界座標を取得する。
以上の処理によって、本実施形態によれば、ハードウェア構成を変更する事無く、接触位置指示方式および非接触位置指示方式により示されたディスプレイ装置上の位置座標を決定する事ができる。
図7は、本実施形態において変換行列Hを計算する処理のフローチャートを示す。処理はステップS700から開始し、ステップS701でユーザが指定した校正点を含むイメージ画像を撮影部により取得する。ステップS702で、取得したイメージ画像中の指示点のイメージ座標を取得する。その後、予め保存していた校正点の世界座標を読み出し、ステップS704で構成行列Hを計算する。ステップS705では、計算した変換行列Hの要素を適切な形式で記憶領域に格納しステップS706で処理を終了する。
図8は、計算したH行列から非接触位置指定に対応するための第2変換行列であるP行列を計算するためのフローチャートを示す。図8の処理は、ステップS800から開始し、ステップS801で、図7に説明した処理によって変換行列Hを計算する。ステップS802では、すでに測定してある内部パラメータについてのA行列を読み出し、ステップS803で、第2変換行列Pを計算する。その後、第2変換行列Pを適切なフォーマットで保存し、処理をステップS805で終了する。
図9は、本実施形態において、接触位置指示方式におけるディスプレイ装置上の世界座標を計算する処理のフローチャートである。処理は、ステップS900から開始し、ステップS901で、ユーザがディスプレイ装置に対して手書き動作を行う。ステップS902で撮影部301は、ユーザの手書き動作を撮影し、その撮影部によりイメージ画像を取得する。その後、ステップS903でイメージ画像中の指示点のイメージ座標を取得する。
ステップS904では、変換行列Hを読み出し、ステップS905で、式(7)を使用して、世界座標(Xworld,Yworld)を計算し、ステップS906でこれを出力する。その後、例えばディスプレイ装置上にユーザの描画動作に対応した画像を表示させ、ステップS907で処理を終了する。
さらに以下、図10を使用して非接触位置指定方式における世界座標を計算する処理を説明する。処理は、ステップS1000から開始し、ステップS1001で、ユーザがディスプレイ装置に対して手書き動作を行う。ステップS1002で撮影部301は、ユーザの手書き動作を撮影し、その撮影部によりイメージ画像を取得する。その後、ステップS1003でイメージ画像中の指示点のイメージ座標を取得する。
ステップS1004では、変換行列Hを読み出し、ステップS1005で、式(7)を使用して、世界座標(Xworld,Yworld)を計算し、ステップS1006でこれを出力し、例えばディスプレイ装置上にユーザの描画動作に対応した画像を表示させ、ステップS1007で処理を終了する。
以上の処理によって、ユーザが接触方式で、位置指示を行う場合でも、非接触方式で位置指示を行う場合でもディスプレイ装置上の世界座標を決定し、ディスプレイ装置上に表示させる事が可能となる。なお、本実施形態では、接触指示方式および非接触指示方式をマニュアルで設定してそれぞれ処理を行う事もできる。しかしながら、他の実施形態では、ユーザの描画動作が異なる以外、世界座標を計算する処理は、変換行列として、H行列を使用するか、P行列を使用するかが実質的な相違である。
これらの変換行列は、いずれも初期の校正処理により、予め計算し、適切な記憶領域に格納されている。このため、ユーザの描画動作を解析した後、H行列およびP行列をそれぞれ使用して世界座標を計算させ、H行列を使用して生成された世界座標H、P行列を使用して生成された世界座標Pの位置座標の間のノルムD={(ΔXworld)2+(ΔYworld)2}1/2が設定したしきい値ε以下の場合には、接触方式による指定とし、世界座標Hをその出力とする事ができる。
また、上記ノルムDが、上述したしきい値εを超える場合には、ユーザが非接触位置指示方式を使用しているものとして、世界座標の出力として世界座標Pをその出力とすることができる。この他、複数の撮影部301を設置して、一方を接触位置指示のための専用手段とし、他方を非接触位置指示のための専用手段として構成することもできる。その他、接触位置指示方式と、非接触位置指示方式とで、どちらを使用するかの判断については、特定の目的に応じて適宜設定することができる。
<セクション3:世界座標の視覚的誤差を最小とした変換行列の決定>
本実施形態は、最小1の撮影部を使用することで、世界座標を計算することも可能であるが、より精度を改善するために複数の撮影部を使用して、カメラ測量を使用して世界座標を決定することもできる。このためには、複数の撮影部を、世界座標の誤差を最小とするように効率的に変換行列を決定する必要がある。
本実施形態は、最小1の撮影部を使用することで、世界座標を計算することも可能であるが、より精度を改善するために複数の撮影部を使用して、カメラ測量を使用して世界座標を決定することもできる。このためには、複数の撮影部を、世界座標の誤差を最小とするように効率的に変換行列を決定する必要がある。
以下、本実施形態の実施形態である複数の撮影部の同時校正方法について説明する。
3−1:記号の定義
本実施形態で使用する記号の定義を、図11を参照して説明する。
○(Ximage,Yimage):イメージ座標であり、各カメラの画像面を表す。空間中の物体を撮影すると、この平面上に投影される。
○(Xcamera, Ycamera, Zcamera):カメラ座標であり光学中心Cを原点に持ち、イメージ座標のXimage軸、Yimage軸に平行に、Xcamera軸、Ycamera軸が定義される。3次元空間中で、カメラ光学系の内部座標軸である。カメラの数だけ、異なるカメラ座標が存在する。
○(Xworld,Yworld,Zworld):世界座標であり、説明する実施形態では、表示面の左上を原点とし、横方向をXworld軸、縦方向をYworld軸として定義する。なお、表示面は、Zworld=0面である。3次元空間中のカメラからは独立して、1つだけ存在する実空間を定義する座標軸である。
○外部変数:世界座標と、イメージ座標(カメラ座標)との対応関係を表すパラメータ行列であり、世界座標と、イメージ座標(カメラ座標)との間の座標変換を可能とし、校正処理において決定される座標変換行列、すなわちH行列に相当する。
本実施形態で使用する記号の定義を、図11を参照して説明する。
○(Ximage,Yimage):イメージ座標であり、各カメラの画像面を表す。空間中の物体を撮影すると、この平面上に投影される。
○(Xcamera, Ycamera, Zcamera):カメラ座標であり光学中心Cを原点に持ち、イメージ座標のXimage軸、Yimage軸に平行に、Xcamera軸、Ycamera軸が定義される。3次元空間中で、カメラ光学系の内部座標軸である。カメラの数だけ、異なるカメラ座標が存在する。
○(Xworld,Yworld,Zworld):世界座標であり、説明する実施形態では、表示面の左上を原点とし、横方向をXworld軸、縦方向をYworld軸として定義する。なお、表示面は、Zworld=0面である。3次元空間中のカメラからは独立して、1つだけ存在する実空間を定義する座標軸である。
○外部変数:世界座標と、イメージ座標(カメラ座標)との対応関係を表すパラメータ行列であり、世界座標と、イメージ座標(カメラ座標)との間の座標変換を可能とし、校正処理において決定される座標変換行列、すなわちH行列に相当する。
3−2:第1実施形態
以下、本実施形態を詳細に説明する。図12は、本実施形態の好ましい座標入力方法を可能とする情報処理システム1200の概略図を示す。情報処理システム1200は、ディスプレイ装置のLCD、タッチパネルなどとして形成される表示部1202と、表示部1202の適切な位置、例えば角部に配置される複数の撮影部1201と、演算部1204とを含むことができる。撮影部1201は、ユーザが保持する位置指示装置1203の特定の箇所、例えば先端部の位置をイメージ画像として取得する。
以下、本実施形態を詳細に説明する。図12は、本実施形態の好ましい座標入力方法を可能とする情報処理システム1200の概略図を示す。情報処理システム1200は、ディスプレイ装置のLCD、タッチパネルなどとして形成される表示部1202と、表示部1202の適切な位置、例えば角部に配置される複数の撮影部1201と、演算部1204とを含むことができる。撮影部1201は、ユーザが保持する位置指示装置1203の特定の箇所、例えば先端部の位置をイメージ画像として取得する。
撮影部1201が取得したイメージ画像は、CPU、メモリなどを備える演算部1204に送られる。演算部1204は、変換行列Hを使用して位置指示装置1203の示した位置の世界座標を決定する。決定された世界座標は、所定のビデオデータに変換された後、表示部1202に送付されて、ディスプレイ装置により、表示部1202上に表示される。
図12に示した実施形態は、少なくとも2以上の撮影部1201を使用し、三角測量技術を使用して、世界座標(Xworld,Yworld,Zworld)を決定する場合に好ましく用いる事ができる。また、図12の情報処理システム1200は、2つの撮影部1201をそれぞれ独立して世界座標決定を行い、その平均を使用して世界座標を精度良く決定するためにも使用できる。
上述した目的のため、式(3)を変形して下記式(13)とする。
この式(13)に左から逆行列を乗じて変形すると、下記式(14)が得られる。
式(14)から明らかなように、H行列および1のイメージ座標が決定されれば、対応する世界座標(Xworld,Yworld,0)が決定できる。撮影部の校正は、言い換えると、カメラ座標と世界座標との間の回転角度を最尤となるように決定する事と言うことができる。理論上では1つの撮影部があれば世界座標の算出を行うことができる。しかしながら、本発明では、ディスプレイの高さ方向のサイズを抑えるために、撮影部をディスプレイ平面にできるだけ近くなるように設置する事が好ましい。
このため、カメラ主点位置と投影点の世界座標を結ぶ光線は、表示面に平行に近くなるので、光線方向の世界座標がイメージ座標上の誤差の影響を大きく受けやすくなってしまう。このため、本実施形態では、少なくとも2つの撮影部を配置し、2つの光軸から取得したイメージ画像を使用して世界座標を求めるようにすることができる。
この目的で、上記式(13)を書き下し、下記式(15)、(16)で与えられる2つの方程式を得る。
式(15)の光学上の意義は、カメラ主点Cと、Ximage=Ximagejを含む平面が、Zworld=0の面を横切る直線を意味する。また、式(16)は、カメラ主点Cと、イメージ平面上のYimage=Yimagej直線を含む平面と、Zworld=0平面が交わる直線をあらわす。表示面に対し略平行に配置されるという影響を改善する目的で、本実施形態では、式(14)を使用するのではなく、2つの撮影部1201を使用し、式(13)を解くことにより、世界座標を算出する。
ここで、第1撮影部により決定されたイメージ座標m1_i、第2撮影部により決定されたイメージ座標m2_i、第1撮影部の変換行列H1、第2撮影部の変換行列H2として、与えられる個々の世界座標を下記式(17)で定義する。
ここで、評価関数を、ユーザにより知覚される量である下記式(18)に設定する。すなわち、2つの撮影部を使用して式(13)から決定された世界座標を、世界座標Miとしたとき、各撮影部でのH行列をそれぞれ使用して計算した世界座標である式(17)の世界座標とのノルムの二乗和を、評価関数として定義する。
すなわち、本実施形態の技術的意義は、式(13)を使用して直接解くことにより得た世界座標に対する測定点の誤差を、撮影部に対して初期的に得られた変換行列H1、H2から得られた世界座標とのノルムの2乗和が最も小さくなるように、変換行列H1、H2を最尤法により最適化決定することである。
図13に、本実施形態の変換行列H1、H2の決定のための処理のフローチャートを示す。図13の処理は、ステップS1300から開始し、ステップS1301でj=1に設定する。ステップS1302で、Miと、mj_1とを、式(13)に代入してHjの初期解を決定する。ステップS1303で、j<2を判定し、当該判定が肯定的な結果を返す場合(yes)、ステップS1307で、jをインクリメントした後、処理をステップS1302に戻して、全部の変換行列Hjの初期値を決定する。
一方、ステップS1303の判断が否定的な結果を返す場合(no)、説明する実施形態では、関連する2の撮影部に関して変換行列Hjの初期値が決定されたので、処理をステップS1304に渡す。ステップS1304では、H1、H2の初期解を初期値とし、これらの初期値を評価関数式(18)に代入し、非線形最適化法であるLevenberg-Marquardt法を使用して最適化する。最適化終了後、ステップS1305で、最適解のH1、H2を記憶領域に各変換行列として適切な形式で格納し、ステップS1306で処理を終了する。
本実施形態の校正行列決定方法によれば、位置決め誤差を含む世界座標の決定からユーザが認識する世界座標のずれが最小となるように変換行列を決定することが可能となり、より高精度の位置決めを可能とする。なお、当該処理は、図3に示した演算部の機能ブロック300における変換行列計算部307の機能として実装することができる。
3−3:第2実施形態
最尤化処理を適用する目的は、世界座標の誤差を最小とすることで、ユーザが、違和感の無い座標表示を提供することで、ユーザの満足度を最大化すること、ということができる。例えば、世界座標上の誤差=ペン先と描画位置のずれが大きいと、ユーザは書きにくさを感じるため、世界座標上の誤差が大きいほど、ユーザの不満足度は高まるものと考えるのが妥当である。イメージ座標上での誤差を最小化することは、間接的には世界座標上での誤差を小さくすることにも関係するため、ユーザの満足度を高める効果を有する。このため、ユーザの満足度により直結する指標を用いて最尤化処理を行うことで、ユーザの満足度を最大化させることができる。
最尤化処理を適用する目的は、世界座標の誤差を最小とすることで、ユーザが、違和感の無い座標表示を提供することで、ユーザの満足度を最大化すること、ということができる。例えば、世界座標上の誤差=ペン先と描画位置のずれが大きいと、ユーザは書きにくさを感じるため、世界座標上の誤差が大きいほど、ユーザの不満足度は高まるものと考えるのが妥当である。イメージ座標上での誤差を最小化することは、間接的には世界座標上での誤差を小さくすることにも関係するため、ユーザの満足度を高める効果を有する。このため、ユーザの満足度により直結する指標を用いて最尤化処理を行うことで、ユーザの満足度を最大化させることができる。
この観点から、第1実施形態では、世界座標上での誤差を評価関数として、最適化を行った。第1実施形態は、その前提として、ユーザの不満足度が、世界座標上での誤差に線形的に依存するものとしている。ところで、ユーザの誤差に対する感性上の認識性は、必ずしもリニアな関係であるとは言えず、例えば、図14に示すように、一定の誤差までは、不満足度をまったく感じず、或感覚上のしきい値Ethを超えた時から誤差に依存する不満足度が増大し始めるということができる。
この観点から、本実施形態では、校正処理を行う場合の評価関数に用いる指標を、よりユーザにとっての満足度を反映するものにするため、世界座標上の誤差に重み付けを行う。H行列の初期解を第1実施形態と同様に、式(13)を使用して直接線形最小二乗法で求める。その後、H行列の最尤決定処理の段階で、ユーザにとっての満足度を反映するように、世界座標上での誤差に重み付けをし、それを評価関数として、解を最適化する。第2実施形態の処理を以下、詳細に説明する。
線形最小二乗法で計算される世界座標を式(17)で与える。さらに、本実施形態では、世界座標上での誤差を、線形最小二乗法により得たH1、H2で与えられる世界座標と実際の世界座標Miとの距離(ノルム)として下記式(19)で与える。
次いで、不満足度に関する重み付けを、図14に示すwを、誤差の関数として、実験的に与える。この重み付けを使用して、評価関数式(20)を以下の通り定義する。
上記式(20)は、第1実施形態の評価関数に対し、世界座標上の誤差(ノルム)の2乗に重み関数w(誤差)を乗じた、重み付けノルム2乗和を生成する技術的意義を与える。上記式(20)を使用する場合、誤差の小さな領域ではなく、誤差の大きな領域を考慮して最尤化処理を行うことができるので、よりユーザの満足度を向上させることができる。
また、第2実施形態の変更例としては、重みp(world)を、世界座標の関数として図15のように定義する。図15に示した実施形態1500では、重みp(world)は、表示面に相似的に、階段関数として定義され、中心部1530で重みを高く、順次、表示部の端部に近づくにつれて重み1520、1510として漸減するように設定されている。
図15の重み付けを使用した場合の評価関数の実施形態を、式(21)に示す。
本変更例によれば、ユーザが尤も描画処理を行う可能性の高い箇所を重点的に最尤化することができ、ユーザの描画動作に関連して誤差を最小化させることができる。
図16は、本実施形態の重み付けノルム2乗和を使用した評価関数を用いる最尤化処理のフローチャートを示す。図16の処理は、ステップS1600から開始し、ステップS1601でj=1に設定する。ステップS1602で、Miと、mj_1とを、式(13)に代入してHjの初期解を決定する。ステップS1603で、j<2を判定し、当該判定が肯定的な結果を返す場合(yes)、ステップS1607で、jをインクリメントした後、処理をステップS1602に戻して、全部の変換行列Hjの初期値を決定する。
一方、ステップS1603の判断が否定的な結果を返す場合(no)、説明する実施形態では、関連する2の撮影部に関して変換行列Hjの初期値が決定されたので、処理をステップS1604に渡す。ステップS1604では、H1、H2の初期解を初期値とし、これらの初期値を評価関数式(20)または(21)に代入し、非線形最適化法であるLevenberg-Marquardt法を使用して最適化する。最適化終了後、ステップS1605で、最適解のH1、H2を記憶領域に各変換行列として適切な形式で格納し、ステップS1606で処理を終了する。
これまで本発明を、実施形態をもって説明してきたが、本発明は、実施形態に限定されず、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
Claims (10)
- 表示部に相対して3次元空間中の位置を指定するための位置指示手段と、
前記位置指示手段のイメージ画像を取得する少なくとも1の撮像手段と、
前記撮像手段の前記イメージ画像の位置座標を、前記表示部が置かれた3次元空間上の位置座標である世界座標に変換するための座標変換手段と、
前記座標変換手段を使用して前記イメージ画像中の前記位置指示手段の位置座標を世界座標に変換する世界座標計算手段であって、
前記位置指示手段が前記表示部に対して接触するか、非接触かに依らず、少なくとも前記表示部を含む2次元平面上の世界座標を取得する世界座標計算手段と
を備える情報処理システム。 - 前記座標変換手段は、3次元空間を規定する座標軸を少なくとも1次元欠いた第1座標変換手段と、前記少なくとも1次元欠いた座標変換手段から計算され、欠いた1次元を追加した第2座標変換手段を含む、請求項1に記載の情報処理システム。
- 前記情報処理システムは、少なくとも2以上の前記撮像手段を含み、前記前記少なくとも2以上の前記撮像手段を使用して取得した世界座標と、前記第1座標変換手段により取得された世界座標とのノルムの2乗和の合計を最小とするように前記第1座標変換手段を再帰的に最適化して前記第1座標変換手段を決定する、請求項1または2に記載の情報処理システム。
- 前記ノルムの重み付き2乗和を生成する手段を備える、請求項3に記載の情報処理システム。
- イメージ画像中の注目点の位置座標を、注目点が存在する3次元空間内の位置座標である世界座標に座標変換するための情報処理装置であって、前記情報処理装置は、
撮像手段が取得した注目点が存在するイメージ画像を処理する画像処理手段と、
画像処理手段が識別した前記注目点の位置座標から前記世界座標を計算する世界座標計算手段と、
計算された前記世界座標をディスプレイ装置の表示部に表示させるための表示データを生成する表示データ生成手段と、
前記表示データ生成手段が生成した前記表示データを前記ディスプレイ装置に表示させるための表示制御手段と
を備え、
前記世界座標計算手段は、前記注目点が表示部面上に存在するかしないか依らず、前記注目点の前記世界座標を、前記イメージ画像中の位置座標と前記世界座標とを対応付ける座標変換手段を使用して計算する、情報処理装置。 - 前記座標変換手段は、3次元空間を規定する座標軸を少なくとも1次元欠いた第1座標変換手段と、前記少なくとも1次元欠いた座標変換手段から計算され、欠いた1次元を追加した第2座標変換手段を含む、請求項5に記載の情報処理装置。
- 前記情報処理装置は、少なくとも2以上の前記撮像手段からのイメージ画像を使用して取得した世界座標と、前記第1座標変換手段により取得された世界座標とのノルムの2乗和の合計を最小とするように前記第1座標変換手段を再帰的に最適化して前記第1座標変換手段を決定する変換手段計算手段を含む、請求項5または6に記載の情報処理装置。
- 前記ノルムの重み付き2乗和を生成する手段を備える、請求項7に記載の情報処理装置。
- イメージ画像中の注目点の位置座標を、注目点が存在する3次元空間内の位置座標である世界座標に座標変換するための情報処理装置実行可能な方法であって、前記方法は、
撮像手段が取得した注目点が存在するイメージ画像を処理するステップと、
画像処理手段が識別した前記注目点の位置座標から、前記注目点が表示部面上に存在するかしないかに依らず、前記注目点の前記世界座標を、前記イメージ画像中の位置座標と前記世界座標とを対応付ける座標変換手段を使用して計算するステップと、
計算された前記世界座標をディスプレイ装置の表示部に表示させるための表示データを生成するステップと、
生成した前記表示データを前記ディスプレイ装置に表示させるために制御するステップと
を含む、座標変換方法。 - イメージ画像中の注目点の位置座標を、注目点が存在する3次元空間内の位置座標である世界座標に座標変換するための方法を実行するための情報処理装置可読なプログラムであって、前記プログラムは、情報処理装置を、
撮像手段が取得した注目点が存在するイメージ画像を処理する手段、
識別した前記注目点の位置座標から、前記注目点が表示部面上に存在するかしないかに依らず、前記注目点の前記世界座標を、前記イメージ画像中の位置座標と前記世界座標とを対応付ける座標変換手段を使用して計算する手段、
計算された前記世界座標をディスプレイ装置の表示部に表示させるための表示データを生成する手段、
生成した前記表示データを前記ディスプレイ装置に表示させるために制御するための手段、
として機能させる、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/941,767 US10146331B2 (en) | 2014-11-28 | 2015-11-16 | Information processing system for transforming coordinates of a position designated by a pointer in a virtual image to world coordinates, information processing apparatus, and method of transforming coordinates |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014241760 | 2014-11-28 | ||
JP2014241760 | 2014-11-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016110597A true JP2016110597A (ja) | 2016-06-20 |
Family
ID=56124448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014260634A Pending JP2016110597A (ja) | 2014-11-28 | 2014-12-24 | 情報処理システム、情報処理装置、座標変換方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016110597A (ja) |
-
2014
- 2014-12-24 JP JP2014260634A patent/JP2016110597A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575160B (zh) | 根据用户视点识别动作的界面提供方法及提供装置 | |
US9519968B2 (en) | Calibrating visual sensors using homography operators | |
JP6716996B2 (ja) | 画像処理プログラム、画像処理装置、及び画像処理方法 | |
US20170069056A1 (en) | Focal Length Warping | |
CN109615664B (zh) | 一种用于光学透视增强现实显示器的标定方法与设备 | |
US10761721B2 (en) | Systems and methods for interactive image caricaturing by an electronic device | |
US11488354B2 (en) | Information processing apparatus and information processing method | |
US10817054B2 (en) | Eye watch point tracking via binocular and stereo images | |
TW201616451A (zh) | 點雲套索選取系統及方法 | |
CN110232707A (zh) | 一种测距方法及装置 | |
US20230386065A1 (en) | Systems and methods for processing captured images | |
JP2022541100A (ja) | 共同環境再構築およびカメラキャリブレーション | |
US10146331B2 (en) | Information processing system for transforming coordinates of a position designated by a pointer in a virtual image to world coordinates, information processing apparatus, and method of transforming coordinates | |
JP7003617B2 (ja) | 推定装置、推定方法、及び推定プログラム | |
KR20220122287A (ko) | 증강 현실 제공 장치의 포즈 결정 방법 및 장치 | |
JP2020098575A (ja) | 画像処理装置、画像処理方法、及び画像処理プログラム | |
JP6843552B2 (ja) | 画像処理装置、画像処理方法およびプログラム。 | |
WO2022027191A1 (zh) | 平面矫正方法及装置、计算机可读介质和电子设备 | |
JP2016110597A (ja) | 情報処理システム、情報処理装置、座標変換方法およびプログラム | |
CN116188349A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
JP5464671B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP6898021B2 (ja) | 操作入力装置、操作入力方法、及びプログラム | |
JP7063165B2 (ja) | 計測装置、計測方法及び計測プログラム | |
JP2016153996A (ja) | 座標取得システム、ディスプレイ装置、座標取得方法およびプログラム | |
JP2016139396A (ja) | ユーザーインターフェイス装置、方法およびプログラム |