(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、本発明の例示的な実施形態について図面を参照しながら説明する。
[1.第1実施形態]
[1−1.構成]
本発明が適用された路面検出装置1は、複数の撮像画像の視差を検出することによって撮像画像中の各点、すなわち目標となる物体を表す物標までの距離、特に路面を示す位置を検出する装置である。詳細には、路面検出装置1は、乗用車等の車両に搭載されており、
図1に示すように、処理部10と、2つの撮像部21,22と、車両制御部30とを備えている。なお、撮像部は2つに限られることなく、3以上設けられていてもよい。
【0013】
撮像部21,22は、それぞれ車両の進行方向が撮像範囲内となる周知のカメラとして構成されている。撮像部21,22は、中心軸が平行かつ水平方向に所定の距離だけ離れて配置されたカメラ群を表すステレオカメラを構成している。これらの撮像部21,22は、予め決まった時間で周期的に同時に撮像を行うよう設定されている。
【0014】
処理部10は、CPU11と、RAM、ROM、フラッシュメモリ等の半導体メモリ(以下、メモリ12)と、を有する周知のマイクロコンピュータを中心に構成される。処理部10の各種機能は、CPU11が非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現される。この例では、メモリ12が、プログラムを格納した非遷移的実体的記録媒体に該当する。なお、非遷移的実体的記録媒体とは、記録媒体のうちの電波を除くものである。
【0015】
また、このプログラムの実行により、プログラムに対応する方法が実行される。なお、処理部10を構成するマイクロコンピュータの数は1つでも複数でもよい。処理部10は、CPU11がプログラムを実行することで実現される機能の構成として、距離演算機能を備える。距離演算機能は、後述する距離演算処理が実施されることによって実現される。処理部10において各種機能を実現する手法はソフトウェアに限るものではなく、その一部または全部の要素を、論理回路やアナログ回路等を組み合わせたハードウェアを用いて実現してもよい。
【0016】
車両制御部30は、処理部10による処理結果を利用して車両を制御する処理を行う。例えば、車両制御部30は、撮像部21,22による撮像範囲内の各点(各画素)における距離の情報を処理部10から取得し、この距離の情報に基づいて物標位置および相対速度を認識する。そして、物標が走行に支障を来す虞がある場合、走行軌道を変更する車両制御を行う。
【0017】
[1−2.処理]
このように構成された路面検出装置1において、処理部10、すなわちCPU11は、
図2以下に示す距離演算処理を実施する。距離演算処理は、撮像画像中の各点までの距離を演算する処理である。距離演算処理は、例えば路面検出装置1の電源が投入されると開始され、その後、一定周期毎に繰り返し実施される。
【0018】
この処理では、まず、S110にて、撮像部21,22によって撮像された撮像画像を取得する。この処理によって同期した一組の撮像画像が得られる。
続いて、S120にて、撮像された画像を平行化する。ここで、画像の平行化とは、撮像画像のレンズによる画像の歪みや姿勢のずれを補正する処理等を示す。
【0019】
続いて、S130にて、視差画像を生成し、この視差画像を取得する。ここで、視差画像を生成するには、周知の処理を利用することができる。例えば、特開2015−114269号公報に開示された動的計画法を用いた処理や、基準画像を構成する画素の輝度や色度に類似する画素を比較画像から抽出する処理等を採用することができる。なお、基準画像とは複数の画像のうちの1つの画像であり、例えば撮像部21による撮像画像を表す。また、比較画像とは、複数の画像のうちの基準画像を除く画像であり、例えば撮像部22による撮像画像を表す。
【0020】
この処理において得られる視差画像は、例えば、
図3に示すような画像となる。この視差画像では、基準画像における各画素と視差の大きさとがそれぞれ対応付けられている。
図3に示す例では、視差の大きさが大きくなるにつれて画素の輝度が高くなるよう表示している。視差画像において視差の大きさは、その画素が示す物体までの距離を示している。
【0021】
続いて、S140にて、V視差図を生成する。V視差図とは、撮像画像を構成する各画素と視差の大きさとを対応付けた視差画像において、視差の大きさと縦座標値と積算値とを対応付けた要素を、縦座標値を縦軸に、視差の大きさを横軸に取った図を示す。なお、本実施形態では、コンピュータによる処理の内容を理解しやすくするために、V視差図として表記するが、V視差図という形態でなくても、それぞれの要素を、視差の大きさおよび縦座標値毎に集めた視差情報が得られるようにしていればよい。また、縦座標値とは、撮像画像や視差画像における鉛直方向の座標値を示す。
【0022】
V視差図を求めるにあたっては、以下の手順を採用する。まず、
図4に示すように、視差画像の縦座標値毎に、視差の分布をヒストグラムにする。すなわち、V視差図を構成する複数の画素のうち、縦座標値が一致する複数の画素について、視差の大きさ毎に投票を行うことによって、視差の大きさと、投票数との関係を示すヒストグラムを得る。なお、投票数は前述の積算値として対応付けられる。
【0023】
ここで、道路を走行中の車両にて得られた視差画像において、路面を示す領域は画像横方向において比較的大きな幅を占めるため、このヒストグラムにおいて、積算値が最大となる視差の大きさが、道路の位置を示している可能性が高い。ただし、遠方になるほど、すなわち画像の鉛直方向上側に向かうほど、路面の領域は一般的に狭くなり、かつ他の物体が混入しやすくなるため、遠方の路面の特定は難しくなってくる点に留意して、下記の処理を行うことになる。
【0024】
本処理では、このようなヒストグラムを縦座標値毎に生成し、それぞれのヒストグラムにおいて縦座標値毎に視差の大きさと積算値とを抽出し、これらをグラフに表すことによって、例えば、
図5に示すようなV視差図を得る。なお、
図5に示すV視差図においては、横軸に視差の大きさ、縦軸に縦座標値を取っている。そして、積算値の大きさが大きくなるにつれて画素の輝度が高くなるよう表示している。また、縦座標値は画像の下側に向かうにつれて大きくなるよう設定されている。
【0025】
なお、視差画像で道路が広く写っている領域において、ある縦座標値における視差の大きさと積算値との関係をグラフ化すると、例えば、
図6に示すようなグラフが得られる。すなわち、道路の位置に対応する視差の大きさとなる部位で、積算値がピークとなることが分かる。
【0026】
続いて、S150にて、縦座標値毎に縦座標値の探索数を設定し、この際、縦座標値が、距離が大きくなることを示すにつれて、縦座標値の探索数を小さな値に設定する。この処理では、
図7に示すように、視差画像に道路を含む場合に、視差画像の下側に近づくにつれて路面までの距離が近く、視差画像の中央付近に近づくにつれて路面までの距離が遠くなる状況を想定している。
【0027】
このような視差画像においては、
図7に示すように、視差画像の下側から予め設定された画素数までの範囲内においては、探索数を30ピクセルに設定し、この範囲の上側の予め設定された画素数までの範囲内においては探索数を20ピクセルに設定する。
【0028】
さらに、視差画像の上側に向かうにつれて、探索数が10ピクセル、5ピクセルというように値が小さくなるように設定する。なお、ここでの縦座標値の探索数は、次に述べるコストマップを生成する際に、ある画素を基準としたときのピーク要素の探索範囲を設定する際に利用される。
【0029】
続いて、S210にて、路面ピークコストマップ生成処理を実施する。この処理は、路面ピークコストマップを生成する処理である。路面ピークコストマップとは、視差の大きさ毎に縦座標値の範囲を探索数に従って設定し、視差の大きさ毎に縦座標値の範囲内に含まれる複数の要素について、各要素に対応する積算値に基づいてコストを対応付け、視差の大きさおよび縦座標値によってコストが特定されるようにしたマップである。
【0030】
ここで、例えば、
図8に示すような視差画像から道路の位置に対応する視差を求めた場合、
図9に示すように、視差が小さくなるにつれて、積算値のピークの位置、つまり、
図9の輝度が高い部位の縦座標値が小さくなり、かつ、視差の変化量に対する縦座標値の変化量が、平面であるならば縦座標値に応じて線形に変化し、カメラの姿勢や振動、想定される路面の勾配などからある範囲内に収まることが明らかになっている。特に、視差の変化量に対する縦座標値の変化量は、縦座標値が小さくなるにつれて小さくなる。
【0031】
そこで、路面ピークコストマップ生成処理では、V視差図から積算値のピークの探索範囲を適切に設定することによって、処理の効率化と高精度化とを実現する。
路面ピークコストマップ生成処理では、
図10に示すように、まず、S310にて、他要素を抽出する。他要素とは、視差情報に含まれる予め設定された要素を基準要素とし、該基準要素の視差の大きさが隣接する要素のうちの、該基準要素の縦座標値との差異が予め設定された値となる要素を表す隣接要素を含み、かつ縦座標値の上限値および下限値が探索数にて規定される範囲内にある複数の要素を表す。
【0032】
具体的には、
図11に示すように、例えば、V視差図における右下の要素を基準要素とし、この基準要素(i,j)に対して、(i-1,j-1)、(i-2,j-1)、…、(i-N,j-1)となる要素を他要素とする。つまり、他要素は、基準要素に対して、視差の大きさが1画素分だけ異なる要素の中から選択される。
【0033】
なお、iは縦座標値、jは視差の大きさを示す。また、Nは縦座標値の探索数を示す。続いて、S320にて、基準要素における積算値をcost(i,j)として、基準要素についての積算値と他要素の積算値とに基づいて基準要素におけるコストv-cost(i,j)を算出する。
【0034】
詳細には、
図12に示すように、他要素の積算値cost(i-1,j-1)、cost (i-2,j-1)、…、cost(i-N,j-1)のうちの最大となる値を抽出し、この値を最大要素max-index(i,j)としてメモリ12に記録しておく。また、最大要素max-index(i,j)が示す要素の位置(i-X,j-1)についてもメモリ12に記録しておく。
【0035】
そして、この値と基準要素における積算値をcost(i,j)とを加算したものを基準要素におけるコストv-cost(i,j)とする。同様にして、要素(i-1,j)、(i-2,j)、…、(i-N,j)を基準要素として、これらの要素におけるコストv-cost(i-1,j)、v-cost (i-2,j)、…、v-cost(i-N,j)についても求める。
【0036】
続いて、S330にて、メモリ12に記録された最新の最大要素max-index(i,j)およびこの要素の位置(i-X,j-1)を読み出す。そして、S340にて、この要素の位置を新たな基準要素(i,j)として、縦座標値の上限値および下限値を設定する。
【0037】
この処理では、
図11に示すように、新たな基準要素(i,j)に対して、(i,j)となる要素の縦座標値が上限値となり、(i-N,j)となる要素の縦座標値が下限値となる。また、(i-1,j-1)、(i-2,j-1)、…、(i-N,j-1)となる要素が新たな基準要素に対する他要素となる。
【0038】
このようなS310〜S340の処理を視差の大きさiを変更しつつ繰り返すと、
図12に示すように、V視差図の右下から左上に向かって、順に視差の大きさを減少させながら、徐々に縦座標値も減少させる探索範囲を設定することなる。
【0039】
このような処理によって、
図13に示すような路面ピークコストマップが得られる。路面ピークコストマップは、縦座標値および視差の大きさと、コストv-cost(i,j)とが対応付けられたマップであり、
図13では、コストの大きさが大きくなるにつれて輝度が低くなるように表示している。
【0040】
続いて、
図S220にて、縦座標毎に最も確からしいピーク値を探索する。ここでいうピーク値とは、縦座標値毎のコストv-cost(i,j)の最大値である。この処理では、コストv-cost(i,j)に対して、例えば、特開2015−114269号公報に開示された動的計画法であるビタビアルゴリズムを適用することによって、コストの和が最大となる要素の組み合わせを探索する。また、この処理においては、V視差図における右下隅の要素等、予め設定された要素を始点として、視差の大きさが順に小さくなり、かつ物体までの距離が徐々に大きくなるように縦方向の座標値が変化する方向に沿って動的計画法を適用する。
【0041】
ここで、この処理にて道路を示す要素を表示させたものの一例を
図14に示し、従来の処理によって道路を示す要素を表示させたものの一例を
図15に示す。従来の処理によるものでは、
図15の破線で囲った部位にて示すように、比較的遠距離において、立体物等の影響を受け、路面を示す要素が波打っていることが分かる。一方、本処理によるものでは、
図14の破線で囲った部位にて示すように、路面を示す要素が概ね直線的に表現され、立体物等の影響を受けにくくなっていることが分かる。
【0042】
続いて、S230にて、路面の位置を表す視差を算出する。この処理では、路面を示す要素に基づいて、路面の位置を示す視差の大きさを表す路面視差を抽出する。
続いて、S240にて、視差画像中から路面および立体物を判定する。つまり、路面視差に対応する位置を路面とし、この位置よりも上にある物体を立体物として認識する。
【0043】
ここで、本処理によると、
図16に示すように、路面の位置の推定精度が向上しているため、立体物と路面とが良好に識別できていることが分かる。一方、従来の手法では、
図17に示すように、路面でない立体物等の部位に路面と認識された部位が混在していることが分かる。よって、本処理によると、物体の識別精度を向上させることができることが分かる。
【0044】
[1−3.効果]
以上詳述した第1実施形態によれば、以下の効果が得られる。
(1a)上記の路面検出装置1において処理部10は、画像を構成する各画素と視差の大きさとを対応付けた視差画像において、縦方向の座標値を表す縦座標値に従って視差画像を複数に分割し、該分割した領域内に含まれる複数の画素を視差の大きさ毎に積算した値を積算値として、視差の大きさと縦座標値と積算値とを対応付けた要素を、視差の大きさおよび縦座標値毎に集めた視差情報を取得する。また、処理部10は、縦座標値毎に縦座標値の探索数を設定し、この際、縦座標値が、距離が大きくなることを示すにつれて、縦座標値の探索数を小さな値に設定する。
【0045】
また、処理部10は、視差の大きさ毎に縦座標値の範囲を探索数に従って設定し、視差の大きさ毎に縦座標値の範囲内に含まれる複数の要素について、各要素に対応する積算値に基づいてコストを対応付け、視差の大きさおよび縦座標値によってコストが特定されるコストマップを生成する。また、処理部10は、コストマップに基づいて縦座標値毎に路面の位置を示す視差の大きさを表す路面視差を抽出する。
【0046】
このような路面検出装置1によれば、縦座標値が、距離が大きくなることを示すにつれて値が小さくなるように縦座標値毎にコストマップを生成する際における縦座標値の探索数を設定するので、コストマップの範囲内において路面の位置が抽出される。よって、路面上に位置する立体物がコストマップから外れやすくすることができ、立体物の存在の影響を受けにくくすることができるので、路面の位置の検出精度を向上させることができる。
【0047】
(1b)上記の路面検出装置1において処理部10は、視差情報に含まれる予め設定された要素を基準要素とし、該基準要素の視差の大きさが隣接する要素のうちの、該基準要素の縦座標値との差異が予め設定された値となる要素を表す隣接要素を含み、かつ縦座標値の上限値および下限値が探索数にて規定される範囲内にある複数の他の要素を表す他要素を抽出し、基準要素についての積算値に基づいてコストを算出する。そして、処理部10は、他要素のそれぞれを基準要素として、これらの処理を繰り返すことによって、コストマップを生成する。
【0048】
なお、「視差の大きさが隣接する要素」とは、視差の大きさが1画素分だけ異なる要素を示す。このような路面検出装置1によれば、基準要素に隣接する他要素について順次コストを求める構成とすることができる。
【0049】
(1c)上記の路面検出装置1において処理部10は、他要素のうちの積算値が最大となる他要素を表す最大要素を抽出し、最大要素についての縦座標値を基準として、他要素のそれぞれが基準要素となったときにおける縦座標値の上限値および下限値を設定する。
【0050】
このような路面検出装置1によれば、積算値が最大となる最大要素を基準にコストを求める範囲である縦座標値の上限値および下限値を設定するので、基準要素の視差の大きさが隣接する要素から最大要素を抽出しやすくすることができる。
【0051】
(1d)上記の路面検出装置1において処理部10は、基準要素についての積算値と他要素の積算値とに基づいてコストを得る。
このような路面検出装置1によれば、基準要素のコストを得るにあたり、他要素も考慮するので、基準要素のみからコストを得る構成と比較して、ノイズ耐性を向上させることができる。
【0052】
(1e)上記の路面検出装置1において処理部10は、コストマップに対して動的計画法を用いてコストの和が最大となる要素の組み合わせを選択することによって路面視差を抽出する。
【0053】
このような路面検出装置1によれば、動的計画法を用いるので、部分的にコストに誤りがあったとしても、全体としては影響を受けにくくすることができる。よって、ノイズの影響を受けにくくすることができる。
【0054】
(1f)上記の路面検出装置1において処理部10は、コストマップにて、予め設定された要素を始点として、視差の大きさが順に小さくなり、かつ物体までの距離が徐々に大きくなるように縦方向の座標値が変化する方向に沿って動的計画法を適用することによって路面視差を抽出する。
【0055】
このような路面検出装置1によれば、物体が存在しにくく一般的に高精度である近距離に位置する点を始点として、そこから路面の判定が難しくなる遠方に向けて動的計画法を適用するので、より高精度に路面の位置を検出することができる。
【0056】
[2.他の実施形態]
以上、本発明を実施するための形態について説明したが、本発明は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0057】
(2a)上記実施形態では、他要素のコストを利用するが、これに限定されるものではない。例えば、基準要素の積算値をそのまま利用するなど、基準要素のみから算出してもよい。
【0058】
(2b)上記実施形態では、V視差図を用いてコストマップを求めたが、視差の大きさと縦座標値と積算値とを対応付けた要素を、視差の大きさおよび縦座標値毎に集めた視差情報を用いればよく、V視差図を利用する必要はない。
【0059】
(2c)上記実施形態では、コストマップに対してビタビアルゴリズムを適用することによって路面視差を抽出したが、その他の動的計画法、或いは、コストマップのピークとなる要素を最小二乗法やスムージング等の周知の手法で接続する等によって、路面視差を抽出してもよい。
【0060】
(2d)上記実施形態における1つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【0061】
(2e)上述した路面検出装置1の他、当該路面検出装置1を構成要素とするシステム、当該路面検出装置1としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、路面検出方法など、種々の形態で本発明を実現することもできる。
【0062】
[3.実施形態の構成と本発明の構成との関係]
上記実施形態において処理部10が実行する処理のうちのS140の処理は本発明でいう視差情報取得部の一例に相当し、S150の処理は本発明でいう探索数設定部の一例に相当する。また、上記実施形態においてS210の処理は本発明でいうマップ生成部の一例に相当し、S220、S230の処理は本発明でいう路面抽出部の一例に相当する。
【0063】
また、上記実施形態においてS310の処理は本発明でいう他要素抽出部の一例に相当し、S320の処理は本発明でいうコスト算出部の一例に相当する。また、上記実施形態においてS330の処理は本発明でいう最大抽出部の一例に相当し、S340の処理は本発明でいう上下限設定部の一例に相当する。