(57)【要約】【課題】厳密な仮想平行等位を実現することが可能な、ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムを提供する。【解決手段】撮影対象を撮影した第一画像、及び第一画像と異なる方向から撮影対象を撮影した第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行な水平軸上に配置されるように回転させ、さらに、その回転Ｈ1，Ｈ1’により移動したそれぞれのエピ極点が、それぞれの画像の中心を通り、且つそれぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換Ｈ2，Ｈ2’を行った状態で、第二画像に対し、予め演算した基礎行列Ｆ、回転Ｈ1，Ｈ1’及び第一の射影変換Ｈ2，Ｈ2’に基づいて、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換Ｈ3を演算して実施する。【選択図】図３
2010220177.tif 000002
【特許請求の範囲】
【請求項１】
撮影対象の第一画像を撮影する第一カメラと、前記第一画像と異なる方向から前記撮影対象の第二画像を撮影する第二カメラと、前記第一画像及び前記第二画像からなるステレオ画像対に基づいて前記撮影対象の三次元画像を生成する三次元画像生成手段と、を備えるステレオ画像処理装置であって、
前記三次元画像生成手段は、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算手段と、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算手段と、
前記第一画像または前記第二画像に対して、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算手段と、を備え、
第二射影変換演算手段は、予め演算した基礎行列、前記回転演算手段が演算した回転及び前記第一射影変換演算手段が演算した第一の射影変換に基づいて、前記第二の射影変換を演算することを特徴とするステレオ画像処理装置。
【請求項２】
撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理方法であって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、を備えることを特徴とするステレオ画像処理方法。
【請求項３】
撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理プログラムであって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、をコンピュータに実行させることを特徴とするステレオ画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステレオカメラが撮影した画像から、撮影対象の三次元構造を復元する技術、特に、ステレオマッチング処理を単純化するために、二つのカメラから得たステレオ画像対の平行化処理を行う、ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムに関する。
【背景技術】
【０００２】
従来から、同一の撮影対象（シーン）を二つのカメラ（ステレオカメラ）で同時に撮影して、互いの視点が僅かに異なる画像対を撮影し、この撮影した画像対から、撮影した撮影対象の三次元構造を復元する技術が提案されている。
しかしながら、撮影した撮影対象の三次元構造を復元するためには、二つのカメラのうち一方のカメラから得た画像上の点が、他方のカメラから得た画像上のどの点に対応するかを検出する必要がある。
【０００３】
上記の検出に用いる方法としては、一般的に、一方の画像の注目領域をテンプレートとしたテンプレートマッチングを行うことにより、他方の画像を走査して、最もマッチングした点を求める方法がある。ここで、テンプレートマッチングのために他方の画像を走査する領域は、エピポーラ線の線上のみでよい。なお、エピポーラ線に関する説明は、後述する。
【０００４】
以下、テンプレートマッチングのために他方の画像を走査する領域が、エピポーラ線の線上のみでよい理由を、図６を参照して説明する。
図６は、一般的なステレオカメラの配置と、エピポーラ線及びエピ極との関係を示す図である。なお、エピ極に関する説明は、後述する。
以下の説明では、前提として、図６中に示すように、第一カメラ２と第二カメラ４が、同時に、撮影対象である対象Ｐ1（構造模型等）を撮影している状態を設定する。
【０００５】
図６中に示すように、対象Ｐ1は、第一カメラ２では、第一カメラ２の撮像面である第一画像１８上の点ｃｐ1に投影され、第二カメラ４では、第二カメラ４の撮像面である第二画像２０上の点ｃｐ1’に投影される。
このとき、第一カメラ２のカメラ中心Ｏと、第二カメラ４のカメラ中心Ｏ’と、対象Ｐ1の三点とを通る平面が、エピポーラ面を形成し、この形成したエピポーラ面と第一画像１８及び第二画像２０が交わる直線が、上記のエピポーラ線を形成する。
ここで、エピポーラ面は、対象Ｐ1が第一カメラ２で第一画像１８上の点ｃｐ1に投影されている状態で決定される。このため、第二カメラ４では、対象Ｐ1がエピポーラ線上のどこかに投影されることになる。なお、図６中には、第二カメラ４により対象Ｐ1が第二画像２０上に投影されている点を、点ｃｐ1’で示している。
【０００６】
また、第一カメラ２のカメラ中心Ｏと第二カメラ４のカメラ中心Ｏ’とを結ぶ直線ＯＯ’と、第一画像１８及び第二画像２０の撮像面が交わる点が、上記のエピ極を形成する。同様に、第一カメラ２と第二カメラ４が、同時に、対象Ｐ1と異なる撮影対象である対象Ｐ2を撮影している状態では、平面ＯＯ’Ｐ2が、対象Ｐ2に対応するエピポーラ面を形成する。これに加え、対象Ｐ2に対応するエピポーラ面と第一画像１８及び第二画像２０と交わる直線が、対象Ｐ2に対応するエピポーラ線を形成する。なお、図６中には、第一カメラ２により対象Ｐ2が第一画像１８上に投影されている点を、点ｃｐ2で示し、第二カメラ４により対象Ｐ2が第二画像２０上に投影されている点を、点ｃｐ2’で示している。
なお、上述した全てのエピポーラ面は、対象の位置に因らず、直線ＯＯ’を含んでいる。このため、全てのエピポーラ線は、必ずエピ極点で交わることとなり、これを数式で表すと、以下の式（３３）となる。なお、式（３３）は、エピポーラ線の方程式である。
【０００７】
【数１】
2010220177.tif 000003
【０００８】
式（３３）において、Ｆは、基礎行列を形成する３×３の行列である。
式（３３）の（ｘ  ｙ  １）の値は、例えば、第一画像１８上のある点を指定した場合に確定する。このとき、式（３３）は、ｘ’とｙ’に関する一次方程式、すなわち、直線の方程式となる。これが、第一画像１８上の点（ｘ  ｙ  １）に対応する、第二画像２０のエピポーラ線の方程式となる。
同様に、式（３３）の（ｘ’ｙ’１）Tの値は、第二画像２０上のある点を指定した場合に確定する。このとき、式（３３）は、ｘとｙに関する一次方程式、すなわち直線の方程式となる。これが、第二画像２０の点（ｘ’ｙ’１）Tに対応する、第一画像１８のエピポーラ線の方程式となる。
ところで、最も三次元構造を復元しやすいカメラ配置は、二つのカメラの光軸の向き（撮影方向）が全く同じであり、さらに、撮像面の水平軸方向に平行移動しているだけの関係を形成する配置である。以下、このようなカメラ配置を、平行等位と記載する。
【０００９】
平行等位のカメラ配置では、例えば、図７中に示すように、第一画像１８のエピポーラ線と第二画像２０のエピポーラ線が互いに平行となる、且つ第一画像１８と第二画像２０は、対応するエピポーラ線の高さが同一となる。なお、図７は、平行等位のカメラ配置とエピポーラ線とを示す図である。また、図７中には、図６中と同様、第一カメラ２により対象Ｐ1が第一画像１８上に投影されている点を、点ｃｐ1示し、第二カメラ４により対象Ｐ1が第二画像２０上に投影されている点を、点ｃｐ1’で示している。また、第一カメラ２により対象Ｐ2が第一画像１８上に投影されている点を、点ｃｐ2で示し、第二カメラ４により対象Ｐ2が第二画像２０上に投影されている点を、点ｃｐ2’で示している。
【００１０】
また、カメラ配置が平行等位である場合、基礎行列は、後述する式（１０）、または、式（２７）で表されるような、特別な形をしている。
平行等位のカメラ配置では、図７中に示すように、第一画像１８と第二画像２０のエピポーラ線が平行となり、且つ高さが揃うため、テンプレートマッチングの走査を、容易に行うことが可能となる。さらに、第一画像１８と第二画像２０との水平座標の違い、すなわち、視差の簡単な関数を用いて、対象の三次元座標を復元することが可能となる。
【００１１】
しかしながら、現実には、二つのカメラを、完全に平行な状態で配置することは不可能であるため、上述した平行等位のカメラ配置は、実現することができないという問題がある。
この問題に対し、例えば、二つの対処法が提案されている。
第一の対処法は、二つのカメラを、ほぼ平行等位に設置し、さらに、平行等位からの僅かなズレを、公知のアフィン変換を用いて補正する方法である。
【００１２】
しかしながら、第一の対処法では、カメラの配置に制約を受けるため、撮影対象の構成や、カメラを配置する立地条件等によっては、適用が困難である。
一方、第二の対処法は、例えば、非特許文献１に記述されているような方法である。これは、二つのカメラがほぼ平行等位であるという仮定を用いずに、二つのカメラの向きが完全には同じではない二つの画像（第一画像及び第二画像）に対して、射影変換を行うことにより、仮想的に平行等位（仮想平行等位）を形成する方法である。
【００１３】
なお、第二の対処法では、エピポーラ線の高さを揃えるために、第一画像の特徴点と、この特徴点に対応する第二画像の特徴点とを用いて、最小二乗法等による演算を行う。ここで、第一画像の特徴点と第二画像の特徴点との対応は既知であり、その座標を、第一画像及び第二画像の画面上から検出する。
第二の対処法は、第一の対処法と異なり、カメラの配置に制約を受けない利点を有している。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】菅谷保之、金沢靖、金谷健一著、「エピ極線幾何学による２画像間の密な点対応の生成」、情報処理学会研究報告、２００５年３月発行、Ｐ．１４５〜１５２
【発明の概要】
【発明が解決しようとする課題】
【００１５】
非特許文献１に記述されているような対処法では、エピポーラ線の高さを揃えるために、対応が既知である特徴点を用いている。
しかしながら、対応が既知である特徴点は、その座標を、第一画像及び第二画像の画面上から検出しているため、誤差を含む可能性がある。このため、二つのカメラの向きが完全には同じではない画像に対して射影変換を行っても、厳密な仮想平行等位にはならないという問題が発生するおそれがある。
本発明は、上記のような問題点に着目してなされたもので、厳密な仮想平行等位を実現することが可能な、ステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明のうち、請求項１に記載した発明は、撮影対象の第一画像を撮影する第一カメラと、前記第一画像と異なる方向から前記撮影対象の第二画像を撮影する第二カメラと、前記第一画像及び前記第二画像からなるステレオ画像対に基づいて前記撮影対象の三次元画像を生成する三次元画像生成手段と、を備えるステレオ画像処理装置であって、
前記三次元画像生成手段は、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算手段と、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算手段と、
前記第一画像または前記第二画像に対して、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算手段と、を備え、
第二射影変換演算手段は、予め演算した基礎行列、前記回転演算手段が演算した回転及び前記第一射影変換演算手段が演算した第一の射影変換に基づいて、前記第二の射影変換を演算することを特徴とするものである。
【００１７】
本発明によると、第二射影変換演算手段が、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算手段が演算した回転と、第一射影変換演算手段が演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、厳密な仮想平行等位を実現することが可能となる。
【００１８】
なお、上記のような、第二射影変換演算手段による第二の射影変換の演算は、例えば、撮影対象に対して、所望の第一画像及び第二画像を撮影可能な位置に、最初に第一カメラ及び第二カメラを配置した状態で行う。
また、上記のような、第二射影変換演算手段による第二の射影変換の演算は、例えば、最初に第一カメラ及び第二カメラを配置した状態から、経時的な変化等により、撮影対象に対する第一カメラ及び第二カメラの位置が変化して、所望の第一画像及び第二画像が撮影不可能となった場合に行ってもよい。この場合、撮影対象に対する第一カメラ及び第二カメラの位置を、所望の第一画像及び第二画像を撮影可能な位置に修正した状態で、第二射影変換演算手段による第二の射影変換の演算を行う。
また、上記のような、第二射影変換演算手段による第二の射影変換の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【００１９】
次に、請求項２に記載した発明は、撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理方法であって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、を備えることを特徴とするものである。
【００２０】
本発明によると、第二射影変換演算ステップにおいて、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算ステップで演算した回転と、第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、厳密な仮想平行等位を実現することが可能となる。
【００２１】
なお、上記のような、第二射影変換演算ステップにおける第二の射影変換の演算は、例えば、撮影対象に対して、所望の第一画像及び第二画像を撮影可能な位置に、最初に第一カメラ及び第二カメラを配置した状態で行う。
また、上記のような、第二射影変換演算ステップにおける第二の射影変換の演算は、例えば、最初に第一カメラ及び第二カメラを配置した状態から、経時的な変化等により、撮影対象に対する第一カメラ及び第二カメラの位置が変化して、所望の第一画像及び第二画像が撮影不可能となった場合に行ってもよい。この場合、撮影対象に対する第一カメラ及び第二カメラの位置を、所望の第一画像及び第二画像を撮影可能な位置に修正した状態で、第二射影変換演算ステップにおける第二の射影変換の演算を行う。
また、上記のような、第二射影変換演算ステップにおける第二の射影変換の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【００２２】
次に、請求項３に記載した発明は、撮影対象を撮影した第一画像と前記第一画像と異なる方向から前記撮影対象を撮影した第二画像からなるステレオ画像対に基づいて、前記撮影対象の三次元画像を生成するステレオ画像処理プログラムであって、
前記第一画像及び前記第二画像に対して、それぞれのエピ極点が、それぞれの画像の中心を通るとともにそれぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する回転演算ステップと、
前記第一画像及び前記第二画像に対して、前記回転により移動した前記それぞれのエピ極点が前記それぞれの画像の中心を通り、且つ前記それぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する第一射影変換演算ステップと、
前記第一画像または前記第二画像に対し、予め演算した基礎行列、前記回転演算ステップで演算した回転及び前記第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが前記第一画像と前記第二画像で揃うような第二の射影変換を演算する第二射影変換演算ステップと、をコンピュータに実行させることを特徴とするものである。
【００２３】
本発明によると、第二射影変換演算ステップをコンピュータに実行させることにより、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、コンピュータに実行させる回転演算ステップで演算した回転と、コンピュータに実行させる第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
【００２４】
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、厳密な仮想平行等位を実現することが可能となる。
なお、上記のような、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算は、例えば、撮影対象に対して、所望の第一画像及び第二画像を撮影可能な位置に、最初に第一カメラ及び第二カメラを配置した状態で行う。
【００２５】
また、上記のような、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算は、例えば、最初に第一カメラ及び第二カメラを配置した状態から、経時的な変化等により、撮影対象に対する第一カメラ及び第二カメラの位置が変化して、所望の第一画像及び第二画像が撮影不可能となった場合に行ってもよい。この場合、撮影対象に対する第一カメラ及び第二カメラの位置を、所望の第一画像及び第二画像を撮影可能な位置に修正した状態で、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算を行う。
また、上記のような、コンピュータに実行させる第二射影変換演算ステップにおける、第二の射影変換の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【発明の効果】
【００２６】
本発明によれば、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算した第二の射影変換を、第一画像または第二画像に対して実施することにより、第一画像及び第二画像に対し、エピポーラ線の高さを揃えることが可能となる。このため、厳密な仮想平行等位を実現することが可能となる。
【図面の簡単な説明】
【００２７】
【図１】本発明のステレオ画像処理装置の構成を示す図である。
【図２】三次元画像生成手段の構成を示すブロック図である。
【図３】画像平行化の手順を表したフローチャートである。
【図４】画像平行化の手順に伴って入力画像が変形する様子を示した図である。
【図５】画像の高さを揃える射影変換を決定するためのフローチャートである。
【図６】一般のカメラ配置とエピポーラ線、エピ極の関係を示した図である。
【図７】平行等位のカメラ配置とエピポーラ線を示した図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態について、図面を参照しつつ説明する。
（第一実施形態）
まず、本発明の第一実施形態（以下、「本実施形態」と記載する）について、図面を参照しつつ説明する。
（構成）
まず、図１から図５を参照して、本実施形態の構成を説明する。なお、上述した図６及び図７中に記載したものと同様の構成については、同一の符号を付して説明する。
図１は、本実施形態のステレオ画像処理装置１の構成を示す図である。
図１中に示すように、このステレオ画像処理装置１は、第一カメラ２と、第二カメラ４と、三次元画像生成手段６と、三次元画像後処理手段８を備えている。
【００２９】
第一カメラ２は、例えば、監視装置等が備えるカメラであり、撮影対象Ｐの第一画像を撮影し、この撮影した第一画像を含む情報信号を、三次元画像生成手段６へ出力する。なお、本実施形態では、三次元画像の生成対象とする撮影対象Ｐを、定位置に置いた構造模型等の立体物とする。
第二カメラ４は、第一カメラ２と同様、例えば、監視装置等が備えるカメラであり、第一画像と異なる方向から、撮影対象Ｐの第二画像を撮影し、この撮影した第二画像を含む情報信号を、三次元画像生成手段６へ出力する。なお、図１中では、第一カメラ２が撮影対象Ｐを撮影する第一撮影方向を、矢印Ａ１で示し、第二カメラ４が撮影対象Ｐを撮影する第二撮影方向を、矢印Ａ２で示している。
【００３０】
三次元画像生成手段６は、図示しないＣＰＵ（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）を備えるコンピュータで形成されており、第一画像及び第二画像からなるステレオ画像対に基づいて、撮影対象Ｐの三次元画像を生成する。そして、三次元画像生成手段６は、生成した三次元画像を含む情報信号を、三次元画像後処理手段８へ出力する。なお、三次元画像生成手段６の詳細な構成については、後述する。
三次元画像後処理手段８は、例えば、三次元画像生成手段６が生成した撮影対象Ｐの三次元画像を空間に投影可能なプロジェクタで形成されている。なお、三次元画像後処理手段８の構成は、これに限定するものではなく、例えば、三次元画像生成手段６が生成した撮影対象Ｐの三次元画像をデータとして蓄積可能なデータベースであってもよい。
【００３１】
図２は、三次元画像生成手段６の構成を示すブロック図である。
図２中に示すように、三次元画像生成手段６は、エピ極点演算手段１０と、回転演算手段１２と、第一射影変換演算手段１４と、第二射影変換演算手段１６を備えている。なお、これらの機能構成は、三次元画像生成手段６のＣＰＵ（コンピュータ）に、図示しないＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やハードディスク等の記憶装置に記憶したステレオ画像処理プログラムを実行させることにより、三次元画像生成手段６で実現する。なお、上記の記憶装置は、例えば、三次元画像生成手段６が備える。
【００３２】
エピ極点演算手段１０は、既知の基礎行列に基づいて、第一画像及び第二画像のエピ極点を演算する。エピ極点演算手段１０が行う演算についての詳細な説明は、後述する。
回転演算手段１２は、第一画像及び第二画像に対して、エピ極点演算手段１０が演算したそれぞれのエピ極点が、それぞれの画像の中心を通るとともに、それぞれの画像の横軸と平行なそれぞれの水平軸上に配置されるように、それぞれの画像の中心を軸とした回転を演算する。回転演算手段１２が行う演算についての詳細な説明は、後述する。
第一射影変換演算手段１４は、回転演算手段１２が演算した回転により移動したそれぞれのエピ極点が、それぞれの画像の中心を通り、且つそれぞれの水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換を演算する。第一射影変換演算手段１４が行う演算についての詳細な説明は、後述する。
【００３３】
第二射影変換演算手段１６は、第一画像または第二画像に対して、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、第一画像及び第二画像に対して、エピ極点演算手段１０による第一画像及び第二画像のエピ極点の演算と、回転演算手段１２が演算した回転と、第一射影変換演算手段１４が演算した第一の射影変換を実施した状態で行う。
ここで、第二射影変換演算手段１６は、予め演算した基礎行列と、回転演算手段１２が演算した回転と、第一射影変換演算手段１４が演算した第一の射影変換に基づいて、第二の射影変換を演算する。第二射影変換演算手段１６が行う演算についての詳細な説明は、後述する。
【００３４】
以下、図１及び図２を参照しつつ、図３から図５を用いて、三次元画像生成手段６が行う処理について説明する。
具体的には、第一カメラ２及び第二カメラ４（ステレオカメラ）が撮影した画像から、撮影対象Ｐの三次元構造を生成する処理のうち、ステレオマッチング処理を単純化するために、第一カメラ２及び第二カメラ４から得たステレオ画像対の平行化処理（画像平行化）について説明する。
図３は、画像平行化の手順を表すフローチャートである。また、図４は、画像平行化の手順に伴って入力画像が変形する様子を示した図である。なお、図４中では、入力画像が変形する様子を、図４（ａ）、（ｂ）、（ｃ）、（ｄ）、（ｅ）、（ｆ）の順番で示している。
【００３５】
図３中に示すように、画像平行化で行う処理を開始（ＳＴＡＲＴ）すると、三次元画像生成手段６は、まず、第一カメラ２から第一画像を取得するとともに、第二カメラ４から第二画像を取得する。これに加え、撮影対象、第一カメラ２及び第二カメラ４に基づく事前の演算等により、予め演算した基礎行列Ｆを取得する（ステップＳ１０）。
すなわち、ステップＳ１０では、三次元画像生成手段６に対し、ステレオ画像対となる第一画像及び第二画像と、第一画像と第二画像との関係を表す基礎行列Ｆを入力（ステップＳ１０に示す「基礎行列Ｆとステレオ画像対を入力」）する。
【００３６】
このとき、図４（ａ）中に示すように、三次元画像生成手段６に入力する画像は、第一画像１８と第二画像２０の大きさを同一とし、さらに、座標系も同一とする。なお、図４（ａ）中では、入力した時点での第一画像１８を第一画像１８ａと示し、入力した時点での第二画像２０を第二画像２０ａと示している。なお、この時点では、符号「●」で示す座標の原点は、第一画像１８ａ及び第二画像２０ａにおいて左上に位置している。
【００３７】
ステップＳ１０において、三次元画像生成手段６に対し、基礎行列Ｆとステレオ画像対を入力した後、画像平行化で行う処理は、ステップＳ１２の処理へ移行する。
ステップＳ１２では、三次元画像生成手段６に入力した第一画像１８と第二画像２０に対し、それぞれ、座標の原点が画像の中心にないときは、座標の原点が画像の中心になるように、平行移動Ｈ0を実施する。
【００３８】
すなわち、ステップＳ１２では、第一画像１８と第二画像２０に対し、座標の原点を画像の中心とする平行移動Ｈ0を演算（ステップＳ１２に示す「第一、第二画像の原点を画像中心に移動する平行移動Ｈ0を計算」）する。そして、この平行移動Ｈ0により、図４（ｂ）中に示すように、座標の原点を画像の中心へ移動させる。なお、図４（ｂ）中では、平行移動Ｈ0を実施した状態の第一画像１８を第一画像１８ｂと示し、平行移動Ｈ0を実施した状態の第二画像２０を第二画像２０ｂと示している。
【００３９】
ステップＳ１２において、第一画像１８と第二画像２０に対し、座標の原点を画像の中心へ移動させた後、画像平行化で行う処理は、ステップＳ１４の処理へ移行する。
なお、ステップＳ１０の処理とステップＳ１２の処理は、順序を逆にして行ってもよい。
ステップＳ１４では、エピ極点演算手段１０が、既知の基礎行列Ｆに基づいて、第一画像１８及び第二画像２０のエピ極点を演算（ステップＳ１４に示す「基礎行列Ｆから第一、第二画像のエピ極点ｅ，ｅ’を計算」）する。この演算により、図４（ｃ）中に示すように、第一画像１８のエピ極点ｅと、第二画像２０のエピ極点ｅ’を演算する。なお、図４（ｃ）中では、エピ極点ｅを演算した状態の第一画像１８を第一画像１８ｃと示し、エピ極点ｅ’を演算した状態の第二画像２０を第二画像２０ｃと示している。
【００４０】
ここで、第一画像１８及び第二画像２０のエピ極点は、例えば、上述した非特許文献１の２．３節（Ｐ．１４６〜１４７）に記載されている方法に従って演算する。具体的には、基礎行列Ｆに基づき、ＦTの固有値０の単位固有ベクトルを、第一画像１８のエピ極点ｅとし、Ｆの固有値０の単位固有ベクトルを、第二画像２０のエピ極点ｅ’とする。
ステップＳ１４において、エピ極点演算手段１０が、第一画像１８のエピ極点ｅと、第二画像２０のエピ極点ｅ’を演算した後、画像平行化で行う処理は、ステップＳ１６の処理へ移行する。
【００４１】
ステップＳ１６では、第一画像１８に対し、第一画像１８のエピ極点ｅが、第一画像１８の中心を通るとともに、第一画像１８の横軸と平行な水平軸上に配置されるように、第一画像１８の中心を軸に回転するような回転Ｈ1を実施する。これに加え、ステップＳ１６では、第二画像２０に対し、第二画像２０のエピ極点ｅ’が、第二画像２０の中心を通るとともに、第二画像２０の横軸と平行な水平軸上に配置されるように、第二画像２０の中心を軸に回転するような回転Ｈ1’を実施する。
【００４２】
すなわち、ステップＳ１６では、回転演算手段１２が、第一画像１８及び第二画像２０に対して、それぞれ、回転Ｈ1，Ｈ1’（ステップＳ１６に示す「第一、第二画像の中心周りに画像を回転することにより、エピ極点を画像の中心を通り、水平軸に平行な直線上へ移動するような回転Ｈ1，Ｈ1’を計算」）を演算する。
この演算した回転Ｈ1，Ｈ1’を実施することにより、図４（ｄ）中に示すように、第一画像１８に対する第一画像１８のエピ極点ｅの位置、及び第二画像２０に対する第二画像２０のエピ極点ｅ’の位置が変位する。なお、図４（ｄ）中では、回転Ｈ1を実施した状態の第一画像１８を第一画像１８ｄと示し、回転Ｈ1’を実施した状態の第二画像２０を第二画像２０ｄと示している。
【００４３】
ここで、回転Ｈ1は、例えば、上述した非特許文献１の２．４節（Ｐ．１４７）に記載されている方法に従って演算する。具体的には、ベクトルｅ＝（ｅ1，ｅ2，ｅ3）Tから、第一画像１８のエピ極点（ｘe，ｙe）が、ｅ3≠０のときに定まるため、この第一画像１８のエピ極点（ｘe，ｙe）が第一画像１８のｙ軸上に載るように、第一画像１８を原点の周りに回転する。なお、回転Ｈ1’に関しては、第一画像１８を第二画像に置き換えれば同様の手順であるため、その説明は省略する。
【００４４】
ステップＳ１６において、回転Ｈ1，Ｈ1’を実施した後、画像平行化で行う処理は、ステップＳ１８の処理へ移行する。
ステップＳ１８では、第一画像１８に対し、回転Ｈ1により移動した第一画像１８のエピ極点ｅが、第一画像１８の中心を通り、且つ第一画像１８の水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換Ｈ2を実施する。これに加え、ステップＳ１８では、第二画像２０に対し、回転Ｈ1’により移動した第二画像２０のエピ極点ｅ’が、第二画像２０の中心を通り、且つ第二画像２０の水平軸と平行な直線上の無限遠点に写像されるような第一の射影変換Ｈ2’を実施する。
【００４５】
すなわち、ステップＳ１８では、第一射影変換演算手段１４が、第一画像１８及び第二画像２０に対して、それぞれ、第一の射影変換Ｈ2，Ｈ2’（ステップＳ１８に示す「ステップＳ１６で移動した第一、第二画像のエピ極点を、さらに、画像の中心を通り、水平軸に平行な直線上の無限遠点に写像するような第一の射影変換Ｈ2，Ｈ2’を計算」）を演算する。
【００４６】
この演算した第一の射影変換Ｈ2，Ｈ2’を実施することにより、図４（ｅ）中に示すように、第一画像１８の水平軸と第二画像２０の水平軸が平行となる。なお、図４（ｅ）中では、第一の射影変換Ｈ2を実施した状態の第一画像１８を第一画像１８ｅと示し、第一の射影変換Ｈ2’を実施した状態の第二画像２０を第二画像２０ｅと示している。
ここで、第一の射影変換Ｈ2は、例えば、上述した非特許文献１の２．５節（Ｐ．１４７）に記載されている方法に従って演算する。これは、エピ極点（０，ｅ）を、無限遠点（０，±∞）に写像する射影変換である。なお、第一の射影変換Ｈ2’に関しては、第一画像１８を第二画像に置き換えれば同様の手順であるため、その説明は省略する。
【００４７】
ステップＳ１８において、第一の射影変換Ｈ2，Ｈ2’を実施した後、画像平行化で行う処理は、ステップＳ２０の処理へ移行する。
ステップＳ２０では、第一画像１８または第二画像２０に対し、エピポーラ線の高さを第一画像１８と第二画像２０で揃えるために、第二の射影変換Ｈ3を演算し、この演算した第二の射影変換Ｈ3を実施する。なお、本実施形態では、第二画像２０に対して、第二の射影変換Ｈ3を実施する場合について説明する。
すなわち、ステップＳ２０では、第二射影変換演算手段１６が、第一画像１８または第二画像２０に対して、第二の射影変換Ｈ3（ステップＳ２０に示す「ステップＳ１８で写像した第二画像（または第一画像）のエピポーラ線の高さを第一（または第二）画像に揃える第二の射影変換Ｈ3を計算」）を演算する。
【００４８】
なお、本実施形態では、第二射影変換演算手段１６による第二の射影変換Ｈ3の演算を、撮影対象Ｐに対して、所望の第一画像１８及び第二画像２０を撮影可能な位置に、最初に第一カメラ２及び第二カメラ４を配置した状態で行う場合について説明する。
第二射影変換演算手段１６が演算した第二の射影変換Ｈ3を実施することにより、図４（ｆ）中に示すように、第一画像１８のエピポーラ線の高さと、第二画像２０のエピポーラ線の高さが揃う。なお、図４（ｆ）中では、第一の射影変換Ｈ2を実施した状態を維持した第一画像１８を第一画像１８ｆと示し、第二の射影変換Ｈ3を実施した状態の第二画像２０を第二画像２０ｆと示している。
【００４９】
ここで、図５を参照して、第二射影変換演算手段１６が第二の射影変換Ｈ3を演算する処理について説明する。
図５は、第二の射影変換Ｈ3を演算する処理、すなわち、画像の高さを揃える射影変換を決定するためのフローチャートである。
図５中に示すように、第二の射影変換Ｈ3を演算する処理を開始（ＳＴＡＲＴ）すると、第二射影変換演算手段１６は、まず、予め演算した基礎行列Ｆ、ステップＳ１２で演算した平行移動Ｈ0、ステップＳ１６で演算した回転Ｈ1，Ｈ1’、ステップＳ１８で演算した第一の射影変換Ｈ2，Ｈ2’を取得する（ステップＳ３０）。
【００５０】
すなわち、ステップＳ３０では、第二射影変換演算手段１６に対し、基礎行列Ｆ、平行移動Ｈ0、回転Ｈ1，Ｈ1’、第一の射影変換Ｈ2，Ｈ2’を入力（ステップＳ３０に示す「基礎行列ＦとステップＳ１２，Ｓ１６，Ｓ１８で計算した射影変換行列Ｈ0、Ｈ1，Ｈ1’、Ｈ2，Ｈ2’を入力」）する。
ステップＳ３０において、第二射影変換演算手段１６に対し、基礎行列Ｆ、平行移動Ｈ0、回転Ｈ1，Ｈ1’、第一の射影変換Ｈ2，Ｈ2’を入力した後、第二射影変換演算手段１６が行う処理は、ステップＳ３２の処理へ移行する。
【００５１】
ステップＳ３２では、第二射影変換演算手段１６に対し、未確定のパラメータａ，ｂ，ｃを含む、第二の射影変換行列Ｈ3を入力する。なお、第二の射影変換行列Ｈ3の形は、座標軸の取り方に依存する。
すなわち、ステップＳ３２では、第二射影変換演算手段１６に対し、射影変換行列Ｈ3を入力（ステップＳ３２に示す「未確定のパラメータａ，ｂ，ｃを含む射影変換行列Ｈ3を入力  Ｈ3の形は、座標軸の取り方に依存」）する。
【００５２】
ここで、第二の射影変換行列Ｈ3が含む未確定のパラメータａ，ｂ，ｃは、上述した非特許文献１の２．６節（Ｐ．１４７〜１４８）に記載されている式に従った値とする。前記式に関する説明は省略する。
ステップＳ３２において、第二射影変換演算手段１６に対し、第二の射影変換行列Ｈ3を入力した後、第二射影変換演算手段１６が行う処理は、ステップＳ３４の処理へ移行する。
ステップＳ３４では、Ｆ’＝Ｈ2-TＨ1-TＨ0-TＦＨ0-1Ｈ1-1Ｈ2-1で示す、第二次基礎行列Ｆ’を計算する。
【００５３】
この第二次基礎行列Ｆ’の形は、座標軸のとり方に依存するが、９つの成分のうち５つは、値が０である。第二次基礎行列Ｆ’の具体的な形については、後述する。
すなわち、ステップＳ３４では、第二次基礎行列Ｆ’を計算（ステップＳ３４に示す「Ｆ’＝Ｈ2-TＨ1-TＨ0-TＦＨ0-1Ｈ1-1Ｈ2-1を計算  この時点でＦ’の９つの成分のうち、５つは０である」）する。
ステップＳ３４において、第二次基礎行列Ｆ’を計算した後、第二射影変換演算手段１６が行う処理は、ステップＳ３６の処理へ移行する。
【００５４】
ステップＳ３６では、Ｆ”＝Ｆ’Ｈ3-1またはＦ”＝Ｈ3-TＦ’で示す、第三次基礎行列Ｆ”を、未確定のパラメータａ，ｂ，ｃを含んだ形で求める。第三次基礎行列Ｆ”は、平行化完了後の第一画像１８と第二画像２０のエピポーラ線の関係を表す行列である。第三次基礎行列Ｆ”の具体的な形については、後述する。
これにより、仮想平行等位が実現できているという条件から、エピポーラ線が水平軸に平行であるとともに、第一画像１８のエピポーラ線に対応する第二画像２０のエピポーラ線の高さが同一という関係が、成立しているという条件を課すことができる。
【００５５】
第三次基礎行列Ｆ”の具体的な形は、座標軸の取り方に依存するが、第二次基礎行列Ｆ’と比較して、９つの成分のうち非ゼロ成分は２つしかなく、その非ゼロの２つの成分は、絶対値が等しく符号が反対という関係にある。
したがって、未確定のパラメータａ，ｂ，ｃの３元連立一次方程式が導かれ、これらが一意に決定されることにより、第二の射影変換Ｈ3が確定する。
【００５６】
すなわち、ステップＳ３６では、第二の射影変換Ｈ3を演算（ステップＳ３６に示す「Ｆ’Ｈ3の非ゼロ成分が２つだけであり、その２つの非ゼロ成分がお互いに絶対値が等しく符号が逆という関係から導かれる線形連立方程式を解くことにより、Ｈ3を決定」）する。
ステップＳ３６において、第二の射影変換Ｈ3を演算した後、第二画像２０に対して、第二の射影変換Ｈ3を実施すると、第二射影変換演算手段１６が行う処理は終了（「ＥＮＤ」）する。
【００５７】
以下、図１から図４を参照した説明に復帰する。
ステップＳ２０において、第二画像２０に対して第二の射影変換Ｈ3を実施した後、画像平行化で行う処理は、ステップＳ２２の処理へ移行する。
ステップＳ２２では、第一画像１８及び第二画像２０に対して、ステップＳ２０で演算した合成射影変換を実施することにより、第一画像１８及び第二画像２０を射影変形して、平行化を完了する。
具体的には、第一画像１８に対して、合成射影変換Ｈ0-1Ｈ2Ｈ1Ｈ0を実施するとともに、第二画像２０に対して、合成射影変換Ｈ0-1Ｈ3Ｈ2’Ｈ1’Ｈ0を実施することにより、第一画像１８及び第二画像２０を射影変形する。
【００５８】
すなわち、ステップＳ２２では、第一画像１８及び第二画像２０に対して、ステップＳ２０で演算した合成射影変換を適用（ステップＳ２２に示す「第一画像に合成射影変換Ｈ0-1Ｈ2Ｈ1Ｈ0  第二画像２０に合成射影変換Ｈ0-1Ｈ3Ｈ2’Ｈ1’Ｈ0を適用」）する。
ステップＳ２２において、第一画像１８及び第二画像２０に対して、合成射影変換を実施することにより、第一画像１８及び第二画像２０を射影変形すると、画像平行化で行う処理は終了（「ＥＮＤ」）する。
なお、上記ステップＳ１６は、上述した「回転演算ステップ」に対応する。
また、上記ステップＳ１８は、上述した「第一射影変換演算ステップ」に対応する。
また、上記ステップＳ２０及びＳ３０〜Ｓ３６は、上述した「第二射影変換演算ステップ」に対応する。
【００５９】
（動作）
次に、図１から図５を参照して、上記の構成を備えたステレオ画像処理装置１の動作について説明する。
なお、上述した第三次基礎行列Ｆ”の、エピポーラ線が水平軸に平行であるとともに、第一画像１８のエピポーラ線に対応する第二画像２０のエピポーラ線の高さが同一であるという条件は、座標軸の取り方によって形が異なる。このため、以下の説明では、具体的な座標軸を指定した詳細な動作を記載する。
【００６０】
（動作例１：座標軸として、座標原点を画面の中心、垂直方向上向きにｘ軸の正方向、水平方向右向きにｙ軸の正方向）
まず、上述した非特許文献１に従い、座標軸として、座標原点を画面の中心、垂直方向上向きにｘ軸の正方向、水平方向右向きにｙ軸の正方向をとった場合における、画像平行化の動作について説明する。
【００６１】
画像平行化の動作を開始すると、三次元画像生成手段６に対し、ステレオ画像対となる第一画像及び第二画像と、第一画像と第二画像との関係を表す基礎行列Ｆを入力する（ステップＳ１０参照）。その後、第一画像１８と第二画像２０に対し、座標の原点を、それぞれの画像の中心へ移動させる（ステップＳ１２参照）。
なお、本実施形態では、既に画面中心が原点である、すなわち、第一画像１８及び第二画像２０は、座標の原点が、それぞれの画像の中心へ位置しているため、平行移動Ｈ0を実施しない。したがって、平行移動Ｈ0は恒等変換となる。
【００６２】
次に、基礎行列Ｆに基づいて、第一画像１８のエピ極点ｅと、第二画像２０のエピ極点ｅ’を演算する（ステップＳ１４参照）。
ここで、基礎行列Ｆは、上記の座標軸で表現された基礎行列であるとする。また、第一画像１８のエピ極点ｅは、ＦＦTの最小固有値に対応する単位固有ベクトルである。また、第二画像２０のエピ極点ｅ’は、ＦTＦの最小固有値に対応する単位固有ベクトルである。
第一画像１８のエピ極点ｅと第二画像２０のエピ極点ｅ’を演算した後、第一画像１８のエピ極点ｅ＝（ｅ1，ｅ2，ｅ3）Tに対して、以下の式（１）で表される回転Ｈ1を実施する（ステップＳ１６参照）。なお、式（１）は、第一画像１８のエピ極点をｙ軸（水平軸）上に移すための射影変換である。
【００６３】
【数２】
2010220177.tif 000004
【００６４】
第一画像１８のエピ極点ｅに対して、式（１）で表される回転Ｈ1を実施することにより、第一画像１８のエピ極点ｅは、ｙ軸上に移動する。
一方、第一画像１８のエピ極点ｅと同様、第二画像２０のエピ極点ｅ’＝（ｅ1’，ｅ2’，ｅ3’）Tに対して、以下の式（２）で表される回転Ｈ1’を実施する（ステップＳ１６参照）。なお、式（２）は、第二画像２０のエピ極点をｙ軸（水平軸）上に移すための射影変換である。
【００６５】
【数３】
2010220177.tif 000005
【００６６】
第一画像１８のエピ極点ｅに対して回転Ｈ1を実施するとともに、第二画像２０のエピ極点ｅ’に対して回転Ｈ1’を実施した後、第一画像１８に対して、以下の式（３）で表される第一の射影変換Ｈ2を実施する（ステップＳ１８参照）。なお、式（３）は、第一画像１８のエピ極点をｙ軸上の無限遠点に移すための射影変換である。
【００６７】
【数４】
2010220177.tif 000006
【００６８】
ここで、第一画像１８のエピ極点ｅが、当初から無限遠点にある場合（すなわちｅ3＝０のとき）、この第一の射影変換Ｈ2は、恒等変換となる。
一方、第一画像１８と同様、第二画像２０に対して、以下の式（４）で表される第一の射影変換Ｈ2’を実施する（ステップＳ１８参照）。なお、式（４）は、第二画像２０のエピ極点をｙ軸上の無限遠点に移すための射影変換である。
【００６９】
【数５】
2010220177.tif 000007
【００７０】
ここで、第二画像２０のエピ極点ｅ’が、当初から無限遠点にある場合（すなわちｅ3’＝０のとき）、この第一の射影変換Ｈ2’は、恒等変換となる。
第一の射影変換Ｈ2，Ｈ2’を実施すると、以下の式（５）で表されるように、第一画像１８のエピ極点ｅ及び第二画像２０のエピ極点ｅ’の第３成分が０になり、第一画像１８のエピ極点ｅ及び第二画像２０のエピ極点ｅ’が無限遠点に写像される。なお、式（５）は、第一画像１８及び第二画像２０の無限遠点に移動した後のエピ極点の座標である。
【００７１】
【数６】
2010220177.tif 000008
【００７２】
第一の射影変換Ｈ2，Ｈ2’を実施した後、第二画像２０に対して、以下の式（６）で表される第二の射影変換Ｈ3を実施する（ステップＳ２０参照）。なお、式（６）は、エピポーラ線の高さを揃えるための射影変換である。これは、非特許文献１の式（６）に相当する。
【００７３】
【数７】
2010220177.tif 000009
【００７４】
但し、式（６）に表れるパラメータａ，ｂ，ｃは、以下のようにして決定する。
まず、第二射影変換演算手段１６に対し、基礎行列Ｆ、平行移動Ｈ0、回転Ｈ1，Ｈ1’、第一の射影変換Ｈ2，Ｈ2’を入力する（ステップＳ３０参照）。
次に、第二射影変換演算手段１６に対し、未確定のパラメータａ，ｂ，ｃを含む、第二の射影変換行列Ｈ3を入力する（ステップＳ３２参照）。なお、第二の射影変換行列Ｈ3の形は、式（６）の通りである。
第二射影変換演算手段１６に対し、第二の射影変換行列Ｈ3を入力した後、以下の式（７）で表される変換を施した第二次基礎行列Ｆ’を計算する（ステップＳ３４参照）。なお、式（７）は、第一画像１８及び第二画像２０のエピ極点をｙ軸上に移動し、さらにｙ軸上の無限遠点に移動した後の画像に対応する基礎行列である。
【００７５】
【数８】
2010220177.tif 000010
【００７６】
式（７）に示すように、第二次基礎行列Ｆ’は、上述したように、９つの成分のうち５つの成分が０であり、具体的には、以下の式（８）のような形式をしている。なお、式（８）は、エピポーラ線がｙ軸に平行である場合の基礎行列の形式である。
【００７７】
【数９】
2010220177.tif 000011
【００７８】
第二次基礎行列Ｆ’を計算した後、この計算した第二次基礎行列Ｆ’に、以下の式（９）で表される変換を実施した、第三次基礎行列Ｆ”を計算する（ステップＳ３６参照）。なお、式（９）は、第二画像２０にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列である。
【００７９】
【数１０】
2010220177.tif 000012
【００８０】
第三次基礎行列Ｆ”は、上述したように、非ゼロの成分は２つのみであり、その非ゼロの２つの成分は、絶対値が同じで符号が反対という関係にある。具体的には、第三次基礎行列Ｆ”の形式は、以下の式（１０）で表される。なお、式（１０）は、エピポーラ線がｙ軸に平行で、さらに、第一画像１８及び第二画像２０の対応するエピポーラ線の高さが揃っている場合の基礎行列の形式である。
【００８１】
【数１１】
2010220177.tif 000013
【００８２】
ここで、第二の射影変換Ｈ3の逆行列は、以下の式（１１）で表される。なお、式（１１）は、上記の式（６）の逆行列の成分表示である。
【００８３】
【数１２】
2010220177.tif 000014
【００８４】
したがって、第二次基礎行列Ｆ’と第二の射影変換Ｈ3の逆行列に基づく、Ｆ’Ｈ3-1を成分表示すると、以下の式（１２）のようになる。なお、式（１２）は、上記の式（９）の成分表示である。
【００８５】
【数１３】
2010220177.tif 000015
【００８６】
式（１２）の形式は、式（１０）の形式であるため、未確定のパラメータａ，ｂ，ｃに関する３元連立一次方程式は、以下の式（１３）のようになる。なお、式（１３）は、上記の式（６）に示す未確定のパラメータを決定する連立方程式である。
【００８７】
【数１４】
2010220177.tif 000016
【００８８】
この式（１３）を解くことにより、未確定のパラメータａ，ｂ，ｃを一意に決定することが可能となるため、第二の射影変換Ｈ3が決定される。
第二の射影変換Ｈ3を決定した後、第一画像１８に合成射影変換Ｈ2Ｈ1を実施するとともに、第二画像２０に合成射影変換Ｈ3Ｈ2’Ｈ1’を実施することによって、平行化を完了する（ステップＳ２２参照）。
なお、式（６）で表される第二の射影変換Ｈ3は、第一画像１８に対して実施することも可能であり、この場合は、上記の式（１２）が、以下の式（１４）に変わる。なお、式（１４）は、第一画像１８にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列とその成分表示である。
【００８９】
【数１５】
2010220177.tif 000017
【００９０】
この場合、上記と同様に、上記の式（１３）が、以下の式（１５）に変わる。そして、式（１５）で表される線形連立方程式を解くことにより、未確定のパラメータａ，ｂ，ｃを一意に決定することが可能となるため、第二の射影変換Ｈ3が決定される。なお、式（１５）は、上記の式（６）に示す未確定のパラメータを決定する連立方程式である。
【００９１】
【数１６】
2010220177.tif 000018
【００９２】
なお、以上説明した、座標軸として、座標原点を画面の中心、垂直方向上向きにｘ軸の正方向、水平方向右向きにｙ軸の正方向をとった場合の画像平行化では、第一画像１８及び第二画像２０に合成射影変換を実施する際の処理が、上述したステップＳ２２とは若干異なる。
この場合、具体的には、ステップＳ２２と異なり、第一画像１８に合成射影変換Ｈ3Ｈ2Ｈ1を実施し、第二画像２０に合成射影変換Ｈ2’Ｈ1’を実施することによって、平行化を完了する。
【００９３】
（動作例２：座標軸として、座標原点を画面の左上、水平方向右向きにｘ軸の正方向、垂直方向下向きにｙ軸の正方向）
ところで、上述した、座標軸として、座標原点を画面の中心、垂直方向上向きにｘ軸の正方向、水平方向右向きにｙ軸の正方向をとった場合では、座標軸のとり方が、実際の二次元グラフィックス処理でよく用いられる座標軸の取り方とは異なっている。このため、実用上では使いづらい。
【００９４】
したがって、以下に、座標軸として、座標原点を画面の左上、水平方向右向きにｘ軸の正方向、垂直方向下向きにｙ軸の正方向をとった場合における、画像平行化の動作について説明する。これは、実際の二次元グラフィックス処理でよく用いられる座標系を基にした画像平行化の具体的な方法である。
画像平行化の動作を開始すると、三次元画像生成手段６に対し、ステレオ画像対となる第一画像１８及び第二画像２０と、第一画像１８と第二画像２０との関係を表す基礎行列Ｆを入力する（ステップＳ１０参照）。
【００９５】
次に、基礎行列Ｆに基づいて、第一画像１８のエピ極点ｅと、第二画像２０のエピ極点ｅ’を演算する（ステップＳ１４参照）。
ここで、基礎行列Ｆは、上記の座標軸で表現された基礎行列であるとする。また、第一画像１８のエピ極点ｅは、ＦＦTの最小固有値に対応する単位固有ベクトルである。また、第二画像２０のエピ極点ｅ’は、ＦTＦの最小固有値に対応する単位固有ベクトルである。
【００９６】
第一画像１８のエピ極点ｅと、第二画像２０のエピ極点ｅ’を演算した後、第一画像１８と第二画像２０に対し、以下の手順を用いて、座標の原点を、それぞれの画像の中心へ移動させる（ステップＳ１２参照）。
まず、第一画像１８及び第二画像２０の幅をｗとし、第一画像１８及び第二画像２０の高さをｈとする。そして、第一画像１８のエピ極点ｅに対して、第一画像１８の原点を、それぞれの画像の中心（ｗ／２，ｈ／２）に移動するための平行移動Ｈ0を実施する。この変換は、以下の式（１６）で表される。なお、式（１６）は、第一画像１８の原点を、第一画像１８の中心に移動するための平行移動である。
【００９７】
【数１７】
2010220177.tif 000019
【００９８】
同様に、第二画像２０のエピ極点ｅ’に対して、第二画像２０の原点を、第二画像２０の中心（ｗ／２，ｈ／２）に移動するための平行移動Ｈ0を実施する。この変換は、以下の式（１７）で表される。なお、式（１７）は、第二画像２０の原点を、第二画像２０の中心に移動するための平行移動である。
【００９９】
【数１８】
2010220177.tif 000020
【０１００】
第一画像１８のエピ極点ｅ及び第二画像２０のエピ極点ｅ’に対して、平行移動Ｈ0を実施した後、第一画像１８の原点を移動したエピ極点Ｈ0ｅ＝（ｅ1，ｅ2，ｅ3）Tに対して、以下の式（１８）で表される回転Ｈ1を実施する（ステップＳ１６参照）。なお、式（１８）は、第一画像１８の原点を移動したエピ極点Ｈ0ｅをｘ軸（水平軸）上に移すための回転である。
【０１０１】
【数１９】
2010220177.tif 000021
【０１０２】
式（１８）で表される回転Ｈ1を実施することにより、第一画像１８の原点を移動したエピ極点Ｈ0ｅは、第一画像１８の中心を通り、ｘ軸（水平軸）に平行な直線上に移る。
同様に、第二画像２０の原点を移動したエピ極点Ｈ0ｅ’＝（ｅ1’，ｅ2’，ｅ3’）Tに対して、以下の式（１９）で表される回転Ｈ1’を実施する（ステップＳ１６参照）。なお、式（１９）は、第二画像２０の原点を移動したエピ極点Ｈ0ｅ’をｘ軸（水平軸）上に移すための回転である。
【０１０３】
【数２０】
2010220177.tif 000022
【０１０４】
第一画像１８の原点を移動したエピ極点Ｈ0ｅに対して回転Ｈ1を実施するとともに、第二画像２０の原点を移動したエピ極点Ｈ0ｅ’に対して回転Ｈ1’を実施した後、第一画像１８に対して、以下の式（２０）で表される第一の射影変換Ｈ2を実施する（ステップＳ１８参照）。なお、式（２０）は、第一画像１８の原点を移動したエピ極点Ｈ0ｅを、ｘ軸上の無限遠点に移すための射影変換である。
【０１０５】
【数２１】
2010220177.tif 000023
【０１０６】
ここで、第一画像１８の原点を移動したエピ極点Ｈ0ｅが、当初から無限遠点にある場合（すなわちｅ3＝０のとき）、この第一の射影変換Ｈ2は、恒等変換となる。
一方、第一画像１８と同様、第二画像２０に対して、以下の式（２１）で表される第一の射影変換Ｈ2’を実施する（ステップＳ１８参照）。なお、式（２１）は、第二画像２０の原点を移動したエピ極点Ｈ0ｅ’を、ｘ軸上の無限遠点に移すための射影変換である。
【０１０７】
【数２２】
2010220177.tif 000024
【０１０８】
ここで、第二画像２０の原点を移動したエピ極点Ｈ0ｅ’が、当初から無限遠点にある場合（すなわちｅ3’＝０のとき）、この第一の射影変換Ｈ2’は、恒等変換となる。
第一の射影変換Ｈ2，Ｈ2’を実施すると、以下の式（２２）で表されるように、第一画像１８の原点を移動したエピ極点Ｈ0ｅ及び第二画像２０の原点を移動したエピ極点Ｈ0ｅ’の第３成分が０になる。これにより、第一画像１８の原点を移動したエピ極点Ｈ0ｅ及び第二画像２０の原点を移動したエピ極点Ｈ0ｅ’が無限遠点に写像される。なお、式（２２）は、第一画像１８及び第二画像２０の無限遠点に移動した後のエピ極点の座標である。
【０１０９】
【数２３】
2010220177.tif 000025
【０１１０】
第一の射影変換Ｈ2，Ｈ2’を実施した後、第二画像２０に対して、以下の式（２３）で表される第二の射影変換Ｈ3を実施する（ステップＳ２０参照）。なお、式（２３）は、エピポーラ線の高さを揃えるための射影変換である。これは、非特許文献１の式（６）に相当する。
【０１１１】
【数２４】
2010220177.tif 000026
【０１１２】
但し、式（２３）に表れるパラメータａ，ｂ，ｃは、以下のようにして決定する。
まず、第二射影変換演算手段１６に対し、基礎行列Ｆ、平行移動Ｈ0、回転Ｈ1，Ｈ1’、第一の射影変換Ｈ2，Ｈ2’を入力する（ステップＳ３０参照）。
次に、第二射影変換演算手段１６に対し、未確定のパラメータａ，ｂ，ｃを含む、第二の射影変換行列Ｈ3を入力する（ステップＳ３２参照）。なお、第二の射影変換行列Ｈ3の形は、式（２３）の通りである。
第二射影変換演算手段１６に対し、第二の射影変換行列Ｈ3を入力した後、以下の式（２４）で表される変換を施した第二次基礎行列Ｆ’を計算する（ステップＳ３４参照）。なお、式（２４）は、第一画像１８及び第二画像２０のエピ極点をｘ軸上に移動し、さらにｘ軸上の無限遠点に移動した後の画像に対応する基礎行列である。
【０１１３】
【数２５】
2010220177.tif 000027
【０１１４】
式（２４）に示すように、第二次基礎行列Ｆ’は、上述したように、９つの成分のうち５つの成分が０であり、具体的には、以下の式（２５）のような形式をしている。なお、式（２５）は、エピポーラ線がｘ軸に平行である場合の基礎行列の形式である。
【０１１５】
【数２６】
2010220177.tif 000028
【０１１６】
第二次基礎行列Ｆ’を計算した後、この計算した第二次基礎行列Ｆ’に、以下の式（２６）で表される変換を実施した、第三次基礎行列Ｆ”を計算する（ステップＳ３６参照）。なお、式（２６）は、第二画像２０にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列である。
【０１１７】
【数２７】
2010220177.tif 000029
【０１１８】
第三次基礎行列Ｆ”は、上述したように、非ゼロの成分は２つのみであり、その非ゼロの２つの成分は、絶対値が同じで符号が反対という関係にある。具体的には、第三次基礎行列Ｆ”の形式は、以下の式（２７）で表される。なお、式（２７）は、エピポーラ線がｙ軸に平行で、さらに、第一画像１８及び第二画像２０の対応するエピポーラ線の高さが揃っている場合の基礎行列の形式である。
【０１１９】
【数２８】
2010220177.tif 000030
【０１２０】
ここで、第二の射影変換Ｈ3の逆行列は、以下の式（２８）で表される。なお、式（２８）は、上記の式（２３）の逆行列の成分表示である。
【０１２１】
【数２９】
2010220177.tif 000031
【０１２２】
したがって、第二次基礎行列Ｆ’と第二の射影変換Ｈ3の逆行列に基づく、Ｆ’Ｈ3-1を成分表示すると、以下の式（２９）のようになる。なお、式（２９）は、上記の式（２６）の成分表示である。
【０１２３】
【数３０】
2010220177.tif 000032
【０１２４】
式（２９）の形式は、式（２７）の形式であるため、未確定のパラメータａ，ｂ，ｃに関する３元連立一次方程式は、以下の式（３０）のようになる。なお、式（３０）は、上記の式（２３）に示す未確定のパラメータを決定する連立方程式である。
【０１２５】
【数３１】
2010220177.tif 000033
【０１２６】
この式（３０）を解くことにより、未確定のパラメータａ，ｂ，ｃを一意に決定することが可能となるため、第二の射影変換Ｈ3が決定される。
第二の射影変換Ｈ3を決定した後、第一画像１８に合成射影変換Ｈ0-1Ｈ2Ｈ1Ｈ0を実施するとともに、第二画像２０に合成射影変換Ｈ0-1Ｈ3Ｈ2’Ｈ1’Ｈ0を実施することによって、平行化を完了する（ステップＳ２２参照）。
なお、式（２８）で表される第二の射影変換Ｈ3は、第一画像１８に対して実施することも可能であり、この場合は、上記の式（２９）が、以下の式（３１）に変わる。なお、式（３１）は、第一画像１８にエピポーラ線の高さを揃えるための射影変換をさらに施したときの基礎行列とその成分表示である。
【０１２７】
【数３２】
2010220177.tif 000034
【０１２８】
この場合、上記と同様に、上記の式（３０）が、以下の式（３２）に変わる。そして、式（３２）で表される線形連立方程式を解くことにより、未確定のパラメータａ，ｂ，ｃを一意に決定することが可能となるため、第二の射影変換Ｈ3が決定される。なお、式（３２）は、上記の式（２３）に示す未確定のパラメータを決定する連立方程式である。
【０１２９】
【数３３】
2010220177.tif 000035
【０１３０】
なお、以上説明した、座標軸として、座標原点を画面の左上、水平方向右向きにｘ軸の正方向、垂直方向下向きにｙ軸の正方向をとった場合の画像平行化では、第一画像１８及び第二画像２０に合成射影変換を実施する際の処理が、上述したステップＳ２２とは若干異なる。
この場合、具体的には、ステップＳ２２と異なり、第一画像１８に合成射影変換Ｈ0-1Ｈ3Ｈ2Ｈ1Ｈ0を実施し、第二画像２０に合成射影変換Ｈ0-1Ｈ2’Ｈ1’Ｈ0を実施することによって、平行化を完了する。
【０１３１】
以上説明したように、上記の各数式は、第二の射影変換行列Ｈ3を実施する対象を、第一画像１８とした場合と、第二画像２０とした場合により、式の形が変わる。しかしながら、本実施形態の発明は、第二の射影変換行列Ｈ3を実施する対象を、第一画像１８とした場合と、第二画像２０とした場合の両方を含むものである。
なお、上述したように、本実施形態のステレオ画像処理装置１の動作で実施するステレオ画像処理方法は、第二射影変換演算ステップにおいて、第一画像または第二画像に対し、予め演算した基礎行列と、回転演算ステップで演算した回転と、第一射影変換演算ステップで演算した第一の射影変換に基づいて、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する方法である。
【０１３２】
（第一実施形態の効果）
以下、本実施形態の効果を列挙する。
（１）本実施形態のステレオ画像処理装置１では、第二射影変換演算手段が、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算手段が演算した回転と、第一射影変換演算手段が演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、誤差を含まない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して行うことにより、厳密な仮想平行等位を実現することが可能となる。
その結果、最も三次元構造を復元しやすいカメラ配置である仮想的な平行等位を、厳密に実現することが可能となるため、二つのカメラで撮影したステレオ画像対から、撮影した撮影対象の三次元構造を、精度良く復元することが可能となる。
【０１３３】
（２）本実施形態のステレオ画像処理方法では、第二射影変換演算ステップにおいて、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、回転演算ステップで演算した回転と、第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して行うことにより、厳密な仮想平行等位を実現することが可能となる。
その結果、最も三次元構造を復元しやすいカメラ配置である仮想的な平行等位を、厳密に実現することが可能となるため、二つのカメラで撮影したステレオ画像対から、撮影した撮影対象の三次元構造を、精度良く復元することが可能となる。
【０１３４】
（３）本実施形態のステレオ画像処理プログラムでは、第二射影変換演算ステップをコンピュータに実行させることにより、第一画像または第二画像に対し、エピポーラ線の高さが第一画像と第二画像で揃うような第二の射影変換を演算する。この演算は、予め演算した基礎行列と、コンピュータに実行させる回転演算ステップで演算した回転と、コンピュータに実行させる第一射影変換演算ステップで演算した第一の射影変換に基づいて行う。
【０１３５】
このため、第二の射影変換を、対応が既知である特徴点と比較して誤差の少ない座標を用いて演算することが可能となり、この演算した第二の射影変換を、第一画像または第二画像に対して行うことにより、厳密な仮想平行等位を実現することが可能となる。
その結果、最も三次元構造を復元しやすいカメラ配置である仮想的な平行等位を、厳密に実現することが可能となるため、二つのカメラで撮影したステレオ画像対から、撮影した撮影対象の三次元構造を、精度良く復元することが可能となる。
【０１３６】
（応用例）
以下、本実施形態の応用例を列挙する。
（１）本実施形態のステレオ画像処理装置１では、第二射影変換演算手段１６による第二の射影変換Ｈ3の演算を、撮影対象Ｐに対して、所望の第一画像１８及び第二画像２０を撮影可能な位置に、最初に第一カメラ２及び第二カメラ４を配置した状態で行ったが、これに限定するものではない。すなわち、例えば、第二射影変換演算手段１６による第二の射影変換Ｈ3の演算を、最初に第一カメラ２及び第二カメラ４を配置した状態から、経時的な変化等により、撮影対象Ｐに対する第一カメラ２及び第二カメラ４の位置が変化して、所望の第一画像１８及び第二画像２０が撮影不可能となった場合に行ってもよい。この場合、撮影対象Ｐに対する第一カメラ２及び第二カメラ４の位置を、所望の第一画像１８及び第二画像２０を撮影可能な位置に修正した状態で行う。これは、例えば、三次元画像生成手段６に対し、データの書き換えのみで行ってもよい。
また、第二射影変換演算手段１６による第二の射影変換Ｈ3の演算は、例えば、一週間毎等、所定の間隔毎に行ってもよい。
【０１３７】
（２）本実施形態のステレオ画像処理装置１では、三次元画像の生成対象とする撮影対象Ｐを、定位置に置いた構造模型等の立体物としたが、撮影対象Ｐは、これに限定するものではない。すなわち、撮影対象Ｐを、例えば、野外における縦横数十ｍ程度の範囲としてもよい。
この場合、従来では、野外の観測位置に移動した人間が肉眼で行っていた、距離の長短を確認する必要がある観測を、厳密な仮想平行等位を実現可能なステレオ画像処理装置１を用いて行うことが可能となる。
【０１３８】
一例として、撮影対象を、噴火が予測される火山の火口及びその周辺を含む範囲とし、野外において観測に有利な開豁した地形へ移動した観測者が、火口の観測を行うことにより、噴火の予測を行う状況を考える。この場合、従来では、観測者による火口の観測は、観測者の危険性が高いが、本実施形態のステレオ画像処理装置１を用いることにより、火口の観測を人間が行う必要が無いため、危険性を大幅に低減させることが可能となるとともに、撮影した火口の状況を、精度良く復元することが可能となる。
【０１３９】
その他の例としては、撮影対象を、砲弾の着弾目標（敵陣地等）及びその周辺を含む範囲とし、野外において観測に有利な開豁した地形へ移動した観測者が、着弾目標に対する弾着の観測を行うことにより、射撃毎に照準の補正を行う兵器（迫撃砲等）を考える。この場合、従来では、観測者による弾着の観測は、観測者の危険性が高いが、本実施形態のステレオ画像処理装置１を用いることにより、弾着の観測を人間が行う必要が無いため、危険性を大幅に低減させることが可能となるとともに、撮影した弾着の状況を、精度良く復元することが可能となる。
なお、これらの応用例（１）及び（２）は、ステレオ画像処理方法及びステレオ画像処理プログラムに関しても、同様である。
【産業上の利用可能性】
【０１４０】
本発明のステレオ画像処理装置、ステレオ画像処理方法及びステレオ画像処理プログラムは、ステレオ画像処理の前処理としてステレオ画像を平行化してステレオマッチング処理を単純化する分野において、好適に利用することが可能である。
【符号の説明】
【０１４１】
１    ステレオ画像処理装置
２    第一カメラ
４    第二カメラ
６    三次元画像生成手段
８    三次元画像後処理手段
１０  エピ極点演算手段
１２  回転演算手段
１４  第一射影変換演算手段
１６  第二射影変換演算手段
１８  第一画像
２０  第二画像
Ｐ    撮影対象
Ｈ0    平行移動
Ｈ1，Ｈ1’  回転
Ｈ2，Ｈ2’  第一の射影変換
Ｈ3  第二の射影変換
【図１】
2010220177.tif 000036
【図２】
2010220177.tif 000037
【図３】
2010220177.tif 000038
【図４】
2010220177.tif 000039
【図５】
2010220177.tif 000040
【図６】
2010220177.tif 000041
【図７】
2010220177.tif 000042