【実施例1】
【0023】
以下、図面を参照して本発明の実施例1を説明する。本発明における車両の実施形態として、自律走行するゴルフカートを挙げる。なお、以下の説明で、前後および左右とは車両1の前進する方向を基準としている。
【0024】
1.車両の概略構成
図1および
図2を参照する。
図1は、実施例に係る車両1の前面図であり、
図2は車両1の構成を示す機能ブロック図である。車両1はゴルフ場内を自動または手動走行するゴルフカートである。車両1は、走路に埋め込まれた誘導線から発せられる電磁波に誘導されて自律走行することができる。車両1の前面中央部に2個の画像センサ3a、3bで構成されるステレオカメラ3が設けられている。なお、ステレオカメラ3は、2個以上の画像センサで構成されてもよい。左画像センサ3a、右画像センサ3bの一例として可視光カメラが挙げられる。左画像センサ3aおよび右画像センサ3bはそれぞれ平行ステレオの位置関係で配置されている。左画像センサ3aを基準カメラとし、左画像センサ3aで撮影された画像を基準画像とする。
【0025】
また、車両1には、車両1が走行する走路上の障害物を検出する障害物検出装置5と、車両1が誘導線に沿って自律走行するのを制御する自律走行制御部6と、障害物検出装置5が障害物を検出すると運転者および周囲に警告を発生する警告出力部7と、障害物の検出により減速または停止の制御をする走行速度制御部9と、車輪を駆動し、走行速度制御部9により回転数が制御される駆動モータ11とが設けられている。本実施例において、車両1はモータで駆動されるがこれに限らず、エンジンにより駆動されてもよい。
【0026】
2.障害物検出装置の構成
次に
図3を参照して車両1に備えられた障害物検出装置5の構成を説明する。
図3は、障害物検出装置の構成を示すブロック図である。障害物は障害物の周囲の物体よりも車両1側に面として切り立っているので、視差に不連続が生じる。この性質を利用して障害物を検出する。
【0027】
障害物検出装置5は、車両1の前方の画像を撮影するステレオカメラ3と、ステレオカメラ3により撮影された画像に種々の補正を実施する画像補正部13と、ステレオカメラ3により撮影された画像を基に視差画像を作成する視差画像作成部17と、視差画像を基に視差不連続部分を特定する視差不連続部分特定部19と、障害物の有無を判定する障害物判定部23とを備える。画像補正部13、視差画像作成部17、視差不連続部分特定部19、および、障害物判定部23はマイクロプロセッサとメモリとで構成される。次にそれぞれの構成部について順に説明する。
【0028】
画像補正部13は、ステレオカメラ3から送られる画像、すなわち、画像センサ3a、3bから送られる画像をそれぞれ画像処理する。画像処理として、例えば、レンズの口径色等を原因とする複数の画像センサ間の輝度バラツキを補正する輝度補正処理や、各画像センサのレンズの歪みを補正する歪曲収差補正処理や、撮影した画像のエッジを強調するエッジ強調処理が挙げられる。画像補正部13では、これらの画像処理の少なくとも1つが実施される。補正された各画像はそれぞれ視差画像作成部17へ出力される。
【0029】
視差画像作成部17は、入力される各画像から視差画像を作成する。本実施例では、左画像センサ3aで撮影された画像を左眼画像として、右画像センサ3bで撮影された画像を右眼画像として、それぞれの補正画像を基に、視差画像を作成する。視差画像は例えば、ステレオマッチング等で作成することができる。ステレオマッチングとして面積相関法を用いる。面積相関法は、注目画素を中心に一定の大きさのウィンドウ単位で各画像の一致度を計算し、最も一致度が高くなるようにステレオマッチングする。さらに、一致度が最も高い状態における注目画素の視差を算出する。ここでの視差は複数画像間の画素のズレ量を示す。実施例1において、視差は、左眼画像に対する右眼画像の画素のズレ量である。
【0030】
算出された視差dは、予め定められたズレ量ごとに、視差d(0)、d(1)、d(2)、…、d(n)と(n+1)段階に分けられる。ここで、nは自然数である。視差d(0)が最も視差が小さく、視差d(n)が最も視差が大きい。すなわち、2つの自然数iおよびjがi<jの場合、d(i)<d(j)となる。なお、画素のズレ量をそのまま視差d(n)としてもよい。このように、視差画像作成部17は、各画素ごとに視差dの情報を有する視差画像を作成し、作成した視差画像を視差不連続部分特定部19へ出力する。
【0031】
視差不連続部分特定部19は、入力された視差画像を基に視差の不連続部分を特定する。すなわち、視差画像上において、視差の不連続部分の画素の座標を特定する。さらに、特定した視差不連続部分の画素座標情報を出力する。視差の不連続部分の特定方法として例えば以下の方法が挙げられ、
図4を参照して説明する。
図4は視差画像Dpの一部拡大図である。
【0032】
視差画像Dp上のある注目画素P(u,v)の視差がd(k)の場合、この注目画素P(u,v)から予め定められた領域内にある別の画素のいずれかの視差d(x)が以下の条件を満たすときに、この注目画素P(u,v)は視差が不連続な画素と特定する。
d(k+m)≦d(x) または d(x)≦d(k−m)…(1)
【0033】
また、注目画素P(u,v)から予め定められた領域内にある別の画素として、本実施例では、注目画素P(u,v)の水平方向および鉛直方向に接する4つの画素P(u−1,v)、P(u+1,v)、P(u,v−1)、P(u,v+1)とする。
【0034】
すなわち、注目画素P(u,v)と、これに水平方向および鉛直方向に接する4つの画素P(u−1,v)、P(u+1,v)、P(u,v−1)、P(u,v+1)との視差の差がm段階以上ある場合は、注目画素P(u,v)を視差が不連続な画素と特定する。視差の差が(m−1)段階以内である場合は、注目画素P(u,v)を視差が連続な画素とする。
【0035】
(1)式を満たさない場合、注目画素P(u,v)が示す地点では実空間上、面がつながっているものとみなすことができる。(1)式を満たす場合、注目画素P(u,v)が示す地点を境に、実空間上で少なくとも2つの違う面が存在するものと判断することができる。ここで、mは自然数であるが、mの値は2以上の値にすることが好ましい。
【0036】
なお、注目画素P(u,v)と視差が比較される画素は、水平方向および鉛直方向に接する4つの画素P(u−1,v)、P(u+1,v)、P(u,v−1)、P(u,v+1)以外の注目画素P(u,v)の近傍の画素であってもよい。例えば、上記4つの画素に加えて、P(u−1,v+1)、P(u−1,v−1)、P(u+1,v+1)、P(u+1,v−1)の4つの画素を加えた合計8画素と比較してもよい。
【0037】
なお、視差不連続部分の特定において、視差画像上の全ての画素を注目画素として視差不連続部分を特定してもよいが、視差の値の信頼性の低い部分は、特定の範囲から除外することが好ましい。視差の値の信頼性の低い部分として、例えば、視差画像の端部など、ウィンドウサイズの対象領域が設定されない画素が挙げられる。
【0038】
障害物判定部23は、視差不連続部分が特定された視差画像上の予め定められた範囲内において、視差不連続部分特定部19が特定した視差不連続部分の画素数をカウントする。このカウント数が予め定められた閾値を越えた場合に、その範囲に障害物が存在すると判定する。視差不連続部分の画素のカウント数が予め定められた閾値に満たない場合、その範囲に障害物は無いと判定する。視差不連続部分が特定された視差画像上の予め定められた範囲は、車両が走行するであろうと予測される範囲であり、少なくとも1つ以上設けられることが好ましい。
【0039】
次に、実施例1における障害物検出の動作を
図5〜
図8を用いて説明する。
図5は障害物検出の処理手順を示すフローチャートであり、
図6は補正された原画像を示す説明図であり、
図7は
図6の視差画像を示す説明図であり、
図8は視差不連続部分を示す説明図である。
【0040】
車両1の前面に設けられたステレオカメラ3により複数の画像が撮影される(ステップS01)。すなわち、左画像センサ3aおよび右画像センサ3bにより車両1前方の画像が取得される。左画像センサ3aにより撮影された左眼画像、および、右画像センサ3bにより撮影された右眼画像は、画像補正部13にて種々の画像補正がされる(ステップS02)。左画像センサ3aにより撮影され、画像補正としてエッジ強調された画像が
図6である。
【0041】
次に、視差画像作成部17により、補正された左眼画像、および、補正された右眼画像を基に、視差画像を作成する(ステップS03)。
図6の視差画像Dpが
図7に示されている。
図7で示される視差領域da〜dgは、各画素の視差dを基にそれぞれ同じ視差段階に分けられた領域である。例えば、視差領域da内の各画素の視差は連続である。視差領域daと視差領域dbとでは、視差の段階が1段階異なる。視差領域daと視差領域dcとでは、視差の段階が2段階異なる。なお、無地で示されている視差領域dgは視差がゼロの領域を示している。視差画像Dp上で視差領域daは最も視差が大きい領域であり、視差領域dgが最も視差が小さい領域である。
【0042】
次に、視差不連続部分特定部19により、入力された視差画像を基に視差の不連続部分を特定する。(ステップS04)。
図7の視差画像Dpを基に特定された視差不連続部分Pdが
図8に示されている。視差不連続部分Pdは
図7において、視差が2段階異なる各視差領域da〜dgの境界線である。
【0043】
次に、障害物判定部23により、視差不連続部分Pdが特定された視差画像Dp’上で予め定められた範囲Pc(u1<u<u2,v1<v<v2、u1、u2、v1、v2は予め決められた数値)内において、視差不連続部分の画素数がカウントされる。このカウントされた視差不連続部分Pdの画素数と予め定められた閾値と比較され、障害物の有無が判定される(ステップS05)。視差不連続部分Pdの画素数が閾値以上の場合、障害物が有ると判定され、視差不連続部分Pdの画素数が閾値未満の場合、障害物は無いと判定される。
【0044】
なお、障害物が存在するとの判定に応じて、スピーカ等で構成される警告出力部7から操縦者および周囲に対して警報を発する。また、障害物が存在するとの判定に応じて、走行速度制御部9が減速または停止の制御を実施し、駆動モータ11の回転が制動され、車両1が減速または停止する。
【0045】
次に、上り坂を撮影した場合を説明する。
図9はエッジ強調の補正された上り坂の画像である。この画像の視差画像Dpuが
図10である。
図10で示されている視差領域da〜dfは、各画素の視差dを基にそれぞれ同じ視差段階に分けられた領域である。例えば、視差領域da内の各画素の視差は連続である。視差領域daと視差領域dbとでは、視差の段階が1段階異なる。視差領域daと視差領域dcとでは、視差の段階が2段階異なる。
【0046】
図10における上り坂の視差画像Dpuにおいて、2段階異なる視差領域の境界が無い。これにより、障害物判定部23において、水平および鉛直方向に視差が連続していると判定され、上り坂が障害物と判定されることがない。
【0047】
このように、実施例1によれば、障害物までの距離または障害物の高さを基準とするのではなく、視差画像の視差の連続性を基準として障害物の有無を判定する。すなわち、視差画像の視差不連続部分を障害物と判定するので、上り坂のように視差が連続する対象物を障害物と検出することがない。また、上り坂に障害物がある場合でも、障害物だけを障害物として判定することができる。
【0048】
また、視差不連続部分特定部19は、視差画像Dp内のある注目画素P(u,v)において、注目画素P(u,v)の視差が注目画素から予め定められた領域内にある別の画素P(u−1,v)、P(u+1,v)、P(u,v−1)、P(u,v+1)の視差と予め定められた値以上の差がある注目画素を視差不連続部分Pdとして特定する。これにより、視差不連続部分の特定精度が向上する。
【0049】
また、画像補正部13により、複数の画像センサ3a、3b間の輝度を補正する処理、または、レンズ歪みを補正する処理、または、エッジを強調する処理のうち少なくとも1つの処理を実施することで、各画像センサ3a、3bの固有特性に起因する画像の特性を平均化することができる。画像センサ3a、3bの個体差を低減することにより、撮影された各画像を基に作成する視差画像の精度を向上することができ、視差不連続部分を精度良く検出することができる。
【実施例2】
【0050】
次に、
図11を参照して実施例2に係る障害物検出装置について説明する。
図11は、実施例2に係る障害物検出装置5’の構成を示すブロック図である。
図11において、実施例1に示した符号と同一の符号で示した部分は、実施例1と同様の構成であるのでここでの説明は省略する。また、以下に記載した以外の車両1の構成は実施例1と同様である。
【0051】
実施例1では、視差不連続部分特定部19により特定された視差不連続部分を基に、障害物の有無を判定している。障害物の輪郭部分は視差の不連続部分であるとともにエッジであることが多いので、実施例2では、視差不連続部分と、原画像の補正画像のエッジとが重なる部分を基に障害物の判定を実施する。
【0052】
障害物検出装置5’は、ステレオカメラ3と、画像補正部13と、基準カメラの画像のエッジを特定するエッジ特定部15と、視差画像作成部17と、視差不連続部分特定部19と、視差不連続部分を拡張する視差不連続部分拡張部20と、視差不連続部分かつエッジである視差不連続エッジ部分を特定する視差不連続エッジ部分特定部21と、障害物の有無を判定する障害物判定部23’とを備える。画像補正部13、視差画像作成部17、エッジ特定部15、視差不連続部分特定部19、視差不連続部分拡張部20、視差不連続エッジ部分特定部21および障害物判定部23’はマイクロプロセッサとメモリとで構成される。
【0053】
実施例2における画像補正部13は、基準画像の補正した画像をエッジ特定部15にも出力する。エッジ特定部15は、入力される画像のエッジを特定する。本実施例では、左画像センサ3aで撮影されて補正された画像のエッジを特定する。エッジの特定として、ソーベル(SOBEL)フィルタを実施して、予め定められた一定値以上の値または絶対値を有する画素をエッジと特定する。また、実施するフィルタはソーベルフィルタ以外のエッジ強調フィルタでもよい。なお、画像補正部13にてエッジ強調の補正処理を実施する場合は、エッジ強調された補正画像を2値化処理にてエッジを特定してもよい。
【0054】
視差不連続部分拡張部20は、視差不連続部分特定部19から入力された視差不連続部分の画素座標情報を基に、視差不連続部分を拡大する。本来、被写体のそれぞれの面の境目で視差の不連続が起こるべきであるが、ステレオマッチングを面積相関法で実施した場合、そのウィンドウサイズに由来して、実際よりも視差の不連続部分の場所がずれて検出されることがある。
【0055】
そこで、視差不連続部分に含まれる各画素を中心に、視差不連続部分をウィンドウサイズ分拡張する。例えば、ステレオマッチングの際に、3×3画素の大きさのウィンドウを用いた場合、視差不連続部分の画素を中心として左右両方向に1画素分拡張することで、視差不連続部分における1画素を、この画素を含めて水平方向に3画素分の大きさに拡張する。拡張の方向は、水平方向に限らず、鉛直方向に拡大してもよいし、水平方向および鉛直方向の両方向に拡張してもよい。
【0056】
視差不連続エッジ部分特定部21は、視差が不連続、かつ、エッジである画素を特定する。視差不連続部分拡張部20により拡張された視差不連続部分とエッジ特定部15により特定されたエッジとの重なる画素領域、すなわち、論理積(AND)を視差不連続エッジ部分とする。なお、ステレオマッチングを面積相関法等のフィルタを用いないで実施した場合は、単純に視差不連続部分特定部19により特定された視差不連続部分とエッジが特定された画像との論理積を取ってもよい。
【0057】
障害物判定部23’は、視差画像上の予め定められた範囲内において、視差不連続エッジ部分特定部21が特定した視差不連続エッジ部分の画素をカウントし、予め定められた閾値を越えた場合に、その範囲に障害物が存在すると判定する。視差不連続エッジ部分の画素のカウント数が予め定められた閾値に満たない場合、その範囲に障害物は無いと判定する。すなわち、障害物判定部23’と実施例1における障害物判定部23との違いは、視差不連続エッジ部分を基に障害物を判定するか、視差不連続部分を基に障害物を判定するかの違いである。
【0058】
次に、実施例2における障害物検出の動作を
図12を用いて説明する。
図12は実施例2における障害物検出の処理手順を示すフローチャートである。実施例2における障害物検出の動作において、実施例1の動作と同じ動作については説明を省略し、実施例1における動作との違いを説明する。
【0059】
画像撮影(ステップS01)、撮影画像補正(ステップS02)、視差画像作成(ステップS03)、および、視差不連続部分特定(ステップS04)に関しては、実施例1と同様の処理をするので説明を省略する。
【0060】
次に、実施例2では、特定された視差不連続部分を拡張する(ステップS06)。視差不連続部分に含まれる各画素を中心に、視差不連続部分を水平方向または鉛直方向の少なくともいずれかの方向に拡張する。視差不連続部分の拡張方向は、ステレオマッチングのフィルタリングの方向に拡張することが好ましい。
図8における視差不連続部分Pdを水平方向に拡張した視差不連続部分Pdeが
図13に示される。
【0061】
また、視差画像作成(ステップS03)から視差不連続部分拡張(ステップS06)と並行して、エッジ特定部15により基準画像の補正画像のエッジを特定する(ステップS11)。次に、視差不連続部分エッジ特定部21により、視差不連続部分かつエッジである部分を特定する(ステップS07)。次に、障害物判定部23’により、視差不連続エッジ部分の画素のカウント数が、予め定められた閾値以上の場合、障害物が有ると判定され、閾値未満の場合、障害物が無いと判定される。障害物が有る場合、車両1は実施例1と同様に制御される。
【0062】
障害物の輪郭部分は視差の不連続部分であるとともにエッジであることが多い。そこで、エッジ特定部15により補正画像のエッジを特定し、視差不連続エッジ部分特定部21により、視差不連続エッジ部分を特定する。特定された視差不連続エッジ部分を基に障害物と判定することで、障害物の検出精度をさらに向上させることができる。
【0063】
また、ウィンドウを用いてステレオマッチングする場合、エッジの小さい部分はステレオマッチングにおいて誤対応することがある。これは、ウィンドウ幅により視差画像のエッジと補正画像のエッジとがズレる場合があるからである。そこで、視差の不連続部分をある一定の画素数の分だけ縦または横方向に拡張することで、視差画像のエッジと補正画像のエッジとのズレを補正することができる。これにより、視差画像上のエッジに対応する視差不連続部分と補正画像上のエッジとの重複部分を特定しやすくなり、視差不連続エッジ部分の特定精度が向上する。この結果、障害物の検出精度をさらに向上させることができる。
【0064】
本発明は、上記実施例のものに限らず、次のように変形実施することができる。
【0065】
(1)上記実施例において、障害物検出装置5、5’は、画像補正部13を備えていたが、これに限られず、例えば
図14に示すように画像補正部13を省略してもよい。
図14は、実施例1において画像補正部13を省略した構成を示すブロック図である。画像補正部13を省略することで、ステレオカメラ3で撮影した画像を直接、視差画像作成部17へ出力する。障害物検出装置5、5’は画像補正部13を備えることで障害物検出の精度を向上させることができるが、画像補正部13を備えないことで障害物検出の時間を短縮することができる。実施例2においても、画像補正部13を省略することで、ステレオカメラ3で撮影した画像を直接視差画像作成部17およびエッジ特定部15へ出力してもよい。
【0066】
(2)上記実施例において、左画像センサ3aで撮影された画像を基準画像として障害物の検出をしていたが、これに限られない。右画像センサ3bで撮影された画像を基準画像として障害物の検出をしてもよいし、左画像センサ3aで撮影された画像および右画像センサ3bで撮影された画像それぞれを基準画像として2種類の視差画像を作成して障害物を検出してもよい。左右両画像センサの画像をそれぞれ基準カメラとする場合、左基準画像と右基準画像とでそれぞれ得られる視差画像のそれぞれの対応点での視差の値が異なる画素について、画素の視差の値の信頼性が低いと判定し、視差不連続の特定の対象から除外してもよい。これにより、視差不連続部分の特定の精度が向上する。
【0067】
(3)上記実施例1において、障害物判定部23は、視差不連続部分Pdが特定された視差画像Dp’上で、視差不連続部分Pdの画素数をカウントして障害物の有無を判定していた。しかしながら、これに限らず、実空間上で、視差不連続部分Pdの対応する画素数をカウントして障害物の有無を判定してもよい。すなわち、特定された視差不連続部分Pdの各画素の実空間上の座標Rp(Xp,Yp,Zp)を算出する。視差画像から実空間上の座標を算出する方法は、従来から利用されている平行ステレオ法を用いる。すなわち、2台の撮像センサ3a、3b間の距離、および、2台の撮像センサ3a、3bの焦点距離と視差画像の視差情報を用いることで、視差不連続部分Pdの各画素に対応する実空間上の3次元座標を算出することができる。なお、実空間上の三次元座標(X,Y,Z)は、基準カメラである左画像センサ3aの焦点を原点として、水平方向にX軸、鉛直方向にY軸、距離方向にZ軸を設定している。
【0068】
また、車両の走行に障害となると予想される実空間座標の範囲Rs(X1<X<X2,Y1<Y<Y2,Z1<Z<Z2)を1つ以上予め設定しておき、その範囲に含まれる視差不連続部分Pdの実空間上の画素数をカウントし、予め定められた閾値を越えた場合に、その空間内に障害物が有ると判定する。閾値以下の場合は、その空間内に障害物は無いと判定する。この構成によれば、予め定められた空間Rsを複数個設定すれば、空間Rsごとに障害物の有り無しを判定することができるので、判定された障害物の位置関係をも検出することができる。特に、複数の障害物が検出された場合、障害物間の位置関係を検出することもできる。
【0069】
なお、実施例2においても同様に、障害物判定部23’は、実空間上で、視差不連続エッジ部分の対応する画素数をカウントして障害物の有無を判定してもよい。すなわち、特定された視差不連続エッジ部分の各画素の実空間上の座標Rq(Xq,Yq,Zq)を算出する。また、実空間座標の範囲Rsを1つ以上予め設定しておき、その範囲に含まれる視差不連続エッジ部分の実空間上の画素数をカウントし、予め定められた閾値を越えた場合に、その空間内に障害物が有ると判定する。閾値以下の場合は、その空間内に障害物は無いと判定する。
【0070】
(4)上記実施例において、障害物検出装置5、5’は車両に備えられた障害物検出装置として備えられたがこれに限られない。他にも、例えば、自律走行するロボット用のビジョンシステムや視覚障害者の支援システムなどに採用してもよい。