(57)【特許請求の範囲】
【請求項１】
車外の立体物の位置を検出して車外の状況を認識する車外監視装置において、
道路境界を構成する壁面に分類される壁面位置データ群を抽出する手段と、
壁面形状を表す複数のノード点を先に設定したノード点に基づき順次設定する手段と、
上記設定されたノード点を含む所定領域内の上記壁面位置データ群に対して壁面パターンとのマッチング処理を施すことにより求めた壁面位置に基づき上記ノード点を特定する手段と、
上記ノード点の設定及び壁面位置に基づくノード点の特定を順次施すことにより、複数のノード点により壁面形状を表す壁面モデルを形成する手段とを備えたことを特徴とする車外監視装置。
【請求項２】
上記ノード点を特定する手段は、各壁面位置データのＸ座標と上記壁面パターンのパターン中心のＸ座標との偏差に対応する重みの総和により一致度を評価し、上記壁面パターンを上記壁面位置データ群に対してＸ座標方向に移動させて上記一致度が最大になったときのパターン中心の位置を上記ノード点として特定することを特徴とする請求項１記載の車外監視装置。
【請求項３】
上記壁面モデルを形成する手段は、特定された所定ノード点の座標を、その前後のノード点を結ぶ直線に漸近する方向に修正することを特徴とする請求項１又は２記載の車外監視装置。
【請求項４】
車外の立体物の位置を検出して道路境界を示す立体物の位置を壁面位置として設定する車外監視装置において、
道路境界を構成する壁面に分類される壁面位置データ群を抽出する手段と、
上記壁面位置データ群に分類される複数の立体物に対して、立体物との位置関係が予め設定している壁面パターンに最も類似する位置を壁面位置として設定する手段とを備えたことを特徴とする車外監視装置。
【請求項５】
所定領域内における上記壁面位置データ群を構成する立体物に対して上記壁面パターンによるマッチング処理を適用し、順次領域を設定すると共に領域毎にマッチング処理を施すことにより、複数の壁面位置を設定することを特徴とする請求項４記載の車外監視装置。
【請求項６】
上記壁面パターンは、上記壁面パターンの横軸方向においてパターン中心点に対して一方の側を相対的に高く設定すると共に他方の側を相対的に低く設定した重み係数を縦軸に有するパターンであることを特徴とする請求項４記載の車外監視装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、車外の対象を撮像した画像を処理して車外の状況を認識する車外監視装置に関し、特に、ガードレール等の道路の境界となる連続した立体物としての側壁を検出する車外監視装置に関する。
【０００２】
【従来の技術】
最近では、自動車にＴＶカメラやレーザ・レーダ等を搭載して前方の車両や障害物を検知し、それらに衝突する危険度を判定して運転者に警報を発したり、自動的にブレーキを作動させて停止させる、あるいは、先行車との車間距離を安全に保つよう自動的に走行速度を増減する等のＡＳＶ（Advanced Safety Vehicle；先進安全自動車）に係わる技術の開発が積極的に進められている。
【０００３】
ＴＶカメラの画像から前方の物体を検知する技術としては、本出願人によって先に提出された特開平５−２６５５４７号公報の技術があり、この技術では、車両の左右に取り付けた２台のステレオカメラの画像を距離画像に変換し、この距離画像を所定の間隔で格子状の領域に区分し、各区分毎に立体物を検出している。また、本出願人は、同様に、区分毎に立体物のデータを抽出し、これらのデータをハフ変換によって処理し、ガードレール等の道路に沿った立体物（側壁）を検出する技術を、特開平６−２６６８２８号公報において提案している。
【０００４】
【特許文献１】
特開平５−２６５５４７号公報
【０００５】
【特許文献２】
特開平６−２６６８２８号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、従来の技術では、立体物のデータをハフ変換等によって処理するため、カーブした道路に沿ったガードレール等は、比較的近距離の範囲にある部分を直線として捉えるに過ぎず、遠方まで認識することは困難であった。
【０００７】
本発明は上記事情に鑑みてなされたもので、道路がカーブしている場合にも、道路の境界を構成する一連の立体物を壁面として検出することのできる車外監視装置を提供することを目的としている。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明による第１の車外監視装置は、車外の立体物の位置を検出して車外の状況を認識する車外監視装置において、道路境界を構成する壁面に分類される壁面位置データ群を抽出する手段と、壁面形状を表す複数のノード点を先に設定したノード点に基づき順次設定する手段と、上記設定されたノード点を含む所定領域内の上記壁面位置データ群に対して壁面パターンとのマッチング処理を施すことにより求めた壁面位置に基づき上記ノード点を特定する手段と、上記ノード点の設定及び壁面位置に基づくノード点の特定を順次施すことにより、複数のノード点により壁面形状を表す壁面モデルを形成する手段とを備えたことを特徴とする。
【０００９】
本発明による第２の車外監視装置は、車外の立体物の位置を検出して道路境界を示す立体物の位置を壁面位置として設定する車外監視装置において、道路境界を構成する壁面に分類される壁面位置データ群を抽出する手段と、上記壁面位置データ群に分類される複数の立体物に対して、立体物との位置関係が予め設定している壁面パターンに最も類似する位置を壁面位置として設定する手段とを備えたことを特徴とする。
【００１０】
すなわち、本発明の第１の車外監視装置は、道路境界を構成する壁面に分類される壁面位置データ群を抽出すると、壁面形状を表す複数のノード点を先に設定したノード点に基づき順次設定し、設定されたノード点を含む所定領域内の壁面位置データ群に対して壁面パターンとのマッチング処理を施すことにより求めた壁面位置に基づきノード点を特定する。そして、このノード点の設定及び壁面位置に基づくノード点の特定を順次施すことにより、複数のノード点により壁面形状を表す壁面モデルを形成する。
【００１１】
その際、各壁面位置データのＸ座標と壁面パターンのパターン中心のＸ座標との偏差に対応する重みの総和により一致度を評価し、壁面パターンを壁面位置データ群に対してＸ座標方向に移動させて一致度が最大になったときのパターン中心の位置をノード点として特定することが望ましく、また、特定された所定ノード点の座標を、その前後のノード点を結ぶ直線に漸近する方向に修正することが望ましい。
【００１２】
また、本発明の第２の車外監視装置は、道路境界を構成する壁面に分類される壁面位置データ群を抽出し、壁面位置データ群に分類される複数の立体物に対して、立体物との位置関係が予め設定している壁面パターンに最も類似する位置を壁面位置として設定する。
【００１３】
その際、所定領域内における壁面位置データ群を構成する立体物に対して壁面パターンによるマッチング処理を適用し、順次領域を設定すると共に領域毎にマッチング処理を施すことにより、複数の壁面位置を設定することが望ましい。壁面パターンとしては、壁面パターンの横軸方向においてパターン中心点に対して一方の側を相対的に高く設定すると共に他方の側を相対的に低く設定した重み係数を縦軸に有するパターンを採用することが望ましい。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図２０は本発明の実施の一形態に係わり、図１は車外監視装置の全体構成図、図２は車外監視装置の回路ブロック図、図３〜図５は立体物・側壁グループ検出処理のフローチャート、図６は壁面検出処理のフローチャート、図７及び図８は壁面位置修正処理のフローチャート、図９は車載のカメラで撮像した画像の例を示す説明図、図１０は距離画像の例を示す説明図、図１１は区分毎に検出した立体物の位置を示す説明図、図１２は側壁の検出結果を示す説明図、図１３は側壁の検出結果をＸ−Ｚ平面で示した説明図、図１４は壁面モデルの説明図、図１５は壁面パターンの探索法を示す説明図、図１６は重み係数パターンを示す説明図、図１７は一致度の計算結果を示す説明図、図１８はノード点の連結を示す説明図、図１９は壁面の検出結果を示す説明図、図２０は壁面の検出結果をＸ−Ｚ平面で示した説明図である。
【００１５】
図１において、符号１は自動車等の車両であり、この車両１に、車外の対象を撮像し、撮像画像から車外の状況を認識して監視する車外監視装置２が搭載されている。この車外監視装置２は、車外の対象物を異なる位置から撮像するためのステレオ光学系１０、このステレオ光学系１０で撮像した画像を処理して三次元の距離分布情報を算出するイメージプロセッサ２０、及び、イメージプロセッサ２０からの距離情報を入力し、その距離情報から道路形状や複数の立体物の三次元位置を高速で検出し、その検出結果に基づいて先行車や障害物を特定して衝突警報の判断処理等を行う認識処理用コンピュータ３０等から構成されている。
【００１６】
また、上記認識処理用コンピュータ３０には、車速センサ４、舵角センサ５等の現在の車両の走行状態を検出するためのセンサが接続され、認識された物体が自車両１の障害物となる場合、運転者の前方に設置されたディスプレイ９へ表示して運転者に対する警告を行う他、図示しないアクチュエータ類を制御する外部装置を接続することで車体の自動衝突回避制御等が可能となっている。
【００１７】
上記ステレオ光学系１０は、例えば電荷結合素子（ＣＣＤ）等の固体撮像素子を用いた左右１組のＣＣＤカメラ１０ａ，１０ｂからなり、イメージプロセッサ２０では、ＣＣＤカメラ１０ａ，１０ｂで撮像した１対の画像の相関を求め、同一物体に対する視差から三角測量の原理により距離を求める、いわゆるステレオ法により画像全体に渡る三次元の距離分布を算出する。
【００１８】
認識処理用コンピュータ３０では、イメージプロセッサ２０からの距離分布情報を読み込んで道路形状や複数の立体物（車両や障害物等）の三次元位置を高速で検出し、この検出物体との衝突や接触可能性を車速センサ４や舵角センサ５等によって検出した自車両の走行状態に基づいて判断し、その結果をディスプレイ９に表示して運転者に知らせる。
【００１９】
イメージプロセッサ２０及び認識処理用コンピュータ３０は、詳細には、図２に示すハードウエア構成となっている。イメージプロセッサ２０は、ＣＣＤカメラ１０ａ，１０ｂで撮像した１組みのステレオ画像対に対して所定の小領域毎に同一の物体が写っている部分を探索し、対応する位置のずれ量を求めて物体までの距離を算出し、三次元の距離分布情報として出力する距離検出回路２０ａと、この距離検出回路２０ａから出力される距離分布情報を記憶する距離画像メモリ２０ｂとから構成されている。
【００２０】
上記距離検出回路２０ａから出力される距離分布情報は、画像のような形態をした疑似画像（距離画像）であり、左右２台のＣＣＤカメラ１１ａ，１１ｂで撮影した画像、例えば、図９に示すような画像（図９は片方のカメラで撮像した画像を模式的に示す）を上記距離検出回路２０ａで処理すると、図１０のような距離画像となる。
【００２１】
図１０に示す距離画像の例では、画像サイズは横６００画素×縦２００画素であり、距離データを持っているのは図中白点の部分で、これは図９の画像の各画素のうち、左右方向に隣合う画素間で明暗変化が大きい部分である。距離検出回路２０ａでは、この距離画像を、１ブロックを４×４画素の小領域として横１５０×縦５０のブロックからなる画像として扱い、各ブロック毎に距離（画素ズレ数）の算出を行う。
【００２２】
一方、認識処理用コンピュータ３０は、道路形状等の検出処理を主とするマイクロプロセッサ３０ａと、検出した道路形状に基づいて個々の立体物を検出する処理を主とするマイクロプロセッサ３０ｂと、検出した立体物の位置情報に基づいて先行車や障害物を特定し、衝突や接触危険性を判断する処理を主とするマイクロプロセッサ３０ｃとがシステムバス３１を介して並列に接続されたマルチマイクロプロセッサのシステム構成となっている。
【００２３】
そして、上記システムバス３１には、距離画像メモリ２０ｂに接続されるインターフェース回路３２と、制御プログラムを格納するＲＯＭ３３と、計算処理途中の各種パラメータを記憶するＲＡＭ３４と、処理結果のパラメータを記憶する出力用メモリ３５と、上記ディスプレイ（ＤＩＳＰ）９を制御するためのディスプレイコントローラ（ＤＩＳＰ．ＣＯＮＴ．）３６と、車速センサ４、舵角センサ５等からの信号を入力するＩ／Ｏインターフェース回路３７とが接続されている。
【００２４】
認識処理用コンピュータ３０では、画素を単位とする距離画像上の座標系を、図９に示すように、左下隅を原点として横方向をｉ座標軸，縦方向をｊ座標軸として扱い、画素ズレ数をｄｐとする距離画像上の点（ｉ，ｊ，ｄｐ）を実空間の座標系に変換し、道路形状の認識や立体物の位置検出等の処理を行う。
【００２５】
すなわち、実空間の三次元の座標系を、自車（車両１）固定の座標系とし、Ｘ軸を車両１の進行方向右側側方、Ｙ軸を車両１の上方、Ｚ軸を車両１の前方、原点を２台のＣＣＤカメラ１０ａ，１０ｂの中央の真下の道路面とすると、Ｘ−Ｚ平面（Ｙ＝０）は、道路が平坦な場合、道路面と一致することになり、以下の(1)〜(3)式により、距離画像上の点（ｉ，ｊ，ｄｐ）を、実空間上の点（ｘ，ｙ，ｚ）に座標変換することができる。
ｘ＝ＣＤ／２＋ｚ・ＰＷ・（ｉ−ＩＶ）        …(1)
ｙ＝ＣＨ＋Ｚ・ＰＷ・（ｊ−ＪＶ）            …(2)
ｚ＝ＫＳ／ｄｐ                            …(3)
但し、ＣＤ    ：ＣＣＤカメラ１０ａ，１０ｂの間隔
ＰＷ    ：１画素当たりの視野角
ＣＨ    ：ＣＣＤカメラ１０ａ，１０ｂの取付け高さ
ＩV，ＪV：車両１の真正面の無限遠点の画像上の座標（画素）
ＫＳ    ：距離係数（ＫＳ＝ＣＤ／ＰＷ）
尚、実空間上の点（ｘ，ｙ，ｚ）から画像上の点（ｉ，ｊ，ｄｐ）を算出する式は、上記(1)〜(3)式を変形し、次のようになる。
【００２６】
ｉ  ＝（ｘ−ＣＤ／２）／（ｚ・ＰＷ）＋ＩＶ  …(4)
ｊ  ＝（ｙ−ＣＨ）／（ｚ・ＰＷ）＋ＪＶ      …(5)
ｄｐ＝ＫＳ／ｚ                             …(6)
【００２７】
次に、認識処理用コンピュータ３０における個々の処理について説明する。まず、マイクロプロセッサ３０ａによる道路検出処理では、距離画像メモリ２０ｂに記憶された距離画像からの三次元的な位置情報を利用し、内蔵した道路モデルのパラメータを実際の道路形状と合致するよう修正・変更して道路形状を認識する。
【００２８】
上記道路モデルは、認識対象範囲までの道路の自車線を、設定した距離によって複数個の区間に分け、各区間毎に左右の白線やガードレール等を三次元の直線式で近似して折れ線状に連結したものであり、実空間の座標系における水平方向の直線式のパラメータａ，ｂ、及び、垂直方向の直線式のパラメータｃ，ｄを求め、以下の(7)式に示す水平方向の直線式、及び、以下の(8)式に示す垂直方向の直線式を得る。
ｘ＝ａ・ｚ＋ｂ                              …(7)
ｙ＝ｃ・ｚ＋ｄ                              …(8)
【００２９】
また、マイクロプロセッサ３０ｂによる立体物検出処理では、距離画像を格子状に所定の間隔で区分し、各区分毎に立体物のデータを抽出してヒストグラムを作成し、このヒストグラムから各区分を代表する立体物の存在位置と、その距離を求める。次に、区分毎の距離を画像の左から右へ順次比較してゆき、前後方向（Ｚ軸方向）及び横方向（Ｘ軸方向）の距離が接近しているものをグループとしてまとめ、さらに、各グループについてデータの並び方向をチェックして方向が大きく変化する部分でグループを分割する。
【００３０】
そして、グループ全体としての距離データの並び方向（Ｚ軸との傾き）から個々のグループを立体物あるいは側壁に分類し、立体物と分類されたグループについて、グループ内の距離データから平均距離や左端、右端のＸ座標等のパラメータを算出し、側壁と分類されたグループについては、並び方向（Ｚ軸との傾き）や前後端の位置（Ｚ，Ｘ座標）等のパラメータを算出することにより、立体物の後部や側部、ガードレール等の道路に沿った構造物すなわち側壁を検出する等の処理を行う。
【００３１】
尚、距離画像の生成、この距離画像から道路形状を検出する処理、及び、衝突・接触判断処理については、本出願人によって先に提出された特開平５−２６５５４７号公報や特開平６−２６６８２８号公報等に詳述されている。
【００３２】
この場合、ガードレール等の側壁は、道路がカーブしている場合においても、道路に沿ってカーブした壁面を遠方まで認識することができる。以下、マイクロプロセッサ３０ｂによる壁面検出に係わる処理について、図３〜図８に示すフローチャートを用いて説明する。
【００３３】
図３〜図５は、距離画像から得られる距離データを処理して立体物のグループと側壁のグループとに分類するプログラムであり、まず、ステップS101〜ステップ115の処理で、距離画像を所定間隔で格子状に区分した各区分毎に、立体物の存在と、その距離の算出を行う。すなわち、ステップS101で、距離画像を所定間隔（例えば、８〜２０画素間隔）で格子状に区分し、ステップS102で、各区分毎に立体物のデータを抽出し、その検出距離を算出するため、最初の区分のデータを読み込む。
【００３４】
次に、ステップS103へ進んで区分内の最初のデータをセットすると、ステップS104で被写体の三次元位置（ｘ，ｙ，ｚ）を前述の(1)〜(3)式によって求め、ステップS105で、前述の道路形状の直線式(7),(8)を使って距離ｚに於ける道路表面の高さｙｒを算出する。尚、白線が無い道路等、当初、道路形状を認識できないときには、道路表面は車両１に水平であると仮定して道路表面の高さｙｒを設定する。
【００３５】
次に、ステップS106へ進み、以下の(9)式によって算出した被写体の道路表面からの高さＨに基づいて、道路面より上にあるデータを立体物データとして抽出する。この場合、高さＨが０．１ｍ程度以下の被写体は、道路上の白線や汚れ、影等と考えられるため、この被写体のデータは棄却する。また、自車両１の高さより上にある被写体も、歩道橋や標識などと考えられるので棄却し、道路上の立体物と推定されるデータのみを選別する。
Ｈ＝ｙ−ｙｒ          …(9)
【００３６】
その後、ステップS107へ進んで最終データか否かを調べ、最終データでないときには、ステップS108で区分内の次のデータをセットして前述のステップS104へ戻り、同様の処理を繰り返して道路面より上にあるデータを抽出する。そして、１つの区分内で最終データの処理が完了すると、ステップS107からステップS109へ進み、抽出された立体物データに対し、予め設定された距離ｚの区間に含まれるデータの個数を数えて距離ｚを横軸とするヒストグラムを作成する。
【００３７】
続くステップS110では、ヒストグラムの度数が判定値以上で、かつ最大値となる区間を検出し、該当する区間があれば、ステップS111において、その区間に立体物が存在すると判断し、その立体物までの距離を検出する。上記ヒストグラムでは、入力される距離画像中の距離データには誤って検出された値も存在し、実際には物体の存在しない位置にも多少のデータが現れる。しかしながら、ある程度の大きさの物体があると、その位置の度数は大きな値を示し、一方、物体が何も存在しない場合には誤った距離データのみによって発生する度数は小さな値となる。
【００３８】
従って、作成されたヒストグラムの度数が、予め設定した判定値以上かつ最大値をとる区間があれば、その区間に物体が存在すると判断し、度数の最大値が判定値以下の場合は物体が存在しないと判断しても差し支えなく、画像のデータに多少のノイズが含まれている場合においても、ノイズの影響を最小限にして物体を検出できる。
【００３９】
その後、上記ステップS111からステップS112へ進んで最終区分に達したか否かを調べる。そして、最終区分に達していないときには、上記ステップS112からステップS113へ進んで次の区分のデータを読み込むと、前述のステップS103へ戻り、道路面より上にあるデータの抽出、ヒストグラムの作成、及び、各区分内での立体物の検出と距離の算出を行う。以上の処理を繰り返し、やがて、最終区分に達すると、上記ステップS112からステップS114以降へ進む。
【００４０】
図１１は、図９の元画像から区分毎に検出した立体物の位置を示し、これらの立体物の距離データは、ステップS114〜ステップS120の処理により、距離が接近しているグループに分けられる。この処理では、各区分の立体物の検出距離を調べ、隣接する区分において立体物までの検出距離の差異が判定値以下の場合は同一の立体物と見なし、一方、判定値を超えている場合は別々の立体物と見なしてグループ分けを行う。
【００４１】
このため、ステップS114では、まず、最初の区分（例えば左端）を調べ、立体物が検出されている場合には、距離データを読み込んで、この区分Ｒ１を、グループＧ１、距離Ｚ１に分類する。次に、ステップS115へ進んで右隣の区分Ｒ２を調べ、立体物が検出されていない場合には、グループＧ１は区分Ｒ１の内部とその近辺に存在し、その距離はＺ１と判定し、一方、区分Ｒ２で立体物が検出されており、その検出距離がＺ２である場合には、区分Ｒ１の距離Ｚ１と右隣の区分Ｒ２の距離Ｚ２の差を計算する。
【００４２】
その後、ステップS116へ進んで右隣の区分との距離の差が判定値以下か否かを調べ、距離の差が判定値以下で互いに接近しているときには、ステップS117で、区分Ｒ２で検出された立体物は、先に検出されたグループＧ１に属すると判定して同一グループにラベル付けを行い、その距離をＺ１とＺ２との平均値としてステップS119へ進む。
【００４３】
一方、右隣の区分との距離の差が判定値を超えているときには、上記ステップS116からステップS118へ進み、区分Ｒ２で検出された立体物は、先に検出されたグループＧ１とは異なると判定して新しいグループ（グループＧ２、距離Ｚ２）にラベル付けを行い、ステップS119へ進む。
【００４４】
ステップS119では、最終区分に達したか否かを調べ、最終区分に達していないときには、ステップS120で次の区分の距離を読み込んで上記ステップS115へ戻っり、さらに右隣の領域を調べてゆく。また、最終区分に達したときには、ステップS119からステップS121以降へ進む。
【００４５】
以上の処理では、例えば、ガードレールの脇に車両が駐車している状況等において、ガードレールの距離データと、このガードレールに脇に駐車している車両上の距離データとが同一のグループとして処理されてしまう場合がある。従って、次のステップS121〜ステップS131における処理で距離データのＸ−Ｚ平面上での並び方向を調べ、並び方向がＺ軸と平行な部分とＸ軸と平行な部分とでグループを分割する。
【００４６】
このグループを分割する処理では、ステップS121で、最初のグループのデータを読み込み、ステップS122で、このグループ内の各区分の並び方向を算出すると、ステップS123で各区分に“物体”、“側壁”のラベルを付ける。具体的には、グループ内での左端の区分Ｋ１の位置をＺ１，Ｘ１とし、Ｎ個だけ右側の区分の位置をＺｐ，Ｘｐとすると、点Ｘ１，Ｚ１と点Ｘｐ，Ｚｐとの２点を結ぶ直線のＺ軸に対する傾きＡ１を算出し、この直線の傾きＡ１を設定値（例えば、４５°程度）と比較する。そして、直線の傾きＡ１が設定値以下でデータの並びが略Ｚ軸方向の場合には、区分Ｋ１は“側壁”とラベル付けし、上記直線の傾きＡ１が設定値を超え、データの並びが略Ｘ軸方向の場合には、“物体”とラベル付けする。
【００４７】
ラベル付けの際の区分の間隔Ｎは、Ｎ＝２〜４区分程度とする。これは、Ｎ＝１すなわち右隣の区分では、検出距離のバラツキのために並び方向が大きくばらついてしまい、分割の判断が難しくなるためであり、少し離れた区分との並び方向を使うことにより、方向の安定化を図る。そして、この“側壁”あるいは“物体”のラベル付けを、グループ内の左端の区分から順に、右端からＮ個左側の区分まで行い、各区分にラベル付けをする。
【００４８】
以上により、各区分のラベル付けが完了すると、上記ステップS123からステップS124へ進んで左端の区分のラベルを読み込み、さらに、ステップS125で、その右隣の区分のラベルを読み込む。次いで、ステップS126へ進み、左端のラベルと、その右隣のラベルが異なるか否かを調べる。その結果、ラベルが同じときにはステップS126からステップS128へジャンプし、ラベルが異なるとき、ステップS126からステップS127へ進んで“側壁”とラベル付けされた区分と“物体”とラベル付けされた区分とを分割して別のグループとし、ステップS128へ進む。分割する区分の位置は、ラベルが“側壁”←→“物体”で変化する位置のＮ／２区分だけ右側となる。
【００４９】
尚、この場合、距離データのバラツキ等により部分的にラベルが変化する状況に対処するため、同じラベルが判定値以上（例えば、３区分以上）連続して並んでいる場合にのみ分割を行い、判定値未満の場合には、分割は行わない。
【００５０】
ステップS128では、最終区分か否かを調べ、最終区分でないとき、ステップS129で次の区分のラベルを読み込んで上記ステップS125へ戻り、同様の処理を繰り返す。そして、最終区分に達すると、上記ステップS128からステップS130ヘ進み、最終グループに達したか否かを調べる。その結果、最終グループに達していないときには、ステップS131で次のグループのデータを読み込み、次のグループに対して同様にグループを分割する処理を行う。この処理を繰り返し、やがて、最終グループに達すると、グループ分割の処理を完了してステップS130からステップS132以降へ進む。
【００５１】
次のステップS132〜ステップS137は、分割された各グループに対し、側壁か物体かの分類を行って各グループのパラメータを算出する処理であり、ステップS132で最初のグループのデータを読み込むと、ステップS133で、グループ内の各区分の位置（Ｘｉ，Ｚｉ）からハフ変換あるいは最小二乗法によって近似直線を求め、グループ全体の傾きを算出する。
【００５２】
次に、ステップS134へ進んで、グループ全体の傾きから、Ｘ軸方向の傾きを有するグループを物体、Ｚ軸方向の傾きを有するグループを側壁に分類し、ステップS135で、各グループのパラメータを算出する。このパラメータは、物体と分類されたグループでは、グループ内の距離データから算出される平均距離や、左端、右端のＸ座標等のパラメータであり、側壁と分類されたグループでは、並びの方向（Ｚ軸との傾き）や前後端の位置（Ｚ，Ｘ座標）等のパラメータである。尚、グループの分類は、前述のグループ分割処理で付けられた各区分の“側壁”あるいは“物体”のラベルによって行っても良い。
【００５３】
そして、上記ステップS135からステップS136へ進んで最終グループに達したか否かを調べ、最終グループでないときには、ステップS137で次のグループのデータを読み込んで上記ステップS133へ戻り、最終グループに達したとき、プログラムを抜ける。
【００５４】
以上の処理では、図１２に示すような側壁の検出結果となり、区分毎の距離をＸ−Ｚ平面上に示すと、図１３に示すような直線状の側壁グループとして捉えられ、カーブした道路に沿った部分は認識されない。従って、図６の壁面検出処理のプログラムでは、以上によって得られた側壁グループのデータを用い、カーブした道路にそった壁面を認識する。
【００５５】
このプログラムでは、まず、ステップS201で、自車両との位置関係を調べて側壁のグループの中からガードレール等の壁面を検出していると推定されるグループを選出し（左右各１個以下）、ステップS202以降で、この選出した側壁グループのデータ（位置と方向）を手掛かりにし、壁面モデルを用いて壁面を探索・拡張する。
【００５６】
この壁面モデルは、図１４に示すように、自車両の前方の所定範囲を設定間隔毎に設けたノード点で結んで壁面の輪郭を表現したものであり、例えば前方１０ｍから９０ｍまでを２ｍ間隔の４１個のノード点で輪郭を構成し、各ノード点は自車両側から順に番号を付して管理される。各ノード点のＺ座標は固定とし、そのＸ座標を後述する手順により決定する。
【００５７】
このため、まず、ステップS202では、ステップS201で選択された側壁グループの手前側の端点のＺ座標から対応するノード点Ｎsとして求め、このノード点ＮsのＸ座標を、側壁の位置に合わせて設定すると、次に、ステップS203へ進み、次のノード点Ｎs+ｉの位置（Ｘ座標）を設定する。このノード点Ｎｓ+ｉの設定は、ｉ＝１でノード点Ｎsと隣のノード点Ｎs+1を設定するときには、側壁グループの傾きの方向に沿った位置とし、ｉ≧２でノード点Ｎs+2以降のノード点を設定するときには、その前の２つのノード点で決定される方向に沿った位置とする。
【００５８】
次いで、ステップS204へ進み、図１５に示すように、ステップS203で設定されたノード点Ｎs+ｉの座標（Ｘｎｓ+ｉ，Ｚｎｓ+ｉ）を中心として、所定の範囲でパターンマッチングにより壁面の位置を探索する。この探索範囲は、例えばＸ方向にＸｎｓ+ｉ±３〜５ｍ程度、Ｚ方向にＺｎｓ+ｉ±１ｍ程度であり、探索範囲内にある区分毎の立体物Ｐｉを抽出する。
【００５９】
そして、この探索範囲内の立体物Ｐｉに対して壁面パターンのマッチングを行う。図１６はこのパターンマッチングにて使用される壁面パターン（重み係数パターン）の一例を示している（図１６は左側の壁面に対応するパターンであり、右側の壁面検出には左側と対称のパターンを用いる）。この壁面パターンの横軸はＸ座標方向の距離、縦軸は重み係数を示しており、この壁面パターンの中心点を探索範囲内でＸ座標方向へずらしながらマッチング度の最も高い位置を探索する。具体的には、各立体物Ｐｉの壁面パターン中心点からのＸ座標方向の偏差に対応する重みＷｉを図１６に示す壁面パターンに基づいて求め、各立体物Ｐｉに対応する重みＷｉの総和をマッチング度Ｆとして算出する。そして、このマッチング度Ｆが最大となるときの壁面パターンの中心点位置が壁面の位置と認識される。但し、マッチング度Ｆの最大値が判定値以下の場合には壁面なしと判断する。
【００６０】
以上のステップS204の処理が終了すると、ステップS205へ進み、マッチング度Ｆが最大となるときの壁面パターンの中心点のＸ座標（Ｘｐｗ）をノード点Ｎs+ｉに対応する壁面位置のＸ座標として確定する。
【００６１】
そして、ステップS206へ進んで上記選出された側壁グループ内の最後のノード点か否かを調べ、最後のノード点でないとき、ステップS203へ戻って次のノード点を設定し同様の処理を繰り返す。また、最後のノード点に達すると、ステップS207へ進んでステップS202〜S205で確定されたノード点の中で最も番号の小さいもの（最も自車両に近いもの）と最も番号の大きいもの（最も自車両から遠いもの）とを探し、それらを検出範囲の始点Ｎs、終点Ｎeとしてプログラムを抜ける。このプログラムは、左側の側壁グループについて実行された後、右側の側壁グループについて実行される。図１４の例では、自車両右側で第９ノードから第２６ノードまで壁面が検出され、第９ノードを始点Ｎsとして第２６ノードを終点Ｎeとする各ノード点が有効なノード点として管理される。
【００６２】
以上の処理で検出された壁面の位置は、さらに、前述の図３〜図５のプログラムで得られる側壁グループの新たなデータを用い、図７及び図８に示すプログラムによって修正される。
【００６３】
この壁面位置修正のプログラムでは、ステップS301で、前回の処理で得られた有効なノード点の始点Ｎsが壁面モデルの１番目のノード点Ｎ1よりも大きいか否かを調べ、Ｎs＝Ｎ1で１番目のノード点Ｎ1まで既に壁面が検出されているときにはステップS306へジャンプし、Ｎs＞Ｎ1のとき、ステップS302へ進んで手前側の方向に戻ってノード点Ｎs-iを設定し、ステップS303で壁面パターンを探索すると、その探索結果に従ってステップS304で壁面のＸ座標を確定する。
【００６４】
次いで、ステップS304からステップS305へ進んで１番目のノード点に達したか否かを調べ、１番目のノード点Ｎ1に達していないときには、ステップS302〜S304を繰り返してノード点Ｎ1までの壁面位置の探索を続け、１番目のノード点Ｎ1までの処理を終えると、ステップS306へ進んで有効なノード点の終点Ｎeが壁面モデルの最後のノード点Ｎse（例えば、壁面モデルを４１個のノード点で構成する場合には、ノード点Ｎ41）より小さいか否かを調べる。
【００６５】
その結果、Ｎe＝Ｎseで最後のノード点まで既に壁面が検出されているときには、ステップS306からステップS311へジャンプし、Ｎe＜Ｎseのとき、ステップS306からステップS307へ進んで終点Ｎe以降のノード点Ｎe+iを順次設定し、ステップS308で壁面のパターンマッチングを行うと、そのマッチング結果に従ってステップS309で壁面のＸ座標を確定する。そして、ステップS310で、最後のノード点Ｎseに達したか否かを調べて最後のノード点Ｎseまでの壁面位置のマッチングを続け、最後のノード点Ｎseまでの処理を終えると、ステップS311へ進む。
【００６６】
以上のステップS302〜S304、及び、ステップS307〜S309におけるノード点の設定、壁面パターンのマッチング、探索結果に応じた壁面のＸ座標の確定は、前述の壁面検出処理のプログラムにおけるステップS203,S204,S205の処理と同様である。
【００６７】
ステップS311以降の処理は、１番目のノード点Ｎ1から最後のノード点Ｎseまでの各ノード点の位置（Ｘ座標）を修正する処理であり、まず、ステップS311で最初のノード点Ｎ1のデータをセットし、ステップS312へ進む。ステップS312〜ステップS321までの処理は、ステップS322で順次ノード点のデータがセットされることにより、最初のノード点Ｎ1から最後のノード点Ｎseまで繰り返し実行される。
【００６８】
まず、ステップS312でノード点Ｎiにおける壁面を検索し、ステップS313で、パターンマッチングにより壁面が検出されているか否かを調べる。そして、パターンマッチングにより壁面が検出されているとき、ステップS313からステップS314へ進んで読み出した壁面位置Ｘｐｗとノード点の位置Ｘｎｉとの差が設定値以内（例えば、±１ｍ以内）であるか否かを調べ、差が設定値以内であるとき、ステップS315でノード点を壁面位置に移動し（Ｘｎｉ←Ｘｐｗ）、差が設定値を超えているときには、ステップS316でノード点を壁面の方向に所定量（例えば、±０．３ｍ程度）だけ移動する（Ｘｎｉ←Ｘｎｉ±０．３ｍ）。
【００６９】
一方、パターンマッチングにより壁面が検出されていないときには、上記ステップS313からステップS317へ分岐し、ノード点の位置Ｘｎｉに対し、左側に存在する立体物のデータＸｐｉ（Ｘｎｉ＜Ｘｐｉ）の個数Ｃ０と、右側に存在する立体物のデータＸｐｉ（Ｘｎｉ＞Ｘｐｉ）の個数Ｃ１とをカウントし、ステップS318で、立体物のデータの個数が多く、立体物が片寄って存在する側にノード点を所定量（例えば、０．８ｍ）移動する（Ｘｎｉ←Ｘｎｉ±０．８）。
【００７０】
すなわち、ノード点の近くに壁面パターンが検出されない場合には、ノード点の左右方向で立体物が検出されている方向にノード点を所定量移動させることにより、ノード点の位置が壁面から大きく離れてしまった場合にもノード点の位置を壁面が存在する可能性のある方向に近づけることができる。
【００７１】
以上のステップS315,S316,S318のいずれかにより、ノード点の位置を移動すると、次にステップS319へ進み、現在のノード点Ｎiに対して１つ遠方側のノード点Ｎi+1と、現在のノード点Ｎiに対して１つ近傍側のノード点Ｎi-1とを結ぶ直線の中点の位置（Ｘ座標）Ｘｃを求め、ステップS320で、図１８に示すように、現在のノード点Ｎiと遠方側のノード点Ｎi+1とを結ぶ直線、及び、現在のノード点Ｎiと近傍側のノード点Ｎi+1とを結ぶ直線の２本の直線があたかもバネで連結されており、真直になろうとするかのように、ノード点を中点の方向に移動する。この場合の移動量は、中点の位置Ｘｃとノード点の位置Ｘｎｉとの差の１／２〜１／５程度に留める。
【００７２】
すなわち、パターンマッチング等で検出される壁面の位置には、データのバラツキ等の影響で凹凸が存在するが、多くの場合、実際に道路の境界を形成するガードレール等の壁面は滑らかにカーブしている。このため、上述のようなバネの作用を加えることで細かい凹凸を平滑化し、滑らかなカーブ形状を得ることができる。この場合、ノード点の全体の形状を平滑化する一般的な手法として最小二乗法等があるが、上述のバネ作用による手法は計算処理が簡素であり、処理速度を向上することができる。
【００７３】
その後、ステップS321へ進んで最後のノード点Ｎseに達したか否かを調べ、最後のノード点Ｎseに達していないときには、ステップS322で次のノード点のデータをセットしてステップS312へ戻り、以上の処理を繰り返す。そして、最後のノード点Ｎseまでの処理が終了すると、ステップS321からステップS323へ進んですべてのノード点において移動量が判定値（例えば、±０．１ｍ）以内になったか否かを調べる。
【００７４】
そして、移動量が判定値を超えているノード点が１つでも存在するときには、ステップS311へ戻って１番目のノード点から最後のノード点まで以上の位置の修正処理を繰り返し、すべてのノード点の移動量が判定値以内となったとき、ステップS324で、ノード点の検出範囲の始点Ｎs及び終点Ｎeを求めてプログラムを抜ける。これにより、部分的な誤検出等は、繰り返しの中で修正され、全体として最もふさわしい壁面の形状が得られる。尚、このプログラムも、左側の側壁グループについて実行された後、右側の側壁グループについて実行される。
【００７５】
図１９は、図９の元画像に対し、カーブした道路に沿った壁面を遠方まで捉えた検出結果を示し、Ｘ−Ｚ平面上では、壁面モデルの修正結果は図２０に示すようになる。この壁面モデルによるカーブした壁面の検出結果では、図１３に示すような直線として側壁を捉える場合に比較し、例えば約２倍といった遠方まで壁面を検出することができる。
【００７６】
また、以上の壁面モデルでは、様々な形状に対応することができ、ガードレールのみではなく、道路周辺の植え込み、住宅の塀等、様々な物体を連ねて道路の境界を構成する一連の立体物を壁面として検出することができる。従って、以上の壁面検出結果を用いることにより、白線が無い道路や雪道等の白線を認識できない道路においても、道路形状を認識することができる。
【００７７】
【発明の効果】
以上説明したように本発明によれば、道路がカーブしている場合にも、道路の境界を構成する一連の立体物を壁面として検出することができ、この壁面検出結果を用いることで白線が無い道路や雪道等の白線を認識できない道路においても道路形状を認識することができ、車外状況を常に的確に把握することができる等優れた効果が得られる。
【図面の簡単な説明】
【図１】車外監視装置の全体構成図
【図２】車外監視装置の回路ブロック図
【図３】立体物・側壁グループ検出処理のフローチャート（その１）
【図４】立体物・側壁グループ検出処理のフローチャート（その２）
【図５】立体物・側壁グループ検出処理のフローチャート（その３）
【図６】壁面検出処理のフローチャート
【図７】壁面位置修正処理のフローチャート（その１）
【図８】壁面位置修正処理のフローチャート（その２）
【図９】車載のカメラで撮像した画像の例を示す説明図
【図１０】距離画像の例を示す説明図
【図１１】区分毎に検出した立体物の位置を示す説明図
【図１２】側壁の検出結果を示す説明図
【図１３】側壁の検出結果をＸ−Ｚ平面で示した説明図
【図１４】壁面モデルの説明図
【図１５】壁面パターンの探索法を示す説明図
【図１６】重み係数パターンを示す説明図
【図１７】一致度の計算結果を示す説明図
【図１８】ノード点の連結を示す説明図
【図１９】壁面の検出結果を示す説明図
【図２０】壁面の検出結果をＸ−Ｚ平面で示した説明図
【符号の説明】
１  …車外監視装置
１０ａ，１０ｂ…ＣＣＤカメラ
２０…イメージプロセッサ
３０…認識処理用コンピュータ
Ｎi …ノード点
【図１】
0003697435.tif 000002
【図２】
0003697435.tif 000003
【図３】
0003697435.tif 000004
【図４】
0003697435.tif 000005
【図５】
0003697435.tif 000006
【図６】
0003697435.tif 000007
【図７】
0003697435.tif 000008
【図８】
0003697435.tif 000009
【図９】
0003697435.tif 000010
【図１０】
0003697435.tif 000011
【図１１】
0003697435.tif 000012
【図１２】
0003697435.tif 000013
【図１３】
0003697435.tif 000014
【図１４】
0003697435.tif 000015
【図１５】
0003697435.tif 000016
【図１６】
0003697435.tif 000017
【図１７】
0003697435.tif 000018
【図１８】
0003697435.tif 000019
【図１９】
0003697435.tif 000020
【図２０】
0003697435.tif 000021