以下、本発明の実施形態を図面に基づいて説明する。
[第1実施形態の説明]
図1は、本発明の実施形態に係る車線認識装置が搭載される車両の概略構成図である。図1に示すように、車両201(移動体)の前方には、カメラ202(撮像部)が搭載されており、更に、該カメラ202は計算機203に接続され、該計算機203は車線逸脱警報システム204に接続されている。カメラ202は、路面から高さh1の位置に取り付けられ、更に、水平面を基準として下方に角度θだけ傾斜して配置されている。
そして、カメラ202で車両201前方の映像を撮像し、撮像した画像を計算機203に出力する。即ち、図3に示すように、車両201の前方適所には、カメラ202が搭載され、該カメラ202により、車両前方の撮像範囲403の映像を撮像する。
計算機203は、カメラ202で撮像された画像に含まれる車線を検出し、その車線に対する車両201の横位置、ヨー角を算出する。また、車両201の横位置、ヨー角に基づいて、車両201の前方に存在する車線を推定する。更に、車線に対する車両201の横位置、及びヨー角に基づき、車両201が車線で区切られる車線を逸脱した場合、或いは逸脱すると推定される場合には、車線逸脱警報システム204により、警報を発して車両201の運転者に注意を促す。車線とは、路面に描かれた白線や黄色線等の、車両の走行路を区分するための線である。
図2は、本実施形態に係る車線認識装置、及びその周辺機器の構成を示すブロック図である。図2に示すように、本実施形態に係る車線認識装置100は、カメラ202及び計算機203を備えている。また、計算機203には、車線逸脱警報システム204が接続されている。
計算機203は、俯瞰画像生成部302と、エッジ抽出部303と、座標変換部304と、エッジ座標保持部305と、エッジ評価部306と、エッジ座標更新部308と、区画設定部309と、エッジ尤度配置補正部310と、エッジ選択部311、及び位置姿勢推定部312を備えている。また、計算機203は、車両に搭載される車速センサ307(移動量測定部)に接続されている。計算機203は、例えば中央演算ユニット(CPU)や、RAM、ROM、ハードディスク等の記憶手段からなる一体型のコンピュータとして構成することができる。
俯瞰画像生成部302は、カメラ202で撮像された画像(q1)に基づき、視点変換処理を加えることにより俯瞰画像(鳥瞰図)を生成する。俯瞰画像は、上空から路面を鉛直下向きに見下ろす画像である。この俯瞰画像を作成するために用いる視点変換は公知の技術であり、例えば、特開2008−219063号に記載されている手法を用いることができる。また、該俯瞰画像生成部302では、カメラ202より出力された画像に基づき、所定の演算周期で俯瞰画像を生成する。この俯瞰画像(q2)は、エッジ抽出部303に出力される。
エッジ抽出部303(特徴点抽出部)は、俯瞰画像生成部302で生成された俯瞰画像に対してエッジ(車線の候補)を抽出する。エッジの抽出には、例えば特開2013−210991号に開示されている分離度に基づく手法を用いることができる。本実施形態では、図4に示すように俯瞰画像D1に対して、画像の横方向を向くエッジ抽出用の走査線L1を複数設定し、各走査線L1でエッジの強度(分離度)の高い座標を求める。
以下、分離度の演算方法について説明する。分離度を演算するために、図5(a)に示す車線検出フィルタ40を用いる。車線検出フィルタ40は、路面上の車線部分を検出するためのペイント候補領域41と、該ペイント候補領域41の両側に形成され、路面部分を検出するための路面候補領域42とを有している。ペイント候補領域41は、実際の車線の幅に対応した横幅を有することが望ましい。また、路面候補領域42は、ペイント候補領域41とほぼ同一の横幅を有している。なお、路面候補領域42の横幅は、ペイント候補領域41の横幅と相違していてもよい。車線検出フィルタ40の形状は、俯瞰画像で車線を局所的に真上から見た場合に、局所的な車線が白と黒の四角形の組み合わせで近似できることに基づいて決められている。また、四角形のサイズ及び縦横比等は、カメラ202の解像度を考慮して車線のサイズに対応させて実験的に定めればよい。なお、図5(a)に示す車線検出フィルタ40では、ペイント候補領域41の両側に路面候補領域42を形成しているが、路面候補領域42はいずれか一方とすることもできる。
エッジ抽出部303は、図5(a)に示す車線検出フィルタ40を俯瞰画像D1の走査線L1に沿って走査することにより、俯瞰画像D1全体の輝度を検出する。更に、輝度の検出結果を用いてペイント候補領域41における輝度分布の統計値として輝度値の平均μ1と分散σ1を算出する。同様に、路面候補領域42における輝度分布の統計値として輝度値の平均μ2と分散σ2を算出する。その結果、例えば、図5(b)に示す如くの度数分布が得られる。
こうして、ペイント候補領域及び路面検出領域における平均と分散が算出されると、次に分離度sを算出する。ここでは、ペイント候補領域の平均μ1、分散σ1と、路面候補領域の平均μ2、分散σ2とを用いて、分離度sを算出する。分離度sは、ペイント候補領域と路面候補領域との間の輝度の差とペイント候補領域及び路面候補領域の輝度分布の和との比に基づいて算出される値であり、次の(1)式にて算出することができる。
分離度s=(クラス間分散)/(全分散)=σB2/σT2 …(1)
また、クラス間分散σB2及び全分散σT2は、次の(2)〜(4)式で示すことができる。
σB2={N1×(μ1−μT)2+N2×(μ2−μT)2}/(N1+N2) …(2)
σT2=σB2+σW2 …(3)
σW2={N1×σ12+N2×σ22}/(N1+N2) …(4)
但し、N1はペイント候補領域の画素数、N2は路面候補領域の画素数、μTはペイント候補領域と路面候補領域の全画素の平均である。
そして、エッジ抽出部303は、上記の(1)式〜(4)式に基づいて、分離度sを路面画像の各画素について算出する。そして、分離度の高いエッジの座標データ(q3)を、座標変換部304に出力する。更に、各エッジの強度データ(q4)をエッジ評価部306に出力する。
また、上記では俯瞰画像D1からエッジを抽出する手法として、分離度sを用いる例について述べたが、周知技術のSobelフィルタで予め画像中に含まれるエッジの強度を算出し、走査線L1に沿ってエッジの強度の極大値を求め、この極大値をエッジ検出結果として用いてもよい。例えば、下記(5)式に示す重み付けを有するSobelフィルタを用いて、車線のエッジを求めることができる。
このSobelフィルタを使用する場合についても、エッジ座標データを後段の座標変換部304に出力し、これと同時にSobelフィルタの出力値であるエッジ強度データを後段のエッジ評価部306に出力する。
座標変換部304では、エッジ抽出部303で抽出したエッジ座標を二次元の画像座標系から三次元の世界座標系に変換する。つまり、車両201は路面に対して移動しているので、車両移動時の各時刻で撮像した画像を共通の座標系とするために、エッジの座標を世界座標系に変換する。カメラ202の内部パラメータと外部パラメータ、具体的には、路面に対するカメラの取り付け高さ、姿勢(ヨー角、ピッチ角、ロール角)を予め測定しておけば、画像中の任意の座標を、世界座標系に変換することができる。この際、画像座標系の二次元の座標(x、y)から三次元の空間的な世界座標系に変換するため、世界座標系の鉛直方向に相当する座標であるYWを、YW=0として復元する。ここで、YW=0は路面の点、即ち、高さゼロであることを示している。なお、「YW」とは、「世界座標系(W)」の「Y軸」を示している。
画像座標系から世界座標系に座標変換する演算は、計算機203による演算周期毎に毎回実行してもよい。一方、カメラ202の内部パラメータ(カメラの取付高さ等)は常に固定であり、外部パラメータ(ヨー角、ピッチ角、ロール角等)は、厳密には車両挙動で変化するが(特に、ピッチ角)、この外部パラメータを固定と見なすことができる。各パラメータを固定した場合は、画像座標系の座標から世界座標系の座標への変換テーブルを作成することができる。本実施形態では、処理時間を考慮して、変換テーブルを利用することにする。即ち、図2に示す座標変換部304は、座標を変換するための変換テーブルを有しており、エッジ抽出部303より、画像座標系のエッジ座標が与えられた場合には、変換テーブルを用いて世界座標系のエッジ座標に変換する。世界座標系のエッジ座標(q5)をエッジ座標保持部305に出力する。
エッジ座標保持部305(特徴点座標保持部)は、今回の演算周期で生成された俯瞰画像から抽出されたエッジ座標を記憶する。ここでは、前述した座標変換部304より出力される世界座標系のエッジ座標を記憶する。従って、該エッジ座標保持部305には、所定の演算周期毎に新規のエッジ座標が入力され、記憶される。但し、後述するように、過去の演算周期(今回よりも前の演算周期)で得られたエッジ座標は、後述するエッジ座標更新部308、或いはエッジ選択部311で消去される場合があるので、これらにより消去されていないエッジ座標を記憶する。また、該エッジ座標保持部305に記憶されるエッジ座標は、全て世界座標系の座標データである。即ち、各エッジ座標は、世界座標系の(XW,YW,ZW)の数値を有している。但し、上述したように世界座標系の鉛直方向の数値を示すYWは、YW=0である。
エッジ評価部306(尤度評価部)は、エッジ抽出部303で抽出されたエッジ強度から、車線尤度を評価する。前段のエッジ抽出部303で、エッジ抽出の手法として前述した「分離度」を用いた場合、エッジは[0,1]で正規化されているので、分離度の数値をそのまま車線尤度として用いることができる。そして、この車線尤度(q8)をエッジ尤度配置補正部310(特徴点選択部)に出力する。
また、エッジ抽出の手法としてSobelフィルタを用いる場合には、処理する画像が8ビットの輝度情報を持ち、Sobelフィルタのサイズが3×3で、要素が前述した(5)式の様に与えられている場合、Sobelフィルタの出力の最大値、最小値が事前に定義できる。即ち、入力画像のビット数とSobelフィルタの要素が既知であれば、フィルタの最大値と最小値が判る。
従って、最大値、最小値から正規化のための変数normを定義し、Sobelフィルタの出力値をnormで除することにより、エッジ抽出部303で抽出されたエッジ強度を[0,1]に正規化することができる。この正規化した値を車線尤度として後段のエッジ尤度配置補正部310に出力する。
また、本実施形態では、後段の処理を簡易化するために、車線尤度として[0,1]の正規化した数値を用いる例について示すが、演算処理の負担を考慮しなければ、例えば、Sobelフィルタで求められるエッジの強度をそのまま車線尤度としてエッジ尤度配置補正部310に出力してもよい。
車速センサ307は車両に取り付けられ車速を測定する。精度が高いほどよいが、一般の車両に取り付けられているもので実用上は問題なく、車両CANより供給される車速データの数値を用いることができる。
エッジ座標更新部308(特徴座標更新部)は、CAN通信により車両に搭載される車速センサ307と接続されており、該車速センサ307で検出される車速データ(q6)を取得する。そして、エッジ座標保持部305に記憶されている世界座標系のエッジ座標を、車速センサ307で測定された車速に応じた距離だけ移動させることで、次回の演算周期となる時刻で、各座標データが観測されると推定される座標データに更新する。
以下、エッジ座標を更新する手順について、図6に示す説明図を参照して説明する。図6(a)は、車両201と、カメラ202の撮像範囲403を模式的に示している。車両201は、一定の時速V[Km/h]でZW軸の正方向(車両201の前方)に直進運動するものとする。エッジ抽出部303は、時刻t=−2,−1,0のそれぞれにおいて撮像した画像からエッジ座標を抽出する。時刻t=−2,−1,0のそれぞれにおいて抽出したエッジ座標は、順に白丸、灰丸、黒丸の画素で示している。なお、カメラ202は30[fps]で画像を撮像するので、時刻t=−2,−1,0の各時刻の間隔は約30[msec]である。
次に、図6(b)〜(d)を参照して、エッジ座標の更新について説明する。図6(a)に示す各時刻t=−2,−1,0に対応するのが、それぞれ図6(b)〜(d)である。まず、図6(b)に示すように、エッジ抽出部303は、時刻t=−2の際に撮像した画像からエッジ座標を抽出する。抽出されたエッジ座標を白丸の画素で示している。その後、座標変換部304は、抽出したエッジ座標を画像座標系から世界座標系へ変換する。変換された世界座標系のエッジ座標を(XW1,YW1,ZW1)とする。エッジ座標保持部305は、これらの座標データを記憶する。
続いて、図6(c)に示すように、時刻t=−2から約30[msec]後となる時刻t=−1においても、時刻t=−2と同様の処理を行い、エッジ座標を抽出する。時刻t=−1にて抽出したエッジ座標を(XW2,YW2,ZW2)とする。ここで、時刻t=−2から時刻t=−1までの車両201の移動量をd[m]とすると、d=(V×1000÷3600)÷30となる。エッジ座標更新部308は、この移動量dを用いてエッジ座標を更新する。具体的には、エッジ座標更新部308は、時刻t=−1の際に、時刻t=−2で抽出したエッジ座標(XW1,YW1,ZW1)を移動量dだけ移動して、(XW1,YW1,ZW1−d)に更新する。「ZW」の値のみを更新するのは、車両201が直進運動していることによる。このように更新することにより、時刻t=−1の際に、エッジ座標(XW2,YW2,ZW2)から移動量dだけ車両進行方向反対側にエッジ座標(XW1,YW1,ZW1)が移動することになる。エッジ座標保持部305は、時刻t=−1の際に抽出したエッジ座標(XW2,YW2,ZW2)と、更新したエッジ座標(XW1,YW1,ZW1−d)を記憶する。
続いて、図6(d)に示すように、時刻t=−1から約30[msec]後となる時刻t=0の際にも時刻t=−2の際と同様の処理を行い、エッジ座標を抽出する。時刻t=0の際に抽出したエッジ座標を(XW3,YW3,ZW3)とする。また、時刻t=−1から時刻t=0までの車両201の移動量は上述した距離dであるので、エッジ座標更新部308は、時刻t=0の際に、時刻t=−1で抽出したエッジ座標(XW2,YW2,ZW2)と、更新したエッジ座標(XW1,YW1,ZW1−d)とを移動量dだけ移動して、それぞれのエッジ座標を(XW2,YW2,ZW2−d)、(XW1,YW1,ZW1’−d)に更新する。ここで、「ZW1’」について説明する。時刻t=−2の際に抽出した座標データ(XW1,YW1,ZW1)は、時刻t=−1の際に(XW1,YW1,ZW1−d)に更新された。更新された「ZW1−d」をZW1’に置換すれば、時刻t=0の際にエッジ座標を更新すると、(XW1,YW1,ZW1’−d)と表現することができる。
即ち、このように置換することにより、各エッジ座標は、更新時に移動量dだけ移動した形で表現できる。エッジ座標保持部305は、時刻t=0の際に抽出したエッジ座標群(XW3,YW3,ZW3)と、更新したエッジ座標(XW2,YW2,ZW2−d)、(XW1,YW1,ZW1’−d)とを保持する。以上のように、エッジ座標更新部308は、撮像処理毎の経過時間に合わせて、エッジ座標を移動量dだけ車両進行方向反対側に移動して、新たなエッジ座標に更新する。そして、エッジ座標保持部305は、更新されたエッジ座標を記憶して、撮像毎に蓄積する。
また、同時にエッジ座標が抽出された時刻も更新する(t=t+1)。この検出した時刻は後段のエッジ尤度配置補正部310で利用される。このエッジ座標(q7)は、エッジ尤度配置補正部310に出力される。
区画設定部309は、後述する位置姿勢推定部312(車線推定部)にて、前回の処理サイクルで推定された車線モデル(q11)に基づき、車両201の前方領域を予め設定した間隔で分割した局所領域を設定する。ここで、「局所領域」とは、後段のエッジ尤度配置補正部310で、エッジが密に分布している領域を判定するために区切る小領域である。
図8は、車両201の前方領域に設定する局所領域を示す説明図である。図8に示すように、車両201の左右に車線(前回の処理サイクルで推定された車線)を設定し、該車線を含むように、Z方向と直行する線(車両201の横方向に平行な線)で区切った領域を局所領域とする。本実施形態では、Z方向の2m毎に局所領域P1,P2,P3,・・・を設定している。即ち、区画設定部309は、車両201(移動体)の前方領域を、予め設定した間隔で分割した複数の局所領域を設定する。なお、ここでは2m間隔で局所領域を区分する例を示すが、本発明はこれに限定されるものではない。
また、局所領域設定の他の例として、図9に示すように、位置姿勢推定部312で推定された車線に設けた等間隔の点(図9に示す○印)の左右に所定の幅を持たせた領域S1,S2,S3,S4,S5,S6・・・を設定し、これを局所領域とすることも可能である。即ち、区画設定部309は、位置姿勢推定部312で推定される、車両201の前方に存在する車線に沿った領域を小区間に分割した領域を、局所領域に設定する。区画設定部309で設定された局所領域のデータ(q9)は、エッジ尤度配置補正部310に出力される。
エッジ尤度配置補正部310は、区画設定部309で区分した各局所領域(図8ではP1〜P3、図9では、S1〜S6)において、各エッジ(輝度勾配特徴点)の車線尤度が密に分布している局所領域を検出し、更に、この局所領域に含まれる複数のエッジから、車線の認識に使用する少なくとも一つのエッジを選択する処理を行う。即ち、エッジ座標保持部305に記憶されている全てのエッジから、車線尤度の分布のばらつきが小さくなるように、一部または全部のエッジを選択する処理を行う。換言すれば、車線の認識に使用するエッジを選択し、使用しないエッジを消去対象として特定する処理を行う。
路面に存在する車線を推定する場合には、一つの局所領域に含まれる各エッジの車線尤度の合計値が大きいと、この局所領域の重みが他の局所領域の重みよりも大きくなる。つまり、車線尤度の大きい局所領域の影響を受け易くなる。例えば、図10に示す例では、局所領域S3、S6には、他の局所領域よりも車線尤度の合計値が大きくなっている。よって、車両201前方の車線を推定する際には、局所領域S3、S6の影響を大きく受け易くなり、全体の重み付けに偏りが発生して車線の推定精度が低下する可能性がある。
従って、エッジ尤度配置補正部310では、各局所領域S1〜S6の重み付けを均一化するために、車線尤度が密に分布している局所領域を検出し、更に、この局所領域に含まれる各エッジから、消去すべきエッジを特定する。消去対象となるエッジのデータ(q10)をエッジ選択部311に出力する。
以下、図10、図11を参照して、車線の推定に使用しないエッジ、即ち、消去対象となるエッジを特定する処理を詳細に説明する。いま、区画設定部309で設定された区画領域がS1〜S6の6個の領域に区分された場合(図9に示した局所領域の場合)について説明する。エッジ尤度配置補正部310は、各局所領域S1〜S6に含まれるエッジの車線尤度の合計値を演算し、この演算値が予め設定した上限値(ここでは、上限値を「4.0」とする)よりも多いか否かを判断する。
そして、車線尤度の合計値が4.0よりも大きい局所領域が、車線尤度が密に分布している局所領域であると判断する。図10において、白丸で示すエッジの車線尤度は0.8、斜線の丸で示すエッジの車線尤度は0.6、黒丸で示すエッジの車線尤度は0.4である。この例では、局所領域S3、S6について、エッジの車線尤度の合計値が4.0を超えている。即ち、局所領域S3では車線尤度の合計値が5.2であり、局所領域S6では車線尤度の合計値が4.6である。
以下、消去対象となるエッジを特定する具体的な方法について説明する。本実施形態では、車線尤度が密に分布している局所領域に含まれる各エッジのうち、エッジ評価部306で判断される車線尤度に応じて消去するエッジを特定する。具体的には、複数のエッジのうち、車線尤度の高いエッジを所定数選択し、各局所領域のエッジの車線尤度の合計値が4.0以下となるように、エッジを選択する。それ以外のエッジを消去対象となるエッジとして特定する。図11を参照して説明する。
図11は、局所領域S3に存在する8個のエッジe1〜e8を示す説明図であり、各エッジの車線尤度に応じて丸印を変更している。上述したように、白丸は車線尤度が0.8、斜線の丸は車線尤度が0.6、黒丸は車線尤度が0.4である。従って、4個のエッジe1,e2,e5,e8は車線尤度が0.8であり、2個のエッジe4,e6は車線尤度が0.6であり、エッジe3,e7は車線尤度が0.4である。そして、車線尤度の合計値が4.0以下となるようにエッジを選択する。
本実施形態では、より車線尤度の大きいエッジを選択するので、4個のエッジe1,e2,e5,e8が選択される。更に、この合計値は3.2であるので、2個のエッジe4,e6のうちの一方が選択される。この際、エッジe6がe4よりも新しいデータであるとすれば、エッジe6が選択される。即ち、5個のエッジe1,e2,e5,e8,e6が選択され、3個のエッジe3,e4,e7が消去対象となるエッジとして特定される。こうすることにより、車線尤度の合計値が3.8となり、上限値である4.0以下となる。
エッジ選択部311は、エッジ尤度配置補正部310で特定された消去対象となるエッジ、即ち、3個のエッジe3,e4,e7を消去する。即ち、エッジ座標保持部305に記憶されているe3,e4,e7の3個のエッジ座標を消去する。
即ち、第1の条件として、車線尤度の大きいエッジを選択し、この選択により車線尤度の合計値と合計上限値との間に大きな差分がある場合には、第2の条件として、より新しいエッジ(より遅い時刻に取得されたエッジ)を選択する。こうすることにより、より信頼性の高いエッジを選択して、車線認識に使用することができる。
また、エッジ尤度配置補正部310では、エッジの車線尤度に代えて、エッジ抽出部303にてエッジが抽出された時刻に基づいて、消去対象とするエッジを特定することもできる。図12は、局所領域S3に存在する8個のエッジe1〜e8を示しており、更に、エッジの抽出時刻に応じて形状を変化させて表示している。具体的には、丸印で示すe1,e4は今回の時刻tに抽出されたエッジであり、三角印で示すe2,e5は前回の時刻(t−1)に抽出されたエッジであり、四角印で示すe3,e6,e7,e8は前々回の時刻(t−2)に抽出されたエッジである。
そして、各エッジの車線尤度の合計値が4.0以下となるように、より遅い時刻に抽出されたエッジ(より新しいエッジ)を選択する。図12に示す例では、丸印のエッジe1,e4、及び三角印のエッジe2,e5が選択され、これらの車線尤度の合計値は3.0であるから、更に、四角印のエッジのうち、最も尤度の大きいエッジe8が選択される。即ち、5個のエッジe1,e4,e2,e5,e8が選択される。換言すれば、相対的に古いエッジ(早い時刻に取得されたエッジ)であるe3,e6,e7の3個のエッジが消去対象となるエッジとして特定される。エッジ選択部311では、消去対象となる3個のエッジe3,e6,e7のエッジ座標を、エッジ座標保持部305から消去する。
また、他の例として、図13に示す例では、丸印で示すe1,e4が今回の時刻tに検出されたエッジであり、三角印で示すe5が、前回の時刻(t−1)に検出されたエッジであり、四角印で示すe2,e3,e6,e7,e8が、前々回の時刻(t−2)に検出されたエッジである。そして、エッジの車線尤度の合計値が4.0以下であるから、より新しいエッジであるe1,e4,e5の3個のエッジデータを選択する。この場合、車線尤度の合計値が2.2であるから、四角形で示すエッジのうち、車線尤度の大きいエッジe2,e8が選択される。即ち、5個のエッジe1,e4,e5,e2,e8が選択される。
即ち、第1の条件として、より新しいエッジ(より遅い時刻に取得されたエッジ)を選択し、この選択により車線尤度の合計値と合計上限値との間に大きな差分がある場合には、第2の条件として、車線尤度の大きいエッジを選択する。こうすることにより、より信頼性の高いエッジを選択して、車線認識に使用することができる。
位置姿勢推定部312は、エッジ選択部311で、消去対象とされたエッジが消去された後のエッジに基づいて、車両201の前方に存在する車線のモデルを二次曲線モデルとして設定する。更に、車線内における車両201の姿勢から、車線の位置を推定する。具体的には、図7に示すように、車線の方向に対する、車両201の進行方向を示す角度(道路中心線に対すする車両のヨー角)φrを求め、道路の曲率をρ、道路中心線に対する車両201の横変位量をycr、車線幅をW、世界座標系頂点から、車両左方向への距離をX、世界座標系原点から車両前方への距離をZとした場合に、車両の左側の車線X1、右側の車線X2は、それぞれ次の(6)式、(7)式で求めることができる。
X1=(ρ/2)Z2−φrZ−ycr+(W/2) …(6)
X2=(ρ/2)Z2−φrZ−ycr−(W/2) …(7)
そして、上述した(6)式、(7)式により、車両201の前方に存在する車線の座標を取得することができる。
また、車線を推定する手法はこの方法以外に、車線をモデル化して与えられたエッジを用いて最小二乗法等で車線を推定する手法を採用してもよい。但し、ここでの最適化手法は、それぞれのエッジの重みは均一として扱うものとする。これは、エッジに割り当てられる車線尤度を重みとして利用すると、エッジ分布のばらつきを抑えるようにしても、車線尤度の重みが大きいものによる影響を大きく受けてしまうという問題を回避するためである。
また、図2に示す車線逸脱警報システム204は、位置姿勢推定部312で推定された車線の位置に基づき、車線に対する車両201の横位置及びヨー角を演算し、車両201が車線で区画される車線内から逸脱すると予測される場合には、警報を出力して車両201の運転者に注意を喚起する。
次に、上述のように構成された本実施形態に係る車線認識装置の作用を、図14に示すフローチャートを参照して説明する。このフローチャートは、時系列的に画像を取得し、取得した画像に基づく車線の認識を繰り返して実行する。
初めにステップS11において、カメラ202は、所定の演算周期で車両201前方の撮像範囲403の画像を撮像する。そして、撮像した画像を俯瞰画像生成部302に出力する。
ステップS12において、俯瞰画像生成部302は、カメラ202で撮像された画像を画像処理して、俯瞰画像を生成する。この俯瞰画像をエッジ抽出部303に出力する。
ステップS13において、エッジ抽出部303は、俯瞰画像に対して、前述した分離度s、或いはSobelフィルタを用いる手法により、俯瞰画像に含まれるエッジを抽出する。抽出したエッジ座標を座標変換部304に出力し、エッジ強度をエッジ評価部306に出力する。
ステップS14において、座標変換部304は、俯瞰画像のエッジ座標に基づき、画像座標系のエッジ座標を、世界座標系のエッジ座標に変換する。世界座標系のエッジ座標をエッジ座標保持部305に出力する。
ステップS15において、エッジ座標保持部305は、座標変換部304より出力される世界座標系のエッジ座標を記憶する。更に、エッジ座標更新部308より出力される過去に検出したエッジ座標を記憶する。そして、エッジ座標をエッジ尤度配置補正部310に出力する。
ステップS16において、エッジ評価部306は、エッジ抽出部303より出力されるエッジ強度に対して、車線尤度を割り当て、この車線尤度を示すデータをエッジ尤度配置補正部310に出力する。
ステップS17において、エッジ尤度配置補正部310は、エッジ座標保持部305より出力されるエッジ座標と、エッジ評価部306より出力される車線尤度に基づき、区画設定部309で区画された局所領域に対して、前述したように、各局所領域に存在するエッジの車線尤度の合計値を算出し、更に、1つの局所領域に含まれる合計値が合計上限値(例えば、4.0)を上回る場合には、前述した手法により車線推定に用いるエッジ及び、消去する対象とするエッジを特定する。
ステップS18において、エッジ選択部311は、エッジ尤度配置補正部310で特定された消去対象となるエッジの座標をエッジ座標保持部305から消去することで、車線推定に用いるエッジを選択する。
ステップS19において、エッジ座標保持部305は、記憶しているエッジ座標を更新する。具体的には、ステップS18の処理で特定された消去対象となるエッジの座標を削除して、車線推定に用いるエッジを保持する。
ステップS20において、位置姿勢推定部312は、エッジ選択部311で選択された車線推定に用いるエッジ(消去対象となるエッジが消去された後の各エッジ)に基づいて、車両201の前方に存在する車線を推定し、車線を認識する。
その後、ステップS21において、システムのオン、オフが判定され、オンである場合には、ステップS11に処理を戻し、オフである場合には本処理を終了する。
このようにして、第1実施形態に係る車線認識装置100では、車両201の前方の映像を撮像し、更に俯瞰画像を生成し、該俯瞰画像に含まれるエッジ(輝度勾配特徴点)を抽出する。そして、このエッジに基づいて、車線モデルを設定して車両201の前方に存在する車線を認識する。この際、各エッジの車線尤度の分布のばらつきが小さくなるように、全体のエッジから一部または全部のエッジを選択する。それ以外のエッジを消去する。従って、車両201の前方領域にて車線尤度のばらつきが小さくされたエッジを用いて、車線認識の処理が行われるので、特定の領域の影響を大きく受けるという問題を回避し、高精度な車線認識が可能となる。
また、図8に示したように、車両201の前方領域に、予め設定した間隔(例えば、2m間隔)で分割した複数の局所領域を設定し、該局所領域内のエッジ車線尤度の分布のばらつきを小さくするので、より高精度に車線を認識することができる。
更に、各局所領域内に存在するエッジの車線尤度の合計値が4.0(合計上限値)以下となるように、車線推定に用いるエッジ及び、消去対象とするエッジを特定し、特定したエッジを消去する。従って、位置姿勢推定部312により、車両201前方の車線を認識する際に、全体の局所領域に対して均一な重み付けで車線を認識することができ、特定の局所領域に含まれるエッジ座標に大きな影響を受けることを回避できるので、車線の認識精度を向上させることができる。
また、図9に示したように、位置姿勢推定部312で推定される、車両201前方に存在する車線に沿った領域を小区間に分割した領域を、前記局所領域に設定することにより、局所領域を車線に沿った領域に限定することができるので、より一層車線の認識精度を向上させることができる。
更に、エッジ尤度配置補正部310は、一つの局所領域に存在する複数のエッジのうち、車線認識に使用するエッジを選択する際に、車線尤度の大きいエッジを選択する。つまり、車線尤度の小さいエッジを消去対象のエッジとして特定する。従って、より信頼性の高いエッジを選択することができ、車線認識の精度をより一層向上させることができる。
また、一つの局所領域に存在する複数のエッジのうち、車線認識に使用するエッジを選択する際に、より遅い時刻で取得されたエッジ(より新しいエッジ)を選択することによっても、上記と同様に、信頼性の高いエッジを選択することができ、車線認識の精度を向上させることができる。
なお、本実施形態では、一例として図10に示した局所領域S3に存在するエッジを削除する例について説明したが、車線尤度の合計値が4.0を超えるエッジが存在する局所領域が他にも存在する場合には、この局所領域についても同様の処理を実行して、エッジの車線尤度の合計値が合計上限値となるようにする。
[第2実施形態の説明]
次に、本発明の第2実施形態について説明する。図15は、第2実施形態に係る車線認識装置が搭載された車両の側面図、図16は同正面図である。第2実施形態では、第1実施形態に示したカメラ202に加えて、左右にそれぞれカメラ205、206を取り付けている。なお、これらの左右のカメラ205、206は多くの場合、車両201の近傍に存在する車線を撮像することを目的としているため、広角レンズや魚眼レンズを取り付けたものを利用することができる。
第2実施形態では、車両201の前方に搭載されるカメラ202が高さh1、水平から下向きに角度θ1の位置・姿勢で取り付けられている。
また、車両側方に搭載されるカメラ205、206は、高さh2、水平から下向きにθ2に取り付けられている。そして、3つのカメラ202、205、206を用いて車両201の周囲映像を撮像し、撮像した画像を計算機203に出力する。そして、画像中の車線を検出し、その車線に対する車両201の横位置、ヨー角を算出する。そして、それらの推定値を車線逸脱警報システム204に出力して、車両201が車線で区画される車線から逸脱した場合、或いは逸脱すると予測される場合に、警報を出力して運転者に知らせる。
このように、第2実施形態に係る車線認識装置についても前述した第1実施形態と同様の効果を達成することができる。更に、車両201の周囲映像を撮像するカメラが3台であるので、より広範囲に俯瞰画像を生成することができ、車線認識の精度を向上させることができる。
[第3実施形態の説明]
次に、第3実施形態について説明する。前述した第1、第2実施形態では、車両201の前方に複数の局所領域を設定し、各局所領域に存在するエッジの車線尤度の合計値が合計上限値以下となるようにエッジを選択する例を示した。これに対して変形例では、一つの局所領域に存在するエッジ(輝度勾配特徴点)の個数を求める。そして、エッジの個数が予め設定した上限個数値以下となるようにエッジを選択する。
即ち、各局所領域に存在するエッジの個数、及び各エッジの車線尤度の合計値がほぼ均一になるようにエッジを選択し、選択したエッジを用いて車線認識を行う。こうすることにより、各エッジの個数、及び車線尤度のばらつきを均一化することができるので、より高精度な車線認識が可能となる。
以上、本発明の車線認識装置を図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置き換えることができる。例えば、車線として白線を例に説明したが、黄色線等の他の車線についても適用することができる。