(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0057】
1.第1の実施形態
1.1機能ブロック図
図31に、この発明の一実施形態による道路特徴補正装置の機能ブロック図を示す。この実施形態では、道路特徴補正装置は、道路形状などによって推定された中心線を含む道路特徴データを補正するものである。
【0058】
走行データ取得手段102は、実際に走行した複数の自動車などの走行軌跡を含む走行データを取得する。グループ化手段104は、複数の自動車の走行軌跡線を、近接するもの同士でグループ化する。さらに、各グループについて、前記中心線との距離に基づいて、前記中心線と関連するかどうかを付与する。中心線補正手段106は、前記各グループが中心線と関連するかどうかに基づいて、前記中心線の本数を補正する。
【0059】
このようにして、道路形状などによって推定された中心線を、実際に走行した自動車などの走行軌跡によって補正し、より正確なものとすることができる。
【0060】
1.2ハードウエア構成
図32に、道路特徴決定装置のハードウエア構成を示す。CPU30には、メモリ32、ディスプレイ34、ハードディスク36、CD−ROMドライブ38、キーボード/マウス40が接続されている。
【0061】
ハードディスク36には、オペレーティングシステム42、道路特徴補正プログラム45が記録されている。道路特徴補正プログラム45は、オペレーティングシステム42と協働してその機能を発揮するものである。
【0062】
これらプログラムは、CD−ROM46に記録されていたものを、CD−ROMドライブ38を介して、ハードディスク36にインストールしたものである。なお、インターネットを介して、サーバ装置(図示せず)からダウンロードしてインストールしたものであってもよい。
【0063】
1.3中心線補正処理
図33〜35に、道路特徴補正プログラム45のフローチャートを示す。CPU30は、道路特徴データのうちの中心線を取得する(ステップS201)。この実施形態では、道路形状に基づいて推定された中心線(道路中心線または車線中心線)を含む道路特徴データを取得するようにしている。ここで、道路中心線とは、たとえば、
図13Aの横断面に示すように、道路幅の中心を結ぶ線をいう。また、車線中心線とは、
図13Dの横断面に示すように、車線の中心を結ぶ線をいう。道路特徴データは、たとえば、CD−ROMに記録されたものを取得すればよい。
【0064】
さらに、CPU30は、実際に自動車などが、当該道路を走行したときの走行データを取得する。補正処理のためには、多数の車の走行データがあることが好ましい。この実施形態においては、走行データには、走行軌跡(GPS受信機によって取得した各時刻における走行位置のデータ群)、各時刻におけるハンドル操作の有無およびステアリング角、各時刻におけるブレーキ操作の有無などの情報が含まれる。走行データは、GPS受信機や自動車に搭載された計測機器によって記録されたもの(CANデータなど)を用いることができる。
【0065】
次に、CPU30は、走行軌跡の点データを接続して、走行軌跡線を生成する(ステップS203)。たとえば、
図36Aに示すように、走行軌跡点Pa、Pb、Pc・・・を接続して、走行軌跡線L3を生成する。同様にして、走行軌跡線L1、L2なども生成する。
図36Aにおいては、3つの走行軌跡線のみが示されているが、多数の走行軌跡線が生成されることになる。
【0066】
CPU30は、生成した走行軌跡線について、推定された中心線Cと関連するかどうかを判断する。走行軌跡線の走行軌跡点と、中心線Cとの垂直距離を所定範囲にわたって平均した平均距離を求める。
図37に、走行軌跡線Lと中心線Cの垂直距離の平均の算出方法を示す。走行軌跡点Pf、Pg、Pnと中央線Cとの垂直距離d1、d2・・・diの平均値を算出することで、垂直距離の平均値を算出する。
【0067】
さらに、CPU30は、この垂直距離の平均値が所定距離内(たとえば、車線幅の半分である1.5m以内)にあれば、中央線Cと関連ありという属性を付す。垂直距離の平均値が所定距離より大きければ、中央線Cと関連なしという属性を付す。
図36Aの場合であれば、走行軌跡線L1、L3は関連なし、走行軌跡線L2は関連ありとの属性が付される。
【0068】
図36Bのように、走行軌跡線L5が、2つの中央線C1、C2に関連ありとされる場合もある。
【0069】
次に、CPU30は、複数の走行軌跡線の塊を見いだしこれをグループ化する(ステップS204)。たとえば、
図36Cに示す場合であれば、グループG1とG2を生成する。以上の処理を、全ての走行軌跡について行う。
【0070】
次に、CPU30は、各グループに含まれる走行軌跡線の数を計数する(ステップS207)。走行軌跡線の数(全体の走行軌跡線の数に対する割合でもよい)が所定値より少ない場合には、サンプルデータがすくないので、このグループのデータは補正に用いない(ステップS208)。
【0071】
所定値以上の場合には、当該グループの属性を判断する(ステップS209)。まず、中心線と関連しない場合には、その位置に別の中心線があると判断できる。したがって、CPU30は、ステップS210〜S212にて、新たな中心線を生成する。
【0072】
まず、CPU30は、グループに属する走行軌跡線につき、直線部における中央線を算出する。たとえば、
図38Aに示すように、走行軌跡線があったとする。この走行軌跡線につき、
図38Bに示すように、所定間隔の横断面PSを設定する。さらに、横断面PSと走行軌跡線との交点を仮想点IPとして求める(ステップS210)。さらに、CPU30は、
図38Cに示すように、すべての仮想点IPを囲うことのできる最大の矩形LCを設定する(ステップS211)。この矩形LCの中央の直線DCを中心線とする(ステップS212)。
【0073】
さらに、CPU30は、
図38Dに示すように、直線部においては、生成した中心線DCに重なるように既に存在する中心線Cをスライドさせる。なお、曲線部においては、そのままスライドさせると曲率等の整合性がとれなくなるので、縮小(拡大)を行って適切な曲率となるようにしてスライドさせる。
【0074】
ステップS209において、グループが2つ以上の中心線と関連する場合には、本来一つであるべき中心線が複数個推定されていると判断される。したがって、CPU30は、ステップS213〜S217にて、中心線を1つに絞り込む。
【0075】
この場合も、
図38A〜
図38Dのようにして、新たな中心線DCを生成する(ステップS213〜S216)。さらに、CPU30は、関連づけられているもとの中心線を削除する。このようにして、中心線の数と位置を補正することができる。
【0076】
なお、新たな中心線を生成するのではなく、
図38Cのように生成した中心線DCに最も近い中心線だけを残して、グループ内の他の中心線は削除するようにしてもよい。
【0077】
ステップS209において、グループが1つの中心線とのみ関連づけられている場合には、中心線が正しく推定されていると判断して、特段の処理を行わない。なお、
図38A〜
図38Dの処理により、新たな中心線を生成し、元の中心線を削除するようにしてもよい。
【0078】
1.4その他
(1)上記実施形態では、走行データをCD−ROMなどから取得するようにしている。しかし、インターネットなどを介してサーバ装置から取得するようにしてもよい。
【0079】
(2)上記実施形態では、道路特徴方正装置をスタンドアローンのPCとして構成している。しかし、サーバ装置として構成してもよい。この場合、補正対象となる道路特徴データ(中心線データを含む)は、インターネットなどを介して接続された端末装置から、道路特徴補正装置であるサーバ装置に送信するようにすればよい。また、補正された道路特徴データは、サーバ装置から端末装置に対して送信する。
【0080】
(3)上記実施形態では、道路を走行する自動車を対象として説明した。しかし、自動二輪車、原動機付き自転車など、動力によって移動する自走移動体全般に適用することができる。さらに、自転車や人体など動力を持たない移動体にも適用することができる。他の実施形態においても同様である。
【0081】
(4)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施することが可能である。
【0082】
2.第2の実施形態
2.1機能ブロック図
図39に、この発明の一実施形態による道路特徴補正装置の機能ブロック図を示す。この実施形態では、道路特徴補正装置は、道路形状などによって推定された中心線を含む道路特徴データを補正するものである。
【0083】
走行データ取得手段102は、実際に走行した複数の自動車などの走行軌跡やステアリング角度、速度などを含む走行データを取得する。クロソイド曲線開始位置算出手段108は、複数の自動車の走行データに示されたステアリング開始の最頻位置をクロソイド曲線開始位置として算出する。クロソイド曲線補正手段110は、算出したクロソイド曲線開始位置に基づいて、推定されたクロソイド曲線を補正する。
【0084】
このようにして、道路形状などによって推定された中心線におけるクロソイド曲線を、実際に走行した自動車などの走行軌跡によって補正し、より正確なものとすることができる。
【0085】
2.2ハードウエア構成
この実施形態における道路特徴補正装置のハードウエア構成は、
図31と同様である。
【0086】
2.3クロソイド曲線補正処理
図40、41に、道路特徴補正プログラム45のフローチャートを示す。ここでは、走行データについて、たとえば、
図33の手法によって、グループ化、中心線との関連の付与がなされているものとする。
【0087】
CPU30は、補正する対象となる中心線を選択する(ステップS221)。マウスなどによって、クロソイド部を含むカーブ部分とその両端の直線部を選択する。ユーザの操作によって選択してもよいし、CPU30が、所定の規則によって自動的に選択するようにしてもよい。CPU30が自動的に選択する場合には、クロソイド部を含むカーブ部分とその両端の直線部の所定長さ(たとえば5mなど)の範囲を選択する。
【0088】
次に、前記対象中心線に関連するグループにおける走行軌跡線の数(または全走行軌跡線数に対する割合)が、所定値を超えているかどうかを判断する(ステップS223)。所定値を超えていなければ、当該グループの走行軌跡線に基づく補正処理を行わない。走行軌跡線の数が少ないと、信頼のおける補正ができないからである。
【0089】
所定値を超えていると、当該グループの走行データに基づいて、クロソイド曲線の補正を行う。
図42に、カーブ付近において推定された中心線の構造を示す。直線部LIN1、クロソイド曲線部CRS1、円弧部CR、クロソイド曲線部CRS2、直線部LIN2が連続している。CSP1、CSP2はクロソイド曲線の開始点、CEP1、CEP2はクロソイド曲線の終了点である。クロソイド曲線は、徐々に曲率半径が小さくなる曲線であり、緩和曲線とも呼ばれている。カーブ区間の入り口と出口においてクロソイド曲線があるため、カーブにおいてハンドルをゆっくりと切って曲がることができるように設計されている。
【0090】
CPU30は、当該グループの走行データにおいて、カーブ区間の平均走行スピード(クロソイド区間CRS1、CRS2、円弧区間CRの平均走行スピード)を算出する(ステップS225)。CPU30は、それぞれの走行データについて、カーブ区間の平均スピードが、この区間の全走行データの中央値前後の所定範囲に入っているかどうかを判断する(ステップS226)。入っていなければ、当該走行データを補正に用いない。異常値である可能性が高いからである。
【0091】
範囲内に入っていれば、CPU30は、走行データから、カーブ区間に入る前のステアリング開始位置、ブレーキング開始位置を算出する(ステップS227)。ステアリング開始位置の算出は、以下のようにして行う。まず、グループ内の各走行データにおいて、ステアリング開始位置(ステアリング角度が所定値(たとえば2度)を超えた位置)の直線部における進行方向の位置(図においてはX座標)を取得する。これを、グループ内の全ての走行データについて行う。これにより、
図43に示すように、直線部の進行方向に所定間隔の区間をとることで、いずれの区間で一番多くステアリング開始がなされたかを知ることができる(ステップS229)。なお、この実施形態では、カーブ区間に入ってからステアリングが開始された場合であっても、直線部の進行方法(X座標)にて、ステアリング開始位置を取得するようにしている。
【0092】
ステアリング開始の最頻X座標に対応する、推定された中心線C(または補正された中心線C)上の点を、ステアリング開始位置ACSP1とし、中心線Cの属性として記録する(ステップS230)。ブレーキング開始位置についても、上記と同様にして、中心線Cの属性として記録する。
【0093】
次に、CPU30は、上記と同様にして、第2のクロソイド曲線CRS2におけるステアリング終了位置(ステアリング角度が所定値(たとえば2度)以下になった位置)の最頻値に対応するX座標を算出し、中心線C上にステアリング終了位置ACEP2(図示せず)を決定する。このステアリング終了位置ACEP2についても、上記と同様にして、中心線Cの属性として記録する。
【0094】
これらの位置情報は、自動運転や運転補助制御を行う際に、ハンドルの切り始めやブレーキ開始を制御するために用いることができる。
【0095】
なお、ステアリングの開始点ACSP1は、本来ならば、第1クロソイド曲線CSR1の開始点CSP1と合致するはずである。同様に、ステアリング終了点ACEP2は、第2クロソイド曲線CSR2の終了点CEP2と合致するはずである。しかし、
図48に示すように、道路形状から推定したクロソイド曲線の開始点CSP1と、ステアリング開始点ACSP1等にずれが生じる場合も多い。推定したクロソイド曲線の開始点CSP1や終了点CEP2が正確ではなかった可能性がある。そこで、この実施形態では、以下の処理により、実測によって決定したステアリング開始位置ACSP1、ステアリング終了位置ACEP2に基づいて、推定したクロソイド曲線を修正する。
【0096】
図44〜46に、道路特徴補正プログラム45のフローチャートを示す。ここでは、上記で算出したステアリング開始位置ACSP1、ステアリング終了位置ACEP2に基づいて、カーブにおける中心線を修正する処理を説明する。
【0097】
CPU30は、走行データによって示される各車両の走行軌跡線と、所定間隔の横断面との交点である仮想点を生成する(ステップS231)。この処理は、
図38Cにて説明した処理と同様である。CPU30は、複数の車両について生成した仮想点群を用いて、
図47Aに示すように、最小二乗法により近似曲線KLを求める(ステップS232)。この近似曲線は、多くの車両の実際の走行軌跡から導かれた中心線であるということができる。なお、最小二乗法以外の方法によって、近似曲線を求めるようにしてもよい。
【0098】
次に、CPU30は、
図47Bに示すように、生成した近似直線KLに対し、RANSAC法を適用し、カーブ形状に沿う円KCRを生成し、その半径R’を記録する(ステップS233)。なお、円の推定方法は、RANSAC法以外の方法を用いてもよい。
【0099】
次に、CPU30は、
図48に示すように、道路形状によって推定された中心線Cのステアリング開始位置ACSP1とクロソイド曲線CSP1のX座標方向のずれaを算出する(ステップS238)。ここで、X座標方向は、中心線Cの直線部の方向である。CPU30は、このずれを補正値aとして、クロソイド曲線の修正を行う(ステップS239)。
【0100】
ステップS239の詳細を、
図46に示す。CPU30は、クロソイド曲線の開始位置CSP1を補正値aだけずらし、ステアリング開始位置ACSP1に合致させる(ステップS253)。
図49に示すように、形状から推定された道路特徴データにおけるクロソイド曲線のXパラメータ(X値)はXである。開始点が移動するので、これを補正値aによって補正しX’(ここではX+aとなる)とする。
【0101】
クロソイド曲線は、直線、クロソイド曲線開始位置、Xパラメータ、クロソイド終了位置の曲率半径が分かれば、描くことができる。今、直線は第1直線LIN1であり(
図42参照)、クロソイド曲線開始位置はステアリング開始位置ACSP1として決定され、XパラメータはX’として算出され、クロソイド終了位置の曲率半径は円KCRの半径R’(
図47B参照)として決定される。したがって、CPU30は、これらに基づいて第1クロソイド曲線CSR1(
図42参照)を生成する(ステップS254)。
【0102】
次に、CPU30は、生成した第1クロソイド曲線CSR1に、ステップS233で生成した円を接続する(ステップS255)。つまり、円弧の中心位置を決定する。
【0103】
さらに、CPU30は、円弧CRを構成する円、第2直線LIN2が決まっているので、これを結ぶ第2クロソイド曲線CRS2(
図42参照)を生成する(ステップS256)。
【0104】
上記のようにして、
図49Bに示すような修正された中心線Cを得ることができる。
図49Bにおいて、CSP1は第1クロソイド曲線の開始位置であり(すなわち、ステアリング開始位置ACSP1)、CEP2は第2クロソイド曲線の終了位置である。
【0105】
次に、CPU30は、このようにして修正した中心線Cの第2クロソイド曲線の終了位置CEP2と、カーブを抜けた時のステアリング終了位置ACEP2のX座標方向の誤差を新たな補正値aとする(ステップS257)。
【0106】
続いて、CPU30は、第2クロソイド曲線の終了位置CEP2と、カーブを抜けた時のステアリング終了位置ACEP2が合致しているかどうかを判断する(ステップS252)。所定範囲内の誤差に収まっていれば合致していると判断するようにしている。
【0107】
合致していなければ、ステップS257において生成した補正値aに基づいて、第1クロソイド曲線の開始位置CSP1(つまりステアリング開始位置ACSP1)はそのままにして、パラメータXの値を補正値aに基づいて、クロソイド終了位置CEP2とステアリング終了位置ACEP2が合致する方向に補正する(ステップS253)。以下、補正されたX’に基づいて、ステップS254以下の処理を実行する。
【0108】
ステップS252において、第2クロソイド曲線の終了位置CEP2とステアリング終了位置ACEP2が合致(所定値以下の誤差)していれば、CPU30は、ループ2の処理を終了する。
【0109】
このようにして得られた、カーブ近傍の中心線Cは、クロソイド曲線の開始位置と終了位置が、ステアリング開始位置ACSP1、ステアリング終了位置ACEP2に合致するように補正されたものとなる。
【0110】
次に、CPU30は、このようにして修正されたカーブの中心線Cと、
図47Aにおいて算出した走行軌跡KLとの合致性を判断する(ステップS240)。たとえば、
図49Cに示すように、両者の誤差が大きい場合には、中心線Cの形状として適切とはいえないからである。
【0111】
CPU30は、補正した中心線Cと走行軌跡KL(
図47A参照)との合致度を、
図37に示す手法にて、両者の距離(所定間隔の横断面における距離)の合計(絶対値)を算出することで判断している。つまり、この合計値が所定値以下であれば合致していると判断する。
【0112】
両者が所定の誤差内で合致していれば、CPU30は、修正したカーブの中心線Cを決定する。
【0113】
合致していない場合、CPU30は、
図49Cにおける中央線Cと走行軌跡KLとの誤差の平均値(所定間隔の横断面における誤差の平均値)を算出する(ステップS241)。この平均値は、絶対値ではなく、符号も含めて平均をとるようにしている。CPU30は、この平均値にしたがって、両者が合致する方向に、クロソイド曲線の開始位置CSP1、終了位置CEP2を移動させる(ステップS242)。なお、直線上もしくは直線の延長線上に移動を行うようにする。このように開始位置CSP1、終了位置CEP2を移動し、再び、ステップS236以下を実行する。以上の処理を繰り返し、適切なクロソイド曲線を見いだす。
【0114】
2.4その他
(1)上記実施形態では、中央線Cの属性として、
図42に示す、ステアリング開始位置CSP1、終了位置CEP2、ブレーキ開始位置(図示せず)を記録するようにしている。
【0115】
しかし、ステアリング変化終了位置CEP1、ステアリング変化開始位置CSP2も属性として記録するようにしてもよい。
【0116】
(2)上記実施形態では、方向変更操作の例として、自動車におけるステアリング操作を用いている。しかし、自動二輪車などのハンドル操作などを方向変更操作として用いて適用してもよい。他の実施形態において同様である。
【0117】
(3)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施することが可能である。
【0118】
3.第3の実施形態
3.1機能ブロック図
図50に、この発明の一実施形態による道路特徴補正装置の機能ブロック図を示す。この実施形態では、道路特徴補正装置は、道路形状などによって推定された中心線を含む道路特徴データを補正するものである。
【0119】
走行データ取得手段102は、実際に分岐部や交差部を走行した複数の自動車などの走行軌跡やステアリング角度、速度などを含む走行データを取得する。グループ化手段112は、前記複数の走行データに示された走行軌跡線をグループ化する。中心線補正手段114は、グループ化した走行軌跡線に基づいて代表走行軌跡線を生成し、これに基づいて分岐部や交差部の中心線を補正する。
【0120】
このようにして、道路形状などによって推定された分岐部や交差部の中心線を、実際に走行した自動車などの走行軌跡によって補正し、より正確なものとすることができる。たとえば、実施形態1〜3などによって補正が行われていない部分や、道路形状に基づく中心線の推定などがなされていない箇所を、補正対象部分とすることができる。
【0121】
3.2ハードウエア構成
この実施形態における道路特徴補正装置のハードウエア構成は、
図31と同様である。
【0122】
3.3分岐部・交差部における中心線補正処理
図51〜53に、道路特徴補正プログラム45のフローチャートを示す。この実施形態では、推定された道路特徴データの分岐部や交差部における中心線の補正を行う。
【0123】
CPU30は、補正する対象となる分岐部・交差部を選択する(ステップS281)。ユーザの操作によって選択してもよいし、CPU30が、所定の規則によって自動的に選択するようにしてもよい。
【0124】
続いて、CPU30は、選択された対象箇所の走行データを取得する(ステップS282)。CPU30は、選択した対象箇所が、交差部(交差点)であるかどうかを判断する(ステップS283)。たとえば、道路が4本以上接合していれば交差部であると判断する。
【0125】
CPU30は、交差部の中央線において、交差部に入る方向に車両が動く車線と、交差部から出る方向に車両が動く車線のそれぞれに、インデックスを付与する(ステップS284)。たとえば、
図54Aに示すように、各車線にインデックスを付す。
【0126】
次に、CPU30は、各車線の中心線から所定の距離内(
図55A参照、概ね当該車線内であることが好ましい)にある走行軌跡線のそれぞれに対し、インデックスを与える(ステップS286)。たとえば、IN1から交差部に入って、左折し、OUT9に走行した軌跡の場合には、IN1−OUT9が付される。
【0127】
CPU30は、上記において、INのインデックスが付されていない走行軌跡線を抽出する(
図54A参照)。これは、例えば、
図55Aに示すように、右折レーンが設けられている場合に生じる。CPU30は、このようなINのインデックスが付されていない走行軌跡に基づいて、最小二乗法により、右折レーンの中央線を生成する(
図55B参照)。なお、最小二乗法以外の方法によって近似曲線を求めてもよい。以下の処理の詳細を説明する。また、この実施形態では、右折レーン(右折専用車線)について説明しているが、国や法規により左折レーン(左折専用車線)がある場合には、同様に適用することができる。
【0128】
まず、車線中心線の一定の範囲から外れた場所を特定する(ステップS291)。一定の範囲から外れた場所の最頻位置(範囲内から範囲外に変化した軌跡の数が最も多い位置)を算出する(ステップS292)。進行方向に対して、最頻位置以降の走行軌跡に基づいて、右折レーンの中央線C5を生成する(たとえば、
図38Cの手法にて行うことができる)(ステップS293)。
【0129】
次に、最小二乗法により近似曲線を生成し、中央線C5と元の中央線C1とを接続する(ステップS294)。さらに、この近似曲線に基づいて、クロソイド曲線を生成する(ステップS295)。なお、生成した右折レーンにもインデックスが与えられる。したがって、
図54Bに示すように、インデックスが付されることになる。なお、近似曲線は、最小二乗法以外の方法によって生成してもよい。
【0130】
次に、CPU30は、同じインデックスが付された走行軌跡線をグループ化する(ステップS297)。さらに、これらに基づいて、最小二乗法により、近似曲線を生成する(ステップS298)。生成した近似曲線を既にある中心線Cと接続するため、近似直線の不要な部分を削除する(ステップS299)。
【0131】
たとえば、IN8−OUT1としてグループ化された走行軌跡線からは、
図56Aに示すような修正された中心線C’を得ることができる。CPU30は、他のグループについても同様の処理を行う。
【0132】
一方、ステップS290において、交差部ではなく分岐部であると判断した場合、CPU30は、ステップS300以下を実行する。
【0133】
CPU30は、ステップS300において、分岐部における複数の走行軌跡につき、所定間隔の横断面を設定し、走行軌跡と横断面が接する仮想点を生成する。この仮想点に基づいて、最小二乗法により走行軌跡KJ(
図56B)を生成する(ステップS301)。生成した走行軌跡により、分岐の開始点と終了点が判明する。さらに、この近似線KJに基づいて、2つの中心線Cを接続するクロソイド曲線CRを生成する(ステップS302)。なお、近似曲線は、最小二乗法以外の方法によって生成してもよい。
【0134】
以上のようにして、実際の走行軌跡に基づき、交差部や分岐部の中心性を補正することができる。
【0135】
3.4その他
上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施することが可能である。
【0136】
4.第4の実施形態
4.1機能ブロック図
図57に、この発明の一実施形態による道路特徴補正装置の機能ブロック図を示す。この実施形態では、道路特徴補正装置は、道路形状などによって推定された中心線を含む道路特徴データを補正するものである。
【0137】
記録部120には、道路特徴データが記録されている。道路特徴データは、道路形状や実際に走行したデータなどに基づいて、生成・補正されたデータである。参照手段122は、道路特徴データの補正(生成を含む)を行いたい道路部分の特徴(カーブの曲率、バンク角など)と類似する特徴を有する他の道路部分であって、既にデータを有する部分を参照部分として特定する。
【0138】
中心線補正手段114は、当該補正を行いたい部分の道路特徴データを、上記見いだした参照部分の特徴に基づいて補正する。
【0139】
このようにして、他の部分の道路特徴データを用いて、中心線などの道路特徴データを補正し、より正確なものとすることができる。なお、ここで補正とは、もともとあるデータを修正する場合だけでなく、データが無い場合これを生成する場合も含む概念である。
【0140】
4.2ハードウエア構成
この実施形態における道路特徴補正装置のハードウエア構成は、
図31と同様である。
【0141】
4.3中心線の補正
図58に、道路特徴補正プログラム45のフローチャートを示す。この実施形態では、道路特徴データのうちの中心線を、補正する処理を行う。
【0142】
CPU30は、補正する対象となる中心線を選択する(ステップS351)。ユーザの操作によって選択してもよいし、CPU30が、所定の規則によって自動的に選択するようにしてもよい。なお、所定の範囲にわたって選択する。
【0143】
次に、CPU30は、補正対象箇所を、直線部、クロソイド部、円弧部によって分割する(ステップS352)。たとえば、
図59Aのような箇所であれば、直線部L、クロソイド部CR、円弧部CC、クロソイド部CR、直線部Lに分割される。また、
図59Bのような箇所であれば、直線部L、クロソイド部CR、クロソイド部CR、直線部Lに分割される。
【0144】
続いて、他の道路部分における道路特徴データを取得し、類似度の判定を行う(ステップS354)。この実施形態では、大きく3つの観点から類似度を判定するようにしている。
【0145】
まず、平面的(道路を上から見た図)な中心線の形状類似性を判断する。その前提として、上記の区分が合致しているかどうかを判断する。たとえば、
図60Aのようにクロソイド部、円弧部、クロソイド部と連続している場合、
図60B、
図60Cのように同じようにクロソイド部、円弧部、クロソイド部が連続している箇所を抽出する。さらに、抽出したものにつき、回転などを施して比較し、図形としての類似度を判定する。
【0146】
次に、縦断面における中心線の形状類似性を判断する(
図61参照)。なお、縦断面は、カーブ部分においては、そのカーブの中心線に沿った縦断面とする。これも、図形としての類似度にて判定する。
【0147】
さらに、横断面の形状の類似性を判断する。たとえば、
図62Aと
図62Bの中心線が存在する道路の特徴を比較する場合、L、CR、CC、CR、Lのそれぞれの区分において、同じ数の横断面を設定する。たとえば、
図62Aの円弧部分CCと、
図62Bの円弧部分を比較する場合、両区分において同じ数だけの横断面を設定する。この横断面における道路表面の形状の類似性を判断する。他の部分についても同様である。
【0148】
CPU30は、上記3つ全ての場合において、所定の基準を設けて類似度を算出する。類似度が所定値以上であれば、類似する道路特徴を有するものとして記録する(ステップS356)。これを、繰り返すことで、類似する道路特徴を有する部分を記録していくことができる。
【0149】
CPU30は、上記のようにして抽出した類似する道路部分があるかどうかを判断する(ステップS358)。あれば、最も類似度の高い道路部分の中心線を用いて、補正対象部分の補正を行う(ステップS359)。たとえば、類似度の高い道路部分の中心線にあわせて、補正対象部分のクロソイド開始位置などを修正することができる。また、補正対象部分に中央線がない場合であっても、類似度の高い道路部分の中心線を参照して、生成することができる。
【0150】
4.4その他
(1)上記実施形態では、中心線の補正を行うようにしている。しかし、車線数、道路幅等の他の道路特徴を補正するようにしてもよい。
【0151】
(2)上記実施形態および変形例は、その本質に反しない限り、他の実施形態と組み合わせて実施することが可能である。
【0152】
5.第5の実施形態
5.1全体構成
図1に、この発明の第5の実施形態による道路特徴決定装置の機能ブロック図を示す。
【0153】
この実施形態における道路特徴決定装置は、道路上を走行しながら計測された表面点による三次元計測データを受けて、道路端部および道路中心の決定を行う。
【0154】
横断面設定手段2は、三次元計測データにおいて、走行方向に垂直な横断面を所定間隔で設定する。走行点決定手段4は、走行の軌跡を結ぶ走行線と、横断面との交点を走行点として決定する。
【0155】
構造物下部端点抽出手段6は、横断面において、端部の構造物の頂点から水平方向に最小歩道幅より短い所定距離移動した位置における表面点を見いだす。見いだした表面点と、前記頂点との間を結ぶ直線を設定する。さらに、当該直線に対する垂線が最も長い表面点を構造物下部端点として抽出する。
【0156】
道路端部点抽出手段8は、構造物下部端点から所定距離の範囲の表面点の平均点を決定し、当該平均点と前記走行点との間を結ぶ直線を設定する。さらに、当該直線に対する垂線が最も長い表面点を道路端部点として抽出する。このようにして、各横断面において、道路端部点が抽出される。
【0157】
道路端部決定手段10は、各横断面における道路端部点を接続して道路端部線を生成し、道路端部を決定する。これにより、道路端部の形状を連続的に得ることができる。
【0158】
さらに、道路中心点抽出手段12は、各横断面における左右の道路端部点の中間点を道路中心点として抽出する。道路中心決定手段14は、各横断面における道路中心点を結んで道路中心線を決定する。
【0159】
5.2ハードウエア構成
図2に、道路特徴決定装置のハードウエア構成を示す。CPU30には、メモリ32、ディズプレイ34、ハードディスク36、CD−ROMドライブ38、キーボード/マウス40が接続されている。
【0160】
ハードディスク36には、オペレーティングシステム42、道路特徴決定プログラム44が記録されている。道路特徴決定プログラム44は、オペレーティングシステム42と協働してその機能を発揮するものである。
【0161】
これらプログラムは、DVD−ROM46に記録されていたものを、CD−ROMドライブ38を介して、ハードディスク36にインストールしたものである。なお、インターネットを介して、サーバ装置(図示せず)からダウンロードしてインストールしたものであってもよい。
【0162】
5.3道路端部・中心決定処理
5.3.1全体フローチャート
図3に、道路特徴決定プログラム44の道路端部・中心決定処理における全体フローチャートを示す。
【0163】
CPU30は、三次元計測データをDVD−ROMなどから読み込んで、ハードディスク36に記録する。三次元計測データは、自動車や無人航空機(UAV)などにレーダ測距装置を積載し、走行しながら計測して得られたものであり、道路近傍の表面形状を示すデータである。また、この三次元計測データには、自動車の位置を時間的変化にて示す走行点のデータが含まれる。三次元点群データとして、たとえば、MMS点群データを用いることができる。
【0164】
CPU30は、ハードディスク36から三次元計測データを読み出し、所定間隔にて横断面を設定する(ステップS1)。続いて、CPU30は、設定した各横断面において、道路の左側端部点を抽出する(ステップS3)。さらに、設定した各横断面において、道路の右側端部点を抽出する(ステップS4)。次に、CPU30は、各横断面において、左側端部点と右側端部点の中心を中心点として抽出する(ステップS5)。
【0165】
CPU30は、すべての横断面について、左端部点、右端部点、中心点を抽出すると、これらを接続して、左端部線、右端部線、中心線を決定する(ステップS6)。
【0167】
5.3.2横断面の設定
図4に、横断面設定処理(ステップS1)の詳細フローチャートを示す。
図5に、三次元計測データを模式的に示した例を示す。多数の計測点によって、道路の表面形状が表されている。この実施形態では、各点の測定データとして、X、Y、Zの三次元座標、反射強度、計測時刻が含まれる。さらに、車両の走行位置(走行点)のX、Y、Zの三次元座標、計測時刻も含まれる。なお、高さ方向のZ座標は、海抜として得られる。
【0168】
CPU30は、走行点を計測時刻順に線で結び、走行線を生成する(ステップS11〜S14)。次に、CPU30は、各測定点から走行線に対して垂線を引き、交点を生成する(ステップS17)。CPU30は、走行線の起点から前記交点までの距離に基づいて、所定距離ごと(たとえば10cmごと)に各測定点を1つのグループとする(ステップS19)。グループ化した測定点により、横断面(走行線に垂直な平面)の測定点が得られることになる。また、走行線が横断面と接する点を走行点として得る。
【0169】
図6に、横断面における測定点の例を示す。この例では、道路部分と歩道部分があり、端部に構造物がある場合が示されている。ただし、測定データにおいては、直接的には、
図6に示す形状がわかるのみである。したがって、CPU30は、いずれの部分が道路部分であり、いずれの部分が歩道部分であるかを、後述の道路端点の抽出処理によって得る。
【0170】
なお、この実施形態では、10cmごとに測定点をグループ化している。しかし、走行線に沿って、所定の間隔で横断面を設定し、当該横断面に対する垂直距離が5cm以内の測定点を垂直移動して横断面に移すようにしてもよい。
【0171】
5.3.3道路端点の抽出
図7、
図8に、道路端点抽出処理(ステップS3、S4)の詳細フローチャートを示す。CPU30は、各横断面において左側端部の頂点Aを抽出する(
図9A参照)。さらに、この頂点から内側に所定距離(たとえば0.5m)だけX方向に移動した位置にある点Bを抽出する。CPU30は、この頂点Aと点Bを結ぶ直線を設定する(ステップS31)。
【0172】
CPU30は、この頂点Aと点Bの範囲内にある各計測点につき、当該直線に対する垂線を生成し、その距離を算出する(ステップS34)。そして、最も垂直距離の大きい計測点を見いだし、構造物下部の特徴点Cとする(ステップS35、S36、S37)。
【0173】
上記のようにして、左側の特徴点Cが見いだされる。CPU30は、同様にして、右側の特徴点Cも見いだす。
【0174】
次に、CPU30は、
図9B、
図9Cに示すように、特徴点CからX方向に所定距離(たとえば0.5m)以内、Z方向に所定距離(たとえば0.1m)以内の計測点を抽出し、そのX、Y、Z座標の平均値を算出し、仮点Dを求める(ステップS39)。
【0175】
CPU30は、仮点Dと走行点とを直線で結ぶ(ステップS40)。次に、CPU30は、仮点Dと走行点Eの間にある各計測点につき(ステップS43)、当該直線との垂直距離を算出する(ステップS44)。最も垂直距離の大きい計測点を見いだし、道路端点Fとする(ステップS45、S46、S47)。
図9では、左側の道路端点Fの決定について説明しているが、右側の道路端点Fについても同様にして決定する。
【0176】
5.3.4道路中心点の決定
続いて、CPU30は、
図9Dに示すように、各横断面において、左側道路端点と右側道路端点の座標を平均し、道路中心点G(両点のX座標の平均値を持つ)を算出する(
図3のステップS5)。
【0177】
以上の各処理により、各横断面において、左側道路端点、右側道路端点、道路中心点を得ることができる。
【0178】
5.3.5道路端部線・道路中心線の決定
CPU30は、各横断面における左側道路端点、右側道路端点を線で結び、左側道路端部線、右側道路端部線を得る。さらに、道路中心点を線で結び、道路中心線を得る(ステップS7)。
【0179】
5.4その他
(1)上記実施形態では、左右の道路端部線に加えて、道路中心線を得るようにしている。しかし、道路端部線、道路中心線のいずれか一方のみを得るようにしてもよい。
【0180】
(2)上記実施形態では、道路の両端に歩道がある場合について説明した。歩道がない道路の場合には、特徴点Cをそのまま道路端部点として抽出すればよい。また、仮点DのZ座標がが走行点EのZ座標より小さい場合や、仮点Dと走行点EとのZ座標の差が、所定値(たとえば1cm)を下回っている場合には、歩道がないと判断すればよい。
【0181】
(3)上記実施形態では、道路端部線、道路中心線を決定するようにしている。これに加えて、あるいはこれに代えて、道路の横断勾配を決定するようにしてもよい。横断面において、左右の道路端部線を結ぶ直線の勾配を算出することにより決定することができる。
【0182】
(4)上記実施形態では、道路特徴決定装置をスタンドアローンのPCとして構成している。しかし、サーバ装置として構成してもよい。この場合、三次元計測データは、インターネットなどを介して接続された端末装置から、道路特徴決定装置であるサーバ装置に送信するようにすればよい。また、決定された道路端部線、道路中心線は、サーバ装置から端末装置に対して送信する。
【0183】
(5)
図9A、
図9Bにおいて、0.5m内側に直線を引くための点を設けている。しかし、歩道の幅よりも小さい長さであれば、これより大きくても小さくてもよい。
【0184】
(6)上記変形例は、互いに組み合わせて実施することが可能である。また、その本質に反しない限り、本実施形態および変形例を、他の実施形態においても適用することができる。
【0185】
6.第6の実施形態
6.1全体構成
図10に、この発明の第6の実施形態による道路特徴決定装置の機能ブロック図を示す。
【0186】
この実施形態における道路特徴決定装置は、道路上を走行しながら計測された表面点による三次元計測データを受けて、車線区分線および車線中心線の決定を行う。
【0187】
区分線抽出手段20は、三次元計測データに基づいて、反射強度(輝度)が所定値以上で、所定長さ継続する箇所を車線区分線として抽出する。区分線決定手段22は、断続する車線区分線に基づいて車線区分線の欠損部分を補完し、区分線を決定する。
【0188】
道路端部線決定手段26は、三次元計測データに基づいて、道路の端部線を決定する。道路端部線決定手段26としては、第1の実施形態による手法を用いることができる。区分線決定手段22は、前記輝度差による車線区分線が抽出されない場合、道路端部線に基づいて得られた道路幅に基づき、車線区分線を決定する。
【0189】
車線中心線決定手段24は、車線区分線と道路端部線に基づいて、車線中心線を決定する。
【0190】
このようにして決定された車線中心線は、自動車の自動運転制御などに用いることができる。
【0191】
6.2ハードウエア構成
この実施形態による道路特徴決定装置のハードウエア構成は、
図2と同様である。
【0192】
6.3区分線決定・車線中心決定処理
道路特徴決定プログラム44の車線区分線・車線中心線決定処理におけるフローチャートを示す。
【0193】
CPU30は、三次元計測データの各点について、所定の輝度より大きい部分を抽出する。道路に車線を区分するための白線や黄色線がひかれていると、この部分での反射が大きくなり輝度が周りよりも高くなる。したがって、所定長さ以上にわたって輝度の高い部分を抽出することにより車線区分線を抽出することができる。
【0194】
たとえば、
図12Bに示すように、白線や黄色線を抽出することができる。
図12Bにおいて、断続的な車線区分領域Rが抽出されている。横断面にて示すと、
図12Aのようになる。なお、領域REのように輝度の高い部分が所定以上の長さ継続しない場合には、抽出しない。
【0195】
図12Bに示すように、白線もしくは黄色線の車線区分領域Rが検出されると(ステップS81)、CPU30は、領域Rの道路幅方向に関する中心を車線区分点とする。CPU30は、各横断面における車線区分点をつないで、車線区分線DLを決定する(ステップS82)。
【0196】
なお、白線や黄色線が断続する場合、白線や黄色線がない部分においては、近傍における道路端部から白線・黄色線までの距離dの位置に白線や黄色線があるものとして車線区分線DLを決定する(
図12C参照)。
【0197】
白線や黄色線が引かれておらず、これらを抽出できない場合もある。この場合、CPU30は、道路幅Dに基づき、次のようにして車線区分線DLを決定する(ステップS83)。まず、三次元計測データに基づいて、
図3の処理に基づいて、各横断面における左右の道路端部点を決定する。さらに、この左右の道路端部点に基づき、道路幅Dを算出する(
図13A参照)。なお、道路端部点、道路幅Dが与えられている場合には、これを用いればよい。
【0198】
CPU30は、道路幅Dと予め定められた最小車線幅dとに基づいて、D/dを算出し、少数以下を切り捨てて、車線数Cを算出する。たとえば、道路幅Dが8.5mであり、設定された最小車線幅dが2.75mであれば、D/dは3.09となる(
図13B参照)。これを切り捨てて、車線数Cとして3が求まることになる。なお、最小車線幅dは、道路の種類(一般道路か高速道路か)によって変えるようにしてもよい。
【0199】
次に、CPU30は、道路幅Dを車線数で除して車線幅を算出し、これによって、車線区分点を決定する(
図13C参照)。各横断面の車線区分点をつないで、車線区分線を決定する。
【0200】
以上のようにして、白線や黄色線がある場合にはこれに基づいて車線区分線を決定し、ない場合には道路幅Dに基づいて車線区分線を決定する。車線区分線を決定すると、CPU30は、
図13Dに示すように、各車線の中心に車線中心線を決定する(ステップS84)。
【0201】
6.4その他
(1)上記実施形態では、白線・黄色線のない部分について、近傍の白線・黄色線がある部分における道路端部からの距離dに基づいて、車線区分線を補完するようにしている。しかし、白線・黄色線のある部分における車線区分線を接続して補完を行うようにしてもよい。
【0202】
(2)上記変形例は、互いに組み合わせて実施することが可能である。また、その本質に反しない限り、本実施形態および変形例を、他の実施形態においても適用することができる。
【0203】
7.第7の実施形態
7.1全体構成
図14に、この発明の第7の実施形態による道路特徴決定装置の機能ブロック図を示す。
【0204】
この実施形態における道路特徴決定装置は、道路上を走行しながら計測された表面点による三次元計測データを受けて、車線中心線の直線とクロソイド曲線を決定する。
【0205】
直線・円弧抽出手段30は、三次元計測データを受けて、車線中心線の直線と円弧を抽出する。クロソイド曲線決定手段32は、前記円弧の中心から、前記直線に対して垂線を設定し、前記円弧の中心をクロソイド終点における距離率半径の中心として、前記垂線に対する接線角を変化させてクロソイド曲線を生成し、クロソイド終点が前記円弧と合致するクロソイド曲線を決定する。接続手段34は、決定したクロソイド曲線に基づいて、前記直線の端点と円弧の端点とを決定し、直線、クロソイド曲線、円弧を接続する。
【0206】
以上のようにして、カーブ部分におけるクロソイド曲線を含む曲がり度合いを正確に決定することができる。
【0207】
7.2ハードウエア構成
この実施形態による道路特徴決定装置のハードウエア構成は、
図2と同様である。
【0208】
7.3曲線部決定処理
図15〜
図17に、道路特徴決定プログラム44の曲線部決定処理を含む中心線接続処理におけるフローチャートを示す。CPU30は、三次元計測データに基づいて、道路中心点または車線中心点を決定する(ステップS91)。これは、たとえば、第1の実施形態、第2の実施形態に示す処理によって実現することができる。
【0209】
次に、CPU30は、ハフ変換によって直線部分を抽出する(ステップS92)。この直線として抽出された中心点を判断対象から取り除く(ステップS93)。続いて、CPU30は、RANSAC法によって円弧部分を抽出する(ステップS94)。さらに、ノイズを除去するため、各線のグループ化を行い、点数の少ないグループを削除する(ステップS95)。
【0210】
続いて、CPU30は、各線について以下の処理を行う。まず、CPU30は、処理対象とする線が、直線かどうかを判断する(ステップS97)。直線であれば、その勾配(縦断面における角度)を算出する(ステップS98)。円弧であれば、円の中心点座標と半径を算出する(ステップS99)。
【0211】
すべての線について上記のように直線の勾配、円の中心座標・半径を算出すると、CPU30は、各線を対象として以下の処理を実行する。まず、CPU30は、処理対象とする線が直線であるかを判断する(ステップS103)。対象線が直線であれば、隣接する次の線が直線であるかを判断する(ステップS104)。次の線が直線であれば、直線と直線が連続していることになるので、直線間の補完処理を行う(ステップS106)。
【0212】
直線間の補完処理を、
図18A、B、Cに示す。まず、CPU30は、両直線を延長してその交点を求める(
図18A)。さらに、一方の直線の端点から、垂線を引く。また、両直線の交点から、両直線のなす角度を2等分する直線を引く。この垂線と2等分線との交わる点を求める(
図18B)。この交点を中心点として、円弧を描く(
図18C)。他方の直線とこの円弧が交わる点まで、円弧を設ける。なお、他方の直線と円弧が交わらない場合、他方の直線と円弧が交わるように他方の直線を伸ばす。このようにして、XY平面において、直線と直線の接合部を補完する。
【0213】
また、YZ平面(縦断面)においても、直線と直線の接合部の補完を行う。CPU30は、縦断面において両直線を延長し、その交点を求める(
図19A)。さらに、その交点からdだけ離れた点を通り、両直線に接する放物線を生成する(
図19B)。
【0214】
また、対象線が直線であり(ステップS103がYES)、次の線が曲線である場合には(ステップS104がNO)、直線と曲線をクロソイド曲線によって接合するための補完を行う(ステップS107)。
【0215】
図20Aに示すように、直線部と円弧とが接しない。これは、道路のカーブにおいては、直線と円弧が接続されるのではなく、その間にクロソイド曲線が設けられるからである。そこで、CPU30は、ステップS107において、このクロソイド曲線を推定するようにしている。
【0216】
まず、CPU30は、
図20Bに示すように、クロソイド曲線のパラメータを変化させながら、最も適切なクロソイド曲線を決定する。さらに、
図20Cに示すように、決定したクロソイド曲線によって、直線と円弧を接続する。
【0217】
図21A、B、Cに、適切なクロソイド曲線を示すための処理の詳細を示す。まず、CPU30は、円弧の中心Mから直線に対して垂線を引く(
図21A)。次に、
図21Bに示すように、直線上の点をクロソイド開始点とし、垂線との角度τの位置をクロソイド終点としてクロソイド曲線を生成する。この際、角度τを0〜90まで0.01間隔で変えながらクロソイド曲線を生成する。
【0218】
CPU30は、角度τを変えて生成したクロソイド曲線のクロソイド終点のクロソイド開始点からの距離Yと、直線から円弧までの距離dとが合致するクロソイド曲線を見いだす。さらに、
図21Cに示すように、見いだしたクロソイド曲線に基づいて、クロソイド開始点Sを直線の終点とし、当該クロソイド曲線によって直線と円弧とを接合する。
【0219】
また、対象線が曲線であり(ステップS103がNO)、次の線が曲線である場合には(ステップS104がNO)、曲線と曲線を接合するための補完を行う(ステップS108)。処理の詳細を、
図22に示す。
【0220】
CPU30は、円弧と円弧の中心点を結ぶ直線を設定する。さらに、この直線を、半径の小さい方の円弧の側に延長し、円弧からDの位置に点を設定する。Dは、以下の式によって決定する。
【0221】
D=元直線距離×小さい円半径/(大きい円半径−小さい円半径)
CPU30は、設定した点から2つの円弧に接する直線を引く。この直線により、円弧と円弧を接続する。
【0222】
7.4その他
(1)上記実施形態では、車線中心線の接合について説明した。しかし、道路中心線、道路端部線についても同様に適用することができる。
【0223】
(2)上記変形例は、互いに組み合わせて実施することが可能である。また、その本質に反しない限り、本実施形態および変形例を、他の実施形態においても適用することができる。
【0224】
8.第8の実施形態
8.1全体構成
図23に、この発明の第8の実施形態による道路特徴決定装置の機能ブロック図を示す。
【0225】
この実施形態における道路特徴決定装置は、分岐部分における中心線の処理を行う。分類手段40は、道路端部線を、走行線の右側にある右側道路端部線と、走行線の左側にある左側道路端部線に分類する。分岐範囲判断手段42は、右側道路端部線と左側道路端部線が接する位置を分岐開始位置とする。さらに、分岐開始位置から直線を延長し、当該直線が道路端部線に接する位置を分岐酋長位置とする。
【0226】
中央線生成手段44は、分岐開始位置から分岐終了位置まで双方の道路中心線または車線中央線を延長する。さらに、分岐終了位置に置いて、双方の道路中心線を結ぶように道路中央線または車線中央線を生成する。
【0227】
8.2ハードウエア構成
この実施形態による道路特徴決定装置のハードウエア構成は、
図2と同様である。
【0228】
8.3分岐処理
図24に、道路特徴決定プログラムの分岐処理のフローチャートを示す。CPU30は、まず、分岐部を特定する(ステップS110)。さらに、特定した各分岐部について、分岐区間を特定する(ステップS112)。続いて、分岐区間において、中央線を接続する(ステップS113)。このようにして、分岐部分における中央線の補完を行うことができる。
【0229】
図25、
図26に、ステップS112、S113の詳細を示す。CPU30は、各道路端部線につき走行線の右側にあるか左側にあるかを判断する(ステップS120)。
図27Aに示すように、右側であるか左側であるかを記録する。次に、各道路端部線を、繋がっているもの同士でグループ化する(ステップS121)。
【0230】
CPU30は、上記で生成した各クラスタについて次の処理を行う。まず、クラスタ内に右側道路端部線と左側道路端部線の双方があるかどうかを判断する(ステップS123)。
図27Bに示すように、クラスタ2には、双方があるので、分岐であると判断することができる。さらに、右側と左側の交差部分Z(
図27C参照)を分岐開始点とする(ステップS124)。以上のようにして分岐を抽出して、開始点を決定することができる。
【0231】
CPU30は、各分岐について、分岐部で車線数が変化するかどうかを判断する(ステップS130)。たとえば、
図28Aに示すように、分岐部において車線数が変わらなければ、中心線は上手く引かれているので、特段の処理を行わない。しかし、
図28Bや
図28Cに示すように、分岐部において車線数が変わっていれば、CPU30は、以下に示すように中心線の補完を行う。
【0232】
まず、分岐開始点Zから、
図29A、
図29Bに示すように、直線の道路境界線を伸ばす(ステップS131)。さらに、CPU30は、伸ばした直線と他の道路境界線との交点Qを求め、分岐終了点とする(ステップS132)。
【0233】
CPU30は、分岐開始点Zから分岐終了点Qまでの分岐部において、双方の中央線を延長する(ステップS134)。分岐終了点Qでは、両方の中心線の端点を直線Kで結ぶ(
図29A参照)。なお、
図29Bのように、中央線を延長しただけで両方の中央線が接続される場合には、そのままとする。
【0234】
また、
図30に示すように、交差点においても、道路中央線、車線中央線が途切れるが、上記と同じ手法にて接続を行うことができる。
【0235】
8.4.その他
その本質に反しない限り、本実施形態を、他の実施形態においても適用することができる。