JP2019086476A - 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具 - Google Patents
画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具 Download PDFInfo
- Publication number
- JP2019086476A JP2019086476A JP2017216800A JP2017216800A JP2019086476A JP 2019086476 A JP2019086476 A JP 2019086476A JP 2017216800 A JP2017216800 A JP 2017216800A JP 2017216800 A JP2017216800 A JP 2017216800A JP 2019086476 A JP2019086476 A JP 2019086476A
- Authority
- JP
- Japan
- Prior art keywords
- marker
- imaging device
- markers
- actual
- 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.)
- Pending
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
【課題】カメラキャリブレーションにおいて、複数の撮像装置の位置姿勢を高精度に推定する。【解決手段】本発明の画像処理装置は、第1の撮像画像および第2の撮像画像に含まれるそれぞれのマーカを検出する検出手段と、3次元空間における実マーカの位置を示す座標を3次元マーカ座標としたとき、前記検出されたそれぞれのマーカに対応するそれぞれの3次元マーカ座標が略同一となる場合、前記検出されたそれぞれのマーカと、第1の撮像装置および第2の撮像装置それぞれの内部パラメータとに基づいて、前記第1の撮像装置および前記第2の撮像装置それぞれの位置姿勢を推定する推定手段と、を有し、前記第1の撮像装置および前記第2の撮像装置で撮像されるそれぞれの実マーカのサイズは、前記検出されたそれぞれのマーカのサイズが略同一となるようなサイズであることを特徴とする。【選択図】図1
Description
本発明は、複数の視点で撮像する複数の撮像装置のキャリブレーション技術に関する。
複数の視点から被写体を撮像して得られた画像群から、任意の視点から視た画像(仮想視点画像)を生成する画像処理技術や、被写体の3次元形状を導出する画像処理技術が知られている。これらのような画像処理技術では、複数の視点で撮像する複数の撮像装置の位置姿勢情報(外部パラメータ)が正確であることが重要である。そのため、撮像装置のキャリブレーションを実施し、撮像装置の位置姿勢情報を求めることが一般的である。
特許文献1に記載の3次元計測システムによれば、角錐台形状の貫通穴をキャリブレーション用のマーカとして用い、対向する撮像装置でこの貫通穴を撮像することにより、撮像装置の位置姿勢を推定することができる。
特許文献1に開示されている技術を、例えば、競技場のような広い空間において、複数の視点に設置された複数の撮像装置のキャリブレーションを行う場合に適用する場合を考える。この場合、競技場に設置された対向する撮像装置が被写体を略同一のサイズで撮像可能な位置に、マーカが設けられたキャリブレーション用具を設置する必要がある。
しかしながら、キャリブレーション用具を設置する際に、競技場のフィールドを保全するために、少なくとも一部のフィールド内への立入が禁止される場合がある。このような場合、対向する撮像装置が被写体を略同一のサイズで撮像可能な位置にキャリブレーション用具を設置することができなくなる。
そうすると、キャリブレーション用具はフィールド外に設置せざるを得ず、一方の撮像装置からキャリブレーション用具上のマーカまでの距離と、他方の撮像装置からマーカまでの距離とが大きく異なってしまう。このような場合、例えば、特許文献1に記載の手法では、それぞれの撮像画像に含まれるマーカのサイズが大きく異なってしまうため、撮像装置の位置姿勢を高精度に推定することができなくなる。
本発明は上記課題に鑑みなされたものであり、複数の撮像装置の位置姿勢を高精度に推定することを目的とする。
本発明の情報処理装置は、複数の撮像装置それぞれの位置姿勢を推定する画像処理装置であって、前記複数の撮像装置のうち、第1の撮像装置で撮像された第1の撮像画像および第2の撮像装置で撮像された第2の撮像画像に含まれるそれぞれのマーカを検出する検出手段と、3次元空間における実マーカの位置を示す座標を3次元マーカ座標としたとき、前記検出されたそれぞれのマーカに対応するそれぞれの3次元マーカ座標が略同一となる場合、前記検出されたそれぞれのマーカと、前記第1の撮像装置および前記第2の撮像装置それぞれの内部パラメータとに基づいて、前記第1の撮像装置および前記第2の撮像装置それぞれの位置姿勢を推定する推定手段と、を有し、前記第1の撮像装置および前記第2の撮像装置で撮像されるそれぞれの実マーカのサイズは、前記検出されたそれぞれのマーカのサイズが略同一となるようなサイズであることを特徴とする。
本発明の画像処理技術によれば、複数の撮像装置の位置姿勢推定を高精度に行うことができる、という効果を奏する。
[実施形態1]
(撮像システムの構成)
図1(a)は、本実施形態における撮像システムの構成例を示す模式図である。
本実施形態の撮像システム100は、複数の撮像装置101a〜101jと、PC102と、表示装置103と、入力装置104a,104bとを有する。撮像装置101a〜101jは、略平面上に存在する被写体105a,105bを囲むように配置されており、複数の視点から被写体105a,105bを撮像する。被写体105aは、例えば、撮像装置101a〜101jの撮影対象となる競技場で競技を行う選手や審判などの人物などの特定のオブジェクトであり得る。被写体105bは、競技で用いられるボールなどの特定のオブジェクトであり得る。画像処理装置であるPC102には、表示装置103および入力装置104a,104bが接続されており、操作者は入力装置104a,104bを介して撮像条件などの設定を入力することができる。また、操作者は、複数の撮像装置101a〜101jが被写体105a,105bを撮像して得られた撮像画像の処理結果などを表示装置103で確認することができる。また、操作者は、撮像装置101a〜101jで撮像されたマーカボード106上のマーカを、PC102に認識させることによりカメラキャリブレーション(以下単に「キャリブレーション」とも記す)を行う。
(撮像システムの構成)
図1(a)は、本実施形態における撮像システムの構成例を示す模式図である。
本実施形態の撮像システム100は、複数の撮像装置101a〜101jと、PC102と、表示装置103と、入力装置104a,104bとを有する。撮像装置101a〜101jは、略平面上に存在する被写体105a,105bを囲むように配置されており、複数の視点から被写体105a,105bを撮像する。被写体105aは、例えば、撮像装置101a〜101jの撮影対象となる競技場で競技を行う選手や審判などの人物などの特定のオブジェクトであり得る。被写体105bは、競技で用いられるボールなどの特定のオブジェクトであり得る。画像処理装置であるPC102には、表示装置103および入力装置104a,104bが接続されており、操作者は入力装置104a,104bを介して撮像条件などの設定を入力することができる。また、操作者は、複数の撮像装置101a〜101jが被写体105a,105bを撮像して得られた撮像画像の処理結果などを表示装置103で確認することができる。また、操作者は、撮像装置101a〜101jで撮像されたマーカボード106上のマーカを、PC102に認識させることによりカメラキャリブレーション(以下単に「キャリブレーション」とも記す)を行う。
なお、図1(a)に示す撮像システム100の構成は一例に過ぎず、他の構成であってもよい。例えば、撮像システム100は、さらに他の装置を有していてもよい、図1(a)に示す装置の一部を有さなくてもよい。また、撮像システム100の撮像装置101の数は、図1(a)に示す数より多くても少なくてもよい。
図1(b)は、キャリブレーションで用いられるマーカボード106の詳細例を示す図である。キャリブレーション用具であるマーカボード106は板状に形成されており、マーカボード106の表面106aと、裏面106bとには、キャリブレーションターゲットであるマーカ107aと、マーカ107bとがそれぞれ描かれている。なお、以下の説明において、説明の便宜のため、マーカボードに設けられているマーカを「実マーカ」と、撮像画像に含まれるマーカを単に「マーカ」と記す場合があるが、両者の相違点は撮像画像に含まれる像であるか否かであり、本質的な違いはない。図1(b)に示される例では、表面106aに描かれているマーカ107aと、裏面106bに描かれているマーカ107bとは同じサイズである。なお、図1(b)の説明において、「表面」「裏面」は便宜的なものであり、マーカボード106のいずれの面を表面または裏面にするかは、操作者が任意で決定することができる。これは、図2以降の説明においても同様である。
再び図1(a)に戻り、撮像画像108aは、撮像装置101aがマーカボードの表面106aを撮像して得られた撮像画像であり、撮像画像108bは、撮像装置101bがマーカボードの裏面106bを撮像して得られた撮像画像である。撮像装置101aと撮像装置101bとは、マーカボード106を介在させて対向する位置に設けられている。さらに、撮像装置101aおよび101bからマーカボード106までの距離がそれぞれ異なる場合、撮像画像108aに含まれるマーカ107aと、撮像画像108bに含まれるマーカ107bとはサイズが大きく異なることになる。このように、マーカ検出条件によっては、撮像システム100が撮像画像からマーカを検出することができない場合が発生する。そうすると、撮像システム100は、撮像装置101a〜101jの位置姿勢を高精度に推定することができなくなる。
(画像処理装置のハードウェア構成)
図2は、本実施形態におけるPC102のハードウェア構成例を示す図である。
PC102は、CPU201と、RAM202と、ROM203と、記憶部204と、入出力インターフェース(以下インターフェースは「I/F」と記す)205と、画像信号I/F206と、システムバス207とを有する。外部メモリ208は入出力I/F205に接続されている。表示装置103は画像信号I/F206に接続されている。
図2は、本実施形態におけるPC102のハードウェア構成例を示す図である。
PC102は、CPU201と、RAM202と、ROM203と、記憶部204と、入出力インターフェース(以下インターフェースは「I/F」と記す)205と、画像信号I/F206と、システムバス207とを有する。外部メモリ208は入出力I/F205に接続されている。表示装置103は画像信号I/F206に接続されている。
CPU201は、PC102の各構成を統括的に制御する。RAM202は、CPU201の1次記憶領域およびワークエリアとして機能する。ROM203には、PC102における各種画像処理を実行するプログラムなどが記憶される。CPU201は、ROM203に格納されたプログラムをRAM202にロードして実行することにより、後述の種々の画像処理を実現する。記憶部204は、画像処理の対象となる画像データや、画像処理で用いられるパラメータなどを記憶する。なお、記憶部204には、HDD、光ディスクドライブ、フラッシュメモリなどを適用することができる。入出力I/F205は、例えばUSBやIEEE1394などのシリアルバスI/Fである。PC102は、この入出力I/F205を介して、外部メモリ208から画像処理の対象となる画像データなどを取得したり、画像処理を施した画像データを外部メモリ208に記憶することができる。なお、外部メモリ208には、ハードディスク、メモリカード、CFカード、SDカード、USBメモリなどを適用することができる。画像信号I/F206は、例えばDVIやHDMIなどの映像出力端子である。PC102は、この画像信号I/F206を介して、画像処理を施した画像データを表示装置103に出力することができる。なお、液晶ディスプレイなどの画像表示デバイスを表示装置103に適用することができる。PC102の構成要素は上記以外にも存在するが、本実施形態の主眼ではないため説明を省略する。
(画像処理装置の機能構成)
図3は、本実施形態におけるPC102の機能構成例を示すブロック図である。
図3に示される各ブロックの機能は、CPU201が画像処理プログラムのプログラムコードをRAM202に読み出して実行することにより実現される。あるいはまた、図3におけるブロックの一部または全部の機能をASICや電子回路などのハードウェアで実現してもよい。これらは図3以降のブロック図においても同様である。
入力部301は、入出力I/F205を介して複数視点画像データの入力を受け付けてRAM202に格納する。マーカ検出部303は、閾値記憶部302から読み出したマーカ検出閾値を用いて、複数視点画像に含まれるマーカを検出する。マーカIDマージ部305は、マーカボードの表面に描かれたマーカのマーカIDと、マーカボードの裏面に描かれたマーカのマーカIDとを設定値記憶部304から読み出し、これらマーカIDを同一のマーカIDにマージする。位置姿勢推定部307は、パラメータ記憶部306から撮像装置の内部パラメータを読み出す。そして、位置姿勢推定部307は、読み出した内部パラメータと、撮像画像IDと、マーカIDと、マーカ座標とに基づいて、撮像装置の位置姿勢を推定する。
図3は、本実施形態におけるPC102の機能構成例を示すブロック図である。
図3に示される各ブロックの機能は、CPU201が画像処理プログラムのプログラムコードをRAM202に読み出して実行することにより実現される。あるいはまた、図3におけるブロックの一部または全部の機能をASICや電子回路などのハードウェアで実現してもよい。これらは図3以降のブロック図においても同様である。
入力部301は、入出力I/F205を介して複数視点画像データの入力を受け付けてRAM202に格納する。マーカ検出部303は、閾値記憶部302から読み出したマーカ検出閾値を用いて、複数視点画像に含まれるマーカを検出する。マーカIDマージ部305は、マーカボードの表面に描かれたマーカのマーカIDと、マーカボードの裏面に描かれたマーカのマーカIDとを設定値記憶部304から読み出し、これらマーカIDを同一のマーカIDにマージする。位置姿勢推定部307は、パラメータ記憶部306から撮像装置の内部パラメータを読み出す。そして、位置姿勢推定部307は、読み出した内部パラメータと、撮像画像IDと、マーカIDと、マーカ座標とに基づいて、撮像装置の位置姿勢を推定する。
(撮像装置のキャリブレーション手順)
図4は、本実施形態における撮像装置のキャリブレーション手順例を示すフローチャートである。以下、図4のフローチャートを参照してキャリブレーション手順例について説明する。なお、図4に示されるフローチャートの処理は、CPU201がROM203に記憶されている画像処理プログラムのプログラムコードをRAM202に展開し実行することにより行われる。以下の各記号Sは、フローチャートにおけるステップであることを意味する。これらは図4以降のフローチャートについても同様である。
図4は、本実施形態における撮像装置のキャリブレーション手順例を示すフローチャートである。以下、図4のフローチャートを参照してキャリブレーション手順例について説明する。なお、図4に示されるフローチャートの処理は、CPU201がROM203に記憶されている画像処理プログラムのプログラムコードをRAM202に展開し実行することにより行われる。以下の各記号Sは、フローチャートにおけるステップであることを意味する。これらは図4以降のフローチャートについても同様である。
S401において、入力部301は、入出力I/F205を介して複数視点画像データの入力を受け付けてRAM202に格納する。ここで、複数視点画像データは、撮像装置101a〜101jによって同一の被写体が互いに異なる視点から撮像して得られた複数の撮像画像データである。本実施形態において、撮像視点は少なくとも2つであり、1つの撮像装置によって撮像される画像は少なくとも1枚であるものとする。もちろん、1つの撮像装置によって撮像される画像は複数枚であってもよい。なお、入力部301は、複数視点画像データを外部メモリ208から受け付けてもよいし、撮像装置101a〜101jから直接受け付けてもよい。また、複数視点画像データが表す複数視点画像に含まれるマーカは動かないものとする。これは、具体的には、撮像装置101a〜101jを高精度に同期させてマーカボードを動かすか、または、撮像装置101a〜101jを同期させることができない場合はマーカボードを固定させることを意味する。
S402において、マーカ検出部303は、閾値記憶部302から読み出したマーカ検出閾値に基づいて、複数視点画像に含まれるマーカと、該マーカに対応付けられたマーカIDとを検出する。マーカ検出部303は、複数視点画像のうち、マーカを検出する対象となる撮像画像のIDと、その撮像画像に含まれるマーカのIDと、撮像画像におけるマーカの位置を示す座標と、マーカ検出閾値と、マーカ信頼度とをRAM202に格納する。以下の説明において、説明の簡略化のため、撮像画像のIDは「撮像画像ID」と、マーカのIDは「マーカID」と、撮像画像(またはフレーム)におけるマーカの位置を示す座標は「マーカ座標」とそれぞれ記す。
ここで、本実施形態のマーカ検出閾値は、例えば、2値画像における画素値を区画する所定の閾値や、検出対象となるマーカのサイズを区画する所定の閾値や、撮像画像におけるマーカの探索範囲を区画する所定の閾値などである。また、本実施形態のマーカ信頼度は、マーカ検出閾値と、マーカの検出結果とから求めることができる重み係数であって、あるマーカ検出閾値でのマーカを検出する確からしさを示す重み係数に相当する。なお、マーカ検出閾値は、マーカの形状またはマーカ検出方法に応じてマーカを検出する確からしさが異なるため、マーカの形状またはマーカ検出方法ごとに異なる信頼度を設定してもよい。
また、マーカIDは、複数視点画像に含まれるマーカそれぞれに一意に付与される識別子であり、記憶部204などの記憶領域(以下単に「記憶領域」とも記す)に予め記憶されたマーカとパターンマッチングを行うことによって検出することができる。あるいはまた、マーカボード106が設置される位置が予め定められている場合、これらの位置とマーカIDとが対応付けられたデータベースを検索することにより、マーカIDが検出されてもよい。
ここで、本実施形態のマーカ検出閾値は、例えば、2値画像における画素値を区画する所定の閾値や、検出対象となるマーカのサイズを区画する所定の閾値や、撮像画像におけるマーカの探索範囲を区画する所定の閾値などである。また、本実施形態のマーカ信頼度は、マーカ検出閾値と、マーカの検出結果とから求めることができる重み係数であって、あるマーカ検出閾値でのマーカを検出する確からしさを示す重み係数に相当する。なお、マーカ検出閾値は、マーカの形状またはマーカ検出方法に応じてマーカを検出する確からしさが異なるため、マーカの形状またはマーカ検出方法ごとに異なる信頼度を設定してもよい。
また、マーカIDは、複数視点画像に含まれるマーカそれぞれに一意に付与される識別子であり、記憶部204などの記憶領域(以下単に「記憶領域」とも記す)に予め記憶されたマーカとパターンマッチングを行うことによって検出することができる。あるいはまた、マーカボード106が設置される位置が予め定められている場合、これらの位置とマーカIDとが対応付けられたデータベースを検索することにより、マーカIDが検出されてもよい。
図1(b)に示される通り、本実施形態では、実マーカは平面に描かれた2重丸である例が示されるが、これに限られず十字、チェッカーボードパターン、AR(Augmented Reality)などの文字、図形、記号であってもよいし、これらを任意に組み合わせた形状であってもよい。また、実マーカは、丸、十字、チェッカーボードパターン、AR(Augmented Reality)などの文字、図形、記号を少なくとも一部に有していてよい。本実施形態では、例えば、マーカの形状が円や2重丸の場合は中心位置が、十字の場合は交差点の中心位置が、チェッカーボードパターンの場合は白黒の四角形の交差点位置がそれぞれマーカ座標として検出される。つまり、マーカ座標は、各マーカに含まれる特徴点が、撮像画像において点として認識される位置であればよい。
S403において、マーカIDマージ部305は、マーカボードの表面に描かれたマーカに対応付けられたマーカIDと、マーカボードの裏面に描かれたマーカに対応付けられたマーカIDとを設定値記憶部304から読み出す。そして、マーカIDマージ部305は、これらのマーカIDを同一のマーカIDにマージする。マージされたマーカIDはRAM202に記憶される。
例えば、マーカボードの表面に描かれたマーカに対応付けられたマーカIDが「0001」、マーカボードの裏面に描かれたマーカに対応付けられたマーカIDが「0002」であった場合、これらのマーカIDがマージされて「0001」となる。なお、マーカIDがマージされた後でも、後述の推定処理(S404)において用いられるマーカ検出閾値とマーカ信頼度とは、それぞれ元のマーカID「0001」と「0002」と対応付けられている値がそのまま用いられるものとする。
S404において、位置姿勢推定部307は、パラメータ記憶部306から撮像装置の内部パラメータを読み出す。そして、位置姿勢推定部307は、読み出した内部パラメータと、撮像画像IDと、マーカIDと、マーカ座標とに基づいて、撮像装置の位置姿勢および3次元空間のワールド座標系における実マーカの3次元座標を推定する。撮像装置の位置姿勢の推定手順の詳細は後述する。なお、説明の簡略化のため、以後、3次元空間のワールド座標系における実マーカの3次元座標は、単に「3次元マーカ座標」と記す。
S405において、マーカ検出部303は、マーカの検出を終了するか否かを判定する。マーカの検出を終了する場合(S405:YES)、本フローチャートの処理を終了する。マーカの検出を終了しない場合(S405:NO)、S406に移行する。なお、終了判定は、S402〜S404が予め設定された回数実行されたか否かや、複数視点画像に含まれるマーカが全て検出されたかに基づいて行われる。
S406において、マーカ検出部303は、S404の推定結果に基づいてマーカ検出閾値を再設定する。S406でマーカ検出閾値が再設定されると再びS402に戻る。2回目以降にS402のマーカ検出処理が行われる場合、マーカ検出部303は、S406で再設定されたマーカ検出閾値に基づいてマーカを再度検出する。このようにマーカ検出閾値の設定を繰り返すことにより、撮像装置の位置姿勢を推定する精度を向上させることができる。
図5は、本実施形態における、撮像装置の位置姿勢の推定手順(S404)例を示すフローチャートである。以下、図5のフローチャートを参照して、本実施形態における、撮像装置の位置姿勢の推定手順例について説明する。
S501において、位置姿勢推定部307は、撮像装置101a〜101jが設置されているすべての視点のなかから、最初に位置姿勢を推定する対象となる2つの視点を選択する。より詳細には、S401で入力された複数視点画像データのなかから、選択した2つの視点で撮像された2つの撮像画像(以下「キーフレーム」と記す)が選択される。いずれをキーフレームとして選択するかは、予め設定されていてもよいし、最も多くのマーカを含むフレームが選択されてもよい。撮像装置の順序や位置関係が予め設定されている場合、このような設定情報を利用して、共通するマーカが含まれる撮像画像対がキーフレームとして選択されてもよい。
S502において、位置姿勢推定部307は、S501で選択したキーフレームに含まれるマーカの特徴量をマッチングし、この特徴量のマッチング結果からF行列を導出する。F行列は一般的に基礎行列とも称され、キーフレームにおけるそれぞれのマーカ座標を[x_0i,y_0i],[x_1i,y_1i](i=1...N、Nはマーカの数)とした場合、以下の式(1)を満たす行列が相当する。
F行列を求めるためにはDLT(Direct Linear Transformation)による解法などを用いればよい。特徴量マッチングでは特徴点同士が誤ってマッチングされてしまう場合が多いため、RANSACやM推定のようなロバスト推定法を用いて特徴量マッチングにおける誤りを低減してもよい。
なお、特徴量マッチングにおける誤りを低減する場合、マーカ信頼度に従ってロバスト推定を行うとよい。例えばRANSACを用いる場合、信頼度の高いマーカがより高い頻度でサンプリングされるように設定されると、信頼度の高いマーカと整合しない特徴点を外れ値として削除しやすくなる。
あるいはまた、特徴量マッチングにおける誤りを低減するために、例えばM推定を用いる場合、各特徴点に重みα1i,α2iをかけて
とし、信頼度の高いマーカのαiを大きく、信頼度の低いマーカのαiを小さくして計算することにより、信頼度の高いマーカと整合性が取れない特徴点を外れ値として削除しやすくなる。
S503において、位置姿勢推定部307は、S502で導出したF行列から撮像装置の位置姿勢パラメータを導出する。具体的には、F行列の左右に撮像装置の内部パラメータ行列A0,A1の逆行列をそれぞれかけた値を特異値分解して、直交行列U,V,対角行列Σに分解して、以下の式(3)に示される通りにRとtとを求めればよい。
Rzはキーフレームにそれぞれ対応する2パターンのいずれかであり、キーフレームにおけるマーカ座標に対応する3次元マーカ座標が、撮像装置の後ろ側(すなわち、被写体を撮像する方向と反対側)に位置しないようにRzを設定すればよい。なお、ここで導出されるRとtとは、キーフレームを撮像した1台目の撮像装置(以降「撮像装置0」と記す)の位置t_1を原点、姿勢R_1を単位行列とした場合において、2台目の撮像装置(以降「撮像装置1」と記す)のt_2とR_2とに相当する。
S504において、位置姿勢推定部307は、既に導出された位置姿勢パラメータと、キーフレーム同士の特徴量マッチングの結果とに基づき、3次元マーカ座標を導出する。具体的には、キーフレームにおけるマーカ座標(x,y)に対して、3次元マーカ座標(X,Y,Z)は式(4)のように記述することができる。
ここで、撮像装置k(k=0,1)のi番目(i=1...N、Nは特徴量マッチングの数)の特徴点[x_ki,y_ki]に対応する3次元マーカ座標の集合[X_ki,Y_ki,Z_ki](以下「p_ki」と記す)は未知の変数s_kiを用いて式(5)のように記述することができる。
このとき、p_ki(k=0)とp_ki(k=1)との間のユークリッド距離が最短となるようなs_kiを求め、さらに式(6)を用いてp_kiの平均を取る。そうすると、マーカ座標(特徴量が検出された位置)[x_ki,y_ki](k=1,0)に対応する3次元マーカ座標[X_i,Y_i,Z_i](以下「p_i」と記す)を求めることができる。
ここで、p_ki(k=0)とp_ki(k=1)との間のユークリッド距離が最短となるようなs_kiは、以下の式(7)を用いて求めることができる。
式(7)を用いて求めたs_1i,s_2iを式(4)に代入し、さらに式(5)から3次元マーカ座標p_iを求めることができる。なお、s_1i,s_2iの少なくともいずれか一方が負の値であると、この3次元マーカ座標p_iが撮像装置の後ろ側に位置することになってしまうので、このような値は外れ値として削除すればよい。このように、位置姿勢推定部307が行うS504,S510の処理は、本実施形態において3次元マーカ座標導出手段として機能する。
S505において、位置姿勢推定部307は、S503で導出した位置姿勢パラメータと、S504で導出した3次元マーカ座標とを、3次元マーカ座標からキーフレームにおけるマーカ座標への再射影誤差が最小になるように微調整する。この処理は一般的にバンドル調整とも呼ばれる。
具体的には、p_i(i=1,..,N)の再射影[x(R_k,t_k,p_i),y(R_k,t_k,p_i)]と、3次元マーカ座標[x_ki,y_ki]との誤差E(R_0,R_1,t_0,t_1,p_1,...,p_N)は、以下の式(8)によって記述することができる。
ここで、αkiは、撮像装置kのフレームにおけるi個目のマーカ(または特徴点)のマーカ座標の信頼度を示す。信頼度の高いマーカのαkiを大きく、信頼度の低いマーカのαkiを小さくすることにより、信頼度の高いマーカの誤差が極力小さくなるような解を求めることができる。
このとき、バンドル調整は、このEの値を最小化するようなR_0,R_1,t_0,t_1,p_1,...,p_Nを、非線形最適化手法を用いて求めることに相当する。非線形最適化手法にはLevenberg-Marquardt法などを用いればよい。なお、バンドル調整の際に、非線形最適化手法で収束したパラメータR_0,R_1,t_0,t_1はバンドル調整前とは異なっているため、もう一度外れ値の評価を行うことが望ましい。さらに、外れ値として判定した点の中にも更新したR_0,R_1,t_0,t_1では外れ値でない点があるかどうか評価して外れ値でない点は追加する処理を入れることが望ましい。このとき、点の削除や追加が行われた場合はもう一度バンドル調整を行い、パラメータR_0,R_1,t_0,t_1を更新するとよい。
S506において、位置姿勢推定部307は、全ての視点について処理が完了したか否かを判定する。全ての視点について処理が完了した場合(S506:YES)は再び図4のフローチャートに戻る。全ての視点について処理が完了していない場合(S506:NO)はS507に移行する。
S507において、位置姿勢推定部307は、位置姿勢推定が完了していない視点のなかから、位置姿勢を推定する対象となる視点を選択する。より詳細には、S401で入力された複数視点画像データのなかから、選択した視点で撮像された撮像画像(以下「追加フレーム」と記す)が選択される。なお、S507において2以上の追加フレームが選択されてもよい。いずれを追加フレームとして選択するかは、予め設定されていてもよいし、既に導出された3次元マーカ座標に対応するマーカ数が充分に多いフレームが追加フレームとして選択されてもよい。例えば、3次元マーカ座標に対応するマーカ数をN個とした場合、予め定められた割合(例えば60%なら0.6N個)以上のマーカ数を含むフレームが選択されるようにしてもよい。撮像装置の順序や位置関係が予め設定されている場合、このような設定情報を利用して、撮像装置同士の位置関係が近く、かつ、多くのマーカを含むフレームが選択されるようにしてもよい。
S508において、位置姿勢推定部307は、既に導出された3次元マーカ座標と、S507で選択された追加フレームにおけるマーカ座標との対応関係を示す射影行列を導出する。具体的には、既に導出された3次元マーカ座標[X_i,Y_i,Z_i]をR_k,t_kで射影して得られたフレーム上の2次元座標と、追加フレームにおけるマーカ座標[x_ki,y_ki]との誤差が最小になるようにR_k,t_kを求めればよい。ここで、kは、S507で追加されたフレームに対応するインデックスである。再射影誤差Eは以下の式(9)のように記述することができる。
式(7)とは異なり、p_iはパラメータではなく固定値として取り扱われる。この解は解析的に求めることができ、
となる行列Mに対して、
となるようなr_11〜r_33,t_1〜t_3が、式(8)を最小化するようなR_k=[r_ij],t_k=[t_i]であり、これが射影行列に相当する。式(10)を満たすr_11〜r_33,t_1〜t_3はM^TMの特異値分解を行い、最小の固有値に対応する固有ベクトルによってr_11〜r_33,t_1〜t_3を導出することができる。このような処理は一般的にPnP法と呼ばれる。3次元のワールド座標系から3次元座標の分布に従った座標系に変換してからPnP法を行うEPnPと呼ばれる手法を適応すると、高精度で高速に処理を行えることが知られている。なお、ここでも画像特徴点の誤対応の影響で大きな外れ値が含まれる場合があるため、PnP法でもRANSACやM推定のようなロバスト推定が行われることが望ましい。
このとき、S502と同様に、マーカ信頼度に応じたロバスト推定を行うとよい。例えば、RANSACを用いる場合、信頼度の高いマーカがより高い頻度でサンプリングされるように設定されると、信頼度の高いマーカと整合しない特徴点を外れ値として削除しやすくなる。
あるいはまた、特徴量マッチングにおける誤りを低減するために、例えばM推定を用いる場合、各特徴点に重みαkiをかけて
とし、信頼度の高いマーカのαkiを大きく、信頼度の低いマーカのαkiを小さくして計算することにより、信頼度の高いマーカと整合性が取れない特徴点を外れ値として削除しやすくなる。
S509において、位置姿勢推定部307は、S508で導出した射影行列から撮像装置の位置姿勢パラメータを導出する。S508で導出したR_k=[r_ij]は、式(10)に示される行列Mを導出する際に回転行列の制約がなかったため、一般的に回転行列の条件を満たしていない。そこで、R_k^TR_kが単位行列となるように制約付きの非線形最適化を行い、P=[r_ij][t_i]の特異値分解からR_kを求め、それを用いてt_kを導出すればよい。
S510において、位置姿勢推定部307は、S509で導出した位置姿勢パラメータと、追加フレームの特徴量マッチングの結果とに基づき、3次元マーカ座標を導出する。具体的には、S504で説明した式(6)を用いて、キーフレームにおけるマーカ座標[x_ki,y_ki](k=1,2)からi番目の3次元マーカ座標p_iを求めた処理と同様の処理を行えばよい。各フレームにおけるi番目のマーカ座標は[x_ki,y_ki](k=1,2,…,M)であり、撮像装置と3次元マーカ座標の推定位置とを結ぶ線は、式(5)のp_ki(k=1,2,…,M)となる。このとき、p_ki(k=0,1,…,M)間のユークリッド距離が最短となるようなs_ki(k=1,2,…,M)を求め、さらに式(13)を用いてp_ki(k=0,1,…,M)の平均を取る。そうすると、マーカ座標[x_ki,y_ki](k=1,0,…,M)に対応する3次元マーカ座標p_i=[X_i,Y_i,Z_i]を求めることができる。
式(4)に入力されるs_k1i〜s_kMi(k1,..,kMはS507で追加されたフレームに対応するインデックス)は式(5)をM視点に拡張して
とすれば求めることができる。次いで、式(14)を用いて求めたs_k1i〜s_kMiを式(4)に代入し、さらに式(5)から3次元マーカ座標p_iを求めることができる。なお、s_k1i〜s_kMiの少なくともいずれかが1つが負の値であると、この3次元マーカ座標p_iが撮像装置の後ろ側に位置することになってしまうので、このような値は外れ値として削除すればよい。あるいはまた、追加フレーム数が、その追加フレームを除外しても2以上存在する場合、その追加フレームに対応するs_k1i〜s_kMiを外れ値として削除し、残りの追加フレームに対応する値に基づいて3次元マーカ座標p_iを導出してもよい。
S511において、位置姿勢推定部307は、S509で導出した位置姿勢パラメータと、S510で導出した3次元マーカ座標とを、3次元マーカ座標から追加フレームにおけるマーカ座標への再射影誤差が最小になるように微調整する。S511の処理内容はS505と同じため説明を省略する。S511終了後は再びS506の判定処理に移行する。
(実施形態1のキャリブレーション手法による効果)
以下、本実施形態のキャリブレーション手法による効果について説明する。上述の通り、図1(b)には、表面と裏面とにそれぞれ同じサイズのマーカ107a,107bが描かれているマーカボード106が示されている。そして、図1(a)に示される通り、撮像装置101aと101bとが対向する位置に配置されており、撮像装置からマーカボードまでの距離がそれぞれ異なる場合、S401で入力される複数視点画像は撮像画像108a、108bの通りとなる。そうすると、撮像画像108aに含まれるマーカ107aのサイズと、撮像画像108bに含まれるマーカ107bのサイズとは大きく異なることになる。この結果、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ107aと、マーカボード裏面のマーカ107bとの双方を検出することが困難となる。
以下、本実施形態のキャリブレーション手法による効果について説明する。上述の通り、図1(b)には、表面と裏面とにそれぞれ同じサイズのマーカ107a,107bが描かれているマーカボード106が示されている。そして、図1(a)に示される通り、撮像装置101aと101bとが対向する位置に配置されており、撮像装置からマーカボードまでの距離がそれぞれ異なる場合、S401で入力される複数視点画像は撮像画像108a、108bの通りとなる。そうすると、撮像画像108aに含まれるマーカ107aのサイズと、撮像画像108bに含まれるマーカ107bのサイズとは大きく異なることになる。この結果、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ107aと、マーカボード裏面のマーカ107bとの双方を検出することが困難となる。
図6(a)は、本実施形態における撮像システムの構成例を示す模式図である。
図6(a)の撮像システムにおいて、マーカボード601以外の構成、例えば撮像装置101a〜101jの配置などは図1(a)と同じである。
図6(a)の撮像システムにおいて、マーカボード601以外の構成、例えば撮像装置101a〜101jの配置などは図1(a)と同じである。
図6(b)は、本実施形態のマーカボード601の例を示す図である。マーカボード601の表面601aと裏面601bとには、キャリブレーションターゲットであるマーカ602aとマーカ602bとがそれぞれ描かれている。図6(b)に示される例では、マーカボード601の表面に描かれているマーカ602aは、マーカボード106の裏面に描かれているマーカ602bのサイズよりも大きくなっている。
撮像装置101aと101bとが対向する位置に配置されており、撮像装置101aからマーカボードの表面601aまでの距離が遠く、撮像装置101bからマーカボードの裏面601bまでの距離が短い場合、撮像画像は図6(a)の通りとなる。すなわち、撮像装置101aがマーカボードの表面601aを撮像した撮像画像603aにおけるマーカのサイズと、撮像装置101bがマーカボードの裏面601bを撮像した撮像画像603bにおけるマーカのサイズとは、ほぼ同じサイズとなる。この結果、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ602aと、マーカボード裏面のマーカ602bとの双方を検出することが可能となる。
図6(b)では、表面601aと裏面601bとに異なるサイズのマーカがそれぞれ1つ描かれているマーカボード601の例が示されている。マーカボードはこの形態に限られず、例えば、マーカボード上に大きいサイズのマーカと小さいサイズのマーカとを混在させてもよい。図7は、マーカボードの別形態を示す図である。図7では、マーカボードの表面701aに大きいサイズのマーカ702aと小さいサイズのマーカ703aとが混在しており、同様に、マーカボードの裏面701bにも大きいサイズのマーカ703bと小さいサイズのマーカ702bとが混在している。そして、大きいサイズのマーカ702aに対応する反対面の位置には小さいサイズのマーカ702bが、小さいサイズのマーカ703aに対応する反対面の位置には大きいサイズのマーカ703bが配置されている。本実施形態の撮像システム100に図7に示されるマーカボードを適用した場合、マーカボードのいずれの面を撮像装置に向けても、少なくとも大きいサイズのマーカ702a、703bが認識される。そのため、裏表を意識せずにマーカボードを設置することができるというメリットがある。
以上説明した通り、本実施形態のキャリブレーション手法では、表面と裏面とでサイズが異なるマーカを有するマーカボードを用いて複数の撮像装置の位置姿勢が推定される。そのため、複数の撮像装置からマーカボードまでの距離がそれぞれ異なる場合であっても、複数の撮像装置に含まれるマーカのサイズを略同一にすることができるため、複数の撮像装置の位置姿勢を高精度に推定することができる。
[実施形態2]
実施形態1では、表面と裏面とに同数のマーカが描かれているマーカボードを用いてキャリブレーションを行う実施形態について説明した。しかしながら、小さいサイズのマーカが描かれている面には空白領域が多いため、マーカを追加する余地がある。そこで、本実施形態では、撮像装置からマーカボードまでの距離が近い面に多数の小さいマーカを、撮像装置からマーカボードまでの距離が遠い面に少数の大きいマーカが描かれているマーカボードを用いる実施形態について説明する。なお、実施形態1と共通する部分については説明を簡略化ないし省略し、以下では本実施形態に特有な点を中心に説明する。
実施形態1では、表面と裏面とに同数のマーカが描かれているマーカボードを用いてキャリブレーションを行う実施形態について説明した。しかしながら、小さいサイズのマーカが描かれている面には空白領域が多いため、マーカを追加する余地がある。そこで、本実施形態では、撮像装置からマーカボードまでの距離が近い面に多数の小さいマーカを、撮像装置からマーカボードまでの距離が遠い面に少数の大きいマーカが描かれているマーカボードを用いる実施形態について説明する。なお、実施形態1と共通する部分については説明を簡略化ないし省略し、以下では本実施形態に特有な点を中心に説明する。
図8は、本実施形態におけるPC102の機能構成例を示すブロック図である。
実施形態1と比較して、本実施形態におけるPC102の機能構成は、マーカIDマージ部305に代えて、複数マーカIDマージ部801を有する点が相違する。複数マーカIDマージ部801による処理内容については後述する。
実施形態1と比較して、本実施形態におけるPC102の機能構成は、マーカIDマージ部305に代えて、複数マーカIDマージ部801を有する点が相違する。複数マーカIDマージ部801による処理内容については後述する。
図9は、本実施形態における撮像装置のキャリブレーション手順例を示すフローチャートである。
S901〜S902は、図4におけるS401〜S402と同じである。
S903において、複数マーカIDマージ部801は、マーカボードの表面に描かれたマーカに対応付けられたマーカIDと、マーカボードの裏面に描かれたマーカに対応付けられたマーカIDとを設定値記憶部304から読み出す。そして、複数マーカIDマージ部801は、これらのマーカIDを同一のマーカIDにマージするとともに、実マーカサイズを設定する。マージされたマーカIDと、設定された実マーカサイズとはRAM202に記憶される。
ここで、図10(a)(b)を参照して、本実施形態の複数マーカIDのマージ処理の詳細について説明する。図10(b)では、本実施形態において、表面1001aと裏面1001bとに描かれているマーカボード1001の例が示されている。マーカボードの表面1001aにはマーカ1002aが、裏面1001bにはマーカ1002bがそれぞれ描かれている。マーカ1002aと1002bとはそれぞれの面において同じ位置に配置されており、マーカ1002aのマーカIDと1002bのマーカIDとは、同じマーカIDにマージされる。また、実マーカサイズは、例えば、図10(b)に示される通り、マーカ同士の間隔1003,1004が相当し、この設定された実マーカサイズがRAM202に記憶される。
S904において、位置姿勢推定部307は、内部パラメータと、撮像画像IDと、マーカIDと、マーカ座標とに基づいて、撮像装置の位置姿勢を推定する。
S904では、基本的にS404と同じ処理が行われる。ただし、本実施形態では、実マーカサイズが取得される。本実施形態では、マーカ1002bに対応する3次元マーカ座標と、マーカ1005に対応する3次元マーカ座標との間の距離が、縦の間隔1003および横の間隔1004それぞれに近くなるように推定処理が行われる。そのため、撮像装置の位置姿勢を推定する精度を向上させることができるという効果を見込める。
S905〜S906は、図4におけるS405〜S406と同じである。
(実施形態2のキャリブレーション手法による効果)
以下、本実施形態のキャリブレーション手法による効果について説明する。
上述の通り、図10(b)には、撮像装置101bからの距離が近い面に多数の小さいマーカが、撮像装置101aからの距離が遠い面に少数の大きいマーカが描かれている、マーカボード1001が示されている。そして、図10(a)に示される通り、撮像装置101aと101bとが対向する位置に配置されており、撮像装置からマーカボードまでの距離がそれぞれ異なる場合、S901で入力される複数視点画像は撮像画像1006a、1006bの通りとなる。すなわち、撮像画像1006aにおけるマーカ1002aのサイズと、撮像画像1006bにおけるマーカ1002bサイズとは、ほぼ同じサイズとなる。この結果、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ1002aと、マーカボード裏面のマーカ1002bとの双方を検出することが可能となる。
以下、本実施形態のキャリブレーション手法による効果について説明する。
上述の通り、図10(b)には、撮像装置101bからの距離が近い面に多数の小さいマーカが、撮像装置101aからの距離が遠い面に少数の大きいマーカが描かれている、マーカボード1001が示されている。そして、図10(a)に示される通り、撮像装置101aと101bとが対向する位置に配置されており、撮像装置からマーカボードまでの距離がそれぞれ異なる場合、S901で入力される複数視点画像は撮像画像1006a、1006bの通りとなる。すなわち、撮像画像1006aにおけるマーカ1002aのサイズと、撮像画像1006bにおけるマーカ1002bサイズとは、ほぼ同じサイズとなる。この結果、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ1002aと、マーカボード裏面のマーカ1002bとの双方を検出することが可能となる。
さらに、本実施形態の撮像システム100は、マーカボード1001の裏面1001bに描かれているマーカ1002b以外の複数のマーカ1005を認識することによるキャリブレーション手法も併用することができる。このような手法によれば、より効率的かつ高精度に、撮像装置の位置姿勢を推定することができる。
以上説明した通り、本実施形態のキャリブレーション手法では、撮像装置から近い面に多数の小さいマーカを有し、撮像装置から遠い面に少数の大きいマーカを有するマーカボードを用いて複数の撮像装置の位置姿勢が推定される。そのため、実施形態1の効果に加えて、マーカボードから近い位置に設けられている撮像装置は多数のマーカを認識することができるため、複数の撮像装置の位置姿勢を高精度に推定することができる。
[実施形態3]
実施形態1および2の撮像システム100では、撮像装置が対向する離れた位置に配置され、同じ種類のマーカを認識していた。しかしながら、図1(a)の撮像システムのように、撮像装置101a〜101jがほぼ均等間隔で配置されている場合、マーカを良好に認識できない場合が発生する。具体的には、マーカボード106から遠い撮像装置101aに隣接する撮像装置(撮像装置101c)と、マーカボード106から近い撮像装置101bに隣接する撮像装置(撮像装置101i)とでは、マーカボード106に対する角度が大きく異なる場合がある。以後、説明を簡略化するため、隣接する撮像装置と、当該隣接する撮像装置と対向するマーカボードの面とのなす角度を「対向角度」と記す。この場合、撮像装置101cで撮像装置101aが認識するマーカを認識することができても、撮像装置101iで撮像装置101bが認識するマーカを認識することができない、といった状況が発生するおそれがある。
実施形態1および2の撮像システム100では、撮像装置が対向する離れた位置に配置され、同じ種類のマーカを認識していた。しかしながら、図1(a)の撮像システムのように、撮像装置101a〜101jがほぼ均等間隔で配置されている場合、マーカを良好に認識できない場合が発生する。具体的には、マーカボード106から遠い撮像装置101aに隣接する撮像装置(撮像装置101c)と、マーカボード106から近い撮像装置101bに隣接する撮像装置(撮像装置101i)とでは、マーカボード106に対する角度が大きく異なる場合がある。以後、説明を簡略化するため、隣接する撮像装置と、当該隣接する撮像装置と対向するマーカボードの面とのなす角度を「対向角度」と記す。この場合、撮像装置101cで撮像装置101aが認識するマーカを認識することができても、撮像装置101iで撮像装置101bが認識するマーカを認識することができない、といった状況が発生するおそれがある。
そこで、本実施形態では、撮像装置との対向角度が小さいマーカボードの面に被認識可能角度が大きいマーカを、撮像装置との対向角度が大きいマーカボードの面に被認識可能角度が小さいマーカを有するマーカボードを用いる実施形態について説明する。なお、上述の実施形態と共通する部分については説明を簡略化ないし省略し、以下では本実施形態に特有な点を中心に説明する。
図11は、本実施形態におけるPC102の機能構成例を示すブロック図である。
実施形態1と比較して、本実施形態におけるPC102の機能構成は、マーカ検出部303に代えて、第1マーカ検出部1101と第2マーカ検出部1102とを有する点が相違する。第1マーカ検出部1101および第2マーカ検出部1102による処理内容については後述する。
図12は、本実施形態における撮像装置のキャリブレーション手順例を示すフローチャートである。
S1201は、図4におけるS401と同じである。
S1202において、第1マーカ検出部1101は、閾値記憶部302から読み出した第1マーカ検出閾値に基づいて、複数視点画像に含まれるマーカを検出する。第1マーカ検出部1101は、複数視点画像のうち、撮像画像IDと、マーカIDと、マーカ座標と、マーカ検出閾値と、マーカ信頼度とをRAM202に格納する。
S1203において、第2マーカ検出部1102は、閾値記憶部302から読み出した第2マーカ検出閾値に基づいて、複数視点画像に含まれるマーカを検出する。第2マーカ検出部1102は、複数視点画像のうち、撮像画像IDと、マーカIDと、マーカ座標と、マーカ検出閾値と、マーカ信頼度とをRAM202に格納する。第1マーカ検出部1101と、第2マーカ検出部1102とによって検出されるそれぞれのマーカの種類の具体例については後述する。
S1204において、マーカIDマージ部305は、マーカボードの表面のマーカと、マーカボードの裏面のマーカとにそれぞれ対応付けられたマーカIDを設定値記憶部304から読み出す。そして、マーカIDマージ部305は、対応するマーカIDを同一のマーカIDとしてマージし、マージされたマーカIDはRAM202に記憶される。
S1205〜S1206は、図4におけるS404〜S405と同じである。
S1207において、第1マーカ検出部1101と第2マーカ検出部1102とは、S1206で推定した撮像装置の位置姿勢に基づいてマーカ検出閾値を再設定する。S1207でマーカ検出閾値が再設定されると再びS1202に戻る。2回目以降にS1202のマーカ検出処理が行われる場合、第1マーカ検出部1101と第2マーカ検出部1102とは、S1207で再設定されたマーカ検出閾値に基づいてマーカを再度検出する。このようにマーカ検出閾値の設定を繰り返すことにより、撮像装置の位置姿勢を推定する精度を向上させることができる。なお、本実施形態ではマーカの種類ごとにマーカの誤検出率が異なる。そのため、第1マーカ検出部1101によって検出されるマーカを捕捉すべき撮像装置と、第2マーカ検出部1102によって検出されるマーカを捕捉すべき撮像装置とには、それぞれ異なるマーカ検出閾値が設定されることが望ましい。
(実施形態3のキャリブレーション手法による効果)
以下、本実施形態のキャリブレーション手法による効果について説明する。
図13(a)は、本実施形態における撮像システムの構成例を示す模式図である。
図13(a)の撮像システムにおいて、マーカボード1301以外の構成、例えば撮像装置101a〜101jの配置などは図1(a)と同じである。
以下、本実施形態のキャリブレーション手法による効果について説明する。
図13(a)は、本実施形態における撮像システムの構成例を示す模式図である。
図13(a)の撮像システムにおいて、マーカボード1301以外の構成、例えば撮像装置101a〜101jの配置などは図1(a)と同じである。
図13(b)は、本実施形態のマーカボード1301の例を示す図である。マーカボード1301の表面1301aには、キャリブレーションターゲットであるマーカ1302aが描かれている。一方、マーカボード1301の裏面1301bには、3次元形状を有する球体状のマーカ1302bが配置されている。図13(b)には、被認識可能角度が小さいマーカ例として平面に描かれた2重丸のマーカ1302aが、被認識可能角度が大きいマーカ例として球体状のマーカ1302bがそれぞれ示されている。しかしながら、被認識可能角度が異なるマーカの組み合わせは上記に限られず、例えば、被認識可能角度が小さいマーカとして平面に描かれたチェッカーボードを、被認識可能角度が大きいマーカとして平面に描かれた十字なども適用することができる。
撮像装置101aと101bとが対向する位置に配置されており、撮像装置101aからマーカボードの表面1301aまでの距離が遠く、撮像装置101bからマーカボードの裏面1301bまでの距離が短い場合、撮像画像は図13(a)の通りとなる。図13(a)には、撮像装置101aがマーカボードの表面1301aを撮像して得られた撮像画像1303aが、撮像装置101bがマーカボードの裏面1301bを撮像して得られた撮像画像1303bが示されている。すなわち、撮像画像1303aにおけるマーカ1302aのサイズと、撮像画像1303bにおけるマーカ1302bのサイズとは、ほぼ同じサイズとなる。この結果、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ1302aと、マーカボード裏面のマーカ1302bとの双方を検出することが可能となる。
また、図13(a)には、撮像装置101aに隣接する撮像装置101cが、マーカボードの表面1301aを撮像して得られた撮像画像1304aが示されている。同様に、撮像装置101bに隣接する撮像装置101iが、マーカボードの裏面1301bを撮像して得られた撮像画像1304bが示されている。さらに、球体状のマーカ1302bは被認識可能角度が大きいため、撮像装置101iがマーカボードの裏面1301bと浅い角度で対向している場合であっても、撮像装置101iはマーカを良好に撮像することができる。
以上説明した通り、本実施形態では、撮像装置との対向角度が小さいマーカボードの面には被認識可能角度が大きいマーカを、撮像装置との対向角度が大きいマーカボードの面には被認識可能角度が大きいマーカを有するマーカボードを用いる。そのため、撮像装置のキャリブレーションにおいて、1つのマーカを認識可能な撮像装置の台数を増やすことができるため、複数の撮像装置の位置姿勢の推定を高度に行うことができる。なお、マーカボードの表面及び裏面の双方など、マーカボードの複数の面に被認識可能角度が大きい実マーカ、例えば、3次元形状を有する実マーカを設けてもよい。
[実施形態4]
上述の実施形態では言及されなかったが、図1(a)に示される撮像装置101a〜101jにはそれぞれ被写界深度を有している。通常、撮像装置101a〜101jは被写体105に焦点を合わせているため、マーカと被写体とが大きく離れると、マーカが被写界深度から外れてボケが発生する場合がある。
上述の実施形態では言及されなかったが、図1(a)に示される撮像装置101a〜101jにはそれぞれ被写界深度を有している。通常、撮像装置101a〜101jは被写体105に焦点を合わせているため、マーカと被写体とが大きく離れると、マーカが被写界深度から外れてボケが発生する場合がある。
そこで、本実施形態のキャリブレーション手法では、撮像画像に含まれるマーカのボケ量が導出され、撮像装置の位置姿勢の推定結果と、ボケ量の導出結果とから、マーカ検出閾値が再設定される。このため、撮像装置の位置姿勢の推定に必要なマーカの検出を良好に行うことができる。
図14は、本実施形態におけるPC102の機能構成例を示すブロック図である。
本実施形態におけるPC102の機能構成は、実施形態1の機能構成に加えて、ボケ量導出部1401を有する。ボケ量導出部1401による処理内容は後述する。
図15は、本実施形態における撮像装置のキャリブレーション手順例を示すフローチャートである。
S1501〜S1505は、図4におけるS401〜S405と同じである。
S1501〜S1505は、図4におけるS401〜S405と同じである。
S1506において、ボケ量導出部1401は、各撮像装置101a〜101jの注視点位置を取得する。そして、ボケ量導出部1401は、取得した注視点位置と、S1504で推定した撮像装置の位置姿勢および3次元マーカ座標と、パラメータ記憶部306から読み出した撮像装置の内部パラメータとに基づいて、各マーカのボケ量を導出する。各撮像装置101a〜101jの注視点位置は、入力I/F205を介して外部メモリ208から読み出される。
そして、ボケ量導出部1401は、一般的なレンズの光学的なボケの式である、式(15)を用いてボケ量を導出することができる。fを焦点距離[mm]、FはF値、Lは注視点と撮像装置との距離の逆数[1/mm]、dが距離の逆数[1/mm]、widthが画像サイズ[pixel]、sensorwidth[mm]をセンササイズとすると、ガウシアンフィルタのボケ量σ[pixel]は、以下の式(15)の通りに求めることができる。
なお、Lには、S1504で推定された撮像装置の位置姿勢と注視点位置とのユークリッド距離[mm]の逆数を適用することができる。dには、S1504で推定された3次元マーカ座標および撮像装置の位置姿勢のユークリッド距離[mm]の逆数を提供することができる。
S1507において、マーカ検出部303は、S1504で推定した撮像装置の位置姿勢と、S1506で導出した各マーカのボケ量とに基づいてマーカ検出閾値を再設定する。S1507でマーカ検出閾値が再設定されると再びS1502に戻る。2回目以降にS1502のマーカ検出処理が行われる場合、マーカ検出部303は、S1507で再設定されたマーカ検出閾値に基づいてマーカを再度検出する。このようにマーカ検出閾値の設定を繰り返すことにより、撮像装置の位置姿勢を推定する精度を向上させることができる。例えば、ボケの発生によって、マーカの中心付近の黒濃度が1/2になる場合、マーカ検出閾値も1/2とすればよい。ただし、この場合は誤検出率も上昇してしまうため、このマーカ検出閾値に応じたマーカ信頼度が設定されることが望ましい。
(実施形態4のキャリブレーション手法による効果)
以下、本実施形態のキャリブレーション手法による効果について説明する。
図16(a)は、本実施形態における撮像システムの構成例を示す模式図である。
図16(a)の撮像システムにおいて、マーカボード1601以外の構成、例えば撮像装置101a〜101jの配置などは図1(a)と同じである。
以下、本実施形態のキャリブレーション手法による効果について説明する。
図16(a)は、本実施形態における撮像システムの構成例を示す模式図である。
図16(a)の撮像システムにおいて、マーカボード1601以外の構成、例えば撮像装置101a〜101jの配置などは図1(a)と同じである。
図16(b)は、本実施形態のマーカボード1601の例を示す図である。マーカボード1601の表面1601aには、キャリブレーションターゲットであるマーカ1602aが描かれており、マーカボード1601の裏面1601bには、キャリブレーションターゲットであるマーカ1602bが描かれている。実施形態1と同様に、マーカボード1601の表面に描かれているマーカ1602aは、マーカボード1601の裏面に描かれているマーカ1602bのサイズよりも大きくなっている。撮像装置101aと101bとが対向する位置に配置されており、撮像装置101aからマーカボードの表面1601aまでの距離が遠く、撮像装置101bからマーカボードの裏面1601bまでの距離が短い場合、撮像画像は図16(a)の通りとなる。
本実施形態のキャリブレーション手法によれば、撮像装置の被写界深度からマーカが外れることにより発生するボケの影響により、撮像画像に含まれるマーカがボケしまった場合であっても、マーカ検出閾値を調整することにより、マーカの検出が可能となる。
図16(a)は、撮像装置101a,101b,101cがそれぞれマーカ1602a,1602bを撮像して得られた撮像画像1603a,1603b,1603cの一例を示す図である。これら撮像画像のうち、撮像画像1603bは、撮像画像におけるマーカ1602bにボケが発生してしまった様子を示している。このような場合、同じマーカ検出閾値に基づいて、マーカボード表面のマーカ1602aと、マーカボード裏面のマーカ1602bとの双方を検出することが困難となる。
しかしながら、本実施形態のキャリブレーション手法によれば、検出されたマーカ1602aを用いて撮像装置の位置姿勢と3次元マーカ座標を推定し(S1504)、撮像画像1603bにおけるマーカ1602bのボケ量が導出される(S1506)。被写体(マーカ1602b)のボケ量が分かれば、例えば、2値化された撮像画像1603bの画素値を区画する閾値をボケ量に応じて可変させることにより、マーカ1602bを良好に検出することができる。あるいはまた、例えば、濃度値を基準としてマーカを検出する場合、濃度値を区画する閾値をボケ量に応じて可変させることにより、マーカ1602bを良好に検出することができる。
以上説明した通り、本実施形態のキャリブレーション手法によれば、撮像装置の注視点位置と、推定した撮像装置の位置姿勢および3次元マーカ座標と、撮像装置の内部パラメータとに基づいて、ボケ量を導出する。そして、この導出したボケ量に応じてマーカ検出閾値を調整することによって、撮像装置に含まれるマーカにボケが発生した場合であっても、マーカの検出を良好に行うことができる。
(その他の実施形態)
上述の実施形態において、実マーカの形状は、図示した例に限定されない。例えば、実マーカは、丸、十字、チェッカーボードパターン、文字、図形、記号または所定のオブジェクトであってもよいし、これらを任意に組み合わせた形状であってもよい。また、実マーカは、丸、十字、チェッカーボードパターン、文字、図形、記号または所定のオブジェクトを少なくとも一部に有していてもよい。また、上述の実施形態において、マーカボードは、実マーカを表示する液晶ディスプレイなどの表示装置であってもよい。また、上述の実施形態において、マーカボードは、板状であることを例示したが、立方体または三角錐などの複数の面を有する形状であってもよい。また、マーカボードは、球であってもよい。
上述の実施形態において、実マーカの形状は、図示した例に限定されない。例えば、実マーカは、丸、十字、チェッカーボードパターン、文字、図形、記号または所定のオブジェクトであってもよいし、これらを任意に組み合わせた形状であってもよい。また、実マーカは、丸、十字、チェッカーボードパターン、文字、図形、記号または所定のオブジェクトを少なくとも一部に有していてもよい。また、上述の実施形態において、マーカボードは、実マーカを表示する液晶ディスプレイなどの表示装置であってもよい。また、上述の実施形態において、マーカボードは、板状であることを例示したが、立方体または三角錐などの複数の面を有する形状であってもよい。また、マーカボードは、球であってもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (20)
- 複数の撮像装置それぞれの位置姿勢を推定する画像処理装置であって、
前記複数の撮像装置のうち、第1の撮像装置で撮像された第1の撮像画像および第2の撮像装置で撮像された第2の撮像画像に含まれるそれぞれのマーカを検出する検出手段と、
3次元空間における実マーカの位置を示す座標を3次元マーカ座標としたとき、前記検出されたそれぞれのマーカに対応するそれぞれの3次元マーカ座標が略同一となる場合、前記検出されたそれぞれのマーカと、前記第1の撮像装置および前記第2の撮像装置それぞれの内部パラメータとに基づいて、前記第1の撮像装置および前記第2の撮像装置それぞれの位置姿勢を推定する推定手段と、を有し、
前記第1の撮像装置および前記第2の撮像装置で撮像されるそれぞれの実マーカのサイズは、前記検出されたそれぞれのマーカのサイズが略同一となるようなサイズである
ことを特徴とする画像処理装置。 - 前記第1の撮像装置から前記第1の撮像装置で撮像される前記実マーカまでの距離が、前記第2の撮像装置から前記第2の撮像装置で撮像される前記実マーカまでの距離よりも長い場合、前記第1の撮像装置で撮像される前記実マーカのサイズは、前記第2の撮像装置で撮像される前記実マーカのサイズよりも大きいことを特徴とする請求項1に記載の画像処理装置。
- 前記検出されたそれぞれのマーカに対応付けられたそれぞれのマーカIDが異なっていても、前記検出されたそれぞれのマーカに対応するそれぞれの前記3次元マーカ座標が略同一となる場合、前記それぞれのマーカIDを同じマーカIDとしてマージするマージ手段をさらに有する
ことを特徴とする請求項1または2に記載の画像処理装置。 - 撮像画像におけるマーカの位置を示す座標をマーカ座標としたとき、前記検出されたそれぞれのマーカに対応するそれぞれのマーカ座標と、前記検出されたそれぞれのマーカの特徴量マッチングの結果と、前記それぞれの内部パラメータと、に基づいて前記それぞれの3次元マーカ座標を導出する3次元マーカ座標導出手段をさらに有する
ことを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。 - 前記推定手段は、前記検出されたそれぞれのマーカに対応するマーカ信頼度に従って、前記導出されたそれぞれの3次元マーカ座標から前記それぞれのマーカ座標への再射影誤差が最小となるように、前記推定された位置姿勢と、前記導出された3次元マーカ座標とを調整することを特徴とする請求項4に記載の画像処理装置。
- 前記検出手段は、所定の閾値を用いて、前記第1の撮像画像および前記第2の撮像画像に含まれるそれぞれのマーカを検出するとともに、前記推定された位置姿勢と、前記導出されたそれぞれの3次元マーカ座標とに基づいて前記所定の閾値を更新することを特徴とする請求項4または5に記載の画像処理装置。
- 前記第1の撮像装置および前記第2の撮像装置それぞれの注視点位置と、前記推定された位置姿勢と、前記導出されたそれぞれの3次元マーカ座標と、前記それぞれの内部パラメータと、に基づいて前記それぞれのマーカのそれぞれのボケ量を導出するボケ量導出手段をさらに有し、
前記検出手段は、前記推定された位置姿勢と、前記導出されたそれぞれの3次元マーカ座標と、前記導出されたそれぞれのボケ量と、に基づいて前記所定の閾値を更新する
ことを特徴とする請求項6に記載の画像処理装置。 - 前記第1の撮像装置と前記第2の撮像装置とは、前記実マーカを介在させて対向する位置に設けられていることを特徴とする請求項1から7のいずれか1項に記載の画像処理装置。
- 前記実マーカは板状のキャリブレーション用具に設けられており、前記キャリブレーション用具は、前記第1の撮像装置で撮像される前記実マーカが設けられる第1の面と、前記第2の撮像装置で撮像される前記実マーカが設けられる第2の面とを有することを特徴とする請求項8に記載の画像処理装置。
- 前記第1の面および前記第2の面には、サイズが異なる複数の前記実マーカがそれぞれ設けられることを特徴とする請求項9に記載の画像処理装置。
- 前記第1の撮像装置から前記第1の撮像装置で撮像される前記実マーカまでの距離が、前記第2の撮像装置から前記第2の撮像装置で撮像される前記実マーカまでの距離よりも長い場合、前記第2の面に設けられる前記実マーカの数は、前記第1の面に設けられる前記実マーカの数よりも多いことを特徴とする請求項9または10に記載の画像処理装置。
- 前記第1の撮像装置および前記第2の撮像装置の少なくとも1つに隣接する第3の撮像装置と、前記第3の撮像装置と対向する前記キャリブレーション用具の面とのなす角度を対向角度としたとき、
前記対向角度が所定の角度よりも大きい場合、前記キャリブレーション用具の面には被認識可能角度が小さい実マーカが設けられ、前記対向角度が所定の角度よりも小さい場合、前記キャリブレーション用具の面には被認識可能角度が大きい実マーカが設けられる
ことを特徴とする請求項9から11のいずれか1項に記載の画像処理装置。 - 複数の撮像装置それぞれの位置姿勢を推定する画像処理方法であって、
前記複数の撮像装置のうち、第1の撮像装置で撮像された第1の撮像画像および第2の撮像装置で撮像された第2の撮像画像に含まれるそれぞれのマーカを検出する検出ステップと、
3次元空間における実マーカの位置を示す座標を3次元マーカ座標としたとき、前記検出されたそれぞれのマーカに対応するそれぞれの3次元マーカ座標が略同一となる場合、前記検出されたそれぞれのマーカと、前記第1の撮像装置および前記第2の撮像装置それぞれの内部パラメータとに基づいて、前記第1の撮像装置および前記第2の撮像装置それぞれの位置姿勢を推定する推定ステップと、を有し、
前記第1の撮像装置および前記第2の撮像装置で撮像されるそれぞれの実マーカのサイズは、前記検出されたそれぞれのマーカのサイズが略同一となるようなサイズである
ことを特徴とする画像処理方法。 - コンピュータを、請求項1から請求項12のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
- キャリブレーション用具であって、
第1の撮像装置に撮像される第1の面と、
第2の撮像装置に撮像される第2の面と、を含み、
前記第1の面に設けられる実マーカのサイズと、前記第2の面に設けられる実マーカのサイズとが異なる
ことを特徴とするキャリブレーション用具。 - 前記第1の撮像装置が前記第1の面を撮像した画像を第1の撮像画像とし、
前記第2の撮像装置が前記第2の面を撮像した画像を第2の撮像画像としたとき、
前記第1の面および前記第2の面に設けられるそれぞれの実マーカのサイズは、前記第1の撮像画像および前記第2の撮像画像に含まれるそれぞれのマーカのサイズが略同一となるようなサイズである
ことを特徴とする請求項15に記載のキャリブレーション用具。 - 前記第1の面または前記第2の面には、複数の実マーカが設けられる
ことを特徴とする請求項15または16に記載のキャリブレーション用具。 - 前記第1の面には、前記第2の面に設けられる実マーカより大きなサイズの実マーカが設けられ、前記第2の面に設けられる実マーカの数より少ない数の実マーカが設けられる
ことを特徴とする請求項15から17のいずれか1項に記載のキャリブレーション用具。 - 前記第1の面または前記第2の面に設けられる実マーカは、3次元形状を有する
ことを特徴とする請求項15から18のいずれか1項に記載のキャリブレーション用具。 - 前記第1の面または前記第2の面に設けられる実マーカは、丸、十字、チェッカーボードパターン、文字、図形、記号または所定のオブジェクトを少なくとも一部に有する
ことを特徴とする請求項15から18のいずれか1項に記載のキャリブレーション用具。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017216800A JP2019086476A (ja) | 2017-11-09 | 2017-11-09 | 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017216800A JP2019086476A (ja) | 2017-11-09 | 2017-11-09 | 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019086476A true JP2019086476A (ja) | 2019-06-06 |
Family
ID=66764138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017216800A Pending JP2019086476A (ja) | 2017-11-09 | 2017-11-09 | 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019086476A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021064925A1 (ja) | 2019-10-02 | 2021-04-08 | 富士通株式会社 | 生成方法、生成プログラムおよび情報処理装置 |
EP3923240A2 (en) | 2020-06-10 | 2021-12-15 | Fujitsu Limited | Calculation method, calculation program, and information processing apparatus |
-
2017
- 2017-11-09 JP JP2017216800A patent/JP2019086476A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021064925A1 (ja) | 2019-10-02 | 2021-04-08 | 富士通株式会社 | 生成方法、生成プログラムおよび情報処理装置 |
EP3923240A2 (en) | 2020-06-10 | 2021-12-15 | Fujitsu Limited | Calculation method, calculation program, and information processing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110568447B (zh) | 视觉定位的方法、装置及计算机可读介质 | |
WO2017022033A1 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
JP2019190974A (ja) | キャリブレーション装置、キャリブレーション方法、及びプログラム | |
JP6566768B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
JP5672112B2 (ja) | ステレオ画像較正方法、ステレオ画像較正装置及びステレオ画像較正用コンピュータプログラム | |
CN108513121B (zh) | 用于场景的景深图评估的方法和设备 | |
JP2009529824A (ja) | 3次元映像獲得用cmosステレオカメラ | |
JP5067477B2 (ja) | 撮像パラメータ取得装置、撮像パラメータ取得方法、及び、プログラム | |
KR20180105875A (ko) | 단일 영상을 이용한 카메라 캘리브레이션 방법 및 이를 위한 장치 | |
JP6894707B2 (ja) | 情報処理装置およびその制御方法、プログラム | |
JP4701848B2 (ja) | 画像マッチング装置、画像マッチング方法および画像マッチング用プログラム | |
CN113240678B (zh) | 平面信息检测方法及*** | |
JP2018113021A (ja) | 情報処理装置およびその制御方法、プログラム | |
JP2019086476A (ja) | 画像処理装置、画像処理方法、プログラムおよびキャリブレーション用具 | |
JP2018195070A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2018009927A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP6659095B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
Kochi et al. | 3D modeling of architecture by edge-matching and integrating the point clouds of laser scanner and those of digital camera | |
KR101705330B1 (ko) | 스테레오 카메라 이미지에서 물체의 기울어진 각도를 찾기 위한 특징점 선택 방법 | |
JP2006113832A (ja) | ステレオ画像処理装置およびプログラム | |
KR101273634B1 (ko) | 모바일 기기를 이용하는 증강현실 환경에서 복수 객체 추적방법 및 이를 이용한 시스템 | |
CN112233164B (zh) | 一种视差图错误点识别与校正方法 | |
CN112262411B (zh) | 图像关联方法、***和装置 | |
JP6655869B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
Kuhl et al. | Monocular 3D scene reconstruction at absolute scales by combination of geometric and real-aperture methods |