ステレオカメラ装置、ステレオカメラシステム、プログラム
【課題】2台のカメラで撮像した撮像画像の対応付けを容易にする。
【解決手段】2台のカメラ1、2は、光軸を平行にして配置される。カメラ1、2が撮像した撮像画像の画素の位置は、受光面に規定した2次元の直交座標である第1座標系で表される。また、実空間の点の位置は、カメラ1、2の光学中心を結ぶ第1方向と、カメラごとの光軸の方向である第2方向と、第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって表される。演算処理部10は、撮像画像を第1方向の軸周りの角度と第2方向の軸周りの角度とで位置が表される第1変換画像に変換する第1変換部101と、撮像画像を第1方向の軸周りの角度と第3方向の軸周りの角度とで位置が表される第2変換画像に変換する第2変換部102と、第1変換画像および第2変換画像を用いて視差を求める視差推定部103とを備える。
【解決手段】2台のカメラ1、2は、光軸を平行にして配置される。カメラ1、2が撮像した撮像画像の画素の位置は、受光面に規定した2次元の直交座標である第1座標系で表される。また、実空間の点の位置は、カメラ1、2の光学中心を結ぶ第1方向と、カメラごとの光軸の方向である第2方向と、第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって表される。演算処理部10は、撮像画像を第1方向の軸周りの角度と第2方向の軸周りの角度とで位置が表される第1変換画像に変換する第1変換部101と、撮像画像を第1方向の軸周りの角度と第3方向の軸周りの角度とで位置が表される第2変換画像に変換する第2変換部102と、第1変換画像および第2変換画像を用いて視差を求める視差推定部103とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数台のカメラで撮像した画像を用いて三角測量の原理により空間の3次元情報を取得するステレオカメラ装置と、ステレオカメラ装置を用いて構成されるステレオカメラシステムと、コンピュータを用いてステレオカメラ装置を構成するプログラムに関するものであって、とくに2台のカメラの撮像画像から視差を求める技術に関するものである。
【背景技術】
【0002】
従来から、空間の3次元情報を取得する技術としてステレオビジョンが知られている。ステレオビジョンは、複数台のカメラを用いて実空間を撮像した画像に、三角測量の原理を適用することにより、3次元の実空間における着目する部位までの距離を計測する技術である。すなわち、ステレオビジョンでは、視野の少なくとも一部が重複するように配置された複数台のカメラを用いて3次元の実空間が撮像される。そして、実空間において着目する部位の像が各カメラの撮像素子上に形成されている場合、実空間における光学中心から着目する部位への方向と、カメラ同士の相対位置、姿勢とを用いて三角測量の原理により、実空間において着目する部位までの距離が計測される。
【0003】
ここで、2台のカメラで撮像した画像(以下、「撮像画像」という)に注目する。2枚の撮像画像から着目する部位までの距離を計測するには、2台のカメラの光学中心を結ぶ線分の長さ(以下、「ベースライン長」という)と、2枚の撮像画像の中で、実空間において着目する部位に対応する像の位置のずれの距離との情報が必要である。像の位置のずれの距離は、実空間において着目する部位を2台のカメラから見込んだときの視差であって、2枚の撮像画像にそれぞれ規定した基準位置からの距離差を用いる。
【0004】
撮像画像から視差を求めるには、撮像画像の中で実空間において着目する部位に対応する像の位置を探し出す必要がある。すなわち、2台のカメラで撮像された2枚の撮像画像において同部位に対応する対応点を特定する必要がある。2枚の撮像画像から対応点を探索する処理をステレオマッチングと呼んでいる。ステレオマッチングにおいて撮像画像上で対応点を探索する範囲は、2台のカメラの光学中心と実空間において着目する部位とを結ぶエピポーラ平面を考えると、撮像画像にエピポーラ平面を投影した線上に限定することができる。
【0005】
ステレオビジョンでは、多くの場合、2台のカメラが、光軸を平行にし、かつ両カメラの光学中心を結ぶ直線(以下、「ベースライン」という)を両光軸に直交させて配置された平行ステレオ法が採用されている。以下では、ベースラインの方向を各カメラが撮像した撮像画像の水平方向に一致させた平行ステレオ法を、単に平行ステレオ法と呼ぶ。
【0006】
ここで、撮像画像にはカメラに設けた光学系(レンズなど)による歪みがないと仮定する。この場合、図19に示すように、実空間において着目する部位P1に対応して形成されるエピポーラ平面403を各撮像画像401、402に投影した線は、撮像画像401、402の水平方向に平行な直線になる。以下では、撮像画像401、402について、水平方向をx方向、垂直方向をy方向とする。つまり、x方向はベースライン404と平行になる。したがって、エピポーラ平面403を撮像画像401、402に投影して得られる直線はx方向に平行であって、y方向の座標値は一定になる。
【0007】
つまり、一方の撮像画像401の中に実空間の部位P1に対応する像G1があるとき、他方の撮像画像402の中で部位P1に対応する像D1の探索範囲は、y方向の座標値が像G1と同じになる水平方向の直線上に限定される。たとえば、図19において、像G1は一方のカメラの光学中心O1と像G1とを通る直線405に対応するから、この直線405の上の部位P1、P2、P3などは像G1に対応する。これに対して、他方のカメラの光学中心O2と部位P1、P2、P3とを通る直線は、撮像画像402における像D1、D2、D3に対応する。ここに、像G1と像D1、D2、D3とはy方向の座標値が一致する。
【0008】
上述したように、平行ステレオ法でのステレオマッチングでは、実空間において着目する部位は、各カメラの撮像画像において、垂直方向の同じ位置に対応することになる。つまり、2台のカメラが実空間の同じ部位を撮像していると、撮像画像内で当該部位に対応する画素の位置は、水平方向については撮像画像ごとに異なるが、垂直方向については両撮像画像で一致する。つまり、平行ステレオ法では、両カメラで得られた撮像画像について実空間の同じ部位に対応する点を、撮像画像の水平方向についてのみ探索すればよく、ステレオマッチングの処理効率がよいという利点を有している。
【0009】
ところで、上述した平行ステレオ法の技術は、カメラの光学系に歪みがないという仮定を設定している。したがって、上述のようにステレオマッチングにおいて高い処理効率が得られるのは、カメラの光学系の歪みの影響を考慮しなくてもよい程度に視野角が小さいか、光学系に歪みがあっても補正すれば歪みの影響を除去できる場合に限られる。言い換えると、視野角を広げるために魚眼レンズのように歪みの大きい光学系をカメラに用いると、ステレオマッチングにおける処理負荷が大幅に増加するという問題が生じる。
【0010】
一般に魚眼レンズのように視野角の広い光学系を用いて撮像した画像は、画像の周辺に近付くほど湾曲の程度が大きくなる湾曲歪みが生じるから、ステレオマッチングの際には画像の湾曲歪みを考慮して対応点を探索することが必要になる。すなわち、対応点を探索する際に、x方向とy方向との両方の座標値を変化させるから、対応点を探索する際の処理効率が低い上に、対応付けを誤る可能性が高くなる。その結果、距離の計測を誤ることになり、計測性能の低下につながるという問題が生じる。
【0011】
そこで、上述した問題を解決するために、エピポーラ平面が画像内の一直線上に投影されるように撮像画像に対する座標変換を行った変換画像を生成し、変換画像を用いてステレオマッチングを行う技術が提案されている。変換画像は、エピポーラ平面が横軸に平行な直線になるように座標軸が選択される(たとえば、特許文献1、特許文献2、非特許文献1参照)。
【0012】
これらの文献に記載された技術では、視野角の広い画像から視差を効率よく推定するために、図20に示すように、ベースライン404の方向(x方向)の軸周りの角度βを変換画像の垂直方向の軸に対応付けている。このような変換画像を用いると、3次元の実空間における部位P1が2枚の撮像画像401、402において同じ角度βに対応付けられるので、平行ステレオ法と同様に、対応点の探索が容易になり、視差を効率よく推定することができる。なお、図20の半球は光学系を示している。
【0013】
一方、変換画像の水平方向の軸については、特許文献1、非特許文献1では、図21に示すように、エピポーラ平面403内における角度γを用いている。この角度γは、カメラの受光面における垂直方向(y方向)と光軸の方向(z方向)とで規定される平面(yz平面)に対して、着目する部位P1とカメラの光学中心Oとを結ぶ直線の間の角度である。
【0014】
また、特許文献2では、図22に示すように、撮像画像の垂直方向(ベースライン404の方向と光軸の方向とに直交する方向)の軸周りの角度αの正接tanαを変換画像の水平方向の軸に用いている。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2007−24647号公報
【特許文献2】特開2009−139246号公報
【非特許文献】
【0016】
【非特許文献1】Fish-Eye-Stereo Calibration and Epipolar Rectification, Abraham, S. Forstner,W. International Journal of Photogrammetry and Remote Sensing, Vol.59,Issue5, August 2005
【発明の概要】
【発明が解決しようとする課題】
【0017】
ところで、実空間の3次元情報を取得する技術を用いることにより室内の人の動きを検出すると、室内の負荷機器の制御などに用いることができる。たとえば、空調負荷であれば、室内で人が存在する場所を特定することによって、冷気や暖気を人の存在する場所に集中的に流すことが可能になる。また、映像を表示する負荷機器であれば、人の存在する場所に応じて向きを変えたり、表示のサイズを変えたりすることが可能になる。
【0018】
負荷機器を制御する場合に限らず、室内の3次元情報を得ようとする場合には、全体を視野とし、しかも人や物体によって視野が妨げられないようにするために、たとえば、カメラの光軸を鉛直下向きにして天井の中央付近に設置することが望ましい。この配置を採用すると、撮像画像の中心部では、床面や床上に存在する物体のように水平方向の情報が多く得られ、撮像画像の周辺部では、壁面や柱のように鉛直方向の情報が多く得られることになる。
【0019】
一方、上述した特許文献1、特許文献2、非特許文献1に記載された技術を採用すると、視野角の広い光学系を採用したことによる撮像画像の歪みの影響を軽減することが可能である。しかしながら、依然として撮像画像の歪みが十分に解消されることはない。
【0020】
たとえば、図23(a)のように光軸(z方向)に平行な直線L1を撮像すると、変換画像では図23(b)のように歪んだ曲線L2として撮像される。図23は特許文献1に対応する例であって、変換画像は、角度γが水平方向の軸に対応付け、角度βが垂直方向の軸に対応付けられている。したがって、特許文献1に記載された技術では、直線L1がβ=γの関係を満たす場合を除いて、変換画像では直線L1が曲線L2に変換されることになる。特許文献2、非特許文献1に記載された変換画像についても同様であって、変換画像には歪みが生じる。
【0021】
ここに、図23(b)によれば、変換画像の中心部は直線性が比較的よいが、周辺部では直線性が低下しており、このことから変換画像の周辺部に存在する壁や柱のような鉛直方向の部材については、対応点を探索する処理の効率が低下することになる。
【0022】
しかも、図24に示すように、2枚の撮像画像からそれぞれ得られる変換画像は、同じ直線L1(図23参照)を撮像しても、異なる形状の曲線L21、L22に変換されるから、2枚の変換画像から対応点を探し出すのは容易ではない。結局、特許文献1、特許文献2、非特許文献1の技術のいずれを採用したとしても、対応点を探索する処理は容易ではない。
【0023】
本発明は、複数台のカメラで撮像した撮像画像における対応点の探索を従来よりも容易にしたステレオカメラ装置、ステレオカメラシステム、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0024】
本発明に係るステレオカメラ装置は、上記目的を達成するために、光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラと、カメラがそれぞれ撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求める演算処理部とを備え、撮像画像における画素の位置がカメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台のカメラから選択される2台のカメラの光学中心を結ぶ第1方向とカメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるようにカメラごとに規定された第2座標系とを用い、演算処理部は、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、第1変換画像および第2変換画像を用いて前記2台のカメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備えることを特徴とする。
【0025】
このステレオカメラ装置において、視差推定部は、前記2台のカメラごとに撮像した前記画像からそれぞれ生成される2枚の第1変換画像における対応点を抽出することにより前記部位に対する視差を求めるとともに当該対応点の一致度を評価し、カメラごとに撮像した画像を用いてそれぞれ生成される2枚の第2変換画像における対応点を抽出することにより部位に対する視差を求めるとともに当該対応点の一致度を評価し、第1変換画像と第2変換画像との画素ごとに求めた視差のうち前記部位が同じである画素については、一致度が高いほうの視差を当該部位の視差として採用することが好ましい。
【0026】
このステレオカメラ装置において、第1変換画像と第2変換画像との両方について着目する画素ごとに周囲の輝度値の変化に関する評価値を求め、評価値の差が規定の閾値を超える場合は第1変換画像と第2変換画像とのうち輝度値の変化が大きいほうを当該画素の対応点の抽出に用い、評価値の差が閾値未満の場合に第1変換画像と第2変換画像との両方を当該画素の対応点の抽出に用いるように条件を定める領域評価部が付加され、視差推定部は、領域評価部が定めた条件に従って画素ごとに対応点を抽出することが好ましい。
【0027】
このステレオカメラ装置において、第1変換部および第2変換部は、第1変換画像と第2変換画像とについて、第1変換画像と第2変換画像との一方を用いて対応点を抽出する第1の領域と、第1変換画像と第2変換画像との両方を用いて対応点を抽出する第2の領域とのうち、少なくとも第1の領域をあらかじめ与えられた条件に従って定める機能を有することが好ましい。
【0028】
本発明に係るステレオカメラシステムは、請求項1〜4のいずれか1項に記載のステレオカメラ装置を2組備え、ステレオカメラ装置ごとに設けられた前記2台ずつのカメラが、第1方向を互いに交差させるとともにカメラの光軸を平行にして配置され、ステレオカメラ装置ごとに設けられた視差推定部が推定した視差のうち信頼性の高いほうの視差を選択する選択処理部を備えることを特徴とする。
【0029】
このステレオカメラシステムにおいて、ステレオカメラ装置ごとに設けられた前記2台ずつのカメラのうち各1台が共用されていることが好ましい。
【0030】
本発明に係るプログラムは、光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラが撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求めるステレオカメラ装置に用いられ、撮像画像における画素の位置がカメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台のカメラから選択される2台のカメラの光学中心を結ぶ第1方向とカメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるようにカメラごとに規定された第2座標系とを用い、コンピュータを、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、第1変換画像および第2変換画像を用いて前記2台のカメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備える演算処理部として機能させるものである。
【発明の効果】
【0031】
本発明の構成によれば、カメラを用いて撮像された画像について、光軸に平行な直線に歪みが生じないように座標変換を行った変換画像を用いるので、2台のカメラで撮像した画像の対応付けが容易になるという効果がある。
【図面の簡単な説明】
【0032】
【図1】実施形態1を示すブロック図である。
【図2】同上の原理説明図である。
【図3】同上に用いる座標系の関係を示す図である。
【図4】同上に用いる座標系の関係を示す図である。
【図5】同上における撮像画像の例を示す図である。
【図6】同上における第1変換画像の例を示す図である。
【図7】同上における第2変換画像の例を示す図である。
【図8】同上におけるブロックマッチングの説明図である。
【図9】同上におけるブロックマッチングの説明図である。
【図10】同上の動作の概要を示す図である。
【図11】実施形態2を示すブロック図である。
【図12】同上の動作説明図である。
【図13】同上による領域の区分例を示す図である。
【図14】実施形態3の領域を示す説明図である。
【図15】同上の領域を示す説明図である。
【図16】実施形態4を示すブロック図である。
【図17】実施形態5を示す概略構成図である。
【図18】同上のブロック図である。
【図19】ステレオビジョンの概念を説明する図である。
【図20】従来の技術を説明する図である。
【図21】同上に用いる座標系を示す図である。
【図22】同上に用いる座標系を示す図である。
【図23】同上の動作を説明する図である。
【図24】同上の動作を説明する図である。
【発明を実施するための形態】
【0033】
(実施形態1)
本実施形態は、図1に示すように、3次元の実空間に対する視野がほぼ重複するように配置された2台のカメラ1、2を備える。両カメラ1、2は、光軸を平行、かつ光学中心を結ぶ方向(ベースライン方向)と光軸を垂直にして配置される。各カメラ1、2は、画角が180度に近い魚眼レンズないし魚眼レンズに相当する機能を有した光学系を備える。光学系の射影方式はとくに問わないが、以下では等距離射影方式を用いて説明する。また、2台のカメラ1、2は、ベースライン方向と受光面における水平方向とを一致させるように配置される。すなわち、平行ステレオを想定する。
【0034】
また、以下では、3次元の実空間において、受光面の水平方向に沿う方向(つまり、ベースライン方向)をx方向、受光面の垂直方向に沿う方向をy方向とし、受光面に直交する方向をz方向とする。各カメラの撮像画像をモニタ装置に表示したときに、水平方向の右向きがx方向の正の向き、垂直方向の下向きがy方向の正の向きになるように座標系を定めている。z方向についてはカメラの受光面から遠ざかる向きを正の向きとする。
【0035】
カメラ1、2が撮像した撮像画像における画素の位置は、受光面の左上隅を原点とした2次元の直交座標系である第1座標系で表される。第1座標系は、画像の水平方向がx方向に沿っており、画像の垂直方向がy方向に沿うように設定され、座標位置は(u,v)で表される。
【0036】
また、実空間において着目する部位(たとえば、図2の点P1)を各カメラ1、2から見込む方向を規定するために、上述したx方向、y方向、z方向に平行な軸をカメラ1、2ごとに規定し、カメラ1、2ごとの光学中心を原点とする第2座標系が規定される。第2座標系はカメラ1、2ごとに規定され、z方向の軸は光軸に一致する。各カメラ1、2に規定された第2座標系の原点O1、O2から点P1を見込む方向は、3本の各軸周りのそれぞれの角度の組み合わせによって表される。以下では、x方向の軸周りの角度はβ、y方向の軸周りの角度はα、z方向の軸(光軸)周りの角度はφとする。
【0037】
各カメラ1、2が撮像した撮像画像のデータは、演算処理部10に入力される。本実施形態では、演算処理部10が濃淡画像を扱う例を説明するが、カラー画像を扱う場合も以下に説明する技術思想は適用可能である。演算処理部10は、ハードウェア資源としてのコンピュータを有し、コンピュータを以下に説明する処理を行う装置として機能させるためのプログラムを実行する。ただし、演算処理部10は専用のハードウェアを備える構成であってもよい。また、マイコンを備えるコンピュータのほか、DSP(Digital Signal Processor)、FPGA(Field-Programmable Gate Array)のようにプログラムを実行する機能を備えるデバイスを用いて構成してもよい。
【0038】
カメラ1と演算処理部10との間にはインターフェース3が設けられ、カメラ2と演算処理部10との間にはインターフェース4が設けられる。各インターフェース3、4は、カメラ1、2が撮像した撮像画像のデータを、それぞれ演算処理部10で処理するためのデータに変換する。インターフェース3、4は、たとえば、アナログ信号をデジタル信号に変換する機能を備える。
【0039】
演算処理部10を動作させるためのシステムプログラムおよびアプリケーションプログラムは記憶装置11に記憶され、演算処理部10の処理対象である撮像画像データや演算過程のデータは、データメモリおよび作業用メモリである記憶装置12に記憶される。記憶装置11は、フラッシュメモリやハードディスクドライブ装置のように、無給電で記憶内容が保持される記憶装置が用いられる。また、記憶装置11は、処理の実行時にシステムプログラムやアプリケーションプログラムを置くための主記憶として揮発性メモリも備える。記憶装置12は、とくに制限はないが、少なくとも一部は作業用に用いるための揮発性メモリが用いられる。
【0040】
本実施形態では、2台のカメラ1、2がそれぞれ撮像した撮像画像に基づいて実空間の3次元の情報を取得しなければならないから、演算処理部10は、2台のカメラ1、2が同時刻に撮像するようにインターフェース3、インターフェース4に対してトリガ信号を与え、同時刻に撮像された対になる撮像画像を記憶装置12に保存する。
【0041】
ところで、カメラ1、2の受光面上での位置は、左上隅を原点として水平方向と垂直方向との画素の個数で表される。画像上に投影された光軸上の点の座標を(uc,vc)とすると、(uc,vc)と任意の画素(u,v)との距離rは、数1で表される。
【0042】
【数1】
【0043】
また、カメラ1、2は魚眼レンズないし魚眼レンズに相当する機能を有する光学系を備えるから、3次元の実空間における1点がカメラ1、2の光学中心を中心とする半径1の球面上に射影されるモデルを用いることができる。カメラ1、2の光学系に歪みのない等距離射影方式の魚眼レンズを用いる場合を想定すると、図3のように実空間の点Pが球面SP上に射影された点Qと、カメラ1、2の光学中心(第2座標系の原点)とを結ぶ直線が、光学系の光軸となす角度θ[rad]は、距離rを用いて、数2で表される。
【0044】
【数2】
【0045】
ただし、数2において、距離L0は、3次元空間におけるZ=0上の点の画像PLへ投影した結果の円の半径を示す。点Rは点Qを画像PLへ投影した画素の位置を示す。
【0046】
実空間における1点が、撮像画像における位置(u,v)の画素に対応付けられるようにキャリブレーションが行われている場合を想定すると、モデルとして用いる球面上に実空間の1点を射影した点P1の位置(X,Y,Z)は、数3で表される。
【0047】
【数3】
【0048】
ところで、図4に示しているように、点P1の位置(X,Y,Z)は、画素の位置(u,v)に代えてx軸、y軸、z軸の3軸のうちの2軸の周りの角度の組み合わせとして表すことが可能である。上述したように、x軸周りの角度(yz平面内での角度)をβ、y軸周りの角度(zx平面内での角度)をα、z軸周りの角度(xy平面内での角度)をφとする。角度α、βはz軸を0度とし、角度φはy軸を0度とし、左回りに大きくなる。画素の位置(u,v)に代えて用いる角度の組み合わせは、(φ,β)と(α,β)との2種類を用いる。角度α,β,φへの変換式は、数3の計算結果を用いて数4で表される。
【0049】
【数4】
【0050】
演算処理部10は、2台のカメラ1、2がそれぞれ撮像した撮像画像内での画素の位置(u,v)を、上述した3次元の実空間における角度の組(φ,β)、(α,β)に変換した画像を生成するために第1変換部101および第2変換部102を備える。
【0051】
第1変換部101は、z軸(光軸)周りの角度φと、x軸周りの角度βとの組(φ,β)で位置が表される画像(以下、「第1変換画像」という)を出力する。また、第2変換部102は、y軸周りの角度αと、x軸周りの角度βとの組(α,β)で位置が表される画像(以下、「第2変換画像」という)を出力する。なお、第1変換部101において角度βを求めているから、第1変換部101による演算後に第2変換部102による演算を行う場合は、第2変換部102は第1変換部101から角度βを取得すればよい。
【0052】
第1変換画像の画素値および第2変換画像の画素値は、カメラ1、2の受光面上で、第1変換部101において求めた位置(φ,β)および第2変換部102において求めた位置(α,β)に対応する位置の画素値を用いる。すなわち、第1変換部101は、位置(φ,β)から位置(u,v)を求め、当該位置(u,v)の画素値を位置(φ,β)に対応付けた第1変換画像を生成する。また、第2変換部102は、位置(α,β)から位置(u,v)を求め、当該位置(u,v)の画素値を位置(α,β)に対応付けた第2変換画像を生成する。第1変換画像および第2変換画像を求めるには、すべての位置(φ,β)、(α,β)について画素値を求める処理を行う。
【0053】
図5のような撮像画像が得られている場合、第1変換画像は図6のようになり、第2変換画像は図7のようになる。図5は室内において天井面の中央部にカメラ1、2を配置することによって、室内の全体を撮像した場合の撮像画像を示している。カメラ1、2をこのように設置した場合、第1変換画像は、図6のように、縦方向(β方向)の両端部において鉛直方向に沿った壁面や柱などについて他の領域よりも歪みが少なくなる。また、第2変換画像は、図7のように、中央部において水平面に沿った床面や机の上面などについて他の領域よりも歪みが少なくなる。
【0054】
ところで、第1変換部101および第2変換部102が求めた位置(φ,β)、(α,β)から画素の位置(u,v)を求めても、多くの場合、1つの画素には対応しない。そのため、第1変換画像および第2変換画像の画素値を求めるには補間演算が必要である。補間演算には、バイリニア補間や最近傍法などの一般的なアルゴリズムを用いる。ここに、記憶装置12には濃淡画像が保存されるから、位置(u,v)の画素値は輝度値であって、第1変換画像および第2変換画像の画素値も輝度値になる。第1変換部101から出力される第1変換画像および第2変換部102から出力される第2変換画像は、記憶装置12に保存される。
【0055】
演算処理部10は、記憶装置12に保存された第1変換画像および第2変換画像を用いて、カメラ1、2の視差を推定する視差推定部103を備える。視差推定部103は、各カメラ1、2で撮像した撮像画像から得られた第1変換画像から視差を推定し、また第2変換画像から視差を推定する。さらに、2種類の方法で求めた視差を総合して最終的に視差を決定し、実空間の3次元情報の算出に利用する。
【0056】
視差推定部103は、2台のカメラ1、2で得られた2枚の第1変換画像から画素ごとの視差を推定し、推定した視差値を画素値に持つ1枚の画像(以下、「第1視差画像」という)を生成する。また、視差推定部103は、画素ごとの一致度を推定し、推定した一致度を画素値に持つ1枚の画像(以下、「第1一致度画像」という)を生成する。
【0057】
同様にして、視差推定部103は、2枚の第2変換画像から画素ごとの視差および一致度を推定し、推定した視差値を画素値に持つ1枚の画像(以下、「第2視差画像」)および推定した一致度を画素値に持つ1枚の画像(以下、「第2一致度画像」という)を生成する。視差推定部103は、視差の決定には、第1視差画像と第2視差画像とを用いる。
【0058】
第1変換画像は、画像の垂直方向の軸がx軸周りの角度βに対応し、画像の水平方向の軸がz軸(光軸)周りの角度φに対応する。平行ステレオであるから、図2に示すように、実空間における同一の点を2台のカメラ1、2で撮像したときに、第1変換画像における角度βの値は等しくなる。したがって、2枚の第1変換画像から対応点を推定するには、同じ角度βを有する範囲内のみを探索すればよい。このように、視差推定部103は、第1変換画像を用いることにより、対応点を推定するにあたって、探索範囲を狭めることができる。
【0059】
視差推定部103は、対応点か否かを評価するために、ブロックマッチングの技術を採用している。すなわち、図8(a)のように、一方の第1変換画像において対応点の評価を行おうとする部位の周囲に複数画素を含むウインドウW1が形成される。ウインドウW1は、対応点の評価を行おうとする画素の周囲で矩形領域として設定するのが望ましい。また、図8(b)のように、他方の第1変換画像には、ウインドウW1に対応する大きさの走査領域W2が形成され、走査領域W2が横軸(角度φの軸)に沿って走査される。上述したように、対応点の角度βは2枚の第1変換画像において等しいから、角度φのみを変化させて対応点が探索される。
【0060】
ここで、ウインドウW1の中心位置が(φL,βL)にあり、走査領域W2の中心位置が(φR,βR)にある場合に、ウインドウW1内の画素の相対位置(j,i)に対応する走査領域W2の画素の位置(j,i)について、画素値(輝度値)I1(φL+j,βL+i)、I2(φR+j,βR+i)の差分(絶対値)の総和であるSAD値Vsを求める。ただし、平行ステレオ法であるからβL=βRとなる。それぞれのウインドウ中心の相対位置を(0,0)とすると、SAD値Vsは数5で表される。ここで、ウインドウW1と走査領域W2との大きさは等しく(2m+1,2n+1)(m、nは0以上の任意の整数)となっているとする。なお、SADは、Sum of Absolute Differenceの意味である。
【0061】
【数5】
【0062】
走査領域W2を第1変換画像の横軸に沿って変位させると、図9に示すように、SAD値Vsが変化する。そして、走査領域W2に含まれる画素の画素値とウインドウW1に含まれる画素の画素値との一致度が高い位置では、SAD値Vsは極小になる。そこで、視差推定部103は、SAD値Vsが規定した閾値以下であって、かつ探索範囲内において最小値であるときに、対応点として決定する。なお、SAD値Vsが最小値であるにもかかわらず、閾値以下ではない場合は、対応点を不定として扱う。
【0063】
視差推定部103は、第1変換画像を用いて対応点が得られると、2枚の第1変換画像における対応点の座標位置を用いることにより点P1に対する2台のカメラ1、2の視差を求められる。視差が求められると、視差を画素値に持つ第1視差画像を生成する。さらに、第1変換画像を用いて得られた対応点ごとに数6で表される一致度Dsを求める。第1変換画像において対応点が得られたすべての画素に関して一致度Dsを求め、一致度Dsを画素値に持つ第1一致度画像を生成する。
【0064】
【数6】
【0065】
視差推定部103は、第1変換画像と同様に、第2変換画像からもSAD値Vsを用いて対応点を求める。第2変換画像についても対応点ごとに視差を求めて第2視差画像を生成し、さらに、対応点ごとに一致度Dsを求め、一致度Dsを画素値に持つ第2一致度画像を生成する。第1視差画像および第1一致度画像と第2視差画像および第2一致度画像は記憶装置12に保存される。
【0066】
次に、第1視差画像と第2視差画像とを用いて視差を決定する。視差を決定するには、まず、第1視差画像の各画素に対応する第2視差画像の画素を抽出し、両方の画素が画素値(視差)を有しているか否かを判断する。第1視差画像の画素に対応する第2視差画像の画素は、以下の関係を用いて抽出する。すなわち、第1視差画像における画素の位置を(φ1,β1)とするとき、第2視差画像において対応する画素の位置(α2,β2)は、数7の関係で表される。
【0067】
【数7】
【0068】
第1視差画像と第2視差画像とにおいて対応する画素がともに画素値を有している場合は、両方の画素値について第1一致度画像および第2一致度画像を用いることにより画素値の信頼度を評価する。
【0069】
いま、第1視差画像における位置(φ1,β1)と第2視差画像における位置(α2,β2)との両方に画素値(視差)が存在していると仮定する。この場合、第1一致度画像上の位置(φ1,β1)の画素値(一致度)と、第2一致度画像上の位置(α2,β2)の画素値(一致度)とのうち一致度を比較する。
【0070】
第1一致度画像の一致度が第2一致度画像の一致度よりも大きい場合は、第1視差画像における位置(φ1,β1)の画素値を視差として採用し、第2視差画像における位置(α2,β2)の画素値は不定値として更新する。同様にして、第2一致度画像の一致度が第1一致度画像の一致度よりも大きい場合は、第2視差画像における位置(α2,β2)の画素値を視差として採用し、第1視差画像における位置(φ1,β1)の画素値は不定値として更新する。一致度が等しい場合は、第1視差画像の位置(φ1,β1)と第2視差画像の位置(α2,β2)との画素値の平均値あるいは一方を視差として採用する。
【0071】
また、第1視差画像の位置(φ1,β1)と第2視差画像の位置(α2,β2)との一方のみが画素値(視差)を有している場合には、当該画素値を視差として採用する。第1視差画像と第2視差画像との対応する画素において画素値(視差)がともに存在しない場合は、当該位置の視差は不定とする。
【0072】
以上説明した処理を行うことによって、第1視差画像と第2視差画像とにおいて画素ごとに信頼性が高いほうの画素値(視差)が抽出されるから、抽出された画素値を用いて実空間における3次元の位置を求めると、信頼性の高い3次元情報が得られる。
【0073】
本実施形態の動作の概要をまとめると図10のように表される。すなわち、左右のカメラ1、2により撮像した2枚の撮像画像から、2枚の第1変換画像(βとφとで表される画像)と、2枚の第2変換画像(βとαとで表される画像)とが生成される。次に、2枚の第1変換画像から視差画像が求められるとともに、2枚の第2変換画像から視差画像が求められる。このようにして求めた2枚の視差画像を統合することにより、1枚の視差画像が得られるのである。
【0074】
なお、本実施形態では、ブロックマッチングの技術を採用しているが、第1視差画像と第2視差画像との画素値を求める技術は、ブロックマッチングの技術に限定されず、ステレオマッチングにおいて用いられる他の技術を採用してもよい。
【0075】
上述したように、本実施形態は、第1変換画像の水平方向の位置をカメラ1、2ごとの光軸周りの角度φで表しているので、第1変換画像では、光軸に平行な直線を歪みなく対応付けることができる。そのため、第1変換画像を用いることによって、光軸に平行な面に対するステレオマッチングを容易に行うことができる。さらに、第1変換画像に加えて第2変換画像からも視差を求め、一致度を用いて第1変換画像と第2変換画像の視差の精度を評価することで、従来よりも高い精度で視差を推定することが可能になる。
【0076】
(実施形態2)
実施形態1では、視差推定部103が、ブロックマッチングの技術を用いることにより対応点を探索している。また、対応点の探索を、第1変換画像と第2変換画像とについてそれぞれ行っている。以下では第1変換画像と第2変換画像とを区別しない場合は、単に変換画像という。
【0077】
ブロックマッチングでは、図8のように、対応点を探索しようとする一方の変換画像にウインドウW1が設定されるとともに、他方の変換画像に走査領域W2が設定される。さらに、前記他方の変換画像において走査領域W2が横軸に沿って走査され、上述した数5で定義されたSAD値Vsが極小になったときの走査領域W2の位置が対応点として求められる。
【0078】
ところで、ブロックマッチングを行う際に、変換画像において走査領域W2の位置が変化してもSAD値Vsに変化がほとんど生じなければ、対応点を求めることができない。このような事象は、変換画像の横方向において、輝度値の分布に変化が少ない場合に生じる。たとえば、変換画像において横方向に沿った帯状の領域が存在し、当該領域の輝度が横方向では変化しないような場合には対応点を求めることができない。
【0079】
実施形態1において説明したように、第1変換画像では縦方向の両端部においてカメラの光軸に平行な方向の歪みが少なく、第2変換画像では中央部においてカメラの光軸に直交する平面内の歪みが少ないという知見が得られている。対応点の探索は、歪みが少ないほうが容易であり、また信頼性も高いと考えられる。したがって、対応点を探索する画素ごとに、第1変換画像の画素が適している場合と第2変換画像の画素が適している場合とがあると言える。
【0080】
本実施形態では、視差推定部103において対応点を探索する前に、第1変換画像と第2変換画像とのどちらが対応点を求めるのに適しているかを評価するために、図11に示すように、領域評価部104を付加している。領域評価部104は、第1変換画像と第2変換画像とについて、横方向の輝度値の変化が比較的大きい領域か否かの評価を行う。視差推定部103は、領域評価部104の評価結果を用いて、第1変換画像と第2変換画像との少なくとも一方を対応点の探索に用いる。視差推定部103の前置処理として領域評価部104で評価を行い、対応点を求める対象を絞り込むから、無駄な処理が低減されることになり、演算量が低減されるとともに、ステレオマッチングの信頼性が高くなる。
【0081】
領域評価部104は、変換画像における横方向の輝度値の変化を評価するために、以下のように定義されたエッジ強度E1、E2を評価値として用いる。エッジ強度E1は第1変換画像から求められ、エッジ強度E2は第2変換画像から求められる。
E1=|I1(φ−1,β)−I1(φ+1,β)|
E2=|I2(α−1,β)−I2(α+1,β)|
なお、I1(φ,β)は第1変換画像の位置(φ,β)における輝度値であり、I2は第2変換画像の位置(α,β)における輝度値である。
【0082】
領域評価部104は、図12に示すように、第1変換画像または第2変換画像の全画素について以下の評価を行うことにより、視差推定部103において、第1変換画像と第2変換画像とのどちらを用いて対応点を探索するかを画素ごとに決定する。図12に示す動作では、第1変換画像の画素に着目してエッジ強度E1を求め、当該画素に対応する第2変換画像の画素に着目してエッジ強度E2を求めている。すなわち、第1変換画像と第2変換画像との着目する画素に対して、それぞれ横方向で前後に並ぶ画素の輝度値からエッジ強度E1、E2が求められる。
【0083】
次に、第1変換画像から求めたエッジ強度E1と第2変換画像から求めたエッジ強度E2との差の絶対値が規定の閾値T1と比較される(S11)。エッジ強度E1、E2の差の絶対値が閾値T1以下であるときには、第1変換画像と第2変換画像とのどちらから視差を求めても信頼性は同程度と考えられる。したがって、エッジ強度E1、E2の差の絶対値が閾値T1以下である場合は(S11:no)、着目する画素は、対応点を求める際に、第1変換画像と第2変換画像との両方を用いるように定められる(S12)。
【0084】
一方、エッジ強度E1、E2の差の絶対値が閾値T1を超える場合は(S11:yes)、エッジ強度E1、E2の大小が比較される(S13)。エッジ強度E1、E2は大きいほうが対応点の探索が容易であると考えられるから、エッジ強度E1がエッジ強度E2よりも大きい場合は(S13:yes)、着目する画素は、第1変換画像を用いて対応点の探索が行われるように条件が定められる(S14)。また、エッジ強度E1がエッジ強度E2よりも小さい場合は(S13:no)、着目する画素について、第2変換画像を用いて対応点の探索が行われるように条件が定められる(S15)。
【0085】
上述した処理は、第1変換画像のすべての画素について行われる(S16)。また、領域評価部104での評価結果は、演算処理部10に設けた記憶装置12を介して視差推定部103に引き渡される。図12の手順で対応点の探索を行う領域を振り分けると、第1変換画像21は、図13(a)のように、第1変換画像21のみを用いる領域211と、第1変換画像21および第2変換画像22の両方を用いる領域212と、対応点の探索に用いない領域213とに分離される。また、第2変換画像22は、図13(b)のように、第2変換画像22のみを用いる領域221と、第1変換画像21および第2変換画像22の両方を用いる領域222と、対応点の探索に用いない領域223とに分離される。
【0086】
本実施形態では、視差推定部103が対応点を探索して視差を求める処理を行う前に、領域評価部104が第1変換画像と第2変換画像とのどちらを用いて対応点を求めるかの条件を定めている。したがって、第1変換画像と第2変換画像とにおいて視差を求める領域が絞り込まれる。すなわち、第1変換画像と第2変換画像との全領域について対応点を求める場合に比較して演算量が低減される。しかも、領域評価部104は、画素ごとに求められる視差の信頼性をできるだけ高くするように、第1変換画像と第2変換画像とから対応点を探索する画素を抽出するから、求められる視差の信頼性が高くなる。
【0087】
上述した動作では、着目する画素に対して横方向に隣接する画素からエッジ強度E1、E2を求めているが、ソーベルオペレータのように、画像処理技術においてエッジ強度を求めたり輝度値の勾配方向を求めるために用いられている他の技術を採用してもよい。他の構成および動作は実施形態1と同様であるから説明を省略する。
【0088】
(実施形態3)
実施形態1は、カメラ1、2で撮像したすべての画素を対象として、第1変換部101と第2変換部102とにおいて撮像画像の変換を行っているから、計算量が比較的多くなっている。本実施形態では、第1変換部101と第2変換部102とにおいて撮像画像を変換する領域をあらかじめ制限することにより計算量を低減する技術について説明する。
【0089】
第1変換部101と第2変換部102とは、それぞれ座標を変換する機能と、変換後の座標に輝度値を対応付ける機能とを備えている。座標の変換は、数1〜4を用いて行うから、一部はルックアップテーブルを用いて比較的簡単な処理で行うことができるが、変換後の座標に輝度値を対応付ける処理は、逆変換を伴うから計算量の増加につながる。
【0090】
そこで、第1変換部101は、座標の変換を行った後に、図14のように、第1変換画像21におけるβ=0の中心線210からみて角度βが規定の閾値h1(たとえば、h1=30度)以上になるという条件を満たす領域214のみで輝度値を対応付ける処理を行う。すなわち、第1変換部101は、第1変換画像21において|β|≧h1となる領域214にのみ画素値(輝度値)を与える処理を行う。
【0091】
第1変換画像の各画素に輝度値を対応付けるには、第1変換画像の各画素の位置(φ,β)からカメラ1、2が撮像した画像の位置(u,v)を求める処理が必要である。さらに、求めた位置(u,v)の周辺の画素の輝度値を用いて補間演算により輝度値を決定する必要がある。したがって、第1変換画像の各画素に輝度値を対応付ける処理は、撮像された撮像画像の位置(u,v)を第1変換画像の各画素の位置(φ,β)に変換する処理よりも計算量が多くなる。これに対して、本実施形態では、輝度値を対応付ける範囲を制限したことによって、計算量の低減が可能になっている。
【0092】
同様にして、第2変換部102は、座標の変換を行った後に、図15のように、第2変換画像22のβ=0の中心線220からみて角度βが規定の閾値h2(たとえば、h2=60度)以下になるという条件を満たす領域224のみで輝度値を対応付ける処理を行う。すなわち、第2変換部102は、第2変換画像22において|β|≦h2となる領域224にのみ画素値(輝度値)を与える処理を行う。このように、第2変換画像22についても輝度値を対応付ける範囲を制限することにより計算量が低減されることになる。
【0093】
第1変換画像21および第2変換画像22が一部領域になる点を除いて実施形態1と同様であって、第1変換画像21および第2変換画像22が得られた後は、第1視差画像および第1一致度画像と第2視差画像および第2一致度画像を求め、視差を決定する処理を行う。また、本実施形態において示した閾値h1,h2は一例であって、これらの閾値h1,h2は適宜に設定することが可能である。とくに、撮像画像全体の視差を求める必要がない場合には、第1変換画像および第2変換画像において輝度値を対応付ける領域をさらに狭めてもよい。また、第1変換画像と第2変換画像とにおいて輝度値を対応付ける領域が重複しないように閾値h1,h2を設定してもよい。他の構成および動作は実施形態1と同様である。
【0094】
ここに、本実施形態の構成は、以下の知見に基づいている。すなわち、第1変換画像21では、角度βが大きい領域214で光軸に平行な面が歪みなく反映されるので、ステレオマッチングが容易になる。すなわち、領域214では、第2変換画像22から求めた第2視差画像の画素値(視差)が採用される確率が低く、第1変換画像21から求めた第1視差画像の画素値が採用される確率が高い。そのため、角度βが大きい領域214では第2変換画像よりも第1変換画像21を用いることが好ましく、領域214では第2変換画像22を用いないようにすれば計算量の低減を図ることができる。
【0095】
一方、第2変換画像22では、角度βが小さい領域において光軸に対して交差する面が歪みなく反映され、光軸に平行な面の歪みも小さい。したがって、角度βが小さい領域においては、第1変換画像21から得られる第1視差画像の画素値(視差)よりも第2変換画像22から求められる第2視差画像の画素値が採用される確率が高くなる。そのため、領域214を除く領域では、第1変換画像21を用いないようにすれば計算量の低減を図ることができる。
【0096】
(実施形態4)
本実施形態は、実施形態2と同様に第1変換画像および第2変換画像において一部の領域にのみ輝度値を対応付ける技術を採用することにより計算量を低減させている。実施形態2では、第1変換画像に対して用いる閾値h1と、第2変換画像に対して用いる閾値h2とを異ならせているが、本実施形態では第1変換画像と第2変換画像とに対して同じ閾値h3を用いている点が相違する。
【0097】
すなわち、本実施形態では、第1変換画像に対しては角度βが閾値h3以上になるという条件を満たす領域に輝度値を対応付け、第2変換画像に対しては角度βが閾値h3以下になるという条件を満たす領域に輝度値を対応付けている。したがって、視差を求める際に第1変換画像と第2変換画像とにおいて重複する領域がなく、それだけ計算量を低減させることができる。閾値h3は、とくに制限はないが、ステレオマッチングでの一致度評価の信頼性の低下を防止するには、たとえば、45度に設定することが好ましい。
【0098】
上述したように、本実施形態の第1変換部101および第2変換部102の動作は、閾値h3が異なる点を除いて実施形態2と同様である。ただし、第1変換部101で得られる第1変換画像と第2変換部で得られる第2変換画像とは角度βの重複する領域がないから、本実施形態は、図16のように、第1変換部101が生成した第1変換画像と第2変換部102が生成した第2変換画像とを合成する画像合成部105を付加している。
【0099】
したがって、カメラ1、2ごとに撮像した撮像画像から生成した第1変換画像と第2変換画像との4種類の画像を視差推定部103に引き渡すのではなく、画像合成部105が合成した後の2種類の画像を視差推定部103に引き渡すことになる。そのため、視差推定部103は、第1視差画像と第2視差画像との2種類の視差画像ではなく1種類の視差画像を生成し、また、第1一致度画像と第2一致度画像との2種類の一致度画像ではなく1種類の一致度画像を生成する。言い換えると、視差推定部103は、合成後の2種類の画像(変換画像)を用いて1回だけの対応付けの処理により視差を求める。
【0100】
ところで、第1変換画像と第2変換画像とを画像合成部105において合成すると、境界において画像が不連続になっている場合に、ステレオマッチングでの一致度評価の信頼性が低下する場合がある。すなわち、境界において画像が不連続である場合、ブロックマッチングの技術を用いたステレオマッチングにおいて、境界を含むウインドウW1と走査領域W2との中に距離の異なる物体が含まれ、結果的に一致度評価の信頼性が低下することになる。
【0101】
この問題は、ウインドウW1と走査領域W2との画素数を少なくすれば低減されるが、ウインドウW1と走査領域W2との画素数を少なくするとSAD値の変化が小さくなり、対応点を抽出する精度が低下することになる。
【0102】
一方、合成された変換画像の境界が不連続になるか否かは、閾値h3に依存しており、数4によれば、β=45度であれば、Y=Zであるから、α=φとなり、閾値h3が45度であれば、変換画像の境界が連続することになる。そのため、上述したように閾値h3は45度が望ましいと言える。ただし、閾値h3が45度以外であっても、境界付近の信頼性が低下するだけであって、他の領域については視差の信頼性は低下しない。
【0103】
他の構成および動作は実施形態1、実施形態2と同様であって、本実施形態では第1変換画像と第2変換画像とが重複しないから、視差推定部103での計算量が実施形態2よりも低減される。その結果、実施形態2よりも少ない計算量で実空間の3次元情報を求めることが可能になる。また、第1変換画像と第2変換画像の境界において画素値が一致するから、境界を含む領域でブロックマッチングの技術を用いたステレオマッチングを行う場合でも、一致度の信頼性が高められる。すなわち、一致度の信頼性が高まることによりステレオマッチングの信頼性も向上する。
【0104】
(実施形態5)
実施形態1において説明したように、第1変換画像は縦方向の両端部においてカメラの光軸に平行な方向の歪みが少なく、第2変換画像は中央部においてカメラの光軸に直交する平面内の歪みが少ないという特性を有している。このことから、実施形態3、4のように、第1変換画像と第2変換画像とから適宜に領域を抽出すれば、縦方向の両端部および中央部において歪みの少ない領域を用いて対応点を抽出することができる。ただし、第1変換画像と第2変換画像とのいずれについても、横方向の両端部における歪みは比較的大きく、この領域は、第1変換画像と第2変換画像とのどちらを用いても他の領域と比較すると視差の信頼性が低下する。
【0105】
そこで、本実施形態では、カメラの台数を増加させることにより、求められる視差の信頼性を向上させている。いま、室内における天井面の中央部にカメラを配置した場合を想定する。この場合、第1変換画像は、縦方向(β方向)の両端部において鉛直方向に沿った壁面や柱の画像について歪みが少なく、また、第2変換画像は、中央部において水平面に沿った床面や机の上面の画像について歪みが少なくなる。したがって、ステレオビジョンにより3次元情報を計測するカメラを2組設け、第1変換画像の縦方向(β方向)を互いに直交させておけば、室内のすべての壁面や柱について歪みの少ない画像を得ることが可能になる。
【0106】
上述した知見では、2台で一組になるカメラを2組設け、合計4台のカメラによって、室内のすべての領域について歪みの少ない画像を得ることが可能になることがわかる。たとえば、ステレオビジョンのための2台のカメラ111、112を、図17(a)に示すように、図の左右に並べて天井面の中央部に配置した場合、第1変換画像の中で室内の左右方向に沿った壁面301、302に相当する領域は歪みが少なくなる。一方、ステレオビジョンのためのカメラ113、114を、図17(b)に示すように、天井面に沿って図17(a)に示す位置に対して90度回転させた場合、第1変換画像の中で、上記壁面301、302に直交する壁面303、304に相当する領域は歪みが少なくなる。
【0107】
本実施形態では、4台のカメラ111、112、113、114のうちの1台を両方の組で共用することにより、3台のカメラを用いて4台のカメラを用いる場合と同様の機能を達成する例を示す。図17に示す例に従って、カメラ111とカメラ113とが共用されている場合を例示する。したがって、3台のカメラ111、112、114を用いているものとする。3台のカメラ111、112、114は、直角二等辺三角形の頂点の位置に光学中心を位置させるように配置される。すなわち、共用されるカメラ111に対して残りのカメラ112、114が等距離に配置される。ただし、光学中心の位置が直角二等辺三角形の頂点をなすことは必須ではなく、たとえば、3台のカメラ111、112、114の光学中心の位置が正三角形をなすように配置することも可能である。
【0108】
以下では、直角二等辺三角形の頂点の位置にカメラ111、112、114が配置されている場合を例として説明する。ステレオビジョンにより3次元情報を計測する際は、3台のカメラ111、112、114のうちの2台ずつを組み合わせて用いる。つまり、2台のカメラ111、112からなる組と、2台のカメラ111、114からなる組とをそれぞれ用いてステレオビジョンによる3次元情報の計測を行う。各組ごとの3次元情報の計測は、実施形態1と同様に行われる。
【0109】
ところで、4台のカメラを用いる場合は、2台ずつのカメラを撮像画像の水平方向(x方向)に並べて配置することができる。しかしながら、3台のカメラを用いる場合は、2台のカメラ(たとえば、カメラ111とカメラ112)を撮像画像の水平方向(x方向)に並べると、他の2台のカメラ(たとえば、カメラ111とカメラ114)は撮像画像の水平方向に並ばなくなる。この場合、カメラ114の水平方向は、カメラ111、112のベースラインの方向と平行させるか、直交させることになる。
【0110】
したがって、実施形態1と同じ数式を用いて第1変換画像および第2変換画像を生成するには、図18のように、第1変換部101および第2変換部102に前置して、撮像画像を90度回転させるための回転処理部106が必要になる。ベースラインの方向が変換前の画像の水平方向に一致していない場合には、回転処理部106を用いて撮像画像を適宜に回転させることによって、ベースラインの方向を変換前の画像の水平方向に一致させることができる。ここに、3台のカメラ111、112、114がそれぞれ撮像した3枚の撮像画像は、記憶装置12に記憶されているから、回転処理部106は、必要に応じて画素を読み出す方向を変更する機能があればよい。
【0111】
上述のように、回転処理部106が設けられていることにより、実施形態1と同じ数式(変換式)を用いて第1変換画像および第2変換画像を生成することが可能になる。ただし、回転処理部106によって撮像画像を回転させる代わりに、第1変換画像および第2変換画像への変換を行うための数式により回転と等価な変換を行ってもよい。
【0112】
上述した構成によって、第1変換画像および第2変換画像は2組ずつ生成される。各組ごとの処理は実施形態1と同様であって、第1変換画像の組と第2変換画像の組とを用いて視差が求められる。ここに、視差は組ごとに得られるから、選択処理部107を用いて信頼性の高いほうの視差を選択する。視差の信頼性の評価には、実施形態1と同様に、一致度Dsの評価を行えばよい。なお、この動作では選択処理部107において一致度Dsの評価を行うから、選択処理部107には、第1一致度画像および第2一致度画像も与えられる。
【0113】
他の構成および動作は実施形態1と同様であるから説明を省略する。また、本実施形態は、実施形態2〜4の構成および動作と組み合わせて用いることが可能である。ここに、上述したように、第2変換画像は中央部において水平面に沿った床面や机の上面の歪みが少なく、第1変換画像は縦方向の両端部において鉛直方向に沿った壁面や柱の歪みが少ない。したがって、実施形態3、4のように領域を選択する場合は、各組ごとに第1変換画像の縦方向における両端部の領域を選択すれば、室内全体において対応点の探索が容易になる。さらに、実施形態2のように、対応点の探索が容易になる領域を評価する場合、各組ごとに第1変換画像と第2変換画像との評価を行い、さらに、異なる組について同様の評価を行えばよい。異なる組について評価を行う場合、エッジ強度の差の大小を比較し、エッジ強度の差が大きい組を優先して採用すればよい。
【符号の説明】
【0114】
1、2 カメラ
111、112、113、114 カメラ
10 演算処理部
101 第1変換部
102 第2変換部
103 視差推定部
104 領域評価部
105 画像合成部
106 回転処理部
107 選択処理部
【技術分野】
【0001】
本発明は、複数台のカメラで撮像した画像を用いて三角測量の原理により空間の3次元情報を取得するステレオカメラ装置と、ステレオカメラ装置を用いて構成されるステレオカメラシステムと、コンピュータを用いてステレオカメラ装置を構成するプログラムに関するものであって、とくに2台のカメラの撮像画像から視差を求める技術に関するものである。
【背景技術】
【0002】
従来から、空間の3次元情報を取得する技術としてステレオビジョンが知られている。ステレオビジョンは、複数台のカメラを用いて実空間を撮像した画像に、三角測量の原理を適用することにより、3次元の実空間における着目する部位までの距離を計測する技術である。すなわち、ステレオビジョンでは、視野の少なくとも一部が重複するように配置された複数台のカメラを用いて3次元の実空間が撮像される。そして、実空間において着目する部位の像が各カメラの撮像素子上に形成されている場合、実空間における光学中心から着目する部位への方向と、カメラ同士の相対位置、姿勢とを用いて三角測量の原理により、実空間において着目する部位までの距離が計測される。
【0003】
ここで、2台のカメラで撮像した画像(以下、「撮像画像」という)に注目する。2枚の撮像画像から着目する部位までの距離を計測するには、2台のカメラの光学中心を結ぶ線分の長さ(以下、「ベースライン長」という)と、2枚の撮像画像の中で、実空間において着目する部位に対応する像の位置のずれの距離との情報が必要である。像の位置のずれの距離は、実空間において着目する部位を2台のカメラから見込んだときの視差であって、2枚の撮像画像にそれぞれ規定した基準位置からの距離差を用いる。
【0004】
撮像画像から視差を求めるには、撮像画像の中で実空間において着目する部位に対応する像の位置を探し出す必要がある。すなわち、2台のカメラで撮像された2枚の撮像画像において同部位に対応する対応点を特定する必要がある。2枚の撮像画像から対応点を探索する処理をステレオマッチングと呼んでいる。ステレオマッチングにおいて撮像画像上で対応点を探索する範囲は、2台のカメラの光学中心と実空間において着目する部位とを結ぶエピポーラ平面を考えると、撮像画像にエピポーラ平面を投影した線上に限定することができる。
【0005】
ステレオビジョンでは、多くの場合、2台のカメラが、光軸を平行にし、かつ両カメラの光学中心を結ぶ直線(以下、「ベースライン」という)を両光軸に直交させて配置された平行ステレオ法が採用されている。以下では、ベースラインの方向を各カメラが撮像した撮像画像の水平方向に一致させた平行ステレオ法を、単に平行ステレオ法と呼ぶ。
【0006】
ここで、撮像画像にはカメラに設けた光学系(レンズなど)による歪みがないと仮定する。この場合、図19に示すように、実空間において着目する部位P1に対応して形成されるエピポーラ平面403を各撮像画像401、402に投影した線は、撮像画像401、402の水平方向に平行な直線になる。以下では、撮像画像401、402について、水平方向をx方向、垂直方向をy方向とする。つまり、x方向はベースライン404と平行になる。したがって、エピポーラ平面403を撮像画像401、402に投影して得られる直線はx方向に平行であって、y方向の座標値は一定になる。
【0007】
つまり、一方の撮像画像401の中に実空間の部位P1に対応する像G1があるとき、他方の撮像画像402の中で部位P1に対応する像D1の探索範囲は、y方向の座標値が像G1と同じになる水平方向の直線上に限定される。たとえば、図19において、像G1は一方のカメラの光学中心O1と像G1とを通る直線405に対応するから、この直線405の上の部位P1、P2、P3などは像G1に対応する。これに対して、他方のカメラの光学中心O2と部位P1、P2、P3とを通る直線は、撮像画像402における像D1、D2、D3に対応する。ここに、像G1と像D1、D2、D3とはy方向の座標値が一致する。
【0008】
上述したように、平行ステレオ法でのステレオマッチングでは、実空間において着目する部位は、各カメラの撮像画像において、垂直方向の同じ位置に対応することになる。つまり、2台のカメラが実空間の同じ部位を撮像していると、撮像画像内で当該部位に対応する画素の位置は、水平方向については撮像画像ごとに異なるが、垂直方向については両撮像画像で一致する。つまり、平行ステレオ法では、両カメラで得られた撮像画像について実空間の同じ部位に対応する点を、撮像画像の水平方向についてのみ探索すればよく、ステレオマッチングの処理効率がよいという利点を有している。
【0009】
ところで、上述した平行ステレオ法の技術は、カメラの光学系に歪みがないという仮定を設定している。したがって、上述のようにステレオマッチングにおいて高い処理効率が得られるのは、カメラの光学系の歪みの影響を考慮しなくてもよい程度に視野角が小さいか、光学系に歪みがあっても補正すれば歪みの影響を除去できる場合に限られる。言い換えると、視野角を広げるために魚眼レンズのように歪みの大きい光学系をカメラに用いると、ステレオマッチングにおける処理負荷が大幅に増加するという問題が生じる。
【0010】
一般に魚眼レンズのように視野角の広い光学系を用いて撮像した画像は、画像の周辺に近付くほど湾曲の程度が大きくなる湾曲歪みが生じるから、ステレオマッチングの際には画像の湾曲歪みを考慮して対応点を探索することが必要になる。すなわち、対応点を探索する際に、x方向とy方向との両方の座標値を変化させるから、対応点を探索する際の処理効率が低い上に、対応付けを誤る可能性が高くなる。その結果、距離の計測を誤ることになり、計測性能の低下につながるという問題が生じる。
【0011】
そこで、上述した問題を解決するために、エピポーラ平面が画像内の一直線上に投影されるように撮像画像に対する座標変換を行った変換画像を生成し、変換画像を用いてステレオマッチングを行う技術が提案されている。変換画像は、エピポーラ平面が横軸に平行な直線になるように座標軸が選択される(たとえば、特許文献1、特許文献2、非特許文献1参照)。
【0012】
これらの文献に記載された技術では、視野角の広い画像から視差を効率よく推定するために、図20に示すように、ベースライン404の方向(x方向)の軸周りの角度βを変換画像の垂直方向の軸に対応付けている。このような変換画像を用いると、3次元の実空間における部位P1が2枚の撮像画像401、402において同じ角度βに対応付けられるので、平行ステレオ法と同様に、対応点の探索が容易になり、視差を効率よく推定することができる。なお、図20の半球は光学系を示している。
【0013】
一方、変換画像の水平方向の軸については、特許文献1、非特許文献1では、図21に示すように、エピポーラ平面403内における角度γを用いている。この角度γは、カメラの受光面における垂直方向(y方向)と光軸の方向(z方向)とで規定される平面(yz平面)に対して、着目する部位P1とカメラの光学中心Oとを結ぶ直線の間の角度である。
【0014】
また、特許文献2では、図22に示すように、撮像画像の垂直方向(ベースライン404の方向と光軸の方向とに直交する方向)の軸周りの角度αの正接tanαを変換画像の水平方向の軸に用いている。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開2007−24647号公報
【特許文献2】特開2009−139246号公報
【非特許文献】
【0016】
【非特許文献1】Fish-Eye-Stereo Calibration and Epipolar Rectification, Abraham, S. Forstner,W. International Journal of Photogrammetry and Remote Sensing, Vol.59,Issue5, August 2005
【発明の概要】
【発明が解決しようとする課題】
【0017】
ところで、実空間の3次元情報を取得する技術を用いることにより室内の人の動きを検出すると、室内の負荷機器の制御などに用いることができる。たとえば、空調負荷であれば、室内で人が存在する場所を特定することによって、冷気や暖気を人の存在する場所に集中的に流すことが可能になる。また、映像を表示する負荷機器であれば、人の存在する場所に応じて向きを変えたり、表示のサイズを変えたりすることが可能になる。
【0018】
負荷機器を制御する場合に限らず、室内の3次元情報を得ようとする場合には、全体を視野とし、しかも人や物体によって視野が妨げられないようにするために、たとえば、カメラの光軸を鉛直下向きにして天井の中央付近に設置することが望ましい。この配置を採用すると、撮像画像の中心部では、床面や床上に存在する物体のように水平方向の情報が多く得られ、撮像画像の周辺部では、壁面や柱のように鉛直方向の情報が多く得られることになる。
【0019】
一方、上述した特許文献1、特許文献2、非特許文献1に記載された技術を採用すると、視野角の広い光学系を採用したことによる撮像画像の歪みの影響を軽減することが可能である。しかしながら、依然として撮像画像の歪みが十分に解消されることはない。
【0020】
たとえば、図23(a)のように光軸(z方向)に平行な直線L1を撮像すると、変換画像では図23(b)のように歪んだ曲線L2として撮像される。図23は特許文献1に対応する例であって、変換画像は、角度γが水平方向の軸に対応付け、角度βが垂直方向の軸に対応付けられている。したがって、特許文献1に記載された技術では、直線L1がβ=γの関係を満たす場合を除いて、変換画像では直線L1が曲線L2に変換されることになる。特許文献2、非特許文献1に記載された変換画像についても同様であって、変換画像には歪みが生じる。
【0021】
ここに、図23(b)によれば、変換画像の中心部は直線性が比較的よいが、周辺部では直線性が低下しており、このことから変換画像の周辺部に存在する壁や柱のような鉛直方向の部材については、対応点を探索する処理の効率が低下することになる。
【0022】
しかも、図24に示すように、2枚の撮像画像からそれぞれ得られる変換画像は、同じ直線L1(図23参照)を撮像しても、異なる形状の曲線L21、L22に変換されるから、2枚の変換画像から対応点を探し出すのは容易ではない。結局、特許文献1、特許文献2、非特許文献1の技術のいずれを採用したとしても、対応点を探索する処理は容易ではない。
【0023】
本発明は、複数台のカメラで撮像した撮像画像における対応点の探索を従来よりも容易にしたステレオカメラ装置、ステレオカメラシステム、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0024】
本発明に係るステレオカメラ装置は、上記目的を達成するために、光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラと、カメラがそれぞれ撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求める演算処理部とを備え、撮像画像における画素の位置がカメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台のカメラから選択される2台のカメラの光学中心を結ぶ第1方向とカメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるようにカメラごとに規定された第2座標系とを用い、演算処理部は、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、第1変換画像および第2変換画像を用いて前記2台のカメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備えることを特徴とする。
【0025】
このステレオカメラ装置において、視差推定部は、前記2台のカメラごとに撮像した前記画像からそれぞれ生成される2枚の第1変換画像における対応点を抽出することにより前記部位に対する視差を求めるとともに当該対応点の一致度を評価し、カメラごとに撮像した画像を用いてそれぞれ生成される2枚の第2変換画像における対応点を抽出することにより部位に対する視差を求めるとともに当該対応点の一致度を評価し、第1変換画像と第2変換画像との画素ごとに求めた視差のうち前記部位が同じである画素については、一致度が高いほうの視差を当該部位の視差として採用することが好ましい。
【0026】
このステレオカメラ装置において、第1変換画像と第2変換画像との両方について着目する画素ごとに周囲の輝度値の変化に関する評価値を求め、評価値の差が規定の閾値を超える場合は第1変換画像と第2変換画像とのうち輝度値の変化が大きいほうを当該画素の対応点の抽出に用い、評価値の差が閾値未満の場合に第1変換画像と第2変換画像との両方を当該画素の対応点の抽出に用いるように条件を定める領域評価部が付加され、視差推定部は、領域評価部が定めた条件に従って画素ごとに対応点を抽出することが好ましい。
【0027】
このステレオカメラ装置において、第1変換部および第2変換部は、第1変換画像と第2変換画像とについて、第1変換画像と第2変換画像との一方を用いて対応点を抽出する第1の領域と、第1変換画像と第2変換画像との両方を用いて対応点を抽出する第2の領域とのうち、少なくとも第1の領域をあらかじめ与えられた条件に従って定める機能を有することが好ましい。
【0028】
本発明に係るステレオカメラシステムは、請求項1〜4のいずれか1項に記載のステレオカメラ装置を2組備え、ステレオカメラ装置ごとに設けられた前記2台ずつのカメラが、第1方向を互いに交差させるとともにカメラの光軸を平行にして配置され、ステレオカメラ装置ごとに設けられた視差推定部が推定した視差のうち信頼性の高いほうの視差を選択する選択処理部を備えることを特徴とする。
【0029】
このステレオカメラシステムにおいて、ステレオカメラ装置ごとに設けられた前記2台ずつのカメラのうち各1台が共用されていることが好ましい。
【0030】
本発明に係るプログラムは、光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラが撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求めるステレオカメラ装置に用いられ、撮像画像における画素の位置がカメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台のカメラから選択される2台のカメラの光学中心を結ぶ第1方向とカメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるようにカメラごとに規定された第2座標系とを用い、コンピュータを、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、第1変換画像および第2変換画像を用いて前記2台のカメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備える演算処理部として機能させるものである。
【発明の効果】
【0031】
本発明の構成によれば、カメラを用いて撮像された画像について、光軸に平行な直線に歪みが生じないように座標変換を行った変換画像を用いるので、2台のカメラで撮像した画像の対応付けが容易になるという効果がある。
【図面の簡単な説明】
【0032】
【図1】実施形態1を示すブロック図である。
【図2】同上の原理説明図である。
【図3】同上に用いる座標系の関係を示す図である。
【図4】同上に用いる座標系の関係を示す図である。
【図5】同上における撮像画像の例を示す図である。
【図6】同上における第1変換画像の例を示す図である。
【図7】同上における第2変換画像の例を示す図である。
【図8】同上におけるブロックマッチングの説明図である。
【図9】同上におけるブロックマッチングの説明図である。
【図10】同上の動作の概要を示す図である。
【図11】実施形態2を示すブロック図である。
【図12】同上の動作説明図である。
【図13】同上による領域の区分例を示す図である。
【図14】実施形態3の領域を示す説明図である。
【図15】同上の領域を示す説明図である。
【図16】実施形態4を示すブロック図である。
【図17】実施形態5を示す概略構成図である。
【図18】同上のブロック図である。
【図19】ステレオビジョンの概念を説明する図である。
【図20】従来の技術を説明する図である。
【図21】同上に用いる座標系を示す図である。
【図22】同上に用いる座標系を示す図である。
【図23】同上の動作を説明する図である。
【図24】同上の動作を説明する図である。
【発明を実施するための形態】
【0033】
(実施形態1)
本実施形態は、図1に示すように、3次元の実空間に対する視野がほぼ重複するように配置された2台のカメラ1、2を備える。両カメラ1、2は、光軸を平行、かつ光学中心を結ぶ方向(ベースライン方向)と光軸を垂直にして配置される。各カメラ1、2は、画角が180度に近い魚眼レンズないし魚眼レンズに相当する機能を有した光学系を備える。光学系の射影方式はとくに問わないが、以下では等距離射影方式を用いて説明する。また、2台のカメラ1、2は、ベースライン方向と受光面における水平方向とを一致させるように配置される。すなわち、平行ステレオを想定する。
【0034】
また、以下では、3次元の実空間において、受光面の水平方向に沿う方向(つまり、ベースライン方向)をx方向、受光面の垂直方向に沿う方向をy方向とし、受光面に直交する方向をz方向とする。各カメラの撮像画像をモニタ装置に表示したときに、水平方向の右向きがx方向の正の向き、垂直方向の下向きがy方向の正の向きになるように座標系を定めている。z方向についてはカメラの受光面から遠ざかる向きを正の向きとする。
【0035】
カメラ1、2が撮像した撮像画像における画素の位置は、受光面の左上隅を原点とした2次元の直交座標系である第1座標系で表される。第1座標系は、画像の水平方向がx方向に沿っており、画像の垂直方向がy方向に沿うように設定され、座標位置は(u,v)で表される。
【0036】
また、実空間において着目する部位(たとえば、図2の点P1)を各カメラ1、2から見込む方向を規定するために、上述したx方向、y方向、z方向に平行な軸をカメラ1、2ごとに規定し、カメラ1、2ごとの光学中心を原点とする第2座標系が規定される。第2座標系はカメラ1、2ごとに規定され、z方向の軸は光軸に一致する。各カメラ1、2に規定された第2座標系の原点O1、O2から点P1を見込む方向は、3本の各軸周りのそれぞれの角度の組み合わせによって表される。以下では、x方向の軸周りの角度はβ、y方向の軸周りの角度はα、z方向の軸(光軸)周りの角度はφとする。
【0037】
各カメラ1、2が撮像した撮像画像のデータは、演算処理部10に入力される。本実施形態では、演算処理部10が濃淡画像を扱う例を説明するが、カラー画像を扱う場合も以下に説明する技術思想は適用可能である。演算処理部10は、ハードウェア資源としてのコンピュータを有し、コンピュータを以下に説明する処理を行う装置として機能させるためのプログラムを実行する。ただし、演算処理部10は専用のハードウェアを備える構成であってもよい。また、マイコンを備えるコンピュータのほか、DSP(Digital Signal Processor)、FPGA(Field-Programmable Gate Array)のようにプログラムを実行する機能を備えるデバイスを用いて構成してもよい。
【0038】
カメラ1と演算処理部10との間にはインターフェース3が設けられ、カメラ2と演算処理部10との間にはインターフェース4が設けられる。各インターフェース3、4は、カメラ1、2が撮像した撮像画像のデータを、それぞれ演算処理部10で処理するためのデータに変換する。インターフェース3、4は、たとえば、アナログ信号をデジタル信号に変換する機能を備える。
【0039】
演算処理部10を動作させるためのシステムプログラムおよびアプリケーションプログラムは記憶装置11に記憶され、演算処理部10の処理対象である撮像画像データや演算過程のデータは、データメモリおよび作業用メモリである記憶装置12に記憶される。記憶装置11は、フラッシュメモリやハードディスクドライブ装置のように、無給電で記憶内容が保持される記憶装置が用いられる。また、記憶装置11は、処理の実行時にシステムプログラムやアプリケーションプログラムを置くための主記憶として揮発性メモリも備える。記憶装置12は、とくに制限はないが、少なくとも一部は作業用に用いるための揮発性メモリが用いられる。
【0040】
本実施形態では、2台のカメラ1、2がそれぞれ撮像した撮像画像に基づいて実空間の3次元の情報を取得しなければならないから、演算処理部10は、2台のカメラ1、2が同時刻に撮像するようにインターフェース3、インターフェース4に対してトリガ信号を与え、同時刻に撮像された対になる撮像画像を記憶装置12に保存する。
【0041】
ところで、カメラ1、2の受光面上での位置は、左上隅を原点として水平方向と垂直方向との画素の個数で表される。画像上に投影された光軸上の点の座標を(uc,vc)とすると、(uc,vc)と任意の画素(u,v)との距離rは、数1で表される。
【0042】
【数1】
【0043】
また、カメラ1、2は魚眼レンズないし魚眼レンズに相当する機能を有する光学系を備えるから、3次元の実空間における1点がカメラ1、2の光学中心を中心とする半径1の球面上に射影されるモデルを用いることができる。カメラ1、2の光学系に歪みのない等距離射影方式の魚眼レンズを用いる場合を想定すると、図3のように実空間の点Pが球面SP上に射影された点Qと、カメラ1、2の光学中心(第2座標系の原点)とを結ぶ直線が、光学系の光軸となす角度θ[rad]は、距離rを用いて、数2で表される。
【0044】
【数2】
【0045】
ただし、数2において、距離L0は、3次元空間におけるZ=0上の点の画像PLへ投影した結果の円の半径を示す。点Rは点Qを画像PLへ投影した画素の位置を示す。
【0046】
実空間における1点が、撮像画像における位置(u,v)の画素に対応付けられるようにキャリブレーションが行われている場合を想定すると、モデルとして用いる球面上に実空間の1点を射影した点P1の位置(X,Y,Z)は、数3で表される。
【0047】
【数3】
【0048】
ところで、図4に示しているように、点P1の位置(X,Y,Z)は、画素の位置(u,v)に代えてx軸、y軸、z軸の3軸のうちの2軸の周りの角度の組み合わせとして表すことが可能である。上述したように、x軸周りの角度(yz平面内での角度)をβ、y軸周りの角度(zx平面内での角度)をα、z軸周りの角度(xy平面内での角度)をφとする。角度α、βはz軸を0度とし、角度φはy軸を0度とし、左回りに大きくなる。画素の位置(u,v)に代えて用いる角度の組み合わせは、(φ,β)と(α,β)との2種類を用いる。角度α,β,φへの変換式は、数3の計算結果を用いて数4で表される。
【0049】
【数4】
【0050】
演算処理部10は、2台のカメラ1、2がそれぞれ撮像した撮像画像内での画素の位置(u,v)を、上述した3次元の実空間における角度の組(φ,β)、(α,β)に変換した画像を生成するために第1変換部101および第2変換部102を備える。
【0051】
第1変換部101は、z軸(光軸)周りの角度φと、x軸周りの角度βとの組(φ,β)で位置が表される画像(以下、「第1変換画像」という)を出力する。また、第2変換部102は、y軸周りの角度αと、x軸周りの角度βとの組(α,β)で位置が表される画像(以下、「第2変換画像」という)を出力する。なお、第1変換部101において角度βを求めているから、第1変換部101による演算後に第2変換部102による演算を行う場合は、第2変換部102は第1変換部101から角度βを取得すればよい。
【0052】
第1変換画像の画素値および第2変換画像の画素値は、カメラ1、2の受光面上で、第1変換部101において求めた位置(φ,β)および第2変換部102において求めた位置(α,β)に対応する位置の画素値を用いる。すなわち、第1変換部101は、位置(φ,β)から位置(u,v)を求め、当該位置(u,v)の画素値を位置(φ,β)に対応付けた第1変換画像を生成する。また、第2変換部102は、位置(α,β)から位置(u,v)を求め、当該位置(u,v)の画素値を位置(α,β)に対応付けた第2変換画像を生成する。第1変換画像および第2変換画像を求めるには、すべての位置(φ,β)、(α,β)について画素値を求める処理を行う。
【0053】
図5のような撮像画像が得られている場合、第1変換画像は図6のようになり、第2変換画像は図7のようになる。図5は室内において天井面の中央部にカメラ1、2を配置することによって、室内の全体を撮像した場合の撮像画像を示している。カメラ1、2をこのように設置した場合、第1変換画像は、図6のように、縦方向(β方向)の両端部において鉛直方向に沿った壁面や柱などについて他の領域よりも歪みが少なくなる。また、第2変換画像は、図7のように、中央部において水平面に沿った床面や机の上面などについて他の領域よりも歪みが少なくなる。
【0054】
ところで、第1変換部101および第2変換部102が求めた位置(φ,β)、(α,β)から画素の位置(u,v)を求めても、多くの場合、1つの画素には対応しない。そのため、第1変換画像および第2変換画像の画素値を求めるには補間演算が必要である。補間演算には、バイリニア補間や最近傍法などの一般的なアルゴリズムを用いる。ここに、記憶装置12には濃淡画像が保存されるから、位置(u,v)の画素値は輝度値であって、第1変換画像および第2変換画像の画素値も輝度値になる。第1変換部101から出力される第1変換画像および第2変換部102から出力される第2変換画像は、記憶装置12に保存される。
【0055】
演算処理部10は、記憶装置12に保存された第1変換画像および第2変換画像を用いて、カメラ1、2の視差を推定する視差推定部103を備える。視差推定部103は、各カメラ1、2で撮像した撮像画像から得られた第1変換画像から視差を推定し、また第2変換画像から視差を推定する。さらに、2種類の方法で求めた視差を総合して最終的に視差を決定し、実空間の3次元情報の算出に利用する。
【0056】
視差推定部103は、2台のカメラ1、2で得られた2枚の第1変換画像から画素ごとの視差を推定し、推定した視差値を画素値に持つ1枚の画像(以下、「第1視差画像」という)を生成する。また、視差推定部103は、画素ごとの一致度を推定し、推定した一致度を画素値に持つ1枚の画像(以下、「第1一致度画像」という)を生成する。
【0057】
同様にして、視差推定部103は、2枚の第2変換画像から画素ごとの視差および一致度を推定し、推定した視差値を画素値に持つ1枚の画像(以下、「第2視差画像」)および推定した一致度を画素値に持つ1枚の画像(以下、「第2一致度画像」という)を生成する。視差推定部103は、視差の決定には、第1視差画像と第2視差画像とを用いる。
【0058】
第1変換画像は、画像の垂直方向の軸がx軸周りの角度βに対応し、画像の水平方向の軸がz軸(光軸)周りの角度φに対応する。平行ステレオであるから、図2に示すように、実空間における同一の点を2台のカメラ1、2で撮像したときに、第1変換画像における角度βの値は等しくなる。したがって、2枚の第1変換画像から対応点を推定するには、同じ角度βを有する範囲内のみを探索すればよい。このように、視差推定部103は、第1変換画像を用いることにより、対応点を推定するにあたって、探索範囲を狭めることができる。
【0059】
視差推定部103は、対応点か否かを評価するために、ブロックマッチングの技術を採用している。すなわち、図8(a)のように、一方の第1変換画像において対応点の評価を行おうとする部位の周囲に複数画素を含むウインドウW1が形成される。ウインドウW1は、対応点の評価を行おうとする画素の周囲で矩形領域として設定するのが望ましい。また、図8(b)のように、他方の第1変換画像には、ウインドウW1に対応する大きさの走査領域W2が形成され、走査領域W2が横軸(角度φの軸)に沿って走査される。上述したように、対応点の角度βは2枚の第1変換画像において等しいから、角度φのみを変化させて対応点が探索される。
【0060】
ここで、ウインドウW1の中心位置が(φL,βL)にあり、走査領域W2の中心位置が(φR,βR)にある場合に、ウインドウW1内の画素の相対位置(j,i)に対応する走査領域W2の画素の位置(j,i)について、画素値(輝度値)I1(φL+j,βL+i)、I2(φR+j,βR+i)の差分(絶対値)の総和であるSAD値Vsを求める。ただし、平行ステレオ法であるからβL=βRとなる。それぞれのウインドウ中心の相対位置を(0,0)とすると、SAD値Vsは数5で表される。ここで、ウインドウW1と走査領域W2との大きさは等しく(2m+1,2n+1)(m、nは0以上の任意の整数)となっているとする。なお、SADは、Sum of Absolute Differenceの意味である。
【0061】
【数5】
【0062】
走査領域W2を第1変換画像の横軸に沿って変位させると、図9に示すように、SAD値Vsが変化する。そして、走査領域W2に含まれる画素の画素値とウインドウW1に含まれる画素の画素値との一致度が高い位置では、SAD値Vsは極小になる。そこで、視差推定部103は、SAD値Vsが規定した閾値以下であって、かつ探索範囲内において最小値であるときに、対応点として決定する。なお、SAD値Vsが最小値であるにもかかわらず、閾値以下ではない場合は、対応点を不定として扱う。
【0063】
視差推定部103は、第1変換画像を用いて対応点が得られると、2枚の第1変換画像における対応点の座標位置を用いることにより点P1に対する2台のカメラ1、2の視差を求められる。視差が求められると、視差を画素値に持つ第1視差画像を生成する。さらに、第1変換画像を用いて得られた対応点ごとに数6で表される一致度Dsを求める。第1変換画像において対応点が得られたすべての画素に関して一致度Dsを求め、一致度Dsを画素値に持つ第1一致度画像を生成する。
【0064】
【数6】
【0065】
視差推定部103は、第1変換画像と同様に、第2変換画像からもSAD値Vsを用いて対応点を求める。第2変換画像についても対応点ごとに視差を求めて第2視差画像を生成し、さらに、対応点ごとに一致度Dsを求め、一致度Dsを画素値に持つ第2一致度画像を生成する。第1視差画像および第1一致度画像と第2視差画像および第2一致度画像は記憶装置12に保存される。
【0066】
次に、第1視差画像と第2視差画像とを用いて視差を決定する。視差を決定するには、まず、第1視差画像の各画素に対応する第2視差画像の画素を抽出し、両方の画素が画素値(視差)を有しているか否かを判断する。第1視差画像の画素に対応する第2視差画像の画素は、以下の関係を用いて抽出する。すなわち、第1視差画像における画素の位置を(φ1,β1)とするとき、第2視差画像において対応する画素の位置(α2,β2)は、数7の関係で表される。
【0067】
【数7】
【0068】
第1視差画像と第2視差画像とにおいて対応する画素がともに画素値を有している場合は、両方の画素値について第1一致度画像および第2一致度画像を用いることにより画素値の信頼度を評価する。
【0069】
いま、第1視差画像における位置(φ1,β1)と第2視差画像における位置(α2,β2)との両方に画素値(視差)が存在していると仮定する。この場合、第1一致度画像上の位置(φ1,β1)の画素値(一致度)と、第2一致度画像上の位置(α2,β2)の画素値(一致度)とのうち一致度を比較する。
【0070】
第1一致度画像の一致度が第2一致度画像の一致度よりも大きい場合は、第1視差画像における位置(φ1,β1)の画素値を視差として採用し、第2視差画像における位置(α2,β2)の画素値は不定値として更新する。同様にして、第2一致度画像の一致度が第1一致度画像の一致度よりも大きい場合は、第2視差画像における位置(α2,β2)の画素値を視差として採用し、第1視差画像における位置(φ1,β1)の画素値は不定値として更新する。一致度が等しい場合は、第1視差画像の位置(φ1,β1)と第2視差画像の位置(α2,β2)との画素値の平均値あるいは一方を視差として採用する。
【0071】
また、第1視差画像の位置(φ1,β1)と第2視差画像の位置(α2,β2)との一方のみが画素値(視差)を有している場合には、当該画素値を視差として採用する。第1視差画像と第2視差画像との対応する画素において画素値(視差)がともに存在しない場合は、当該位置の視差は不定とする。
【0072】
以上説明した処理を行うことによって、第1視差画像と第2視差画像とにおいて画素ごとに信頼性が高いほうの画素値(視差)が抽出されるから、抽出された画素値を用いて実空間における3次元の位置を求めると、信頼性の高い3次元情報が得られる。
【0073】
本実施形態の動作の概要をまとめると図10のように表される。すなわち、左右のカメラ1、2により撮像した2枚の撮像画像から、2枚の第1変換画像(βとφとで表される画像)と、2枚の第2変換画像(βとαとで表される画像)とが生成される。次に、2枚の第1変換画像から視差画像が求められるとともに、2枚の第2変換画像から視差画像が求められる。このようにして求めた2枚の視差画像を統合することにより、1枚の視差画像が得られるのである。
【0074】
なお、本実施形態では、ブロックマッチングの技術を採用しているが、第1視差画像と第2視差画像との画素値を求める技術は、ブロックマッチングの技術に限定されず、ステレオマッチングにおいて用いられる他の技術を採用してもよい。
【0075】
上述したように、本実施形態は、第1変換画像の水平方向の位置をカメラ1、2ごとの光軸周りの角度φで表しているので、第1変換画像では、光軸に平行な直線を歪みなく対応付けることができる。そのため、第1変換画像を用いることによって、光軸に平行な面に対するステレオマッチングを容易に行うことができる。さらに、第1変換画像に加えて第2変換画像からも視差を求め、一致度を用いて第1変換画像と第2変換画像の視差の精度を評価することで、従来よりも高い精度で視差を推定することが可能になる。
【0076】
(実施形態2)
実施形態1では、視差推定部103が、ブロックマッチングの技術を用いることにより対応点を探索している。また、対応点の探索を、第1変換画像と第2変換画像とについてそれぞれ行っている。以下では第1変換画像と第2変換画像とを区別しない場合は、単に変換画像という。
【0077】
ブロックマッチングでは、図8のように、対応点を探索しようとする一方の変換画像にウインドウW1が設定されるとともに、他方の変換画像に走査領域W2が設定される。さらに、前記他方の変換画像において走査領域W2が横軸に沿って走査され、上述した数5で定義されたSAD値Vsが極小になったときの走査領域W2の位置が対応点として求められる。
【0078】
ところで、ブロックマッチングを行う際に、変換画像において走査領域W2の位置が変化してもSAD値Vsに変化がほとんど生じなければ、対応点を求めることができない。このような事象は、変換画像の横方向において、輝度値の分布に変化が少ない場合に生じる。たとえば、変換画像において横方向に沿った帯状の領域が存在し、当該領域の輝度が横方向では変化しないような場合には対応点を求めることができない。
【0079】
実施形態1において説明したように、第1変換画像では縦方向の両端部においてカメラの光軸に平行な方向の歪みが少なく、第2変換画像では中央部においてカメラの光軸に直交する平面内の歪みが少ないという知見が得られている。対応点の探索は、歪みが少ないほうが容易であり、また信頼性も高いと考えられる。したがって、対応点を探索する画素ごとに、第1変換画像の画素が適している場合と第2変換画像の画素が適している場合とがあると言える。
【0080】
本実施形態では、視差推定部103において対応点を探索する前に、第1変換画像と第2変換画像とのどちらが対応点を求めるのに適しているかを評価するために、図11に示すように、領域評価部104を付加している。領域評価部104は、第1変換画像と第2変換画像とについて、横方向の輝度値の変化が比較的大きい領域か否かの評価を行う。視差推定部103は、領域評価部104の評価結果を用いて、第1変換画像と第2変換画像との少なくとも一方を対応点の探索に用いる。視差推定部103の前置処理として領域評価部104で評価を行い、対応点を求める対象を絞り込むから、無駄な処理が低減されることになり、演算量が低減されるとともに、ステレオマッチングの信頼性が高くなる。
【0081】
領域評価部104は、変換画像における横方向の輝度値の変化を評価するために、以下のように定義されたエッジ強度E1、E2を評価値として用いる。エッジ強度E1は第1変換画像から求められ、エッジ強度E2は第2変換画像から求められる。
E1=|I1(φ−1,β)−I1(φ+1,β)|
E2=|I2(α−1,β)−I2(α+1,β)|
なお、I1(φ,β)は第1変換画像の位置(φ,β)における輝度値であり、I2は第2変換画像の位置(α,β)における輝度値である。
【0082】
領域評価部104は、図12に示すように、第1変換画像または第2変換画像の全画素について以下の評価を行うことにより、視差推定部103において、第1変換画像と第2変換画像とのどちらを用いて対応点を探索するかを画素ごとに決定する。図12に示す動作では、第1変換画像の画素に着目してエッジ強度E1を求め、当該画素に対応する第2変換画像の画素に着目してエッジ強度E2を求めている。すなわち、第1変換画像と第2変換画像との着目する画素に対して、それぞれ横方向で前後に並ぶ画素の輝度値からエッジ強度E1、E2が求められる。
【0083】
次に、第1変換画像から求めたエッジ強度E1と第2変換画像から求めたエッジ強度E2との差の絶対値が規定の閾値T1と比較される(S11)。エッジ強度E1、E2の差の絶対値が閾値T1以下であるときには、第1変換画像と第2変換画像とのどちらから視差を求めても信頼性は同程度と考えられる。したがって、エッジ強度E1、E2の差の絶対値が閾値T1以下である場合は(S11:no)、着目する画素は、対応点を求める際に、第1変換画像と第2変換画像との両方を用いるように定められる(S12)。
【0084】
一方、エッジ強度E1、E2の差の絶対値が閾値T1を超える場合は(S11:yes)、エッジ強度E1、E2の大小が比較される(S13)。エッジ強度E1、E2は大きいほうが対応点の探索が容易であると考えられるから、エッジ強度E1がエッジ強度E2よりも大きい場合は(S13:yes)、着目する画素は、第1変換画像を用いて対応点の探索が行われるように条件が定められる(S14)。また、エッジ強度E1がエッジ強度E2よりも小さい場合は(S13:no)、着目する画素について、第2変換画像を用いて対応点の探索が行われるように条件が定められる(S15)。
【0085】
上述した処理は、第1変換画像のすべての画素について行われる(S16)。また、領域評価部104での評価結果は、演算処理部10に設けた記憶装置12を介して視差推定部103に引き渡される。図12の手順で対応点の探索を行う領域を振り分けると、第1変換画像21は、図13(a)のように、第1変換画像21のみを用いる領域211と、第1変換画像21および第2変換画像22の両方を用いる領域212と、対応点の探索に用いない領域213とに分離される。また、第2変換画像22は、図13(b)のように、第2変換画像22のみを用いる領域221と、第1変換画像21および第2変換画像22の両方を用いる領域222と、対応点の探索に用いない領域223とに分離される。
【0086】
本実施形態では、視差推定部103が対応点を探索して視差を求める処理を行う前に、領域評価部104が第1変換画像と第2変換画像とのどちらを用いて対応点を求めるかの条件を定めている。したがって、第1変換画像と第2変換画像とにおいて視差を求める領域が絞り込まれる。すなわち、第1変換画像と第2変換画像との全領域について対応点を求める場合に比較して演算量が低減される。しかも、領域評価部104は、画素ごとに求められる視差の信頼性をできるだけ高くするように、第1変換画像と第2変換画像とから対応点を探索する画素を抽出するから、求められる視差の信頼性が高くなる。
【0087】
上述した動作では、着目する画素に対して横方向に隣接する画素からエッジ強度E1、E2を求めているが、ソーベルオペレータのように、画像処理技術においてエッジ強度を求めたり輝度値の勾配方向を求めるために用いられている他の技術を採用してもよい。他の構成および動作は実施形態1と同様であるから説明を省略する。
【0088】
(実施形態3)
実施形態1は、カメラ1、2で撮像したすべての画素を対象として、第1変換部101と第2変換部102とにおいて撮像画像の変換を行っているから、計算量が比較的多くなっている。本実施形態では、第1変換部101と第2変換部102とにおいて撮像画像を変換する領域をあらかじめ制限することにより計算量を低減する技術について説明する。
【0089】
第1変換部101と第2変換部102とは、それぞれ座標を変換する機能と、変換後の座標に輝度値を対応付ける機能とを備えている。座標の変換は、数1〜4を用いて行うから、一部はルックアップテーブルを用いて比較的簡単な処理で行うことができるが、変換後の座標に輝度値を対応付ける処理は、逆変換を伴うから計算量の増加につながる。
【0090】
そこで、第1変換部101は、座標の変換を行った後に、図14のように、第1変換画像21におけるβ=0の中心線210からみて角度βが規定の閾値h1(たとえば、h1=30度)以上になるという条件を満たす領域214のみで輝度値を対応付ける処理を行う。すなわち、第1変換部101は、第1変換画像21において|β|≧h1となる領域214にのみ画素値(輝度値)を与える処理を行う。
【0091】
第1変換画像の各画素に輝度値を対応付けるには、第1変換画像の各画素の位置(φ,β)からカメラ1、2が撮像した画像の位置(u,v)を求める処理が必要である。さらに、求めた位置(u,v)の周辺の画素の輝度値を用いて補間演算により輝度値を決定する必要がある。したがって、第1変換画像の各画素に輝度値を対応付ける処理は、撮像された撮像画像の位置(u,v)を第1変換画像の各画素の位置(φ,β)に変換する処理よりも計算量が多くなる。これに対して、本実施形態では、輝度値を対応付ける範囲を制限したことによって、計算量の低減が可能になっている。
【0092】
同様にして、第2変換部102は、座標の変換を行った後に、図15のように、第2変換画像22のβ=0の中心線220からみて角度βが規定の閾値h2(たとえば、h2=60度)以下になるという条件を満たす領域224のみで輝度値を対応付ける処理を行う。すなわち、第2変換部102は、第2変換画像22において|β|≦h2となる領域224にのみ画素値(輝度値)を与える処理を行う。このように、第2変換画像22についても輝度値を対応付ける範囲を制限することにより計算量が低減されることになる。
【0093】
第1変換画像21および第2変換画像22が一部領域になる点を除いて実施形態1と同様であって、第1変換画像21および第2変換画像22が得られた後は、第1視差画像および第1一致度画像と第2視差画像および第2一致度画像を求め、視差を決定する処理を行う。また、本実施形態において示した閾値h1,h2は一例であって、これらの閾値h1,h2は適宜に設定することが可能である。とくに、撮像画像全体の視差を求める必要がない場合には、第1変換画像および第2変換画像において輝度値を対応付ける領域をさらに狭めてもよい。また、第1変換画像と第2変換画像とにおいて輝度値を対応付ける領域が重複しないように閾値h1,h2を設定してもよい。他の構成および動作は実施形態1と同様である。
【0094】
ここに、本実施形態の構成は、以下の知見に基づいている。すなわち、第1変換画像21では、角度βが大きい領域214で光軸に平行な面が歪みなく反映されるので、ステレオマッチングが容易になる。すなわち、領域214では、第2変換画像22から求めた第2視差画像の画素値(視差)が採用される確率が低く、第1変換画像21から求めた第1視差画像の画素値が採用される確率が高い。そのため、角度βが大きい領域214では第2変換画像よりも第1変換画像21を用いることが好ましく、領域214では第2変換画像22を用いないようにすれば計算量の低減を図ることができる。
【0095】
一方、第2変換画像22では、角度βが小さい領域において光軸に対して交差する面が歪みなく反映され、光軸に平行な面の歪みも小さい。したがって、角度βが小さい領域においては、第1変換画像21から得られる第1視差画像の画素値(視差)よりも第2変換画像22から求められる第2視差画像の画素値が採用される確率が高くなる。そのため、領域214を除く領域では、第1変換画像21を用いないようにすれば計算量の低減を図ることができる。
【0096】
(実施形態4)
本実施形態は、実施形態2と同様に第1変換画像および第2変換画像において一部の領域にのみ輝度値を対応付ける技術を採用することにより計算量を低減させている。実施形態2では、第1変換画像に対して用いる閾値h1と、第2変換画像に対して用いる閾値h2とを異ならせているが、本実施形態では第1変換画像と第2変換画像とに対して同じ閾値h3を用いている点が相違する。
【0097】
すなわち、本実施形態では、第1変換画像に対しては角度βが閾値h3以上になるという条件を満たす領域に輝度値を対応付け、第2変換画像に対しては角度βが閾値h3以下になるという条件を満たす領域に輝度値を対応付けている。したがって、視差を求める際に第1変換画像と第2変換画像とにおいて重複する領域がなく、それだけ計算量を低減させることができる。閾値h3は、とくに制限はないが、ステレオマッチングでの一致度評価の信頼性の低下を防止するには、たとえば、45度に設定することが好ましい。
【0098】
上述したように、本実施形態の第1変換部101および第2変換部102の動作は、閾値h3が異なる点を除いて実施形態2と同様である。ただし、第1変換部101で得られる第1変換画像と第2変換部で得られる第2変換画像とは角度βの重複する領域がないから、本実施形態は、図16のように、第1変換部101が生成した第1変換画像と第2変換部102が生成した第2変換画像とを合成する画像合成部105を付加している。
【0099】
したがって、カメラ1、2ごとに撮像した撮像画像から生成した第1変換画像と第2変換画像との4種類の画像を視差推定部103に引き渡すのではなく、画像合成部105が合成した後の2種類の画像を視差推定部103に引き渡すことになる。そのため、視差推定部103は、第1視差画像と第2視差画像との2種類の視差画像ではなく1種類の視差画像を生成し、また、第1一致度画像と第2一致度画像との2種類の一致度画像ではなく1種類の一致度画像を生成する。言い換えると、視差推定部103は、合成後の2種類の画像(変換画像)を用いて1回だけの対応付けの処理により視差を求める。
【0100】
ところで、第1変換画像と第2変換画像とを画像合成部105において合成すると、境界において画像が不連続になっている場合に、ステレオマッチングでの一致度評価の信頼性が低下する場合がある。すなわち、境界において画像が不連続である場合、ブロックマッチングの技術を用いたステレオマッチングにおいて、境界を含むウインドウW1と走査領域W2との中に距離の異なる物体が含まれ、結果的に一致度評価の信頼性が低下することになる。
【0101】
この問題は、ウインドウW1と走査領域W2との画素数を少なくすれば低減されるが、ウインドウW1と走査領域W2との画素数を少なくするとSAD値の変化が小さくなり、対応点を抽出する精度が低下することになる。
【0102】
一方、合成された変換画像の境界が不連続になるか否かは、閾値h3に依存しており、数4によれば、β=45度であれば、Y=Zであるから、α=φとなり、閾値h3が45度であれば、変換画像の境界が連続することになる。そのため、上述したように閾値h3は45度が望ましいと言える。ただし、閾値h3が45度以外であっても、境界付近の信頼性が低下するだけであって、他の領域については視差の信頼性は低下しない。
【0103】
他の構成および動作は実施形態1、実施形態2と同様であって、本実施形態では第1変換画像と第2変換画像とが重複しないから、視差推定部103での計算量が実施形態2よりも低減される。その結果、実施形態2よりも少ない計算量で実空間の3次元情報を求めることが可能になる。また、第1変換画像と第2変換画像の境界において画素値が一致するから、境界を含む領域でブロックマッチングの技術を用いたステレオマッチングを行う場合でも、一致度の信頼性が高められる。すなわち、一致度の信頼性が高まることによりステレオマッチングの信頼性も向上する。
【0104】
(実施形態5)
実施形態1において説明したように、第1変換画像は縦方向の両端部においてカメラの光軸に平行な方向の歪みが少なく、第2変換画像は中央部においてカメラの光軸に直交する平面内の歪みが少ないという特性を有している。このことから、実施形態3、4のように、第1変換画像と第2変換画像とから適宜に領域を抽出すれば、縦方向の両端部および中央部において歪みの少ない領域を用いて対応点を抽出することができる。ただし、第1変換画像と第2変換画像とのいずれについても、横方向の両端部における歪みは比較的大きく、この領域は、第1変換画像と第2変換画像とのどちらを用いても他の領域と比較すると視差の信頼性が低下する。
【0105】
そこで、本実施形態では、カメラの台数を増加させることにより、求められる視差の信頼性を向上させている。いま、室内における天井面の中央部にカメラを配置した場合を想定する。この場合、第1変換画像は、縦方向(β方向)の両端部において鉛直方向に沿った壁面や柱の画像について歪みが少なく、また、第2変換画像は、中央部において水平面に沿った床面や机の上面の画像について歪みが少なくなる。したがって、ステレオビジョンにより3次元情報を計測するカメラを2組設け、第1変換画像の縦方向(β方向)を互いに直交させておけば、室内のすべての壁面や柱について歪みの少ない画像を得ることが可能になる。
【0106】
上述した知見では、2台で一組になるカメラを2組設け、合計4台のカメラによって、室内のすべての領域について歪みの少ない画像を得ることが可能になることがわかる。たとえば、ステレオビジョンのための2台のカメラ111、112を、図17(a)に示すように、図の左右に並べて天井面の中央部に配置した場合、第1変換画像の中で室内の左右方向に沿った壁面301、302に相当する領域は歪みが少なくなる。一方、ステレオビジョンのためのカメラ113、114を、図17(b)に示すように、天井面に沿って図17(a)に示す位置に対して90度回転させた場合、第1変換画像の中で、上記壁面301、302に直交する壁面303、304に相当する領域は歪みが少なくなる。
【0107】
本実施形態では、4台のカメラ111、112、113、114のうちの1台を両方の組で共用することにより、3台のカメラを用いて4台のカメラを用いる場合と同様の機能を達成する例を示す。図17に示す例に従って、カメラ111とカメラ113とが共用されている場合を例示する。したがって、3台のカメラ111、112、114を用いているものとする。3台のカメラ111、112、114は、直角二等辺三角形の頂点の位置に光学中心を位置させるように配置される。すなわち、共用されるカメラ111に対して残りのカメラ112、114が等距離に配置される。ただし、光学中心の位置が直角二等辺三角形の頂点をなすことは必須ではなく、たとえば、3台のカメラ111、112、114の光学中心の位置が正三角形をなすように配置することも可能である。
【0108】
以下では、直角二等辺三角形の頂点の位置にカメラ111、112、114が配置されている場合を例として説明する。ステレオビジョンにより3次元情報を計測する際は、3台のカメラ111、112、114のうちの2台ずつを組み合わせて用いる。つまり、2台のカメラ111、112からなる組と、2台のカメラ111、114からなる組とをそれぞれ用いてステレオビジョンによる3次元情報の計測を行う。各組ごとの3次元情報の計測は、実施形態1と同様に行われる。
【0109】
ところで、4台のカメラを用いる場合は、2台ずつのカメラを撮像画像の水平方向(x方向)に並べて配置することができる。しかしながら、3台のカメラを用いる場合は、2台のカメラ(たとえば、カメラ111とカメラ112)を撮像画像の水平方向(x方向)に並べると、他の2台のカメラ(たとえば、カメラ111とカメラ114)は撮像画像の水平方向に並ばなくなる。この場合、カメラ114の水平方向は、カメラ111、112のベースラインの方向と平行させるか、直交させることになる。
【0110】
したがって、実施形態1と同じ数式を用いて第1変換画像および第2変換画像を生成するには、図18のように、第1変換部101および第2変換部102に前置して、撮像画像を90度回転させるための回転処理部106が必要になる。ベースラインの方向が変換前の画像の水平方向に一致していない場合には、回転処理部106を用いて撮像画像を適宜に回転させることによって、ベースラインの方向を変換前の画像の水平方向に一致させることができる。ここに、3台のカメラ111、112、114がそれぞれ撮像した3枚の撮像画像は、記憶装置12に記憶されているから、回転処理部106は、必要に応じて画素を読み出す方向を変更する機能があればよい。
【0111】
上述のように、回転処理部106が設けられていることにより、実施形態1と同じ数式(変換式)を用いて第1変換画像および第2変換画像を生成することが可能になる。ただし、回転処理部106によって撮像画像を回転させる代わりに、第1変換画像および第2変換画像への変換を行うための数式により回転と等価な変換を行ってもよい。
【0112】
上述した構成によって、第1変換画像および第2変換画像は2組ずつ生成される。各組ごとの処理は実施形態1と同様であって、第1変換画像の組と第2変換画像の組とを用いて視差が求められる。ここに、視差は組ごとに得られるから、選択処理部107を用いて信頼性の高いほうの視差を選択する。視差の信頼性の評価には、実施形態1と同様に、一致度Dsの評価を行えばよい。なお、この動作では選択処理部107において一致度Dsの評価を行うから、選択処理部107には、第1一致度画像および第2一致度画像も与えられる。
【0113】
他の構成および動作は実施形態1と同様であるから説明を省略する。また、本実施形態は、実施形態2〜4の構成および動作と組み合わせて用いることが可能である。ここに、上述したように、第2変換画像は中央部において水平面に沿った床面や机の上面の歪みが少なく、第1変換画像は縦方向の両端部において鉛直方向に沿った壁面や柱の歪みが少ない。したがって、実施形態3、4のように領域を選択する場合は、各組ごとに第1変換画像の縦方向における両端部の領域を選択すれば、室内全体において対応点の探索が容易になる。さらに、実施形態2のように、対応点の探索が容易になる領域を評価する場合、各組ごとに第1変換画像と第2変換画像との評価を行い、さらに、異なる組について同様の評価を行えばよい。異なる組について評価を行う場合、エッジ強度の差の大小を比較し、エッジ強度の差が大きい組を優先して採用すればよい。
【符号の説明】
【0114】
1、2 カメラ
111、112、113、114 カメラ
10 演算処理部
101 第1変換部
102 第2変換部
103 視差推定部
104 領域評価部
105 画像合成部
106 回転処理部
107 選択処理部
【特許請求の範囲】
【請求項1】
光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラと、前記カメラがそれぞれ撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求める演算処理部とを備え、前記撮像画像における画素の位置が前記カメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台の前記カメラから選択される2台の前記カメラの光学中心を結ぶ第1方向と前記カメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるように前記カメラごとに規定された第2座標系とを用い、前記演算処理部は、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、前記第1変換画像および前記第2変換画像を用いて前記2台の前記カメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備えることを特徴とするステレオカメラ装置。
【請求項2】
前記視差推定部は、前記2台の前記カメラごとに撮像した前記画像からそれぞれ生成される2枚の前記第1変換画像における対応点を抽出することにより前記部位に対する視差を求めるとともに当該対応点の一致度を評価し、前記カメラごとに撮像した前記画像を用いてそれぞれ生成される2枚の前記第2変換画像における対応点を抽出することにより前記部位に対する視差を求めるとともに当該対応点の一致度を評価し、前記第1変換画像と前記第2変換画像との画素ごとに求めた視差のうち前記部位が同じである画素については、一致度が高いほうの視差を当該部位の視差として採用することを特徴とする請求項1記載のステレオカメラ装置。
【請求項3】
前記第1変換画像と前記第2変換画像との両方について着目する画素ごとに周囲の輝度値の変化に関する評価値を求め、前記評価値の差が規定の閾値を超える場合は前記第1変換画像と前記第2変換画像とのうち輝度値の変化が大きいほうを当該画素の対応点の抽出に用い、前記評価値の差が前記閾値未満の場合に前記第1変換画像と前記第2変換画像との両方を当該画素の対応点の抽出に用いるように条件を定める領域評価部が付加され、前記視差推定部は、前記領域評価部が定めた前記条件に従って画素ごとに対応点を抽出することを特徴とする請求項2記載のステレオカメラ装置。
【請求項4】
前記第1変換部および前記第2変換部は、前記第1変換画像と前記第2変換画像とについて、前記第1変換画像と前記第2変換画像との一方を用いて前記対応点を抽出する第1の領域と、前記第1変換画像と前記第2変換画像との両方を用いて前記対応点を抽出する第2の領域とのうち、少なくとも前記第1の領域をあらかじめ与えられた条件に従って定める機能を有することを特徴とする請求項2記載のステレオカメラ装置。
【請求項5】
請求項1〜4のいずれか1項に記載のステレオカメラ装置を2組備え、前記ステレオカメラ装置ごとに設けられた前記2台ずつの前記カメラが、前記第1方向を互いに交差させるとともに前記カメラの光軸を平行にして配置され、前記ステレオカメラ装置ごとに設けられた前記視差推定部が推定した視差のうち信頼性の高いほうの視差を選択する選択処理部を備えることを特徴とするステレオカメラシステム。
【請求項6】
前記ステレオカメラ装置ごとに設けられた前記2台ずつの前記カメラのうち各1台が共用されていることを特徴とする請求項5記載のステレオカメラシステム。
【請求項7】
光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラが撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求めるステレオカメラ装置に用いられ、前記撮像画像における画素の位置が前記カメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台の前記カメラから選択される2台の前記カメラの光学中心を結ぶ第1方向と前記カメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるように前記カメラごとに規定された第2座標系とを用い、コンピュータを、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、前記第1変換画像および前記第2変換画像を用いて前記2台の前記カメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備える演算処理部として機能させるプログラム。
【請求項1】
光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラと、前記カメラがそれぞれ撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求める演算処理部とを備え、前記撮像画像における画素の位置が前記カメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台の前記カメラから選択される2台の前記カメラの光学中心を結ぶ第1方向と前記カメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるように前記カメラごとに規定された第2座標系とを用い、前記演算処理部は、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、前記第1変換画像および前記第2変換画像を用いて前記2台の前記カメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備えることを特徴とするステレオカメラ装置。
【請求項2】
前記視差推定部は、前記2台の前記カメラごとに撮像した前記画像からそれぞれ生成される2枚の前記第1変換画像における対応点を抽出することにより前記部位に対する視差を求めるとともに当該対応点の一致度を評価し、前記カメラごとに撮像した前記画像を用いてそれぞれ生成される2枚の前記第2変換画像における対応点を抽出することにより前記部位に対する視差を求めるとともに当該対応点の一致度を評価し、前記第1変換画像と前記第2変換画像との画素ごとに求めた視差のうち前記部位が同じである画素については、一致度が高いほうの視差を当該部位の視差として採用することを特徴とする請求項1記載のステレオカメラ装置。
【請求項3】
前記第1変換画像と前記第2変換画像との両方について着目する画素ごとに周囲の輝度値の変化に関する評価値を求め、前記評価値の差が規定の閾値を超える場合は前記第1変換画像と前記第2変換画像とのうち輝度値の変化が大きいほうを当該画素の対応点の抽出に用い、前記評価値の差が前記閾値未満の場合に前記第1変換画像と前記第2変換画像との両方を当該画素の対応点の抽出に用いるように条件を定める領域評価部が付加され、前記視差推定部は、前記領域評価部が定めた前記条件に従って画素ごとに対応点を抽出することを特徴とする請求項2記載のステレオカメラ装置。
【請求項4】
前記第1変換部および前記第2変換部は、前記第1変換画像と前記第2変換画像とについて、前記第1変換画像と前記第2変換画像との一方を用いて前記対応点を抽出する第1の領域と、前記第1変換画像と前記第2変換画像との両方を用いて前記対応点を抽出する第2の領域とのうち、少なくとも前記第1の領域をあらかじめ与えられた条件に従って定める機能を有することを特徴とする請求項2記載のステレオカメラ装置。
【請求項5】
請求項1〜4のいずれか1項に記載のステレオカメラ装置を2組備え、前記ステレオカメラ装置ごとに設けられた前記2台ずつの前記カメラが、前記第1方向を互いに交差させるとともに前記カメラの光軸を平行にして配置され、前記ステレオカメラ装置ごとに設けられた前記視差推定部が推定した視差のうち信頼性の高いほうの視差を選択する選択処理部を備えることを特徴とするステレオカメラシステム。
【請求項6】
前記ステレオカメラ装置ごとに設けられた前記2台ずつの前記カメラのうち各1台が共用されていることを特徴とする請求項5記載のステレオカメラシステム。
【請求項7】
光軸を平行にして配置され視野の少なくとも一部が重複する複数台のカメラが撮像した複数枚の撮像画像から視野内の各部位の3次元情報を求めるために当該部位に対する視差を求めるステレオカメラ装置に用いられ、前記撮像画像における画素の位置が前記カメラごとに受光面に規定した2次元の直交座標で表される第1座標系と、前記複数台の前記カメラから選択される2台の前記カメラの光学中心を結ぶ第1方向と前記カメラごとの光軸の方向である第2方向と第1方向および第2方向に直交する第3方向との3軸の周りのそれぞれの角度によって原点から前記部位を見込む方向が表されるように前記カメラごとに規定された第2座標系とを用い、コンピュータを、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第2方向の軸周りの角度を水平方向の位置として表される第1変換画像に変換する第1変換部と、前記撮像画像を第1方向の軸周りの角度を垂直方向の位置とし第3方向の軸周りの角度を水平方向の位置として表される第2変換画像に変換する第2変換部と、前記第1変換画像および前記第2変換画像を用いて前記2台の前記カメラの視野における前記部位を対応付けることにより前記部位に対する視差を求める視差推定部とを備える演算処理部として機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図5】
【図6】
【図7】
【図2】
【図3】
【図4】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図5】
【図6】
【図7】
【公開番号】特開2012−247364(P2012−247364A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−120757(P2011−120757)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]