(57)【要約】【課題】車両走行路を表す３次元情報を処理することによって、車両走行路の具体的な特徴を精度良く表した情報を生成する。【解決手段】鉄道用軌道を含む所定広さのエリアを対象として生成されたオルソ画像をベクトル化エンジン２において処理することにより、軌道の位置および方向ならびに勾配の変化を表す３次元ベクトルを連ねた３次元ベクトル鎖１１を生成する。軌道プロファイル生成エンジン３は、この３次元ベクトル鎖１１の提供を受けて、各ベクトルにつき、そのベクトルが左右いずれのカーブに対応するかを特定し、さらにカーブ半径を求める処理や、カーブ半径から直線／曲線の属性を特定する処理などを実行する。さらに特定されたカーブの向きや属性に基づき、３次元ベクトル鎖１１を複数の区間に分割し、各区間における軌道の特徴を表す情報を集合させた軌道プロファイル１３を生成する。【選択図】図１
2010117989.tif 000002
【特許請求の範囲】
【請求項１】
車両走行路を含む所定広さのエリアの３次元情報を処理することによって、前記車両走行路の位置および長さならびに高さの変化を表す複数の３次元ベクトルを連ねたベクトル鎖を生成する第１ステップと、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、各対象ベクトルにつき、少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する第２ステップと、
前記第２ステップの判別結果に基づき、前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する第３ステップと、
第３ステップの処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する第４ステップとを、
実行することを特徴とする、車両走行路の特徴情報の生成方法。
【請求項２】
前記第１ステップでは、前記車両走行路に対する空中三角測量により生成されたオルソ画像中の前記車両走行路を特定して、その長さ方向の変化を複数の２次元ベクトルに分解して抽出し、前記オルソ画像の各画素に対応する３次元座標の中から各２次元ベクトルの始点および終点に対応する座標を特定することにより、前記複数の３次元ベクトルを決定する、請求項１に記載された車両走行路の特徴情報の生成方法。
【請求項３】
前記第２ステップでは、前記対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を前記対象ベクトルに対応する曲率半径として選択するとともに、選択された曲率半径を少なくとも１つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する、
請求項１に記載された車両走行路の特徴情報の生成方法。
【請求項４】
前記第３ステップでは、前記車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する、
請求項１に記載された車両走行路の特徴情報の生成方法。
【請求項５】
前記第４ステップでは、前記第３ステップで設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する、請求項１または４に記載された車両走行路の特徴情報の生成方法。
【請求項６】
車両走行路を含む所定広さのエリアの３次元情報を入力する入力手段と、
入力した３次元情報を処理することによって、前記車両走行路の位置および長さならびに高さの変化を表す複数の３次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段と、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する判別手段と、
前記判別手段の判別結果に基づき前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する区間設定手段と、
前記区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合ならびに勾配の変化を表す情報を作成する情報作成手段とを、
具備する、車両走行路の特徴情報の生成装置。
【請求項７】
前記入力手段は、前記車両走行路に対する空中三角測量により生成されたオルソ画像およびこのオルソ画像の各画素に対応する３次元座標の集合を入力し、
前記ベクトル鎖生成手段は、入力されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の２次元ベクトルに分解して抽出する２次元ベクトル生成手段と、前記３次元座標の集合から各２次元ベクトルの始点および終点に対応する３次元座標を特定することにより前記複数の３次元ベクトルを決定する３次元ベクトル生成手段とを、具備する、
請求項６に記載された車両走行路の特徴情報の生成装置。
【請求項８】
前記判別手段は、前記対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を当該ベクトルに対応する曲率半径として選択する手段と、選択された曲率半径を少なくとも１つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する、
請求項６に記載された車両走行路の特徴情報の生成装置。
【請求項９】
前記区間設定手段は、前記判別手段の判別結果に基づき、前記車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する、請求項６に記載された車両走行路の特徴情報の生成装置。
【請求項１０】
前記情報作成手段は、前記区間設定手段により設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する、
請求項６または９に記載された車両走行路の特徴情報の生成装置。
【請求項１１】
車両走行路を含む所定広さのエリアの３次元情報を用いて前記車両走行路の特徴を表す情報を生成する機能を、コンピュータに設定するためのプログラムであって、
前記３次元情報を処理することによって、前記車両走行路の位置および方向ならびに高さの変化を表す複数の３次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する判別手段、
前記第１の判別手段の判別結果に基づき前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する区間設定手段、
前記区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する情報作成手段、
の各手段として前記コンピュータを機能させることを特徴とする、車両走行路の特徴情報の生成処理用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鉄道用軌道（以下、単に「軌道」という場合もある。）や高速道路などの車両走行路を含む所定広さのエリアの３次元情報を用いて、当該車両走行路の特徴を表す情報を生成する方法、およびこの方法を実施するための装置ならびにプログラムに関する。
【背景技術】
【０００２】
近年、車両の走行を制御したり、運転者へのナビゲーションを行うことを目的として、車両走行路の特徴を表す情報を生成する技術が開発されている。
【０００３】
たとえば、下記の特許文献１には、道路を対象としたオルソ画像から道路を表す線分を抽出し、さらに抽出された線分情報を詳細に分析して左右の車道外側線を関数で表現した線データを作成し、これらの線データに基づき道路全体を示す道路ネットワーク線を生成することが記載されている。また、補助情報として曲率半径を算出したり、地面の３次元計測により得た３次元計測データを用いて道路の勾配を算出することも記載されている。
【０００４】
【特許文献１】特開２００８−１７０６１１号公報（段落００１７〜００２０，００２８〜００３１，００４７，００５５参照。）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１に記載されているように、車両走行路の長さ方向の変化を精度良く抽出するには、オルソ画像を使用するのが望ましい。
オルソ画像は、空中三角測量により求めた３次元座標を用いて作成されるもので、歪みが少なく、観測対象エリアを真上から観察した状態を精度良く表すことで知られている。また、空中三角測量によって、各地点の高さ情報を取得することもできるので、斜面の勾配を算出することも可能である。したがって、オルソ画像を対象に、車両走行路の長さ方向に沿うラインを抽出または設定すれば、車両走行路の具体的な長さおよび方向、ならびに勾配の変化を表す情報を得ることができる。
【０００６】
しかし、実際の車両走行路には種々のカーブや勾配があり、カーブの曲率や勾配の度合いも場所によって異なる。したがって、車両の進行方向や速度を適切に制御したり、運転者に適切なナビゲーションをするには、車両走行路中のカーブの位置や向き、走行路の曲がり度合や勾配の変化などが詳細に表された情報が必要である。
【０００７】
本発明は、上記の点に鑑み、車両走行路を表す３次元情報を処理することによって、この車両走行路の具体的な特徴を精度良く表した情報を生成することを、課題とする。
【課題を解決するための手段】
【０００８】
本発明による車両走行路の特徴情報の生成方法では、以下の第１〜第４のステップを実行する。
【０００９】
第１ステップでは、車両走行路を含む所定広さのエリアの３次元情報を処理することによって、車両走行路の位置および方向ならびに高さの変化を表す複数の３次元ベクトルを連ねたベクトル鎖を生成する。第２ステップでは、上記のベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、各対象ベクトルにつき、少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する。
【００１０】
第３ステップでは、第２ステップの判別結果に基づき、車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する。
【００１１】
第４ステップでは、第３ステップの処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。
【００１２】
第１ステップで生成される「３次元ベクトル」は、たとえば、始点および終点の３次元座標の組み合わせにより表すことができる。これらの座標は、地表上の実際の位置や高さを表すものであるのが望ましいが、これに限らず、実際の座標を一定の縮尺に基づいて変換した座標を設定してもよい。またベクトルのデータ構成自体は２次元として、別途、地表上の位置を表す３次元情報を設けることで、各ベクトルの始点および終点の３次元座標を導出できるようにしてもよい。
【００１３】
ベクトル鎖は、各３次元ベクトルの始点から終点に向かう方向が車両の進行方向に対応するように構成するのが望ましい。このようにすれば、ベクトル鎖の始点側の端縁から終点側の端縁に向かう方向に沿って各ベクトルを順に辿りながら、第２ステップおよび第３ステップの処理を実行することができる。
【００１４】
第１ステップの処理によれば、ベクトル鎖中で連続する関係にある２つのベクトルが表す経路の間には、微小であっても角度差が生じる可能性が高い。したがって、第２ステップでは、たとえば、ベクトル鎖の各ベクトルに車両の走行路に対応する順序をもって順に着目して、着目ベクトルと１つ前に着目したベクトル（着目ベクトルの始点に連結しているベクトル）とに１つの曲線を対応づけて、その曲線が進行方向に対して左右いずれの方向を向いているかにより、ベクトルに対応するカーブの向きを判別することができる。またこの曲線の曲率半径を求めることにより、上記のカーブの曲がり度合を判別することができる。
【００１５】
なお、カーブの向きの判別と曲がり度合の判別とは、いずれも着目ベクトルと１つ前のベクトルとの関係に基づいて行うことができるが、さらに、着目ベクトルと後続のベクトルとの関係を利用してもよい。またカーブの向きの判別と曲がり度合の判別とで、アルゴリズムを分けて実施してもよい。
【００１６】
また第２ステップでは、カーブの曲がり度合に関しては、１つのしきい値により直線とみなし得るレベルの曲がり度合と、曲線に相当する曲がり度合との２種類に区分するだけでもよいが、さらに複数のしきい値により、曲線に相当する曲がり度合を複数の区分に分類するのが望ましい。
【００１７】
また、上記の第２ステップにおいては、ベクトル鎖の両端縁のベクトルを対象から除外しているが、ベクトル鎖の両端縁のベクトルについても、別途、それぞれに連結するベクトルとの関係などに基づき、カーブの向きおよび曲がり度合を判別してもよい。
【００１８】
第３ステップでは、たとえば、車両走行路を、カーブの方向が切り替わる地点毎に区切ることで、車両進行方向が右方向に変化する区間（右カーブ）と左方向に変化する区間（左カーブ）とに分類することができる。さらに、カーブの向きが同一の範囲を、曲がり度合に基づき複数の区間に分割したり、所定の上限値を超える区間を、上限値以内の長さの範囲毎に分割することもできる。
【００１９】
第４ステップでは、設定された区間毎に、その区間全体の長さやカーブの向きを表す情報を作成するほか、当該区間に含まれるベクトルの情報を用いて、車両走行路の曲がり度合や勾配の変化を詳細に表した情報（曲がり度合や勾配の程度が変化する地点やその変化の程度を特定できる情報）を作成する。よって、３次元ベクトルによるベクトル鎖から車両の走行制御や運転者のナビゲーションに適した情報を生成することが可能になる。
【００２０】
つぎに、上記の方法に関して、好ましい４つの実施態様を説明する。
第１の実施態様では、第１ステップにおいて、車両走行路に対する空中三角測量により生成されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の２次元ベクトルに分解して抽出する。そしてオルソ画像の各画素に対応する３次元座標の中から各２次元ベクトルの始点および終点に対応する座標を特定することにより、前記複数の３次元ベクトルを決定する。
【００２１】
上記によれば、オルソ画像およびこれにリンクする３次元座標を用いて、実際の車両走行路の向きの変化を精度良く表すベクトル鎖を生成した後に、第２〜第４のステップを実行するので、各区間の長さや勾配などを、実際の尺度で精度良く表すことが可能になる。
【００２２】
第２の実施態様では、第２ステップにおいて、対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を対象ベクトルに対応する曲率半径として選択し、選択された曲率半径を少なくとも１つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する。
【００２３】
上記の態様によれば、ベクトル鎖の両端以外の各ベクトルについて、始点および終点に連続する各ベクトルとの関係により算出された２つの曲率半径のうちの小さい方の値が、当該ベクトルに対応する曲率半径として設定される。カーブの曲がり度合は車両の速度を決める要素として使用されることが多いので、上記のように値が小さい方の曲率半径を選択することにより、安全性を高めることができる。また選択された曲率半径を１つ以上のしきい値と照合することにより、カーブの曲がり度合を２以上のグループにより表すことが可能になる。
【００２４】
第３の態様では、第３ステップにおいて、車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する。この態様によれば、勾配が同程度になる範囲を１つの区間とすることができるので、速度制御に利用しやすい情報を得ることができる。
【００２５】
第４の態様では、第４ステップにおいて、第３ステップで設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する。
【００２６】
上記の態様によれば、各区間に対して、その区間内のベクトルに対応する勾配や曲がり度合に応じて、ベクトル単位で制限速度を設定することができる。また区間内で勾配や曲がり度合が変化しなくとも、区間の初めと終わりに相当する所定範囲で他の範囲より遅い速度を設定するなど、細かい設定を行うこともできる。このように、各区間に適用される制限速度までを含む情報を生成することにより、車両の走行制御にそのまま導入可能な情報を生成することができる。
【００２７】
つぎに、上記の方法が適用された車両走行路の特徴情報の生成装置は、車両走行路を含む所定広さのエリアの３次元情報を入力する入力手段と、入力した３次元情報を処理することによって、車両走行路の位置および長さならびに高さの変化を表す複数の３次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段とを具備する。さらにこの装置は、以下に示す判別手段、区間設定手段、情報作成手段をを具備する。
【００２８】
判別手段は、ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する。
【００２９】
区間設定手段は、上記の判別結果に基づき、車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する。情報作成手段は、区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。
【００３０】
上記の装置によれば、車両走行路を含むエリア内の３次元情報を入力することによって、先に説明した第１〜第４の各ステップを実行して、車両走行路の特徴を表す情報を作成することができる。
【００３１】
さらに前出の第１の態様による方法を実施する装置では、入力手段は、車両走行路に対する空中三角測量により生成されたオルソ画像およびこのオルソ画像の各画素に対応する３次元座標の集合を入力する。またベクトル鎖生成手段は、入力されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の２次元ベクトルに分解して抽出する２次元ベクトル生成手段と、上記の３次元座標の集合から各２次元ベクトルの始点および終点に対応する３次元座標を特定することにより前記複数の３次元ベクトルを決定する３次元ベクトル生成手段とを具備する。
【００３２】
第２の態様による方法を実施する装置では、判別手段は、対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を当該ベクトルに対応する曲率半径として選択する手段と、選択された曲率半径を少なくとも１つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する手段とを具備する。
【００３３】
さらに、第３の態様を実施する装置では、区間設定手段は、判別手段の判別結果に基づき、車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する。
【００３４】
さらに、第４の態様を実施する装置では、情報作成手段は、区間設定手段により設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する。
【００３５】
さらに、本発明では、上記のベクトル鎖生成手段、判別手段、区間設定手段、および情報作成手段として、コンピュータを機能させるためのプログラムを提供する。
【発明の効果】
【００３６】
本発明によれば、車両走行路を含むエリアの３次元情報を用いて、車両走行路の位置および長さならびに高さの変化を表す複数の３次元ベクトルを連ねたベクトル鎖を生成した後、このベクトル鎖中の各ベクトルの関係に基づいて、車両走行路を複数の区間に分割し、各区間の長さおよびカーブの向き、ならびに区間内における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。よって、車両走行路の具体的な特徴を精度良く表した情報を生成して、車両の走行制御や運転者へのナビゲーションなどに役立てることが可能になる。
【発明を実施するための最良の形態】
【００３７】
［システムの概略説明］
図１は、この発明が適用された軌道プロファイル生成システムの機能ブロック図を示す。このシステムは、列車に搭載されたコンピュータ（「車上装置」と呼ばれる。）が列車の走行を制御する目的で使用する情報を生成するためのもので、１台のコンピュータ内または複数台のコンピュータによるネットワークシステム内に設定される。
【００３８】
このシステムでは、オルソ画像のほか、オルソ画像に派生して生成されたＤＳＭ情報（Digital Surface Model）や、地図情報とオルソ画像との関係を表すワールドファイルなどを利用する。これらは、いずれも個別のデータファイル５，６，７として構成されて、コンピュータの図示しないメモリ（ハードディスク）内に格納される。
【００３９】
図中、ＧＵＩ（グラフィカル・ユーザ・インターフェース）アプリケーション１は、図示しないモニタや入力部（キーボード、マウスなど）と連動して、ユーザによる設定操作を受け付けながら、３次元ベクトル情報を生成する処理、生成した３次元ベクトル情報を編集する処理、および３次元情報から軌道プロファイルを生成する処理を実行する。
【００４０】
ベクトル化エンジン２は、オルソ画像およびＤＳＭ情報から、鉄道用軌道の経路を表す３次元ベクトル情報１０を生成する。この３次元ベクトル情報１０は、複数の３次元ベクトルの集合（以下、これを「３次元ベクトル鎖」という。）１１を複数含むものである。
【００４１】
生成された３次元ベクトル情報１０は、ＧＵＩアプリケーション１に渡される。ＧＵＩアプリケーション１は、この３次元ベクトル情報１０から処理対象の３次元ベクトル鎖１１を順に取り出して、演算パラメータとともに軌道プロファイル生成エンジン３に出力する。なお、演算パラメータには、各種判定のためのしきい値や判定用テーブルなどが含まれる。
【００４２】
軌道プロファイル生成エンジン３は、供給された３次元ベクトル鎖１１を処理することによって、鉄道用軌道の特徴を表す情報群（以下、「軌道プロファイル」という。）１３を生成する。生成された軌道プロファイル１３は、ＧＵＩアプリケーション１によって車上装置用のデータベース９に格納される。このデータベース９が各列車の車上装置に移植され、走行制御に利用されることになる。
【００４３】
また、ＧＵＩアプリケーション１は、軌道プロファイル１３の生成に用いられる前の３次元ベクトル情報１０を適宜モニタに表示して、ユーザによる簡易な補正作業を受け付け、３次元ベクトル情報１０を編集する。具体的な編集は、編集対象の３次元ベクトル鎖１０をＤＸＦファイル８に変換し、ＣＡＤ専用のソフトウェアによる編集エンジン４を用いて行われる。
【００４４】
図２は、上記システムで使用されるオルソ画像を模式的に表したものである（画像全体の中から軌道の部分を抜き出し、拡大したイメージを示す。）。
この画像は、上空での空中三角測量により生成されたもので、各地点の真上から観測した状態が現れるように歪みが除去されている。前述のＤＳＭ情報も、この空中三角測量により求められたもので、オルソ画像中の各画素に対応する高さ情報（Ｚ座標）を有する。また、ワールドファイルを参照することによって、このオルソ画像の１画素に対応する地点における地図上の座標（Ｘ，Ｙ座標）を特定することができる。
【００４５】
図２の画像には、２本の軌道２０Ａ，２０Ｂのほかに、架線支持用のビーム２５およびその影２４が現れている。このほか、作図の都合上、表していないが、各軌道２０Ａ，２０Ｂの近傍には、バラストからの反射などによる明暗差や架線などが現れている。
【００４６】
なお、実際のオルソ画像はカラー画像であるが、ベクトル化エンジン２により処理される際には、グレースケール画像に変換される。また、図２では、作図の都合上、ビーム２５を黒線で表しているが、実際の画像では、ビーム２５の色彩は白色系である。
【００４７】
上記のオルソ画像はＧＵＩアプリケーション１により表示され、表示画面上の軌道に対し、ユーザにより処理範囲の始点および終点が指定される。ただし、この指定より前にベクトル化エンジン２は、このオルソ画像を処理して２次元ベクトル段階の処理を終えており、ユーザが始点および終点を指定すると、その指定に応じた範囲の３次元ベクトル鎖を生成する。
【００４８】
３次元ベクトル鎖の生成が終了すると、表示画面は図３に示すようなものに変更される。この画面には、図３と同様のオルソ画像に、ベクトル化エンジン２により生成された３次元ベクトル鎖の各ベクトルを表す線分画像２６が表示されている。
【００４９】
ユーザは、表示された３次元ベクトル鎖を確認し、適宜、不要なベクトルを削除したり、欠落しているベクトルを補完するなどの補正作業を行うことができる。また、ユーザが３次元ベクトル鎖の抽出精度を確認して確定操作を行うと、確定された３次元ベクトル鎖が軌道プロファイル生成エンジン３に渡され、軌道プロファイルの生成処理が開始される。
【００５０】
以下、ベクトル化エンジン２および軌道プロファイル生成エンジン３により実行される処理を、詳細に説明する。
【００５１】
［ベクトル化エンジン２による処理について］
図４は、ベクトル化エンジン２により実行される処理の概略手順を示すフローチャートである。この図４によれば、この実施例のベクトル化処理は、フィルタ処理、２次元ベクトル情報生成処理、ベクトル推定処理、３次元ベクトル情報生成処理に大別される。
以下、このフローチャートの流れに沿いながら、適宜、他の図面を参照して上記３種類の処理の詳細を説明する。
【００５２】
（１）フィルタ処理
１−１）軌道の特徴の強調処理（ステップＳ１１）
このステップＳ１１は、オルソ画像中の鉄道用軌道２０Ａ，２０Ｂを、本来とは異なる特徴パターンに変換することによって、これらを容易に検出できるようにすることを目的とするものである。以下、この変換処理を模式的に示した図５〜７を用いて、第１ステップの処理の原理を説明する。
【００５３】
一般に、オルソ画像中のレールや枕木は、周囲より暗く、さらにレールの方が枕木より暗くなる（発明者の計測では、２５６階調の画像で約４０階調の差が認められた。）。また、レール間の間隔は枕木間の間隔より広く、これらの間隔はほぼ一定である。
ステップ１１では、これらの特性を利用した最小値フィルタを使用することにより、図５に例示するような変換処理を行う。  
【００５４】
図５の左手の図は、オルソ画像の鉄道用軌道に対応する範囲を拡大した模式図である。
図中の点線で表す矩形枠は１画素に相当するもので、具体的には約１０ｃｍ四方のエリアに相当する。また、この図では、軌道の方向が画像の上下方向に対応するものとして、各レール２１，２２の幅を１画素、レール２１，２２間の画素数（レール２１，２２の内側端縁の間にある画素の数をいう。）を９画素、枕木２３の縦幅を２画素、枕木２３間の画素数（１つの枕木２３とその隣の枕木２３との端縁間に存在する画素の数をいう。）を４画素としている。
【００５５】
この実施例では、オルソ画像に５×５のサイズの最小値フィルタ１００を適用する。この最小値フィルタ１００の一辺の長さ（５画素）は、画像中のレール２１，２２間の画素数（９画素）より小さく、枕木２３間の画素数（４画素）より大きい。また、最小値フィルタ１００により変換された画像では、右手の図に示すように、各レール２１，２２が左右に２画素ずつ膨張して、５画素幅の線状領域Ｌ１，Ｌ２が生成される。また、枕木２３については、横幅が５画素に縮小されるが、縦方向は上下に２画素ずつ膨張されて枕木２３同士が一体化され、その結果、５画素幅の線状領域Ｌ３が生成される。また、線状領域Ｌ１，Ｌ２には元のレール２１，２２の濃度が反映され、線状領域Ｌ３には元の枕木２３の濃度が反映される。
【００５６】
上記の変換処理の原理について説明する。
最小値フィルタとは、原画像中のフィルタに対応づけられた範囲内の最小濃度（最も暗い画素の濃度）を、フィルタの中心位置の画素に適用するものである。図６は、図２に示したオルソ画像に対し、最小値フィルタ１００を左から右に向かう方向に走査した例を示す。図３は、同じ最小値フィルタ１００を上から下に向かう方向に走査した例を示す。
【００５７】
図６（１）は、５×５の最小値フィルタ１００の右一列が左側のレール２１に対応づけられた状態を示す。この場合の最小値フィルタ１００に対応する範囲では、レール２１の濃度が最小になるから、フィルタ１００の中央の画素、すなわちレール２１から２画素離れた位置にある画素にレール２１の濃度が採用される。
【００５８】
図６（２）は、最小値フィルタ１００の左一列が左側のレール２１に対応づけられた状態を示す。この場合の最小値フィルタ１００に対応する範囲には、レール２１のほか枕木２３も含まれるが、枕木２３よりレール２１の方が暗くなるから、この場合にも、フィルタ１００に対応する範囲ではレール２１の濃度が最小の濃度となる。よってフィルタ１００の中央の画素には、レール２１の濃度が採用される。
【００５９】
またここには図示していないが、最小値フィルタ１００が図６（１）の状態から図６（２）の状態まで移動する間の各位置においても、同様に、フィルタ１００に対応する範囲では、レール２１の濃度が最小になる。よって、レール２１より２画素外側の位置からレール２１より２画素内側までの範囲にある各画素では、いずれもレール２１の濃度が採用されることになる。
【００６０】
つぎに図６（３）は、最小値フィルタ１００が、図６（２）の状態からさらに１画素右にずれた状態を示す。この段階で最小値フィルタ１００に対応する範囲にはレール２１が含まれない状態になるから、この範囲では枕木の濃度が最小の濃度となる。よって、この場合のフィルタ１００の中央に対応する画素には、枕木２３の濃度が採用される。
【００６１】
この後、最小値フィルタ１００が右側に移動して、右側のレール２２がフィルタ１００内に含まれる状態（図６（３）の位置から５画素分移動したとき）になるまでは、フィルタ１００の中央に対応する画素には、いずれも枕木２３の濃度が採用される。しかし、右側のレール２１が最小値フィルタ１００に含まれる状態になると、再び、レール２１の濃度が採用される状態となる。右側のレール２１に対しても、フィルタ１００による作用は、左側のレール２１に対するのと同様である。
【００６２】
したがって、左右のレール２１，２２は、それぞれ内外に２画素ずつ膨張して５画素幅になる。しかし、この膨張幅は、レール２１，２２間の画素数の１／２より小さいから、各レール２１，２２が膨張した後も、枕木２３の画像が残る余地がある。具体的には、枕木２２は、レール２１の膨張によって、９画素幅から５画素幅になる。
【００６３】
図７は、最小値フィルタ１００を、図６（３）の状態から、１画素ずつ下方に移動させた状態を示す。最小値フィルタ１００の一辺の長さは、枕木２３間の画素数（４画素）より大きく設定されているので、上下方向のいずれの位置にあっても、常に最小値フィルタ１００内に枕木２３の画素が含まれる。したがって図７（１）（２）（３）に示すように、レール２１，２２間のレール２１，２２が入らない範囲で最小値フィルタ１００が移動する場合には、どの位置においてもフィルタ１００の中央に対応する画素に枕木２３の濃度が採用される。この結果、各枕木２３の間にある画素の濃度はすべて枕木２３の濃度に置き換えられて、枕木２３間の間隔が消失し、各枕木２３が一体化される。
【００６４】
上記の原理に基づく処理を行うことにより、各レール２１，２２の幅が広がって線状領域Ｌ１，Ｌ２が生成されるとともに、これらの間に、枕木２３の濃度を反映した線状領域Ｌ３が生成される。この結果、鉄道用軌道のオルソ画像は、図２の右手に示すように、枕木２３による線状領域Ｌ３を中心にして、この領域Ｌ３と当該領域Ｌ３より暗い２つの線状領域Ｌ１，Ｌ２（レール２１，２２による線状領域）とが幅方向に沿って並んだ状態の画像に変換される。
【００６５】
この実施例では、事前にベクトル化エンジン２に、モデルのオルソ画像中のレール２１，２２および枕木２３に対する計測により定めた最小値フィルタのサイズをセットしておき、この最小値フィルタを処理対象のオルソ画像の全範囲にわたって走査して、各画素の変換後の濃度を決定する。なお、最小値フィルタのサイズは、オルソ画像の分解能の変更などに応じて、適宜変更することができる。
【００６６】
最小値フィルタ１００はオルソ画像中の鉄道用軌道以外の部分にも適用されるので、周囲より暗い部位があれば、その部位もレール２１，２２や枕木２３と同様に、各方向に２画素ずつ膨張する。しかし、鉄道用軌道と同様の形状のものでなければ、図６〜７により説明したような変換が行われるとは考えにくい。よって、上記構成の最小値フィルタを用いた変換処理によれば、線状領域Ｌ１〜Ｌ３が幅方向に沿って並んでいる特徴パターンとして、鉄道用軌道を他の物から分離して抽出することが可能になる。
【００６７】
図８は、図２に示したオルソ画像に最小値フィルタを適用する処理により生成された変換画像を模式的に示す。この画像では、各軌道２０Ａ，２０Ｂが、それぞれレール２１による２本の線状領域Ｌ１，Ｌ２の間に枕木２２による線状領域Ｌ３が挟まれた形態の特徴パターンに変換される。ただし、この画像には、ビーム２５や影２４を反映したノイズＮ１，Ｎ２が出現するほか、各レールの周囲にも、微小な明暗差を反映したノイズ（図示せず。）が出現する。特に、ノイズＮ１，Ｎ２は、軌道２０Ａ，２０Ｂの幅方向にまたがって発生するため、ベクトル鎖が分断される原因になる。
【００６８】
１−２）線形特徴の抽出処理（ステップＳ１２）
ステップＳ１２では、最小値フィルタにより変換された画像を対象に、ラプラシアン・ガウシアンフィルタ（以下「ＬｏＧフィルタ」と略す。）を適用して、線形の特徴を抽出する。具体的には、変換後のレールや枕木の幅長さの１／２程度の値（図５〜７の例で言えば、２．５前後）がカーネルパラメータとして設定されたＬｏＧフィルタを、変換後の画像に走査する。また、ＬｏＧフィルタからの出力を正負２種類のしきい値と比較し、出力が正のしきい値を上回った範囲と負の値を下回った範囲とを抽出し、その抽出結果を表す処理結果画像を生成する。
【００６９】
ＬｏＧフィルタは、走査方向の前後より濃度が低い範囲に対応づけられたときには正の方向に変化するデータを出力し、走査方向の前後より濃度が高い範囲に対応づけられたときには負の方向に変化するデータを出力する。したがって、周囲より濃度が低いレール２１，２２に対応する線状領域の幅方向にＬｏＧフィルタが対応づけられたときには、その対応範囲が正のしきい値により検出される。またレール２１，２２より濃度が高い枕木２３に対応する線状領域Ｌ３の幅方向にＬｏＧフィルタが対応づけられたときには、その対応範囲が負のしきい値により検出される。よって、ＬｏＧフィルタを画像の全範囲にわたって走査することにより、レール２１，２２および枕木２３に対応する線状領域Ｌ１，Ｌ２，Ｌ３を検出することができる。
【００７０】
ただし、このＬｏＧフィルタは、単に濃度の変化に応じた処理を行うだけであるから、、ノイズＮ１，Ｎ２などの細長形状の特徴も検出されてしまう。
【００７１】
１−３）軌道中心部の抽出処理（ステップＳ１３）
この処理では、ＬｏＧフィルタの適用により生成された処理結果画像を対象に、鉄道用軌道に対応する特徴を特定し、さらにその特徴の中心部を抽出する。
【００７２】
具体的には、処理結果画像の各画素に順に着目して、正のしきい値を超えた画素を検索する。そして、該当する画素Ｇが見つかると、図９に示すように、この画素Ｇを基準に、上下および左右ならびに斜め４５度の各方向を検索方向に設定して、検索を実行する。
【００７３】
この検索は、「正のしきい値を超えた画素がｎ個連続し、次に負のしきい値を超えた画素がｍ個連続し、さらに正のしきい値を超えた画素がｎ個連続している画素の配列を見つけること」を目的とする。ｎ，ｍの値は、先の最小値フィルタの適用により変換されるレール２１，２２や枕木２３の幅に応じて定められる。たとえば図５の例であれば、ｎ＝５，ｍ＝５となるが、誤差を考慮して、ｎ，ｍとも所定の数値範囲を設定してもよい（たとえば４≦ｎ≦６，４≦ｍ≦６）。
【００７４】
ステップＳ１３では、正のしきい値を超えた画素Ｇを見つける都度、上記の４方向への検索を実行する。さらに条件にあてはまる画素配列が見つかると、その配列中の中央部の画素（具体的には、負のしきい値を超えた画素群中の中央位置にある画素およびその前後の３画素程度）を抽出する。これにより軌道の中心部に対応する画素群が検出される。また検索により検出された画素配列に含まれた画素は、以後の検索対象から除外される。
【００７５】
図１０は、上記の検索および検索により見つけた画素配列の中心部を抽出する処理の結果を示す。この処理結果は、具体的には、抽出された中心部を構成する画素を黒画素（値が「１」）とし、その他の画素を白画素（値が「０」）とする２値画像として表される。
【００７６】
この処理により、１本の軌道の画像から生成された線状領域Ｌ１，Ｌ２，Ｌ３の組み合わせ毎に、その長手方向を表す黒画素群が抽出される。この段階でも、ノイズ成分による黒画素群も多少生成され、図中のＤ１，Ｄ２に示すように、軌道を表す黒画素群に途切れが生じている箇所もあるが、各線状領域Ｌ１、Ｌ２，Ｌ３が明確に現れている範囲での黒画素群は、殆ど途切れずに連なった状態となる。
【００７７】
１−４）ノイズ除去（ステップＳ１４）
このステップでは、中心部の抽出結果を表す画像（図１０）を対象に、孤立点除去、膨張・収縮処理、端点・突起除去の各処理を実行する。いずれも、２次元画像のノイズを除去する方法としてよく知られたものであるが、以下に簡単に説明しておく。
【００７８】
いずれの処理でも、３×３のフィルタを２値画像に走査し、フィルタ内の画像データが所定の条件を満たしたときに、中央の画素（以下、「着目画素」という。）の値を変更する。
【００７９】
孤立点の除去処理では、図１１に示すように、着目画素が「１」で、周囲８近傍の画素がすべて「０」であったとき、着目画素を「０」に変更する。
【００８０】
膨張処理では、図１２（ａ）に示すように、着目画素が「０」で、周囲８近傍に１つでも「１」の画素がある場合に、着目画素を「１」に変更する。収縮処理では、図１２（ｂ）に示すように、着目画素が「１」で、周囲８近傍に１つでも「０」がある場合に、着目画素を「０」に変更する。この実施例では、まず膨張処理を行った後に、膨張処理後の画像を対象に収縮処理を行うことにより、抽出された黒画素群を円滑にし、かつ微小なラインの途切れを復元するようにしている。
【００８１】
端点の除去処理では、図１３に示すように、着目画素が「１」で、周囲８近傍中に「１」の画素が１つしかない場合に、着目画素を「０」に変更する。突起の除去処理では、フィルタ内に図１４の（ａ）〜（ｄ）のいずれかのパターンが成立したときに、着目画素を「０」に変更する。端点や突起の除去処理も、中心部を表す黒画素群を円滑化することを目的とするものである。
【００８２】
１−５）細線化処理（ステップＳ１５）
このステップでは、ノイズ除去後の２値画像中の黒画素群を対象に、その画素群の中心線を抽出することによって、複数の画素を含む幅を持つ黒画素群を１画素幅の細線に変換する。
図１５は、この処理により細線化された後の２値画像を示す。つぎの２次元ベクトル情報の生成処理は、この２値画像を対象に実施されることになる。
【００８３】
（２）２次元ベクトル情報生成処理
２−１）チェーンコードの設定（ステップＳ２１）
このステップは、上記の細線化された画像を対象に、黒画素の連なり状態をコード化するものである。具体的には、図１６（１）に示すように、着目画素の周囲８近傍にそれぞれ０〜７のコードを割り当てるというルールに基づき、実際の着目画素に、それぞれその画素の連結状態に応じたコードを割り当てる。
【００８４】
図１６（２）は、黒画素群の連結状態の例と、この黒画素群から設定されたチェーンコードを対応づけて示す。このようなチェーンコードを生成するには、まず先頭の画素に着目して、この画素の周囲８近傍を検索して着目画素に連続する画素を見つけ、その連続状態に応じたチェーンコードをあてはめる。この後は、新たに見つけた画素に着目して、同じ処理を繰り返すことにより、図１６（２）の下段に示すようなコードが生成される。
【００８５】
２−２）２次元ベクトル鎖の生成（ステップＳ２２）
ステップＳ２２では、上記のチェーンコードを参照しながら、チェーンコードが表す黒画素群から所定数の２次元ベクトルの連結体（２次元ベクトル鎖）を生成する。
【００８６】
図１７は、先の図１６（２）の黒画素群に対してステップＳ２２の処理を実行した例を示す。この図に基づき説明すると、まず、先頭の画素および最後の画素をそれぞれ端点Ａ，Ｂとしてベクトルｆ１を設定する（図１７（１））。そして前出のチェーンコードを参照して、Ａ−Ｂ間に含まれる各画素をたどりながら、各画素のベクトルｆ１に対する距離を算出し、この距離を所定のしきい値ＥＲと照合する。
【００８７】
ここで、上記の距離がしきい値ＥＲを超える画素が見つかると、この画素を点Ｃとして、ベクトルｆ１を削除し、新たに点Ａと点Ｃとを結ぶベクトルｆ２と、点Ｃと点Ｂとを結ぶベクトルｆ３とを設定する（図１７（２））。
【００８８】
これらのベクトルｆ２，ｆ３についても、端点間にある各画素との距離を求める。そしてしきい値ＥＲを上回る画素が見つかった場合には、上記と同様の手法でベクトルを分割する。一方、しきい値ＥＲを上回る画素が見つからなかった場合には、その時点でのベクトルを確定する。
【００８９】
図１７の例の場合は、点Ｃを一方の端点として設定されたベクトルｆ２とベクトルｆ３のうち、ベクトルｆ３はそのまま確定される（図１７（３））。一方、ベクトルｆ２については、このベクトルｆ２に対する距離がしきい値ＥＲを超える画素が見つかったため、ベクトルｆ２を削除し、見つかった画素を点Ｄとして、点Ａと点Ｄとを結ぶベクトルｆ４と、点Ｄと点Ｃとを結ぶベクトルｆ５とを設定する（図１７（４））。ベクトルｆ４，ｆ５に対する端点間の画素の距離は、いずれもしきい値ＥＲ以内となるので、これをもって、これらのベクトルを確定する（図１７（５））。
【００９０】
このように、がたついて連結していた黒画素群の連結構造を分析して複数のベクトルを設定することにより、２次元ベクトル鎖が生成される。この２次元ベクトル鎖の具体的な情報は、各端点の座標をベクトル毎に組み合わせたものになる。
なお、この段階の２次元ベクトルの向きは定まっていない。この後、ユーザがオルソ画像上で始点と終点とを指定すると、各ベクトルの始点に近い方の端点が始点に設定され、終点に近い方の端点が終点に設定されて、ベクトルの向きが特定される。
【００９１】
（３）ベクトル推定処理
上記までの処理により、基本的な２次元ベクトル鎖が出来上がるが、この段階の２次元ベクトル鎖には、ノイズＮ１，Ｎ２などの影響により途切れた箇所が含まれる場合がある。このベクトル推定処理は、このような２次元ベクトル鎖の途切れを解消することを目的とするものである。
【００９２】
３−１）２次元ベクトル鎖の結合（ステップＳ３１）
この処理では、他のベクトルに連結されていない端点を有するベクトルのうち、条件にあてはまるもの同士を対象に、両者を結合するためのベクトルを補完する。
【００９３】
図１８は、ベクトルを結合する例を示す。
この実施例では、２つのベクトルａ，ｂの結合について２つの条件を設定し、ベクトルａ，ｂがこれらの条件を２つとも満たしていれば、ベクトルａ，ｂ間に、これらを結ぶベクトルｃを補完するようにしている。
【００９４】
具体的には、２つのベクトルａ，ｂがほぼ平行であること、言い換えれば、各ベクトルａ，ｂの方向の差が所定の角度範囲内になることを第１の条件とする。さらに、ベクトルａ，ｂを結ぶ直線に対して各ベクトルａ，ｂのなす角度θ１，θ２がそれぞれ所定のしきい値以上になる（ただし、１８０度以下）ことを第２の条件とする。
【００９５】
後記するように、鉄道用軌道の向きは少なくとも２０ｍは一定に保たれるように設定されている。したがって、２次元段階でも、２０ｍに対応する範囲内でベクトルの方向が大きく変化することはない、という大前提に基づけば、第１の条件のしきい値を０度に近い値に設定し、第２の条件に関するしきい値を１８０度に近い値にするべきである。
【００９６】
ただし、実際の画像では、オルソ画像の誤差、ノイズ、周囲の明暗などの影響によって、レール２１，２２や枕木２３から変化した線状領域Ｌ１〜Ｌ３にがたつきが生じ、その影響で途切れ部分の前後のベクトル間の段差が大きくなる可能性がある。
【００９７】
したがって図１９に示すように、第２の条件に関する角度θ１，θ２（いずれも１８０度より小さい方の角度）が１８０度からかなり離れている場合でも、ベクトル間の距離が小さい場合には結合するのが望ましい。一方で、ベクトルａ，ｂ間の距離が比較的大きい場合には、これらのベクトルａ，ｂが同じ軌道に対応するとは考えにくいから、結合対象から除外する必要がある。
【００９８】
つぎに、単純に角度θ１，θ２が１８０度に近いものを優先して結合すると、図２０に示すような問題が生じる。
図２０は、２次元ベクトル鎖に複数の分断箇所がある例を示すものである。本来は、図２０（１）に示すように、最も近いベクトル同士（ベクトルａとｂ、ベクトルｂとｃ）を結合する必要があるが、角度θ１，θ２が１８０度に近い組み合わせを優先するようなロジックを設定すると、図２０（２）に示すように、近い方のベクトルの組み合わせが無視されて、離れた位置にあるベクトルａとベクトルｃとが結合される可能性がある。
【００９９】
上記の問題点に鑑み、この実施例では、他のベクトルに連結されていない端点を有するベクトルを第１の条件を満たすもの毎に組み合わせ、組み合わせ毎に下記の［１］式により評価値Ｖ（ａ，ｂ）を求め、評価値Ｖ（ａ，ｂ）が高い順に、ベクトル間の結合を行うようにしている。ただし、評価値Ｖ（ａ，ｂ）が所定のしきい値以下であったものは、結合対象から除外される。
【０１００】
【数１】
2010117989.tif 000003
【０１０１】
上記［１］式の意味について、図２１を参照して説明する。［１］式では、ベクトルａ，ｂを結ぶ直線ｍとベクトルａとのなす角度をθ１（ａ，ｂ）とし、当該直線ｍとベクトルｂとのなす角度をθ２（ａ，ｂ）とする。なお、θ１（ａ，ｂ），θ２（ａ，ｂ）とも、ベクトルａ，ｂと直線ｍとがなす角度のうち、１８０度以下になる角度を指す。また、Ｄ（ｘ，ｙ）はベクトルａ，ｂ間の距離である。
【０１０２】
［１］式中の右辺の分子の関数Ｕ（ｘ）はｘ＞０のときに１、ｘ≦０のときに０となる単位ステップ関数である。この関数Ｕ（ｘ）のｘの部分に組み込まれているＴ（Ｄ（ａ，ｂ））は距離Ｄ（ａ，ｂ）に応じて値が変化する関数であって、角度θ１（ａ，ｂ），θ２（ａ，ｂ）に対するしきい値として機能する。さらに、この実施例では、この関数Ｔ（Ｄ（ａ，ｂ））について図２２に示す２通りの関数を設定し、距離Ｄ（ａ，ｂ）の値に応じて使用する関数を切り替えるようにしている。
【０１０３】
図２２によれば、Ｔ（Ｄ（ａ，ｂ））はベクトルａ，ｂ間の距離が０のときに最小値の１３５度となり、Ｄ（ａ，ｂ）が８ｍのときに１７３度となる。また、距離Ｄ（ａ，ｂ）が８ｍに達するまでは、Ｄ（ａ，ｂ）に比例する関係をもって増加するが、Ｄ（ａ，ｂ）が８．０を超えた後は変化が緩やかになって、徐々に１８０度に近づく。
【０１０４】
［１］式によれば、角度θ１（ａ，ｂ），θ２（ａ，ｂ）のいずれか一方がＴ（Ｄ（ａ，ｂ））以下になると、評価値Ｖ（ａ，ｂ）は０となる。またθ１（ａ，ｂ），θ２（ａ，ｂ）の双方がＴ（Ｄ（ａ，ｂ））より大きくなる場合には、Ｖ（ａ，ｂ）は０より大きくなる。
【０１０５】
また、θ１（ａ，ｂ），θ２（ａ，ｂ）の値がともにＴ（Ｄ（ａ，ｂ））より大きく、それぞれ一定の値をとる場合でも、距離Ｄ（ａ，ｂ）が大きくなると、分母の［Ｄ（ａ，ｂ）］２の影響により評価値Ｖ（ａ，ｂ）が下がる。また、距離Ｄ（ａ，ｂ）が８ｍを大きく上回ると、しきい値Ｔ（Ｄ（ａ，ｂ））が１８０度に近づくため、θ１（ａ，ｂ）やθ２（ａ，ｂ）がＴ（Ｄ（ｘ，ｙ））より小さくなって、評価値Ｖ（ａ，ｂ）が０となる可能性が高まる。すなわち、ベクトルａ，ｂ間の距離が大きくなると、これらの間の段差が殆どない状態でなければ、これらのベクトルａ，ｂを結合することはできなくなる。
【０１０６】
これに対し、距離Ｄ（ａ，ｂ）が８ｍより小さい場合には、しきい値Ｔ（Ｄ（ａ，ｂ））が１８０度よりかなり小さくなるので、ある程度の段差があるベクトルでも、結合が許容される。よって、図１９に示したような結合処理を実現することができる。
【０１０７】
また、［１］式の右辺の分子は、ベクトル間の距離の大小に関係なく、θ１（ａ，ｂ），θ２（ａ，ｂ）がしきい値Ｔ（Ｄ（ａ，ｂ））より大きくなれば１になるのに対し、分母はベクトル間の距離Ｄ（ａ，ｂ）が小さいほど値が小さくなり、これにより評価値Ｖ（ａ，ｂ）が引き上げられる。また、分母中の［（１８０−θ１（ａ，ｂ））＋（１８０−θ２（ａ，ｂ））＋１］の部分は、θ１（ａ，ｂ），θ２（ａ，ｂ）が１８０度に近づくにつれて、小さな値となり、これにより評価値Ｖ（ａ，ｂ）の値が引き上げられる。
【０１０８】
よって、あるベクトルに対し、θ１（ａ，ｂ）およびθ２（ａ，ｂ）がそれぞれしきい値Ｔ（Ｄ（ａ，ｂ））を上回るようなベクトルの組み合わせが複数存在する場合には、これらの中で距離が最小になるものが結合対象となる。また、ベクトル間の距離が殆ど変わらない組み合わせが複数ある場合には、各ベクトルａ，ｂ間の段差がより小さい組み合わせが結合対象となる。したがって、先の図２０（２）に示したような誤った結合が生じるのを防止することができる。
【０１０９】
３−２）始点・終点との対応づけ（ステップＳ３２）
この処理は、ユーザが原画像（オルソ画像）の表示画面上で指定した始点および終点に対応する２次元ベクトル鎖を特定するものである。特定された２次元ベクトル鎖が始点や終点まで延びていない場合には、無理に補完せずに、抽出されている範囲での特定に留める。また複数の軌道の始点・終点が指定された場合には、指定されたもの毎に２次元ベクトル鎖を特定する。
なお、上記の始点・終点は、始点から終点に向かう方向が列車の進行方向に対応するように行われる。またこの指定により、各２次元ベクトルの向きも、列車の進行方向に対応する方向に確定される。
【０１１０】
（４）３次元ベクトル情報生成処理
４−１）３次元ベクトル鎖の生成（ステップＳ４１）
この処理は、上記のステップＳ３２により特定された２次元ベクトル鎖を対象に、ＤＳＭ情報から、２次元ベクトル鎖に含まれる各ベクトルの始点、終点に対応する高さ情報（Ｚ座標）を読み出し、各始点、終点に対応づける。また、ワールドファイルを参照して、始点および終点に対応するＸ，Ｙ座標を特定する。これにより、ピクセル単位の２次元ベクトルは実際の地点や高さを表す３次元ベクトル鎖に変換される。
【０１１１】
４−２）ノイズ除去（ステップＳ４２）
このステップＳ４２では、３次元ベクトル鎖のノイズを除去する処理として、以下の２つの処理を実行する。
【０１１２】
まず１つ目の処理として、鉄道用軌道にはあり得ない勾配（３５‰（パーミル）以上）を持つベクトルを３次元ベクトル鎖から除外する。具体的には、３次元ベクトル鎖に含まれる各３次元ベクトル毎に、下記の［２］式により、ベクトルの勾配を求める。［２］式中の各変数は、図２３に示すように、ベクトルの始点、終点の座標である。また、算出された勾配は１ｋｍ単位のものに換算される。
【０１１３】
【数２】
2010117989.tif 000004
【０１１４】
つぎに、２つ目のノイズ除去処理として、先のステップＳ３１で補完されたベクトルのうち、ベクトル長の短いベクトルを前後のベクトルに統合する処理を行う。ステップＳ３１では、２次元ベクトルの連なりを完成させるために、短い途切れの前後のベクトル間の段差を許容して途切れ部分にベクトルを補完したが、元来、鉄道用軌道は滑らかに変化するはずであるから、短い間隔で向きが変化するベクトルに基づいて軌道プロファイルを生成すると、現実の軌道の特性に合わない情報が生成される可能性がある。
【０１１５】
そこでこの実施例では、ステップＳ３１で補完されたベクトルに対応する３次元ベクトルの長さを算出し、この長さが所定の基準値以下であれば、図２４に示すように、このベクトルを、前後のベクトルのうちの短い方と統合するようにしている。なお、図２４は、３次元ベクトル鎖を上方から見たものである。
【０１１６】
さらにこの実施例では、上記の統合処理を行ったベクトルについて、同様に長さを算出して基準値との比較を行い、ベクトルの長さが基準値以下であれば、再度の統合処理を行うようにしている。以下、統合後のベクトルが基準値を上回る状態になるまで、上記の処理を繰り返す。
【０１１７】
上記の１番目のノイズ除去処理によれば、生成された３次元ベクトル鎖の中に、軌道以外の要素（ビーム２５などによるもの）と連結しているベクトルがある場合には、その連結を断ち切って、３次元ベクトル鎖の精度を高めることができる。また２番目のノイズ除去処理によれば、３次元ベクトル鎖を、軌道に応じた滑らかな変化を表すものに補正することができる。よって、これらの処理により、以後の軌道プロファイルの生成処理を安定して行うことが可能になる。
【０１１８】
なお、２番目のノイズ除去処理は、軌道以外の要素により短い２次元ベクトル鎖が生成されている場合に、これを除外する目的に使用することもできる。また、２番目のノイズ除去処理は、３次元ベクトル鎖に対するものに限らず、ステップＳ３１の結合処理後の２次元ベクトル鎖に対して行ってもよい。
【０１１９】
［軌道プロファイル生成エンジンによる処理について］
この実施例では、３次元ベクトル鎖中の各３次元ベクトルを分析して、ユーザにより指定された範囲内の鉄道用軌道を所定数の区間に分割する。そして、区間毎に、その区間内の軌道の特徴および制限速度を属性として設定し、これらの属性情報をまとめたデータファイルを軌道プロファイルとして出力する。
【０１２０】
図２５は、軌道プロファイルの生成に関する処理の概略手順を示すフローチャートである。以下、このフローチャートの流れに沿って、各ステップ（Ｓ５１〜５７）の詳細な内容を説明する。
【０１２１】
５−１）カーブの向きの特定（ステップＳ５１）
この実施例では、３次元ベクトル鎖中で連続する関係にあるベクトル間には、微小であっても軌道の長さ方向に変化が生じている点に着目し、始点側端縁のベクトル（以下、「先頭のベクトルという。）および終点側多年のベクトル（以下「最後のベクトル」という。）を除く各ベクトルがそれぞれ右カーブまたは左カーブに対応するものとして、そのカーブの向きを特定する。
【０１２２】
具体的に図２６を用いて説明する。この例も、３次元ベクトルを上方から見た状態を示すものであり、ベクトルβが着目中ベクトルで、ベクトルαが１つ前のベクトルである。また説明の都合上、各ベクトルα，βのなす角度を誇張して描いている。
【０１２３】
この実施例では、着目中のベクトルβおよび１つ前のベクトルαに、それぞれ垂直二等分線を設定し、これらの交点Ｐの座標を求める。以下、これらのベクトルα，βの方向が列車の進行方向に対応していることを利用して説明すると、図２６の例に示すように、進行方向に対して左手に交点Ｐが現れた場合には、着目中のベクトルｂに対応するカーブの向きを「左」と判定する。これに対し、進行方向に対して右手に交点Ｐが現れた場合には、着目中のベクトルβに対応するカーブの向きを「右」と判定する。
このように３次元ベクトル鎖の中の前後のベクトルの関係を利用して、カーブの向きを容易に特定することができる。なお、交点Ｐの座標は、ステップＳ５４で使用するために、メモリ内に保存される。
【０１２４】
なお、この実施例では、後記するように、先頭および最後のベクトルに直線の属性を設定するため、これらのベクトルをステップＳ５１の処理対象から外しているが、最後のベクトルについても、その１つ前のベクトルとの関係に基づいてカーブの方向を特定してもよい。
【０１２５】
５−２）あり得ないＳ字曲線を補正（ステップＳ５２）
鉄道用軌道では、安全を確保するために、進行方向の切り替えが生じた地点から次の切り替えが生じる地点までに、必ず２０ｍ以上の直線区間を設けるようにしている。ステップＳ５２は、この特徴に対応していない３次元ベクトルを検出して、補正することを目的とするものである。
【０１２６】
具体的には、ステップＳ５１の処理結果に基づき、カーブの向きが変更される地点を抽出し、この変更直後の３次元ベクトルの長さを算出する。ここで算出されたベクトルの長さが２０ｍ未満であれば、図２７に示すように、このベクトルを前後いずれかのベクトルに統合する（統合の手法は先の図２４の例と同様である。）。
【０１２７】
さらに、図２５には示していないが、上記の統合処理が終了した後は、処理後の３次元ベクトル鎖を対象に、再びステップＳ５１，Ｓ５２を実行する。以下、カーブが変更された直後のベクトルの長さがすべて２０ｍ以上になるまで、同様の処理を繰り返す。これにより、３次元ベクトル鎖の精度をより高め、軌道以外の要因による短い３次元ベクトル鎖を除去することができる。
【０１２８】
なお、上記のステップＳ５１，５２は、軌道プロファイル生成エンジン３で行う処理に限らず、ベクトル化処理エンジン２側の３次元ベクトルのノイズ除去処理（ステップＳ４２）に含めて行ってもよい。また、上記の２０ｍをピクセル単位の情報に変換して、２次元ベクトル鎖のノイズ除去処理を行ってもよい。
【０１２９】
５−３）ベクトルの属性設定（ステップＳ５３）
この処理では、Ｓ字曲線に関する補正が終了した３次元ベクトル鎖を対象にして、各ベクトルの属性を定める。ここでは、各ベクトルに直線または曲線の属性を設定するとともに、ステップＳ５１で特定したカーブの向きも属性に含める。さらに曲線に分類されたベクトルについては、曲率を表すカーブ半径も属性として設定する。
【０１３０】
図２８は、ベクトルの属性の設定に関する具体的手順を示すフローチャートである。
このフローチャートに沿って説明する。この処理でも３次元ベクトル鎖の始点側のベクトルを先頭として各ベクトルに順に着目し（ＳＴ１０１）、先頭および最後のベクトルを除く各ベクトルに対してカーブ半径を算出する（ＳＴ１０２，１０３）。
【０１３１】
図２９は、カーブ半径の算出方法の具体例を示す。
この例でも、先の図２６と同様に、ベクトルβを着目中のベクトルとする。ベクトルαはベクトルβの１つ前のベクトルであり、ベクトルγは１つ後のベクトルである。また図２９（１）の例と図２９（２）の例とでは、ベクトルγが表すカーブの向きが逆になっている。
【０１３２】
図中の点Ｐは、ベクトルβとベクトルαとの間で図２６に示した処理を行うことにより求められた交点である。また点Ｑは、ベクトルγとベクトルβとの間で同様の処理を行うことにより求められた交点である。
【０１３３】
これらの交点Ｐ，Ｑに関しては、図２９（１）に示すように各点が進行方向に対して同じ側に現れる場合と、図２９（２）に示すように各点が進行方向に対してそれぞれ異なる側に現れる場合とがある。しかし、この実施例では、交点Ｐ，Ｑの関係に関わらず、いずれの場合でも、着目中のベクトルβに対する各点Ｐ，Ｑの距離を求め、これらのうちの短い方（図示例では（１）（２）とも点Ｑとの距離になる。）を、ベクトルβに対応するカーブ半径とする。
【０１３４】
上記において、交点Ｐとベクトルβとの距離は、ベクトルβの中点と１つ前のベクトルαの中点とが同じ円弧上に位置するとした場合の当該円弧の半径に相当する。また交点Ｑとベクトルβとの距離は、ベクトルβの中点と１つ後のベクトルγの中点とが同じ円弧上に位置するとした場合の当該円弧の半径に相当する。すなわち上記の処理は、ベクトルαとβとの組み合わせ、ベクトルβとγとの組み合わせにつき、それぞれその組み合わせが１つの曲線に対応するものとして当該曲線に近似する円弧の半径を求め、そのうちの短い方を着目中ベクトルが表すカーブのカーブ半径として特定するものである。後記するように、カーブ半径は制限速度の導出に用いられるので、安全性を確保するために、より急峻なカーブを表す円弧の半径を採用している。
【０１３５】
このようにして着目中のベクトルのカーブ半径が算出されると、つぎは、算出されたカーブ半径により図３０のテーブルを参照する。このテーブルでは、複数のしきい値に基づきカーブ半径の値を所定の範囲毎に区切って、各範囲にそれぞれ規格のカーブ半径として当該範囲内の最小のカーブ半径を対応づけている。
【０１３６】
ここで、算出されたカーブ半径が２２００ｍより小さい場合（ＳＴ１０４が「ＮＯ」）には、着目中のベクトルの属性を曲線に設定する（ＳＴ１０５）。ついで、上記のテーブルを参照する（算出されたカーブ半径をテーブルの各範囲の上下限値と照合して、算出値に対応する範囲を判別する。）ことによって、算出されたカーブ半径を規格のカーブ半径に置き換え、この規格のカーブ半径と先のステップＳ５１で特定したカーブの向きを、着目中のベクトルの属性に追加する（ＳＴ１０６）。
【０１３７】
図３０のテーブルでは、カーブ半径が２２００ｍ以上であれば、該当するベクトルを直線に相当するとしている。これに基づき、着目中のベクトルにつき算出されたカーブ半径が２２００ｍ以上であった場合（ＳＴ１０４が「ＹＥＳ」）には、このベクトルの属性を「直線」に設定する（ＳＴ１０７）。ただし、このベクトルは、先に述べた進行の方向の切り替え後の直線区間に相当する可能性があるので、この場合にも、カーブの向きをベクトルの属性に追加する（ＳＴ１０８）。
【０１３８】
なお、３次元ベクトル鎖の先頭のベクトルおよびベクトル鎖の最後尾のベクトル（以下、「最後のベクトル」という。）については、図２９に示した方法によりカーブ半径を算出することができないので、属性を「直線」に設定する。また、図２８のフローチャートには示していないが、先頭および最後のベクトルについては、カーブの向きに代えて、ベクトル鎖の先頭または最後であることを示す情報を属性として設定する。また、図２８には示していないが、ベクトルの中に、カーブ半径が１００ｍ未満のものがあった場合には、処理を中止し、そのベクトルの情報を異常値として出力する。
【０１３９】
図２８のフローチャートによる処理は、先頭および最後のベクトルを除く各ベクトルに対し、それぞれそのベクトルに対応するカーブのカーブ半径（曲率半径）を算出し、その算出結果に基づき、対応するカーブの曲がり度合が図３０に示した複数の区分のいずれに相当するかを判別するものである。さらに、この処理では、各ベクトルについて、曲がり度合を表す情報（直線／曲線の区別、および規格のカーブ半径）を属性として設定する。これらの属性は、以下の区間設定処理に利用され、さらに設定される区間にも引き継がれる。
なお、ステップＳ５１において最後のベクトルについてもカーブの向きを特定した場合には、この最後のベクトルに対しても、１つ前のベクトルに対する関係に基づいてカーブ半径を求めて、そのカーブ半径の値や１つ前のベクトルとの関係に基づき、直線／曲線の別を判定してもよい。
【０１４０】
５−４）区間設定処理（ステップＳ５４）
このステップＳ５４では、上記の処理により属性が定まった３次元ベクトルに順に着目して、各ベクトルを所定数の区間にグループ分けする。具体的には、「直線」の属性を有するベクトルと「曲線」の属性を有するベクトルとを分類し、さらに「曲線」の属性を有するベクトルについては、カーブの向きが同じものが続く間、同じ区間に分類する。
以下、「直線」の属性を有するベクトルによる区間を「直線区間」といい、「曲線」の属性を有するベクトルによる区間を「曲線区間」という。
【０１４１】
図３１は、区間設定処理の詳細な手順を示す。
この図を参照して説明すると、この例でも３次元ベクトル鎖の各ベクトルに、先頭から順に着目する。まず先頭のベクトルには、「直線」の属性が設定されているから、つぎのＳＴ２０２の判定は「ＮＯ」となり、着目中のベクトルによる直線区間を設定する（ＳＴ２０８）。なお、この直線区間には、着目中ベクトルに関する情報（始点および終点の座標）も属性として包含される。
【０１４２】
２番目以降のベクトルでも、「直線」の属性が設定されているものに対しては、上記と同様に、着目中のベクトルによる直線区間を設定する（ＳＴ２０８）。また、この場合には、着目中のベクトルに属性として設定されているカーブの向きが、区間の属性としても設定される。一方、着目中のベクトルに「曲線」の属性が設定されている場合には、１つ前のベクトルの属性によって処理内容が変動する。
【０１４３】
まず、１つ前のベクトルの属性が「直線」の場合（ＳＴ２０３が「ＹＥＳ」）には、着目中ベクトルを先頭とする新規の曲線区間を設定する（ＳＴ２０４）。この場合には、着目中ベクトルの始点、終点、およびカーブの向きが、この曲線区間の属性に組み込まれる。
【０１４４】
１つ前のベクトルの属性が「曲線」で、そのカーブの向きが着目中ベクトルと同じ場合（ＳＴ２０３が「ＮＯ」、ＳＴ２０５が「ＹＥＳ」）には、着目中ベクトルを１つ前のベクトルと同じ曲線区間に分類する。この場合も、着目中ベクトルの始点、終点、およびカーブ半径ならびにカーブの向きが、曲線区間の属性に追加される。
【０１４５】
１つ前のベクトルの属性が「曲線」で、そのカーブの向きが着目中ベクトルと異なる場合（ＳＴ２０３が「ＮＯ」、ＳＴ２０５が「ＮＯ」）には、着目中ベクトルの属性を、「曲線」から「直線」に変更し（ＳＴ２０７）、このベクトルによる新たな直線区間を設定する（ＳＴ２０８）。この場合にも、着目中ベクトルの始点および終点、ならびにこのベクトルに属性として設定されていたカーブの向きが、そのまま直線区間の属性に組み込まれる。
【０１４６】
前述したように、鉄道用軌道のカーブの向きが切り替えられた地点の後には、必ず２０ｍ以上の直線区間が存在する。上記ＳＴ２０７の処理は、この特徴を反映したものである。先のステップＳ５２で２０ｍ未満のベクトルを統合する処理を行ったことにより、この時点で設定される直線区間は、必ず２０ｍ以上の距離を有するものとなる。
【０１４７】
よって、すべてのベクトルに対する処理が終了したとき（ＳＴ２０９が「ＹＥＳ」）には、鉄道用軌道の特徴を精度良く反映した区間を得ることができる。各区間には、直線／曲線およびカーブの向きを表す属性のほか、当該区間に含まれる３次元ベクトルの始点および終点の座標が包含される。
【０１４８】
ただし、区間の設定処理のアルゴリズムは図３１に示したものに限らず、適宜アレンジすることができる。たとえば、１つのベクトルにつき１つの区間を設定してもよい。また曲線区間については、対応するカーブおよび規格のカーブ半径が同一のベクトルが連続する範囲毎に１つの曲線区間を設定してもよい。
【０１４９】
５−５）ベクトルの勾配・長さの算出（ステップＳ５５）
ステップＳ５５では、各３次元ベクトルが表す勾配およびベクトルの長さを算出する。勾配については、ベクトル化処理のステップＳ４２と同様に１ｋｍ換算の勾配を算出する。長さの算出は、ベクトルの始点と終点との距離を求める演算により行われる。これらの算出結果は、各ベクトルの属性に追加される。
【０１５０】
さらに勾配に関しても、カーブ半径と同様に、複数のしきい値を用いて規格の値に変更する。具体的には、算出された勾配が１‰未満であれば、勾配を０‰（すなわち平坦面）とする。以下は、５‰の単位で各勾配に範囲を設定し、各範囲での最も急な勾配を規格の値として採用する。たとえば算出された勾配が１〜５‰の範囲に入る場合には、５‰を勾配として採用し、算出された勾配が５‰〜１０‰の範囲に入る場合には、１０‰を勾配として採用する。
【０１５１】
５−５）ベクトルの勾配・長さに基づく区間の再設定（ステップＳ５６）
ステップＳ５６では、ステップＳ５４の処理により設定された各区間に順に着目し、着目中の区間に含まれる３次元ベクトルの勾配および長さに基づき、着目中の区間をさらに細かく分割する。
【０１５２】
図３２は、勾配に基づいて区間を分割する例を示す。
この例は、同一の区間に含まれる６つのベクトルａ，ｂ，ｃ，ｄ，ｅ，ｆを勾配に基づきグループ化するものである。ここでは、各ベクトルａ〜ｆを、それぞれの規格の勾配に基づいてグループ分けし、１つ１つのグループをそれぞれ一区間とする。これにより、各ベクトルａ〜ｆは、４つの区間Ａ，Ｂ，Ｃ，Ｄに分割される。
【０１５３】
なお、上記の例では、上り勾配を対象にしたグループ分けを示しているが、下り勾配を対象にする場合も、同様の方法でグループ分けが行われる。また処理前の区間に上り勾配と下り勾配とが含まれる場合には、これらを別々の区間に分ける。
【０１５４】
このようにして勾配に基づく区間の再設定が行われると、さらに各区間毎に、区間内に属するベクトルの長さの総和を求める。そして、この長さの総和（区間の長さ）が１０００ｍ以上になる場合には、１０００ｍより小さくなるように、区間を分割する。
【０１５５】
再設定された各区間には、それぞれ元の区間の属性（直線／曲線およびカーブの向き）や所属のベクトルの属性が引き継がれる。さらに各区間には、新たに、勾配の上り／下りの区分、規格の勾配、区間の長さの各情報が属性として追加される。
【０１５６】
５−６）制限速度の設定（ステップＳ５７）
ステップＳ５７では、上記ステップＳ５６の処理により再設定された区間に、制限速度を設定する。具体的には、カーブ半径、勾配の上り／下り、および規格の勾配の組み合わせを複数設けて、これらの組み合わせと制限速度とを対応づけたテーブルが用意されており、このテーブルを参照することによって、着目中の区間の各ベクトルに対応する範囲毎に制限速度を決定する。そして決定された制限速度を、それぞれのベクトルの属性に追加する。
【０１５７】
さらに、各区間の接続地点のうちカーブの向きが変わる地点については、この地点の前後の所定範囲における制限速度が同じ区間内の他の箇所より低くなるようにするなど、１つ１つの区間における制限速度およびその適用範囲を細かく設定し直す処理を行う。そして、これらの再設定に応じて各区間の属性を更新し、処理を終了する。
【０１５８】
上記の処理により、最終的に、複数の区間について、直線／曲線の種別、勾配の上り／下りの種別、カーブの向き、勾配、区間の長さ、区間内に含まれるベクトルの情報などの属性が対応づけられる。また、各ベクトルの情報には、始点、終点の座標や長さのほか、制限速度が含められる。このような構成の軌道プロファイルにより、列車の進行方向、カーブを切り替える地点、制限速度およびその制限速度を適用すべき走行範囲などの情報を取得して、列車の走行制御に利用することが可能になる。
【０１５９】
［まとめ］
以上に説明したように、ベクトル化エンジン２では、オルソ画像中の鉄道用軌道を所定幅の３つの線状領域Ｌ１〜Ｌ３が幅方向に沿って並ぶ構成のパターン画像に変換した後に、この変換後画像にＬｏＧフィルタを適用することにより、鉄道用軌道の特徴を容易に抽出することができる。また、各線状領域Ｌ１〜Ｌ３の幅方向の画素配列を抽出して、その中心部を抽出することにより、軌道の長手方向に沿うラインの連続性を確保する（切れ目が少ない。）ことができる。さらに、抽出した軌道の特徴をベクトル化して２次元ベクトル鎖を生成するので、オルソ画像を用いた画像処理のみで、軌道の経路を表す情報（２次元ベクトル鎖）を生成することが可能になる。また、ベクトル間の距離や位置関係によって値が変動する評価値Ｖ（ａ，ｂ）を用いて２次元ベクトル鎖の途切れた箇所にベクトルを補完するので、２次元ベクトル鎖の精度をさらに高めることができる。
【０１６０】
さらに、ベクトル化エンジン２において、ＤＳＭ情報を用いて２次元ベクトル鎖を３次元化した後に、軌道プロファイル生成エンジン３において、３次元ベクトル鎖のベクトル間の関係や個々のベクトルの特徴に基づく情報処理を行って、上記内容のプロファイルを生成するので、列車の走行制御に利用可能な情報を容易に生成することが可能になる。
【０１６１】
上記の処理により生成された軌道プロファイルは、列車の車上装置に組み込まれて、速度制御や手動運転の監視などに使用することができる。また、車上装置に限らず、たとえば軌道上に配置されている地上子に、その設置地点を含む所定範囲内の軌道プロファイルを組み込み、近づいてきた列車に、地上子から軌道プロファイルやこれに基づき生成した制御データを送信してもよい。
【０１６２】
また、列車の制御に限らず、地上子や無線通信用のアンテナなどの設置位置を決める場合にも、上記の軌道プロファイルを用いた情報処理によって、処理の効率や精度を高めることができる。
【０１６３】
また上記では、鉄道用軌道の特徴情報を生成する処理に関して詳細に説明したが、高速道路などの一般車両用の走行路に関しても、オルソ画像から走行路の長さ方向を表すラインを抽出した後に、このラインを３次元ベクトル鎖に変換し、さらにこの３次元ベクトル鎖から走行路の具体的特徴を表す情報を生成することができる。
【０１６４】
ただし、鉄道用軌道以外の車両走行路の特徴情報を生成する場合のオルソ画像に対する画像処理では、最小値フィルタやＬｏＧフィルタを用いた画像処理に代えて、処理対象の車両走行路の特性に応じた処理を実行する必要がある。また、３次元ベクトル鎖を生成した後の処理でも、鉄道用軌道に特有の補正処理（図２５のステップＳ２５）を行う必要がないので、ベクトル鎖の各ベクトルに順に着目して、着目したベクトル毎に、少なくとも始点側に連結しているベクトルとの関係に基づき、カーブの向きを特定する処理（ステップＳ５１）とカーブ半径を求める処理とを連続して実施してもよい。その他の処理に関しても、処理対象の車両走行路の特性に応じて、適宜、変更が可能である。
【０１６５】
また、上記の実施例では、オルソ画像から車両走行路（軌道）の長さ方向に沿うラインを自動抽出したが、これに限らず、ユーザの手操作により画像中に走行路に沿うラインを設定し、このラインから３次元ベクトル鎖を生成してもよい。
さらに、オルソ画像に代えて、たとえば地形図の３次元情報を用いて３次元ベクトル鎖を生成してもよい。
【図面の簡単な説明】
【０１６６】
【図１】線路プロファイル生成システムの機能ブロック図である。
【図２】オルソ画像中の線路に対応する範囲を模式化した図である。
【図３】図２の画像にベクトル化処理により生成された３次元ベクトル鎖を重畳した画像を模式化した図である。
【図４】ベクトル化処理の概略手順を示すフローチャートである。
【図５】最小値フィルタによる変換処理の原理を説明する図である。
【図６】最小値フィルタによる変換処理の原理を説明する図である。
【図７】最小値フィルタによる変換処理の原理を説明する図である。
【図８】図５のオルソ画像に最小値フィルタを適用する処理により変換された画像を模式化した図である。
【図９】３つの線状領域に対応する画素配列を抽出する方法を説明する図である。
【図１０】画素配列の中心部の抽出結果を示す２値画像を模式化した図である。
【図１１】孤立点除去処理の内容を示す図である。
【図１２】膨張・収縮処理の内容を示す図である。
【図１３】端点除去処理の内容を示す図である。
【図１４】突起除去処理の内容を示す図である。
【図１５】図１０の２値画像の黒画素群を細線化した結果を模式化した図である。
【図１６】チェーンコードの設定処理の内容を示す図である。
【図１７】２次元ベクトル鎖の生成処理の具体例を示す図である。
【図１８】ベクトルを結合する条件を説明する図である。
【図１９】ベクトル間の距離によって結合の条件を変更する例を示す図である。
【図２０】ベクトルの正しい結合例と誤った結合例とを対比して示す図である。
【図２１】ベクトルの結合を判定するための評価値の演算式に用いられるパラメータを示す図である。
【図２２】評価値の演算式に組み込まれるしきい値を表す関数のグラフである。
【図２３】３次元ベクトルのデータ構成を示す図である。
【図２４】３次元ベクトルに対するノイズ除去処理の例を示す図である。
【図２５】軌道プロファイルの作成処理の概略手順を示すフローチャートである。
【図２６】ベクトルが表すカーブの方向を特定する処理を説明する図である。
【図２７】あり得ないＳ字曲線に対応するベクトルを補正する処理を説明する図である。
【図２８】ベクトルの属性設定処理に関する手順を示すフローチャートである。
【図２９】カーブ半径を算出する方法を説明する図である。
【図３０】カーブ半径の算出値を規格のカーブ半径に置き換えるためのテーブルの内容を示す図である。
【図３１】区間設定処理に関する手順を示すフローチャートである。
【図３２】勾配に基づいて区間を再設定する処理を説明する図である。
【符号の説明】
【０１６７】
１    ＧＵＩアプリケーション
２    ベクトル化エンジン
３    軌道プロファイル生成エンジン
５    オルソ画像のデータファイル
１０  ３次元ベクトル情報
１１  ３次元ベクトル鎖
２０Ａ，２０Ｂ  鉄道用軌道
【図１】
2010117989.tif 000005
【図４】
2010117989.tif 000006
【図１０】
2010117989.tif 000007
【図１５】
2010117989.tif 000008
【図１６】
2010117989.tif 000009
【図１７】
2010117989.tif 000010
【図１８】
2010117989.tif 000011
【図１９】
2010117989.tif 000012
【図２０】
2010117989.tif 000013
【図２１】
2010117989.tif 000014
【図２２】
2010117989.tif 000015
【図２３】
2010117989.tif 000016
【図２４】
2010117989.tif 000017
【図２５】
2010117989.tif 000018
【図２６】
2010117989.tif 000019
【図２７】
2010117989.tif 000020
【図２８】
2010117989.tif 000021
【図２９】
2010117989.tif 000022
【図３０】
2010117989.tif 000023
【図３１】
2010117989.tif 000024
【図３２】
2010117989.tif 000025
【図２】
2010117989.tif 000026
【図３】
2010117989.tif 000027
【図５】
2010117989.tif 000028
【図６】
2010117989.tif 000029
【図７】
2010117989.tif 000030
【図８】
2010117989.tif 000031
【図９】
2010117989.tif 000032
【図１１】
2010117989.tif 000033
【図１２】
2010117989.tif 000034
【図１３】
2010117989.tif 000035
【図１４】
2010117989.tif 000036