"道路の路面を撮影した画像から複数のエッジ線を検出し、該複数のエッジ線のうち1つ以上のエッジ線を連結して複合エッジ線を生成するエッジ検出部と、前記道路の中央に最も近い内側複合エッジ線の情報に基づいて、前記路面を撮影したカメラの横方向オフセットと道路幅とを含む、前記道路の道路形状パラメータを求める道路形状推定部と、前記内側複合エッジ線と該内側複合エッジ線の外側に位置する外側複合エッジ線との距離に基づいて補正量を求める補正量推定部と、前記補正量を格納する格納部と、前記横方向オフセット及び前記道路幅を前記補正量を用いて補正し、補正された横方向オフセット及び道路幅を含む道路形状パラメータを出力する補正部とを備えることを特徴とする道路形状推定装置。前記補正量推定部は、前記内側複合エッジ線に含まれるエッジ線のうち前記画像内で前記カメラの近傍に存在する第1のエッジ線と、前記外側複合エッジ線に含まれるエッジ線のうち前記画像内で前記カメラの近傍に存在する第2のエッジ線との距離に基づいて、前記補正量を求めることを特徴とする請求項1記載の道路形状推定装置。前記補正量推定部は、前記内側複合エッジ線に含まれるエッジ線の長さが閾値より小さいとき、該内側複合エッジ線の外側に前記外側複合エッジ線が存在するか否かをチェックし、該外側複合エッジ線が存在するとき、該内側複合エッジ線と該外側複合エッジ線との距離に基づいて前記補正量を求め、該内側複合エッジ線に含まれるエッジ線の長さが該閾値より大きいとき、前記補正量を0に設定することを特徴とする請求項1又は2記載の道路形状推定装置。請求項1乃至3のいずれか1項に記載の道路形状推定装置と、前記道路形状推定装置から出力される道路形状パラメータに基づいて、車両が車線を逸脱したか否かを判定する逸脱判定装置と、前記車両が前記車線を逸脱した場合に警報を出力する逸脱警報装置とを備えることを特徴とする車線逸脱警報システム。請求項1乃至3のいずれか1項に記載の道路形状推定装置と、前記道路形状推定装置から出力される道路形状パラメータに基づいて、車両がふらついているか否かを判定するふらつき判定装置と、前記車両がふらついている場合に、車線上での走行を維持するように該車両を操舵する車両操舵装置とを備えることを特徴とする車両操舵システム。道路の路面を撮影した画像から複数のエッジ線を検出し、前記複数のエッジ線のうち1つ以上のエッジ線を連結して複合エッジ線を生成し、前記道路の中央に最も近い内側複合エッジ線の情報に基づいて、前記路面を撮影したカメラの横方向オフセットと道路幅とを含む、前記道路の道路形状パラメータを求め、前記内側複合エッジ線と該内側複合エッジ線の外側に位置する外側複合エッジ線との距離に基づいて補正量を求め、前記の横方向オフセット及び前記道路幅を前記補正量を用いて補正し、補正された横方向オフセット及び道路幅を含む道路形状パラメータを出力する処理をコンピュータに実行させるプログラム。上述した従来の車線区分線認識技術には、以下のような問題がある。従来の車線区分線認識技術では、図1に示すように、路面画像における車両の近傍画像の下側から遠方画像の上側までのすべての領域において、車線区分線101及び102と補助線103及び104とが区別できることが必要である。さらに、縦方向に隣接する補助線同士が画像中で分離されていることも必要である。しかしながら、路面画像の解像度には限界があるため、遠方に映る物体は分解能が低下し、遠方では車線区分線と補助線の融合や、縦方向に隣接する補助線同士の融合が生じることがある。図2は、車線区分線と補助線の融合が生じる第1の例を示している。第1の例では、車線区分線201及び202は実線であり、補助線203及び204は破線であるが、遠方では解像度の低下により、車線区分線201と補助線203の融合及び車線区分線202と補助線204の融合が生じている。さらに、補助線203の破線ブロック同士の融合及び補助線204の破線ブロック同士の融合も生じている。この場合、最も連続線に近い候補は、融合したブロックのエッジ線205及び206であるため、これらの誤った形状特徴を持つエッジ線に基づいて道路形状が推定されることになる。図3は、車線区分線と補助線の融合が生じる第2の例を示している。第2の例では、車線区分線301及び302は破線であり、補助線303及び304も破線であるが、補助線303及び304の方が破線ブロックの長さが短い。遠方では解像度の低下により、車線区分線301と補助線303の融合及び車線区分線302と補助線304の融合が生じ、補助線303の破線ブロック同士の融合及び補助線304の破線ブロック同士の融合も生じている。この場合、最も連続線に近い候補は、融合したブロックのエッジ線305及び306であるため、図2の場合と同様に、誤った形状特徴を持つエッジ線に基づいて道路形状が推定されることになる。本発明の課題は、車線区分線と平行に補助線がペイントされているような多重線路であっても、解像度の低下による補助線からの影響を受けずに、道路の路面を撮影した画像から精度良く道路形状を推定することである。道路形状推定装置は、エッジ検出部、道路形状推定部、補正量推定部、格納部、及び補正部を含む。エッジ検出部は、道路の路面を撮影した画像から複数のエッジ線を検出し、それらのエッジ線のうち1つ以上のエッジ線を連結して複合エッジ線を生成する。道路形状推定部は、道路の中央に最も近い内側複合エッジ線の情報に基づいて、路面を撮影したカメラの横方向オフセットと道路幅とを含む、道路の道路形状パラメータを求める。補正量推定部は、内側複合エッジ線と内側複合エッジ線の外側に位置する外側複合エッジ線との距離に基づいて補正量を求め、格納部は、その補正量を格納する。補正部は、横方向オフセット及び道路幅を補正量を用いて補正し、補正された横方向オフセット及び道路幅を含む道路形状パラメータを出力する。上述した道路形状推定装置によれば、車線区分線と平行に補助線がペイントされているような多重線路であっても、解像度の低下による補助線からの影響を受けずに、道路の路面を撮影した画像から精度良く道路形状を推定することができる。以下、図面を参照しながら、実施形態を詳細に説明する。図4は、道路形状モデルの例を示している。ここでは、車線の中央線Lcにおける曲率半径をRとし、車線の各位置で水平方向X軸方向に測って道路幅車線幅が常にWとなるモデルを考える。このモデルでは、中央線Lcに直交する方向での車線幅がWとならないため、実際の車線とは異なるが、カメラによる観測点から比較的近い範囲では誤差が小さく、解析的な取り扱いが簡単になる。図5に示すように、カメラの中心を原点Oとして、原点Oから横方向に路面座標系のX軸をとり、縦方向に路面座標系のZ軸をとる。この場合、XZ平面に垂直な方向が路面座標のY軸となる。そして、原点Oを路面上に垂直に投影した点をROとする。図4の道路形状モデルにおける各記号の意味は以下の通りである。Lc:車線の中央線Lr:車線の右側の車線区分線Ll:車線の左側の車線区分線W:道路幅R:曲率半径e:点ROから中央線Lcまでの距離P:車線区分線Lr又はLl上の着目点A:車線区分線LrとXY平面の交点B:着目点PをXY平面に垂直に投影した点C:曲率中心D:XY平面から着目点Pまでの距離距離eは、カメラから道路中央までの距離カメラの横方向オフセットを表し、距離Dは、カメラから着目点Pまでの奥行き方向の距離を表す。このとき、着目点PX,ZのX座標Px及びZ座標Pzは、次式で与えられる。式1が車線の路面上での位置を与える基礎式である。ただし、kは車線区分線Lr及びLlを区別するための定数で、着目点Pが右側の車線区分線Lr上にあるときはk=1、左側の車線区分線Ll上にあるときはk=-1である。曲率半径Rは、右カーブ、すなわち曲率中心CがX軸の正区間にある場合は正値とし、左カーブ、すなわち曲率中心CがX軸の負区間にある場合は負値とする。基礎式1は、平方根を含んでいるため、解析的な取り扱いが難しい。そこで、曲率半径Rが極端に小さくない通常の走行時を想定して、基礎式1の近似化を行う。例えば、平方根の1次近似として、テーラー展開の第1項までを用いると、次式のようになる。式2を用いると、基礎式1は以下のように書き改められる。式3が1次近似での基礎式となる。次に、路面上の車線区分線をカメラで観測したときの車線区分線の位置のモデルを導出する。図5は、カメラの観測系モデルの例を示している。カメラの中心は路面から高さHの位置にあり、カメラは車両の進行方向に対して、ピッチ角φ、ヨー角θ、ロール角0で設置されているとする。ピッチ角φ及びヨー角θは、カメラ座標系から路面座標系への座標系の変換を正の回転方向に取る。したがって、路面座標系からカメラ座標系へは、座標点の変換が回転の正方向となる。また、カメラの焦点距離はfとする。このとき、路面座標X,Y,Zからカメラ座標xc、yc、zcへの座標変換を考える。路面座標系での点Pの座標X,Y,Zをピッチ角φとヨー角θを持つカメラ座標系での座標xc,yc,zcで表すと、次式のようになる。この点をカメラで観測した画像の中央からx軸を右向きに、y軸を下向きに取り、画像座標をx,yとすると、着目点Pの画像座標px,pyは次式で与えられる。式5のX及びZに近似基礎式3のPx,Pzを代入し、YにHを代入すると、画像上での車線区分線の位置関係として次式が得られる。式6から媒介変数であるDを除けば、pxとpyの関係式が求められる。実際には、式6の形のままではDについて容易に解けないため、関係式の導出が困難である。そこで、式6中の各項のオーダーを考慮して、式6の近似化を行う。具体的には、各回転角φ及びθは大きくても20度程度であり、それほど大きくないため、sin系の値は0.1程度である。D、R、W、H、及びeの単位をメートルとすると、式6中のpx及びpyの分母において、第1項のcosφsinθに乗算される数値は2程度であるから、第1項は0.2程度の値を持つ。また、第2項のHの値も2程度であるから、第2項も0.2程度の値を持つ。これに対して、第3項のDの値は30程度であり、第3項はcos系の積なので30程度の値を持つ。したがって、分母では第3項が支配的で第1項及び第2項はほとんど影響を与えない。pyの分子についても同様である。したがって、最初の近似式として、次式が得られる。式7のpyの式からDを求めて、pxの式に代入し、px,pyをx,yと書き改めると、次式が得られる。式8が、画像中の車線区分線上の点のx座標とy座標の関係式であり、画像座標系における基礎式となる。ここで、回転角φ及びθを微小とみなして、sinφ=φ、cosφ=1、sinθ=θ、cosθ=1とすると、次式が得られる。式9が、道路形状モデルを表す最終的な近似式である。式9の道路曲率ρは、曲率半径Rの逆数に相当する。なお、カメラの横方向オフセットeとして、カメラと道路上の基準位置との横方向の相対距離を表す別のパラメータを用いることも可能である。映像中の各時刻における画像フレームから車線区分線の位置x,yが検出できれば、式9を用いて道路形状パラメータρ,W,e,φ,θを推定することができる。これにより、路面上の車線区分線の形状と車両の位置及び方向との関係を求めて、道路形状を推定することができる。以下の説明では、画像座標系の原点を画像の中央から画像の左上の点に平行移動して、車線区分線の位置x,yを記述する。走行車線の左右の車線区分線の内側に補助線がペイントされている場合、補助線の影響を受けずに車線区分線が形成する道路形状を正しく推定するために、以下の点に着目する。1補助線は、車線区分線と平行して存在する。2補助線は、道路中央に近い側車線区分線の内側に存在する。3補助線は破線であり、連続的に並んでいる破線ブロックの長さ及び間隔は、車線区分線で用いられる破線ブロックの長さ及び間隔より短い。上記2及び3を考慮すると、車線区分線と補助線が融合したり、補助線同士が道路の奥行方向に融合したりしても、図6に示すように、補助線の内側境界線601~606は損なわれることなく、常に安定して観測できることが分かる。また、上記1を考慮すると、補助線の内側境界線601~606を用いて道路形状パラメータを推定した場合、道路曲率ρ、ピッチ角φ、及びヨー角θについては正しい値が求められることが分かる。そこで、実施形態では、車線区分線や補助線の融合の有無に関わらず、補助線がある場合は補助線の内側境界線を用いて道路形状を推定する。ただし、道路幅W及びオフセットeについては、内側境界線601~606を道路端とみなした場合の誤った値が求められる。道路幅W及びオフセットeの誤差は、補助線の内側境界線の位置から車線区分線の位置までの距離に起因した値となる。続いて、車線区分線や補助線の融合について考察する。図7に示すように、車線区分線711及び712や補助線721及び722が遠方にある領域701では、解像度が不足して融合した線分を分離することはできない。一方、線分が車両の近傍にある領域702では、各線分が大きく詳細に映るので、車線区分線711及び712や補助線721及び722の融合は発生しない。したがって、画像の下端に近い領域702に着目して検出した線分の位置関係を調べれば、補助線721及び722と車線区分線711及び712の位置的な誤差を求めることができる。図7のシフト量DXLは、左側の補助線721の内側境界線741から、補助線の幅だけ外側に離れた車線区分線711の内側境界線731までの距離を表す。また、シフト量DXRは、右側の補助線722の内側境界線742から、補助線の幅だけ外側に離れた車線区分線712の内側境界線732までの距離を表す。シフト量DXL及びDXRが求められれば、それらを用いて道路幅W及びオフセットeの誤差を補正し、車線区分線に基づく正しい道路形状を推定することができる。図8は、道路幅W及びオフセットeの補正方法を示している。補正前の道路幅W1は、内側境界線741の位置801と内側境界線742の位置803との距離を表し、補正前のオフセットe1は、カメラの位置804から補正前の道路中央の位置802までの距離を表す。補正後の道路幅W2は、内側境界線731の位置811と内側境界線732の位置813との距離を表し、補正後のオフセットe2は、カメラの位置804から補正後の道路中央の位置812までの距離を表す。このとき、補正後の道路幅W2及びオフセットe2は、次式により求められる。W2=W1DXLDXRe2=e1-DXLDXR/221ただし、車線区分線が破線である場合、破線ブロック間には相応のペイントが無い間隙があるため、画像の下端に近い領域702に着目した場合に、常に補助線と車線区分線からなる複数の線分が存在するとは限らない。例えば、一般的な高速道路では、破線ブロック白線部分の長さは8mで、破線ブロック間の間隙非白線部分の長さは12mである。そこで、画像の下端に近い領域702を常に監視して複数の線分が存在するか否かを判定し、複数の線分が存在する時を見計らって補助線と車線区分線の位置的なシフト量を算出する。また、複数の線分が存在する場合には毎回シフト量を検出することで、補助線と車線区分線の間隔の変動に対応することができる。図9は、道路形状推定装置の機能的構成例を示している。図9の道路形状推定装置901は、エッジ検出部911、道路形状推定部912、補正部913、補正量推定部914、及び格納部915を含む。図10は、図9の道路形状推定装置901による道路形状推定処理の例を示すフローチャートである。まず、エッジ検出部911は、道路の路面を撮影した画像から複数のエッジ線を検出しステップ1001、それらのエッジ線のうち1つ以上のエッジ線を連結して複合エッジ線を生成するステップ1002。次に、道路形状推定部912は、道路の中央に最も近い内側複合エッジ線の情報に基づいて、道路幅及びオフセットを含む、道路の道路形状パラメータを求めるステップ1003。また、補正量推定部914は、内側複合エッジ線と内側複合エッジ線の外側に位置する外側複合エッジ線との距離に基づいて補正量を求め、その補正量を格納部915に格納するステップ1004。ステップ1003及び1004の処理は順番に行ってもよく、並行して行ってもよい。次に、補正部913は、道路幅及びオフセットを補正量を用いて補正しステップ1005、補正された道路幅及びオフセットを含む道路形状パラメータを出力するステップ1006。このような道路形状推定装置によれば、車線区分線と平行に補助線がペイントされているような多重線路であっても、解像度の低下による補助線からの影響を受けずに、道路の路面を撮影した画像から精度良く道路形状を推定することができる。図11は、道路形状推定装置の別の機能的構成例を示している。図11の道路形状推定装置は、映像入力部1101、エッジ検出部1102、候補線決定部1103、道路形状推定部1104、補正部1105、補助線判定部1106、補正量推定部1107、及び格納部1108を含む。映像入力部1101に接続されたカメラ1100は、車両の前方又は後方に路面を撮影できるように取り付けられている。図12は、図11の道路形状推定装置による道路形状推定処理の例を示すフローチャートである。まず、映像入力部1101は映像入力処理を行いステップ1201、エッジ検出部1102はエッジ検出処理を行いステップ1202、候補線決定部1103は候補線決定処理を行うステップ1203。次に、補助線判定部1106は補助線判定処理を行いステップ1204、補正量推定部1107は補正量推定処理を行うステップ1205。また、道路形状推定部1104は道路形状推定処理を行うステップ1206。そして、補正部1105は道路形状補正処理を行うステップ1207。ステップ1201の映像入力処理において、映像入力部1101は、外部のカメラ1100により撮影された映像を受け取り、エッジ検出部1102に出力する。このとき、入力された映像がアナログ映像であればデジタル画像に変換し、カラー映像であればモノクロ濃淡画像に変換してから、エッジ検出部1102に出力する。出力されるデジタル画像は、例えば、縦横にあらかじめ決められた大きさの2次元配列情報である。ステップ1202のエッジ検出処理において、エッジ検出部1102は、入力されるデジタル画像中の左右の車線区分線を含むそれぞれの部分から、領域の境界線を構成するエッジ点群を検出する。次に、エッジ点を画像の縦方向に連結して、エッジ線を検出する。検出されたエッジ線は、実線の車線区分線の全体、破線の車線区分線の1つの破線ブロック、補助線の1つの破線ブロック等のエッジ線に対応する。そして、エッジ線同士を画像の縦方向に連結して複合エッジ線を生成し、候補線決定部1103及び補正量推定部1107に出力する。生成された複合エッジ線は、実線の車線区分線の全体、破線の車線区分線の全体、補助線の全体等のエッジ線に対応する。ステップ1203の候補線決定処理において、候補線決定部1103は、入力される複合エッジ線の中から、左右それぞれの部分について、道路の中央に最も近い最も内側にある複合エッジ線を、道路形状の推定に用いる候補線に決定する。そして、その複合エッジ線を道路形状推定部1104、補助線判定部1106、及び補正量推定部1107に出力する。ステップ1204の補助線判定処理において、補助線判定部1106は、入力される候補線の複合エッジ線について、その複合エッジ線に含まれるエッジ線の路面上での長さを元に、複合エッジ線が補助線に該当するか否かを判定する。そして、判定結果を補正量推定部1107に出力する。ステップ1205の補正量推定処理において、補正量推定部1107は、左右それぞれの部分について、入力される判定結果が補助線を示す場合は、候補線から補助線の幅だけ外側に位置する複合エッジ線の有無をチェックする。このとき、エッジ検出部1102から入力される複合エッジ線がチェック対象として用いられる。該当する外側複合エッジ線が存在すれば、候補線からその外側複合エッジ線までの距離を求め、補正量として格納部1108に格納する。補正量としては、例えば、路面上での進行方向と直交する方向における、候補線と外側複合エッジ線の距離が用いられる。一方、該当する外側複合エッジ線が存在しなければ、格納部1108に格納された補正量は更新しない。入力される判定結果が補助線ではないことを示す場合は、補正量として0を格納部1108に格納する。例えば、図3に示したように、破線の車線区分線301と補助線303が融合している場合は、補助線303から補助線の幅だけ外側には複合エッジ線が存在しないので、補正量は更新されない。その後、数フレーム分の時間が経過して遠方の車線区分線301が車両に近づいたときに、画像の解像度が確保され、車線区分線301と補助線303とが分離されるため、補正量が求められる。ステップ1206の道路形状推定処理において、道路形状推定部1104は、入力される候補線の複合エッジ線に含まれるエッジ点の画像座標x、yを用いて、道路形状パラメータを求め、補正部1105に出力する。ステップ1207の道路形状補正処理において、補正部1105は、入力される道路形状パラメータのうち道路幅及びオフセットを、格納部に格納された補正量を用いて補正し、補正された道路幅及びオフセットとその他の道路形状パラメータを外部に出力する。候補線が補助線の場合は、補助線から車線区分線までのシフト量に対応する補正量を推定された道路幅及びオフセットに適宜加算することにより、実際の車線区分線の位置に対応する道路幅及びオフセットが得られる。一方、候補線が補助線でない場合は、補正量が0であるため、推定された道路幅及びオフセットは変更されない。このように、左右それぞれの車線区分線の周辺について、最も内側に位置する複合エッジ線を候補線として用いることで、補助線が存在しない場合は、車線区分線のエッジ線が候補線として抽出される。また、内側に補助線が存在する場合は、その補助線のエッジ線が候補線として抽出される。いずれの場合も、候補線より内側にエッジ線は存在せず、候補線の内側の境界が他の線分と融合して形状が崩れることがないため、道路形状を安定して推定することができる。ただし、候補線が補助線の場合は、推定される道路幅及びオフセットに誤差が含まれるため、別途算出した補助線から車線区分線までの補正量を加算することで誤差を補正し、常に正しい道路形状を推定することができる。車線区分線と補助線が分離される時点、つまり、車線区分線が車両の近傍に存在し解像度が高くなる時点で補正量を算出することで、安定して補正量を求めることができる。したがって、車線区分線と平行に補助線がペイントされているような多重線路であっても、解像度の低下による補助線からの影響を受けずに、道路の路面を撮影した画像から精度良く道路形状を推定することができる。図13は、図12のエッジ検出処理の例を示すフローチャートである。まず、エッジ検出部1102は、入力されるデジタル画像に対してソベルオペレータ等の微分オペレータを適用して横方向の微分処理を行い、輝度の変化が閾値以上であるようなエッジ点を検出するステップ1301。例えば、図14のようなデジタル画像からは、図15のような縦方向に並んだエッジ点の列が得られる。図15では、検出されたエッジ点の位置が模式的に表されているが、実際には図14の画像の各行の画素について微分処理が行われ、各行からエッジ点が検出される。次に、検出されたエッジ点について、周囲画素の連結性を用いたラベル付け処理を行い、複数のエッジ点を統合してエッジ線を検出するステップ1302。これにより、実線の車線区分線の全体、破線の車線区分線の1つの破線ブロック、補助線の1つの破線ブロック等の外形に対応するエッジ線が得られる。例えば、図15のエッジ点からは、図16のようなエッジ線が検出される。次に、エッジ線の絞り込みを行うステップ1303。この絞り込み処理では、まず、図17に示すように、デジタル画像中に車線区分線を含む左右それぞれの領域RL及びRRを設けて、各領域の外に存在するエッジ線を除外する。次に、領域RL及びRR内の各エッジ線を挟む左右の画素の輝度値を調べる。左側の領域RL内のエッジ線は、左側の車線区分線に関係するので、その左側画素の輝度値が大きく右側画素の輝度値が小さい場合にそのエッジ線を残し、それ以外の場合にエッジ線を除外する。また、右側の領域RR内のエッジ線は、右側の車線区分線に関係するので、その左側画素の輝度値が小さく右側画素の輝度値が大きい場合にそのエッジ線を残し、それ以外の場合にエッジ線を除外する。これにより、実線の車線区分線の全体、破線の車線区分線の1つの破線ブロック、補助線の1つの破線ブロック等のエッジ線のうち、内側のエッジ線のみが残され、外側のエッジ線は除外される。例えば、図17のエッジ線のうち外側のエッジ線を除外すると、図18に示すように、内側のエッジ線のみが残される。次に、各エッジ線の路面上での長さを調べ、長いものから順に実線、破線、補助線、及びノイズの各線種に分類し、ノイズに分類された非常に短いエッジ線を除外する。エッジ線の上側端点の画像座標をx1、y1、下側端点の画像座標をx2、y2、画像中心の座標をcx、cyとすると、エッジ線の長さLLは、次式により与えられる。LL=Z2-Z1Z2=fH/fφy2-cyZ1=fH/fφy1-cy31ただし、図5とは異なり、x1、y1、x2、y2、及びcx、cyは、画像の左上の点を画像座標系の原点として記述されている。式31のLLと閾値ThL1~ThL3を用いて、以下のように線種を分類することができる。1LLがThL1以上:実線の車線区分線2LLがThL1未満でThL2以上:破線の車線区分線3LLがThL2未満でThL3以上:破線の補助線4LLがThL3未満:ノイズここでは、補助線の破線ブロックの長さが車線区分線の破線ブロックの長さより短いことを前提としている。ノイズに分類されたエッジ線を除外し、残されたエッジ線のうち左側の領域RL内のエッジ線の数をNLL、右側の領域RR内のエッジ線の数をNLRとする。そして、領域RL内のエッジ線をLLii=1,2,...,NLLと記述し、領域RR内のエッジ線をLRii=1,2,...,NLRと記述する。次に、エッジ線同士を画像の縦方向に連結して複合エッジ線を生成するステップ1304。この複合エッジ線生成処理では、領域RL及びRRのそれぞれについて、エッジ線同士のすべての組み合わせを調べる。そして、2つのエッジ線の近い側の端点間のX方向の距離及びZ方向の距離の双方が閾値以内であれば、それらのエッジ線を統合する。図19及び図20は、左側の領域RLにおける複合エッジ線生成処理の例を示すフローチャートである。まず、エッジ検出部1102は、処理済みのエッジ線を示すリストFを{0,0,...,0}に初期化するステップ1901。リストFの要素数はNLLであり、i番目の要素F[i]が1のとき、i番目のエッジ線の処理が終了したことを表す。次に、領域RL内のi番目のエッジ線を示す変数iに0を設定しステップ1902、生成された複合エッジ線の数を示す変数mに0を設定するステップ1903。そして、iを1だけインクリメントしステップ1904、iをNLLと比較するステップ1905。iがNLL以下であればステップ1905,NO、次に、F[i]の値をチェックするステップ1906。F[i]が1であればステップ1906,YES、ステップ1904以降の処理を繰り返す。F[i]が1でなければステップ1906,NO、F[i]に1を設定しステップ1907、mを1だけインクリメントするステップ1908。次に、m番目の複合エッジ線に含まれるエッジ線の集合を表す統合リストCLLmに、エッジ線LLiを加えるステップ1909。そして、m番目の複合エッジ線の線種TLmとして、エッジ線LLiの線種を設定するステップ1910。次に、領域RL内のn番目のエッジ線を示す変数nにiを設定しステップ2001、nを1だけインクリメントしてステップ2002、nとNLLを比較するステップ2003。nがNLL以下であればステップ2003,NO、エッジ線同士の組み合わせに含まれる一方のエッジ線c1として、エッジ線LLnを選択するステップ2004。また、もう一方のエッジ線c2として、統合リストCLLm内のエッジ線のうち、エッジ線c1の近い側の端点までの距離が最も近いエッジ線を選択するステップ2005。次に、エッジ線c1とエッジ線c2の互いに近い側の端点の間で、Z軸方向奥行き方向の距離DZと、X軸方向奥行き方向と直交する方向の距離DXとを、次式により算出するステップ2006。DZ=|Z2-Z1|Z1=fH/fφy1-cyZ2=fH/fφy2-cy41DX=|X2-X1|x1、y1は、画像の上側に存在するエッジ線の端点の画像座標を表し、x2、y2は、下側に存在するエッジ線の端点の画像座標を表す。式41及び42は、路面座標系と画像座標系の幾何学的関係から求められる。次に、DXを閾値ThDXと比較しステップ2007、DZを閾値ThDZと比較するステップ2008。DXがThDX以下でありステップ2007,YES、DZがThDZ以下であればステップ2008,YES、エッジ線c1及びc2の線種を決定するステップ2009。ここでは、エッジ線c1及びc2のうち画像の下側に存在する方の線種をt1とし、画像の上側に存在する方の線種をt2とする。次に、線種t1が補助線であるか否かをチェックするステップ2010。線種t1が補助線でない場合ステップ2010,NO、t1とt2を比較するステップ2011。そして、t1とt2が一致していればステップ2011,YES、統合リストCLLmにエッジ線c1を追加しステップ2012、F[n]に1を設定してステップ2013、ステップ2002以降の処理を繰り返す。一方、線種t1が補助線である場合はステップ2010,YES、ステップ2012以降の処理を行う。また、DXがThDXより大きい場合ステップ2007,NO、DZがThDZより大きい場合ステップ2008,NO、又はt1とt2が一致しない場合ステップ2011,NOは、ステップ2002以降の処理を繰り返す。次に、nがNLLを超えるとステップ2003,YES、ステップ1904以降の処理を繰り返す。そして、iがNLLを超えるとステップ1905,YES、生成された複合エッジ線の数NCLにmを設定してステップ1911、処理を終了する。こうして得られた統合リストCLLmm=1,2,...,NCLには、左側のm番目の複合エッジ線に含まれる1つ以上のエッジ線が記録され、線種TLmには、左側のm番目の複合エッジ線の線種が記録される。生成された複合エッジ線は、実線の車線区分線の全体、破線の車線区分線の全体、補助線の全体等のエッジ線に対応する。図19及び図20において添え字LをRに置き換えれば、右側の領域RRにおける複合エッジ線を生成する処理のフローチャートが得られる。統合リストCLRmm=1,2,...,NCRには、右側のm番目の複合エッジ線に含まれる1つ以上のエッジ線が記録され、線種TRmには、右側のm番目の複合エッジ線の線種が記録される。例えば、図18の複数のエッジ線からは、図21に示すように、左側の2つの複合エッジ線2101及び2102と右側の2つの複合エッジ線2103及び2104が生成される。図22は、図12の候補線決定処理1203において左側の複合エッジ線から候補線を決定する処理の例を示すフローチャートである。まず、候補線決定部1103は、統合リストCLLmに対応する複合エッジ線を示す変数mに0を設定するステップ2201。そして、候補線に決定される複合エッジ線を示す変数SLに-1を設定しステップ2202、路面座標系のX座標の最小値を表す変数Xminに十分大きな値XGを設定するステップ2203。路面上での距離の単位をメートルとすると、例えば、XGとして100000程度の値を用いることができる。次に、mを1だけインクリメントしステップ2204、mをNCLと比較するステップ2205。mがNCL以下であればステップ2205,NO、統合リストCLLmに含まれるエッジ線の端点のうち最も車両に近い端点p画像中で最も下側にある端点の画像座標をx,yに設定するステップ2206。そして、端点pの路面座標系におけるX座標を次式により算出するステップ2207。次に、Xの絶対値|X|をXminと比較しステップ2208、|X|がXminより小さければステップ2208,YES、Xminに|X|を設定するステップ2209。そして、SLにmを設定してステップ2210、ステップ2204以降の処理を繰り返す。一方、|X|がXmin以上であればステップ2208,NOは、ステップ2204以降の処理を繰り返す。そして、mがNCLを超えるとステップ2205,YES、処理を終了する。こうして、左側の候補線となる複合エッジ線の番号がSLに記録される。図22において添え字LをRに置き換えれば、右側の複合エッジ線から候補線を決定する処理のフローチャートが得られる。そして、右側の候補線となる複合エッジ線の番号がSRに記録される。図23は、図12の補助線判定処理1204において左側の候補線の線種を判定する処理の例を示すフローチャートである。まず、補助線判定部1106は、左側のSL番目の複合エッジ線の線種TLmm=SLが補助線であるか否かを判定するステップ2301。線種TLmm=SLが補助線であればステップ2301,YES、左側の候補線の線種を示すフラグQLに1を設定しステップ2302、線種TLmm=SLが補助線以外であればステップ2301,NO、フラグQLに0を設定するステップ2303。図23において添え字LをRに置き換えれば、右側の候補線の線種を判定する処理のフローチャートが得られる。そして、右側の候補線の線種を示すフラグQRに1又は0が設定される。図24及び図25は、図12の補正量推定処理1205において左側の候補線に対する補正量を求める処理の例を示すフローチャートである。まず、補正量推定部1107は、フラグQLをチェックするステップ2401。QL=0であればステップ2401,YES、候補線は補助線ではなく、車線区分線に該当すると判断できるため、補正量DXLを0に設定してステップ2413、処理を終了する。一方、QL=1であればステップ2401,NO、候補線は補助線であるため、候補線から補助線の幅だけ外側に位置する複合エッジ線の有無を調べる。そこで、そのような条件を満たす外側複合エッジ線の有無を示すフラグULに-1を設定するステップ2402。フラグULの値が-1のとき、条件を満たす外側複合エッジ線が存在しないことを表し、フラグULの値が1以上のとき、条件を満たす外側複合エッジ線が存在することを表す。次に、候補線であるSL番目の複合エッジ線に含まれるエッジ線の端点のうち、最も車両に近い端点の画像座標をxs,ysに設定するステップ2403。そして、その端点の路面座標系におけるX座標Xsを次式により算出するステップ2404。次に、条件を満たす外側複合エッジ線のX座標の範囲を示す最小値Xminを次式により算出するステップ2405。Xmin=|Xs|Mmin62また、その範囲の最大値Xmaxを次式により算出するステップ2406。Xmax=|Xs|Mmax63Mmin及びMmaxは、補助線の幅に基づいて決められる閾値であり、MmaxはMminより大きい。XminからXmaxの範囲に複合エッジ線が存在すれば、その複合エッジ線が条件を満たす外側複合エッジ線に該当する。次に、左側のm番目の複合エッジ線を示す変数mに0を設定しステップ2407、mを1だけインクリメントしてステップ2408、mをNCLと比較するステップ2409。mがNCL以下であればステップ2409,NO、次に、mをSLと比較するステップ2410。m=SLであればステップ2410,YES、m番目の複合エッジ線は候補線と一致するため、ステップ2408の処理に戻って次の複合エッジ線を処理対象に選択する。一方、mがSLでなければステップ2410,NO、m番目の複合エッジ線に含まれるエッジ線の端点のうち、最も車両に近い端点の画像座標をxc,ycに設定するステップ2411。そして、その端点の路面座標系におけるX座標Xc及びZ座標Zcを次式により算出するステップ2412。次に、Xcの絶対値|Xc|をXminと比較しステップ2501、|Xc|がXmin以上であればステップ2501,YES、|Xc|をXmaxと比較するステップ2502。|Xc|がXmax以下であればステップ2502,YES、次に、ULをチェックするステップ2503。UL=-1であればステップ2503,YES、条件を満たす外側複合エッジ線が初めて検出されたことになるので、ULにmを設定するステップ2504。次に、Xuの絶対値|Xu|に|Xc|を設定しステップ2505、ZuにZcを設定してステップ2506、ステップ2408以降の処理を繰り返す。Xu及びZuは、条件を満たす外側複合エッジ線に含まれるエッジ線の端点のうち、最も車両に近い端点のX座標及びZ座標を表す。一方、ULが-1でなければステップ2503,NO、条件を満たす別の外側複合エッジ線が新たに検出されたことになるので、Zcを既に算出されているZuと比較するステップ2507。ZcがZuより小さければステップ2507,YES、新たに検出された外側複合エッジ線が、以前に検出された外側複合エッジ線よりも車両に近い位置に存在することが分かる。そこで、ステップ2504以降の処理を行って、条件を満たす外側複合エッジ線の情報UL、|Xu|、及びZuを更新する。一方、ZcがZu以上であればステップ2507,NO、新たに検出された外側複合エッジ線が、以前に検出された外側複合エッジ線よりも車両から遠い位置、又は以前に検出された外側複合エッジ線と同じ距離の位置に存在することが分かる。この場合、条件を満たす外側複合エッジ線の情報を更新することなく、ステップ2408以降の処理を繰り返す。また、|Xc|がXminより小さい場合ステップ2501,NO、又は|Xc|がXmaxより大きい場合ステップ2502,NOは、m番目の複合エッジ線が条件を満たさないことが分かる。そこで、ステップ2408の処理に戻って次の複合エッジ線を処理対象に選択する。そして、mがNCLを超えるとステップ2409,YES、ULをチェックするステップ2414。UL=-1であればステップ2414,YES、条件を満たす外側複合エッジ線が検出されなかったため、処理を終了する。ULが-1でなければステップ2414,NO、条件を満たす外側複合エッジ線が検出されたため、補正量DXLを次式により算出するステップ2415。DXL=|Xu|-|Xs|66図24及び図25において添え字LをRに置き換えれば、右側の候補線に対する補正量を求める処理のフローチャートが得られ、補正量DXRが求められる。求められた補正量DXL及びDXRは、格納部1108に格納される。これらの補正量は、道路中央から外側への向きを正の向きとするシフト量を表している。図12の道路形状推定処理1206において、道路形状推定部1104は、左側の候補線であるSL番目の複合エッジ線と、右側の候補線であるSR番目の複合エッジ線に基づいて、道路形状パラメータを推定する。道路形状パラメータは、例えば、上述した式9を用いて推定することができる。画像の左上の点を画像座標系の原点として式9を書き改めると、次式が得られる。式71は非線形式であるため、これを道路形状パラメータW,ρ,e,θ,φに関して線形式になるように近似し、線形近似式を用いて最小二乗法で各パラメータを求める計算方法が考えられる。この計算方法では、誤差が閾値以下になるまで演算を繰り返す、いわゆる繰り返し演算によって、道路形状パラメータの推定値Wr,ρr,er,θr,φrが求められる。左側又は右側の候補線に含まれるj番目のエッジ点j=1,2,...,NEの画像座標をxj,yjとし、式71の右辺をFW,ρ,e,θ,φと記し、各パラメータを以下のように記す。W=W0ΔWρ=ρ0Δρe=e0Δeθ=θ0Δθφ=φ0Δφ72NEは、候補線に含まれるエッジ点の数を表し、W0,ρ0,e0,θ0,φ0は各パラメータの初期値を表し、ΔW,Δρ,Δe,Δθ,Δφは各パラメータの微小変化量を表す。FW,ρ,e,θ,φは非線形関数であるが、これを式72を用いて線形化した関数Jは、次式で与えられる。ここで、残差sjを次式のように定義する。残差sjの二乗値を、フレーム内のすべての車線区分線上のエッジ点j=1,2,...,NEで積分した結果の1/2を総残差Sとする。最適パラメータはSを最小にする値なので、Sを各パラメータで偏微分した結果を0と置く。例えば、SをWで偏微分した結果を0と置くと、次式が得られる。他のパラメータについても同様の偏微分操作を行うことで、次式が得られる。式77及び78の連立方程式は、次式のように記述することができる。この連立一次方程式を解くことで、ΔW,Δρ,Δe,Δθ,Δφが求められる。そして、各パラメータの値が十分小さくなるまで、次式の代入操作を行って演算を繰り返す。このような繰り返し演算により、最終的な道路形状パラメータWr,ρr,er,θr,φrが求められる。ここで、左側のSL番目の複合エッジ線に含まれるエッジ点eLjj=1,2,...,NELの画像座標をxLj,yLjとし、右側のSR番目の複合エッジ線に含まれるエッジ点eRjj=1,2,...,NERの画像座標をxRj,yRjとする。NELは、SL番目の複合エッジ線に含まれるエッジ点の数を表し、NERは、SR番目の複合エッジ線に含まれるエッジ点の数を表す。SL番目の複合エッジ線に含まれるエッジ点の集合ELは{eL1,eL2,...,eLNEL}と記述され、SR番目の複合エッジ線に含まれるエッジ点の集合ERは{eR1,eR2,...,eRNER}と記述される。このとき、道路形状推定処理の手順は、以下のようになる。1.W0,ρ0,e0,θ0,φ0を現在の値に初期化する。2.R11=R12=R13=R14=R15=R16=0R21=R22=R23=R24=R25=R26=0R31=R32=R33=R34=R35=R36=0R41=R42=R43=R44=R45=R46=0R51=R52=R53=R54=R55=R56=03.tgt=-14.tgt=tgt15.iftgt==0thenエッジ集合E=EL,NE=NEL,k=-1elseiftgt==1thenエッジ集合E=ER,NE=NER,k=1elsegoto13endif6.j=07.j=j18.ifj>=NEthengoto4endif9.エッジ集合Eからj番目の要素であるエッジ点の位置xj,yjを取得する。10.式73及び75からaj,bj,cj,dj,ej,fjを算出する。11.R11=ajaj,R12=ajbj,R13=ajcj,R14=ajdj,R15=ajej,R16=ajfj,R21=bjaj,R22=bjbj,R23=bjcj,R24=bjdj,R25=bjej,R26=bjfj,R31=cjaj,R32=cjbj,R33=cjcj,R34=cjdj,R35=cjej,R36=cjfj,R41=djaj,R42=djbj,R43=djcj,R44=djdj,R45=djej,R46=djfj,R51=ejaj,R52=ejbj,R53=ejcj,R54=ejdj,R55=ejej,R56=ejfj12.goto713.連立方程式79の解を数値計算により求める。14.解の収束性を検査する。if|ΔW|>ThRor|Δρ|>ThRor|Δe|>ThRor|Δθ|>ThRor|Δφ|>ThRthengoto2elseWr=W0,ρr=ρ0,er=e0,θr=θ0,φr=φ0endif15.終了ThRは解の収束性を評価するための微小な閾値である。このような道路形状推定処理により、道路形状パラメータWr,ρr,er,θr,φrが求められる。図12の道路形状補正処理1207において、補正部1105は、格納部1108に格納された補正量DXL及びDXRを用いて、次式により道路形状パラメータWr,ρr,er,θr,φrを補正する。Wr=WrDXLDXRer=er-DXLDXR/291以上説明した道路形状パラメータの計算式1~91は一例に過ぎず、別の座標系、別の前提条件等に基づいて異なる定式化を行っても構わない。また、図10、図12、図13、図19、図20、及び図22-図25に示した各フローチャートは一例に過ぎず、道路形状推定装置の構成や条件に応じて一部の処理を省略又は変更してもよい。図26は、道路形状推定装置を用いた車線逸脱警報システムの構成例を示している。図26の車線逸脱警報システムは、カメラ1201、道路形状推定装置2601、距離計算装置2602、逸脱判定装置2603、及び逸脱警報装置2604を含む。道路形状推定装置2601の動作は上述した通りである。距離計算装置2602は、道路形状推定装置2601から出力される道路形状パラメータに基づいて、車両と左右の車線区分線との距離を計算する。逸脱判定装置2603は、計算された距離を閾値と比較して、車両が車線を逸脱したか否かを判定する。逸脱警報装置2604は、車両が車線を逸脱した場合に警報を出力する。これにより、運転者は、直ちに車両を操舵して車線に戻すことが可能になる。図27は、道路形状推定装置を用いた車両操舵システムの構成例を示している。図27の車両操舵システムは、カメラ1201、道路形状推定装置2601、距離計算装置2602、ふらつき判定装置2701、及び車両操舵装置2702を含む。ふらつき判定装置2701は、距離計算装置2602により計算された距離を閾値と比較して、車両がふらついているか否かを判定する。車両操舵装置2702は、車両がふらついている場合に、車線上での走行を維持するように車両を自動操舵して、車両のふらつきを解消する。これにより、車線からの逸脱を未然に防止することが可能になる。図9、図11、図26、及び図27の道路形状推定装置は、例えば、図28に示すような情報処理装置コンピュータを用いて実現可能である。図28の情報処理装置は、映像入力部1101、CentralProcessingUnitCPU2801、メモリ2802、出力部2803、外部記憶装置2804、媒体駆動装置2805、及びネットワーク接続装置2806を備える。これらはバス2807により互いに接続されている。メモリ2802は、例えば、ReadOnlyMemoryROM、RandomAccessMemoryRAM、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。例えば、CPU2801は、メモリ2802を利用してプログラムを実行することにより、道路形状推定装置の処理を行う。メモリ2802は、図9の格納部915又は図11の格納部1108としても使用できる。映像入力部1101は、カメラからの映像信号を取り込み、時系列な画像としてメモリ2802に格納する。出力部2803は、例えば、外部装置とのインタフェースであり、道路形状パラメータを含む処理結果の出力に用いられる。外部記憶装置2804は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。この外部記憶装置2804には、ハードディスクドライブも含まれる。情報処理装置は、外部記憶装置2804にプログラム及びデータを格納しておき、それらをメモリ2802にロードして使用することができる。媒体駆動装置2805は、可搬型記録媒体2808を駆動し、その記録内容にアクセスする。可搬型記録媒体2808は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体2808には、CompactDiskReadOnlyMemoryCD-ROM、DigitalVersatileDiskDVD、UniversalSerialBusUSBメモリ等も含まれる。ユーザ又はオペレータは、この可搬型記録媒体2808にプログラム及びデータを格納しておき、それらをメモリ2802にロードして使用することができる。このように、各種処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ2802、外部記憶装置2804、及び可搬型記録媒体2808のような、物理的な非一時的な記録媒体が含まれる。ネットワーク接続装置2805は、通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置2805を介して受け取り、それらをメモリ2802にロードして使用することもできる。なお、情報処理装置が図28のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置が可搬型記録媒体2808にアクセスしない場合は、媒体駆動装置2805を省略してもよく、情報処理装置が通信ネットワークに接続されない場合は、ネットワーク接続装置2805を省略してもよい。開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。"