(57)【要約】  画面上に表示された３次元物体を直感的な操作で自由自在に回転させることができる３次元物体表示制御装置を提供する。コンピュータシステム（１０）は、コンピュータ（１２）、ディスプレイ（１４）、回転情報入力装置（２０）などを備える。回転情報入力装置（２０）は、球（２２）と、球（２２）を回転自在に支持する三脚（２４）と、球（２２）を撮影するカメラ（２６）とを備える。コンピュータ（１２）は、カメラ（２６）で撮影された球（２２）の画像の中から２つの特徴点を選択し、特徴点の画像上の２次元座標を設定する。特徴点を追跡しながら、その２次元座標をサンプリングし、球（２２）の表面上の３次元座標に変換する。そして、３次元座標に基づいて球（２２）の回転を表す回転行列を算出し、その回転行列をディスプレイ（１４）に表示される３次元物体の各頂点座標に乗算し、これにより回転後の３次元物体の各頂点座標を求める。
2010013336.tif 000002
【特許請求の範囲】
【請求項１】
画面上に表示された３次元物体を回転させる３次元物体表示制御装置であって、
回転自在な球と、
前記球を撮影するカメラと、
前記カメラで撮影された球の画像に基づいて前記球の回転を特定する回転特定手段と、
前記回転特定手段により特定された回転に連動して前記３次元物体を回転させる物体回転手段とを備えた３次元物体表示制御装置。
【請求項２】
請求の範囲第１項に記載の３次元物体表示制御装置であって、
前記回転特定手段は、
前記カメラで撮影された球の画像の中に少なくとも２つの特徴点を設定する特徴点設定手段と、
前記特徴点設定手段により設定された特徴点を追跡する特徴点追跡手段と、
前記特徴点追跡手段により追跡されている特徴点に基づいて前記球の回転を特定する手段とを含む、３次元物体表示制御装置。
【請求項３】
請求の範囲第１項に記載の３次元物体表示制御装置であって、
前記回転特定手段は、
前記カメラで撮影された球の画像の中から少なくとも２つの特徴点を選択し、その特徴点の前記画像上の２次元座標を設定する特徴点設定手段と、
前記特徴点設定手段により設定された特徴点の２次元座標を更新する特徴点追跡手段と、
前記特徴点追跡手段により更新された特徴点の２次元座標を所定時間ごとに取得するサンプリング手段と、
前記サンプリング手段により取得された特徴点の２次元座標を前記球の表面上の３次元座標に変換する座標変換手段と、
前記座標変換手段により変換された３次元座標に基づいて前記球の回転を表す回転行列を算出する回転行列算出手段とを含む、３次元物体表示制御装置。
【請求項４】
請求の範囲第２項に記載の３次元物体表示制御装置であってさらに、
前記特徴点追跡手段により追跡されている特徴点のうちいずれか１つから前記球の中心までの前記画像上の距離が第１の所定距離よりも長い場合、その１つの特徴点の代わりに新しい１つの特徴点を再設定する特徴点再設定手段を備え、その新しい１つの特徴点から前記球の中心までの前記画像上の距離は前記第１の所定距離よりも短い、３次元物体表示制御装置。
【請求項５】
請求の範囲第４項に記載の３次元物体表示制御装置であって、
前記新しい１つの特徴点から当該他の特徴点までの前記画像上の距離は第２の所定距離よりも長い、３次元物体表示制御装置。
【請求項６】
画面上に表示された３次元物体を回転させる３次元物体表示制御方法であって、
球を回転させるステップと、
前記球をカメラで撮影するステップと、
前記カメラで撮影された球の画像に基づいて前記球の回転を特定するステップと、
前記特定された球の回転に連動して前記３次元物体を回転させるステップとを含む３次元物体表示制御方法。
【請求項７】
請求の範囲第６項に記載の３次元物体表示制御方法であって、
前記球の回転を特定するステップは、
前記カメラで撮影された球の画像の中に少なくとも２つの特徴点を設定するステップと、
前記設定された特徴点を追跡するステップと、
前記追跡されている特徴点に基づいて前記球の回転を特定するステップとを含む、３次元物体表示制御方法。
【請求項８】
請求の範囲第６項に記載の３次元物体表示制御方法であって、
前記球の回転を特定するステップは、
前記カメラで撮影された球の画像の中から少なくとも２つの特徴点を選択し、その特徴点の前記画像上の２次元座標を設定するステップと、
前記設定された特徴点の２次元座標を更新するステップと、
前記更新された特徴点の２次元座標を所定時間ごとに取得するステップと、
前記取得された特徴点の２次元座標を前記球の表面上の３次元座標に変換するステップと、
前記変換された３次元座標に基づいて前記球の回転を表す回転行列を算出するステップとを含む、３次元物体表示制御方法。
【請求項９】
請求の範囲第７項に記載の３次元物体表示制御方法であってさらに、
前記追跡されている特徴点のうちいずれか１つから前記球の中心までの前記画像上の距離が第１の所定距離よりも長い場合、その１つの特徴点の代わりに新しい１つの特徴点を再設定するステップを含み、その新しい１つの特徴点から前記球の中心までの前記画像上の距離は前記第１の所定距離よりも短い、３次元物体表示制御方法。
【請求項１０】
請求の範囲第９項に記載の３次元物体表示制御方法であって、
前記新しい１つの特徴点から当該他の特徴点までの前記画像上の距離は第２の所定距離よりも長い、３次元物体表示制御方法。
【請求項１１】
画面上に表示された３次元物体を回転させる３次元物体表示制御プログラムであって、
カメラで撮影された球の画像を取得するステップと、
前記カメラで撮影された球の画像に基づいて前記球の回転を特定するステップと、
前記特定された球の回転に連動して前記３次元物体を回転させるステップとをコンピュータに実行させるための３次元物体表示制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元物体表示制御装置及びその方法に関し、さらに詳しくは、画面上に表示された３次元物体(3D object)を回転させる３次元物体表示制御装置及びその方法に関する。
【背景技術】
【０００２】
近年、様々な分野で３次元グラフィックスが用いられている。たとえば科学分野では、数値計算した結果を表示するときやタンパク質の構造を見るときなどに利用される。工業分野では、自動車の設計、建築物の設計、ＣＡＤ(Computer Aided Design)等で用いられる。また、身近なところでは、ＴＶやパソコン、ゲームなどで見ることができる。【０００３】
多くのシステムでは、画面に表示された３次元物体を回転させるための入力装置として、マウスが用いられている。マウスでの３次元物体の回転操作はたいていのアプリケーションにおいて、マウスを左右に動かせば画面上縦方向の軸周りに物体を回転させ、また、マウスを前後に動かせば画面上横方向の軸周りに物体を回転させることができる。【０００４】
しかしながら、３次元物体を直感的なマウス操作で自由自在に回転させることはできない。すなわち、前後左右のマウス操作で画面に垂直な軸周りに物体を回転させることは容易ではない。たとえば画面に垂直な軸周りに物体を１８０度回転させるためには、まずマウスを左右に動かして物体を縦方向の軸周りに１８０度回転させ、次にマウスを前後に動かして横方向の軸周りに１８０度回転させなければならない。画面に垂直な軸周りの回転であれば操作はまだ可能かもしれないが、画面に対して少し斜めに交差する軸周りになると操作は極めて困難になる。【０００５】
ところで、特開２００５−３２２４５号公報には、ビデオゲーム用のコントローラが記載されている。このコントローラは、ジョイスティックシャフトと、その下部に取り付けられた球形の要素と、その表面の画像を逐次入力するイメージャと、入力された複数画像の比較結果に基づいて要素の動きを検出する動き検出器とを備えている。このコントローラは基本的に２次元又は３次元座標の入力装置として用いるもので、画面上に表示された３次元物体を回転させるためのものではない。【０００６】
また、特開２０００−３３０７２２号公報には、表示画像を３次元方向に動かすための位置情報入力装置が記載されている。この入力装置は、表示画像をＸ軸周り、Ｙ軸周り、Ｚ軸周りに回転させるための回転検出機構を備えている。回転検出機構は、球体を指先で転がすと、回転の方向及び量を出力するようになっているが、回転の検出は機械的に行われている。【０００７】
また、特開２０００−２０７０９３号公報には、３次元形状の回転表示装置が記載されている。この回転表示装置は、ボール体を手で回転させると、その回転を検出して表示画像を一緒に回転させるようになっているが、回転の検出はやはり機械的に行われている。【０００８】
また、特開平９−２１８７４４号公報には、３次元グラフィックスの表示画像を回転させるためのマウスが記載されているが、その構造は後述する本発明と全く異なる。
【発明の開示】
【０００９】
本発明の目的は、画面上に表示された３次元物体を直感的な操作で自由自在に回転させることができる３次元物体表示制御装置及びその方法、並びにそれに用いる３次元物体表示制御プログラムを提供することである。
【００１０】
本発明による３次元物体表示制御装置は、画面上に表示された３次元物体を回転させる３次元物体表示制御装置であって、球と、カメラと、回転特定手段と、物体回転手段とを備える。球は回転自在で、好ましくは３つのベアリングで支持されるが、全く何にも支持されていなくてもよい。カメラは球を撮影する。回転特定手段は、カメラで撮影された球の画像に基づいて球の回転を特定する。物体回転手段は、回転特定手段により特定された回転に連動して３次元物体を回転させる。
【００１１】
本発明によれば、ユーザの操作で球が回転されると、カメラで撮影された球の画像に基づいて球の回転が特定され、その特定された回転に連動して３次元物体が回転される。そのため、画面上に表示された３次元物体を直感的な操作で自由自在に回転させることができる。
【００１２】
回転特定手段は、カメラで撮影された球の画像の中に少なくとも２つの特徴点を設定する特徴点設定手段と、特徴点設定手段により設定された特徴点を追跡する特徴点追跡手段と、特徴点追跡手段により追跡されている特徴点に基づいて球の回転を特定する手段とを含んでいてもよい。
【００１３】
回転特定手段は、カメラで撮影された球の画像の中から少なくとも２つの特徴点を選択し、その特徴点の画像上の２次元座標を設定する特徴点設定手段と、特徴点設定手段により設定された特徴点の２次元座標を更新する特徴点追跡手段と、特徴点追跡手段により更新された特徴点の２次元座標を所定時間ごとに取得するサンプリング手段と、サンプリング手段により取得された特徴点の２次元座標を球の表面上の３次元座標に変換する座標変換手段と、座標変換手段により変換された３次元座標に基づいて球の回転を表す回転行列を算出する回転行列算出手段とを含んでいてもよい。
【００１４】
３次元物体表示制御装置はさらに、特徴点追跡手段により追跡されている特徴点のうちいずれか１つから球の中心までの画像上の距離が第１の所定距離よりも長い場合、その１つの特徴点の代わりに新しい１つの特徴点を再設定する特徴点再設定手段を備えていてもよい。その新しい１つの特徴点から球の中心までの画像上の距離は第１の所定距離よりも短くてもよい。
【００１５】
この場合、単位時間当たりの変位量の多い特徴点のみを用いるので、高い精度で球の回転を特定することができる。
【００１６】
新しい１つの特徴点から当該他の特徴点までの画像上の距離は第２の所定距離よりも長くてもよい。
【００１７】
この場合、特徴点間の距離が遠いので、高い精度で球の回転を特定することができる。
【００１８】
本発明による３次元物体表示制御方法は、画面上に表示された３次元物体を回転させる３次元物体表示制御方法であって、球を回転させるステップと、球をカメラで撮影するステップと、カメラで撮影された球の画像に基づいて球の回転を特定するステップと、特定された球の回転に連動して３次元物体を回転させるステップとを含む。
【００１９】
本発明によれば、ユーザの操作で球が回転されると、カメラで撮影された球の画像に基づいて球の回転が特定され、その特定された回転に連動して３次元物体が回転される。そのため、画面上に表示された３次元物体を直感的な操作で自由自在に回転させることができる。
【００２０】
本発明による３次元物体表示制御プログラムは、画面上に表示された３次元物体を回転させる３次元物体表示制御プログラムであって、カメラで撮影された球の画像を取得するステップと、カメラで撮影された球の画像に基づいて球の回転を特定するステップと、特定された球の回転に連動して３次元物体を回転させるステップとをコンピュータに実行させる。
【００２１】
本発明によれば、ユーザの操作で球が回転されると、カメラで撮影された球の画像に基づいて球の回転が特定され、その特定された回転に連動して３次元物体が回転される。そのため、画面上に表示された３次元物体を直感的な操作で自由自在に回転させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態による３次元物体表示制御装置を用いたコンピュータシステムの全体構成を示す図である。
【図２】図１中のカメラで撮影された球の画像を示す図である。
【図３】図１に示したコンピュータシステムの動作を示すフロー図である。
【図４】図１に示したコンピュータシステムの実空間に導入されるＸＹＺ座標系を示す図である。
【図５】図４に示した球面上の点（Ｘ，Ｙ，Ｚ）をＸ−Ｙ平面上に投影した状態を示す図である。
【図６】図１中の球が回転されたときの特徴点の移動を示す図である。
【図７】図６に示した回転を２回の回転に分割したときの特徴点の移動を示す図である。
【図８】（ａ）は球の中心及び点ｒ１，ｒ２を通る面における断面図であり、（ｂ）は回転角φ２を示す（ａ）の斜視図である。
【図９】図３中の特徴点再設定の詳細を示すフロー図である。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面を参照して詳しく説明する。図中同一又は相当部分には同一符号を付してその説明を援用する。
【００２４】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。【００２５】
図１を参照して、本発明の実施の形態による３次元物体表示制御装置を用いたコンピュータシステム１０は、コンピュータ１２と、ディスプレイ１４と、キーボード１６と、マウス１８と、回転情報入力装置２０とを備える。ディスプレイ１４、キーボード１６、マウス１８、及び回転情報入力装置２０は、コンピュータ１２に接続される。コンピュータ１２、ディスプレイ１４、キーボード１６、及びマウス１８は、汎用のものである。【００２６】
コンピュータ１２は、図示は省略するが、ＣＰＵ(Central Processing Unit)、ＲＯＭ(Read Only Memory)、ＲＡＭ(Random Access Memory)、ハードディスクなどを備える。コンピュータ１２には、ＯＳ(Operating System)、３次元グラフィックスソフトウェアのほか、後に詳述する３次元物体表示制御プログラム（回転情報入力装置２０のドライバ、物体追跡ソフトウェアなどで構成される。）がインストールされる。３次元グラフィックスソフトウェアには、たとえばＯｐｅｎＧＬ(Open Graphics Library)(Intel Open Source Computer Vision Library)（登録商標；以下同じ）が用いられる。ＯｐｅｎＧＬは、米シリコングラフィックス社が中心となって開発した３次元グラフィックスを描くためのプログラムインターフェースである。高精度の３次元グラフィックスを高速に描画でき、ＯＳに依存しないのが特徴である。また、物体追跡ソフトウェアには、たとえばＯｐｅｎＣＶ（商標；以下同じ）が用いられる。ＯｐｅｎＣＶは、米インテル社が開発・公開しているコンピュータビジョン向けのライブラリである。カメラから取得したデータで各ピクセルのＲＧＢ値を取り出すことができる。取得したデータを用いて、画像上のある点を追跡することができる。これらのソフトウェアはハードディスクに記憶されており、ＣＰＵにより読み出されて実行される。【００２７】
回転情報入力装置２０は、球２２と、球２２を３つのボールベアリングで回転自在に支持する三脚２４と、球２２を下方から撮影するカメラ２６とを備える。球２２の回転を検知し易くするために、球２２の表面には比較的小さい三角形が多数描かれている。ユーザが手で球２２を操作すると、球２２はその中心を固定したまま任意の方向へ任意の量だけ回転される。カメラ２６はその光軸が球２２の中心を通るように設置される。【００２８】
次に、上記コンピュータシステム１０の動作を説明する。【００２９】
カメラ２６で球２２を下方から撮影すると、図２に示されるような画像が得られる。球２２は画面いっぱいに映り、球２２の三方には三脚２４の先端部分が映っている。得られた画像はコンピュータ１２に送られる。【００３０】
図３に３次元物体表示制御プログラムのフロー図を示す。ただし、３次元物体の描画はＯｐｅｎＧＬ等の３次元グラフィックスソフトウェアで実行される。【００３１】
図３を参照して、コンピュータ１２は、送られて来た画像を所定周期でキャプチャする（Ｓ１）。コンピュータ１２は、キャプチャされた画像の中に特徴点が存在するか否かを判断する（Ｓ２）。最初、特徴点は存在しないので（Ｓ２でＮＯ）、コンピュータ１２は、図２に例示されるように球２２の画像の中に２つの特徴点ｒ１，ｒ２を設定する（Ｓ３）。具体的には、コンピュータ１２は、球の画像の中から２つの特徴点ｒ１，ｒ２を選択し、その特徴点ｒ１，ｒ２の画像上の２次元座標（ｘ，ｙ）を設定する（Ｓ３）。特徴点ｒ１，ｒ２は、他の部分と区別し易い位置（本例では球２２の表面上に描かれた三角形の頂点）に設定される。【００３２】
２次元座標（ｘ，ｙ）は次のとおり定義する。すなわち、図２に示すように、画像上にｘｙ座標系を導入し、画像の左上を原点（０，０）とする。カメラ２６はその光軸が球２２の中心を通るように設置されるので、球２２の中心Ｃの座標（ｘｃ，ｙｃ）は画像の中心に一致する。【００３３】
一方、特徴点ｒ１，ｒ２が存在する場合（Ｓ２でＹＥＳ）、コンピュータ１２はＯｐｅｎＣＶの機能を利用し、特徴点ｒ１，ｒ２を追跡する（Ｓ４）。具体的には、球２２がユーザにより操作され、回転されると、特徴点ｒ１，ｒ２が移動するので、コンピュータ１２は、特徴点ｒ１，ｒ２の２次元座標（ｘ，ｙ）を更新する（Ｓ４）。【００３４】
コンピュータ１２は、このように特徴点ｒ１，ｒ２を追跡している間に、所定時間ごとに特徴点ｒ１，ｒ２の２次元座標（ｘ，ｙ）をサンプリング（取得）する（Ｓ５，Ｓ６）。【００３５】
次いで、コンピュータ１２は、特徴点ｒ１，ｒ２の２次元座標（ｘ，ｙ）を球２２の表面上の３次元座標（Ｘ，Ｙ，Ｚ）に変換する（Ｓ７）。【００３６】
３次元座標（Ｘ，Ｙ，Ｚ）は次のとおり定義する。すなわち、図４に示すように、実空間（３次元空間）にＸＹＺ座標系を導入する。球２２がディスプレイ１４の左手前に設置されたとし、球２２の中心Ｃを原点（０，０，０）とする。ディスプレイ画面に垂直でユーザのいる方向をＸ軸、ディスプレイ画面の水平右向きをＹ軸、鉛直上向きをＺ軸とする。【００３７】
特徴点ｒ１，ｒ２の２次元座標（ｘ，ｙ）が与えられたとき、その３次元座標（Ｘ，Ｙ，Ｚ）は次のとおり算出される。図５に示すように、カメラ２６と球２２の中心Ｃとの間の距離をＬとし、球２２の半径をＲとする。球２２の表面上にある特徴点（Ｘ，Ｙ，Ｚ）をカメラ２６の位置（０，０，−Ｌ）からＸ−Ｙ平面に投影した点の座標を（Ｘ'，Ｙ'，０）とすると、（Ｘ，Ｙ，Ｚ）は次の式（１）で表される。
【数１】
2010013336.tif 000003
【００３８】
特徴点（Ｘ，Ｙ，Ｚ）は半径Ｒの球２２の表面上にあるので、ｔは次の式（２）で表される。
【数２】
2010013336.tif 000004
【００３９】
以上のように、（Ｘ'，Ｙ'）→（Ｘ，Ｙ，Ｚ）の対応は式（１）及び（２）により与えられる。【００４０】
最後に、Ｘ−Ｙ平面上の座標（Ｘ，Ｙ）と画面上の座標（ｘ，ｙ）との対応を求める。Ｘ−Ｙ平面に投影された球２２の像の半径Ｒｃは次の式（３）で表される。
【数３】
2010013336.tif 000005
【００４１】
この半径Ｒｃと画像上の球２２の半径ｒｃと用いると、Ｘ−Ｙ平面上の特徴点の座標（Ｘ'，Ｙ'）は次の式（４）で表される。
【数４】
2010013336.tif 000006
【００４２】
これにより、（ｘ，ｙ）→（Ｘ'，Ｙ'）の対応は求まったので、前述の（Ｘ'，Ｙ'）→（Ｘ，Ｙ，Ｚ）の対応と合わせると、特徴点ｒ１，ｒ２の２次元座標（ｘ，ｙ）から球２２の表面上の３次元座標（Ｘ，Ｙ，Ｚ）を計算することができる。【００４３】
再び図３を参照して、上述した特徴点の座標変換（Ｓ７）後、コンピュータ１２は、３次元座標（Ｘ，Ｙ，Ｚ）に基づいて球２２の回転を表す回転行列を算出する（Ｓ８）。詳細は次のとおりである。【００４４】
まず準備として、単位ベクトルｌ＝（lx，ly，lz）を回転軸として、その周りに角度θだけ回転する変換を表す行列Ｒ（ｌ，θ）∈ＳＯ（３）は次の式（５）で表される。なお、ＳＯ３は特殊直交群であり、３次実直交行列のうち行列式の値が１のものである。
【数５】
2010013336.tif 000007
【００４５】
ただし、ｌＴはｌの転置であり、Ｉは単位行列であり、Ｓは次の式（６）で表される。
【数６】
2010013336.tif 000008
【００４６】
式（５）を成分で表示すると、次の式（７）になる。
【数７】
2010013336.tif 000009
【００４７】
特にθ＝０（すなわち回転角が０度）ならば、ｌが何であってもＲ（ｌ，θ）＝Ｉである。球２２の中心Ｃは固定されているので、以下では座標系の原点は球２２の中心Ｃとする。【００４８】
図６に、時刻ｔ１と時刻ｔ２との間に起こった球２２の回転Ｒによる２点の移動を示す。ｒ１→ｒ１'の移動はｒ１'＝Ｒｒ１と表される。ｒ２→ｒ２'の移動はｒ２'＝Ｒｒ２と表される。【００４９】
時刻ｔ１と時刻ｔ２との間に起こった球２２の回転を表す回転行列Ｒ∈ＳＯ（３）を求めるために、球２２の表面上にある２点の移動を測定する。これは、回転前と回転後の２点の位置の対応関係がわかれば一意的に回転行列Ｒ∈ＳＯ（３）を定めることができるからである。【００５０】
この回転行列Ｒを求めるための概略は以下のとおりである。図７を参照して、球２２をまず軸ｌ１の周りに回転させ、次いで軸ｌ２の周りに回転させることによって、ｒ１をｒ１'に、ｒ２をｒ２'に移動させることができる。そこで、まず、点ｒ１を点ｒ１'に重ね合わせる回転行列Ｒ１（回転軸ｌ１）を求める。この際、点ｒ１と点ｒ１'を通る大円を含む平面に直交するように回転軸ｌ１を定める。この回転によりｒ２はｒ２'＝Ｒ１ｒ２へ移動する。次いで、球２２の中心Ｃと点ｒ１'を通る軸ｌ２の周りで球２２を回転させ、点ｒ２'を点ｒ２'に重ね合わせる回転行列Ｒ２を求める。最後にこれら２つの回転行列を合成すると、回転行列Ｒ＝Ｒ２Ｒ１が求められる。【００５１】
次に、回転行列Ｒを具体的に計算する方法を述べる。第１の回転Ｒ１の回転軸ｌ１（単位ベクトル）は外積を用いて次の式（８）で求められる。
【数８】
2010013336.tif 000010
【００５２】
また、その周りの回転角φ１は次の式（９）で求められる。
【数９】
2010013336.tif 000011
【００５３】
ここで現実の計算においては、時刻ｔ１と時刻ｔ２の間隔が小さく、その間に起こる回転も小さいという事実に基づき、０≦φ１＜π／２としている。なお、ｒ１＝ｒ１'であるときは、ｌ１は適当な単位ベクトルを取り、φ１＝０としておく。【００５４】
図８（ａ）及び（ｂ）を参照して、第２の回転Ｒ２の回転軸ｌ２（単位ベクトル）は次の式（１０）で与えられる。
【数１０】
2010013336.tif 000012
【００５５】
回転角φ２は以下のように求める。点ｒ２'と点ｒ２'を通り回転軸ｌ２と垂直な平面ＰＬと、回転軸との交点のベクトルｌ２'は次の式（１１）で表される。
【数１１】
2010013336.tif 000013
【００５６】
その周りの回転角φ２は次の式（１２）で表される。
【数１２】
2010013336.tif 000014
【００５７】
ここでも回転が小さいという事実を用い、０≦φ２＜π／２としている。また、ｒ２'＝ｒ２'であるときは、ｌ２は適当な単位ベクトルを取り、φ２＝０としておく。【００５８】
このようにして、２つの回転の回転軸と回転角の組み合わせ（ｌ１，φ１）及び（l２，φ２）を得ることができる。回転軸と回転角がわかれば、式（５）により各ステップの回転行列Ｒ１＝Ｒ（l１，φ１），Ｒ２＝Ｒ（l２，φ２）を計算でき、次の式（１３）によって回転行列Ｒを求めることができる。
【数１３】
2010013336.tif 000015
【００５９】
再び図３を参照して、上述した回転行列の算出（Ｓ８）後、コンピュータ１２は、上記で特定された球２２の回転に連動して、ディスプレイ１４の画面上に表示されている３次元物体を回転させる（Ｓ９）。具体的には、コンピュータ１２は、上記で算出された回転行列Ｒを３次元物体の各頂点座標に乗算する。これにより、回転後の３次元物体の各頂点座標が求められる。【００６０】
次いで、コンピュータ１２は、上記で追跡されている一方の特徴点ｒ１又はｒ２から球２２の中心までの画像上の距離が所定距離ＲＩよりも長い場合、その特徴点ｒ１又はｒ２の代わりに新しい特徴点を再設定する（Ｓ１０）。ただし、その新しい特徴点から球２２の中心までの画像上の距離は所定距離ＲＩよりも短く、かつ、その新しい特徴点から当該他の特徴点ｒ２又はｒ１までの画像上の距離は所定距離ＲＰよりも長くなるように新しい特徴点を再設定する。【００６１】
具体的には図２を参照して、球２２の画像中に制限円ＬＣが設定される。制限円ＬＣの中心は球２２の中心Ｃと一致する。制限円ＬＣの半径ＲＩは球２２の半径Ｒよりも小さく、好ましくは球２２の半径Ｒの約半分である。追跡されている特徴点ｒ１，ｒ２の一方が制限円ＬＣから外れると、その特徴点の代わりに新しい特徴点が制限円ＬＣ内に再設定される。一定速度で球２２が回転されている場合、画像上においては、球２２の中心付近では特徴点の速度は速いが、球２２の外縁に近付くに連れて遅くなる。そのため、球２２の外縁付近まで特徴点を追跡し続けると、球２２の回転検出精度が低下してしまう。そこで本実施の形態では、制限円ＬＣ内の特徴点から球２２の回転を特定するようにしている。【００６２】
また、新しい特徴点を再設定する際には、もう一方の特徴点からできる限り遠くに設定するのが好ましい。特徴点間の距離が余りに近すぎると、球２２の回転検出精度が低下してしまうからである。本実施の形態では、もう一方の特徴点から少なくとも所定距離ＲＰだけ離れた位置に特徴点を再設定するようにしている。【００６３】
図９に特徴点再設定の詳細を示す。図９を参照して、コンピュータ１２は、特徴点ｒ１と球２２の中心Ｃとの間の画像上の距離ＤＩＳを算出する（Ｓ１０１）。次いで、コンピュータ１２は、距離ＤＩＳが所定距離ＲＩよりも長いか否かを判断する（Ｓ１０２）。距離ＤＩＳが所定距離ＲＩよりも長い場合、つまり特徴点ｒ１が制限円ＬＣから外れた場合（Ｓ１０２でＹＥＳ）、上記ステップＳ３と同様に、コンピュータ１２は新しい特徴点ｒ１を再設定する（Ｓ１０３）。次いで、コンピュータ１２は新しい特徴点ｒ１と球２２の中心Ｃとの間の画像上の距離ＤＩＳ０を算出し（Ｓ１０４）、かつ、特徴点ｒ１と特徴点ｒ２との間の距離ＤＩＳ１を算出する（Ｓ１０５）。次いで、コンピュータ１２は、距離ＤＩＳ０が所定距離ＲＩよりも短く、かつ、距離ＤＩＳ１が所定距離ＲＰよりも長いか否かを判断する（Ｓ１０６）。距離ＤＩＳ０が所定距離ＲＩよりも長い場合、つまり新しい特徴点ｒ１が制限円ＬＣの外側にある場合（Ｓ１０６でＮＯ）、又は、距離ＤＩＳ１が所定距離ＲＰよりも短い場合、つまり新しい特徴点ｒ１がもう一方の特徴点ｒ２に所定距離ＲＰよりも近い場合（Ｓ１０６でＮＯ）、上記ステップＳ１０３〜Ｓ１０５を繰り返す。これにより、制限円ＬＣ内で、かつ、もう一方の特徴点Ｒ２から所定距離ＲＰよりも離れた位置に新しい特徴点ｒ１が再設定される。特徴点ｒ２に対しても上記ステップＳ１０１〜Ｓ１０６と同じ処理を行う。【００６４】
再び図３を参照して、コンピュータ１２は、上記ステップＳ９で回転された３次元物体をディスプレイ１４上に描画する（Ｓ１１）。【００６５】
以上のように本発明の実施の形態によれば、カメラ２６で撮影された球２２の画像の中から２つの特徴点ｒ１，ｒ２が選択され、その特徴点ｒ１，ｒ２の画像上の２次元座標（ｘ，ｙ）が設定され、その特徴点が追跡される。特徴点ｒ１，ｒ２の２次元座標（ｘ，ｙ）は所定時間ごとにサンプリングされ、球２２の表面上の３次元座標（Ｘ，Ｙ，Ｚ）に変換される。所定時間で移動した前後の特徴点ｒ１，ｒ２の３次元座標（Ｘ，Ｙ，Ｚ）に基づいて球２２の回転を表す回転行列Ｒが算出される。したがって、ユーザの操作で球２２が回転されると、カメラ２６で撮影された球２２の画像に基づいて球２２の回転が特定され、その特定された回転に連動して３次元物体が回転される。そのため、画面上に表示された３次元物体を直感的な操作で自由自在に回転させることができる。【００６６】
上記実施の形態では球２２の表面に三角形が描かれているが、図形、大きさ、数などは特に限定されるものではなく、要は、球２２の回転を検知し易い模様が描かれていればよい。また、カメラ２６の精度が高く、肉眼では見えない微細な地模様を検知できるのであれば、何も描かれていなくてもよい。【００６７】
一般に、球の表面上にある少なくとも２つ点の動きを特定すれば、球の回転を特定できることから、上記実施の形態では特徴点は２つとしたが、３つ以上にしてもよい。この場合、情報処理の量は増えるが、計算精度は向上する。【００６８】
また、上記実施の形態では三脚２４で球２２を回転自在に支持してカメラ２６で球２２を撮影するようにした回転情報入力装置２０を用いたが、球２２及びカメラ２６を小型化し、マウス１８又はキーボード１６に埋め込むようにしてもよい。【００６９】
また、上記実施の形態は画面上に表示されている３次元物体をその場で回転できるだけであるが、３次元方向に移動できるようにしてもよい。そのためには、たとえば球２２の回転を検出するだけでなく、球２２の３次元方向への移動も検出するようにすればよい。【００７０】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【図１】
2010013336.tif 000016
【図２】
2010013336.tif 000017
【図３】
2010013336.tif 000018
【図４】
2010013336.tif 000019
【図５】
2010013336.tif 000020
【図６】
2010013336.tif 000021
【図７】
2010013336.tif 000022
【図８Ａ】
2010013336.tif 000023
【図８Ｂ】
2010013336.tif 000024
【図９】
2010013336.tif 000025
【手続補正書】
【提出日】平成22年1月7日(2010.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画面上に表示された３次元物体を回転させる３次元物体表示制御装置であって、
回転自在な球と、
前記球を撮影するカメラと、
前記カメラで撮影された球の画像に基づいて前記球の回転を特定する回転特定手段と、
前記回転特定手段により特定された回転に連動して前記３次元物体を回転させる物体回転手段とを備え、
前記回転特定手段は、
前記カメラで撮影された球の画像の中に少なくとも２つの特徴点を設定する特徴点設定手段と、
前記特徴点設定手段により設定された特徴点を追跡する特徴点追跡手段と、
前記特徴点追跡手段により追跡されている特徴点に基づいて前記球の回転を特定する手段とを含み、
前記３次元物体表示制御装置はさらに、
前記特徴点追跡手段により追跡されている特徴点のうちいずれか１つから前記球の中心までの前記画像上の距離が第１の所定距離よりも長い場合、その１つの特徴点の代わりに新しい１つの特徴点を再設定する特徴点再設定手段を備え、その新しい１つの特徴点から前記球の中心までの前記画像上の距離は前記第１の所定距離よりも短い、３次元物体表示制御装置。
【請求項２】
請求項１に記載の３次元物体表示制御装置であって、
前記新しい１つの特徴点から当該他の特徴点までの前記画像上の距離は第２の所定距離よりも長い、３次元物体表示制御装置。
【請求項３】
画面上に表示された３次元物体を回転させる３次元物体表示制御方法であって、
球を回転させるステップと、
前記球をカメラで撮影するステップと、
前記カメラで撮影された球の画像に基づいて前記球の回転を特定するステップと、
前記特定された球の回転に連動して前記３次元物体を回転させるステップとを含み、
前記球の回転を特定するステップは、
前記カメラで撮影された球の画像の中に少なくとも２つの特徴点を設定するステップと、
前記設定された特徴点を追跡するステップと、
前記追跡されている特徴点に基づいて前記球の回転を特定するステップとを含み、
前記３次元物体表示制御方法はさらに、
前記追跡されている特徴点のうちいずれか１つから前記球の中心までの前記画像上の距離が第１の所定距離よりも長い場合、その１つの特徴点の代わりに新しい１つの特徴点を再設定するステップを含み、その新しい１つの特徴点から前記球の中心までの前記画像上の距離は前記第１の所定距離よりも短い、３次元物体表示制御方法。
【請求項４】
請求項３に記載の３次元物体表示制御方法であって、
前記新しい１つの特徴点から当該他の特徴点までの前記画像上の距離は第２の所定距離よりも長い、３次元物体表示制御方法。
【請求項５】
画面上に表示された３次元物体を回転させる３次元物体表示制御プログラムであって、コンピュータに、
カメラで撮影された球の画像を取得するステップと、
前記カメラで撮影された球の画像に基づいて前記球の回転を特定するステップと、
前記特定された球の回転に連動して前記３次元物体を回転させるステップとを実行させ、
前記球の回転を特定するステップは、
前記カメラで撮影された球の画像の中に少なくとも２つの特徴点を設定するステップと、
前記設定された特徴点を追跡するステップと、
前記追跡されている特徴点に基づいて前記球の回転を特定するステップとを含み、
前記３次元物体表示制御プログラムはさらに、前記コンピュータに、
前記追跡されている特徴点のうちいずれか１つから前記球の中心までの前記画像上の距離が第１の所定距離よりも長い場合、その１つの特徴点の代わりに新しい１つの特徴点を再設定するステップを実行させ、その新しい１つの特徴点から前記球の中心までの前記画像上の距離は前記第１の所定距離よりも短い、３次元物体表示制御プログラム。
【請求項６】
請求項５に記載の３次元物体表示制御プログラムであって、
前記新しい１つの特徴点から当該他の特徴点までの前記画像上の距離は第２の所定距離よりも長い、３次元物体表示制御プログラム。
【国際調査報告】
2010013336.tif 000026
2010013336.tif 000027
2010013336.tif 000028
2010013336.tif 000029