【文献】
所克巌、真鍋鎮男、北川育夫、佐藤俊明,MMSによる3次元点群データからの道路縁・ポール・標識の抽出,2016年度精密工学会春季大会学術講演会講演論文集,公益社団法人精密工学会,2016年 3月 1日,P. 777-778
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態(以下実施形態という)である道路縁抽出装置2について、図面に基づいて説明する。道路縁抽出装置2は、地物表面の三次元形状を表す点群データに基づいて、段差を有する道路縁を抽出する。点群データは例えば、モービルマッピングシステムにより取得される。モービルマッピングシステムは、自動車にレーザスキャナを搭載し、車体の上部から斜め下方向にレーザを照射する。レーザの光軸は横方向に走査され、走査角度範囲内にて微小角度ごとにレーザパルスが発射される。レーザの発射から反射光の受信までの時間に基づいて距離が計測され、またその際、レーザの発射方向、時刻、及び車体の位置・姿勢などが計測される。それら計測データから、レーザパルスを反射した点の三次元座標を表す点群データが求められる。
【0012】
図1は、道路縁抽出装置2の概略の構成を示すブロック図である。道路縁抽出装置2は、演算処理装置4、記憶装置6、入力装置8及び出力装置10を含んで構成されるシステムである。演算処理装置4として、本装置の各種演算処理を行う専用のハードウェアを作ることも可能であるが、本実施形態では演算処理装置4は、コンピュータ及び、当該コンピュータ上で実行されるプログラムを用いて構築される。
【0013】
当該コンピュータのCPU(Central Processing Unit)が演算処理装置4を構成し、後述する候補セグメント探索手段20、セグメント接続手段22及び道路縁セグメント列生成手段24として機能する。
【0014】
候補セグメント探索手段20は、道路をその平面線形に沿って複数の探索単位区間に分け、対象空間のうち各探索単位区間に対応する部分空間にて道路縁の候補セグメントを探索する手段である。なお、候補セグメントは道路縁のエッジのうち部分空間に存在する断片の候補である。
【0015】
セグメント接続手段22は、道路縁に沿って並ぶと推定される候補セグメントを順次接続し、候補セグメント列を生成する手段である。
【0016】
道路縁セグメント列生成手段24は、探索単位区間の並び順に従い候補セグメント列を選択し、選択された注目候補セグメント列と当該注目候補セグメント列に隣接し先に選択された先行候補セグメント列とを接続し道路縁セグメント列を生成する手段である。
【0017】
記憶装置6はコンピュータに内蔵されるハードディスクなどで構成される。記憶装置6は演算処理装置4を候補セグメント探索手段20、セグメント接続手段22及び道路縁セグメント列生成手段24として機能させるためのプログラム及びその他のプログラムや、本システムの処理に必要な各種データを記憶する。例えば、記憶装置6は、処理対象データとして道路縁を抽出する処理の対象空間の点群データを格納される。
【0018】
入力装置8は、キーボード、マウスなどであり、ユーザが本システムへの操作を行うために用いる。
【0019】
出力装置10は、ディスプレイ、プリンタなどであり、本システムにより求められた道路縁のエッジを画面表示、印刷等によりユーザに示す等に用いられる。
【0020】
図2は、道路縁抽出装置2による道路縁抽出処理の概略のフロー図である。候補セグメント探索手段20は、道路の平面線形、つまり、道路の縦断方向に沿って道路基準線を設定し(ステップS2)、道路基準線上にて探索単位区間を設定する(ステップS4)。
図3は、対象空間の一例の模式的な平面図である。モービルマッピングシステムは当該システムを搭載した車両の軌跡を記録しており、道路基準線30は当該軌跡に基づいて設定することができる。本実施形態では、道路基準線30は道路内、つまり道路縁32L,32Rで挟まれる道幅の中に設定される。探索単位区間I
Sは例えば、道路基準線30を一定間隔で区切ったものとすることができる。また、互いに隣接する探索単位区間I
Sは重なりを有するように設定したり、間隔を設けて設定したりすることもできる。
【0021】
各探索単位区間に対応して対象空間には部分空間36が設定される。部分空間36は探索単位区間の両端に設けた鉛直平面34に挟まれた空間である。本実施形態では、探索単位区間の両端の2つの鉛直平面34は、当該探索単位区間の両端を結ぶ線分に直交して設定される。よって、当該2つの鉛直平面34は道路基準線30の曲線部においても互いに平行となる。
【0022】
候補セグメント探索手段20は探索単位区間I
Sごとに道路縁のエッジを探索する処理を繰り返す(ステップS6)。具体的には、道路基準線30を道路内に設定したことに対応して、道路基準線30の両側にてそれぞれエッジを探索する。例えば、道路に沿った方向の一方の向きを進行方向として設定し、道路基準線30から進行方向左側の部分空間にて候補セグメントを探索する処理(ステップS8)と、道路基準線30から進行方向右側の部分空間にて候補セグメントを探索する処理(ステップS10)とがステップS6のループ処理内で行われる。
図3の例にて、進行方向を下側から上側へ向けて設定すると、道路基準線30から道路縁32L側の部分空間が進行方向左側の部分空間となり、道路縁32R側の部分空間が進行方向右側の部分空間となる。
【0023】
候補セグメント探索手段20により探索単位区間I
Sごとの候補セグメントの探索が終わると、セグメント接続手段22及び道路縁セグメント列生成手段24により道路縁確定処理が行われ、道路縁が求められる(ステップS12)。
【0024】
図4はセグメント探索処理(
図2のステップS8,S10)の概略のフロー図である。候補セグメント探索手段20は、道路基準線30から一定距離内にて(ステップS20)、進行方向左側及び右側それぞれの部分空間36を道路横断方向に並ぶ複数の単位空間38に分割する。具体的には、鉛直平面34に直交する鉛直平面で部分空間36を区切り、道路基準線30から道路端側へ順次シフトした単位空間38を設定する(ステップS22)。
【0025】
このように設定された単位空間38は対象空間を水平面内にて二次元直交格子(メッシュ)状に分割した四角柱形状の空間となる。例えば、探索単位区間I
Sの長さは50センチメートル〔cm〕とすることができ、これに対応して、単位空間38の水平断面は幅W(道路基準線30に沿った方向の寸法)及び奥行きD(道路横断方向の寸法)が50cmの正方形とすることができる。部分空間又は単位空間の高さHは対象空間の高さと一致させることができる。また、部分空間又は単位空間の高さ方向の範囲は、道路面及び道路縁の段差が含まれる範囲に狭めることで、他の構造物による点群の影響を排除して、道路縁抽出精度を向上させることもできる。候補セグメント探索手段20を構成するプログラムでは、幅W、奥行きD及び高さHはパラメータ化されており、例えば、ユーザが入力装置8を用いて変更することができる。
【0026】
また、単位空間38を設定する道路横断方向の範囲を定めるステップS20の一定距離は、道路縁が存在すると推定される位置を含むように設定され、例えば、道路の幅員を考慮して予め設定することができ、また、ユーザが入力装置8から適宜設定することもできる。
【0027】
候補セグメント探索手段20は、記憶装置6に記憶された点群データから、設定した単位空間38内の座標を有する点群を取り込む(ステップS24)。
図5は、単位空間における道路縁の段差の特徴を説明する模式図であり、
図5(a)は道路縁のエッジ50が存在する単位空間38の平面図を示しており、また
図5(b)は
図5(a)のエッジ50に直交するA−A線での垂直断面における点群52を示している。道路縁の段差を含む単位空間内の点群は当該段差に応じた高低差を有する一方、段差を含まない単位空間内の点群は基本的に道路面に沿って位置し高低差が小さく平坦に分布する。また、段差側面54に沿って分布する点群に起因して、段差を含む単位空間の水平面に射影した点群の分布には、エッジ50に沿って線状に密に点群が集まる部分が生じる一方、段差を含まない単位空間の水平面に射影した点群の分布は疎密差の小さい略一様なものとなる。
【0028】
候補セグメント探索手段20は、このような段差の有無に応じた点群の分布の違いに基づいて、単位空間における段差の有無、及び候補セグメントの抽出を行う。例えば、候補セグメント探索手段20は、ステップS24にて取り込んだ点群の高低差を判定する(ステップS26)。そして、点群の分布が段差に応じた高低差を有さず平坦である場合(ステップS28にて「Yes」の場合)、現在設定している単位空間38には段差は存在しないと判断してステップS20に戻る。
【0029】
候補セグメント探索手段20は、点群の分布が平坦でない単位空間38が見つかるまで、道路基準線30から一定距離内にて、道路外側へ向けて単位空間38を順次シフトさせて設定する。
【0030】
単位空間38内の点群の分布が平坦でない、つまり道路縁の段差に応じた高低差が存在する場合(ステップS28にて「No」の場合)、候補セグメント探索手段20は、候補セグメントとして、水平面内にて点群が集まる線分を探索する(ステップS30)。候補セグメントが抽出された場合(ステップS32にて「Yes」の場合)、当該候補セグメントを探索単位区間と対応付けてエッジリストへ記録し(ステップS34)、
図2における或る探索単位区間におけるステップS8又はステップS10の処理を終了する。
【0031】
また、道路基準線30から一定距離内にて平坦でない単位空間38が存在しなかった場合(ステップS20にて「No」の場合)、及び点群に高低差は存在するが候補セグメントとなる線分が抽出されなかった場合(ステップS32にて「No」の場合)もステップS8又はステップS10の処理を終了する。
【0032】
なお、ステップS32にて「No」の場合に、ステップS20に戻り、さらに外側の単位空間38にて候補セグメントの探索を続けてもよい。また、或る単位空間38にて候補セグメントが抽出された場合に(ステップS32にて「Yes」の場合)、ステップS20に戻り、さらに外側の単位空間38にて別の候補セグメントの探索を続けてもよい。
【0033】
ステップS26の点群の高低差の判定は、例えば、RANSAC(random sample consensus)アルゴリズムを利用した平面検出処理を用いて行うことができる。例えば、点群からRANSACにより推定した水平面が単位空間の水平断面に相当する面積を有していれば、当該単位空間の点群は平坦であると判定することができる。また、推定された2つの水平面の高低差が、道路縁の段差に応じて設定される閾値未満であれば、平坦であると判断し、当該閾値以上であれば平坦でないと判断することができる。
【0034】
ステップS30の候補セグメントの探索も例えば、RANSACを用いて行うことができ、水平面に射影した点群においてRANSACにより線分を推定する。ステップS26、S30の処理は、RANSACを利用することで、比較的少ない計算負荷で高速に行うことができる。
【0035】
図6は道路縁確定処理(
図2のステップS12)の概略のフロー図である。セグメント接続手段22は、隣接する探索単位区間から抽出された候補セグメントの接続関係の有無を調べ、接続関係を有する候補セグメント同士を接続して候補セグメント列を生成する(ステップS40)。
【0036】
道路縁セグメント列生成手段24は、セグメント接続処理S40にて他の候補セグメントに接続されなかった孤立した候補セグメントや、例えば、道路上の車両などに起因し道路縁によるものではないと推定される候補セグメント列を除去する処理(セグメントクレンジング処理)を行う(ステップS42)。ステップS42ではさらに、道路縁によるものと推定される候補セグメント列同士を接続し道路縁セグメント列を生成する。
【0037】
道路縁セグメント列生成手段24は、各道路縁セグメント列をグループとして定義し(ステップS44)、各グループを構成するセグメント列の形状を平滑化する(ステップS46)。これにより、道路縁の平面形状が確定される。道路縁セグメント列生成手段24はさらに道路縁に標高値を付加し、道路縁の三次元形状を確定する(ステップS48)。具体的には、道路縁セグメント列生成手段24は、任意の位置の道路縁の標高値として、当該位置から道路基準線30側に所定距離離れた領域内の点群のうち最も低い標高値を設定する。道路縁近傍には各種のごみが存在し易く、それらから得られた点群の標高値は道路面からはずれた値となる。そこで、道路縁から離れた位置の標高値を道路縁下の道路面の標高値とし精度の確保を図っている。
【0038】
図7はセグメント接続処理(
図6のステップS40)の概略のフロー図である。セグメント接続手段22は、候補セグメント探索手段20により得られた各候補セグメントについて、隣接する探索単位区間の候補セグメントと接続関係を有しているか否かを示すフラグ、つまり候補セグメント列を形成しているか否かの状態を示すフラグF、及び候補セグメント列におけるステータスを示す値Cをそれぞれ初期化する(ステップS60)。具体的には、任意の候補セグメント“*”のフラグF(*)を、接続関係を有していないことを示す“OFF”とし、またステータスC(*)を候補セグメント列を形成しないことを示す値“0”とする。
【0039】
セグメント接続手段22は、道路縁に沿って並ぶと推定される候補セグメントを順次接続する。当該接続性のチェック処理は、探索単位区間の並び順に従って未処理の候補セグメントを選択して行われ、未処理の候補セグメントが無くなるまで、つまり、探索手段20により抽出された全ての候補セグメントについて接続性チェックが完了するまで(ステップS62にて「No」の場合)、繰り返される。
【0040】
セグメント接続手段22は、探索単位区間を順番に選択し、当該探索単位区間に対応する候補セグメントが存在する場合(ステップS62にて「Yes」の場合)、未処理セグメントである当該候補セグメントを注目候補セグメントS
Bに設定する(ステップS64)。また、セグメント接続手段22は、注目候補セグメントS
Bに対応する現在選択されている探索単位区間に隣接し、当該現探索単位区間の直前に選択された探索単位区間に候補セグメントが存在する場合、当該候補セグメントを先行候補セグメントS
Aとする。
【0041】
先行候補セグメントS
Aが存在しない場合は(ステップS66にて「No」の場合)、注目候補セグメントS
Bについて接続性チェックの対象となる候補セグメントが存在しないので、接続性チェック処理を行わずにステップS62に戻り、新たな注目候補セグメントとなる未処理セグメントが探される。この際、当該注目候補セグメントS
Bを先行候補セグメントS
Aとする。
【0042】
一方、先行候補セグメントS
Aが存在する場合(ステップS66にて「Yes」の場合)、先行候補セグメントS
Aは既に接続性をチェックされている。セグメント接続手段22は、先行候補セグメントS
AのフラグF(S
A)が接続関係を有していることを示す“ON”であるか否かを調べ(ステップS68)、その結果に応じて処理分岐を行う。
【0043】
図8は、F(S
A)が“OFF”である場合(ステップS68にて「No」の場合)の処理を説明する模式図である。F(S
A)が“OFF”である場合、先行候補セグメントS
Aには他の候補セグメントはまだ接続されていない、つまり、先行候補セグメントS
Aの両端N
1,N
2は候補セグメントが接続されていない開放端である。よって、端点N
1,N
2のいずれも注目候補セグメントS
Bと接続される可能性がある。そこで、セグメント接続手段22は、先行候補セグメントS
Aの両端N
1,N
2と注目候補セグメントS
Bの両端N
3,N
4との間の4通りの端点の組み合わせについて端点間距離を算出し(
図8(a)にて点線で示す距離)、それらの最小値Lを求める(ステップS70)。
【0044】
そして、当該最小値Lを与える端点同士でS
AとS
Bとが接続される可能性があるとして接続性チェック処理を行う(ステップS72)。
図8の例では、N
2とN
3との距離が最小となるのでS
Aの端点N
2とS
Bの端点N
3とが接続されると仮定され接続性チェック処理が行われる。また当該接続性チェック処理S72では、先行候補セグメントS
Aは最小距離に対応する端点N
2を終点とするベクトル、注目候補セグメントS
Bは最小距離に対応する端点N
3を始点とするベクトルとしてS
A,S
Bそれぞれの向きが定義される。これにより、例えば、道路縁に沿って並ぶ2つの候補セグメントS
A,S
BについてはS
AからS
Bへ向かう方向にS
A,S
Bそれぞれの向きが定義される。
【0045】
後述する接続性チェック処理S72では、S
AとS
Bとが接続関係を有すると判断した場合には、注目候補セグメントS
BのフラグF(S
B)が“ON”にセットされ、接続関係を有さないと判断した場合には、F(S
B)は初期設定された“OFF”に維持される。
【0046】
フラグF(S
B)が“ON”の場合(ステップS74にて「Yes」の場合)、セグメント接続手段22は、先行候補セグメントS
AのステータスC(S
A)を、候補セグメント列の先頭のセグメントであることを示す値“1”とし、一方、注目候補セグメントS
BのステータスC(S
B)を、候補セグメント列の後尾のセグメントであることを示す値“2”とする(ステップS76)。
【0047】
図9は、F(S
A)が“ON”である場合(ステップS68にて「Yes」の場合)の処理を説明する模式図である。F(S
A)が“ON”である場合、先行候補セグメントS
Aは候補セグメント列の一部となっており、具体的には当該候補セグメント列の後尾である。つまり、先行候補セグメントS
Aの一方端点N
1には既に他の候補セグメントが接続されており、他方端点N
2だけが開放端である。よって、注目候補セグメントS
Bは端点N
2と接続され得る。そこで、セグメント接続手段22は、先行候補セグメントS
Aの端点N
2と注目候補セグメントS
Bの両端N
3,N
4との間の2通りの端点の組み合わせについて端点間距離を算出し(
図9(a)にて点線で示す距離)、それらの最小値Lを求める(ステップS80)。
【0048】
そして、当該最小値Lを与える端点同士でS
AとS
Bとが接続される可能性があるとして接続性チェック処理を行う(ステップS82)。
図9の例では、N
2とN
3との距離が最小となるのでS
Aの端点N
2とS
Bの端点N
3とが接続されると仮定され接続性チェック処理が行われる。また当該接続性チェック処理S82では、注目候補セグメントS
Bは最小距離に対応する端点N
3を始点とするベクトルとして、S
Bの向きが定義される。なお、先行候補セグメントS
Aについては先行する処理にて、N
1を始点、N
2を終点とするベクトルとして既に向きが定義されている。
【0049】
後述する接続性チェック処理S82では、S
AとS
Bとが接続関係を有すると判断した場合には、注目候補セグメントS
BのフラグF(S
B)が“ON”にセットされ、接続関係を有さないと判断した場合には、F(S
B)は初期設定された“OFF”に維持される。
【0050】
フラグF(S
B)が“ON”の場合(ステップS84にて「Yes」の場合)、セグメント接続手段22は、先行候補セグメントS
AのステータスC(S
A)を、候補セグメント列の内部のセグメント、つまり先頭及び後尾以外のセグメントであることを示す値“3”とし、一方、注目候補セグメントS
BのステータスC(S
B)を、候補セグメント列の後尾のセグメントであることを示す値“2”とする(ステップS86)。ステップS76、S86の後、処理はステップS62に戻り、新たな注目候補セグメントとなる未処理セグメントが探される。
【0051】
なお、ステップS74,S84にてF(S
B)が“OFF”の場合は、ステップS62に戻り、新たな注目候補セグメントとなる未処理セグメントが探される。この場合は、ステータスC(S
A),C(S
B)は変更されない。具体的には、ステップS74にてF(S
B)が“OFF”の場合は、C(S
A),C(S
B)は共に初期値“0”を維持し、ステップS84にてF(S
B)が“OFF”の場合は、C(S
A)は“2”,C(S
B)は初期値“0”をそれぞれ維持する。
【0052】
図10は接続性チェック処理S72,S82の概略のフロー図である。
図7のステップS70又はS80にて算出した端子間距離の最小値Lが予め定めた閾値(第1距離閾値)L
1と比較される(ステップS100)。閾値L
1はS
AとS
Bとの接続関係が否定されない端子間距離の上限として定義される。Lが閾値L
1以下である場合(ステップS100にて「Yes」の場合)、S
A,S
Bのセグメント方向が
図8、
図9の例を用いて説明したベクトルにより定義される(ステップS102)。
【0053】
セグメント接続手段22はさらにLを閾値L
2と比較する(ステップS104)。閾値L
2はL
2<L
1であり、L≒0であるかを判定する値に設定される。ここで、L≒0とは、実質的にS
A,S
Bが最小距離Lとなる端点同士で接続されるとみなせる程度を意味する。具体的には、閾値L
2は点群の測定誤差や、道路縁の凹凸程度の比較的小さい値であり、例えば、数cmとすることができる。
【0054】
ステップS104にてL≦L
2であることによりL≒0と判断された場合には(ステップS104にて「Yes」の場合)、S
A,S
Bのなす角度θを算出し(ステップS106)、第1角度閾値θ
1と比較する(ステップS108)。θはステップS102で定義したセグメント方向間の角度である。道路のエッジは道路が交差する箇所などで大きな角度で屈曲し得るが、そのような箇所以外では比較的長い距離に亘り滑らかに、つまりエッジは方向を大きく変えずに連続し得る。そこで、閾値θ
1を、道路縁の滑らかに連続する部分における角度変動に対応して比較的小さな値に設定し、θが閾値θ
1以下であることを条件に課すことで当該部分に対応する候補セグメント列を好適に抽出する。
【0055】
図11はL≒0、つまり端点が近接する場合の候補セグメントS
A,S
Bの接続形態を説明する模式図である。
図11(a)は、ステップS104,S108にてL≒0(L≦L
2)かつθ≦θ
1と判断される場合のS
A,S
Bの位置関係を示している。この場合、セグメント接続手段22は、
図11(b)に示すように、最小距離Lとなる端点N
2,N
3の中点P
mでS
A,S
Bを接合する(ステップS110)。具体的には、先行候補セグメントS
Aの終点N
2及び注目候補セグメントS
Bの始点N
3を共に中点P
mに移動させる。
【0056】
L≦L
1であるがL>L
2である、つまりL≒0ではない場合(ステップS104にて「No」の場合)、セグメント接続手段22は他の接続形態をチェックする。この場合も、ステップS106と同様に、S
A,S
Bのなす角度θを算出し(ステップS120)、θ≦θ
1を接続の要件とする(ステップS122)。
【0057】
θ≦θ
1の場合(ステップS122にて「Yes」の場合)、セグメント接続手段22は、接続形態として、セグメント同士が交差する形態(ステップS124)、一方セグメントと他方セグメントの延長線とが交差する形態(ステップS128)、及び一方セグメントの端点が他方セグメントを中心としたバッファ領域内に存在する形態(ステップS132)であるかを順次調べる。
【0058】
図12は候補セグメントS
A,S
Bが交差する場合の接合形態を説明する模式図である。
図12(a)は、先行候補セグメントS
Aと注目候補セグメントS
Bとが交差する場合の、S
A,S
Bの位置関係を示している。この場合、セグメント接続手段22は、
図12(b)に示すように、S
A,S
Bの交差点P
cでS
A,S
Bを接合する(ステップS126)。具体的には、先行候補セグメントS
Aの終点N
2及び注目候補セグメントS
Bの始点N
3を共に交差点P
cに移動させる。
【0059】
図13は候補セグメントS
A,S
Bのいずれか一方と他方の延長線とが交差する場合の接合形態を説明する模式図である。
図13(a)は、先行候補セグメントS
Aと注目候補セグメントS
Bの延長線60とが交差する場合の、S
A,S
Bの位置関係を示している。この場合、セグメント接続手段22は、
図13(b)に示すように、S
AとS
Bの延長線60との交差点P
cでS
A,S
Bを接合する(ステップS130)。具体的には、先行候補セグメントS
Aの終点N
2及び注目候補セグメントS
Bの始点N
3を共に交差点P
cに移動させる。
【0060】
図14は候補セグメントS
A,S
Bのいずれか一方セグメントの最小距離Lに対応する端点が、他方セグメントを中心として設定したバッファ領域内に存在する場合の接合形態を説明する模式図である。
図14(a)は、注目候補セグメントS
Bの始点N
3が先行候補セグメントS
Aのバッファ領域64内に存在する場合のS
A,S
Bの位置関係を示している。先行候補セグメントS
Aのバッファ領域64は、S
Aに重なる直線62を中心として幅2L
3の帯状の領域である。L
3は予め定めた距離閾値であり、基本的にL
3<L
1となるように設定される。この場合、セグメント接続手段22は、
図14(b)に示すように、最小距離Lとなる端点N
2,N
3の中点P
mでS
A,S
Bを接合する(ステップS134)。具体的には、先行候補セグメントS
Aの終点N
2及び注目候補セグメントS
Bの始点N
3を共に中点P
mに移動させる。
【0061】
注目候補セグメントS
Bのバッファ領域も同様に設定され、先行候補セグメントS
Aの終点N
2が当該バッファ領域内に存在する場合も同様にして中点P
mで接合される。
【0062】
つまり、セグメント接続手段22は、S
Bの始点N
3と直線62との距離がL
3以下であるか、S
Aの終点N
2とS
Bに重なる直線との距離がL
3以下である場合に、ステップS132の条件を満たすとして中点接合(ステップS134)を行う。
【0063】
上述のS
A,S
Bが接続関係を有すると判断しそれらを接合するいずれの場合も(S110,S126,S130,S134)、フラグF(S
B)が“ON”にセットされ(ステップS112)、接続性チェック処理S72,S82を終える。
【0064】
一方、L>L
1である場合(ステップS100にて「No」の場合)、θ>θ
1である場合(ステップS108,S122にて「No」の場合)、及びステップS124,S128,S132のいずれの接続態様の条件も満たさない場合(ステップS132にて「No」の場合)は、フラグF(S
B)は初期設定された“OFF”のまま接続性チェック処理S72,S82を終える。
【0065】
セグメント接続手段22による、以上説明した接続性チェック処理を含むセグメント接続処理(
図6のステップS40)が終了すると、道路縁セグメント列生成手段24によるセグメントクレンジング処理(
図6のステップS42)が行われる。
【0066】
図15はセグメントクレンジング処理S42の概略のフロー図である。候補セグメントのうちセグメント接続処理S40にて、他の候補セグメントと接続されず単体のまま残った候補セグメントはノイズの可能性が高いため削除する(ステップS140)。具体的には、ステータスCが初期値“0”である候補セグメントが削除される。これにより、候補セグメント列だけが残る。
【0067】
当該候補セグメント列に対して、道路縁によるものと推定されるもの同士を接続し道路縁セグメント列を生成する処理が行われる。候補セグメント列Tの接続処理は、上述したセグメント接続手段22による候補セグメントSの接続処理と同様に、探索単位区間の並び順に従って候補セグメント列Tを順次選択して行われ、選択された注目候補セグメント列と当該注目候補セグメント列に隣接し先に選択された先行候補セグメント列とで接続関係を判断する。すなわち、接続処理は探索単位区間の並び順に従って未処理の候補セグメント列を選択して行われ、未処理の候補セグメント列が無くなるまで(ステップS142にて「No」の場合)、繰り返される。
【0068】
ここで、選択された注目候補セグメント列(注目セグメント列T
B)が先行候補セグメント列(先行セグメント列T
A)と接続関係を有しているかを示すフラグをF(T
B)と表す。当該フラグは、任意の候補セグメント列について“OFF”に初期設定され、接続関係を有していると判断された場合に“ON”に設定される。
【0069】
道路縁セグメント列生成手段24は、未処理の候補セグメント列が存在する場合(ステップS142にて「Yes」の場合)、当該候補セグメント列を注目セグメント列T
Bに設定する(ステップS144)。
【0070】
当該注目セグメント列T
Bに対する先行セグメント列T
Aが存在しない場合(ステップS146にて「No」の場合)、注目セグメント列T
Bについて接続関係の判断対象となる候補セグメント列が存在しないので当該T
Bについては接続関係を調べる処理は省略され、ステップS142に戻り、新たな注目セグメント列となる未処理セグメント列が探される。この際、当該注目セグメント列T
Bを先行セグメント列T
Aとする。
【0071】
一方、注目セグメント列T
Bに対する先行セグメント列T
Aが存在する場合(ステップS146にて「Yes」の場合)、T
Aの後尾候補セグメントS
TとT
Bの先頭候補セグメントS
Hとの間に接続ベクトルS
Mを設定する(ステップS148)。
図16はこの状態を示す模式図である。図に示すように、S
MはS
Tの終点からS
Hの始点へ向かうベクトルであると定義する。
【0072】
道路縁セグメント列生成手段24は、接続ベクトルS
Mの長さが予め定めた閾値(第2距離閾値)L
4以下である場合(ステップS150にて「Yes」の場合)、さらに、接続ベクトルS
Mと、先行セグメント列T
Aの後尾候補セグメントS
Tとのなす角度θ(S
T,S
M)、及び接続ベクトルS
Mと、注目セグメント列T
Bの先頭候補セグメントS
Hとのなす角度θ(S
H,S
M)が予め定めた第2角度閾値θ
2以下であるかを判定する(ステップS152)。例えば、或る道路の直線的又は緩やかな曲率の候補セグメント列からなるエッジ(道路縁セグメント列)は、当該道路に他の道路が接続する十字路やT字路などの部分では当然に途切れ、接続した道路の幅ほどの間隔を生じ得る。つまり、そのような候補セグメント列間に生じる道幅程度の大きさの間隔までも接続ベクトルS
Mで接続することは適当ではない。よって、閾値L
4は例えば、道幅未満に設定することができ、例えば、4メートル程度とすることができる。また、θ
2は例えば、θ
1と共通の値に設定することができる。
【0073】
θ(S
T,S
M)及びθ(S
H,S
M)がθ
2以下であれば(ステップS152にて「Yes」の場合)、候補セグメントの接続について
図10のステップS108,S122にてθ≦θ
1を条件としたことと同様の理由により、S
Mを介して接続されたT
A,T
Bが道路のエッジとして好適であると判定し、F(T
B)を“ON”に設定する(ステップS154)。これにより、先行セグメント列T
A及び注目セグメント列T
Bを接続ベクトルS
Mで接続した道路縁セグメント列が生成される。
【0074】
図17、
図18はθ(S
T,S
M)又はθ(S
H,S
M)がθ
2より大きい場合(ステップS152にて「No」の場合)に行うセグメント列のクレンジング処理を説明する模式図である。
図17に示す処理では、注目セグメント列T
Bの長さが閾値L
5以下であれば、道路脇に停められた車両などに起因するノイズの可能性が高いとして、当該注目セグメント列T
Bを削除して(ステップS162)ステップS142に戻り、注目セグメント列T
Bを選択し直す。
図17では、同図(a)に示すセグメント列T
A,T
Bの間に設定した接続ベクトルS
Mが、θ(S
T,S
M)及びθ(S
H,S
M)がθ
2以下であるという条件(ステップS152)を満たさず、またT
Bの長さがL
5以下であるため、注目セグメント列T
Bを削除する。
図17(b)はステップS162にて当該T
Bを削除した状態を示しており、ステップS142に戻り、セグメント列T
Cが新たな注目セグメント列として設定される。そして、先行セグメント列T
AとT
Cとの間に新たな接続ベクトルS
M’が設定され、接続関係が判断される。
【0075】
図18は、T
Bの長さがL
5より大きい場合(ステップS160にて「No」の場合)の処理を示しており、先行セグメント列T
Aの後尾及び注目セグメント列T
Bの先頭からそれぞれ1つずつ候補セグメントを削除することによりT
Aの後尾候補セグメント及びT
Bの先頭候補セグメントを更新し、接続ベクトルを設定し直す。つまり、
図18(a)に示すT
Aの後尾候補セグメントS
T及びT
Bの先頭候補セグメントS
Hを削除する。
図18(b)は当該削除後の状態を示しており、先行セグメント列T
AはS
Tを削除されてT
A’となり、注目セグメント列T
BはS
Hを削除されてT
B’となり、T
A’の後尾候補セグメントS
T’とT
B’の先頭候補セグメントS
H’との間に新たな接続ベクトルとしてS
M’が設定される。そして、この状態について、上述したステップS150以降と同様の処理によりT
A’とT
B’との接続関係を調べる(ステップS172)。その結果、接続関係が認められれば(ステップS172にて「Yes」の場合)、T
B’、つまり新たな注目セグメント列T
BのフラグF(T
B)を“ON”に設定する(ステップS174)。これにより、
図18(b)に示すT
A’,S
M’,T
B’が一体の道路縁セグメント列となる。
【0076】
一方、接続関係が認められなかった場合は(ステップS172にて「No」の場合)、T
B’、つまり新たな注目セグメント列T
BのフラグF(T
B)は“OFF”に保たれる(ステップS176)。
【0077】
また、S
Mの長さが閾値L
4より大きい場合も(ステップS150にて「No」の場合)も、注目セグメント列T
BのフラグF(T
B)は“OFF”の状態に保たれる(ステップS178)。
【0078】
なお、ステップS154,S174,S176,S178の後、処理はステップS142に戻り、新たな注目セグメント列が探される。
【0079】
図19はセグメントクレンジング処理S42の例を示す模式図である。
図19(a)はセグメント接続処理S40の結果の一例を示しており、候補セグメント列T
1〜T
4が生成される一方、候補セグメントS
1が単体で残っている。
図19(b)は
図15のステップS140の処理により、
図19(a)の状態から単体の候補セグメントS
1が削除された状態となっている。
図19(c)は
図19(b)の候補セグメント列群に対しステップS142〜S178の処理を行った結果を示している。例えば、候補セグメント列T
1,T
2はステップS150,S152の条件を満たしていることにより、接続ベクトルS
M1を介して接続される。一方、候補セグメント列T
2,T
3の接続性に関しては例えば、それらの間に設定した接続ベクトルとの角度が閾値θ
2を超え(ステップS152にて「No」の場合)、かつT
3の長さが閾値L
5以下であることから(ステップS160にて「Yes」の場合)、注目セグメント列とされるT
3が削除されている(ステップS162)。そして、T
4を新たな注目セグメント列に設定してT
2,T
4の接続性が調べられ、例えば、これら候補セグメント列T
2,T
4はステップS150,S152の条件を満たしていることにより、接続ベクトルS
M2を介して接続される。その結果、T
1,S
M1,T
2,S
M2,T
4が連なった道路縁セグメント列が生成される。
【0080】
図20は平滑化処理S46を説明する模式図である。
図20(a)は、道路縁セグメント列70を一定距離(点線で示す円の半径)で切断した状態を示しており、図において“×”印が切断点である。
図20(b)は、当該切断点を順に接続して新たな道路縁セグメント列72を生成した状態を示しており、道路縁セグメント列72が道路縁セグメント列70を平滑化した結果とされる。