(58)【調査した分野】(Int.Cl.,DB名)
第1カメラ(21)によって撮像された基準画像の着目画素に対応する画素として尤もらしい画素を、第2カメラ(22)によって撮像された参照画像から探索することによって、視差計算を実行する測距装置(10)であって、
前記基準画像に対して所定形状の第1窓を複数箇所に配置し、前記着目画素を含むk(≧3)個の画素を選択することを複数回、実行する第1選択部(S110)と、
前記第1窓の各々の配置に対応する第2窓をn(≧2)箇所前記参照画像に配置し、比較画素を含む前記k個の画素を、前記n箇所において選択する第2選択部(S120)と、
各々が前記第1窓及び前記第2窓の形状の一部を区画する所定形状を有し、前記着目画素または前記比較画素と、更に1つ以上の画素とを含むm(≧2)種類の部分領域それぞれについて、前記基準画像の画素群の輝度値と前記参照画像の画素群の輝度値との相違度を算出する算出部(S130,S140,S150)と、
前記第1窓に含まれる前記着目画素それぞれについて、前記参照画像に対する1箇所の前記第2窓の配置毎に前記m個、算出された相違度に基づき、前記n個の前記比較画素それぞれとの相違度を決定する決定部(S160,S170,S180)と、
前記着目画素それぞれに対応する尤もらしい画素を、前記決定された相違度に基づき、前記n個の前記比較画素から1つ取得する取得部(S200,S210)と、
を備える測距装置。
前記決定部は、前記第1窓内の前記k個の画素の輝度値に基づき信頼度を算出し、前記算出された相違度に前記信頼度を加味して、前記n個の前記比較画素それぞれとの相違度を決定する
請求項1から請求項5までの何れか一項に記載の測距装置。
前記算出部は、前記第1窓内の画素それぞれの輝度値から前記着目画素の輝度値を減算した結果と、前記第2窓内の画素それぞれの輝度値から前記比較画素の輝度値を減算した結果とを比較することによって、前記相違度を算出する
請求項1から請求項7までの何れか一項に記載の測距装置。
第1カメラによって撮像された基準画像の着目画素に対応する画素として尤もらしい画素を、第2カメラによって撮像された参照画像から探索することによって、視差計算を実行するためのプログラムであって、
前記基準画像に対して、所定形状の第1窓を複数箇所に配置し、前記着目画素を含むk(≧3)個の画素を選択することを複数回、実行する第1選択機能と、
前記第1窓の各々の配置に対応させて、前記参照画像に対して前記第1窓と同じ形状の第2窓をn(≧2)箇所に配置し、比較画素を含む前記k個の画素を、前記n箇所において選択する第2選択機能と、
各々が前記第1窓及び前記第2窓の一部を区画する予め定められた形状を有し、前記着目画素または前記比較画素と、更に1つ以上の画素とを含むm(≧2)種類の部分領域それぞれについて、前記基準画像の画素群の輝度値と前記参照画像の画素群の輝度値との相違度を算出する算出機能と、
前記第1窓に含まれる前記着目画素それぞれについて、前記m個、算出された相違度に基づき、前記n個の前記比較画素それぞれとの相違度を決定する決定機能と、
前記着目画素それぞれに対応する尤もらしい画素を、前記決定された相違度に基づき、前記n個の前記比較画素から1つ取得する取得機能と、
を測距装置に実現させるためのプログラム。
測距装置が、第1カメラによって撮像された基準画像の着目画素に対応する画素として尤もらしい画素を、第2カメラによって撮像された参照画像から探索し、視差計算を実行することによって、障害物までの距離を測定する方法であって、
前記基準画像に対して所定形状の第1窓を複数箇所に配置し、前記着目画素を含むk(≧3)個の画素を選択することを複数回、実行し、
前記第1窓の各々の配置に対応する第2窓をn(≧2)箇所前記参照画像に配置し、比較画素を含む前記k個の画素を、前記n箇所において選択し、
各々が前記第1窓及び前記第2窓の形状の一部を区画する所定形状を有し、前記着目画素または前記比較画素と、更に1つ以上の画素とを含むm(≧2)種類の部分領域それぞれについて、前記基準画像の画素群の輝度値と前記参照画像の画素群の輝度値との相違度を算出し、
前記第1窓に含まれる前記着目画素それぞれについて、前記参照画像に対する1箇所の前記第2窓の配置毎に前記m個、算出された相違度に基づき、前記n個の前記比較画素それぞれとの相違度を決定し、
前記着目画素それぞれに対応する尤もらしい画素を、前記決定された相違度に基づき、前記n個の前記比較画素から1つ取得する
ことを含む測距方法。
【発明を実施するための形態】
【0007】
実施形態1を説明する。
図1に示す自動運転車1は、少なくとも、自動で操舵および制動が可能なレベル以上の自動運転車である。自動運転車1は、ECU10を搭載する。
【0008】
ECU10は、カメラECUである。ECU10は、CPU11と、記憶媒体12とを備える。ECU10は、カメラ21とカメラ22とから撮像データとして各画素の輝度値を取得し、後述する画像認識処理を実行する。ECU10は、画像認識処理を実行するためのプログラムを、記憶媒体12に記憶している。
【0009】
カメラ21,22は、自動運転車1の前方が撮像範囲内となるように搭載されている。カメラ21,22は、ステレオカメラを構成している。カメラ21は、自動運転車1の進行方向の左側に位置する。カメラ22は、自動運転車1の進行方向の右側に位置する。カメラ21による撮像画像を左画像ともいい、カメラ22による撮像画像を右画像ともいう。
【0010】
制御部30は、複数のECUから構成される。制御部30は、画像認識処理の結果をECU10から取得し、衝突を回避するための操舵および制動を実現する。
【0011】
ECU10は、
図2に示す画像認識処理を、自動運転車1の走行中、繰り返し実行する。ECU10は、まず、S100として、視差計算を実行する。
【0012】
ECU10は、視差計算を開始すると、
図3に示すようにS110として、着目画素を選択する。
【0013】
本実施形態の説明においては、
図4に示すように、左画像および右画像ともに、X方向に14画素、Y方向に8画素であると仮定する。X方向は画像の水平方向、Y方向は画像の垂直方向である。実際には、画像は、X方向およびY方向ともに、もっと細かい画素に分割されている。
【0014】
本実施形態においては、左画像を基準画像、右画像を参照画像として用いる。このため、着目画素の選択として、左画像を構成する画素のうちの1つを選択する。選択の順序は、どのような順序であってもよい。本実施形態においては、左上の画素を初めに選択し、1つずつ右にずらしていく。右端まで選択したら、Y方向について1つ下にずらして、左端から始める。このようにして、全ての画素を選択する。
【0015】
着目画素を選択すると、
図4に示すように、付随して8つの周辺画素が選択される。着目画素および周辺画素を取り囲む領域は、窓という。窓は、1辺が3画素の正方形である。本実施形態においては、着目画素および周辺画素に配置される窓は、形状が同じであるので、特に区別せず、同じ名称で呼ぶ。
【0016】
なお、X方向およびY方向それぞれの端に位置する画素は、周辺画素を8つ選択することができない。このため、端に位置する画素は、着目画素の選択対象から除外されている。
【0017】
次にECU10は、S120に進み、比較画素を選択する。比較画素は、参照画像を構成する画素のうちの1つの画素である。比較画素として選択対象になるのは、着目画素とY方向の位置が一致する画素である。比較画素を選択する際においても、窓に含まれる周辺画素が付随して選択される。X方向については、X方向の端を除き、着目画素とY方向の位置が一致する全ての画素が対象となり、S120を実行するごとに1つずつ選択される。
【0018】
なお、比較画素の選択に伴い、視差値が決定される。ここでいう視差値は、画素を単位とする。例えば、
図4に示した例では、着目画素のX方向の位置は、左から6番目である。以下、X方向の位置が左からn番目であることを、X=nと表記する。このため、比較画素の位置がX=6の場合、視差値はゼロである。一方、比較画素の位置がX=10の場合、視差値は4であり、比較画素の位置がX=2の場合、視差値は−4である。各視差値は、後述する信頼度付き相違度の値とセットで記憶される。
【0019】
ECU10は、比較画素を選択するとS130に進み、窓内の各画素の輝度値から、中心画素の輝度値を減算する。中心画素とは、着目画素および比較画素のことである。S130の対象は、基準画像の窓内の画素と、参照画像の窓内の画素との両方である。例えば、窓内の画素が
図5に示す場合、S130を実行すると、
図6に示す値になる。中心画素については、S130を実行すると、当然、値がゼロになる。
【0020】
なお、
図5に示す輝度値64は白線、輝度値0はアスファルトを撮像した結果を想定したものである。つまり、
図5の基準画像の窓、参照画像の窓の何れについても、白線とアスファルトとの境界を含んでいる。理想的には、境界のY方向の位置は、基準画像と参照画像とで一致する。しかし、
図5に示す例は、1画素分、Y方向についてずれている。なお、
図5で示した輝度値の例は、
図2で示した14×8画素ではなく、実際のもっと細かく分割された画素を想定している。
【0021】
次にECU10は、S140に進み、窓内の各画素の輝度値の差の絶対値(以下、輝度値差)を算出する。
図6には、S140の様子が示される。中心画素については、S140を実行しても、当然、値はゼロである。
【0022】
次にECU10は、S150に進み、小窓ごとに相違度を算出する。相違度とは、小窓内の輝度値差の和である。小窓とは、中心画素を含み、且つ、窓内の一部の範囲を区画する領域のことである。言い換えると、小窓とは、中心画素を含み、且つ、窓内の一部を除外した領域のことである。本実施形態においては、6つの画素を含む矩形の範囲として、
図7〜
図11に示すように、4種類が用意されている。
【0023】
次にECU10は、S160に進み、最小の相違度を選択する。
図7〜
図11に示した例では、
図9の相違度192が選択される。
【0024】
次にECU10は、S170に進み、信頼度を算出する。信頼度は、窓内の画素群に対して1つの値が算出される。本実施形態においては、信頼度として、Y方向のエッジ強度を算出する。つまり、
図11に示すように、Y方向に隣接する画素の輝度値の差の絶対値を算出し、合計した値を、Y方向のエッジ強度、つまり信頼度として算出する。
【0025】
次にECU10は、S180に進み、信頼度付き相違度を算出する。具体的には、S160で選択した相違度を、信頼度で除算する。上記の例では、選択された相違度、及び信頼度ともに192であるので、信頼度付き相違度は1である。なお、先述したように、信頼度付き相違度に対して、視差値の値が対応付けられて、セットで記憶される。以下、本実施形態においては、信頼度付き相違度を、単に、相違度という。
【0026】
次にECU10は、S190に進み、現在の着目画素に対して対象になり得る比較画素を全て選択したかを判定する。ECU10は、選択していない比較画素が残っている場合、S190でNOと判定し、S120に戻る。
【0027】
ECU10は、全ての比較画素を選択した場合、S190でYESと判定し、S195に進む。ECU10は、S195に進むと、着目画素を全て選択したかを判定する。ECU10は、選択していない着目画素が残っている場合、S195でNOと判定し、S110に戻る。ECU10は、全ての着目画素を選択した場合、S195でYESと判定し、視差計算を終える。
【0028】
次にECU10は、S200に進み、視差を推定する。上記で説明したように、視差計算を完了すると、各着目画素について、最も相違度の値が小さい比較画素が定まる。この最も相違度の値が小さい比較画素が、着目画素に対応する画素として最も尤もらしいと推定できる。そこで、本実施形態においては、相違度に基づき、視差を推定する。
【0029】
次にECU10は、S300に進み、視差画像を作成する。視差画像とは、各画素に対して、視差(つまり距離)を付与した画像である。
【0030】
次にECU10は、S400に進み、障害物の情報を出力して、S100から画像認識処理を繰り返す。障害物の情報は、制御部30に入力される。障害物の情報とは、自動車や人などが、衝突の可能性が有る程に接近している場合に、その位置と距離とを示す情報である。制御部30は、障害物の情報を基に、衝突を回避するため、操舵や制動を自動で実行する。
【0031】
以上に説明した本実施形態によれば、4種類の小窓を用いて相違度を決定するため、窓内の細かな特徴を捉えることができ、ひいては相違度の尤もらしさが向上する。特に効果が発揮されるのは、
図4に例示したX方向に沿った白線等の場合である。このような白線の場合、
図5に例示したようにY方向に1画素分ずれただけで、輝度値が大きく変化し、窓内全体の相違度が小さいことと、尤もらしさとの相関が崩れることがある。本実施形態によれば、このような場合であっても、上記したように小窓を用いることによって、尤もらしい相違度を決定することができる。
【0032】
さらに、S130で窓内の画素の輝度値から、中心画素の輝度値を減算した結果を、S140での輝度値の差の算出に用いるので、窓内のより細かな形状を評価することができる。
【0033】
小窓による演算は、画一的に実行できるので、処理負荷が過大になることは回避されている。
【0034】
信頼度を用いているので、視差の推定精度が向上する。エッジ強度を信頼度として用いているのは、エッジ強度が強ければ強いほど、窓内の輝度値の分布に特徴が出やすく、着目画素に対応する画素として尤もらしい場合と、そうでない場合との差がはっきりしやすいからである。
【0035】
実施形態2を説明する。実施形態2の説明は、主に実施形態1と異なる点を対象にする。特に説明しない点については、実施形態1と同じである。
【0036】
実施形態2では、
図12に示すように、S200としての視差の推定に代えて、S210として、視差の最適化を実行する。視差値の最適化は、既知のビタビアルゴリズムを用いる。ビタビアルゴリズムは、尤もらしい経路を探索する動的計画法アルゴリズムの一種である。このように本実施形態でいう最適化とは、最適化問題の解析という意味で用いており、必ずしも、得られる結果がこの上なく優れていることを保証している訳ではない。
【0037】
以下、
図13に示された例を用いて説明する。視差計算を完了すると、基準画像において着目画素として選択された画素に対して、視差値と相違度とのセットが複数、対応付けられている。このセットを用い、視差値をXY平面に直交する座標(Z軸)、相違度をXYZ空間における各位置に格納された値として整理する。
図13は、このように整理された値を、基準画像における或るY方向位置に並んだ画素について抜き出して示す。
【0038】
Y方向には移動せず、X=2を入口、X=13を出口とする経路を探索する場合を考える。X=2において入口となる視差値は、全通りが対象となる。以下、X=2の画素に対して相違度1が格納された視差値を入口とする例で考える。入口となる視差値から、X=3の画素に対応付けられた視差値と相違度とのセットに移動する経路は、X=3の画素に対応付けられた視差値の数だけ存在する。
【0039】
これらの経路のうち、最もコストが小さい経路が何れであるかを特定する。コストは、移動先の相違度と、移動に伴う視差値の変化とによって定まる。つまり、移動先の相違度が小さければ小さいほど、コストも小さくなる。そして、移動元と移動先との視差値の変化が小さければ小さいほど、コストも小さくなる。相違度と、視差値の変化との重み付けは、適宜、決定すればよい。
【0040】
図13に示す例では、X=2の画素とX=3の画素とで同じ視差値に移動するのが最もコストが低いので、その視差値への経路が選択されている。この結果、X=3の画素で相違度1が格納された視差値は、経路から外れる。このように、単に相違度が小さいだけでは、その相違度に対応する視差値が選択されるとは限らない。同様なコスト計算によって、順次、X方向への経路を探索し、X=13まで辿り着くと、経路と、経路のコストとが定まる。
【0041】
同様な経路探索を、X=2の画素に対応付けられた全ての視差値を入口として実行すると、最もコストが小さい経路が定まる。同様な経路探索を、他のY方向位置の画素群に対しても実施する。さらには、同様な経路探索を、X方向の位置を固定し、Y方向に移動する態様でも実施する。これらの経路探索によって定まる最小コストの経路が辿る画素と視差値との関係が、尤もらしい関係であると見なし、最適化された視差値として採用される。
【0042】
このようにして、全ての着目画素に対して、視差値が決定されると、S210が完了する。
【0043】
以上に説明した本実施形態によれば、視差画像に用いられる視差値が、より尤もらしくなる。経路探索において、視差値の変化をコストとして扱うのは、距離が急激に変化することは、画素単位ではさほど頻繁には発生しないはずだからである。それにも関わらず、視差値が急激に変化する理由の一つとしては、偶々、相違度が小さくなる比較画素が、同じY方向位置にあったことが挙げられる。このような現象に対し、視差値の変化をコストとして扱うことによって、上記した効果を得ることができる。
【0044】
実施形態と特許請求の範囲との対応関係は次の通りである。EUC10は測距装置、S110は第1選択部、S120は第2選択部、S130,S140,S150は算出部、S160,S170,S180は決定部、S200,S210は取得部、窓に含まれる9つの画素はk個の画素、参照画像におけるX方向についての12箇所の配置はn箇所の配置、窓は第1窓および第2窓、4種類の小窓はm種類の部分領域に対応する。
【0045】
本開示は、本明細書の実施形態や実施例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例中の技術的特徴は、先述の課題の一部又は全部を解決するために、或いは、先述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせができる。その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。例えば、以下の実施形態が例示される。
【0046】
S160において、最小の相違度を選択する際に、外れ値を除去してもよい。つまり、最小の相違度が、他の相違度に比べて小さすぎる場合には、最小の相違度を外れ値として除去し、残った相違度の中から選択してもよい。外れ値に該当するか否かは、例えば、標準偏差を用いてもよい。
【0047】
信頼度として、X方向のエッジ強度を用いてもよいし、X,Y方向それぞれのエッジ強度を合計してもよい。或いは、信頼度を用いなくてもよい。
【0048】
S130を省略し、S140で、輝度値そのものを対象にして、輝度値の差を算出してもよい。
【0049】
小窓の形状は、中心画素を含んでいれば、どのような形状でもよい。例えば、3×3の窓内の画素に含まれる4つの角に位置する画素のうち、3つの角に位置する画素を含む3角形であってもよい。この3角形には、中心画素を含む6つの画素が含まれる。
【0050】
上記実施形態において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。また、ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、または、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。特に、上記した実施形態は、ハードウエア化による並列化および高速化に適している。
【0051】
相違度を算出する際に、小窓内の画素の標準偏差や共分散を加味してもよい。