<第1実施形態>
図1は、移動体検出装置100を含む車載装置1000のブロック構成の一例を示す図である。本実施形態の移動体検出装置100は、車両に搭載され、車両の前方(進行方向に沿った前方)の撮像画像に基づいて歩行者、他車両、自転車などの移動体を検出する装置である。
また、図1に示すように、本実施形態の車載装置1000は、移動体検出装置100と、この移動体検出装置100から移動体検出情報を取得し、取得した移動体検出情報に基づく情報をユーザ又は車両側に出力する車両コントローラ200等の外部装置とを有する。図1に示すように、外部装置として、車両の駆動を制御する車両コントローラ200の他、歩行者の存在を知らせる警報装置300、歩行者の存在に応じた走行支援を行う走行支援装置400、ディスプレイ及び/又はスピーカを有し、歩行者の存在に関する情報を提示する出力装置500を一又は二以上備える。これら本実施形態の移動体検出装置100、車両コントローラ200、警報装置300、走行支援装置400、出力装置500の演算処理機能は、CPU、MPU、DSP、FPGAなどの動作回路を組み合わせて構成された処理手段が実行する。例えば、本実施形態の移動体検出装置100の画像処理部20、移動体検出部30は、マイクロコンピュータとメモリとから構成されて動作するプログラムや、それぞれの処理を回路として組み込んだASIC、FPGAを用いて移動体検出に必要な演算処理を行う。
なお、これらの装置の演算処理を行う構成は、CAN(Controller Area Network)などの車載LANにより接続される。
以下、図面に基づいて本実施形態の移動体検出装置100について詳細に説明する。図1に示すように、移動体検出装置100は、カメラ10と、カメラ10の撮像データを記憶する画像メモリ11と、撮像された画像を処理する画像処理部20と、移動体検出部30とを備える。
続いて、画像処理装置100が備える各構成について説明する。
まず、カメラ10は、例えばCCD(Charge-Coupled Devices)やCMOS(Complementary Metal-Oxide Semiconductor)などの撮像素子を有するカメラであり、所定周期で連続的に車両周囲(車両前方、車両後方、車両側方など)を撮像し、フレーム毎に撮像された画像を画像メモリ11に出力する。そして、画像メモリ11は、画像データをアクセス可能な状態で記憶する。この画像メモリ11としては、HDD、CD、MD、DVD、光ディスクその他の記録媒体を用いる。
図2にカメラ10の設置例を示す。図2に示すように、カメラ10は車両の室内上部前方に設置される。同図に示すように、本実施形態では、1つのカメラ10を車両に設置する。つまり、本実施形態では、単眼のカメラ10で車両周囲を撮像する。
さらに、カメラ10は、その光軸LSが車両前方正面方向(Z方向)に向き、撮像面の水平軸X(図示省略)は路面と平行となるように、また撮像面の垂直軸Y(図示省略)が路面と略垂直になるように設定される。
カメラ10により撮像された撮像画像(自車両前方の画像)の例を図3に示す。カメラ10により撮像された撮像画像は、画像左上頂点を原点として左から右へ延在するx軸、上から下へ延在するy軸により定義されるxy座標系により表される。図3に示す撮像画像の例は、左右の白線、外壁などの走路の境界線と、道路の左側から右側へ移動する歩行者を含む。
次に、画像処理部20について説明する。画像処理部20は、撮像画像取得部21と、縮小画像生成部22と、特徴点抽出部23と、移動情報算出部24と、合成部25とを備え、カメラ10により撮像された撮像画像の処理を行う。
まず、撮像画像取得部21について説明する。撮像画像取得部21は、画像メモリ11(又はカメラ10)からカメラ10により所定周期で撮像された撮像画像を取得する。そして、撮像画像取得部21は、撮像画像を縮小画像生成部22及特徴点抽出部23へ送出する。もちろん、縮小画像生成部22、特徴点抽出部23、移動情報算出部24、合成部25は、撮像画像取得部21を介することなく画像メモリ11に直接アクセスし、撮像画像又は縮小画像を取得することができる。
次に、縮小画像生成部22について説明する。縮小画像生成部22は、カメラ10が撮像し、撮像画像取得部21により取得された撮像画像から縮小率の異なる縮小画像を生成する。縮小画像は、撮像画像を構成する単位画素を複数個結合した画像を生成する。すなわち、縮小画像における単位画素は、元の撮像画像における単位画素よりも拡張される。言い換えると、縮小画像生成部22は、単位画素の大きさを異なる率で拡大し、又は単位画素を異なる数だけ結合し、縮小率の異なる複数の縮小画像を得る。
図4に基づいて縮小画像の生成手法の例を説明する。図4に示すように、縮小画像の元となる撮像画像を最上段の図4(a)に示し、1/2縮小画像を中段の図4(b)に示し、1/4縮小画像を最下段の図4(c)に示す。図4(a)の撮像画像は図3に示す撮像画像に対応する。
撮像画像、1/2縮小画像、1/4縮小画像は、後述する移動情報を算出できる範囲(速度検出範囲ともいう)がそれぞれ異なり、撮像画像よりも速度検出範囲を広げることができる。
図4(b)に示す1/2縮小画像は、撮像画像において横方向に並ぶ2画素を1画素に結合して生成した縮小画像である。つまり、1/2縮小画像は、撮像画像をX軸方向に1/2に縮小した画像である。また、図4(c)に示す1/4縮小画像は、撮像画像において横方向に並ぶ4画素を1画素に結合して生成した縮小画像である。つまり、1/4縮小画像は、撮像画像をX軸方向に1/4に縮小した画像である。なお、1/4縮小画像は1/2縮小画像の横方向に並ぶ2画素を1画素に結合して生成してもよい。縮小画像の縮小率は特に限定されず、任意の縮小率で生成することができる。縮小画像生成部22は、生成した縮小画像を、画像メモリ11に一時的に記憶させる。また、撮像画像における画素と縮小画像における画素の画像上の位置(座標値)の対応関係は撮像画像及び/又は各縮小画像の情報に関連づけて記憶する。
このように、本実施形態では、撮像画像から異なる縮小率の縮小画像を生成することにより、特徴点の移動情報を算出することができる領域(速度算出範囲)を拡張することができるため、画像変化の大きい部分であっても正確な移動情報を算出することができる。
続いて、特徴点抽出部23について説明する。特徴点抽出部23は、撮像画像取得部21により取得された撮像画像における特徴点と、縮小画像生成部22により生成された縮小画像における特徴点とをそれぞれ抽出する。本処理例において、特徴点抽出部23が抽出する特徴点は、撮像画像に含まれる物体のエッジに対応する画素又は画素群である。
具体的に、撮像画像から特徴点を抽出するにあたり、特徴点抽出部23は、カメラ10により撮像された画像を画像メモリ11から取得し、取得した撮像画像を所定の閾値を用いて2値化することによって、画像内に存在する物体のエッジを抽出する。図5(a)に、抽出された垂直方向のエッジ例を示す。次に、抽出された各エッジに対して、細線化処理を行ってエッジ幅を絞り、エッジの中心を正確に設定する(図5(b)参照)。さらに、細線化されたエッジのエッジ幅が一定の幅となるように、例えば3画素分の幅となるように、エッジを水平方向に拡張する(図5(c)参照)。この操作により、抽出したエッジが正規化され、各エッジが均一の幅を持つエッジ画像を得る。
さらに、特徴点抽出部23は、同様の手法により縮小画像の特徴点を抽出する。抽出された撮像画像の特徴点の情報及び縮小画像の特徴点の情報は、移動情報算出部24へ送出する。
移動情報算出部24は、特徴点抽出部23により抽出された特徴点及びこの特徴点周囲に対応する画素について、その移動方向及び/又は移動速度を含む移動情報をそれぞれ算出する。求めた特徴部の移動速度と移動方向は、撮像タイミング識別子又はフレーム識別子と対応づけて記憶する。この画素の移動情報は、画素の特定情報とともに、「画素の移動速度」と「画素の移動方向」を含む。なお、一の画像データ中に複数の特徴部が存在する場合は、すべての特徴部についてその移動情報を算出する。
以下、移動情報の算出手法の一例を説明する。移動情報算出部24は、カメラ10により撮像された物体の画像の情報に基づいて、物体の外延に対応するエッジが検出された位置の画素のカウント値をカウントアップし、このカウント値の傾きに基づいて、エッジの移動速度及び移動方向を算出する。
また、移動情報算出部24は、撮像タイミングが異なる撮像画像データについて、各画像データに含まれるエッジに対応する画素の画素カウンタのカウンタ値を所定の手法で更新する。ここで、画素カウンタとは、各画素に設定されたカウンタであり、画素がエッジに対応する場合は画素カウンタのカウンタ値を+1加算し、画素がエッジに対応しない場合は画素カウンタのカウンタ値を0とする(初期化する)カウンタである。このカウンタ値の更新処理を、カメラ10により所定周期で繰り返し撮像されるフレーム毎に行う。この操作を行うと、エッジに対応する時間が長い画素は、対応する画素カウンタのカウンタ値が大きくなり、他方、エッジに対応する時間が短い画素は、対応する画素カウンタのカウンタ値が小さくなる。
この画素カウンタのカウンタ値の変化は、エッジの移動方向と移動量を表していることになる。このため、このカウンタ値に基づいて、撮像画像上又は縮小画像上におけるエッジの移動方向と移動速度とを算出する。画像の座標系は方位を表しているため、エッジ、及びこのエッジに対応する特徴部の移動方向と移動速度を求めることができる。
さらに、図5に基づいて、移動情報算出部24が行う移動情報の算出手法を説明する。図5は移動情報の算出処理を説明するための図、すなわち、抽出されたエッジが正規化されたエッジ画像を取得し、エッジのカウンタ値(滞留時間)から移動方向と移動速度を算出する処理を具体的に説明するための図である。
まず、特徴点抽出部23は、エッジ画像に対して2値化処理を行う。2値化処理とはエッジの検出された位置の画素を1とし、エッジの検出されなかった位置の画素を0とする処理である。図5(a)は抽出された垂直方向のエッジの2値化画像例を示す。
次に、図5(b)に示すように、生成された2値化画像に対して、細線化処理を行う。細線化処理とは、検出されたエッジのエッジ幅を所定画素幅になるまで縮小する処理である。つまり、抽出された各エッジに対して細線化処理を行ってエッジ幅を絞る。本例では、図5(b)に示すように、所定画素幅として1画素になるまでエッジのエッジ幅を細線化する。このようにエッジを所定の画素幅になるまで細線化することによって、エッジの中心となる中心位置を設定する。なお、本例では、1画素に細線化する例を示すが、細線化する画素数は特に限定されない。
次に、細線化されたエッジのエッジ幅を膨張させる膨張処理を行う。膨張処理とは、細線化によって設定された中心位置からエッジの移動方向に向かってエッジ幅が一定の幅となるように膨張させるとともに、中心位置からエッジの移動方向と反対方向にもエッジ幅を膨張させる処理である。本例では、細線化されたエッジのエッジ幅が3画素分の幅となるように、エッジを水平方向に膨張させる。この処理により、抽出されたエッジを正規化し、各エッジの幅が均一なエッジ画像を得る。
具体的に、図5(c)に示すように、エッジの中心位置x0からエッジの移動方向(x軸の正方向)に1画素膨張させるとともに、エッジの中心位置x0からエッジの移動方向と反対方向(x軸の負方向)に1画素膨張させて、エッジ幅を3画素に膨張させる。
このように細線化処理と膨張処理とを行うことによって、抽出されたエッジ画像のエッジ幅を、エッジの移動方向に向かって所定の幅に統一し、規格化する。
次に、移動情報算出部24が移動情報を算出するために行うカウントアップ処理について説明する。ここに言うカウントアップ処理とは、エッジが検出された画素の位置に対応するメモリアドレスの値をカウントアップし、エッジが検出されなかった画素の位置に対応するメモリアドレスの値を初期化する処理である。
以下、図5(c)〜(f)に基づいて移動情報算出部24によるエッジのカウントアップ処理について説明する。説明の便宜のため、ここでは、エッジがx軸の正方向に移動する場合を例にして説明する。エッジがx軸の負方向やy軸方向、あるいは2次元的に移動する場合においても、基本的な処理手法は共通する。
図5(c)に示すように、エッジはあるフレームにおいて位置x0にエッジの中心位置がある。そして、その中心位置からエッジの移動方向に1画素の位置x0+1に膨張され、同様に、中心位置からエッジの移動方向と反対方向に1画素の位置x0−1に膨張される。
このようなエッジが検出された位置、「x0−1」、「x0」、「x0+1」に対応するメモリアドレスのカウント値は+1カウントアップされる。他方、エッジが検出されなかった位置に対応するメモリアドレスのカウント値は、リセットされる。
例えば、図5(d)では、時刻tにおいて、位置「x0−1」、「x0」、「x0+1」にエッジが検出されている。このため、それぞれの位置に対応するメモリアドレスのカウント値が各1カウントアップされる。その結果、位置「x0+1」のカウント値は「1」、位置「x0」のカウント値は「3」、位置「x0−1」のカウント値は「5」である。
次に、図5(e)に示すように、時刻t+1になってもエッジが移動していないので、位置「x0−1」、「x0」、「x0+1」の各位置でエッジが検出される。このため、位置「x0−1」、「x0」、「x0+1」のカウント値をさらに1ずつカウントアップする。その結果、位置「x0+1」のカウント値は2、位置「x0」のカウント値は4、位置「x0−1」のカウント値は6となる。
さらに、図5(f)に示すように、時刻t+2では、エッジがx軸の正方向に1画素シフトして位置「x0」、「x0+1」、「x0+2」の位置でエッジが検出される。このため、エッジが検出された位置「x0」、「x0+1」、「x0+2」に対応するメモリアドレスのカウント値はカウントアップされる。他方、エッジが検出されなかった位置「x0−1」のカウント値はリセットされ、「ゼロ」となる。その結果、図5(f)に示すように位置「x0+2」のカウント値は1、位置「x0+1」のカウント値は3、位置「x0」のカウント値は5となる。さらに、エッジが検出されなかった位置「x0−1」のカウント値はリセットされ、「0」になっている。
このように、移動情報算出部24は、エッジが検出された位置に対応するメモリアドレスのカウント値をカウントアップし、エッジの検出されなかった位置に対応するメモリアドレスのカウント値をリセットする。
なお、図5に基づく説明においては、カウント値を検出する位置として、エッジの中心位置「x0」と、この中心位置からエッジの移動方向へ1画素の位置「x0+1」と、中心位置からエッジの移動方向と反対方向に1画素の位置「x0−1」の3箇所でカウント値を検出するが、後述するカウント値の傾きが求められれば、カウント値を検出するポイントの配置、数は限定されない。つまり、エッジの移動方向に対して2箇所以上においてカウント値を検出できれば、カウント値の検出箇所はいくつであってもよい。
また、エッジが移動する速度に比べて、フレームレートが十分に高く設定されていれば、連続するフレーム間において、エッジは同じ位置で複数回検出される。例えば、図5の例では、連続する時刻tのフレームと時刻t+1のフレームにおいて、エッジは位置x0において2回検出される。したがって、エッジが検出された位置に対応するメモリアドレスのカウント値をカウントアップしていくと、そのカウント値はその位置においてエッジが検出されている時間(フレーム数、滞留時間)と相関する。特に、エッジのカウント値の中で最小のカウント値hは、エッジが移動してから何フレームの間、同じ位置にあるかということを表す。
次に、本実施形態における、エッジの移動速度、移動方向及び位置の算出手法について説明する。本実施形態では、カウント値の傾きを算出し、この傾きに基づいて、エッジの移動速度、移動方向及び位置を算出する。
例えば、図5(e)の場合では、位置「x0−1」、「x0」、「x0+1」のカウント値がそれぞれ「6」、「4」、「2」である。位置「x0−1」のカウント値「6」から「x0+1」のカウント値「2」を引くと、カウント値の傾きHは、H=(6−2)/2=2と算出できる。
これは、H={(エッジが位置x0−1に移動してから現在までの時間)−(エッジが位置x0+1に移動した後の時間)}/(2画素)を意味する。つまり、傾きHを算出することにより、エッジが、位置x0にある1画素を通過するのに要する時間(フレーム数)を算出することになる。
したがって、カウント値の傾きHは、エッジが1画素移動するために何フレームを要するかに相当し、このカウント値の傾きHに基づいてエッジの移動速度1/Hを算出する。図5(e)では1画素移動するのに2フレームを要することになるので、エッジの移動速度は1/2(画素/フレーム)と算出する。同様に、図5(f)でもH=(5−1)/2=2となるので、エッジの移動速度は1/2(画素/フレーム)になる。
続いて、カウント値の大小に基づいて、エッジの移動方向を判断する手法について説明する。エッジの無い位置にエッジが移動し、新たにエッジが検出された位置のカウント値は1となるから、各位置のカウント値の中では最も小さな値となる。したがって、エッジが移動する方向のカウント値は小さく、エッジが移動する方向と反対方向のカウント値は大きくなる。この傾向を利用して、エッジの移動方向を判断することができる。
さらに、エッジが移動する速度に比べてフレームレートが十分に高く設定されていれば、検出対象物は等速移動をしていると仮定することができる。また、現在の位置におけるカウント値の中で最小のカウント値hは、エッジがその位置で検出されている時間、すなわちエッジが移動してから何フレームの間、同じ位置にあるかということを表している。これらのことにより、エッジの位置は、エッジの中心位置をx0とすると、「エッジの位置=x0+h/H」により求めることができる。例えば、図5(f)では、エッジの速度は1/2(画素/フレーム)で、時刻t+2の時点では1フレーム連続して同じ位置でエッジが検出されているので、時刻t+2のエッジの位置は「1(フレーム)×{1/2(画素/フレーム)}=0.5画素」だけ位置x0から移動していると算出することができる。
以上のことから、エッジが検出された位置に対応するメモリアドレスのカウント値をカウントアップし、カウントアップされたカウント値の傾きに基づいてエッジの移動速度及び移動方向を算出することができる。
同様に、縮小画像に対しても同じ処理を行い、特徴点(エッジ)の移動速度及び移動方向を含む移動情報を算出する。本例では、撮像画像の移動情報に加え、これを横方向に1/2縮小した縮小画像の移動情報と、同じく撮像画像を横方向に1/4縮小した縮小画像の移動情報を算出する。
ただし、縮小画像の特徴点について算出された移動速度は各縮小画像における移動速度であるから、移動情報に基づいて移動体を検出する処理を行う際には、縮小画像における移動速度を撮像画像に対する移動情報に変換する必要がある。
このように、撮像画像に比べて1画素の大きさを拡大した所定の縮小率の縮小画像について移動情報を算出することにより、撮像画像では1フレーム当たり1画素以上移動するエッジの動きを1フレーム当たり1画素未満の動きに変換して移動速度を算出することができるため、速度を検出する範囲を拡大することができる。
具体的に、撮像画像における1画素の大きさを拡大した縮小画像について、エッジの検出に応じてカウントアップし、エッジが1画素を通過するのに要する時間を算出する手法によりエッジの移動情報を算出するため、1フレーム当たり1画素以上移動するエッジの動きを1フレーム当たり1画素以下の動きに変換して、移動速度を算出することができる。
このため、フレームレートを高く設定しなくても、相対的に広い範囲において移動速度を算出することができる。つまり、広い範囲で正確な移動情報を算出することができるため、比較の対象となる背景の移動速度を正確に算出することができ、ひいては背景と対象物との移動情報の対比を高い精度で行うことができる。
移動速度算出部24は、算出した移動情報を合成部25へ送出する。
続いて、合成部25について説明する。合成部25は、移動情報算出部24により算出された縮小画像の特徴点の移動情報と撮像画像の特徴点の移動情報とから合成情報を生成する。
合成情報の態様は特に限定されないが、移動体検出の対象となる各特徴点の画素に、撮像画像の特徴点の移動情報又は何れかの縮小画像の特徴点の移動情報が対応づけられた情報とすることができる。本実施形態の合成情報は、所定の視野画像における特徴点(エッジ)に関する情報(例えば座標情報)に、撮像画像の特徴点の移動情報又は何れかの縮小画像の特徴点の移動情報が対応づけられた情報である。本例では、所定の視野画像としては、縮小処理をしていない撮像画像を用い、撮像画像に特徴点(エッジ)の位置情報と撮像画像の特徴点の移動情報又は何れかの縮小画像の特徴点の移動情報が重畳された画像情報を合成情報とする。
つまり、合成部25は、撮像画像において検出された特徴点に対応する画素ごとに、撮像画像の移動情報又は各縮小画像の移動情報の何れか選択し、選択された移動情報を特徴点の画素(画素のID)に対応づけて合成情報を生成する。
このように、合成部25は、特徴点の移動情報を算出する際の単位領域の大きさ(画素に対応する撮像領域の大きさ)が異なる撮像画像と各縮小画像(1/2縮小画像、1/4縮小画像)から得られた移動情報を組み合わせ、移動体の検出に適した一の合成情報を生成する。
さらに、合成部25は、撮像画像及び各縮小画像において算出された移動情報は、その移動情報が検出された単位領域(画素)の大きさが異なるため、その単位領域の画像の大きさを揃える。本例では、カメラ10により撮像された撮像画像を基準とした合成情報を生成するため、撮像画像の画素の大きさに揃える。つまり、横方向に1/2縮小した1/2縮小画像は、横方向に沿って2倍拡大し、横方向に1/4縮小した1/4縮小画像は横方向に沿って4倍に拡大する。
さらにまた、合成部25は、移動速度の単位を揃える。本実施形態において算出された移動速度の単位が画素/フレームであるため、算出された移動速度(画素/フレーム)にカメラ10のフレームレートを乗ずることにより、これらの移動速度を画素/秒の単位系に換算する。
撮像画像を横方向に1/2縮小した縮小画像の移動速度の単位も画素/秒の単位系に換算する。ここで、1/2縮小画像は、検出された単位領域(画素)が撮像画像の単位領域(画素)の2倍(2画素分)になるため、撮像画像における1フレーム当たりの移動量は2倍となる。したがって、1/2縮小画像については算出された移動速度を2倍し、フレームレートを乗じることにより、撮像画像に対応する移動速度(画素/秒)を求めることができる。1/4縮小画像についても同様に、算出された移動速度を4倍し、フレームレートを乗じることにより、撮像に対応する移動速度(画素/秒)を求めることができる。
ちなみに、縮小画像は撮像画像から生成されるものであるため、縮小画像における画素及び/又は画素群と撮像画像における画素及び/又は画素群との位置(座標値)は対応づけることが可能である。対応関係に関する情報は縮小画像に付してもよいし、参照可能なように画像メモリ11に記憶させてもよい。
このように、移動速度の大きさと単位を揃えた後、縮小画像の特徴点の移動情報と撮像画像の特徴点の移動情報とから合成情報を生成する。
合成部25は、縮小画像の移動情報と撮像画像の移動情報の中から適切な情報を選択し、選択した移動情報に基づいて合成情報を構成する。以下、どの縮小画像から、どのような移動情報を選択し、どのように合成情報を生成するかという合成情報の生成手法の一例を説明する。
本実施形態の合成部25は、撮像画像において検出された各特徴点の移動情報と、撮像画像の特徴点にそれぞれ対応する縮小画像の特徴点の移動情報とから合成情報を生成する。具体的に、合成部25は、撮像画像において特徴点が抽出されたか否かを判断し、特徴点が抽出された場合において、その特徴点に対応する縮小画像における特徴点の移動情報を用いて合成情報を生成する。つまり、合成情報を生成する際に移動情報の合成処理を行うのは、撮像画像において特徴点(エッジ)が検出された画素に限定される。
このようにするのは、画像処理によって生じたノイズの影響を排除し、移動物の存在に由来する特徴点についてのみ合成処理を行うためである。すなわち、画像の縮小や画像の拡大などの画像処理の影響により、撮像画像に特徴点(エッジ)が存在しない部分(実際には物体が存在しない部分)に移動情報が算出される場合があり、このような移動情報は誤検出の原因になるおそれがあるため、その影響を排除するためである。
このように、本実施形態では、移動体の存在に起因する移動情報ではなく、画像処理において発生した移動情報による影響を排除するため、合成部25による合成処理の対象となる画素を、撮像画像に含まれる画素であって特徴点(エッジ)が検出された画素に限定する。このように、撮像画像において特徴点が検出された画素に限って、他の縮小画像と移動情報の合成処理を行うことにより、縮小画像の生成や縮小画像の拡大等の画像処理において発生するノイズの影響を排除することにより、検出精度の低下を防止することができる。
合成部25は、撮像画像において、合成の対象となる画素又は画素群(撮像画像において抽出された特徴点に対応する画素又は画素群)を特定した後、そのエッジが存在する画素の移動情報について移動情報(移動速度)の合成を行う。
合成部25は、撮像画像において抽出された特徴点にそれぞれ対応する各縮小画像の特徴点の移動速度のうち、縮小率の最も高い縮小画像の特徴点の移動情報に基づいて合成情報を生成する。つまり、撮像画像から特徴点が抽出された場合(すなわち物体の存在が検出された場合)は、その特徴点の移動速度として、縮小率の最も高い縮小画像において対応する移動情報を選択する。こうすることにより、比較的S/Nの高い移動情報に基づいて合成情報を生成することができる。つまり、縮小率の高い縮小画像は見かけ上遅い速度を検出するが、移動速度をエッジの蓄積量に基づいて算出した場合は、遅い速度の方がエッジの蓄積量が多く、S/Nが高い。このため、縮小率の高い移動情報を選択することにより、物体が存在する特徴点についてS/Nの高い移動情報に基づく合成情報を生成することができる。
また、合成部25は、撮像画像から抽出された特徴点の移動速度が算出されない場合は、特徴点に対応する各縮小画像の特徴点の移動速度のうち、縮小率の最も高い縮小画像の特徴点の移動情報に基づいて合成情報を生成する。つまり、撮像画像から特徴点が抽出され、物体の存在は検出できたが、その物体の移動速度が検出されなかった場合は、縮小画像の移動情報を用いて合成情報を生成する。
合成情報の生成処理において、合成部25は、まず、撮像画像において特徴点が抽出された画素を合成の対象として特定する。合成の対象となる特徴点(エッジ)に対応する各縮小画像の移動情報のうち、縮小率が最も高い縮小画像の移動情報を選択する。例えば、1/2の縮小画像と1/4の縮小画像が生成されている場合は、縮小の度合い(縮小率)が最も高い1/4の縮小画像における移動情報から、合成の対象となる特徴点に対応する移動情報を選択する。縮小画像は撮像画像に基づいて生成されているため、撮像画像の画素と縮小画像の画素との対応関係は判断可能である。
合成部25は、選択された縮小画像の移動情報を移動情報算出部24又は画像メモリ11から取得する。そして、選択された移動情報を用いて合成情報を生成する。言い換えると、撮像画像に基づいて算出された移動情報を、選択された縮小画像の移動情報に置換する。撮像画像において抽出された特徴点(エッジ)についてこの処理を行い、合成情報を生成する。
このように、縮小率が高い縮小画像の移動情報を撮像画像の移動情報に置換することにより、精度の高い合成情報を得ることができる。
本実施形態において、特徴点(エッジ)の移動速度は特徴点の蓄積量に基づいて算出されるため、特徴点に対応する各画素に関して複数の移動情報が算出されている場合は、縮小率の高い縮小画像の方が、見かけ上、速度の遅い特徴点の移動情報が検出される。言い換えると、移動情報は、特徴量(エッジ)の蓄積量に基づいて算出されるから、動きが遅い特徴量の方が移動情報の蓄積量が多くなるためS/Nが高くなる。このため、縮小率の異なる縮小画像について移動情報がそれぞれ算出されている場合に、S/Nが高い縮小率の高い速度情報を選択して合成情報を生成することにより、精度の高い合成情報を得ることができる。
さらに、撮像画像から抽出された特徴点の移動速度が算出されなった場合において、縮小率の最も高い縮小画像の特徴点の移動情報に基づいて合成情報を生成することにより、物体の存在は検出できたが移動速度が判らなかった場合においても、精度の高い合成情報を得ることができる。
また、合成部25は、撮像画像において検出された特徴点にそれぞれ対応する各縮小画像の特徴点の移動速度のうち、撮像画像の特徴点の移動方向と方向差が所定値未満である特徴点であって、かつ縮小率の最も高い縮小画像の特徴点の移動情報に基づいて合成情報を生成する。
移動方向に関していえば、特徴点の移動速度が低速域乃至極低速域にある場合は、その移動方向がばらつくため、縮小率が低い縮小画像(最も縮小率が低いのは撮像画像である)の方が精度は高くなる。このため、本実施形態では、撮像画像の特徴点の移動方向とこれに対応する縮小画像の特徴点の移動方向との方向差が所定値未満である場合に、縮小率の最も高い縮小画像の特徴点の移動情報を選択し、合成情報を生成する。これにより、一の特徴点に対応する画素又は画素群の移動方向がある程度揃っている、つまり、移動方向が収束する程度に移動速度が速い場合に限り、縮小率の最も高い縮小画像の特徴点の移動情報を選択し、これを用いて精度の高い合成情報を生成することができる。
図6に基づいて、合成情報を生成手法の一例を説明する。図6は、フレームレートを30fpsとした場合に、撮像画像、1/2縮小画像及び1/4縮小画像から移動情報が算出された画素を示す。図6において、薄墨を施した画素は、撮像画像において特徴点(エッジ)が抽出された画素であって、かつ、撮像画像において移動速度が算出されない(検出されない)画素、及び/又は撮像画像の移動方向と縮小画像の移動方向との差が所定値未満であるという条件を満たす画素である。本例では、薄墨を施した画素の移動情報を優先して用いた合成情報を生成する。なお、同じ条件である場合は、縮小率の高い縮小画像の移動情報を優先して用いた合成情報を生成する。
以上のように、合成部25は、撮像画像において抽出された特徴点について、縮小画像で移動情報が算出された場合には、撮像画像で移動速度が算出されず及び/又は移動方向が略同一(移動方向差が所定値以内)のとき、縮小率の最も高い(又は相対的に高い)画像の移動情報を、撮像画像に対応する画素の移動情報として選択し、選択された移動情報を用いて合成情報を生成する。
このように生成された合成情報の一態様を、図7に基づいて説明する。
本実施形態の合成部25は、撮像画像上にエッジが存在する画素ごとに選択された移動情報を合成し、合成された移動情報を所定の階級値に分類して表した合成移動画像を生成する。この合成移動情報の一例を図7に示す。図7に示す合成移動画像は、観察者の所定の視野画像上(撮像画像上)に存在する特徴点(エッジ)に対応づけられた移動情報を所定の階級値に分類し、移動情報の特徴が表わされた形態により表現する画像情報である。
この合成移動画像では、移動速度成分の階級値とし、移動情報が検出されたエッジの画素を丸印で表し、移動速度が速い画素ほど点を大きい丸印で表すことにより、画素の移動情報を表現する。
また、移動方向が右、すなわち右方向へ移動する画素を塗りつぶした黒印で表し、移動方向が左、すなわち左方向へ移動する画素を色抜きの白印で表すことにより、画素の移動方向を表現する。
すなわち、図7の合成移動画像が示す状況においては、自車両の走行路右側の外壁よび白線から画像の右側へ向かう移動情報(移動速度)が示され、走行路左側の外壁から画像の左側へ向かう移動情報(移動速度)が示される。また、走行路左側から右へ移動する歩行者から画像の右側へ向かう移動情報(移動速度)が示される。このように、合成移動画像は、移動速度と移動方向を含む移動情報を画像上に表現することができる。合成部25は、生成した合成情報又は合成移動画像を移動体検出部30に提供する。
次に、移動体検出部30について説明する。
移動体検出部30は、グループ化部31と座標変換部32と、判定部33とを有し、合成部25により生成された合成情報(例えば合成移動画像)に基づいて移動体を検出する。移動体は、移動する立体物であるため、本実施形態の移動体検出部30は、合成移動画像における特徴点又は特徴点に対応する画素群が、移動体の候補となり得る立体物であるか否かを判断し、さらにその立体物が移動体であるか否かを判断する。
以下、移動体検出部30が備える各構成について説明する。
まず、グループ化部31について説明する。グループ化部31は、移動情報算出部24により算出された移動速度が所定範囲内であり、合成移動画像おいて略垂直方向に隣接する画素群をグループ化する。このため、グループ化部31は、合成移動画像に領域を設定する。たとえば図8に示すように、合成移動画像上に短冊状の複数の領域を設定し、各短冊状の複数領域により合成移動画像を分割する。そして、グループ化部31は、移動体検出のため、分割領域ごとに、移動情報算出部24により算出された移動速度が所定範囲内であるとともに、画像おいて略垂直方向に隣接する(縦方向に隣接する)画素群をグループ化する。グループ化部31は、画像の下部から上部に向かって各短冊領域を順に走査し、ある注目領域に速度を持った画素が存在し、注目領域の上部に存在する速度を持った画素との速度差を比較し、その速度差がしきい値T1以下である場合には同じ物体と判断し、それらの画素をグループ化する。
具体的には、合成移動画像(図7参照)を縦方向(y軸方向)に探索する。移動情報を持った画素Aが見つかった場合、画素Aに隣接する画素Bを探索する。画素Bが移動情報を有し、かつ画素Aと画素Bの速度方向の差が閾値Re以内であり、かつ、画素Aと画素Bの速度の大きさの差が閾値Tv以内であれば、同じ移動速度で縦に連続していると判断する。
次に、画素Bに隣接する画素Cについても同様に移動情報の有無を判断し、画素Aと画素Cの速度の方向の差が閾値Re以内か、速度の大きさの差が閾値Tv以内かを判断する。以後、いずれかの条件を満たさなくなるまで繰り返す。ここで「縦方向に移動情報が共通する画素が連続する」という特徴は、立体の画像上の特徴である。すなわち、画像の下部から上部に向かって各領域を走査し、領域内に速度を持った画素が存在する場合は、その画素の上方に隣接する速度を持った画素との速度差を比較する。その速度差が閾値T1以下である場合には、車両に対して同じ速度で移動する物体であると推定できることから、同じ物体であると判定してグループ化を行う。
そして、グループ化された領域の上端位置と下端位置を検出する。図8に示す合成移動画像においては、短冊幅に下端点が存在する画像上の垂直位置BL1〜BL 15及び短冊幅に上端点が存在する画像上の垂直位置TL1〜TL15を検出する。
次に、座標変換部32について説明する。座標変換部32は、合成移動画像に含まれる画素を所定の視点から見た俯瞰図における変換座標に変換する。この変換座標は、所定の領域(面積)が与えられるとともに分割領域に分割された変換座標である。
まず、座標変換部32は、グループ化部31によりグループ化された画素の上端位置(最も高い位置に存在する画素)と下端位置(最も低い位置に存在する画素)を検出する。この処理により、図8に示す下端位置BL1〜BL15及び上端位置TL1〜TL15が検出される。
座標変換部32は、図9に示すように、物体が存在する領域である各短冊領域の上端位置と下端位置の存在する領域において、上端点及び下端点のx座標を短冊幅の中央値とした座標値TP1〜TP15及びBP1〜BP15とカメラ101のカメラパラメータに基づいて、上端点と下端点の実空間上へ投影する。
つまり、座標変換部32は、xy平面上において抽出された下端BL1〜BL15および上端TL1〜TL15の中心位置を座標とする下端点BP1〜BP15(図示省略)および上端点TP1〜TP15(図示省略)の位置座標を、規定の面積を備えたZX平面(以下、規定のZX平面と呼ぶ)上の点として3次元の位置座標(実空間上の3次元における位置座標)に変換する。
ここで、各点の座標を(x、y)とし、カメラの路面からの高さをCh(m)、カメラの俯角をTr(rad)、画像の縦サイズをIh、画像の横サイズをIw、高さ方向の1画素あたりの角度分解能をPYr(rad)、横方向の1画素あたりの角度分解能をPXr(rad)とすると、xy平面上の点TP1〜TP15及びBP1〜BP15は、次式に従ってZX平面の座標(Z、X)に変換される。
(式1)Z=(Ch)/(TAN(Tr+(y−Ih/2)×PYr))
(式2)X=x×TAN((Z-Iw/2)×PXr)
上端点TP1〜TP15の変換後の点を、上端座標変換点RT1〜RT15とし、下端点BP1〜BP15の変換後の点を下端座標変換点RB1〜RB15とする。一部の対応関係を図9に示す。
そして、投影された位置RT1〜RT15,RB1〜RB15が、図9に示すようなX軸範囲とZ軸範囲を規定した2次元領域のどの領域に該当するか判定する。なお、本実施例では、X軸方向は−5.25m未満、−5.25以上−3.5m未満、−3.5m以上−1.75m未満、−1.75m以上0m未満、0m以上1.75m未満、1.75m以上3.5m未満、3.5m以上5.25m未満、及び5.25m以上の8つの領域を設定し、Z軸方向に20m〜25m、25m〜30m、30m〜35m、35m〜45m及び45m〜55mの5つの領域を設定し、計8×5の2次元領域を設定する。そして、座標変換部32により得られた情報は判定部33に送出される。
続いて、判定部33について説明する。判定部33は、合成移動画像などの合成情報から得られた情報に基づいて、撮像画像から検出された対象物が移動体であるか否かを判定する。
ところで、移動体は、それ自体が動く物体であるから、二次元の平面物ではなく立体物である。本実施形態の判定部33は、まず、検出された対象物(画素群)が移動体の候補となり得る立体物であるか否かを判定し、さらに、その立体物(候補)が移動体であるか否かを判定する。
判定部33は、変換座標において最も高い位置(上端)に存在する画素の座標と最も低い位置(下端)に存在する画素の座標とに基づき、撮像画像に含まれる対象物が平面物体であるか立体物であるかを判定する。
本実施形態の判定部33は、グループ化部31によりグループ化された画素群のうち、変換座標において上端に位置する画素の座標と下端に位置する画素の座標とが共通の分割領域に属する場合は、グループ化された画素群に対応する領域を、平面物と判定する。他方、判定部33は、グループ化部31によりグループ化された画素群のうち、変換座標において上端に位置する画素の座標が変換座標の領域外に属するとともに、下端に位置する画素の座標がいずれかの分割領域に属する場合は、グループ化された画素群に対応する領域を、対象立体物と判定する。例えば、図9に示すOB1のように、上端に位置する画素TP1の変換座標はZX変換座標の領域外に位置し、下端に位置する画素BP1の変換座標はZX変換座標内に位置するため、判定部33は、OB1が属する領域を、立体物を含む領域と判定する。
また、判定部33は、所定間隔に分割されたZX平面の座標(Z、X)において、上端座標変換点RT1〜RT15と下端座標変換点RB1〜RB15とが、ZX平面のいずれの分割領域に属するかに基づいて、立体物の抽出を行う(図9参照)。ここで、車両の上下動に伴いカメラ10の撮像画像が上下に動くことにより、座標変換点の属する領域が変動してしまう可能性がある。この影響を避けるため、ZX平面の分割領域の所定間隔はメーターオーダーで設定する。本実施例では、x軸方向は、−5.25m>x、−5.25≦x<−3.5m、−3.5m≦x<−1.75m、−1.75m≦x<0m、0m≦x<1.75m、1.75m≦x<3.5m、3.5m≦x<5.25m、5.25m≦x、として8分割し、z軸方向は、0≦z<10m、10m≦z<20m、20m≦z<30m、30m≦z<40m、40m≦z<50mとして5分割して、領域11〜領域15、領域21〜領域25、領域31〜領域35、領域41〜領域45、領域51〜領域55、領域61〜領域65、領域71〜領域75、領域81〜領域85を設定する。また、領域11〜領域15を領域10とし、領域21〜領域25を領域20とし、領域31〜領域35を領域30とし、領域41〜領域45を領域40とし、領域51〜領域55を領域50とし、領域61〜領域65を領域60とし、領域71〜領域75を領域70とし、領域81〜領域85を領域80とする。
判定部33は、xy座標において同位置のグループとされた上端座標変換点と下端座標変換点とが、ZX平面における同一の分割領域に属する場合は、同一グループの上端点と下端点は同一の路面上にある、すなわち路面上の平面物体であると判定する(立体物ではないと判定する)。また、上端点に対応する上端座標変換点が規定のZX座標外に位置し、その上端点と同一のグループの下端点の下端座標変換点が規定のZX座標内に位置する場合は、下端点のみが路面上にあるため立体物であると判定する。
例えば、図9に示すように、上端点TP1,TP3,TP5,TP6,TP8,TP9及びTP12〜TP15の座標変換点RT1,RT3,RT5,RT6,RT8,RT9及びRT12〜RT15は図9に示す規定のZX変換座標の領域外に投影されるため、上端点TP1,TP3,TP5,TP6,TP8,TP9及びTP12〜TP15を含むグループは立体物であると判定される。そして、上端点TP1,TP3,TP5,TP6,TP8,TP9及びTP12〜TP15を含むエッジはxy平面上で立体物OB1〜OB10として判定される。
また、上端点TP2,TP4,TP7,TP10,TP11の座標変換点RT2,RT4,RT7,RT10,RT11は、下端点BP2,BP4,BP7,BP10,BP11の座標変換点RB2,RB4,RB7,RB10,RB11と同じ領域に位置するため、上端点TP2,TP4,TP7,TP10,TP11を含むグループは路面上に位置する平面物であると判定する。
ここで、移動情報算出部24は、後述する走路境界の検出のために、各領域に設定されたカウンタのうち下端点の座標変換点が位置する領域のカウンタのカウンタ値を+1加算し、下端点の位置情報分布を算出する。
なお、判定部33は、抽出された対象領域に含まれる平面物に対応する画素群が、抽出された対象立体物を含む対象領域に対応する特徴点に、画像の略垂直方向に沿って連なる場合は、平面物を含む領域と立体物を含む領域とを一の立体物を含む領域と判定する。
さらに、判定部33は、立体物が移動する物体であるか、すなわち移動体であるか否かを判定する。
本実施形態の判定部33は、撮像画像に含まれる路面などの静止物を、背景として抽出し、その背景の移動情報と判定対象となる画素群の移動情報とを比較し、その比較の結果に基づいて、その画素群に対応する領域が移動体を含むか否かを判定する。
具体的に、判定部33は、グループの画素群のうち画像の略垂直方向の最下に位置する画素の座標値に基づいて、画像に含まれる立体物の設置面と所定の関係を有する基準境界を抽出し、グループ化部31によりグループ化された画素群の移動方向と、この画素群と撮像画像における縦方向のy座標値が共通する基準境界の移動方向とが予め定義された略反対方向の関係である場合は、グループ化された画素群は移動体であると判定する。
この移動体の判定手法を説明する。まず、判定部33は、背景の一態様として、立体物の設置面に対応する基準境界を抽出する。本実施形態では、移動体検出装置100を搭載する車両が走行する道路の走路境界を基準境界として抽出する。
このため、図10に示すように、得られた下端点の座標変換点の位置分布に基づいて、基準境界が存在する可能性が高い領域を抽出する。すなわち、得られた下端点の座標変換点の位置分布において、同じx軸領域で複数のz軸領域にカウンタ値が存在すれば、自車両前方に走路境界(自車両が走行する走路の境界)が車両に沿って直線状に存在すると推定できるため、カウンタ値がある領域を、基準境界の一態様としての走路境界を含む領域として抽出する。例えば、図10では、x軸が同じ範囲の領域30において、複数のz軸領域(下端点RB2、RB4、RB7が位置する領域)にカウンタ値が存在するため、これらの領域を走路境界領域として抽出する。なお、領域20、領域50、領域80についても同様である。
そして、図10に示すように、得られた下端点の座標変換点の位置分布から,走路境界が存在する可能性が高い領域を抽出する。すなわち、得られた下端点の座標変換点の位置分布において、同じx軸領域で複数のz軸領域にカウンタ値が存在すれば自車両前方に走路境界が車両に沿って直線状に存在すると推定できるため、カウンタ値がある領域を走路境界領域として抽出する。例えば、図10では、x軸が同じ範囲の領域30において、複数のz軸領域(下端点RB2,RB4,RB7が位置する領域)にカウンタ値が存在するため,これらの領域を走路境界領域として抽出する。領域20,領域50,領域80についても同様である。
そして、抽出した領域に走路境界を示す直線が存在するかどうかの判定を行う(図10参照)。すなわち、抽出した領域に存在する下端点の座標変換点に基づいて、xy座標系での回帰分析を行い、下端点を通る直線の傾きを算出する。例えば、図10の領域30では、領域20に存在する下端点の座標変換点RB2、RB4、RB7に対応するxy座標における下端点BP2、BP4、BP7の座標位置からxy座標系での回帰分析を行い、下端点BP2、BP4、BP7を通る直線の傾きa3を算出する。同様に、領域20、領域50、領域80に位置する下端点の投影点に対応した直線の傾きa2、a5、a8を算出する。そして、算出した直線の傾きが、走路境界として判定できる範囲として予め定義された所定の範囲内に入っていれば、抽出された走路境界を示す直線が存在すると判定する。すなわち、下端点の座標変換点が位置するx軸領域の左端座標と各Z軸領域の代表座標(例えば中心座標)を座標とする点(例えば図10のPL1〜PL5)をxy座標系に変換して回帰分析して算出した直線の傾きTn0a1と、下端点の座標変換点が位置するx軸領域の右端座標と各Z軸領域の代表座標(例えば中心座標)を座標とする点(例えば図10のPR1〜PR5)をxy座標系に変換して回帰分析して算出した直線の傾きTn0a2とで規定される傾きの範囲内に、下端点に基づき算出された直線の傾きanが入っている場合には、抽出した領域内に走路境界を示す直線Lnが存在するとの判定を行う。
例えば、図10、11に示すように、領域80においては、座標(x,z)=(−3.5,5)の点PL1、座標(x,z)=(−3.5,15)の点PL2、座標(x,z)=(−3.5,25)の点PL3、座標(x,z)=(−3.5,35)の点PL4、座標(x,z)=(−3.5,45)の点PL5をxy座標に変換して回帰分析を行い算出した各点を結ぶ直線の傾きT30a1と、座標(x,z)=(−1.75,5)の点PR1、座標(x,z)=(−1.75,15)の点PR2、座標(x,z)=(−1.75,25)の点PR3、座標(x,z)=(−1.75,35)の点PR4、座標(x,z)=(−1.75,45)の点PR5をxy座標に変換して回帰分析を行い算出した各点を結ぶ直線の傾きT30a2に対し、下端点の投影点RB1、RB4、RB5に対応するxy平面上の下端点BP1、BP4、BP5を結ぶ直線の傾きa3が、T30a1とT30a2で規定される範囲内に存在するため、下端点BP2、BP4、BP7を結ぶ直線は走路境界を示す直線L3であると判定される。
同様にして、領域20では、下端点の投影点RB1、RB6に対応する、BP1、BP6を結ぶ直線は走路境界を示す直線L2であると判定され、領域50では、下端点の投影点RB10、RB11に対応するxy平面上の下端点BP10、BP11を結ぶ直線は走路境界を示す直線L5であると判定され、領域80では、下端点の投影点RB12〜RB15に対応するxy平面上の下端点BP12〜BP15を結ぶ直線は走路境界を示す直線L8であると判定される。
次に、図12に示すように、判定部33は、走路境界を示す直線のうち、自車両の近傍から遠方に連続して存在する立体物で構成される直線を背景として検出する。一般に、前方の撮像画像における背景は、静止した立体物が自車両近傍から遠方に直線的に並んでおり、近傍の速度が速く、遠方に行くに従い速度が遅くなる、という特徴を備える。したがって、このような特徴を示す走路境界を背景として抽出する。ここで、立体物で構成される走路境界が複数存在する場合には、自車両からより遠方に位置する走路境界を選択する。本実施例では、外壁と路面の交点である走路境界線L2とL8を背景として検出する。ただし、L2を構成する立体物のうち、背景の特徴と一致しないOB2,OB3は除外する。
そして、図13に示すように、背景として検出された立体物間の画像の垂直方向位置(y座標値)と移動速度の関係を示すグラフを求める。すなわち、画像に存在する立体物において、背景のような静止物であれば、画像の上部にいくにつれ、自車よりも遠ざかるため速度は遅くなる。つまり、縦軸に速度を設定し(左に移動する速度をプラス、右に移動する速度をマイナス)、横軸に画像のy座標に設定すると、速度とy座標の関係は上がりの直線となる。また、同じy座標(同じ距離)に存在する静止立体物は、画像の両端から中央に行くにしたがって速度は遅くなる。
背景となる走路境界L2と画像中央で区切られた領域(斜線領域)に存在する物体であって、背景と同様に静止物又は背景から少しずつ遠ざかる方向に横移動する物体は、同じy座標(同じ距離)に存在する背景の速度と同じ方向で背景よりも遅い速度が検出される。
さらに、図13に示すように、背景(例えば基準境界)の速度と逆向きの速度が検出されれば,背景から遠ざかる方向へ横移動する移動体が存在すると判断できる。
本実施形態では、L2を背景(基準境界)として移動体を検出する。背景と画像中央で区切られた領域に存在する歩行者に該当する立体物OB2,OB3は、背景の移動方向と略逆方向の移動方向が検出される。よって、これらを移動体として判定する。この判定結果に基づいて、移動体検出装置100は移動体の検出を行う。
つまり、本実施形態の判定部33は、グループ化された画素群のうち合成移動画像の略垂直方向の下端に位置する画素の座標値に基づいて、この合成移動画像に含まれる立体物の設置面と所定の関係を有する基準境界を抽出するとともに、グループ化部31によりグループ化された画素群の移動方向と、この画素群と合成移動画像における縦方向のy座標値が共通する基準境界の移動方向とが予め定義された略反対方向の関係である場合は、グループ化された画素群は移動体であると判定する。
また、背景の速度と同じ移動方向で、かつ背景よりも遅い速度が検出される立体物が存在する場合の処理について説明する。このような場合、初回の検出では静止物か移動体かの判定ができないが、経時的に移動情報(移動速度)を観測することにより、移動体か否かの判定を行うことができる。つまり、背景と同様に静止立体物であれば、時間とともに自車に近づくため、画像上では下側及び外側に移動するため、速度は初回に観測したときよりも速い速度となる。
一方、背景から少しずつ遠ざかる移動体であれば、自車に近づくが、画像上では下側及び内側(画像の中央)に移動するため移動速度は遅くなる。したがって、判定部33は、経時的に移動速度を比較し、初回の検出から時間の経過とともに速度が速くなっている物体は静止物と判定し、初回の検出から時間の経過とともに速度が遅くなっている物体は移動体と判定する。
つまり、本実施形態の判定部33は、グループ化された画素群の移動方向と、この画素群と前記撮像画像における縦方向のy座標値が共通する基準境界の移動方向とが予め定義された略反対方向の関係である場合であっても、グループ化された画素群の移動速度が時間の経過とともに遅くなる場合には、グループ化された画素群に対応する領域は移動体を含むと判定する。
続いて、本実施形態の移動体検出装置100の移動体検出の処理手順を図14に示すフローチャート図に基づいて説明する。図14は、本実施形態の移動体検出装置100の処理を示すフローチャートである。
この処理は、イグニションスイッチ(図示省略)がオンされると起動されるプログラムにより実行される。
まず、カメラ10により撮像された自車両前方の画像は、画像メモリ11に記録される。
ステップS101において、画像メモリ11は、自己に記録された自車両前方の撮像画像を所定の周期で画像処理部20に出力する。この後に、フローはステップS102へ移行する。
ステップS102において、撮像画像取得部21は、画像メモリ11(又はカメラ10)から撮像画像を取得し、これを縮小画像生成部22へ送出する。縮小画像生成部22は、複数の画素を任意の数だけ結合して異なる縮小率の縮小画像を生成する。画素の結合数は、任意の複数のパターンを設定することができる。縮小画像生成部22が生成した縮小画像は、画像メモリ11に記憶する。この後に、フローはステップS103へ移行する。
ステップS103において、特徴点抽出部23は、画像メモリ11に記憶された撮像画像及び縮小率の異なる縮小画像について、特徴点をそれぞれ抽出する。具体的に、特徴点抽出部23は、撮像画像及び縮小画像に対してエッジ抽出処理を行い、撮像画像内に存在する物体の輪郭が抽出されたエッジ画像を生成する。この後に、フローはステップS104へ移行する。
ステップS104において、移動情報算出部24は、撮像画像及び縮小画像に含まれるエッジ(特徴点)の移動速度及び移動方向を含む移動情報を算出する。この後に、フローはステップS105へ移行する。
続いて、ステップS105において、合成部25は、縮小画像を撮像画像と同じ大きさに変換し、各縮小画像で得られた移動速度の速度単位を画素/秒に変換し、正規化を行う。この後に、フローはステップS106へ移行する。
ステップS106において、合成部25は、撮像画像の移動情報と各縮小率の縮小画像の移動情報とに基づいて、撮像画像中の各特徴点についての移動情報を合成し、合成移動情報を生成する。本実施形態の合成部25は、合成された各移動情報を所定の階調値に変換した合成移動情報としての移動画像を生成する。この後に、フローはステップS107へ移行する。
ステップS107において、グループ化部31は、算出された合成移動画像上に移動体検出用の短冊状領域を設定する。この後に、フローはステップS108へ移行する。
ステップS108において、グループ化部23は、各短冊領域内に速度を持った画素があるかどうかを下から上に向かって調べる。速度を持った画素がある場合、グループ化部23はそれらの画素は同一の物体を表しているものとしてグループ化を行う。この後に、フローはステップS109へ移行する。
ステップS109において、座標変換部32は、各短冊領域内におけるグループ毎において、最も上(上端)に位置する画素の中心座標を上端点に、最も下(下端)に位置する画素の中心座標を下端点に設定する。この後に、フローはステップS110へ移行する。
ステップS110において、座標変換部32は、前述した(式1)及び(式2)を用いて、検出された上端点と下端点の座標をZX平面へ座標変換する。この後に、フローはステップS111へ移行する。
ステップS111において判定対象抽出部31の判定対象抽出部31は、上端点の座標変換点と上端点と同じグループの下端点の座標変換点の位置がx軸範囲とz軸範囲を規定した規定のZX平面のどの領域に該当するかを判断し、上端点の座標変換点と上端点と同じグループの下端点の座標変換点の双方が規定のZX平面の同一の分割領域に位置する場合は、上端点、下端点を含む物体を平面物であると判定し、上端点と同じグループの下端点の座標変換点のみが規定のZX平面に位置する場合は、上端点、下端点を含む物体を立体物であると判定する。また、下端点が位置する領域のカウンタのカウンタ値を+1加算する。この後に、フローはステップS112に進む。
ステップS112において、判定部33により、検出した全ての上端点、下端点について、上端点、下端点を含む物体が平面物であるか立体物であるかの判定(以下、物体の属性判定と呼ぶ)が行われたかどうかの判定を行う。検出した全ての上端点、下端点について物体の属性判定が行われた場合は、ステップS113に進む。一方、検出した全ての上端点、下端点について物体の属性判定が行われていない場合は、ステップS108に戻る。
続いて、ステップS113において、判定部33は、ZX平面における下端点の座標変換点の位置分布から、同じx軸領域において、複数のz軸領域にカウンタ値が存在する領域を、走路境界線が存在する可能性が高い領域として抽出する。この後に、フローはステップS114へ進む。
ステップS114において、判定部33により抽出された領域内に存在する下端点の座標変換点に対応するxy平面の下端点についてxy座標系での回帰分析が行われ、下端点を結ぶ直線の傾きが算出される。この後に、フローはステップS115へ進む。
ステップS115において、判定部33は、ステップS114で算出された直線の傾きが、下端点の位置する領域において、x軸領域の左端座標と各z軸領域の代表座標を座標とする点(図10のPL1〜PL5)を結ぶ直線およびx軸領域の右端座標と各z軸領域の代表座標を座標とする点(図10のPR1〜PR5)を結ぶ直線のxy座標系における傾きの範囲にあれば、抽出した領域に走路境界を示す直線が存在すると判定し、ステップS114で傾きが算出された直線は走路境界を示す直線として検出する。この後に、フローはステップS116へ進む。
ステップS116において、判定部33は、ステップ113で抽出された領域について、全ての走路境界を示す直線が検出されたか否かの判定を行う。全ての領域について走路境界を示す直線が検出された場合は、ステップS117へ進む。一方、全ての領域について走路境界を示す直線が検出されていない場合は、ステップS113に戻り、走路境界を示す直線の検出が継続される。
ステップS117において、判定部33は、ステップS115で検出された走路境界に相当する直線のうち、車両の近傍から遠方に連続して存在する立体物で構成される直線を背景となる走路境界として検出する。この後に、フローはステップS118へ移行する。
ステップS118において、判定部33は、背景の速度と背景と画像中央で区切られた領域に存在する立体物の速度を比較し、背景と逆方向の速度が検出された場合には、横方向に移動する物体が存在すると判断する。そして、ステップS120へ移行し、背景と同方向で、同じy座標の背景の速度よりも遅い速度が検出された場合には、移動体の可能性が高い移動体候補が存在すると判断する。この後に、フローはステップS119へ移行する。
ステップS119において、判定部33は、移動体候補が存在すると判断された領域に、前回も移動体候補が存在すると判断され、前回と今回の移動速度を比較する。前回の速度よりも今回の速度の方が速くなっている場合には、移動体候補は静止物体と判断し、移動体候補から除外する。他方、前回と今回の移動速度を比較し、前回の速度よりも今回の速度の方が遅くなっている場合には、移動体候補は移動体と判断する。また、前回と今回の移動速度が変わらない場合(速度差が所定値未満である場合)は、再度、移動体候補として次回の判断処理において判断する。この後、フローはステップS120へ移行する。
ステップS120では、背景と画像中央で区切られたすべての領域において移動体が検出されたか否かの判断を行う。全ての領域において移動体が検出されたと判断された場合はステップS121へ移行し、全ての領域において移動体が検出されていないと判断された場合にはステップ118に戻り、移動体検出処理を継続する。
ステップS121において、自車両のイグニションスイッチがオフされたか否かを判断し、オフされないと判断した場合にはステップS101へ戻って処理を繰り返す。他方、自車両のイグニションスイッチがオフされたと判断した場合には処理を終了する。
本実施形態の移動体検出装置100は、以上のように構成され動作するので、以下の効果を奏する。
本実施形態の移動体検出装置100は、撮像画像から縮小画像を生成し、これらの移動情報から生成された合成情報に基づいて移動体を検出することにより、より広い範囲で移動情報を算出(検出)することができるようになるため、撮像画像のうち画像変化が大きい部分においても正確な移動情報を算出することができ、移動体を高い精度で検出することができる。
すなわち、撮像画像に比べて1画素の大きさを拡大した所定の縮小率の縮小画像について移動情報を算出することにより、撮像画像では1フレーム当たり1画素以上移動するエッジの動きを1フレーム当たり1画素未満の動きに変換して移動速度を算出することができるため、速度を検出する範囲を拡大することができるため、フレームレートを高く設定しなくても、相対的に広い範囲において移動情報を算出することができる。
つまり、広い範囲で正確な移動情報を算出することができるため、比較の対象となる背景の移動速度を正確に算出することができ、ひいては背景と対象物との移動情報の対比を高い精度で行うことができる。
特に、移動体検出装置100が車両に搭載されるなど、移動体検出装置100自体が移動する場合は車両近傍の画像の変化、すなわち撮像画像の左右側の下領域の画像の変化が大きくなる傾向があるが、このように画像の変化が大きい領域についても正確な移動情報が得られるため、移動体を高い精度で検出することができる。
このように、移動体検出装置100が車両に搭載され、車両前方の移動体を検出する場合には、景色が流れる速度が速い道路の両脇などの撮像画像の左右側の下領域についても移動体を高い精度で検出することができるため、撮像画像の左右側の下領域に現れる可能性のある歩行者等の移動体をも高い精度で検出することができる。
このように、撮像画像から縮小画像を生成し、この縮小画像と撮像画像の移動情報から合成情報を生成することにより、撮像画像のみから得られる移動情報よりも正確な移動情報に基づいて精度の高い合成情報を生成することができる。そして、この精度の高い合成情報に基づいて移動体を検出することができるため、移動体を高い精度で検出することができる。
つまり、縮小率の異なる画像、すなわち移動情報の検出範囲の異なる画像から移動情報を算出し、算出された移動情報を合成することにより、広い検出範囲において移動情報を算出することができ、移動速度の小さい移動体と移動速度の大きい速度の小さい背景の比較を正確に行うことができるため移動体を高い精度で検出することができる。
そして、移動情報の検出領域が拡大され、撮像画面全体の動きが検出可能となるので、撮像範囲に含まれる静止物体(背景)などの基準物の動きを高い精度で捉えることができ、この静止物体(基準物)の動きと検出の対象となる物体の動きの比較に基づいて移動体を検出することができるため、移動体を高い精度で検出することができる。
また、本実施形態の移動体検出装置100は、撮像画像において抽出された特徴点の移動情報と、この特徴点に対応する縮小画像の特徴点の移動情報とに基づいて合成情報を作成するため、縮小画像の生成時に行う拡大縮小過程で発生する情報を合成処理の対象から排除し、誤検出要因を取り除くことができる。 すなわち、特徴点が存在しない画素であるにもかかわらず、画像処理によって生じた情報により、誤った移動情報を算出することを防止することができる。
ちなみに、撮像画像において移動情報がない画素には、そもそも特徴点が存在しない画素と、特徴点は存在するが、移動情報が検出できない画素とが含まれる。前者のようにそもそも特徴点が存在しない画素について合成処理を行い、移動情報を持たせてしまうと誤検出の原因になる。このため、本実施形態では、撮像画像において特徴点が検出された画素について合成処理を行うことにより、精度の高い移動情報に基づく合成情報を生成し、その合成情報に基づいて高い精度で移動体を検出することができる。
また、合成情報の生成に際し、縮小率の最も高い縮小画像の特徴点の移動情報を用いることにより、より高い精度の移動情報に基づく合成情報を生成することができる。このようにしたのは、移動情報を特徴点(エッジ)の蓄積量を基に算出する場合は、縮小率が高い縮小画像のほうがより遅い速度の移動情報を検出でき、エッジの蓄積量が多くなって、移動情報のS/Nを向上させることができるからである。つまり、各縮小率で算出された移動情報のうち、S/Nの高い、縮小率が最も高い縮小画像から算出された移動情報を優先的に選択することにより、精度の高い合成情報を生成することができる。
さらに、合成情報の生成に際し、特徴点の移動速度が算出されない場合は、縮小率の最も高い縮小画像の特徴点の移動情報を用いることにより、さらに高い精度の移動情報に基づく合成情報を生成することができる。
先に、縮小率が高い縮小画像の方が移動情報のS/N比が高くなる傾向があると説明したが、移動情報が低速域乃至極低速域にある場合は速度方向のばらつきが大きいため、高い縮小率の縮小画像よりも低い縮小率の縮小画像から算出された移動方向の方が、精度が高い。このため、単純に縮小率の高い縮小画像から算出された移動情報を選択すると、極低速域で誤検出が生じる場合がある。 このような誤検出を防止するため、移動方向に関しては縮小率の低い(縮小率が最も低いのは撮像画像となる)ほうが精度は高いとの観点から、縮小率の低い撮像画像における移動方向と略同一方向の(方向差が所定値未満の)移動方向を持つ特徴点であって、かつ縮小率の高い縮小画像の移動情報を選択すれば、低速域における誤検出を防止しつつ、精度の他界移動情報に基づく合成移動画像を生成することができる。
また、本実施形態において移動情報を算出する際に、抽出された特徴部の位置に対応する画素のカウント値を所定周期でカウントアップし、カウント値の傾きに基づいて特徴部に対応する画素の移動情報を算出することにより、対象物を特定することなく、撮像画像に含まれる物体の移動情報を算出することができる。
また、フレーム間の移動量を1画素以下に制限し、対象物の特定するために必要なフレーム間の対応付け処理を排除することにより、高速に移動情報算出に要する演算処理を行うことができる。また繰り返し演算(再帰処理)行うことなく、ピクセル単位の逐次処理を行うため、高速な演算処理が可能となる。
なお、本実施形態では、撮像画像と対応させた観察者の所定の視野画像に存在するエッジの移動情報を所定の階級値に分類し、移動情報の特徴が表わされた合成移動画像を合成情報として生成し、この合成移動画像に基づいて高い精度で移動体を検出することができる。
そして、合成移動画像上で同等の速度を有する隣接した画素をグループ化して、その上端と下端に位置する画素を求め、該画素の俯瞰変換後の座標により平面物、立体物、移動体の判定を行うことができるため、一つのカメラ10から得た撮像画像及び縮小画像に基づいて、グループ化された画素群を移動体の候補となる立体物と判定することができる。
具体的に、撮像画像上で同等の速度を有する隣接した画素をグループ化してその上端と下端に位置する画素を求め、この画素の俯瞰座標への変換後の座標により立体物の判定を行うことができるため、一つのカメラ10から得た撮像画像に基づいて移動する立体物を含む対象領域を簡単に抽出することができる。
さらに、本実施形態では、上端の画素の座標値と下端の画素の座標値とに基づいて移動情報を比較する際の基準境界を求め、グループ化された画素群の移動方向と基準境界の移動方向との関係により移動体を検出することができるため、観測者側の動きの推定や判定対象となる物体までの距離を算出することなく、移動体であるか否かを簡単に行うことができる。
また、画素群の移動方向と基準境界の移動方向とが略反対方向の関係であったとしても、グループ化された画素群の移動速度が時間の経過とともに遅くなる場合は、グループ化された画素群は移動体であると判定するため、移動速度の経時的変化という異なる観点から移動体の判定を検証することができ、高い精度で移動体を検出することができる。
加えて、特徴点を撮像画像に含まれる物体のエッジに対応する画素又は画素群とするため、撮像画像上において物体のエッジを検出することにより移動体を簡易に検出することができる。
<第2実施形態>
続いて、第2実施形態について説明する。第2実施形態は、縮小画像生成部22による縮小画像の生成処理の内容に特徴がある。この点を除き、第2実施形態の基本的構成及び処理は、第1実施形態のそれに共通するため、ここでは異なる点を中心に説明する。
図15に本実施形態のブロック構成を示す。図15に示すように、縮小画像生成部22は、本移動体検出装置100´が搭載される自車両の速度(移動体検出装置100´の速度と同視できる)を取得する速度取得部221と、縮小率を速度に応じて変更する縮小率変更部222とを備える。その他の構成は、図1に基づいて説明した第1実施形態のものと共通する。
以下、縮小画像生成部22の各構成について説明する。
本実施形態の縮小画像生成部22は、移動体検出装置100´の移動速度に応じた縮小率で縮小画像を生成する。
縮小画像生成部22が備える速度取得部221は、車載装置1000の車両コントローラ200から車両の速度を取得する。同じく縮小画像生成部22が備える縮小率変更部222は、自車両の速度に応じて縮小率の変更を行う。
次に、自車両の速度に基づき縮小率を決定する手法を説明する。自車両の速度V(km/h)と、自車両から物体までの距離Z(m)と、横位置X(m)があれば,その位置における静止物の速度は下式(式3)により算出できる。ここで、Fはフレームレート(fps)、PXrは横方向の1画素あたりの角度分解能(Rad)を示す。
S=F*((ATAN(X/(Z+V/(3.6*F))―(ATAN(X/Z))/PXr) (式3)
第1実施形態の説明において説明した式1及び式2を用いれば撮像範囲における静止物の最大速度や移動情報の検出対象範囲の静止物の最大検出速度を算出することができる。この最大検出速度から1フレーム当りの移動量(画素数)を計算し、その移動量が1画素以内になるような縮小率を求める。縮小率を求める際、縮小率変更部222は、縮小率の高い縮小画像から得られる速度検出範囲(移動情報が算出される範囲)における低速域と、縮小率の低い画像から得られる速度検出範囲における高速域とが重なりあうように生成する縮小画像の縮小率を求めることが好ましい。
ここで、静止物体に着目して縮小率を設定すると、撮像画像の速度検出範囲は必ずしも必要ないように見えるが、移動体の速度は、低速域で観測されるため撮像画像の速度情報は必ず計測することが好ましい。このような観点から、本実施形態の合成部25は、必ず撮像画像の移動情報を用いて合成情報を生成する、すなわち、撮像画像の移動情報を含む合成情報を生成する
図16は、本実施形態における移動体検出装置100´の処理を示すフローチャート図である。
図16に示すように、イグニションスイッチがオンされると、起動されるプログラムとして実行される。図16において、図14に示す本発明の第1実施形態のフローチャートと同一の処理内容については、同じステップ番号を付与する。ここでは、二点鎖線で囲む、第2実施形態の特徴となる処理を中心に説明する。
ステップS1021において、自車両の速度から必要な静止物体の最大検出速度を算出する。この後に、フローはステップS1022へ移行する。
ステップS1022において、最大検出速度から1フレーム当りの移動量を計算し、その移動量が1画素以内に収まるような縮小率を算出する。この後に、フローはステップS1023へ移行する。
ステップS1023において、縮小率が高い画像の速度検出範囲の低速域と縮小率の低い画像の速度検出範囲の高速域が重なるように、縮小率を設定する。この後に、フローはステップS1024へ移行する。
ステップS1024において、設定された縮小率に基づき、各縮小率の縮小画像を生成し、画像メモリ11に記録する。この後に、フローはステップS103へ移行し、図14に基づいて説明した第1実施形態と同様の処理を行う。
以上のように、第2実施形態の移動体検出装置100´は、第1実施形態の作用・効果に加え、以下の作用・効果を奏する。
移動体検出装置100´の速度に応じて縮小率を変化させることにより、移動する速度に応じて異なる速度の検出領域を適切に設定することができる。撮像画像全体の速度情報は、搭載車両の車速等の移動の速度に応じて変化するが、縮小率を変化させることにより速度の検出領域を適切な範囲に移動させることができるため、撮像画像の画面全体の速度情報を常に検出することが可能となる。このため、背景から移動体を分離する識別精度を、車速の影響を受けることなく確保することができる。
また、合成情報に撮像画像の移動情報を必ず含めるようにしたため、背景となる静止物体に着目して縮小率を設定した場合であっても、撮像画像における速度検出範囲が除外されるのを防止することができる。これは、検出主体(移動体検出装置100、またはこれを搭載する自車両など)に影響を及ぼす移動体の移動情報は低速域で観測されるが、この速度域は撮像画像から得られるためである。これにより、撮像画像の画面全体の速度情報を常に検出しつつ、移動体検出に必要な移動情報の算出を行うことができるため、移動体を正確に検出することができる。
なお、以上説明した実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記の実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
すなわち、本明細書では、本発明に係る移動体検出装置100を含む車載装置1000をその一態様として説明するが、本発明はこれに限定されるものではない。
また、本明細書では、移動体検出装置100の一態様として、撮像手段の一例としてのカメラ10と、縮小画像生成手段の一例としての縮小画像生成部22と、特徴点抽出手段の一例としての特徴点抽出部23と、移動情報算出手段の一例としての移動情報算出部24と、合成手段の一例としての合成部25と、移動体検出手段の一例としての移動体検出部30とを備える移動体検出装置100を説明したが、これに限定されるものではない。
さらに、移動体検出装置100は、本明細書で説明したように、グループ化機能の一例としてのグループ化部31と、座標変換機能の一例としての座標変換部32と、判定機能の一例としての判定部33とを備える。
本発明の実施形態を図面により詳述したが、実施形態は本発明の例示にしか過ぎず、本発明は実施形態の構成にのみ限定されるものではない。したがって、以下のような本発明の要旨を逸脱しない範囲の設計の変更等があっても本発明に含まれることはもちろんである。
例えば、ブロック図は上記実施例に示すものに限定されるものではなく、同等の機能を備えた他の構成とすることができる。
また、カメラの取り付け位置は実施形態で述べた位置に限定されるものではなく、カメラの光軸が車両前方正面方向(Z方向)に向き、撮像面の水平軸および垂直軸がそれぞれ路面と略平行および略垂直となるように設定されていれば良い。
また、検出したエッジの幅の正規化を行うにあたっては、エッジ幅は3画素に限定されるものではなく、任意の画素数を設定することができる。この場合、その後の処理でエッジの中央部の画素を利用するため、エッジ幅の画素数は奇数個であることが望ましい。
また、xy平面を分割して設定する短冊領域の数は上記実施形態に示すものに限定されるものではなく、任意の数に分割して設定することができる。
また、ZX平面を分割して設定する領域の数は上記実施形態に示すものに限定されるものではなく、任意の数に分割して設定することができる。
また、ZX平面の縦方向および横方向の範囲は、任意の値に設定することができる。
また、上記実施形態では道路を走行する車両に移動体検出装置10を搭載する例について説明したが、他の移動体に搭載してもよい。
さらに、上記実施形態では、検出する走路境界として、縁石、白線、外壁と路面との接点の例について説明したが、これに限定されず、例えば、ガードレール、駐車車両と路面との境界、路面と路面以外の領域(田、畑など)との境界を検出してもよい。