説明

ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラム

【課題】厳密な仮想平行等位を実現することが可能な、ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムを提供する。
【解決手段】撮影対象を撮影した第一画像、及び第一画像と異なる方向から撮影対象を撮影した第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行な水平軸上に配置されるように回転させ、さらに、その回転H1,H1’により移動したそれぞれのエピ極点が、それぞれの画像の中心を通り、且つそれぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換H2,H2’を行った状態で、第二画像に対し、予め演算した基礎行列F、回転H1,H1’及び第一の射影変換H2,H2’に基づいて、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換H3を演算して実施する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ステレオカメラが撮影した画像から、撮影対象の三次元構造を復元する技術、特に、ステレオマッチング処理を単純化するために、二つのカメラから得たステレオ画像対の平行化処理を行う、ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムに関する。
【背景技術】
【0002】
従来から、同一の撮影対象(シーン)を二つのカメラ(ステレオカメラ)で同時に撮影して、互いの視点が僅かに異なる画像対を撮影し、この撮影した画像対から、撮影した撮影対象の三次元構造を復元する技術が提案されている。
しかしながら、撮影した撮影対象の三次元構造を復元するためには、二つのカメラのうち一方のカメラから得た画像上の点が、他方のカメラから得た画像上のどの点に対応するかを検出する必要がある。
【0003】
上記の検出に用いる方法としては、一般的に、一方の画像の注目領域をテンプレートとしたテンプレートマッチングを行うことにより、他方の画像を走査して、最もマッチングした点を求める方法がある。ここで、テンプレートマッチングのために他方の画像を走査する領域は、エピポーラ線の線上のみでよい。なお、エピポーラ線に関する説明は、後述する。
【0004】
以下、テンプレートマッチングのために他方の画像を走査する領域が、エピポーラ線の線上のみでよい理由を、図6を参照して説明する。
図6は、一般的なステレオカメラの配置と、エピポーラ線及びエピ極との関係を示す図である。なお、エピ極に関する説明は、後述する。
以下の説明では、前提として、図6中に示すように、第一カメラ2と第二カメラ4が、同時に、撮影対象である対象P1(構造模型等)を撮影している状態を設定する。
【0005】
図6中に示すように、対象P1は、第一カメラ2では、第一カメラ2の撮像面である第一画像18上の点cp1に投影され、第二カメラ4では、第二カメラ4の撮像面である第二画像20上の点cp1’に投影される。
このとき、第一カメラ2のカメラ中心Oと、第二カメラ4のカメラ中心O’と、対象P1の三点とを通る平面が、エピポーラ面を形成し、この形成したエピポーラ面と第一画像18及び第二画像20が交わる直線が、上記のエピポーラ線を形成する。
ここで、エピポーラ面は、対象P1が第一カメラ2で第一画像18上の点cp1に投影されている状態で決定される。このため、第二カメラ4では、対象P1がエピポーラ線上のどこかに投影されることになる。なお、図6中には、第二カメラ4により対象P1が第二画像20上に投影されている点を、点cp1’で示している。
【0006】
また、第一カメラ2のカメラ中心Oと第二カメラ4のカメラ中心O’とを結ぶ直線OO’と、第一画像18及び第二画像20の撮像面が交わる点が、上記のエピ極を形成する。同様に、第一カメラ2と第二カメラ4が、同時に、対象P1と異なる撮影対象である対象P2を撮影している状態では、平面OO’P2が、対象P2に対応するエピポーラ面を形成する。これに加え、対象P2に対応するエピポーラ面と第一画像18及び第二画像20と交わる直線が、対象P2に対応するエピポーラ線を形成する。なお、図6中には、第一カメラ2により対象P2が第一画像18上に投影されている点を、点cp2で示し、第二カメラ4により対象P2が第二画像20上に投影されている点を、点cp2’で示している。
なお、上述した全てのエピポーラ面は、対象の位置に因らず、直線OO’を含んでいる。このため、全てのエピポーラ線は、必ずエピ極点で交わることとなり、これを数式で表すと、以下の式(33)となる。なお、式(33)は、エピポーラ線の方程式である。
【0007】
【数1】

【0008】
式(33)において、Fは、基礎行列を形成する3×3の行列である。
式(33)の(x y 1)の値は、例えば、第一画像18上のある点を指定した場合に確定する。このとき、式(33)は、x’とy’に関する一次方程式、すなわち、直線の方程式となる。これが、第一画像18上の点(x y 1)に対応する、第二画像20のエピポーラ線の方程式となる。
同様に、式(33)の(x’y’1)Tの値は、第二画像20上のある点を指定した場合に確定する。このとき、式(33)は、xとyに関する一次方程式、すなわち直線の方程式となる。これが、第二画像20の点(x’y’1)Tに対応する、第一画像18のエピポーラ線の方程式となる。
ところで、最も三次元構造を復元しやすいカメラ配置は、二つのカメラの光軸の向き(撮影方向)が全く同じであり、さらに、撮像面の水平軸方向に平行移動しているだけの関係を形成する配置である。以下、このようなカメラ配置を、平行等位と記載する。
【0009】
平行等位のカメラ配置では、例えば、図7中に示すように、第一画像18のエピポーラ線と第二画像20のエピポーラ線が互いに平行となる、且つ第一画像18と第二画像20は、対応するエピポーラ線の高さが同一となる。なお、図7は、平行等位のカメラ配置とエピポーラ線とを示す図である。また、図7中には、図6中と同様、第一カメラ2により対象P1が第一画像18上に投影されている点を、点cp1示し、第二カメラ4により対象P1が第二画像20上に投影されている点を、点cp1’で示している。また、第一カメラ2により対象P2が第一画像18上に投影されている点を、点cp2で示し、第二カメラ4により対象P2が第二画像20上に投影されている点を、点cp2’で示している。
【0010】
また、カメラ配置が平行等位である場合、基礎行列は、後述する式(10)、または、式(27)で表されるような、特別な形をしている。
平行等位のカメラ配置では、図7中に示すように、第一画像18と第二画像20のエピポーラ線が平行となり、且つ高さが揃うため、テンプレートマッチングの走査を、容易に行うことが可能となる。さらに、第一画像18と第二画像20との水平座標の違い、すなわち、視差の簡単な関数を用いて、対象の三次元座標を復元することが可能となる。
【0011】
しかしながら、現実には、二つのカメラを、完全に平行な状態で配置することは不可能であるため、上述した平行等位のカメラ配置は、実現することができないという問題がある。
この問題に対し、例えば、二つの対処法が提案されている。
第一の対処法は、二つのカメラを、ほぼ平行等位に設置し、さらに、平行等位からの僅かなズレを、公知のアフィン変換を用いて補正する方法である。
【0012】
しかしながら、第一の対処法では、カメラの配置に制約を受けるため、撮影対象の構成や、カメラを配置する立地条件等によっては、適用が困難である。
一方、第二の対処法は、例えば、非特許文献1に記述されているような方法である。これは、二つのカメラがほぼ平行等位であるという仮定を用いずに、二つのカメラの向きが完全には同じではない二つの画像(第一画像及び第二画像)に対して、射影変換を行うことにより、仮想的に平行等位(仮想平行等位)を形成する方法である。
【0013】
なお、第二の対処法では、エピポーラ線の高さを揃えるために、第一画像の特徴点と、この特徴点に対応する第二画像の特徴点とを用いて、最小二乗法等による演算を行う。ここで、第一画像の特徴点と第二画像の特徴点との対応は既知であり、その座標を、第一画像及び第二画像の画面上から検出する。
第二の対処法は、第一の対処法と異なり、カメラの配置に制約を受けない利点を有している。
【先行技術文献】
【非特許文献】
【0014】
【非特許文献1】菅谷保之、金沢靖、金谷健一著、「エピ極線幾何学による2画像間の密な点対応の生成」、情報処理学会研究報告、2005年3月発行、P.145〜152
【発明の概要】
【発明が解決しようとする課題】
【0015】
非特許文献1に記述されているような対処法では、エピポーラ線の高さを揃えるために、対応が既知である特徴点を用いている。
しかしながら、対応が既知である特徴点は、その座標を、第一画像及び第二画像の画面上から検出しているため、誤差を含む可能性がある。このため、二つのカメラの向きが完全には同じではない画像に対して射影変換を行っても、厳密な仮想平行等位にはならないという問題が発生するおそれがある。
本発明は、上記のような問題点に着目してなされたもので、厳密な仮想平行等位を実現することが可能な、ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムを提供することを課題とする。
【課題を解決するための手段】
【0016】
上記課題を解決するために、本発明のうち、請求項1に記載した発明は、撮影対象の第一画像を撮影する第一カメラと、前記第一画像と異なる方向から前記撮影対象の第二画像を撮影する第二カメラと、前記第一画像及び前記第二画像からなるステレオ画像対に基づいて前記撮影対象の三次元画像を生成する三次元画像生成手段と、を備えるステレオ画像処理装置であって、
前記三次元画像生成手段は、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算手段と、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算手段と、
前記第一画像または前記第二画像に対して、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算手段と、を備え、
第二射影変換演算手段は、予め演算した基礎行列、前記回転演算手段が演算した回転及び前記第一射影変換演算手段が演算した第一の射影変換に基づいて、前記第二の射影変換を演算することを特徴とするものである。
【0017】
本発明によると、第二射影変換演算手段が、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算手段が演算した回転と、第一射影変換演算手段が演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、厳密な仮想平行等位を実現することが可能となる。
【0018】
なお、上記のような、第二射影変換演算手段による第二の射影変換の演算は、例えば、撮影対象に対して、所望の第一画像及び第二画像を撮影可能な位置に、最初に第一カメラ及び第二カメラを配置した状態で行う。
また、上記のような、第二射影変換演算手段による第二の射影変換の演算は、例えば、最初に第一カメラ及び第二カメラを配置した状態から、経時的な変化等により、撮影対象に対する第一カメラ及び第二カメラの位置が変化して、所望の第一画像及び第二画像が撮影不可能となった場合に行ってもよい。この場合、撮影対象に対する第一カメラ及び第二カメラの位置を、所望の第一画像及び第二画像を撮影可能な位置に修正した状態で、第二射影変換演算手段による第二の射影変換の演算を行う。
また、上記のような、第二射影変換演算手段による第二の射影変換の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【0019】
次に、請求項2に記載した発明は、撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理方法であって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、を備えることを特徴とするものである。
【0020】
本発明によると、第二射影変換演算ステップにおいて、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算ステップで演算した回転と、第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、厳密な仮想平行等位を実現することが可能となる。
【0021】
なお、上記のような、第二射影変換演算ステップにおける第二の射影変換の演算は、例えば、撮影対象に対して、所望の第一画像及び第二画像を撮影可能な位置に、最初に第一カメラ及び第二カメラを配置した状態で行う。
また、上記のような、第二射影変換演算ステップにおける第二の射影変換の演算は、例えば、最初に第一カメラ及び第二カメラを配置した状態から、経時的な変化等により、撮影対象に対する第一カメラ及び第二カメラの位置が変化して、所望の第一画像及び第二画像が撮影不可能となった場合に行ってもよい。この場合、撮影対象に対する第一カメラ及び第二カメラの位置を、所望の第一画像及び第二画像を撮影可能な位置に修正した状態で、第二射影変換演算ステップにおける第二の射影変換の演算を行う。
また、上記のような、第二射影変換演算ステップにおける第二の射影変換の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【0022】
次に、請求項3に記載した発明は、撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理プログラムであって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、をコンピュータに実行させることを特徴とするものである。
【0023】
本発明によると、第二射影変換演算ステップをコンピュータに実行させることにより、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、コンピュータに実行させる回転演算ステップで演算した回転と、コンピュータに実行させる第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
【0024】
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、厳密な仮想平行等位を実現することが可能となる。
なお、上記のような、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算は、例えば、撮影対象に対して、所望の第一画像及び第二画像を撮影可能な位置に、最初に第一カメラ及び第二カメラを配置した状態で行う。
【0025】
また、上記のような、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算は、例えば、最初に第一カメラ及び第二カメラを配置した状態から、経時的な変化等により、撮影対象に対する第一カメラ及び第二カメラの位置が変化して、所望の第一画像及び第二画像が撮影不可能となった場合に行ってもよい。この場合、撮影対象に対する第一カメラ及び第二カメラの位置を、所望の第一画像及び第二画像を撮影可能な位置に修正した状態で、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算を行う。
また、上記のような、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【発明の効果】
【0026】
本発明によれば、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、第一画像及び第二画像に対し、エピポーラ線の高さを揃えることが可能となる。このため、厳密な仮想平行等位を実現することが可能となる。
【図面の簡単な説明】
【0027】
【図1】本発明のステレオ画像処理装置の構成を示す図である。
【図2】三次元画像生成手段の構成を示すブロック図である。
【図3】画像平行化の手順を表したフローチャートである。
【図4】画像平行化の手順に伴って入力画像が変形する様子を示した図である。
【図5】画像の高さを揃える射影変換を決定するためのフローチャートである。
【図6】一般のカメラ配置とエピポーラ線、エピ極の関係を示した図である。
【図7】平行等位のカメラ配置とエピポーラ線を示した図である。
【発明を実施するための形態】
【0028】
以下、本発明の実施形態について、図面を参照しつつ説明する。
(第一実施形態)
まず、本発明の第一実施形態(以下、「本実施形態」と記載する)について、図面を参照しつつ説明する。
(構成)
まず、図1から図5を参照して、本実施形態の構成を説明する。なお、上述した図6及び図7中に記載したものと同様の構成については、同一の符号を付して説明する。
図1は、本実施形態のステレオ画像処理装置1の構成を示す図である。
図1中に示すように、このステレオ画像処理装置1は、第一カメラ2と、第二カメラ4と、三次元画像生成手段6と、三次元画像後処理手段8を備えている。
【0029】
第一カメラ2は、例えば、監視装置等が備えるカメラであり、撮影対象Pの第一画像を撮影し、この撮影した第一画像を含む情報信号を、三次元画像生成手段6へ出力する。なお、本実施形態では、三次元画像の生成対象とする撮影対象Pを、定位置に置いた構造模型等の立体物とする。
第二カメラ4は、第一カメラ2と同様、例えば、監視装置等が備えるカメラであり、第一画像と異なる方向から、撮影対象Pの第二画像を撮影し、この撮影した第二画像を含む情報信号を、三次元画像生成手段6へ出力する。なお、図1中では、第一カメラ2が撮影対象Pを撮影する第一撮影方向を、矢印A1で示し、第二カメラ4が撮影対象Pを撮影する第二撮影方向を、矢印A2で示している。
【0030】
三次元画像生成手段6は、図示しないCPU(central processing unit)を備えるコンピュータで形成されており、第一画像及び第二画像からなるステレオ画像対に基づいて、撮影対象Pの三次元画像を生成する。そして、三次元画像生成手段6は、生成した三次元画像を含む情報信号を、三次元画像後処理手段8へ出力する。なお、三次元画像生成手段6の詳細な構成については、後述する。
三次元画像後処理手段8は、例えば、三次元画像生成手段6が生成した撮影対象Pの三次元画像を空間に投影可能なプロジェクタで形成されている。なお、三次元画像後処理手段8の構成は、これに限定するものではなく、例えば、三次元画像生成手段6が生成した撮影対象Pの三次元画像をデータとして蓄積可能なデータベースであってもよい。
【0031】
図2は、三次元画像生成手段6の構成を示すブロック図である。
図2中に示すように、三次元画像生成手段6は、エピ極点演算手段10と、回転演算手段12と、第一射影変換演算手段14と、第二射影変換演算手段16を備えている。なお、これらの機能構成は、三次元画像生成手段6のCPU(コンピュータ)に、図示しないROM(Read Only Memory)やハードディスク等の記憶装置に記憶したステレオ画像処理プログラムを実行させることにより、三次元画像生成手段6で実現する。なお、上記の記憶装置は、例えば、三次元画像生成手段6が備える。
【0032】
エピ極点演算手段10は、既知の基礎行列に基づいて、第一画像及び第二画像のエピ極点を演算する。エピ極点演算手段10が行う演算についての詳細な説明は、後述する。
回転演算手段12は、第一画像及び第二画像に対して、エピ極点演算手段10が演算したそれぞれのエピ極点が、それぞれの画像の中心を通るとともに、それぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する。回転演算手段12が行う演算についての詳細な説明は、後述する。
第一射影変換演算手段14は、回転演算手段12が演算した回転により移動したそれぞれのエピ極点が、それぞれの画像の中心を通り、且つそれぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する。第一射影変換演算手段14が行う演算についての詳細な説明は、後述する。
【0033】
第二射影変換演算手段16は、第一画像または第二画像に対して、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、第一画像及び第二画像に対して、エピ極点演算手段10による第一画像及び第二画像のエピ極点の演算と、回転演算手段12が演算した回転と、第一射影変換演算手段14が演算した第一の射影変換を実施した状態で行う。
ここで、第二射影変換演算手段16は、予め演算した基礎行列と、回転演算手段12が演算した回転と、第一射影変換演算手段14が演算した第一の射影変換に基づいて、第二の射影変換を演算する。第二射影変換演算手段16が行う演算についての詳細な説明は、後述する。
【0034】
以下、図1及び図2を参照しつつ、図3から図5を用いて、三次元画像生成手段6が行う処理について説明する。
具体的には、第一カメラ2及び第二カメラ4(ステレオカメラ)が撮影した画像から、撮影対象Pの三次元構造を生成する処理のうち、ステレオマッチング処理を単純化するために、第一カメラ2及び第二カメラ4から得たステレオ画像対の平行化処理(画像平行化)について説明する。
図3は、画像平行化の手順を表すフローチャートである。また、図4は、画像平行化の手順に伴って入力画像が変形する様子を示した図である。なお、図4中では、入力画像が変形する様子を、図4(a)、(b)、(c)、(d)、(e)、(f)の順番で示している。
【0035】
図3中に示すように、画像平行化で行う処理を開始(START)すると、三次元画像生成手段6は、まず、第一カメラ2から第一画像を取得するとともに、第二カメラ4から第二画像を取得する。これに加え、撮影対象、第一カメラ2及び第二カメラ4に基づく事前の演算等により、予め演算した基礎行列Fを取得する(ステップS10)。
すなわち、ステップS10では、三次元画像生成手段6に対し、ステレオ画像対となる第一画像及び第二画像と、第一画像と第二画像との関係を表す基礎行列Fを入力(ステップS10に示す「基礎行列Fとステレオ画像対を入力」)する。
【0036】
このとき、図4(a)中に示すように、三次元画像生成手段6に入力する画像は、第一画像18と第二画像20の大きさを同一とし、さらに、座標系も同一とする。なお、図4(a)中では、入力した時点での第一画像18を第一画像18aと示し、入力した時点での第二画像20を第二画像20aと示している。なお、この時点では、符号「●」で示す座標の原点は、第一画像18a及び第二画像20aにおいて左上に位置している。
【0037】
ステップS10において、三次元画像生成手段6に対し、基礎行列Fとステレオ画像対を入力した後、画像平行化で行う処理は、ステップS12の処理へ移行する。
ステップS12では、三次元画像生成手段6に入力した第一画像18と第二画像20に対し、それぞれ、座標の原点が画像の中心にないときは、座標の原点が画像の中心になるように、平行移動H0を実施する。
【0038】
すなわち、ステップS12では、第一画像18と第二画像20に対し、座標の原点を画像の中心とする平行移動H0を演算(ステップS12に示す「第一、第二画像の原点を画像中心に移動する平行移動H0を計算」)する。そして、この平行移動H0により、図4(b)中に示すように、座標の原点を画像の中心へ移動させる。なお、図4(b)中では、平行移動H0を実施した状態の第一画像18を第一画像18bと示し、平行移動H0を実施した状態の第二画像20を第二画像20bと示している。
【0039】
ステップS12において、第一画像18と第二画像20に対し、座標の原点を画像の中心へ移動させた後、画像平行化で行う処理は、ステップS14の処理へ移行する。
なお、ステップS10の処理とステップS12の処理は、順序を逆にして行ってもよい。
ステップS14では、エピ極点演算手段10が、既知の基礎行列Fに基づいて、第一画像18及び第二画像20のエピ極点を演算(ステップS14に示す「基礎行列Fから第一、第二画像のエピ極点e,e’を計算」)する。この演算により、図4(c)中に示すように、第一画像18のエピ極点eと、第二画像20のエピ極点e’を演算する。なお、図4(c)中では、エピ極点eを演算した状態の第一画像18を第一画像18cと示し、エピ極点e’を演算した状態の第二画像20を第二画像20cと示している。
【0040】
ここで、第一画像18及び第二画像20のエピ極点は、例えば、上述した非特許文献1の2.3節(P.146〜147)に記載されている方法に従って演算する。具体的には、基礎行列Fに基づき、FTの固有値0の単位固有ベクトルを、第一画像18のエピ極点eとし、Fの固有値0の単位固有ベクトルを、第二画像20のエピ極点e’とする。
ステップS14において、エピ極点演算手段10が、第一画像18のエピ極点eと、第二画像20のエピ極点e’を演算した後、画像平行化で行う処理は、ステップS16の処理へ移行する。
【0041】
ステップS16では、第一画像18に対し、第一画像18のエピ極点eが、第一画像18の中心を通るとともに、第一画像18の横軸と平行な水平軸上に配置されるように、第一画像18の中心を軸に回転するような回転H1を実施する。これに加え、ステップS16では、第二画像20に対し、第二画像20のエピ極点e’が、第二画像20の中心を通るとともに、第二画像20の横軸と平行な水平軸上に配置されるように、第二画像20の中心を軸に回転するような回転H1’を実施する。
【0042】
すなわち、ステップS16では、回転演算手段12が、第一画像18及び第二画像20に対して、それぞれ、回転H1,H1’(ステップS16に示す「第一、第二画像の中心周りに画像を回転することにより、エピ極点を画像の中心を通り、水平軸に平行な直線上へ移動するような回転H1,H1’を計算」)を演算する。
この演算した回転H1,H1’を実施することにより、図4(d)中に示すように、第一画像18に対する第一画像18のエピ極点eの位置、及び第二画像20に対する第二画像20のエピ極点e’の位置が変位する。なお、図4(d)中では、回転H1を実施した状態の第一画像18を第一画像18dと示し、回転H1’を実施した状態の第二画像20を第二画像20dと示している。
【0043】
ここで、回転H1は、例えば、上述した非特許文献1の2.4節(P.147)に記載されている方法に従って演算する。具体的には、ベクトルe=(e1,e2,e3Tから、第一画像18のエピ極点(xe,ye)が、e3≠0のときに定まるため、この第一画像18のエピ極点(xe,ye)が第一画像18のy軸上に載るように、第一画像18を原点の周りに回転する。なお、回転H1’に関しては、第一画像18を第二画像に置き換えれば同様の手順であるため、その説明は省略する。
【0044】
ステップS16において、回転H1,H1’を実施した後、画像平行化で行う処理は、ステップS18の処理へ移行する。
ステップS18では、第一画像18に対し、回転H1により移動した第一画像18のエピ極点eが、第一画像18の中心を通り、且つ第一画像18の水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換H2を実施する。これに加え、ステップS18では、第二画像20に対し、回転H1’により移動した第二画像20のエピ極点e’が、第二画像20の中心を通り、且つ第二画像20の水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換H2’を実施する。
【0045】
すなわち、ステップS18では、第一射影変換演算手段14が、第一画像18及び第二画像20に対して、それぞれ、第一の射影変換H2,H2’(ステップS18に示す「ステップS16で移動した第一、第二画像のエピ極点を、さらに、画像の中心を通り、水平軸に平行な直線上の無限遠点に写像するような第一の射影変換H2,H2’を計算」)を演算する。
【0046】
この演算した第一の射影変換H2,H2’を実施することにより、図4(e)中に示すように、第一画像18の水平軸と第二画像20の水平軸が平行となる。なお、図4(e)中では、第一の射影変換H2を実施した状態の第一画像18を第一画像18eと示し、第一の射影変換H2’を実施した状態の第二画像20を第二画像20eと示している。
ここで、第一の射影変換H2は、例えば、上述した非特許文献1の2.5節(P.147)に記載されている方法に従って演算する。これは、エピ極点(0,e)を、無限遠点(0,±∞)に写像する射影変換である。なお、第一の射影変換H2’に関しては、第一画像18を第二画像に置き換えれば同様の手順であるため、その説明は省略する。
【0047】
ステップS18において、第一の射影変換H2,H2’を実施した後、画像平行化で行う処理は、ステップS20の処理へ移行する。
ステップS20では、第一画像18または第二画像20に対し、エピポーラ線の高さを第一画像18と第二画像20で揃えるために、第二の射影変換H3を演算し、この演算した第二の射影変換H3を実施する。なお、本実施形態では、第二画像20に対して、第二の射影変換H3を実施する場合について説明する。
すなわち、ステップS20では、第二射影変換演算手段16が、第一画像18または第二画像20に対して、第二の射影変換H3(ステップS20に示す「ステップS18で写像した第二画像(または第一画像)のエピポーラ線の高さを第一(または第二)画像に揃える第二の射影変換H3を計算」)を演算する。
【0048】
なお、本実施形態では、第二射影変換演算手段16による第二の射影変換H3の演算を、撮影対象Pに対して、所望の第一画像18及び第二画像20を撮影可能な位置に、最初に第一カメラ2及び第二カメラ4を配置した状態で行う場合について説明する。
第二射影変換演算手段16が演算した第二の射影変換H3を実施することにより、図4(f)中に示すように、第一画像18のエピポーラ線の高さと、第二画像20のエピポーラ線の高さが揃う。なお、図4(f)中では、第一の射影変換H2を実施した状態を維持した第一画像18を第一画像18fと示し、第二の射影変換H3を実施した状態の第二画像20を第二画像20fと示している。
【0049】
ここで、図5を参照して、第二射影変換演算手段16が第二の射影変換H3を演算する処理について説明する。
図5は、第二の射影変換H3を演算する処理、すなわち、画像の高さを揃える射影変換を決定するためのフローチャートである。
図5中に示すように、第二の射影変換H3を演算する処理を開始(START)すると、第二射影変換演算手段16は、まず、予め演算した基礎行列F、ステップS12で演算した平行移動H0、ステップS16で演算した回転H1,H1’、ステップS18で演算した第一の射影変換H2,H2’を取得する(ステップS30)。
【0050】
すなわち、ステップS30では、第二射影変換演算手段16に対し、基礎行列F、平行移動H0、回転H1,H1’、第一の射影変換H2,H2’を入力(ステップS30に示す「基礎行列FとステップS12,S16,S18で計算した射影変換行列H0、H1,H1’、H2,H2’を入力」)する。
ステップS30において、第二射影変換演算手段16に対し、基礎行列F、平行移動H0、回転H1,H1’、第一の射影変換H2,H2’を入力した後、第二射影変換演算手段16が行う処理は、ステップS32の処理へ移行する。
【0051】
ステップS32では、第二射影変換演算手段16に対し、未確定のパラメータa,b,cを含む、第二の射影変換行列H3を入力する。なお、第二の射影変換行列H3の形は、座標軸の取り方に依存する。
すなわち、ステップS32では、第二射影変換演算手段16に対し、射影変換行列H3を入力(ステップS32に示す「未確定のパラメータa,b,cを含む射影変換行列H3を入力 H3の形は、座標軸の取り方に依存」)する。
【0052】
ここで、第二の射影変換行列H3が含む未確定のパラメータa,b,cは、上述した非特許文献1の2.6節(P.147〜148)に記載されている式に従った値とする。前記式に関する説明は省略する。
ステップS32において、第二射影変換演算手段16に対し、第二の射影変換行列H3を入力した後、第二射影変換演算手段16が行う処理は、ステップS34の処理へ移行する。
ステップS34では、F’=H2-T1-T0-TFH0-11-12-1で示す、第二次基礎行列F’を計算する。
【0053】
この第二次基礎行列F’の形は、座標軸のとり方に依存するが、9つの成分のうち5つは、値が0である。第二次基礎行列F’の具体的な形については、後述する。
すなわち、ステップS34では、第二次基礎行列F’を計算(ステップS34に示す「F’=H2-T1-T0-TFH0-11-12-1を計算 この時点でF’の9つの成分のうち、5つは0である」)する。
ステップS34において、第二次基礎行列F’を計算した後、第二射影変換演算手段16が行う処理は、ステップS36の処理へ移行する。
【0054】
ステップS36では、F”=F’H3-1またはF”=H3-TF’で示す、第三次基礎行列F”を、未確定のパラメータa,b,cを含んだ形で求める。第三次基礎行列F”は、平行化完了後の第一画像18と第二画像20のエピポーラ線の関係を表す行列である。第三次基礎行列F”の具体的な形については、後述する。
これにより、仮想平行等位が実現できているという条件から、エピポーラ線が水平軸に平行であるとともに、第一画像18のエピポーラ線に対応する第二画像20のエピポーラ線の高さが同一という関係が、成立しているという条件を課すことができる。
【0055】
第三次基礎行列F”の具体的な形は、座標軸の取り方に依存するが、第二次基礎行列F’と比較して、9つの成分のうち非ゼロ成分は2つしかなく、その非ゼロの2つの成分は、絶対値が等しく符号が反対という関係にある。
したがって、未確定のパラメータa,b,cの3元連立一次方程式が導かれ、これらが一意に決定されることにより、第二の射影変換H3が確定する。
【0056】
すなわち、ステップS36では、第二の射影変換H3を演算(ステップS36に示す「F’H3の非ゼロ成分が2つだけであり、その2つの非ゼロ成分がお互いに絶対値が等しく符号が逆という関係から導かれる線形連立方程式を解くことにより、H3を決定」)する。
ステップS36において、第二の射影変換H3を演算した後、第二画像20に対して、第二の射影変換H3を実施すると、第二射影変換演算手段16が行う処理は終了(「END」)する。
【0057】
以下、図1から図4を参照した説明に復帰する。
ステップS20において、第二画像20に対して第二の射影変換H3を実施した後、画像平行化で行う処理は、ステップS22の処理へ移行する。
ステップS22では、第一画像18及び第二画像20に対して、ステップS20で演算した合成射影変換を実施することにより、第一画像18及び第二画像20を射影変形して、平行化を完了する。
具体的には、第一画像18に対して、合成射影変換H0-1210を実施するとともに、第二画像20に対して、合成射影変換H0-132’H1’H0を実施することにより、第一画像18及び第二画像20を射影変形する。
【0058】
すなわち、ステップS22では、第一画像18及び第二画像20に対して、ステップS20で演算した合成射影変換を適用(ステップS22に示す「第一画像に合成射影変換H0-1210 第二画像20に合成射影変換H0-132’H1’H0を適用」)する。
ステップS22において、第一画像18及び第二画像20に対して、合成射影変換を実施することにより、第一画像18及び第二画像20を射影変形すると、画像平行化で行う処理は終了(「END」)する。
なお、上記ステップS16は、上述した「回転演算ステップ」に対応する。
また、上記ステップS18は、上述した「第一射影変換演算ステップ」に対応する。
また、上記ステップS20及びS30〜S36は、上述した「第二射影変換演算ステップ」に対応する。
【0059】
(動作)
次に、図1から図5を参照して、上記の構成を備えたステレオ画像処理装置1の動作について説明する。
なお、上述した第三次基礎行列F”の、エピポーラ線が水平軸に平行であるとともに、第一画像18のエピポーラ線に対応する第二画像20のエピポーラ線の高さが同一であるという条件は、座標軸の取り方によって形が異なる。このため、以下の説明では、具体的な座標軸を指定した詳細な動作を記載する。
【0060】
(動作例1:座標軸として、座標原点を画面の中心、垂直方向上向きにx軸の正方向、水平方向右向きにy軸の正方向)
まず、上述した非特許文献1に従い、座標軸として、座標原点を画面の中心、垂直方向上向きにx軸の正方向、水平方向右向きにy軸の正方向をとった場合における、画像平行化の動作について説明する。
【0061】
画像平行化の動作を開始すると、三次元画像生成手段6に対し、ステレオ画像対となる第一画像及び第二画像と、第一画像と第二画像との関係を表す基礎行列Fを入力する(ステップS10参照)。その後、第一画像18と第二画像20に対し、座標の原点を、それぞれの画像の中心へ移動させる(ステップS12参照)。
なお、本実施形態では、既に画面中心が原点である、すなわち、第一画像18及び第二画像20は、座標の原点が、それぞれの画像の中心へ位置しているため、平行移動H0を実施しない。したがって、平行移動H0は恒等変換となる。
【0062】
次に、基礎行列Fに基づいて、第一画像18のエピ極点eと、第二画像20のエピ極点e’を演算する(ステップS14参照)。
ここで、基礎行列Fは、上記の座標軸で表現された基礎行列であるとする。また、第一画像18のエピ極点eは、FFTの最小固有値に対応する単位固有ベクトルである。また、第二画像20のエピ極点e’は、FTFの最小固有値に対応する単位固有ベクトルである。
第一画像18のエピ極点eと第二画像20のエピ極点e’を演算した後、第一画像18のエピ極点e=(e1,e2,e3Tに対して、以下の式(1)で表される回転H1を実施する(ステップS16参照)。なお、式(1)は、第一画像18のエピ極点をy軸(水平軸)上に移すための射影変換である。
【0063】
【数2】

【0064】
第一画像18のエピ極点eに対して、式(1)で表される回転H1を実施することにより、第一画像18のエピ極点eは、y軸上に移動する。
一方、第一画像18のエピ極点eと同様、第二画像20のエピ極点e’=(e1’,e2’,e3’)Tに対して、以下の式(2)で表される回転H1’を実施する(ステップS16参照)。なお、式(2)は、第二画像20のエピ極点をy軸(水平軸)上に移すための射影変換である。
【0065】
【数3】

【0066】
第一画像18のエピ極点eに対して回転H1を実施するとともに、第二画像20のエピ極点e’に対して回転H1’を実施した後、第一画像18に対して、以下の式(3)で表される第一の射影変換H2を実施する(ステップS18参照)。なお、式(3)は、第一画像18のエピ極点をy軸上の無限遠点に移すための射影変換である。
【0067】
【数4】

【0068】
ここで、第一画像18のエピ極点eが、当初から無限遠点にある場合(すなわちe3=0のとき)、この第一の射影変換H2は、恒等変換となる。
一方、第一画像18と同様、第二画像20に対して、以下の式(4)で表される第一の射影変換H2’を実施する(ステップS18参照)。なお、式(4)は、第二画像20のエピ極点をy軸上の無限遠点に移すための射影変換である。
【0069】
【数5】

【0070】
ここで、第二画像20のエピ極点e’が、当初から無限遠点にある場合(すなわちe3’=0のとき)、この第一の射影変換H2’は、恒等変換となる。
第一の射影変換H2,H2’を実施すると、以下の式(5)で表されるように、第一画像18のエピ極点e及び第二画像20のエピ極点e’の第3成分が0になり、第一画像18のエピ極点e及び第二画像20のエピ極点e’が無限遠点に写像される。なお、式(5)は、第一画像18及び第二画像20の無限遠点に移動した後のエピ極点の座標である。
【0071】
【数6】

【0072】
第一の射影変換H2,H2’を実施した後、第二画像20に対して、以下の式(6)で表される第二の射影変換H3を実施する(ステップS20参照)。なお、式(6)は、エピポーラ線の高さを揃えるための射影変換である。これは、非特許文献1の式(6)に相当する。
【0073】
【数7】

【0074】
但し、式(6)に表れるパラメータa,b,cは、以下のようにして決定する。
まず、第二射影変換演算手段16に対し、基礎行列F、平行移動H0、回転H1,H1’、第一の射影変換H2,H2’を入力する(ステップS30参照)。
次に、第二射影変換演算手段16に対し、未確定のパラメータa,b,cを含む、第二の射影変換行列H3を入力する(ステップS32参照)。なお、第二の射影変換行列H3の形は、式(6)の通りである。
第二射影変換演算手段16に対し、第二の射影変換行列H3を入力した後、以下の式(7)で表される変換を施した第二次基礎行列F’を計算する(ステップS34参照)。なお、式(7)は、第一画像18及び第二画像20のエピ極点をy軸上に移動し、さらにy軸上の無限遠点に移動した後の画像に対応する基礎行列である。
【0075】
【数8】

【0076】
式(7)に示すように、第二次基礎行列F’は、上述したように、9つの成分のうち5つの成分が0であり、具体的には、以下の式(8)のような形式をしている。なお、式(8)は、エピポーラ線がy軸に平行である場合の基礎行列の形式である。
【0077】
【数9】

【0078】
第二次基礎行列F’を計算した後、この計算した第二次基礎行列F’に、以下の式(9)で表される変換を実施した、第三次基礎行列F”を計算する(ステップS36参照)。なお、式(9)は、第二画像20にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列である。
【0079】
【数10】

【0080】
第三次基礎行列F”は、上述したように、非ゼロの成分は2つのみであり、その非ゼロの2つの成分は、絶対値が同じで符号が反対という関係にある。具体的には、第三次基礎行列F”の形式は、以下の式(10)で表される。なお、式(10)は、エピポーラ線がy軸に平行で、さらに、第一画像18及び第二画像20の対応するエピポーラ線の高さが揃っている場合の基礎行列の形式である。
【0081】
【数11】

【0082】
ここで、第二の射影変換H3の逆行列は、以下の式(11)で表される。なお、式(11)は、上記の式(6)の逆行列の成分表示である。
【0083】
【数12】

【0084】
したがって、第二次基礎行列F’と第二の射影変換H3の逆行列に基づく、F’H3-1を成分表示すると、以下の式(12)のようになる。なお、式(12)は、上記の式(9)の成分表示である。
【0085】
【数13】

【0086】
式(12)の形式は、式(10)の形式であるため、未確定のパラメータa,b,cに関する3元連立一次方程式は、以下の式(13)のようになる。なお、式(13)は、上記の式(6)に示す未確定のパラメータを決定する連立方程式である。
【0087】
【数14】

【0088】
この式(13)を解くことにより、未確定のパラメータa,b,cを一意に決定することが可能となるため、第二の射影変換H3が決定される。
第二の射影変換H3を決定した後、第一画像18に合成射影変換H21を実施するとともに、第二画像20に合成射影変換H32’H1’を実施することによって、平行化を完了する(ステップS22参照)。
なお、式(6)で表される第二の射影変換H3は、第一画像18に対して実施することも可能であり、この場合は、上記の式(12)が、以下の式(14)に変わる。なお、式(14)は、第一画像18にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列とその成分表示である。
【0089】
【数15】

【0090】
この場合、上記と同様に、上記の式(13)が、以下の式(15)に変わる。そして、式(15)で表される線形連立方程式を解くことにより、未確定のパラメータa,b,cを一意に決定することが可能となるため、第二の射影変換H3が決定される。なお、式(15)は、上記の式(6)に示す未確定のパラメータを決定する連立方程式である。
【0091】
【数16】

【0092】
なお、以上説明した、座標軸として、座標原点を画面の中心、垂直方向上向きにx軸の正方向、水平方向右向きにy軸の正方向をとった場合の画像平行化では、第一画像18及び第二画像20に合成射影変換を実施する際の処理が、上述したステップS22とは若干異なる。
この場合、具体的には、ステップS22と異なり、第一画像18に合成射影変換H321を実施し、第二画像20に合成射影変換H2’H1’を実施することによって、平行化を完了する。
【0093】
(動作例2:座標軸として、座標原点を画面の左上、水平方向右向きにx軸の正方向、垂直方向下向きにy軸の正方向)
ところで、上述した、座標軸として、座標原点を画面の中心、垂直方向上向きにx軸の正方向、水平方向右向きにy軸の正方向をとった場合では、座標軸のとり方が、実際の二次元グラフィックス処理でよく用いられる座標軸の取り方とは異なっている。このため、実用上では使いづらい。
【0094】
したがって、以下に、座標軸として、座標原点を画面の左上、水平方向右向きにx軸の正方向、垂直方向下向きにy軸の正方向をとった場合における、画像平行化の動作について説明する。これは、実際の二次元グラフィックス処理でよく用いられる座標系を基にした画像平行化の具体的な方法である。
画像平行化の動作を開始すると、三次元画像生成手段6に対し、ステレオ画像対となる第一画像18及び第二画像20と、第一画像18と第二画像20との関係を表す基礎行列Fを入力する(ステップS10参照)。
【0095】
次に、基礎行列Fに基づいて、第一画像18のエピ極点eと、第二画像20のエピ極点e’を演算する(ステップS14参照)。
ここで、基礎行列Fは、上記の座標軸で表現された基礎行列であるとする。また、第一画像18のエピ極点eは、FFTの最小固有値に対応する単位固有ベクトルである。また、第二画像20のエピ極点e’は、FTFの最小固有値に対応する単位固有ベクトルである。
【0096】
第一画像18のエピ極点eと、第二画像20のエピ極点e’を演算した後、第一画像18と第二画像20に対し、以下の手順を用いて、座標の原点を、それぞれの画像の中心へ移動させる(ステップS12参照)。
まず、第一画像18及び第二画像20の幅をwとし、第一画像18及び第二画像20の高さをhとする。そして、第一画像18のエピ極点eに対して、第一画像18の原点を、それぞれの画像の中心(w/2,h/2)に移動するための平行移動H0を実施する。この変換は、以下の式(16)で表される。なお、式(16)は、第一画像18の原点を、第一画像18の中心に移動するための平行移動である。
【0097】
【数17】

【0098】
同様に、第二画像20のエピ極点e’に対して、第二画像20の原点を、第二画像20の中心(w/2,h/2)に移動するための平行移動H0を実施する。この変換は、以下の式(17)で表される。なお、式(17)は、第二画像20の原点を、第二画像20の中心に移動するための平行移動である。
【0099】
【数18】

【0100】
第一画像18のエピ極点e及び第二画像20のエピ極点e’に対して、平行移動H0を実施した後、第一画像18の原点を移動したエピ極点H0e=(e1,e2,e3Tに対して、以下の式(18)で表される回転H1を実施する(ステップS16参照)。なお、式(18)は、第一画像18の原点を移動したエピ極点H0eをx軸(水平軸)上に移すための回転である。
【0101】
【数19】

【0102】
式(18)で表される回転H1を実施することにより、第一画像18の原点を移動したエピ極点H0eは、第一画像18の中心を通り、x軸(水平軸)に平行な直線上に移る。
同様に、第二画像20の原点を移動したエピ極点H0e’=(e1’,e2’,e3’)Tに対して、以下の式(19)で表される回転H1’を実施する(ステップS16参照)。なお、式(19)は、第二画像20の原点を移動したエピ極点H0e’をx軸(水平軸)上に移すための回転である。
【0103】
【数20】

【0104】
第一画像18の原点を移動したエピ極点H0eに対して回転H1を実施するとともに、第二画像20の原点を移動したエピ極点H0e’に対して回転H1’を実施した後、第一画像18に対して、以下の式(20)で表される第一の射影変換H2を実施する(ステップS18参照)。なお、式(20)は、第一画像18の原点を移動したエピ極点H0eを、x軸上の無限遠点に移すための射影変換である。
【0105】
【数21】

【0106】
ここで、第一画像18の原点を移動したエピ極点H0eが、当初から無限遠点にある場合(すなわちe3=0のとき)、この第一の射影変換H2は、恒等変換となる。
一方、第一画像18と同様、第二画像20に対して、以下の式(21)で表される第一の射影変換H2’を実施する(ステップS18参照)。なお、式(21)は、第二画像20の原点を移動したエピ極点H0e’を、x軸上の無限遠点に移すための射影変換である。
【0107】
【数22】

【0108】
ここで、第二画像20の原点を移動したエピ極点H0e’が、当初から無限遠点にある場合(すなわちe3’=0のとき)、この第一の射影変換H2’は、恒等変換となる。
第一の射影変換H2,H2’を実施すると、以下の式(22)で表されるように、第一画像18の原点を移動したエピ極点H0e及び第二画像20の原点を移動したエピ極点H0e’の第3成分が0になる。これにより、第一画像18の原点を移動したエピ極点H0e及び第二画像20の原点を移動したエピ極点H0e’が無限遠点に写像される。なお、式(22)は、第一画像18及び第二画像20の無限遠点に移動した後のエピ極点の座標である。
【0109】
【数23】

【0110】
第一の射影変換H2,H2’を実施した後、第二画像20に対して、以下の式(23)で表される第二の射影変換H3を実施する(ステップS20参照)。なお、式(23)は、エピポーラ線の高さを揃えるための射影変換である。これは、非特許文献1の式(6)に相当する。
【0111】
【数24】

【0112】
但し、式(23)に表れるパラメータa,b,cは、以下のようにして決定する。
まず、第二射影変換演算手段16に対し、基礎行列F、平行移動H0、回転H1,H1’、第一の射影変換H2,H2’を入力する(ステップS30参照)。
次に、第二射影変換演算手段16に対し、未確定のパラメータa,b,cを含む、第二の射影変換行列H3を入力する(ステップS32参照)。なお、第二の射影変換行列H3の形は、式(23)の通りである。
第二射影変換演算手段16に対し、第二の射影変換行列H3を入力した後、以下の式(24)で表される変換を施した第二次基礎行列F’を計算する(ステップS34参照)。なお、式(24)は、第一画像18及び第二画像20のエピ極点をx軸上に移動し、さらにx軸上の無限遠点に移動した後の画像に対応する基礎行列である。
【0113】
【数25】

【0114】
式(24)に示すように、第二次基礎行列F’は、上述したように、9つの成分のうち5つの成分が0であり、具体的には、以下の式(25)のような形式をしている。なお、式(25)は、エピポーラ線がx軸に平行である場合の基礎行列の形式である。
【0115】
【数26】

【0116】
第二次基礎行列F’を計算した後、この計算した第二次基礎行列F’に、以下の式(26)で表される変換を実施した、第三次基礎行列F”を計算する(ステップS36参照)。なお、式(26)は、第二画像20にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列である。
【0117】
【数27】

【0118】
第三次基礎行列F”は、上述したように、非ゼロの成分は2つのみであり、その非ゼロの2つの成分は、絶対値が同じで符号が反対という関係にある。具体的には、第三次基礎行列F”の形式は、以下の式(27)で表される。なお、式(27)は、エピポーラ線がy軸に平行で、さらに、第一画像18及び第二画像20の対応するエピポーラ線の高さが揃っている場合の基礎行列の形式である。
【0119】
【数28】

【0120】
ここで、第二の射影変換H3の逆行列は、以下の式(28)で表される。なお、式(28)は、上記の式(23)の逆行列の成分表示である。
【0121】
【数29】

【0122】
したがって、第二次基礎行列F’と第二の射影変換H3の逆行列に基づく、F’H3-1を成分表示すると、以下の式(29)のようになる。なお、式(29)は、上記の式(26)の成分表示である。
【0123】
【数30】

【0124】
式(29)の形式は、式(27)の形式であるため、未確定のパラメータa,b,cに関する3元連立一次方程式は、以下の式(30)のようになる。なお、式(30)は、上記の式(23)に示す未確定のパラメータを決定する連立方程式である。
【0125】
【数31】

【0126】
この式(30)を解くことにより、未確定のパラメータa,b,cを一意に決定することが可能となるため、第二の射影変換H3が決定される。
第二の射影変換H3を決定した後、第一画像18に合成射影変換H0-1210を実施するとともに、第二画像20に合成射影変換H0-132’H1’H0を実施することによって、平行化を完了する(ステップS22参照)。
なお、式(28)で表される第二の射影変換H3は、第一画像18に対して実施することも可能であり、この場合は、上記の式(29)が、以下の式(31)に変わる。なお、式(31)は、第一画像18にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列とその成分表示である。
【0127】
【数32】

【0128】
この場合、上記と同様に、上記の式(30)が、以下の式(32)に変わる。そして、式(32)で表される線形連立方程式を解くことにより、未確定のパラメータa,b,cを一意に決定することが可能となるため、第二の射影変換H3が決定される。なお、式(32)は、上記の式(23)に示す未確定のパラメータを決定する連立方程式である。
【0129】
【数33】

【0130】
なお、以上説明した、座標軸として、座標原点を画面の左上、水平方向右向きにx軸の正方向、垂直方向下向きにy軸の正方向をとった場合の画像平行化では、第一画像18及び第二画像20に合成射影変換を実施する際の処理が、上述したステップS22とは若干異なる。
この場合、具体的には、ステップS22と異なり、第一画像18に合成射影変換H0-13210を実施し、第二画像20に合成射影変換H0-12’H1’H0を実施することによって、平行化を完了する。
【0131】
以上説明したように、上記の各数式は、第二の射影変換行列H3を実施する対象を、第一画像18とした場合と、第二画像20とした場合により、式の形が変わる。しかしながら、本実施形態の発明は、第二の射影変換行列H3を実施する対象を、第一画像18とした場合と、第二画像20とした場合の両方を含むものである。
なお、上述したように、本実施形態のステレオ画像処理装置1の動作で実施するステレオ画像処理方法は、第二射影変換演算ステップにおいて、第一画像または第二画像に対し、予め演算した基礎行列と、回転演算ステップで演算した回転と、第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する方法である。
【0132】
(第一実施形態の効果)
以下、本実施形態の効果を列挙する。
(1)本実施形態のステレオ画像処理装置1では、第二射影変換演算手段が、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算手段が演算した回転と、第一射影変換演算手段が演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、誤差を含まない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して行うことにより、厳密な仮想平行等位を実現することが可能となる。
その結果、最も三次元構造を復元しやすいカメラ配置である仮想的な平行等位を、厳密に実現することが可能となるため、二つのカメラで撮影したステレオ画像対から、撮影した撮影対象の三次元構造を、精度良く復元することが可能となる。
【0133】
(2)本実施形態のステレオ画像処理方法では、第二射影変換演算ステップにおいて、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算ステップで演算した回転と、第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して行うことにより、厳密な仮想平行等位を実現することが可能となる。
その結果、最も三次元構造を復元しやすいカメラ配置である仮想的な平行等位を、厳密に実現することが可能となるため、二つのカメラで撮影したステレオ画像対から、撮影した撮影対象の三次元構造を、精度良く復元することが可能となる。
【0134】
(3)本実施形態のステレオ画像処理プログラムでは、第二射影変換演算ステップをコンピュータに実行させることにより、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、コンピュータに実行させる回転演算ステップで演算した回転と、コンピュータに実行させる第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
【0135】
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して行うことにより、厳密な仮想平行等位を実現することが可能となる。
その結果、最も三次元構造を復元しやすいカメラ配置である仮想的な平行等位を、厳密に実現することが可能となるため、二つのカメラで撮影したステレオ画像対から、撮影した撮影対象の三次元構造を、精度良く復元することが可能となる。
【0136】
(応用例)
以下、本実施形態の応用例を列挙する。
(1)本実施形態のステレオ画像処理装置1では、第二射影変換演算手段16による第二の射影変換H3の演算を、撮影対象Pに対して、所望の第一画像18及び第二画像20を撮影可能な位置に、最初に第一カメラ2及び第二カメラ4を配置した状態で行ったが、これに限定するものではない。すなわち、例えば、第二射影変換演算手段16による第二の射影変換H3の演算を、最初に第一カメラ2及び第二カメラ4を配置した状態から、経時的な変化等により、撮影対象Pに対する第一カメラ2及び第二カメラ4の位置が変化して、所望の第一画像18及び第二画像20が撮影不可能となった場合に行ってもよい。この場合、撮影対象Pに対する第一カメラ2及び第二カメラ4の位置を、所望の第一画像18及び第二画像20を撮影可能な位置に修正した状態で行う。これは、例えば、三次元画像生成手段6に対し、データの書き換えのみで行ってもよい。
また、第二射影変換演算手段16による第二の射影変換H3の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【0137】
(2)本実施形態のステレオ画像処理装置1では、三次元画像の生成対象とする撮影対象Pを、定位置に置いた構造模型等の立体物としたが、撮影対象Pは、これに限定するものではない。すなわち、撮影対象Pを、例えば、野外における縦横数十m程度の範囲としてもよい。
この場合、従来では、野外の観測位置に移動した人間が肉眼で行っていた、距離の長短を確認する必要がある観測を、厳密な仮想平行等位を実現可能なステレオ画像処理装置1を用いて行うことが可能となる。
【0138】
一例として、撮影対象を、噴火が予測される火山の火口及びその周辺を含む範囲とし、野外において観測に有利な開豁した地形へ移動した観測者が、火口の観測を行うことにより、噴火の予測を行う状況を考える。この場合、従来では、観測者による火口の観測は、観測者の危険性が高いが、本実施形態のステレオ画像処理装置1を用いることにより、火口の観測を人間が行う必要が無いため、危険性を大幅に低減させることが可能となるとともに、撮影した火口の状況を、精度良く復元することが可能となる。
【0139】
その他の例としては、撮影対象を、砲弾の着弾目標(敵陣地等)及びその周辺を含む範囲とし、野外において観測に有利な開豁した地形へ移動した観測者が、着弾目標に対する弾着の観測を行うことにより、射撃毎に照準の補正を行う兵器(迫撃砲等)を考える。この場合、従来では、観測者による弾着の観測は、観測者の危険性が高いが、本実施形態のステレオ画像処理装置1を用いることにより、弾着の観測を人間が行う必要が無いため、危険性を大幅に低減させることが可能となるとともに、撮影した弾着の状況を、精度良く復元することが可能となる。
なお、これらの応用例(1)及び(2)は、ステレオ画像処理方法及びステレオ画像処理プログラムに関しても、同様である。
【産業上の利用可能性】
【0140】
本発明のステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムは、ステレオ画像処理の前処理としてステレオ画像を平行化してステレオマッチング処理を単純化する分野において、好適に利用することが可能である。
【符号の説明】
【0141】
1 ステレオ画像処理装置
2 第一カメラ
4 第二カメラ
6 三次元画像生成手段
8 三次元画像後処理手段
10 エピ極点演算手段
12 回転演算手段
14 第一射影変換演算手段
16 第二射影変換演算手段
18 第一画像
20 第二画像
P 撮影対象
0 平行移動
1,H1’ 回転
2,H2’ 第一の射影変換
3 第二の射影変換

【特許請求の範囲】
【請求項1】
撮影対象の第一画像を撮影する第一カメラと、前記第一画像と異なる方向から前記撮影対象の第二画像を撮影する第二カメラと、前記第一画像及び前記第二画像からなるステレオ画像対に基づいて前記撮影対象の三次元画像を生成する三次元画像生成手段と、を備えるステレオ画像処理装置であって、
前記三次元画像生成手段は、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算手段と、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算手段と、
前記第一画像または前記第二画像に対して、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算手段と、を備え、
第二射影変換演算手段は、予め演算した基礎行列、前記回転演算手段が演算した回転及び前記第一射影変換演算手段が演算した第一の射影変換に基づいて、前記第二の射影変換を演算することを特徴とするステレオ画像処理装置。
【請求項2】
撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理方法であって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、を備えることを特徴とするステレオ画像処理方法。
【請求項3】
撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理プログラムであって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、をコンピュータに実行させることを特徴とするステレオ画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−220177(P2010−220177A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−67746(P2009−67746)
【出願日】平成21年3月19日(2009.3.19)
【出願人】(000000033)旭化成株式会社 (901)
【Fターム(参考)】