(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下に本発明にかかる実施の形態を図面と共に説明する。
[本実施形態の構成]
本発明が適用された距離検出装置1は、複数の撮像画像の視差を検出することによって撮像画像中の各点(物体)までの距離を検出する装置である。なお、視差とは、同一の物体を見る場所によって見える方向が異なることを示す。特に、本実施形態では、異なる位置にて撮像された物体が撮像画像中において撮像される位置が異なること、またこの際の位置のずれを視差という。
【0010】
本実施形態の距離検出装置1では、動的計画法であるビタビアルゴリズムを複数の方向に適用することで複数の撮像画像を構成する画素間の対応関係(つまり視差)を高精度かつ低負荷で求めることができるよう配慮されている。特に本実施形態では、空および道路の領域において対応点を探索する範囲を限定することによって、処理負荷をより軽減できるよう構成されている。
【0011】
詳細には、距離検出装置1は、乗用車等の車両に搭載されており、
図1に示すように、処理部10と、2つの撮像部21,22と、車両制御部30とを備えている。なお、撮像部は2つに限られることなく、3以上設けられていてもよい。
【0012】
撮像部21,22は、それぞれ車両の進行方向が撮像範囲内となる周知のカメラとして構成されている。撮像部21,22は、中心軸が平行かつ水平方向に所定の距離だけ離れて配置されたステレオカメラを構成している。これらの撮像部21,22は、予め決まった時間で周期的に同時に撮像を行うよう設定されている。
【0013】
処理部10は、CPU11と、ROM、RAM等のメモリ12とを備えた周知のコンピュータとして構成されている。処理部10(CPU11)は、撮像部21,22によって撮像された撮像画像を取得する。そして、メモリ12に格納されたプログラムに基づいて後述する距離演算処理等の各種処理を実行する。
【0014】
車両制御部30は、処理部10による処理結果を利用して車両を制御する処理を行う。例えば、車両制御部30は、撮像部21,22による撮像範囲内の各点(各画素)における距離の情報を処理部10から取得し、この距離の情報を繰り返し利用することによって物体の位置および相対速度を認識する。そして、物体が走行に支障を来す虞がある場合、走行軌道を変更する車両制御を行う。
【0015】
[本実施形態の処理]
このように構成された距離検出装置1において、処理部10(CPU11)は、
図2以下に示す距離演算処理を実施する。距離演算処理は、撮像画像中の各画素が示す各点までの距離を演算する処理である。距離演算処理は、例えば距離検出装置1の電源が投入されると開始され、その後、一定周期毎に繰り返し実施される。
【0016】
この処理では、まず、撮像部21,22によって撮像された撮像画像を取得する(S10)。続いて、撮像された画像を平行化する(S20)。ここで、画像の平行化とは、撮像画像のレンズによる画像の歪みや姿勢のずれを補正する処理等を示す。
【0017】
続いて、複数解像度画像を生成する(S30)。ここで、複数解像度画像とは、1つの撮像画像から生成される解像度の異なる複数の画像を示す。例えば、撮像画像から、画像拡大率ηが1である高解像画像、画像拡大率ηが1/2である中解像画像、拡大率ηが1/4である低解像画像の3種類の画像を生成し、これらを複数解像度画像としてメモリ12に記録させる。
【0018】
なお、後述する対応点探索処理では、解像度が低い順(つまり、画像拡大率ηが小さい順)に、複数解像度画像を構成するそれぞれの画像について実施される。
続いて、空領域抽出処理を実施する(S40)。空領域抽出処理は、撮像画像に写る空を示す画素の集合である空領域を抽出する処理である。ここで、空領域は、例えば
図3に示すように、建物の間等、撮像画像の上方において検出される。また、後述する道路領域においては、撮像画像の下方において検出される。
【0019】
空領域抽出処理や後述する道路面抽出処理では、これらの空領域および道路領域において後述する対応点探索処理の際に利用する探索範囲を制限する設定を行うことで、対応点探索処理の際の処理負荷を低減する。なお、空領域抽出処理や道路面抽出処理では、低解像画像を用いて処理が実施される。
【0020】
空領域抽出処理では、
図4に示すように、基準画像において、この画像を構成する各画素のうちの最初の画素(つまりピクセル)を選択する(S210)。ここで、基準画像とは、例えば撮像部21による撮像画像等、複数の撮像画像のうちの予め選択された撮像画像を表す。
【0021】
続いて、選択した画素の周囲の平均輝度μを計算する(S220)。「選択した画素の周囲」として、例えば、選択した画素と隣接する周囲の8画素との9画素を選択する。そして、選択した画素の周囲における輝度の分散σを計算する(S230)。
【0022】
続いて、平均輝度μと分散σとが予め設定された範囲内であるか否かを判定する(S240)。詳細には、平均輝度μが、平均輝度μに対して予め準備された最小閾値および最大閾値の間に収まっているか否かを判定するとともに、分散σが分散σに対して予め準備された最小閾値および最大閾値の間に収まっているか否かを判定する。
【0023】
平均輝度μおよび分散σの両方が予め設定された範囲内であれば(S240:YES)、選択中の画素を空領域の一部を構成する画素であると判定する(S250)。この際、例えばこの画素の位置の情報等、この画素を特定するための情報を対応付けて、この画素が空領域の一部である旨をメモリ12に記録させる。また、平均輝度μおよび分散σの何れかが予め設定された範囲内でなければ(S240:NO)、S260の処理に移行する。
【0024】
続いて、演算領域内で判定が完了したか否か、すなわち、基準画像の全ての画素を選択したか否かを判定する(S260)。演算領域内での判定が完了していなければ(S260:NO)、未選択の次の画素を選択し(S270)、S220の処理に戻る。
【0025】
また、演算領域内での判定が完了していれば(S260:YES)、空領域抽出処理を終了する。
続いて、
図2に戻り、道路面抽出処理を実施する(S50)。道路面抽出処理は、撮像画像に写る道路を示す画素の集合である道路領域を抽出する処理である。この際、道路面抽出処理では、
図5に示すように、道路面よりも地中側、すなわち、鉛直方向下側に位置する領域を後述する対応点探索処理にて探索(計算)しなくてもよい領域に設定する。
【0026】
道路面抽出処理では、
図6に示すように、まず、基準画像において、この画像を構成する各画素のうちの最初の画素(つまりピクセル)を選択する(S310)。続いて、この画素における鉛直方向の座標値であるy座標値に基づいて、道路面を示す視差drを計算する(S320)。
【0027】
ここで、道路面は、自車両の傾きや道路の勾配が存在しないときに地面が存在するはずの平面を基準にして予め設定されている平面である。道路面は、自車両のタイヤの下端や、タイヤの下端から所定の距離だけ地中側を通る水平面であってもよいし、この水平面に対して数%の下り勾配を想定して設定されていてもよい。
【0028】
また、道路面は、カメラの設置位置と設置角度とに基づいて、画素のy座標値に対する道路面までの距離が一意に求められる。視差drは、道路面までの距離を示すものであり、視差が大きくなるにつれて距離が近いことを示し、視差が小さくなるにつれて距離が大きいことを示す。
【0029】
なお、y座標値によっては道路面が存在しないことになり、この場合は距離が無限大、すなわち視差drが0となる。また、計算上は道路面が存在する場合であっても、道路面を特定する必要がない場合には、視差drを0としてもよい。例えば、
図3に示す例では、自車両が走行する確度が高い領域のみ視差drを求め、他の領域の視差drを0としている。
【0030】
続いて、選択した画素について、視差drが0であるか否かを判定する(S340)。視差drが0であれば(S340:YES)、後述するS360の処理に移行する。
また、視差drが0でなければ(S340:NO)、道路面よりも地中側となる視差の範囲を道路外領域の視差として設定する(S350)。この際、例えばこの画素の位置の情報等、この画素を特定するための情報を対応付けて、この画素についての道路外領域の視差をメモリ12に記録させる。
【0031】
続いて、演算領域内で判定が完了したか否かを判定する(S360)。演算領域内とは、例えば基準画像の全ての画素を示す。演算領域内での判定が完了していなければ(S360:NO)、未選択の次の画素を選択し(S370)、S320の処理に戻る。
【0032】
また、演算領域内での判定が完了していれば(S360:YES)、道路領域抽出処理を終了する。
続いて、
図2に戻り、対応点探索処理を実施する(S60)。対応点探索処理は、対応点を関連付ける処理である。ここで、対応点とは、基準画像を構成する各画素に対して、基準画像を除く撮像画像である比較画像(例えば撮像部22による撮像画像)を構成する各画素において同じものが写っている画素を示す。
【0033】
対応点探索処理の詳細は
図7に示すように、まず、複数解像度画像のうちの最も解像度が高い画像を除く画像(本実施形態では最も解像度が低い低解像度画像)を選択する(S410)。そして、空領域に対応する画素、道路外領域の視差について、メモリ12から読み出して探索を実施しない範囲を設定する(S415)。空領域に対応する画素においては、例えば、対応点の探索範囲を0または1ピクセルとする。つまり、距離が無限大、または無限大に極めて近い画素だけを対応点の探索範囲として設定し、その他の画素を対応点の探索範囲外とする。また、道路領域については、道路外領域の視差と認められた範囲を対応点の探索範囲外とし、その他の画素を対応点の探索範囲とする。
【0034】
続いて、節点のコストを算出する(S420)。ここで、節点とは、
図8(a)に示すように、基準画像の画素位置を横軸に取り、基準画像の画素位置と比較画像の画素位置との視差を縦軸に取ったマトリクスにおいて、このマトリクスを構成する要素の1つ1つを示す。なお、ここでの各要素は、基準画像の画素位置と視差との関係を表す。
【0035】
ここで、節点のコストは、画素情報を用いて求められる。なお、画素情報とは、輝度や色度等の画素の特徴を表す。また、節点のコストを求める処理は、例えば、特許文献1の段落[0019]〜[0021]にて示す処理と同様の処理を行う。
【0036】
次に、ビタビアルゴリズムによる各方向についてのコストを求める(S430)。この際、
図8(b)に示すように、基準画像および比較画像についてそれぞれ水平方向(X方向)について選択する画素の座標を遷移させつつ、ビタビアルゴリズムを用いて視差コストを求める。この処理を各方向においてそれぞれ実施する。
【0037】
なお、この処理については、例えば、特許文献1の段落[0022]〜[0052]にて示す処理と同様の処理を行う。ここで、ビタビアルゴリズムによる各方向についてのコストEを求める処理では、基準画像において空領域および道路領域に該当する場合に、探索を実施しない範囲を加味して対応点の探索を行う。例えば、
図9に示す例では、対応点の探索範囲外となった画素について、×印を付している。すなわち本処理では、対応点を探索する際に、探索範囲を限定していることが分かる。この結果、相関値が高い画素だけが探索範囲として選択されることになる。
【0038】
続いて、
図7に戻り、コストEに従って、最小となる視差を選択し(S440)、基準画像における各画素と比較画像における各画素との対応関係をメモリ12に記録する(S450)。続いて、現在、高解像画像が選択されているか否かを判定する(S480)。
【0039】
高解像画像が選択されていなければ(S480:NO)、現在選択されている画像の次に解像度が高い複数解像度画像を選択する(S490)。そして、探索領域を縮小して設定する(S500)。探索領域を縮小する処理では、より高い解像度の複数解像度画像にて対応点を探索する際に、既に解像度の低い画像にて得られた対応点にて示される視差を用いて、探索領域を限定する。例えば、ある画素において得られた視差の前後3ピクセル程度を探索領域とする。具体的には、ある画素において得られた対応点の視差が5ピクセルであれば、より解像度の高い画像による探索領域には視差が2〜8の範囲を設定する。
【0040】
なお、解像度が異なる画像間の各画素の対応付けについては、概ね同様の位置を示す画素同士が対応付けられる。
このような処理が終了するとS415の処理に戻る。また、S480の処理にて高解像画像が選択されていれば(S480:YES)、対応点探索処理を終了する。
【0041】
このような対応点探索処理が終了すると、
図2に戻り、各画素における対応点の視差に応じて各画素に写っている物体までの距離を算出する(S70)。そして、これらの画素と距離との対応データを車両制御部30に対して出力する(S80)。
【0042】
ここで、この処理で出力される対応データは、
図10(C)に示すようなものである。すなわち、上記処理を用いて
図10(A)に示すような撮像画像(シーン画像)を処理すると、
図10(C)に示すような距離画像が得られる。
図10(C)に示す距離画像では、濃淡によって距離を表現しており、濃度が高くなるにつれて距離が遠くなることを示す。一方、
図10(B)は、本処理を適用することなく、単にビダビアルゴリズムを適用して得られた距離画像である。
図10(C)に示す距離画像では、
図10(B)に示す距離画像を求めるときよりも処理負荷が軽減されているが、
図10(B)に示す距離画像とほぼ同様に、正確に距離が検出できていることが分かる。
【0043】
続いて、距離画像に基づいて同じ距離を示す画素群を1つの物体として認識し、このようにして得られた物体の位置(物体までの距離)を車両制御部30に出力する(S90)。このような処理が終了すると距離演算処理を終了する。
【0044】
[本実施形態による効果]
上記の距離検出装置1において処理部10は、複数の画像に含まれる画素において道路を示す道路領域および空を示す空領域のうちの少なくとも一方を示す領域を特定領域として抽出する。また、通常探索工程では、複数の画像から特定領域を除外した通常領域について、複数の画像のうちの基準画像中の画素毎に複数の画像間の対応点を探索する。また、特定探索工程では、特定領域について、通常領域において対応点を探索するときよりも探索範囲を狭くして複数の画像間の対応点を探索する。
【0045】
このような距離検出装置1によれば、道路や空を示す特定領域において対応点を探索する際に通常領域よりも探索範囲を狭くするので、対応点を探索する際の処理負荷を軽減することができる。
【0046】
また、このような距離検出装置1によれば、対応点探索方法を用いるので、処理負荷を軽減しつつ物体までの距離を検出することができる。
上記の距離検出装置1において処理部10は、基準画像における画素とその周囲の画素との関係において平均輝度および輝度の分散がそれぞれ予め設定された判定範囲内である領域を空領域として抽出する。
【0047】
このような距離検出装置1によれば、平均輝度および輝度の分散を用いて空領域を良好に抽出することができる。
上記の距離検出装置1において処理部10は、空領域を示す画素について予め設定された画素を対応点とする。
【0048】
このような距離検出装置1によれば、空領域については視差が生じていないものとして予め設定された画素を対応点とするので、対応点を探索する際の処理負荷をより軽減することができる。
【0049】
上記の距離検出装置1において処理部10は、基準画像において道路面よりも地中側の部位が含まれる可能性がある画素を道路領域として抽出する。
このような距離検出装置1によれば、道路領域を簡素な処理で抽出することができる。
【0050】
なお、「道路面よりも地中側の部位が含まれる可能性がある画素」については、撮像画像を得る際のカメラの向きやレンズの仕様等によって特定することができる。例えば、水平よりも下側が撮像される画素を道路領域とすることができる。
【0051】
上記の距離検出装置1において処理部10は、道路領域を示す画素において道路面よりも地中側となる範囲について対応点の探索を省略する。
このような距離検出装置1によれば、道路面よりも地中側となる範囲について対応点の探索を省略するので、対応点を探索する際の処理負荷をより軽減することができる。
【0052】
上記の距離検出装置1において処理部10は、複数の撮像画像のそれぞれから解像度の異なる複数組の任意解像度画像を生成し、複数組の任意解像度画像のうちの最も解像度が高い任意解像度画像以外の何れかを表す特定解像度画像から特定領域を抽出する。
【0053】
このような距離検出装置1によれば、解像度が低く、処理負荷が小さい特定解像度画像を画像処理することによって特定領域を抽出しておくので、特定領域を抽出する際の処理負荷を軽減することができる。
【0054】
上記の距離検出装置1において処理部10は、基準画像のある画素を表す基準画素において該画素の特徴を表す画素情報と、基準画像を除く他の画像中の画素を表す比較画素における画素情報と、の差異に基づく画素コストを、基準画素および比較画素を変更しつつ、基準画素毎に演算する。また、処理部10は、基準画素を変更する際において基準画素と比較画素との座標差である視差の変化量に対するコストを表す視差コストを、基準画素毎に演算し、各基準画素に対して、画素コストと視差コストとの和を表す合計コストが最小値となる際の比較画素との組み合わせを演算する。そして、処理部10は、各基準画素に対応する比較画素を、各基準画素に対応する対応点として設定する。
【0055】
このような距離検出装置1によれば、コスト演算により対応点を求めるので、簡素な処理で物体を認識することができる。よって、物体までの距離を求める際の処理負荷を軽減することができる。
【0056】
[その他の実施形態]
本発明は、上記の実施形態によって何ら限定して解釈されない。また、上記の実施形態の説明で用いる符号を特許請求の範囲にも適宜使用しているが、各請求項に係る発明の理解を容易にする目的で使用しており、各請求項に係る発明の技術的範囲を限定する意図ではない。上記実施形態における1つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を1つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の一部を、課題を解決できる限りにおいて省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【0057】
上述した距離検出装置1の他、当該距離検出装置1を構成要素とするシステム、当該距離検出装置1としてコンピュータを機能させるためのプログラム、このプログラムを記録した媒体、距離検出方法など、種々の形態で本発明を実現することもできる。
【0058】
[実施形態の構成と本発明の手段との対応関係]
上記実施形態において処理部10は、本発明でいう画像処理装置に相当する。また、処理部10が実行する処理のうちのS10〜S100の処理は本発明でいう対応点探索方法に相当し、上記実施形態においてS30の処理は本発明でいう複数解像度画像生成工程に相当する。
【0059】
また、上記実施形態においてS40,S50の処理は本発明でいう特定領域抽出工程および特定領域抽出部に相当し、上記実施形態においてS60の処理は本発明でいう通常探索工程、通常探索部、特定探索工程、および特定探索部に相当する。また、上記実施形態においてS70の処理は本発明でいう距離演算部に相当し、上記実施形態においてS420の処理は本発明でいう画素コスト演算工程に相当する。
【0060】
また、上記実施形態においてS430,S440の処理は本発明でいう最小コスト画素演算工程に相当し、上記実施形態においてS450の処理は本発明でいう対応点設定工程に相当する。