JP2008135996A - 情報処理方法、情報処理装置 - Google Patents

情報処理方法、情報処理装置 Download PDF

Info

Publication number
JP2008135996A
JP2008135996A JP2006320873A JP2006320873A JP2008135996A JP 2008135996 A JP2008135996 A JP 2008135996A JP 2006320873 A JP2006320873 A JP 2006320873A JP 2006320873 A JP2006320873 A JP 2006320873A JP 2008135996 A JP2008135996 A JP 2008135996A
Authority
JP
Japan
Prior art keywords
captured image
image data
calibration pattern
marker
image
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.)
Withdrawn
Application number
JP2006320873A
Other languages
English (en)
Inventor
Tomohiko Shimoyama
朋彦 下山
Shigeo Higashiura
成生 東浦
Kenji Morita
憲司 守田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006320873A priority Critical patent/JP2008135996A/ja
Publication of JP2008135996A publication Critical patent/JP2008135996A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 校正用パターンを撮像するユーザへの負担を軽減させるための技術を提供すること。
【解決手段】 列方向、及び行方向を特定すると共にそれぞれの方向の一端を特定する為の情報が記されたカメラパラメータ計算用の平面媒体が現実空間中に配されている場合に、平面媒体を含む現実空間の撮像画像を取得する(S101)。撮像画像からこの情報を検出して解析することで、撮像画像中における平面媒体の行方向、及び列方向を検出する(S102)。撮像画像を表示する表示画面の行方向に撮像画像から検出した平面媒体の行方向を一致させるべく撮像画像を回転させ(S104)、表示する(S105)。
【選択図】 図5

Description

本発明は、カメラパラメータを求めるための技術に関するものである。
カメラにより撮像された撮像画像の歪み量、被写体深度、画像中心等のカメラパラメータの測定は、あらかじめ決められたパターンを撮影することで行うことが一般的である。そのようなシステムの例としては非特許文献1に開示されているカメラキャリブレーションツールが挙げられる。
このツールでは、図1に示すような点列が並んだ校正用パターンを構図を変えて複数枚撮影し、対応する点がどのように見えるかに基づいてカメラパラメータを測定する。図1は、校正用パターンの一例を示す図である。
精度のよいカメラパラメータ測定を行うためには、異なった構図で、画面全体に校正用パターンが写った画像を撮影する必要がある。そのためには校正用パターンを様々な角度から撮影し、カメラを傾けたり上下逆さまにしたりする必要がある。
このツールを用いて画像を取得する場合について図2を用いて説明する。図2は、上記ツールを用いて校正用パターンの画像を取得する為の様子を示す模式図である。ユーザ201の手には、現実空間の動画像を撮像するカメラ202が保持されている。カメラ202により撮像された各フレームの画像はコンピュータのプレビュー画面204上に表示される。従ってユーザ201はプレビュー画面204いっぱいに校正用パターン203が写るように、同図矢印に示す如く、カメラ202を動かす。カメラ202を動かす際には、カメラ202を傾けたり、回転させたりする。
このようにプレビュー画面を見ながらカメラを様々な角度に傾けて撮像し、画像を取得することで、様々な構図から校正用パターンの画像を、プレビュー画面に対していっぱいの状態で取得することができる。
そしてこのような校正用パターンの画像を用いてカメラパラメータを求める処理を行うことで、精度の高いカメラパラメータ測定を行うことができる。
S.Uchiyama, K.Takemoto, K.Satoh, H.Yamamoto, and H.Tamura:"MR Platform: A basic body on which mixed reality applications are built," Proc. IEEE/ACM Int’l Symp. on Mixed and Augmented Reality (ISMAR 2002), pp.246−253, 2002.
しかしながら、カメラを傾けた状態でプレビュー画面を見ていると、手を動かした方向と画面内に写っている画像の動く方向とが一致しなくなる。極端な例としては、カメラを視軸周りに90度回転させている場合、カメラを右に動かすとプレビュー画面に映った画像が下(もしくは上)に移動する。また、カメラを上に動かすとプレビュー画面に映った画像が右(もしくは左)に移動する。
このような状況で画面全体に校正用パターンが写るように手に持ったカメラを調整することは、手の動きと画面の動きが一致せず直感的な操作ということはできなかった。
本発明は以上の問題に鑑みてなされたものであり、校正用パターンを撮像するユーザへの負担を軽減させるための技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
即ち、現実空間に配置された校正用パターンを、複数の異なる位置姿勢から撮像装置により撮像することにより得られた複数の撮影画像データから該撮像装置のカメラパラメータを算出する情報処理方法であって、
方向を特定するためのパターンを有する現実空間に配置された校正用パターンを、ユーザによって操作された撮像装置により撮像された撮影画像データを取得する取得工程と、
前記撮影画像データにおける前記校正用パターンの方向を検出する検出工程と、
前記検出された方向が予め定められた方向になるように、前記撮影画像データを回転する回転工程と、
前記回転された撮影画像データを表示する表示工程と、
ユーザ指示に応じて前記表示された撮影画像データを登録する登録工程と、
前記登録された撮影画像データを用いて前記撮像装置のカメラパラメータを算出する算出工程と
を有することを特徴とする。
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
即ち、現実空間に配置された校正用パターンを、複数の異なる位置姿勢から撮像装置により撮像することにより得られた複数の撮影画像データから該撮像装置のカメラパラメータを算出する情報処理装置であって、
方向を特定するためのパターンを有する現実空間に配置された校正用パターンを、ユーザによって操作された撮像装置により撮像された撮影画像データを取得する取得手段と、
前記撮影画像データにおける前記校正用パターンの方向を検出する検出手段と、
前記検出された方向が予め定められた方向になるように、前記撮影画像データを回転する回転手段と、
前記回転された撮影画像データを表示する表示手段と、
ユーザ指示に応じて前記表示された撮影画像データを登録する登録手段と、
前記登録された撮影画像データを用いて前記撮像装置のカメラパラメータを算出する算出手段と
を有することを特徴とする。
本発明の構成により、校正用パターンを撮像するユーザへの負担を軽減させることができる。
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
[第1の実施形態]
図3は、本実施形態に係るシステムの外観を示す概略図である。本実施形態に係るシステムは、コンピュータシステム303と、ビデオカメラ302とで構成されており、現実空間中には、校正用パターン301が配置されている。
校正用パターン301は、後述するマーカが記された紙やプラスティックボードなどの平面媒体であり、ビデオカメラ302のレンズ中心、焦点距離等のカメラパラメータを求めるために現実空間中に配されるものである。
本実施形態では校正用パターン301として図1に示したようなものを用いる。即ち、図1に示す如く、白地に黒のマーカが3センチ間隔で方形に並んでおり、幾つかのマーカはドーナツ型になっている。ドーナツ型のマーカは、枠部が黒で記されており、枠部で囲まれている内部は白で記されている。また、このドーナツ型のマーカは、L字型に並んでおり、L字を構成する長い腕(長軸)は校正用パターン301の列方向に平行であり、L字を構成する短い腕(短軸)は校正用パターン301の行方向に平行である。L字の短軸は長さ1、長軸は長さ2以上となっている。もちろん、L字のサイズ、L字を構成する各マーカの間隔などについては特に限定するものではない。このように、校正用パターンにおけるドーナツ型のマーカ群は、校正用パターンの方向を特定するためのマーカ群である。
ビデオカメラ302は、係る校正用パターン301が配置されている現実空間の動画像を撮像するものであり、撮像した各フレームの画像データ(現実空間画像)はコンピュータシステム303に入力される。
コンピュータシステム303は、ビデオカメラ302から受信した画像中の校正用パターンを用いて、ビデオカメラ302のカメラパラメータを求める処理(カメラキャリブレーション処理)を行う。カメラキャリブレーション処理は、非特許文献1に開示されているような周知技術であるので、係る処理についての説明は省略する。
図14は、コンピュータシステム303のハードウェア構成を示すブロック図である。
CPU1401は、RAM1402やROM1403に格納されているプログラムやデータを用いてコンピュータシステム303全体の制御を行うと共に、コンピュータシステム303が行う後述の各処理を実行する。
RAM1402は、外部記憶装置1406やROM1403からロードされたプログラムやデータ、I/F(インターフェース)1407を介してビデオカメラ302から受信した現実空間画像のデータ等を一時的に記憶する為のエリアを有する。更に、RAM1402は、CPU1401が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1402は、各種のエリアを適宜提供することができる。
ROM1403は、コンピュータシステム303の設定データや、ブートプログラムなどを格納する。
操作部1404は、キーボードやマウス等により構成されており、コンピュータシステム303のユーザが操作することで、各種の指示をCPU1401に対して入力することができる。
表示部1405は、CRTや液晶画面などにより構成されており、CPU1401による処理結果(例えば、後述するGUI(グラフィカルユーザインターフェース))を画像や文字などでもって表示することができる。
外部記憶装置1406は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1406には、OS(オペレーティングシステム)や、コンピュータシステム303が行う後述の各処理をCPU1401に実行させるためのプログラムやデータ(例えば、後述のGUIに係るプログラムやデータ)等が保存されている。更に、外部記憶装置1406には、後述の説明で既知のものとして説明する情報も保存されている。外部記憶装置1406に保存されているプログラムやデータは、CPU1401による制御に従って適宜RAM1402にロードされ、CPU1401による処理対象となる。
I/F1407は、ビデオカメラ302をコンピュータシステム303に接続するためのインターフェースとして機能するものである。ビデオカメラ302から送出される各フレームの画像のデータは、このI/F1407を介してRAM1402や外部記憶装置1406に送出される。
1408は上述の各部を繋ぐバスである。
次に、上記校正用パターン301を含む現実空間をビデオカメラ302により撮像することで得られる撮像画像に基づいてビデオカメラ302に対するカメラキャリブレーション処理を行う為のソフトウェアについて説明する。係るソフトウェアに係るプログラムやデータは外部記憶装置1406に保存されており、このソフトウェアを実行する場合には事前にRAM1402にロードしておく。
図4は、このソフトウェアをCPU1401が実行することで表示部1405の表示画面上に表示されるGUIの表示例を示す図である。なお、以下の説明において特に断らない限り、GUIに対する操作はユーザが操作部1404を用いて行う。また、係る操作を行うことで行われるものとして説明する処理は、CPU1401によって実行される。
4000はGUIのウィンドウである。
4100はプレビュー画像表示領域である。プレビュー画像表示領域4100には、ビデオカメラ302からコンピュータシステム303に入力された撮像画像中の校正用パターン301中のL字の長軸が、プレビュー画像表示領域4100の縦軸(y軸)に一致するように撮像画像を回転させて表示する。ここで、y軸とは、同じx座標値で構成されている軸であり、列方向とも呼称する。
4301はキャプチャボタンである。ユーザが操作部1404を用いてキャプチャボタン4301を指示すると、CPU1401はこの指示時にプレビュー画像表示領域4100に表示されている画像の生成元である撮像画像を外部記憶装置1406に登録する。更にCPU1401は、この登録した撮像画像のサムネイルを作成し、領域4200に追加表示する。図4では4つのサムネイルが追加表示されている。
ユーザはプレビュー画像表示領域4100を観察し、校正用パターン301全体が大きく表示されるようにビデオカメラ302の位置姿勢を修正する。そして、ユーザは、校正用パターン301全体が大きく表示されたことを確認すると、操作部1404を操作してキャプチャボタン4301を指示する。これにより、カメラキャリブレーション処理に用いる為に好適な撮像画像を外部記憶装置1406に登録することができる。また、領域4200内に表示されたサムネイルを確認することにより、ユーザはカメラキャリブレーション処理に用いる撮像画像を確認することができる。
4302はキャリブレーションボタンである。キャリブレーションボタン4302は、領域4200内に4枚以上のサムネイルが表示されている場合に限り、指示可能に表示される。キャリブレーションボタン4302が指示可能に表示されている場合にユーザが操作部1404を用いてキャリブレーションボタン4302を指示したとする。すると、CPU1401は、この4枚のサムネイルに対応する4枚の撮像画像を用いてカメラキャリブレーション処理を行う。
カメラキャリブレーション処理による結果は領域4303内に表示される。図4の例では、領域4303内に、カメラキャリブレーション処理結果として、ビデオカメラ302のレンズ中心(320,240)、焦点距離(42,54)が表示されている。もちろん、カメラキャリブレーション処理結果としてこれ以外のものを求め、領域4303内に表示しても良い。
図5は、上記GUIのプログラムをCPU1401が実行することで行われる処理のフローチャートである。係るプログラムはイベント駆動型のプログラムとなっており、通常はステップS100で待機状態となっている。
そして、毎秒30回発生するビデオキャプチャデバイスドライバ(外部記憶装置1406にインストール済み)からのキャプチャイベントを検知すると、処理をステップS101に移行する。また、キャプチャボタン4301の指示検知により発生するキャプチャボタンダウンイベントを検知すると、処理をステップS106に移行する。また、キャリブレーションボタン4302の指示検知により発生するキャリブレーションボタンダウンイベントを検知すると、処理をステップS108に移行する。
ステップS100においてイベントを待機している状態で、キャプチャイベントの発生を検知すると、上述の通り処理をステップS101に進める。そしてステップS101において、ビデオカメラ302から送出された撮像画像のデータをI/F1407を介してRAM1402に格納する。格納した撮像画像のデータは、ビデオカメラ302が校正用パターン301を含む現実空間を撮像することで得られた画像データである。
なお上述の通り、ビデオカメラ302からは各フレームの撮像画像データが順次I/F1407を介してRAM1402に送出されるので、以下説明するステップS102〜S105の処理は、この各フレームに対して順次行われることになる。
次にステップS102では、ステップS101で取得した撮像画像のデータを参照し、撮像画像から校正用パターン301の像を認識する処理を行う。つまり、校正用パターンの方向を認識する処理を行う。本ステップにおける処理の詳細については後述する。そして係る認識処理が成功した場合(撮影画像から校正用パターンが認識された場合)には処理をステップS103を介してステップS104に進める。
ステップS104では、撮像画像中で認識した校正用パターン301中のドーナツ型のマーカが構成しているL字の長軸が、プレビュー画像表示領域4100のy軸に一致するように撮影画像を回転させる。つまり、校正用パターンの方向が所定の方向になるように撮影画像データを回転する。
そしてステップS105では、この回転された撮像画像を、プレビュー画像表示領域4100に表示する。図6は、撮像画像を回転させ、回転された撮影画像をプレビュー画像表示領域4100に表示する様子を示す図である。601は校正用パターン301を含む撮像画像である。699は、撮像画像中で認識した校正用パターン301中のドーナツ型のマーカによって構されたL字の長軸を示す。604は、ステップS104において撮像画像601を回転した画像である。画像604中における長軸699は、プレビュー画像表示領域4100のy軸と方向が一致している。即ち、表示部1405の表示画面におけるy軸と方向が一致している。
、一方、ステップS102における認識処理が失敗した場合(撮影画像から校正用パターンが認識されなかった場合)には処理をステップS103を介してステップS105に進める。そして、ステップS105においてステップ101で取得した撮像画像をそのままプレビュー画像表示領域4100内に表示する。
一方、ステップS100においてイベントを待機している状態で、キャプチャボタンダウンイベントの発生を検知すると、処理をステップS106に進める。そしてステップS106では、ステップS101で最後に取得した(換言すれば最新の)撮像画像データを登録撮像画像データとして外部記憶装置1406内に登録する。そしてステップS107ではこの登録した撮像画像データを用いてサムネイル画像を作成し、領域4200に追加表示する。
一方、ステップS100においてイベントを待機している状態で、キャリブレーションボタンダウンイベントの発生を検知すると、ステップS108に進める。ステップS108では、領域4200内に表示されている4枚のサムネイルに対応する4枚の撮像画像を用いてカメラキャリブレーション処理を行う。そしてステップS109では、このカメラキャリブレーション処理の結果を領域4303内に表示する。
次に、上記ステップS102における、校正用パターン301の認識処理について説明する。図7,8は、ステップS102における処理の詳細を示すフローチャートである。
図7においてステップS200では、ステップS101で取得した撮像画像の二値画像(白黒画像)を作成する。ここで、撮像画像中に校正用パターン301が含まれている場合、校正用パターン301を構成するドーナツ型のマーカの枠部は黒で記されているので、二値画像上におけるドーナツ型のマーカの枠部は黒領域として存在することになる。
そしてステップS201ではこの二値画像に対してラベリング処理を行い、白領域と黒領域とを区別する。ステップS201の処理により、ドーナツ型のマーカの枠部の領域には、その他の領域とは別のラベルが付けられる。
次にステップS202では、この二値画像を構成する各画素値を反転させた反転二値画像を作成する。即ち、元の二値画像において白領域が黒領域となり、元の二値画像において黒領域が白領域となる。ここで、撮像画像中に校正用パターン301が含まれている場合、校正用パターン301を構成するドーナツ型のマーカの枠部で囲まれている内部は白で記されている。従って、反転二値画像上におけるドーナツ型のマーカの枠部で囲まれている内部の領域は黒領域として存在することになる。
そしてステップS203ではこの反転二値画像に対してラベリング処理を行い、白領域と黒領域とを区別する。ステップS203の処理により、ドーナツ型のマーカの枠部で囲まれている内部の領域には、その他の領域とは別のラベルが付けられることになる。
次にステップS204では先ず、二値画像において黒領域としてラベリングされた領域の重心位置を求める。そして更に、反転二値画像において黒領域としてラベリングされた領域の重心位置を求める。そして、二値画像において黒領域としてラベリングされた領域の重心位置に最も近い、反転二値画像において黒領域としてラベリングされた領域を探す。そして、それぞれの重心位置の差が十分に小さい閾値以下であれば、例えばそれぞれの重心位置の平均を「ドーナツ型のマーカの位置」として、RAM1402内で管理しているリストに登録する。
即ち、ステップS204では、撮像画像上における「ドーナツ型のマーカの位置」とおぼしき位置を求め、求めたそれぞれの位置のデータをリストに登録する処理を行う。なお、「ドーナツ型のマーカの位置」とおぼしき位置として求めたものをどのようにして管理するのかについては特に限定するものではない。
次に図8においてステップS205では、上記リストから、未だ選択していない「ドーナツ型のマーカの位置」のデータを「選択位置データ」として選択し、読み出す。係る処理は、例えば、リストの先頭から順次選択すれば良い。更にステップS205では、選択位置データが示す位置から最も遠い位置を示すデータを上記リストを検索することで取得し、読み出す。尚、以下の説明では、選択位置データが示す位置から最も遠い位置にあるドーナツ型のマーカを「マーカA」と呼称する。
次にステップS206では、マーカAの位置から最も遠い位置を示すデータを上記リストを検索することで取得し、読み出す。なお、以下の説明では、マーカAの位置から最も遠い位置にあるドーナツ型のマーカを「マーカB」と呼称する。
以上のステップS205,S206による処理により、図9に示す如く、ドーナツ型のマーカが構成するL字の長軸の一端(長軸と短軸との交点ではない方の一端)としてのマーカAと、短軸の一端としてのマーカBとを見つけることができる。なお、場合によっては、ドーナツ型のマーカが構成するL字の長軸の一端がマーカBとなり、短軸の一端がマーカAとなる場合もある。
次にステップS207では、マーカAの位置に最も近い位置を示すデータを上記リストから検索し取得する。また、マーカAに最も近い位置にあるドーナツ型のマーカを「マーカC(延長点)」と呼称する(図10)。そしてマーカAの位置からマーカCの位置に向かうベクトルDを求める。
次にステップS208では、マーカCの位置にベクトルDを加算した結果としての位置を求める。そして上記リストを検索し、この求めた位置との差が、十分に小さい閾値以下であるような位置を示すデータが上記リストに登録されているかをチェックする。
リスト内に条件を満たすデータが登録されている場合には処理をステップS209に進める。ステップS209では、マーカCの位置にベクトルDを加算した結果としての位置との差が、十分に小さい閾値以下であるような位置にあるマーカを新たに「マーカC」とし、この新たなマーカCの位置データを上記リストから読み出す。そして処理をステップS208に戻し、以降の処理を繰り返す。
ステップS208,S209の処理を繰り返すことにより、例えばマーカAがL字の長軸の端点である場合、この長軸を構成する各マーカを検索することができる。
一方、ステップS208におけるチェック処理の結果、リストに条件を満たすデータが登録されていないと判断した場合は処理をステップS210に進める。そしてステップS210では、マーカBについてもステップS207〜ステップS209と同様の処理を行う。即ち、マーカBがL字の短軸の端点である場合、この短軸を構成する各マーカを検索することになる。
図10は、ステップS207〜ステップS210における処理を説明する図である。同図に示すように、マーカAの位置にベクトルDを加算してマーカCを決定し、その後はマーカCにベクトルDを加算した位置に最も近い位置にあるマーカを再度マーカCとして決定する処理を繰り返すことで、L字の長軸の他端を決定することができる。同様に、マーカBの位置にベクトルDを加算してマーカCを決定し、その後はマーカCにベクトルDを加算した位置に最も近い位置にあるマーカを再度マーカCとして決定する処理を繰り返すことで、L字の短軸の他端を決定することができる。
次にステップS211では、ステップS207〜ステップS209の処理で最後にマーカCとして特定したマーカの位置と、ステップS210の処理で最後にマーカCとして特定したマーカの位置とが同じであるのかのチェックを行う。
係る処理は、例えばマーカAがL字の長軸の一端、マーカBが短軸の一端である場合、長軸の他端と短軸の他端とが同じであるかのチェック処理である。したがって、L字を構成する全てのマーカの抽出ができたのかをチェックするこおtができる。
次に、係るチェック処理の結果、同じではないと判断した場合には処理をステップS213に進めて認識失敗と判断し、処理をステップS103にリターンさせる。一方、係るチェック処理の結果、同じであると判断した場合には処理をステップS214に進めて認識成功と判断し、処理をステップS103にすすめる。
図11は、ステップS207〜ステップS209の処理で最後にマーカCとして特定したマーカの位置と、ステップS210の処理で最後にマーカCとして特定したマーカの位置とが、Eで示すマーカの位置である場合について示した図である。図11では、マーカAがL字の長軸の一端、マーカBが短軸の一端である。そして、長軸の他端と短軸の他端とがEで示すマーカで一致している。従って、図11の場合は、L字を構成する全てのマーカの抽出ができたと判断され、認識成功となる。
次に、上記ステップS104における撮像画像の回転処理について説明する。係る説明では例として、画像から検出したドーナツ型のマーカ群が図11に示したような配置構成となっているとする。
この場合、ステップS104では、撮像画像中のL字の長軸が、プレビュー画像表示領域4100のy軸に一致するように回転させる。先ず、マーカAのx座標値とマーカBのx座標値との大小比較を行う。同図の場合はマーカAのx座標値>マーカBのx座標値である。この場合、dx=|マーカAのx座標値−マーカEのx座標値|、dy=|マーカAのy座標値−マーカEのy座標値|を計算した後、θ=90°−arctan(dy/dx)を求める。そしてマーカEの位置を中心としてθだけ反時計回りに撮像画像を回転させる。図12は、画像から検出したドーナツ型のマーカ群が図11に示したような配置構成となっている場合における画像の回転角を求める処理を説明する図である。
なお、マーカAのx座標値≦マーカBのx座標値の場合、θ=270°−arctan(dy/dx)を求める。そしてマーカEの位置を中心としてθだけ反時計回りに撮像画像を回転させる。
なお本実施形態では、校正用パターン301として、ドーナツ型のマーカ群がL字を構成して配されているものを用いた。これは、校正用パターン301の列方向、及び行方向を特定すると共にそれぞれの方向の一端を特定する為の情報として、L字を構成する複数のドーナツ型のマーカが1つの好適な例であるからである。しかし、係る情報と同等の目的を達成できるのであれば、どのような情報を校正用パターン301に記しても良い。もちろん、校正用パターン301に記す情報は、この校正用パターン301を撮像した画像からその画像上の位置が検出可能なものに限る。
また、本実施形態では、撮像画像中のL字の長軸が、プレビュー画像表示領域4100のy軸に一致するように回転させているが、逆に、撮像画像中のL字の短軸が、プレビュー画像表示領域4100のx軸に一致するように回転させても良い。ここで、x軸とは、同じy座標値で構成されている軸であり、行方向とも呼称する。
即ち、プレビュー画像表示領域4100の行方向に、撮像画像から検出した校正用パターン301の行方向(図1の場合、L字の短軸)を一致させるべく撮像画像を回転させても良い。若しくは、プレビュー画像表示領域4100の列方向に、撮像画像から検出した校正用パターン301の列方向(図1の場合、L字の長軸)を一致させるべく撮像画像を回転させても良い。
以上の説明により、本実施形態によれば、撮像画像中の校正用パターンを常に一定の姿勢でプレビュー画像表示することができる。これにより、ビデオカメラを動かす手の動きとプレビュー画像表示による校正用パターンとの動きが一致し、カメラキャリブレーション作業を容易に行うことができる。
[第2の実施形態]
本実施形態では、ビデオカメラ302に傾斜角センサを設ける。そして、コンピュータシステム303にはこの傾斜角センサからの出力を入力するための新たなI/Fを設け、このI/Fに傾斜角センサを接続する。
そして、コンピュータシステム303は、ビデオカメラ302により撮像した画像の向きを、この傾斜角センサによる計測値に基づいて求め、撮像した画像を、この求めた計測値に応じて回転させる。即ち、本実施形態は、画像の回転に係る構成が異なるのみで、その他の構成については第1の実施形態と同じである。
図13は、傾斜角センサ1301が取り付けられたビデオカメラ302の外観図である。傾斜角センサ1301は、直交する2つの加速度センサにより重力加速度を捕らえると共に、地磁気センサにより方位を取得することでビデオカメラ302の姿勢を測定する。
従って本実施形態において、上記GUIのプログラムをCPU1401が実行することで行われる処理のフローチャートは、図5のステップS102〜S104における処理を以下の処理に置き換えたものとなる。即ち、傾斜角センサ1301による計測値に基づいてビデオカメラ302の姿勢を求め、求めた姿勢に基づいて撮像画像を回転させたものを、プレビュー画像表示領域4100に表示する。
傾斜角センサ1301からの出力は、オイラー角(yaw, pitch, roll)を示すデータである。このときのオイラー角は、ビデオカメラ302が視軸ベクトル(0,0,−1)の方向に向いた姿勢からの回転角を示すものとする。
ビデオカメラ302が鉛直方向に対して傾いている角度はrollとなるので、本実施形態では撮像画像を回転させる際、−rollだけ、撮像画像を回転させればよい。
なお、本実施形態では、ビデオカメラ302による撮像画像の向きを得るために、傾斜角センサ1301をビデオカメラ302に取り付けたが、ビデオカメラ302の姿勢を得るためのものであれば、如何なる装置を用いても良い。
例えば、親機から発した磁場を子機で検知し、子機の位置姿勢を測定するような位置姿勢センサを用いても良い。即ち、子機をビデオカメラ302に取り付け、子機の位置姿勢情報を元にビデオカメラ302の鉛直方向との角度を求めても良い。
[第3の実施形態]
「プレビュー画像表示領域4100に表示した撮像画像は元の撮像画像をどれだけ回転させたのか」を示す表示を更に行うようにしても良い。ここでは、回転方向は反時計回りとして固定した場合について説明するが、逆回りを可としても良い、
図15は、プレビュー画像表示領域4100に表示した撮像画像が、元の撮像画像をどれだけ回転させたのかを示す為のアイコンの幾つかの表示例を示す図である。図15(a)は、撮像画像を反時計回りに90°回転させた場合に表示するアイコンで、6字方向から回転角度だけのびた矢印を示すアイコンである。図15(b)は、撮像画像を反時計回りに180°回転させた場合に表示するアイコンで、6字方向から回転角度だけのびた矢印を示すアイコンである。図15(c)は、撮像画像を反時計回りに270°回転させた場合に表示するアイコンで、6字方向から回転角度だけのびた矢印を示すアイコンである。このように、回転角度に応じたアイコンを表示することで、ユーザは、現在プレビュー画像表示領域4100内に表示されている撮像画像がどれだけ回転しているのかが容易に確認することができる。更に、係るアイコンを用いることには、現在ビデオカメラ302がどのような角度で撮像を行っているのかについてもユーザに知らしめる効果がある。
なお、このようなアイコンの表示位置は特に限定するものではない。なお、元の撮像画像をどれだけ回転させたものをプレビュー画像表示領域4100に表示しているのかを示す表示については様々なものが考えられる。
また、上記各実施形態は適宜組み合わせても良い。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
校正用パターンの一例を示す図である。 ツールを用いて校正用パターンの画像を取得する為の様子を示す模式図である。 本発明の第1の実施形態に係るシステムの外観を示す概略図である。 ソフトウェアをCPU1401が実行することで表示部1405の表示画面上に表示されるGUIの表示例を示す図である。 GUIのプログラムをCPU1401が実行することで行われる処理のフローチャートである。 撮像画像を回転させてからプレビュー画像表示領域4100に表示する様子を示す図である。 ステップS102における処理の詳細を示すフローチャートである。 ステップS102における処理の詳細を示すフローチャートである。 マーカA、Bの検索を説明する図である。 ステップS207〜ステップS210における処理を説明する図である。 ステップS207〜ステップS209の処理で最後にマーカCとして特定したマーカの位置と、ステップS210の処理で最後にマーカCとして特定したマーカの位置とが、Eで示すマーカの位置である場合について示した図である。 画像から検出したドーナツ型のマーカ群が図11に示したような配置構成となっている場合における画像の回転角を求める処理を説明する図である。 傾斜角センサ1301が取り付けられたビデオカメラ302の外観図である。 コンピュータシステム303のハードウェア構成を示すブロック図である。 プレビュー画像表示領域4100に表示した撮像画像が、元の撮像画像をどれだけ回転させたのかを示す為のアイコンの幾つかの表示例を示す図である。

Claims (5)

  1. 現実空間に配置された校正用パターンを、複数の異なる位置姿勢から撮像装置により撮像することにより得られた複数の撮影画像データから該撮像装置のカメラパラメータを算出する情報処理方法であって、
    方向を特定するためのパターンを有する現実空間に配置された校正用パターンを、ユーザによって操作された撮像装置により撮像された撮影画像データを取得する取得工程と、
    前記撮影画像データにおける前記校正用パターンの方向を検出する検出工程と、
    前記検出された方向が予め定められた方向になるように、前記撮影画像データを回転する回転工程と、
    前記回転された撮影画像データを表示する表示工程と、
    ユーザ指示に応じて前記表示された撮影画像データを登録する登録工程と、
    前記登録された撮影画像データを用いて前記撮像装置のカメラパラメータを算出する算出工程と
    を有することを特徴とする情報処理方法。
  2. 前記校正用パターンは方向を特定するためのパターンを有し、
    前記検出工程では、前記撮影画像データから前記方向を特定するためのパターンを検出することを特徴とする請求項1に記載の情報処理方法。
  3. 前記撮像装置は、傾斜角センサもしくは姿勢センサを有し、
    前記検出工程では、前記傾斜角センサもしくは前記姿勢センサの出力値から前記校正用パターンの方向を検出することを特徴とする請求項1に記載の情報処理方法。
  4. コンピュータに請求項1乃至3のいずれか1項に記載の画像処理方法を実現させるためのプログラム。
  5. 現実空間に配置された校正用パターンを、複数の異なる位置姿勢から撮像装置により撮像することにより得られた複数の撮影画像データから該撮像装置のカメラパラメータを算出する情報処理装置であって、
    方向を特定するためのパターンを有する現実空間に配置された校正用パターンを、ユーザによって操作された撮像装置により撮像された撮影画像データを取得する取得手段と、
    前記撮影画像データにおける前記校正用パターンの方向を検出する検出手段と、
    前記検出された方向が予め定められた方向になるように、前記撮影画像データを回転する回転手段と、
    前記回転された撮影画像データを表示する表示手段と、
    ユーザ指示に応じて前記表示された撮影画像データを登録する登録手段と、
    前記登録された撮影画像データを用いて前記撮像装置のカメラパラメータを算出する算出手段と
    を有することを特徴とする情報処理装置。
JP2006320873A 2006-11-28 2006-11-28 情報処理方法、情報処理装置 Withdrawn JP2008135996A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006320873A JP2008135996A (ja) 2006-11-28 2006-11-28 情報処理方法、情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006320873A JP2008135996A (ja) 2006-11-28 2006-11-28 情報処理方法、情報処理装置

Publications (1)

Publication Number Publication Date
JP2008135996A true JP2008135996A (ja) 2008-06-12

Family

ID=39560523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006320873A Withdrawn JP2008135996A (ja) 2006-11-28 2006-11-28 情報処理方法、情報処理装置

Country Status (1)

Country Link
JP (1) JP2008135996A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018009886A (ja) * 2016-07-14 2018-01-18 国立大学法人 宮崎大学 顔向き検出システム、顔向き検出装置及び顔向き検出プログラム
CN115208994A (zh) * 2021-09-09 2022-10-18 虹光精密工业(苏州)有限公司 文件处理装置及其图像处理方法
US11528410B2 (en) 2019-12-05 2022-12-13 Denso Wave Incorporated Calibration operation support device for industrial camera

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018009886A (ja) * 2016-07-14 2018-01-18 国立大学法人 宮崎大学 顔向き検出システム、顔向き検出装置及び顔向き検出プログラム
US11528410B2 (en) 2019-12-05 2022-12-13 Denso Wave Incorporated Calibration operation support device for industrial camera
CN115208994A (zh) * 2021-09-09 2022-10-18 虹光精密工业(苏州)有限公司 文件处理装置及其图像处理方法
CN115208994B (zh) * 2021-09-09 2024-03-22 虹光精密工业(苏州)有限公司 文件处理装置及其图像处理方法

Similar Documents

Publication Publication Date Title
JP6011548B2 (ja) カメラ校正装置、カメラ校正方法およびカメラ校正用プログラム
JP5740884B2 (ja) 繰り返し撮影用arナビゲーション及び差異抽出のシステム、方法及びプログラム
JP4914039B2 (ja) 情報処理方法および装置
JP4508049B2 (ja) 360°画像撮影装置
WO2016199605A1 (ja) 画像処理装置および方法、並びにプログラム
JP4739004B2 (ja) 情報処理装置及び情報処理方法
EP1986154A1 (en) Model-based camera pose estimation
JP5132138B2 (ja) 位置姿勢計測方法、位置姿勢計測装置
JP2018111166A (ja) 視覚センサのキャリブレーション装置、方法及びプログラム
JP2008116373A (ja) 位置姿勢計測方法及び装置
JP5111447B2 (ja) カメラ校正装置、カメラ校正方法、カメラ校正プログラムおよびプログラムを記録した記録媒体
EP3421930A1 (en) Three-dimensional shape data and texture information generation system, photographing control program, and three-dimensional shape data and texture information generation method
JP2004318823A (ja) 情報表示システム、情報処理装置、ポインティング装置および情報表示システムにおけるポインタマーク表示方法
JP2008070267A (ja) 位置姿勢計測方法及び装置
JP4710734B2 (ja) ポインティング装置、ポインティング位置検出方法及びプログラム
JP2010279023A (ja) 情報処理装置およびその制御方法
JP2009282857A (ja) 携帯端末および領域特定処理実行方法
JP6479296B2 (ja) 位置姿勢推定装置および位置姿勢推定方法
JP2006234703A (ja) 画像処理装置及び三次元計測装置並びに画像処理装置用プログラム
JP2001148025A (ja) 位置検出装置及びその方法、平面姿勢検出装置及びその方法
JP2017151026A (ja) 三次元情報取得装置、三次元情報取得方法、及びプログラム
JP2008309595A (ja) オブジェクト認識装置及びそれに用いられるプログラム
WO2020024845A1 (zh) 定位方法和装置
JP2008135996A (ja) 情報処理方法、情報処理装置
US20210042576A1 (en) Image processing system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100202