車両走行路の特徴情報の生成方法および生成装置、ならびに生成処理用のプログラム
【課題】車両走行路を表す3次元情報を処理することによって、車両走行路の具体的な特徴を精度良く表した情報を生成する。
【解決手段】鉄道用軌道を含む所定広さのエリアを対象として生成されたオルソ画像をベクトル化エンジン2において処理することにより、軌道の位置および方向ならびに勾配の変化を表す3次元ベクトルを連ねた3次元ベクトル鎖11を生成する。軌道プロファイル生成エンジン3は、この3次元ベクトル鎖11の提供を受けて、各ベクトルにつき、そのベクトルが左右いずれのカーブに対応するかを特定し、さらにカーブ半径を求める処理や、カーブ半径から直線/曲線の属性を特定する処理などを実行する。さらに特定されたカーブの向きや属性に基づき、3次元ベクトル鎖11を複数の区間に分割し、各区間における軌道の特徴を表す情報を集合させた軌道プロファイル13を生成する。
【解決手段】鉄道用軌道を含む所定広さのエリアを対象として生成されたオルソ画像をベクトル化エンジン2において処理することにより、軌道の位置および方向ならびに勾配の変化を表す3次元ベクトルを連ねた3次元ベクトル鎖11を生成する。軌道プロファイル生成エンジン3は、この3次元ベクトル鎖11の提供を受けて、各ベクトルにつき、そのベクトルが左右いずれのカーブに対応するかを特定し、さらにカーブ半径を求める処理や、カーブ半径から直線/曲線の属性を特定する処理などを実行する。さらに特定されたカーブの向きや属性に基づき、3次元ベクトル鎖11を複数の区間に分割し、各区間における軌道の特徴を表す情報を集合させた軌道プロファイル13を生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、鉄道用軌道(以下、単に「軌道」という場合もある。)や高速道路などの車両走行路を含む所定広さのエリアの3次元情報を用いて、当該車両走行路の特徴を表す情報を生成する方法、およびこの方法を実施するための装置ならびにプログラムに関する。
【背景技術】
【0002】
近年、車両の走行を制御したり、運転者へのナビゲーションを行うことを目的として、車両走行路の特徴を表す情報を生成する技術が開発されている。
【0003】
たとえば、下記の特許文献1には、道路を対象としたオルソ画像から道路を表す線分を抽出し、さらに抽出された線分情報を詳細に分析して左右の車道外側線を関数で表現した線データを作成し、これらの線データに基づき道路全体を示す道路ネットワーク線を生成することが記載されている。また、補助情報として曲率半径を算出したり、地面の3次元計測により得た3次元計測データを用いて道路の勾配を算出することも記載されている。
【0004】
【特許文献1】特開2008−170611号公報(段落0017〜0020,0028〜0031,0047,0055参照。)
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記の特許文献1に記載されているように、車両走行路の長さ方向の変化を精度良く抽出するには、オルソ画像を使用するのが望ましい。
オルソ画像は、空中三角測量により求めた3次元座標を用いて作成されるもので、歪みが少なく、観測対象エリアを真上から観察した状態を精度良く表すことで知られている。また、空中三角測量によって、各地点の高さ情報を取得することもできるので、斜面の勾配を算出することも可能である。したがって、オルソ画像を対象に、車両走行路の長さ方向に沿うラインを抽出または設定すれば、車両走行路の具体的な長さおよび方向、ならびに勾配の変化を表す情報を得ることができる。
【0006】
しかし、実際の車両走行路には種々のカーブや勾配があり、カーブの曲率や勾配の度合いも場所によって異なる。したがって、車両の進行方向や速度を適切に制御したり、運転者に適切なナビゲーションをするには、車両走行路中のカーブの位置や向き、走行路の曲がり度合や勾配の変化などが詳細に表された情報が必要である。
【0007】
本発明は、上記の点に鑑み、車両走行路を表す3次元情報を処理することによって、この車両走行路の具体的な特徴を精度良く表した情報を生成することを、課題とする。
【課題を解決するための手段】
【0008】
本発明による車両走行路の特徴情報の生成方法では、以下の第1〜第4のステップを実行する。
【0009】
第1ステップでは、車両走行路を含む所定広さのエリアの3次元情報を処理することによって、車両走行路の位置および方向ならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成する。第2ステップでは、上記のベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、各対象ベクトルにつき、少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する。
【0010】
第3ステップでは、第2ステップの判別結果に基づき、車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する。
【0011】
第4ステップでは、第3ステップの処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。
【0012】
第1ステップで生成される「3次元ベクトル」は、たとえば、始点および終点の3次元座標の組み合わせにより表すことができる。これらの座標は、地表上の実際の位置や高さを表すものであるのが望ましいが、これに限らず、実際の座標を一定の縮尺に基づいて変換した座標を設定してもよい。またベクトルのデータ構成自体は2次元として、別途、地表上の位置を表す3次元情報を設けることで、各ベクトルの始点および終点の3次元座標を導出できるようにしてもよい。
【0013】
ベクトル鎖は、各3次元ベクトルの始点から終点に向かう方向が車両の進行方向に対応するように構成するのが望ましい。このようにすれば、ベクトル鎖の始点側の端縁から終点側の端縁に向かう方向に沿って各ベクトルを順に辿りながら、第2ステップおよび第3ステップの処理を実行することができる。
【0014】
第1ステップの処理によれば、ベクトル鎖中で連続する関係にある2つのベクトルが表す経路の間には、微小であっても角度差が生じる可能性が高い。したがって、第2ステップでは、たとえば、ベクトル鎖の各ベクトルに車両の走行路に対応する順序をもって順に着目して、着目ベクトルと1つ前に着目したベクトル(着目ベクトルの始点に連結しているベクトル)とに1つの曲線を対応づけて、その曲線が進行方向に対して左右いずれの方向を向いているかにより、ベクトルに対応するカーブの向きを判別することができる。またこの曲線の曲率半径を求めることにより、上記のカーブの曲がり度合を判別することができる。
【0015】
なお、カーブの向きの判別と曲がり度合の判別とは、いずれも着目ベクトルと1つ前のベクトルとの関係に基づいて行うことができるが、さらに、着目ベクトルと後続のベクトルとの関係を利用してもよい。またカーブの向きの判別と曲がり度合の判別とで、アルゴリズムを分けて実施してもよい。
【0016】
また第2ステップでは、カーブの曲がり度合に関しては、1つのしきい値により直線とみなし得るレベルの曲がり度合と、曲線に相当する曲がり度合との2種類に区分するだけでもよいが、さらに複数のしきい値により、曲線に相当する曲がり度合を複数の区分に分類するのが望ましい。
【0017】
また、上記の第2ステップにおいては、ベクトル鎖の両端縁のベクトルを対象から除外しているが、ベクトル鎖の両端縁のベクトルについても、別途、それぞれに連結するベクトルとの関係などに基づき、カーブの向きおよび曲がり度合を判別してもよい。
【0018】
第3ステップでは、たとえば、車両走行路を、カーブの方向が切り替わる地点毎に区切ることで、車両進行方向が右方向に変化する区間(右カーブ)と左方向に変化する区間(左カーブ)とに分類することができる。さらに、カーブの向きが同一の範囲を、曲がり度合に基づき複数の区間に分割したり、所定の上限値を超える区間を、上限値以内の長さの範囲毎に分割することもできる。
【0019】
第4ステップでは、設定された区間毎に、その区間全体の長さやカーブの向きを表す情報を作成するほか、当該区間に含まれるベクトルの情報を用いて、車両走行路の曲がり度合や勾配の変化を詳細に表した情報(曲がり度合や勾配の程度が変化する地点やその変化の程度を特定できる情報)を作成する。よって、3次元ベクトルによるベクトル鎖から車両の走行制御や運転者のナビゲーションに適した情報を生成することが可能になる。
【0020】
つぎに、上記の方法に関して、好ましい4つの実施態様を説明する。
第1の実施態様では、第1ステップにおいて、車両走行路に対する空中三角測量により生成されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出する。そしてオルソ画像の各画素に対応する3次元座標の中から各2次元ベクトルの始点および終点に対応する座標を特定することにより、前記複数の3次元ベクトルを決定する。
【0021】
上記によれば、オルソ画像およびこれにリンクする3次元座標を用いて、実際の車両走行路の向きの変化を精度良く表すベクトル鎖を生成した後に、第2〜第4のステップを実行するので、各区間の長さや勾配などを、実際の尺度で精度良く表すことが可能になる。
【0022】
第2の実施態様では、第2ステップにおいて、対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を対象ベクトルに対応する曲率半径として選択し、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する。
【0023】
上記の態様によれば、ベクトル鎖の両端以外の各ベクトルについて、始点および終点に連続する各ベクトルとの関係により算出された2つの曲率半径のうちの小さい方の値が、当該ベクトルに対応する曲率半径として設定される。カーブの曲がり度合は車両の速度を決める要素として使用されることが多いので、上記のように値が小さい方の曲率半径を選択することにより、安全性を高めることができる。また選択された曲率半径を1つ以上のしきい値と照合することにより、カーブの曲がり度合を2以上のグループにより表すことが可能になる。
【0024】
第3の態様では、第3ステップにおいて、車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する。この態様によれば、勾配が同程度になる範囲を1つの区間とすることができるので、速度制御に利用しやすい情報を得ることができる。
【0025】
第4の態様では、第4ステップにおいて、第3ステップで設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する。
【0026】
上記の態様によれば、各区間に対して、その区間内のベクトルに対応する勾配や曲がり度合に応じて、ベクトル単位で制限速度を設定することができる。また区間内で勾配や曲がり度合が変化しなくとも、区間の初めと終わりに相当する所定範囲で他の範囲より遅い速度を設定するなど、細かい設定を行うこともできる。このように、各区間に適用される制限速度までを含む情報を生成することにより、車両の走行制御にそのまま導入可能な情報を生成することができる。
【0027】
つぎに、上記の方法が適用された車両走行路の特徴情報の生成装置は、車両走行路を含む所定広さのエリアの3次元情報を入力する入力手段と、入力した3次元情報を処理することによって、車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段とを具備する。さらにこの装置は、以下に示す判別手段、区間設定手段、情報作成手段をを具備する。
【0028】
判別手段は、ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する。
【0029】
区間設定手段は、上記の判別結果に基づき、車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する。情報作成手段は、区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。
【0030】
上記の装置によれば、車両走行路を含むエリア内の3次元情報を入力することによって、先に説明した第1〜第4の各ステップを実行して、車両走行路の特徴を表す情報を作成することができる。
【0031】
さらに前出の第1の態様による方法を実施する装置では、入力手段は、車両走行路に対する空中三角測量により生成されたオルソ画像およびこのオルソ画像の各画素に対応する3次元座標の集合を入力する。またベクトル鎖生成手段は、入力されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出する2次元ベクトル生成手段と、上記の3次元座標の集合から各2次元ベクトルの始点および終点に対応する3次元座標を特定することにより前記複数の3次元ベクトルを決定する3次元ベクトル生成手段とを具備する。
【0032】
第2の態様による方法を実施する装置では、判別手段は、対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を当該ベクトルに対応する曲率半径として選択する手段と、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する手段とを具備する。
【0033】
さらに、第3の態様を実施する装置では、区間設定手段は、判別手段の判別結果に基づき、車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する。
【0034】
さらに、第4の態様を実施する装置では、情報作成手段は、区間設定手段により設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する。
【0035】
さらに、本発明では、上記のベクトル鎖生成手段、判別手段、区間設定手段、および情報作成手段として、コンピュータを機能させるためのプログラムを提供する。
【発明の効果】
【0036】
本発明によれば、車両走行路を含むエリアの3次元情報を用いて、車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成した後、このベクトル鎖中の各ベクトルの関係に基づいて、車両走行路を複数の区間に分割し、各区間の長さおよびカーブの向き、ならびに区間内における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。よって、車両走行路の具体的な特徴を精度良く表した情報を生成して、車両の走行制御や運転者へのナビゲーションなどに役立てることが可能になる。
【発明を実施するための最良の形態】
【0037】
[システムの概略説明]
図1は、この発明が適用された軌道プロファイル生成システムの機能ブロック図を示す。このシステムは、列車に搭載されたコンピュータ(「車上装置」と呼ばれる。)が列車の走行を制御する目的で使用する情報を生成するためのもので、1台のコンピュータ内または複数台のコンピュータによるネットワークシステム内に設定される。
【0038】
このシステムでは、オルソ画像のほか、オルソ画像に派生して生成されたDSM情報(Digital Surface Model)や、地図情報とオルソ画像との関係を表すワールドファイルなどを利用する。これらは、いずれも個別のデータファイル5,6,7として構成されて、コンピュータの図示しないメモリ(ハードディスク)内に格納される。
【0039】
図中、GUI(グラフィカル・ユーザ・インターフェース)アプリケーション1は、図示しないモニタや入力部(キーボード、マウスなど)と連動して、ユーザによる設定操作を受け付けながら、3次元ベクトル情報を生成する処理、生成した3次元ベクトル情報を編集する処理、および3次元情報から軌道プロファイルを生成する処理を実行する。
【0040】
ベクトル化エンジン2は、オルソ画像およびDSM情報から、鉄道用軌道の経路を表す3次元ベクトル情報10を生成する。この3次元ベクトル情報10は、複数の3次元ベクトルの集合(以下、これを「3次元ベクトル鎖」という。)11を複数含むものである。
【0041】
生成された3次元ベクトル情報10は、GUIアプリケーション1に渡される。GUIアプリケーション1は、この3次元ベクトル情報10から処理対象の3次元ベクトル鎖11を順に取り出して、演算パラメータとともに軌道プロファイル生成エンジン3に出力する。なお、演算パラメータには、各種判定のためのしきい値や判定用テーブルなどが含まれる。
【0042】
軌道プロファイル生成エンジン3は、供給された3次元ベクトル鎖11を処理することによって、鉄道用軌道の特徴を表す情報群(以下、「軌道プロファイル」という。)13を生成する。生成された軌道プロファイル13は、GUIアプリケーション1によって車上装置用のデータベース9に格納される。このデータベース9が各列車の車上装置に移植され、走行制御に利用されることになる。
【0043】
また、GUIアプリケーション1は、軌道プロファイル13の生成に用いられる前の3次元ベクトル情報10を適宜モニタに表示して、ユーザによる簡易な補正作業を受け付け、3次元ベクトル情報10を編集する。具体的な編集は、編集対象の3次元ベクトル鎖10をDXFファイル8に変換し、CAD専用のソフトウェアによる編集エンジン4を用いて行われる。
【0044】
図2は、上記システムで使用されるオルソ画像を模式的に表したものである(画像全体の中から軌道の部分を抜き出し、拡大したイメージを示す。)。
この画像は、上空での空中三角測量により生成されたもので、各地点の真上から観測した状態が現れるように歪みが除去されている。前述のDSM情報も、この空中三角測量により求められたもので、オルソ画像中の各画素に対応する高さ情報(Z座標)を有する。また、ワールドファイルを参照することによって、このオルソ画像の1画素に対応する地点における地図上の座標(X,Y座標)を特定することができる。
【0045】
図2の画像には、2本の軌道20A,20Bのほかに、架線支持用のビーム25およびその影24が現れている。このほか、作図の都合上、表していないが、各軌道20A,20Bの近傍には、バラストからの反射などによる明暗差や架線などが現れている。
【0046】
なお、実際のオルソ画像はカラー画像であるが、ベクトル化エンジン2により処理される際には、グレースケール画像に変換される。また、図2では、作図の都合上、ビーム25を黒線で表しているが、実際の画像では、ビーム25の色彩は白色系である。
【0047】
上記のオルソ画像はGUIアプリケーション1により表示され、表示画面上の軌道に対し、ユーザにより処理範囲の始点および終点が指定される。ただし、この指定より前にベクトル化エンジン2は、このオルソ画像を処理して2次元ベクトル段階の処理を終えており、ユーザが始点および終点を指定すると、その指定に応じた範囲の3次元ベクトル鎖を生成する。
【0048】
3次元ベクトル鎖の生成が終了すると、表示画面は図3に示すようなものに変更される。この画面には、図3と同様のオルソ画像に、ベクトル化エンジン2により生成された3次元ベクトル鎖の各ベクトルを表す線分画像26が表示されている。
【0049】
ユーザは、表示された3次元ベクトル鎖を確認し、適宜、不要なベクトルを削除したり、欠落しているベクトルを補完するなどの補正作業を行うことができる。また、ユーザが3次元ベクトル鎖の抽出精度を確認して確定操作を行うと、確定された3次元ベクトル鎖が軌道プロファイル生成エンジン3に渡され、軌道プロファイルの生成処理が開始される。
【0050】
以下、ベクトル化エンジン2および軌道プロファイル生成エンジン3により実行される処理を、詳細に説明する。
【0051】
[ベクトル化エンジン2による処理について]
図4は、ベクトル化エンジン2により実行される処理の概略手順を示すフローチャートである。この図4によれば、この実施例のベクトル化処理は、フィルタ処理、2次元ベクトル情報生成処理、ベクトル推定処理、3次元ベクトル情報生成処理に大別される。
以下、このフローチャートの流れに沿いながら、適宜、他の図面を参照して上記3種類の処理の詳細を説明する。
【0052】
(1)フィルタ処理
1−1)軌道の特徴の強調処理(ステップS11)
このステップS11は、オルソ画像中の鉄道用軌道20A,20Bを、本来とは異なる特徴パターンに変換することによって、これらを容易に検出できるようにすることを目的とするものである。以下、この変換処理を模式的に示した図5〜7を用いて、第1ステップの処理の原理を説明する。
【0053】
一般に、オルソ画像中のレールや枕木は、周囲より暗く、さらにレールの方が枕木より暗くなる(発明者の計測では、256階調の画像で約40階調の差が認められた。)。また、レール間の間隔は枕木間の間隔より広く、これらの間隔はほぼ一定である。
ステップ11では、これらの特性を利用した最小値フィルタを使用することにより、図5に例示するような変換処理を行う。
【0054】
図5の左手の図は、オルソ画像の鉄道用軌道に対応する範囲を拡大した模式図である。
図中の点線で表す矩形枠は1画素に相当するもので、具体的には約10cm四方のエリアに相当する。また、この図では、軌道の方向が画像の上下方向に対応するものとして、各レール21,22の幅を1画素、レール21,22間の画素数(レール21,22の内側端縁の間にある画素の数をいう。)を9画素、枕木23の縦幅を2画素、枕木23間の画素数(1つの枕木23とその隣の枕木23との端縁間に存在する画素の数をいう。)を4画素としている。
【0055】
この実施例では、オルソ画像に5×5のサイズの最小値フィルタ100を適用する。この最小値フィルタ100の一辺の長さ(5画素)は、画像中のレール21,22間の画素数(9画素)より小さく、枕木23間の画素数(4画素)より大きい。また、最小値フィルタ100により変換された画像では、右手の図に示すように、各レール21,22が左右に2画素ずつ膨張して、5画素幅の線状領域L1,L2が生成される。また、枕木23については、横幅が5画素に縮小されるが、縦方向は上下に2画素ずつ膨張されて枕木23同士が一体化され、その結果、5画素幅の線状領域L3が生成される。また、線状領域L1,L2には元のレール21,22の濃度が反映され、線状領域L3には元の枕木23の濃度が反映される。
【0056】
上記の変換処理の原理について説明する。
最小値フィルタとは、原画像中のフィルタに対応づけられた範囲内の最小濃度(最も暗い画素の濃度)を、フィルタの中心位置の画素に適用するものである。図6は、図2に示したオルソ画像に対し、最小値フィルタ100を左から右に向かう方向に走査した例を示す。図3は、同じ最小値フィルタ100を上から下に向かう方向に走査した例を示す。
【0057】
図6(1)は、5×5の最小値フィルタ100の右一列が左側のレール21に対応づけられた状態を示す。この場合の最小値フィルタ100に対応する範囲では、レール21の濃度が最小になるから、フィルタ100の中央の画素、すなわちレール21から2画素離れた位置にある画素にレール21の濃度が採用される。
【0058】
図6(2)は、最小値フィルタ100の左一列が左側のレール21に対応づけられた状態を示す。この場合の最小値フィルタ100に対応する範囲には、レール21のほか枕木23も含まれるが、枕木23よりレール21の方が暗くなるから、この場合にも、フィルタ100に対応する範囲ではレール21の濃度が最小の濃度となる。よってフィルタ100の中央の画素には、レール21の濃度が採用される。
【0059】
またここには図示していないが、最小値フィルタ100が図6(1)の状態から図6(2)の状態まで移動する間の各位置においても、同様に、フィルタ100に対応する範囲では、レール21の濃度が最小になる。よって、レール21より2画素外側の位置からレール21より2画素内側までの範囲にある各画素では、いずれもレール21の濃度が採用されることになる。
【0060】
つぎに図6(3)は、最小値フィルタ100が、図6(2)の状態からさらに1画素右にずれた状態を示す。この段階で最小値フィルタ100に対応する範囲にはレール21が含まれない状態になるから、この範囲では枕木の濃度が最小の濃度となる。よって、この場合のフィルタ100の中央に対応する画素には、枕木23の濃度が採用される。
【0061】
この後、最小値フィルタ100が右側に移動して、右側のレール22がフィルタ100内に含まれる状態(図6(3)の位置から5画素分移動したとき)になるまでは、フィルタ100の中央に対応する画素には、いずれも枕木23の濃度が採用される。しかし、右側のレール21が最小値フィルタ100に含まれる状態になると、再び、レール21の濃度が採用される状態となる。右側のレール21に対しても、フィルタ100による作用は、左側のレール21に対するのと同様である。
【0062】
したがって、左右のレール21,22は、それぞれ内外に2画素ずつ膨張して5画素幅になる。しかし、この膨張幅は、レール21,22間の画素数の1/2より小さいから、各レール21,22が膨張した後も、枕木23の画像が残る余地がある。具体的には、枕木22は、レール21の膨張によって、9画素幅から5画素幅になる。
【0063】
図7は、最小値フィルタ100を、図6(3)の状態から、1画素ずつ下方に移動させた状態を示す。最小値フィルタ100の一辺の長さは、枕木23間の画素数(4画素)より大きく設定されているので、上下方向のいずれの位置にあっても、常に最小値フィルタ100内に枕木23の画素が含まれる。したがって図7(1)(2)(3)に示すように、レール21,22間のレール21,22が入らない範囲で最小値フィルタ100が移動する場合には、どの位置においてもフィルタ100の中央に対応する画素に枕木23の濃度が採用される。この結果、各枕木23の間にある画素の濃度はすべて枕木23の濃度に置き換えられて、枕木23間の間隔が消失し、各枕木23が一体化される。
【0064】
上記の原理に基づく処理を行うことにより、各レール21,22の幅が広がって線状領域L1,L2が生成されるとともに、これらの間に、枕木23の濃度を反映した線状領域L3が生成される。この結果、鉄道用軌道のオルソ画像は、図2の右手に示すように、枕木23による線状領域L3を中心にして、この領域L3と当該領域L3より暗い2つの線状領域L1,L2(レール21,22による線状領域)とが幅方向に沿って並んだ状態の画像に変換される。
【0065】
この実施例では、事前にベクトル化エンジン2に、モデルのオルソ画像中のレール21,22および枕木23に対する計測により定めた最小値フィルタのサイズをセットしておき、この最小値フィルタを処理対象のオルソ画像の全範囲にわたって走査して、各画素の変換後の濃度を決定する。なお、最小値フィルタのサイズは、オルソ画像の分解能の変更などに応じて、適宜変更することができる。
【0066】
最小値フィルタ100はオルソ画像中の鉄道用軌道以外の部分にも適用されるので、周囲より暗い部位があれば、その部位もレール21,22や枕木23と同様に、各方向に2画素ずつ膨張する。しかし、鉄道用軌道と同様の形状のものでなければ、図6〜7により説明したような変換が行われるとは考えにくい。よって、上記構成の最小値フィルタを用いた変換処理によれば、線状領域L1〜L3が幅方向に沿って並んでいる特徴パターンとして、鉄道用軌道を他の物から分離して抽出することが可能になる。
【0067】
図8は、図2に示したオルソ画像に最小値フィルタを適用する処理により生成された変換画像を模式的に示す。この画像では、各軌道20A,20Bが、それぞれレール21による2本の線状領域L1,L2の間に枕木22による線状領域L3が挟まれた形態の特徴パターンに変換される。ただし、この画像には、ビーム25や影24を反映したノイズN1,N2が出現するほか、各レールの周囲にも、微小な明暗差を反映したノイズ(図示せず。)が出現する。特に、ノイズN1,N2は、軌道20A,20Bの幅方向にまたがって発生するため、ベクトル鎖が分断される原因になる。
【0068】
1−2)線形特徴の抽出処理(ステップS12)
ステップS12では、最小値フィルタにより変換された画像を対象に、ラプラシアン・ガウシアンフィルタ(以下「LoGフィルタ」と略す。)を適用して、線形の特徴を抽出する。具体的には、変換後のレールや枕木の幅長さの1/2程度の値(図5〜7の例で言えば、2.5前後)がカーネルパラメータとして設定されたLoGフィルタを、変換後の画像に走査する。また、LoGフィルタからの出力を正負2種類のしきい値と比較し、出力が正のしきい値を上回った範囲と負の値を下回った範囲とを抽出し、その抽出結果を表す処理結果画像を生成する。
【0069】
LoGフィルタは、走査方向の前後より濃度が低い範囲に対応づけられたときには正の方向に変化するデータを出力し、走査方向の前後より濃度が高い範囲に対応づけられたときには負の方向に変化するデータを出力する。したがって、周囲より濃度が低いレール21,22に対応する線状領域の幅方向にLoGフィルタが対応づけられたときには、その対応範囲が正のしきい値により検出される。またレール21,22より濃度が高い枕木23に対応する線状領域L3の幅方向にLoGフィルタが対応づけられたときには、その対応範囲が負のしきい値により検出される。よって、LoGフィルタを画像の全範囲にわたって走査することにより、レール21,22および枕木23に対応する線状領域L1,L2,L3を検出することができる。
【0070】
ただし、このLoGフィルタは、単に濃度の変化に応じた処理を行うだけであるから、、ノイズN1,N2などの細長形状の特徴も検出されてしまう。
【0071】
1−3)軌道中心部の抽出処理(ステップS13)
この処理では、LoGフィルタの適用により生成された処理結果画像を対象に、鉄道用軌道に対応する特徴を特定し、さらにその特徴の中心部を抽出する。
【0072】
具体的には、処理結果画像の各画素に順に着目して、正のしきい値を超えた画素を検索する。そして、該当する画素Gが見つかると、図9に示すように、この画素Gを基準に、上下および左右ならびに斜め45度の各方向を検索方向に設定して、検索を実行する。
【0073】
この検索は、「正のしきい値を超えた画素がn個連続し、次に負のしきい値を超えた画素がm個連続し、さらに正のしきい値を超えた画素がn個連続している画素の配列を見つけること」を目的とする。n,mの値は、先の最小値フィルタの適用により変換されるレール21,22や枕木23の幅に応じて定められる。たとえば図5の例であれば、n=5,m=5となるが、誤差を考慮して、n,mとも所定の数値範囲を設定してもよい(たとえば4≦n≦6,4≦m≦6)。
【0074】
ステップS13では、正のしきい値を超えた画素Gを見つける都度、上記の4方向への検索を実行する。さらに条件にあてはまる画素配列が見つかると、その配列中の中央部の画素(具体的には、負のしきい値を超えた画素群中の中央位置にある画素およびその前後の3画素程度)を抽出する。これにより軌道の中心部に対応する画素群が検出される。また検索により検出された画素配列に含まれた画素は、以後の検索対象から除外される。
【0075】
図10は、上記の検索および検索により見つけた画素配列の中心部を抽出する処理の結果を示す。この処理結果は、具体的には、抽出された中心部を構成する画素を黒画素(値が「1」)とし、その他の画素を白画素(値が「0」)とする2値画像として表される。
【0076】
この処理により、1本の軌道の画像から生成された線状領域L1,L2,L3の組み合わせ毎に、その長手方向を表す黒画素群が抽出される。この段階でも、ノイズ成分による黒画素群も多少生成され、図中のD1,D2に示すように、軌道を表す黒画素群に途切れが生じている箇所もあるが、各線状領域L1、L2,L3が明確に現れている範囲での黒画素群は、殆ど途切れずに連なった状態となる。
【0077】
1−4)ノイズ除去(ステップS14)
このステップでは、中心部の抽出結果を表す画像(図10)を対象に、孤立点除去、膨張・収縮処理、端点・突起除去の各処理を実行する。いずれも、2次元画像のノイズを除去する方法としてよく知られたものであるが、以下に簡単に説明しておく。
【0078】
いずれの処理でも、3×3のフィルタを2値画像に走査し、フィルタ内の画像データが所定の条件を満たしたときに、中央の画素(以下、「着目画素」という。)の値を変更する。
【0079】
孤立点の除去処理では、図11に示すように、着目画素が「1」で、周囲8近傍の画素がすべて「0」であったとき、着目画素を「0」に変更する。
【0080】
膨張処理では、図12(a)に示すように、着目画素が「0」で、周囲8近傍に1つでも「1」の画素がある場合に、着目画素を「1」に変更する。収縮処理では、図12(b)に示すように、着目画素が「1」で、周囲8近傍に1つでも「0」がある場合に、着目画素を「0」に変更する。この実施例では、まず膨張処理を行った後に、膨張処理後の画像を対象に収縮処理を行うことにより、抽出された黒画素群を円滑にし、かつ微小なラインの途切れを復元するようにしている。
【0081】
端点の除去処理では、図13に示すように、着目画素が「1」で、周囲8近傍中に「1」の画素が1つしかない場合に、着目画素を「0」に変更する。突起の除去処理では、フィルタ内に図14の(a)〜(d)のいずれかのパターンが成立したときに、着目画素を「0」に変更する。端点や突起の除去処理も、中心部を表す黒画素群を円滑化することを目的とするものである。
【0082】
1−5)細線化処理(ステップS15)
このステップでは、ノイズ除去後の2値画像中の黒画素群を対象に、その画素群の中心線を抽出することによって、複数の画素を含む幅を持つ黒画素群を1画素幅の細線に変換する。
図15は、この処理により細線化された後の2値画像を示す。つぎの2次元ベクトル情報の生成処理は、この2値画像を対象に実施されることになる。
【0083】
(2)2次元ベクトル情報生成処理
2−1)チェーンコードの設定(ステップS21)
このステップは、上記の細線化された画像を対象に、黒画素の連なり状態をコード化するものである。具体的には、図16(1)に示すように、着目画素の周囲8近傍にそれぞれ0〜7のコードを割り当てるというルールに基づき、実際の着目画素に、それぞれその画素の連結状態に応じたコードを割り当てる。
【0084】
図16(2)は、黒画素群の連結状態の例と、この黒画素群から設定されたチェーンコードを対応づけて示す。このようなチェーンコードを生成するには、まず先頭の画素に着目して、この画素の周囲8近傍を検索して着目画素に連続する画素を見つけ、その連続状態に応じたチェーンコードをあてはめる。この後は、新たに見つけた画素に着目して、同じ処理を繰り返すことにより、図16(2)の下段に示すようなコードが生成される。
【0085】
2−2)2次元ベクトル鎖の生成(ステップS22)
ステップS22では、上記のチェーンコードを参照しながら、チェーンコードが表す黒画素群から所定数の2次元ベクトルの連結体(2次元ベクトル鎖)を生成する。
【0086】
図17は、先の図16(2)の黒画素群に対してステップS22の処理を実行した例を示す。この図に基づき説明すると、まず、先頭の画素および最後の画素をそれぞれ端点A,Bとしてベクトルf1を設定する(図17(1))。そして前出のチェーンコードを参照して、A−B間に含まれる各画素をたどりながら、各画素のベクトルf1に対する距離を算出し、この距離を所定のしきい値ERと照合する。
【0087】
ここで、上記の距離がしきい値ERを超える画素が見つかると、この画素を点Cとして、ベクトルf1を削除し、新たに点Aと点Cとを結ぶベクトルf2と、点Cと点Bとを結ぶベクトルf3とを設定する(図17(2))。
【0088】
これらのベクトルf2,f3についても、端点間にある各画素との距離を求める。そしてしきい値ERを上回る画素が見つかった場合には、上記と同様の手法でベクトルを分割する。一方、しきい値ERを上回る画素が見つからなかった場合には、その時点でのベクトルを確定する。
【0089】
図17の例の場合は、点Cを一方の端点として設定されたベクトルf2とベクトルf3のうち、ベクトルf3はそのまま確定される(図17(3))。一方、ベクトルf2については、このベクトルf2に対する距離がしきい値ERを超える画素が見つかったため、ベクトルf2を削除し、見つかった画素を点Dとして、点Aと点Dとを結ぶベクトルf4と、点Dと点Cとを結ぶベクトルf5とを設定する(図17(4))。ベクトルf4,f5に対する端点間の画素の距離は、いずれもしきい値ER以内となるので、これをもって、これらのベクトルを確定する(図17(5))。
【0090】
このように、がたついて連結していた黒画素群の連結構造を分析して複数のベクトルを設定することにより、2次元ベクトル鎖が生成される。この2次元ベクトル鎖の具体的な情報は、各端点の座標をベクトル毎に組み合わせたものになる。
なお、この段階の2次元ベクトルの向きは定まっていない。この後、ユーザがオルソ画像上で始点と終点とを指定すると、各ベクトルの始点に近い方の端点が始点に設定され、終点に近い方の端点が終点に設定されて、ベクトルの向きが特定される。
【0091】
(3)ベクトル推定処理
上記までの処理により、基本的な2次元ベクトル鎖が出来上がるが、この段階の2次元ベクトル鎖には、ノイズN1,N2などの影響により途切れた箇所が含まれる場合がある。このベクトル推定処理は、このような2次元ベクトル鎖の途切れを解消することを目的とするものである。
【0092】
3−1)2次元ベクトル鎖の結合(ステップS31)
この処理では、他のベクトルに連結されていない端点を有するベクトルのうち、条件にあてはまるもの同士を対象に、両者を結合するためのベクトルを補完する。
【0093】
図18は、ベクトルを結合する例を示す。
この実施例では、2つのベクトルa,bの結合について2つの条件を設定し、ベクトルa,bがこれらの条件を2つとも満たしていれば、ベクトルa,b間に、これらを結ぶベクトルcを補完するようにしている。
【0094】
具体的には、2つのベクトルa,bがほぼ平行であること、言い換えれば、各ベクトルa,bの方向の差が所定の角度範囲内になることを第1の条件とする。さらに、ベクトルa,bを結ぶ直線に対して各ベクトルa,bのなす角度θ1,θ2がそれぞれ所定のしきい値以上になる(ただし、180度以下)ことを第2の条件とする。
【0095】
後記するように、鉄道用軌道の向きは少なくとも20mは一定に保たれるように設定されている。したがって、2次元段階でも、20mに対応する範囲内でベクトルの方向が大きく変化することはない、という大前提に基づけば、第1の条件のしきい値を0度に近い値に設定し、第2の条件に関するしきい値を180度に近い値にするべきである。
【0096】
ただし、実際の画像では、オルソ画像の誤差、ノイズ、周囲の明暗などの影響によって、レール21,22や枕木23から変化した線状領域L1〜L3にがたつきが生じ、その影響で途切れ部分の前後のベクトル間の段差が大きくなる可能性がある。
【0097】
したがって図19に示すように、第2の条件に関する角度θ1,θ2(いずれも180度より小さい方の角度)が180度からかなり離れている場合でも、ベクトル間の距離が小さい場合には結合するのが望ましい。一方で、ベクトルa,b間の距離が比較的大きい場合には、これらのベクトルa,bが同じ軌道に対応するとは考えにくいから、結合対象から除外する必要がある。
【0098】
つぎに、単純に角度θ1,θ2が180度に近いものを優先して結合すると、図20に示すような問題が生じる。
図20は、2次元ベクトル鎖に複数の分断箇所がある例を示すものである。本来は、図20(1)に示すように、最も近いベクトル同士(ベクトルaとb、ベクトルbとc)を結合する必要があるが、角度θ1,θ2が180度に近い組み合わせを優先するようなロジックを設定すると、図20(2)に示すように、近い方のベクトルの組み合わせが無視されて、離れた位置にあるベクトルaとベクトルcとが結合される可能性がある。
【0099】
上記の問題点に鑑み、この実施例では、他のベクトルに連結されていない端点を有するベクトルを第1の条件を満たすもの毎に組み合わせ、組み合わせ毎に下記の[1]式により評価値V(a,b)を求め、評価値V(a,b)が高い順に、ベクトル間の結合を行うようにしている。ただし、評価値V(a,b)が所定のしきい値以下であったものは、結合対象から除外される。
【0100】
【数1】
【0101】
上記[1]式の意味について、図21を参照して説明する。[1]式では、ベクトルa,bを結ぶ直線mとベクトルaとのなす角度をθ1(a,b)とし、当該直線mとベクトルbとのなす角度をθ2(a,b)とする。なお、θ1(a,b),θ2(a,b)とも、ベクトルa,bと直線mとがなす角度のうち、180度以下になる角度を指す。また、D(x,y)はベクトルa,b間の距離である。
【0102】
[1]式中の右辺の分子の関数U(x)はx>0のときに1、x≦0のときに0となる単位ステップ関数である。この関数U(x)のxの部分に組み込まれているT(D(a,b))は距離D(a,b)に応じて値が変化する関数であって、角度θ1(a,b),θ2(a,b)に対するしきい値として機能する。さらに、この実施例では、この関数T(D(a,b))について図22に示す2通りの関数を設定し、距離D(a,b)の値に応じて使用する関数を切り替えるようにしている。
【0103】
図22によれば、T(D(a,b))はベクトルa,b間の距離が0のときに最小値の135度となり、D(a,b)が8mのときに173度となる。また、距離D(a,b)が8mに達するまでは、D(a,b)に比例する関係をもって増加するが、D(a,b)が8.0を超えた後は変化が緩やかになって、徐々に180度に近づく。
【0104】
[1]式によれば、角度θ1(a,b),θ2(a,b)のいずれか一方がT(D(a,b))以下になると、評価値V(a,b)は0となる。またθ1(a,b),θ2(a,b)の双方がT(D(a,b))より大きくなる場合には、V(a,b)は0より大きくなる。
【0105】
また、θ1(a,b),θ2(a,b)の値がともにT(D(a,b))より大きく、それぞれ一定の値をとる場合でも、距離D(a,b)が大きくなると、分母の[D(a,b)]2の影響により評価値V(a,b)が下がる。また、距離D(a,b)が8mを大きく上回ると、しきい値T(D(a,b))が180度に近づくため、θ1(a,b)やθ2(a,b)がT(D(x,y))より小さくなって、評価値V(a,b)が0となる可能性が高まる。すなわち、ベクトルa,b間の距離が大きくなると、これらの間の段差が殆どない状態でなければ、これらのベクトルa,bを結合することはできなくなる。
【0106】
これに対し、距離D(a,b)が8mより小さい場合には、しきい値T(D(a,b))が180度よりかなり小さくなるので、ある程度の段差があるベクトルでも、結合が許容される。よって、図19に示したような結合処理を実現することができる。
【0107】
また、[1]式の右辺の分子は、ベクトル間の距離の大小に関係なく、θ1(a,b),θ2(a,b)がしきい値T(D(a,b))より大きくなれば1になるのに対し、分母はベクトル間の距離D(a,b)が小さいほど値が小さくなり、これにより評価値V(a,b)が引き上げられる。また、分母中の[(180−θ1(a,b))+(180−θ2(a,b))+1]の部分は、θ1(a,b),θ2(a,b)が180度に近づくにつれて、小さな値となり、これにより評価値V(a,b)の値が引き上げられる。
【0108】
よって、あるベクトルに対し、θ1(a,b)およびθ2(a,b)がそれぞれしきい値T(D(a,b))を上回るようなベクトルの組み合わせが複数存在する場合には、これらの中で距離が最小になるものが結合対象となる。また、ベクトル間の距離が殆ど変わらない組み合わせが複数ある場合には、各ベクトルa,b間の段差がより小さい組み合わせが結合対象となる。したがって、先の図20(2)に示したような誤った結合が生じるのを防止することができる。
【0109】
3−2)始点・終点との対応づけ(ステップS32)
この処理は、ユーザが原画像(オルソ画像)の表示画面上で指定した始点および終点に対応する2次元ベクトル鎖を特定するものである。特定された2次元ベクトル鎖が始点や終点まで延びていない場合には、無理に補完せずに、抽出されている範囲での特定に留める。また複数の軌道の始点・終点が指定された場合には、指定されたもの毎に2次元ベクトル鎖を特定する。
なお、上記の始点・終点は、始点から終点に向かう方向が列車の進行方向に対応するように行われる。またこの指定により、各2次元ベクトルの向きも、列車の進行方向に対応する方向に確定される。
【0110】
(4)3次元ベクトル情報生成処理
4−1)3次元ベクトル鎖の生成(ステップS41)
この処理は、上記のステップS32により特定された2次元ベクトル鎖を対象に、DSM情報から、2次元ベクトル鎖に含まれる各ベクトルの始点、終点に対応する高さ情報(Z座標)を読み出し、各始点、終点に対応づける。また、ワールドファイルを参照して、始点および終点に対応するX,Y座標を特定する。これにより、ピクセル単位の2次元ベクトルは実際の地点や高さを表す3次元ベクトル鎖に変換される。
【0111】
4−2)ノイズ除去(ステップS42)
このステップS42では、3次元ベクトル鎖のノイズを除去する処理として、以下の2つの処理を実行する。
【0112】
まず1つ目の処理として、鉄道用軌道にはあり得ない勾配(35‰(パーミル)以上)を持つベクトルを3次元ベクトル鎖から除外する。具体的には、3次元ベクトル鎖に含まれる各3次元ベクトル毎に、下記の[2]式により、ベクトルの勾配を求める。[2]式中の各変数は、図23に示すように、ベクトルの始点、終点の座標である。また、算出された勾配は1km単位のものに換算される。
【0113】
【数2】
【0114】
つぎに、2つ目のノイズ除去処理として、先のステップS31で補完されたベクトルのうち、ベクトル長の短いベクトルを前後のベクトルに統合する処理を行う。ステップS31では、2次元ベクトルの連なりを完成させるために、短い途切れの前後のベクトル間の段差を許容して途切れ部分にベクトルを補完したが、元来、鉄道用軌道は滑らかに変化するはずであるから、短い間隔で向きが変化するベクトルに基づいて軌道プロファイルを生成すると、現実の軌道の特性に合わない情報が生成される可能性がある。
【0115】
そこでこの実施例では、ステップS31で補完されたベクトルに対応する3次元ベクトルの長さを算出し、この長さが所定の基準値以下であれば、図24に示すように、このベクトルを、前後のベクトルのうちの短い方と統合するようにしている。なお、図24は、3次元ベクトル鎖を上方から見たものである。
【0116】
さらにこの実施例では、上記の統合処理を行ったベクトルについて、同様に長さを算出して基準値との比較を行い、ベクトルの長さが基準値以下であれば、再度の統合処理を行うようにしている。以下、統合後のベクトルが基準値を上回る状態になるまで、上記の処理を繰り返す。
【0117】
上記の1番目のノイズ除去処理によれば、生成された3次元ベクトル鎖の中に、軌道以外の要素(ビーム25などによるもの)と連結しているベクトルがある場合には、その連結を断ち切って、3次元ベクトル鎖の精度を高めることができる。また2番目のノイズ除去処理によれば、3次元ベクトル鎖を、軌道に応じた滑らかな変化を表すものに補正することができる。よって、これらの処理により、以後の軌道プロファイルの生成処理を安定して行うことが可能になる。
【0118】
なお、2番目のノイズ除去処理は、軌道以外の要素により短い2次元ベクトル鎖が生成されている場合に、これを除外する目的に使用することもできる。また、2番目のノイズ除去処理は、3次元ベクトル鎖に対するものに限らず、ステップS31の結合処理後の2次元ベクトル鎖に対して行ってもよい。
【0119】
[軌道プロファイル生成エンジンによる処理について]
この実施例では、3次元ベクトル鎖中の各3次元ベクトルを分析して、ユーザにより指定された範囲内の鉄道用軌道を所定数の区間に分割する。そして、区間毎に、その区間内の軌道の特徴および制限速度を属性として設定し、これらの属性情報をまとめたデータファイルを軌道プロファイルとして出力する。
【0120】
図25は、軌道プロファイルの生成に関する処理の概略手順を示すフローチャートである。以下、このフローチャートの流れに沿って、各ステップ(S51〜57)の詳細な内容を説明する。
【0121】
5−1)カーブの向きの特定(ステップS51)
この実施例では、3次元ベクトル鎖中で連続する関係にあるベクトル間には、微小であっても軌道の長さ方向に変化が生じている点に着目し、始点側端縁のベクトル(以下、「先頭のベクトルという。)および終点側多年のベクトル(以下「最後のベクトル」という。)を除く各ベクトルがそれぞれ右カーブまたは左カーブに対応するものとして、そのカーブの向きを特定する。
【0122】
具体的に図26を用いて説明する。この例も、3次元ベクトルを上方から見た状態を示すものであり、ベクトルβが着目中ベクトルで、ベクトルαが1つ前のベクトルである。また説明の都合上、各ベクトルα,βのなす角度を誇張して描いている。
【0123】
この実施例では、着目中のベクトルβおよび1つ前のベクトルαに、それぞれ垂直二等分線を設定し、これらの交点Pの座標を求める。以下、これらのベクトルα,βの方向が列車の進行方向に対応していることを利用して説明すると、図26の例に示すように、進行方向に対して左手に交点Pが現れた場合には、着目中のベクトルbに対応するカーブの向きを「左」と判定する。これに対し、進行方向に対して右手に交点Pが現れた場合には、着目中のベクトルβに対応するカーブの向きを「右」と判定する。
このように3次元ベクトル鎖の中の前後のベクトルの関係を利用して、カーブの向きを容易に特定することができる。なお、交点Pの座標は、ステップS54で使用するために、メモリ内に保存される。
【0124】
なお、この実施例では、後記するように、先頭および最後のベクトルに直線の属性を設定するため、これらのベクトルをステップS51の処理対象から外しているが、最後のベクトルについても、その1つ前のベクトルとの関係に基づいてカーブの方向を特定してもよい。
【0125】
5−2)あり得ないS字曲線を補正(ステップS52)
鉄道用軌道では、安全を確保するために、進行方向の切り替えが生じた地点から次の切り替えが生じる地点までに、必ず20m以上の直線区間を設けるようにしている。ステップS52は、この特徴に対応していない3次元ベクトルを検出して、補正することを目的とするものである。
【0126】
具体的には、ステップS51の処理結果に基づき、カーブの向きが変更される地点を抽出し、この変更直後の3次元ベクトルの長さを算出する。ここで算出されたベクトルの長さが20m未満であれば、図27に示すように、このベクトルを前後いずれかのベクトルに統合する(統合の手法は先の図24の例と同様である。)。
【0127】
さらに、図25には示していないが、上記の統合処理が終了した後は、処理後の3次元ベクトル鎖を対象に、再びステップS51,S52を実行する。以下、カーブが変更された直後のベクトルの長さがすべて20m以上になるまで、同様の処理を繰り返す。これにより、3次元ベクトル鎖の精度をより高め、軌道以外の要因による短い3次元ベクトル鎖を除去することができる。
【0128】
なお、上記のステップS51,52は、軌道プロファイル生成エンジン3で行う処理に限らず、ベクトル化処理エンジン2側の3次元ベクトルのノイズ除去処理(ステップS42)に含めて行ってもよい。また、上記の20mをピクセル単位の情報に変換して、2次元ベクトル鎖のノイズ除去処理を行ってもよい。
【0129】
5−3)ベクトルの属性設定(ステップS53)
この処理では、S字曲線に関する補正が終了した3次元ベクトル鎖を対象にして、各ベクトルの属性を定める。ここでは、各ベクトルに直線または曲線の属性を設定するとともに、ステップS51で特定したカーブの向きも属性に含める。さらに曲線に分類されたベクトルについては、曲率を表すカーブ半径も属性として設定する。
【0130】
図28は、ベクトルの属性の設定に関する具体的手順を示すフローチャートである。
このフローチャートに沿って説明する。この処理でも3次元ベクトル鎖の始点側のベクトルを先頭として各ベクトルに順に着目し(ST101)、先頭および最後のベクトルを除く各ベクトルに対してカーブ半径を算出する(ST102,103)。
【0131】
図29は、カーブ半径の算出方法の具体例を示す。
この例でも、先の図26と同様に、ベクトルβを着目中のベクトルとする。ベクトルαはベクトルβの1つ前のベクトルであり、ベクトルγは1つ後のベクトルである。また図29(1)の例と図29(2)の例とでは、ベクトルγが表すカーブの向きが逆になっている。
【0132】
図中の点Pは、ベクトルβとベクトルαとの間で図26に示した処理を行うことにより求められた交点である。また点Qは、ベクトルγとベクトルβとの間で同様の処理を行うことにより求められた交点である。
【0133】
これらの交点P,Qに関しては、図29(1)に示すように各点が進行方向に対して同じ側に現れる場合と、図29(2)に示すように各点が進行方向に対してそれぞれ異なる側に現れる場合とがある。しかし、この実施例では、交点P,Qの関係に関わらず、いずれの場合でも、着目中のベクトルβに対する各点P,Qの距離を求め、これらのうちの短い方(図示例では(1)(2)とも点Qとの距離になる。)を、ベクトルβに対応するカーブ半径とする。
【0134】
上記において、交点Pとベクトルβとの距離は、ベクトルβの中点と1つ前のベクトルαの中点とが同じ円弧上に位置するとした場合の当該円弧の半径に相当する。また交点Qとベクトルβとの距離は、ベクトルβの中点と1つ後のベクトルγの中点とが同じ円弧上に位置するとした場合の当該円弧の半径に相当する。すなわち上記の処理は、ベクトルαとβとの組み合わせ、ベクトルβとγとの組み合わせにつき、それぞれその組み合わせが1つの曲線に対応するものとして当該曲線に近似する円弧の半径を求め、そのうちの短い方を着目中ベクトルが表すカーブのカーブ半径として特定するものである。後記するように、カーブ半径は制限速度の導出に用いられるので、安全性を確保するために、より急峻なカーブを表す円弧の半径を採用している。
【0135】
このようにして着目中のベクトルのカーブ半径が算出されると、つぎは、算出されたカーブ半径により図30のテーブルを参照する。このテーブルでは、複数のしきい値に基づきカーブ半径の値を所定の範囲毎に区切って、各範囲にそれぞれ規格のカーブ半径として当該範囲内の最小のカーブ半径を対応づけている。
【0136】
ここで、算出されたカーブ半径が2200mより小さい場合(ST104が「NO」)には、着目中のベクトルの属性を曲線に設定する(ST105)。ついで、上記のテーブルを参照する(算出されたカーブ半径をテーブルの各範囲の上下限値と照合して、算出値に対応する範囲を判別する。)ことによって、算出されたカーブ半径を規格のカーブ半径に置き換え、この規格のカーブ半径と先のステップS51で特定したカーブの向きを、着目中のベクトルの属性に追加する(ST106)。
【0137】
図30のテーブルでは、カーブ半径が2200m以上であれば、該当するベクトルを直線に相当するとしている。これに基づき、着目中のベクトルにつき算出されたカーブ半径が2200m以上であった場合(ST104が「YES」)には、このベクトルの属性を「直線」に設定する(ST107)。ただし、このベクトルは、先に述べた進行の方向の切り替え後の直線区間に相当する可能性があるので、この場合にも、カーブの向きをベクトルの属性に追加する(ST108)。
【0138】
なお、3次元ベクトル鎖の先頭のベクトルおよびベクトル鎖の最後尾のベクトル(以下、「最後のベクトル」という。)については、図29に示した方法によりカーブ半径を算出することができないので、属性を「直線」に設定する。また、図28のフローチャートには示していないが、先頭および最後のベクトルについては、カーブの向きに代えて、ベクトル鎖の先頭または最後であることを示す情報を属性として設定する。また、図28には示していないが、ベクトルの中に、カーブ半径が100m未満のものがあった場合には、処理を中止し、そのベクトルの情報を異常値として出力する。
【0139】
図28のフローチャートによる処理は、先頭および最後のベクトルを除く各ベクトルに対し、それぞれそのベクトルに対応するカーブのカーブ半径(曲率半径)を算出し、その算出結果に基づき、対応するカーブの曲がり度合が図30に示した複数の区分のいずれに相当するかを判別するものである。さらに、この処理では、各ベクトルについて、曲がり度合を表す情報(直線/曲線の区別、および規格のカーブ半径)を属性として設定する。これらの属性は、以下の区間設定処理に利用され、さらに設定される区間にも引き継がれる。
なお、ステップS51において最後のベクトルについてもカーブの向きを特定した場合には、この最後のベクトルに対しても、1つ前のベクトルに対する関係に基づいてカーブ半径を求めて、そのカーブ半径の値や1つ前のベクトルとの関係に基づき、直線/曲線の別を判定してもよい。
【0140】
5−4)区間設定処理(ステップS54)
このステップS54では、上記の処理により属性が定まった3次元ベクトルに順に着目して、各ベクトルを所定数の区間にグループ分けする。具体的には、「直線」の属性を有するベクトルと「曲線」の属性を有するベクトルとを分類し、さらに「曲線」の属性を有するベクトルについては、カーブの向きが同じものが続く間、同じ区間に分類する。
以下、「直線」の属性を有するベクトルによる区間を「直線区間」といい、「曲線」の属性を有するベクトルによる区間を「曲線区間」という。
【0141】
図31は、区間設定処理の詳細な手順を示す。
この図を参照して説明すると、この例でも3次元ベクトル鎖の各ベクトルに、先頭から順に着目する。まず先頭のベクトルには、「直線」の属性が設定されているから、つぎのST202の判定は「NO」となり、着目中のベクトルによる直線区間を設定する(ST208)。なお、この直線区間には、着目中ベクトルに関する情報(始点および終点の座標)も属性として包含される。
【0142】
2番目以降のベクトルでも、「直線」の属性が設定されているものに対しては、上記と同様に、着目中のベクトルによる直線区間を設定する(ST208)。また、この場合には、着目中のベクトルに属性として設定されているカーブの向きが、区間の属性としても設定される。一方、着目中のベクトルに「曲線」の属性が設定されている場合には、1つ前のベクトルの属性によって処理内容が変動する。
【0143】
まず、1つ前のベクトルの属性が「直線」の場合(ST203が「YES」)には、着目中ベクトルを先頭とする新規の曲線区間を設定する(ST204)。この場合には、着目中ベクトルの始点、終点、およびカーブの向きが、この曲線区間の属性に組み込まれる。
【0144】
1つ前のベクトルの属性が「曲線」で、そのカーブの向きが着目中ベクトルと同じ場合(ST203が「NO」、ST205が「YES」)には、着目中ベクトルを1つ前のベクトルと同じ曲線区間に分類する。この場合も、着目中ベクトルの始点、終点、およびカーブ半径ならびにカーブの向きが、曲線区間の属性に追加される。
【0145】
1つ前のベクトルの属性が「曲線」で、そのカーブの向きが着目中ベクトルと異なる場合(ST203が「NO」、ST205が「NO」)には、着目中ベクトルの属性を、「曲線」から「直線」に変更し(ST207)、このベクトルによる新たな直線区間を設定する(ST208)。この場合にも、着目中ベクトルの始点および終点、ならびにこのベクトルに属性として設定されていたカーブの向きが、そのまま直線区間の属性に組み込まれる。
【0146】
前述したように、鉄道用軌道のカーブの向きが切り替えられた地点の後には、必ず20m以上の直線区間が存在する。上記ST207の処理は、この特徴を反映したものである。先のステップS52で20m未満のベクトルを統合する処理を行ったことにより、この時点で設定される直線区間は、必ず20m以上の距離を有するものとなる。
【0147】
よって、すべてのベクトルに対する処理が終了したとき(ST209が「YES」)には、鉄道用軌道の特徴を精度良く反映した区間を得ることができる。各区間には、直線/曲線およびカーブの向きを表す属性のほか、当該区間に含まれる3次元ベクトルの始点および終点の座標が包含される。
【0148】
ただし、区間の設定処理のアルゴリズムは図31に示したものに限らず、適宜アレンジすることができる。たとえば、1つのベクトルにつき1つの区間を設定してもよい。また曲線区間については、対応するカーブおよび規格のカーブ半径が同一のベクトルが連続する範囲毎に1つの曲線区間を設定してもよい。
【0149】
5−5)ベクトルの勾配・長さの算出(ステップS55)
ステップS55では、各3次元ベクトルが表す勾配およびベクトルの長さを算出する。勾配については、ベクトル化処理のステップS42と同様に1km換算の勾配を算出する。長さの算出は、ベクトルの始点と終点との距離を求める演算により行われる。これらの算出結果は、各ベクトルの属性に追加される。
【0150】
さらに勾配に関しても、カーブ半径と同様に、複数のしきい値を用いて規格の値に変更する。具体的には、算出された勾配が1‰未満であれば、勾配を0‰(すなわち平坦面)とする。以下は、5‰の単位で各勾配に範囲を設定し、各範囲での最も急な勾配を規格の値として採用する。たとえば算出された勾配が1〜5‰の範囲に入る場合には、5‰を勾配として採用し、算出された勾配が5‰〜10‰の範囲に入る場合には、10‰を勾配として採用する。
【0151】
5−5)ベクトルの勾配・長さに基づく区間の再設定(ステップS56)
ステップS56では、ステップS54の処理により設定された各区間に順に着目し、着目中の区間に含まれる3次元ベクトルの勾配および長さに基づき、着目中の区間をさらに細かく分割する。
【0152】
図32は、勾配に基づいて区間を分割する例を示す。
この例は、同一の区間に含まれる6つのベクトルa,b,c,d,e,fを勾配に基づきグループ化するものである。ここでは、各ベクトルa〜fを、それぞれの規格の勾配に基づいてグループ分けし、1つ1つのグループをそれぞれ一区間とする。これにより、各ベクトルa〜fは、4つの区間A,B,C,Dに分割される。
【0153】
なお、上記の例では、上り勾配を対象にしたグループ分けを示しているが、下り勾配を対象にする場合も、同様の方法でグループ分けが行われる。また処理前の区間に上り勾配と下り勾配とが含まれる場合には、これらを別々の区間に分ける。
【0154】
このようにして勾配に基づく区間の再設定が行われると、さらに各区間毎に、区間内に属するベクトルの長さの総和を求める。そして、この長さの総和(区間の長さ)が1000m以上になる場合には、1000mより小さくなるように、区間を分割する。
【0155】
再設定された各区間には、それぞれ元の区間の属性(直線/曲線およびカーブの向き)や所属のベクトルの属性が引き継がれる。さらに各区間には、新たに、勾配の上り/下りの区分、規格の勾配、区間の長さの各情報が属性として追加される。
【0156】
5−6)制限速度の設定(ステップS57)
ステップS57では、上記ステップS56の処理により再設定された区間に、制限速度を設定する。具体的には、カーブ半径、勾配の上り/下り、および規格の勾配の組み合わせを複数設けて、これらの組み合わせと制限速度とを対応づけたテーブルが用意されており、このテーブルを参照することによって、着目中の区間の各ベクトルに対応する範囲毎に制限速度を決定する。そして決定された制限速度を、それぞれのベクトルの属性に追加する。
【0157】
さらに、各区間の接続地点のうちカーブの向きが変わる地点については、この地点の前後の所定範囲における制限速度が同じ区間内の他の箇所より低くなるようにするなど、1つ1つの区間における制限速度およびその適用範囲を細かく設定し直す処理を行う。そして、これらの再設定に応じて各区間の属性を更新し、処理を終了する。
【0158】
上記の処理により、最終的に、複数の区間について、直線/曲線の種別、勾配の上り/下りの種別、カーブの向き、勾配、区間の長さ、区間内に含まれるベクトルの情報などの属性が対応づけられる。また、各ベクトルの情報には、始点、終点の座標や長さのほか、制限速度が含められる。このような構成の軌道プロファイルにより、列車の進行方向、カーブを切り替える地点、制限速度およびその制限速度を適用すべき走行範囲などの情報を取得して、列車の走行制御に利用することが可能になる。
【0159】
[まとめ]
以上に説明したように、ベクトル化エンジン2では、オルソ画像中の鉄道用軌道を所定幅の3つの線状領域L1〜L3が幅方向に沿って並ぶ構成のパターン画像に変換した後に、この変換後画像にLoGフィルタを適用することにより、鉄道用軌道の特徴を容易に抽出することができる。また、各線状領域L1〜L3の幅方向の画素配列を抽出して、その中心部を抽出することにより、軌道の長手方向に沿うラインの連続性を確保する(切れ目が少ない。)ことができる。さらに、抽出した軌道の特徴をベクトル化して2次元ベクトル鎖を生成するので、オルソ画像を用いた画像処理のみで、軌道の経路を表す情報(2次元ベクトル鎖)を生成することが可能になる。また、ベクトル間の距離や位置関係によって値が変動する評価値V(a,b)を用いて2次元ベクトル鎖の途切れた箇所にベクトルを補完するので、2次元ベクトル鎖の精度をさらに高めることができる。
【0160】
さらに、ベクトル化エンジン2において、DSM情報を用いて2次元ベクトル鎖を3次元化した後に、軌道プロファイル生成エンジン3において、3次元ベクトル鎖のベクトル間の関係や個々のベクトルの特徴に基づく情報処理を行って、上記内容のプロファイルを生成するので、列車の走行制御に利用可能な情報を容易に生成することが可能になる。
【0161】
上記の処理により生成された軌道プロファイルは、列車の車上装置に組み込まれて、速度制御や手動運転の監視などに使用することができる。また、車上装置に限らず、たとえば軌道上に配置されている地上子に、その設置地点を含む所定範囲内の軌道プロファイルを組み込み、近づいてきた列車に、地上子から軌道プロファイルやこれに基づき生成した制御データを送信してもよい。
【0162】
また、列車の制御に限らず、地上子や無線通信用のアンテナなどの設置位置を決める場合にも、上記の軌道プロファイルを用いた情報処理によって、処理の効率や精度を高めることができる。
【0163】
また上記では、鉄道用軌道の特徴情報を生成する処理に関して詳細に説明したが、高速道路などの一般車両用の走行路に関しても、オルソ画像から走行路の長さ方向を表すラインを抽出した後に、このラインを3次元ベクトル鎖に変換し、さらにこの3次元ベクトル鎖から走行路の具体的特徴を表す情報を生成することができる。
【0164】
ただし、鉄道用軌道以外の車両走行路の特徴情報を生成する場合のオルソ画像に対する画像処理では、最小値フィルタやLoGフィルタを用いた画像処理に代えて、処理対象の車両走行路の特性に応じた処理を実行する必要がある。また、3次元ベクトル鎖を生成した後の処理でも、鉄道用軌道に特有の補正処理(図25のステップS25)を行う必要がないので、ベクトル鎖の各ベクトルに順に着目して、着目したベクトル毎に、少なくとも始点側に連結しているベクトルとの関係に基づき、カーブの向きを特定する処理(ステップS51)とカーブ半径を求める処理とを連続して実施してもよい。その他の処理に関しても、処理対象の車両走行路の特性に応じて、適宜、変更が可能である。
【0165】
また、上記の実施例では、オルソ画像から車両走行路(軌道)の長さ方向に沿うラインを自動抽出したが、これに限らず、ユーザの手操作により画像中に走行路に沿うラインを設定し、このラインから3次元ベクトル鎖を生成してもよい。
さらに、オルソ画像に代えて、たとえば地形図の3次元情報を用いて3次元ベクトル鎖を生成してもよい。
【図面の簡単な説明】
【0166】
【図1】線路プロファイル生成システムの機能ブロック図である。
【図2】オルソ画像中の線路に対応する範囲を模式化した図である。
【図3】図2の画像にベクトル化処理により生成された3次元ベクトル鎖を重畳した画像を模式化した図である。
【図4】ベクトル化処理の概略手順を示すフローチャートである。
【図5】最小値フィルタによる変換処理の原理を説明する図である。
【図6】最小値フィルタによる変換処理の原理を説明する図である。
【図7】最小値フィルタによる変換処理の原理を説明する図である。
【図8】図5のオルソ画像に最小値フィルタを適用する処理により変換された画像を模式化した図である。
【図9】3つの線状領域に対応する画素配列を抽出する方法を説明する図である。
【図10】画素配列の中心部の抽出結果を示す2値画像を模式化した図である。
【図11】孤立点除去処理の内容を示す図である。
【図12】膨張・収縮処理の内容を示す図である。
【図13】端点除去処理の内容を示す図である。
【図14】突起除去処理の内容を示す図である。
【図15】図10の2値画像の黒画素群を細線化した結果を模式化した図である。
【図16】チェーンコードの設定処理の内容を示す図である。
【図17】2次元ベクトル鎖の生成処理の具体例を示す図である。
【図18】ベクトルを結合する条件を説明する図である。
【図19】ベクトル間の距離によって結合の条件を変更する例を示す図である。
【図20】ベクトルの正しい結合例と誤った結合例とを対比して示す図である。
【図21】ベクトルの結合を判定するための評価値の演算式に用いられるパラメータを示す図である。
【図22】評価値の演算式に組み込まれるしきい値を表す関数のグラフである。
【図23】3次元ベクトルのデータ構成を示す図である。
【図24】3次元ベクトルに対するノイズ除去処理の例を示す図である。
【図25】軌道プロファイルの作成処理の概略手順を示すフローチャートである。
【図26】ベクトルが表すカーブの方向を特定する処理を説明する図である。
【図27】あり得ないS字曲線に対応するベクトルを補正する処理を説明する図である。
【図28】ベクトルの属性設定処理に関する手順を示すフローチャートである。
【図29】カーブ半径を算出する方法を説明する図である。
【図30】カーブ半径の算出値を規格のカーブ半径に置き換えるためのテーブルの内容を示す図である。
【図31】区間設定処理に関する手順を示すフローチャートである。
【図32】勾配に基づいて区間を再設定する処理を説明する図である。
【符号の説明】
【0167】
1 GUIアプリケーション
2 ベクトル化エンジン
3 軌道プロファイル生成エンジン
5 オルソ画像のデータファイル
10 3次元ベクトル情報
11 3次元ベクトル鎖
20A,20B 鉄道用軌道
【技術分野】
【0001】
本発明は、鉄道用軌道(以下、単に「軌道」という場合もある。)や高速道路などの車両走行路を含む所定広さのエリアの3次元情報を用いて、当該車両走行路の特徴を表す情報を生成する方法、およびこの方法を実施するための装置ならびにプログラムに関する。
【背景技術】
【0002】
近年、車両の走行を制御したり、運転者へのナビゲーションを行うことを目的として、車両走行路の特徴を表す情報を生成する技術が開発されている。
【0003】
たとえば、下記の特許文献1には、道路を対象としたオルソ画像から道路を表す線分を抽出し、さらに抽出された線分情報を詳細に分析して左右の車道外側線を関数で表現した線データを作成し、これらの線データに基づき道路全体を示す道路ネットワーク線を生成することが記載されている。また、補助情報として曲率半径を算出したり、地面の3次元計測により得た3次元計測データを用いて道路の勾配を算出することも記載されている。
【0004】
【特許文献1】特開2008−170611号公報(段落0017〜0020,0028〜0031,0047,0055参照。)
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記の特許文献1に記載されているように、車両走行路の長さ方向の変化を精度良く抽出するには、オルソ画像を使用するのが望ましい。
オルソ画像は、空中三角測量により求めた3次元座標を用いて作成されるもので、歪みが少なく、観測対象エリアを真上から観察した状態を精度良く表すことで知られている。また、空中三角測量によって、各地点の高さ情報を取得することもできるので、斜面の勾配を算出することも可能である。したがって、オルソ画像を対象に、車両走行路の長さ方向に沿うラインを抽出または設定すれば、車両走行路の具体的な長さおよび方向、ならびに勾配の変化を表す情報を得ることができる。
【0006】
しかし、実際の車両走行路には種々のカーブや勾配があり、カーブの曲率や勾配の度合いも場所によって異なる。したがって、車両の進行方向や速度を適切に制御したり、運転者に適切なナビゲーションをするには、車両走行路中のカーブの位置や向き、走行路の曲がり度合や勾配の変化などが詳細に表された情報が必要である。
【0007】
本発明は、上記の点に鑑み、車両走行路を表す3次元情報を処理することによって、この車両走行路の具体的な特徴を精度良く表した情報を生成することを、課題とする。
【課題を解決するための手段】
【0008】
本発明による車両走行路の特徴情報の生成方法では、以下の第1〜第4のステップを実行する。
【0009】
第1ステップでは、車両走行路を含む所定広さのエリアの3次元情報を処理することによって、車両走行路の位置および方向ならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成する。第2ステップでは、上記のベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、各対象ベクトルにつき、少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する。
【0010】
第3ステップでは、第2ステップの判別結果に基づき、車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する。
【0011】
第4ステップでは、第3ステップの処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。
【0012】
第1ステップで生成される「3次元ベクトル」は、たとえば、始点および終点の3次元座標の組み合わせにより表すことができる。これらの座標は、地表上の実際の位置や高さを表すものであるのが望ましいが、これに限らず、実際の座標を一定の縮尺に基づいて変換した座標を設定してもよい。またベクトルのデータ構成自体は2次元として、別途、地表上の位置を表す3次元情報を設けることで、各ベクトルの始点および終点の3次元座標を導出できるようにしてもよい。
【0013】
ベクトル鎖は、各3次元ベクトルの始点から終点に向かう方向が車両の進行方向に対応するように構成するのが望ましい。このようにすれば、ベクトル鎖の始点側の端縁から終点側の端縁に向かう方向に沿って各ベクトルを順に辿りながら、第2ステップおよび第3ステップの処理を実行することができる。
【0014】
第1ステップの処理によれば、ベクトル鎖中で連続する関係にある2つのベクトルが表す経路の間には、微小であっても角度差が生じる可能性が高い。したがって、第2ステップでは、たとえば、ベクトル鎖の各ベクトルに車両の走行路に対応する順序をもって順に着目して、着目ベクトルと1つ前に着目したベクトル(着目ベクトルの始点に連結しているベクトル)とに1つの曲線を対応づけて、その曲線が進行方向に対して左右いずれの方向を向いているかにより、ベクトルに対応するカーブの向きを判別することができる。またこの曲線の曲率半径を求めることにより、上記のカーブの曲がり度合を判別することができる。
【0015】
なお、カーブの向きの判別と曲がり度合の判別とは、いずれも着目ベクトルと1つ前のベクトルとの関係に基づいて行うことができるが、さらに、着目ベクトルと後続のベクトルとの関係を利用してもよい。またカーブの向きの判別と曲がり度合の判別とで、アルゴリズムを分けて実施してもよい。
【0016】
また第2ステップでは、カーブの曲がり度合に関しては、1つのしきい値により直線とみなし得るレベルの曲がり度合と、曲線に相当する曲がり度合との2種類に区分するだけでもよいが、さらに複数のしきい値により、曲線に相当する曲がり度合を複数の区分に分類するのが望ましい。
【0017】
また、上記の第2ステップにおいては、ベクトル鎖の両端縁のベクトルを対象から除外しているが、ベクトル鎖の両端縁のベクトルについても、別途、それぞれに連結するベクトルとの関係などに基づき、カーブの向きおよび曲がり度合を判別してもよい。
【0018】
第3ステップでは、たとえば、車両走行路を、カーブの方向が切り替わる地点毎に区切ることで、車両進行方向が右方向に変化する区間(右カーブ)と左方向に変化する区間(左カーブ)とに分類することができる。さらに、カーブの向きが同一の範囲を、曲がり度合に基づき複数の区間に分割したり、所定の上限値を超える区間を、上限値以内の長さの範囲毎に分割することもできる。
【0019】
第4ステップでは、設定された区間毎に、その区間全体の長さやカーブの向きを表す情報を作成するほか、当該区間に含まれるベクトルの情報を用いて、車両走行路の曲がり度合や勾配の変化を詳細に表した情報(曲がり度合や勾配の程度が変化する地点やその変化の程度を特定できる情報)を作成する。よって、3次元ベクトルによるベクトル鎖から車両の走行制御や運転者のナビゲーションに適した情報を生成することが可能になる。
【0020】
つぎに、上記の方法に関して、好ましい4つの実施態様を説明する。
第1の実施態様では、第1ステップにおいて、車両走行路に対する空中三角測量により生成されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出する。そしてオルソ画像の各画素に対応する3次元座標の中から各2次元ベクトルの始点および終点に対応する座標を特定することにより、前記複数の3次元ベクトルを決定する。
【0021】
上記によれば、オルソ画像およびこれにリンクする3次元座標を用いて、実際の車両走行路の向きの変化を精度良く表すベクトル鎖を生成した後に、第2〜第4のステップを実行するので、各区間の長さや勾配などを、実際の尺度で精度良く表すことが可能になる。
【0022】
第2の実施態様では、第2ステップにおいて、対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を対象ベクトルに対応する曲率半径として選択し、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する。
【0023】
上記の態様によれば、ベクトル鎖の両端以外の各ベクトルについて、始点および終点に連続する各ベクトルとの関係により算出された2つの曲率半径のうちの小さい方の値が、当該ベクトルに対応する曲率半径として設定される。カーブの曲がり度合は車両の速度を決める要素として使用されることが多いので、上記のように値が小さい方の曲率半径を選択することにより、安全性を高めることができる。また選択された曲率半径を1つ以上のしきい値と照合することにより、カーブの曲がり度合を2以上のグループにより表すことが可能になる。
【0024】
第3の態様では、第3ステップにおいて、車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する。この態様によれば、勾配が同程度になる範囲を1つの区間とすることができるので、速度制御に利用しやすい情報を得ることができる。
【0025】
第4の態様では、第4ステップにおいて、第3ステップで設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する。
【0026】
上記の態様によれば、各区間に対して、その区間内のベクトルに対応する勾配や曲がり度合に応じて、ベクトル単位で制限速度を設定することができる。また区間内で勾配や曲がり度合が変化しなくとも、区間の初めと終わりに相当する所定範囲で他の範囲より遅い速度を設定するなど、細かい設定を行うこともできる。このように、各区間に適用される制限速度までを含む情報を生成することにより、車両の走行制御にそのまま導入可能な情報を生成することができる。
【0027】
つぎに、上記の方法が適用された車両走行路の特徴情報の生成装置は、車両走行路を含む所定広さのエリアの3次元情報を入力する入力手段と、入力した3次元情報を処理することによって、車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段とを具備する。さらにこの装置は、以下に示す判別手段、区間設定手段、情報作成手段をを具備する。
【0028】
判別手段は、ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する。
【0029】
区間設定手段は、上記の判別結果に基づき、車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する。情報作成手段は、区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。
【0030】
上記の装置によれば、車両走行路を含むエリア内の3次元情報を入力することによって、先に説明した第1〜第4の各ステップを実行して、車両走行路の特徴を表す情報を作成することができる。
【0031】
さらに前出の第1の態様による方法を実施する装置では、入力手段は、車両走行路に対する空中三角測量により生成されたオルソ画像およびこのオルソ画像の各画素に対応する3次元座標の集合を入力する。またベクトル鎖生成手段は、入力されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出する2次元ベクトル生成手段と、上記の3次元座標の集合から各2次元ベクトルの始点および終点に対応する3次元座標を特定することにより前記複数の3次元ベクトルを決定する3次元ベクトル生成手段とを具備する。
【0032】
第2の態様による方法を実施する装置では、判別手段は、対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を当該ベクトルに対応する曲率半径として選択する手段と、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する手段とを具備する。
【0033】
さらに、第3の態様を実施する装置では、区間設定手段は、判別手段の判別結果に基づき、車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する。
【0034】
さらに、第4の態様を実施する装置では、情報作成手段は、区間設定手段により設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する。
【0035】
さらに、本発明では、上記のベクトル鎖生成手段、判別手段、区間設定手段、および情報作成手段として、コンピュータを機能させるためのプログラムを提供する。
【発明の効果】
【0036】
本発明によれば、車両走行路を含むエリアの3次元情報を用いて、車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成した後、このベクトル鎖中の各ベクトルの関係に基づいて、車両走行路を複数の区間に分割し、各区間の長さおよびカーブの向き、ならびに区間内における車両走行路の曲がり度合および勾配の変化を表す情報を作成する。よって、車両走行路の具体的な特徴を精度良く表した情報を生成して、車両の走行制御や運転者へのナビゲーションなどに役立てることが可能になる。
【発明を実施するための最良の形態】
【0037】
[システムの概略説明]
図1は、この発明が適用された軌道プロファイル生成システムの機能ブロック図を示す。このシステムは、列車に搭載されたコンピュータ(「車上装置」と呼ばれる。)が列車の走行を制御する目的で使用する情報を生成するためのもので、1台のコンピュータ内または複数台のコンピュータによるネットワークシステム内に設定される。
【0038】
このシステムでは、オルソ画像のほか、オルソ画像に派生して生成されたDSM情報(Digital Surface Model)や、地図情報とオルソ画像との関係を表すワールドファイルなどを利用する。これらは、いずれも個別のデータファイル5,6,7として構成されて、コンピュータの図示しないメモリ(ハードディスク)内に格納される。
【0039】
図中、GUI(グラフィカル・ユーザ・インターフェース)アプリケーション1は、図示しないモニタや入力部(キーボード、マウスなど)と連動して、ユーザによる設定操作を受け付けながら、3次元ベクトル情報を生成する処理、生成した3次元ベクトル情報を編集する処理、および3次元情報から軌道プロファイルを生成する処理を実行する。
【0040】
ベクトル化エンジン2は、オルソ画像およびDSM情報から、鉄道用軌道の経路を表す3次元ベクトル情報10を生成する。この3次元ベクトル情報10は、複数の3次元ベクトルの集合(以下、これを「3次元ベクトル鎖」という。)11を複数含むものである。
【0041】
生成された3次元ベクトル情報10は、GUIアプリケーション1に渡される。GUIアプリケーション1は、この3次元ベクトル情報10から処理対象の3次元ベクトル鎖11を順に取り出して、演算パラメータとともに軌道プロファイル生成エンジン3に出力する。なお、演算パラメータには、各種判定のためのしきい値や判定用テーブルなどが含まれる。
【0042】
軌道プロファイル生成エンジン3は、供給された3次元ベクトル鎖11を処理することによって、鉄道用軌道の特徴を表す情報群(以下、「軌道プロファイル」という。)13を生成する。生成された軌道プロファイル13は、GUIアプリケーション1によって車上装置用のデータベース9に格納される。このデータベース9が各列車の車上装置に移植され、走行制御に利用されることになる。
【0043】
また、GUIアプリケーション1は、軌道プロファイル13の生成に用いられる前の3次元ベクトル情報10を適宜モニタに表示して、ユーザによる簡易な補正作業を受け付け、3次元ベクトル情報10を編集する。具体的な編集は、編集対象の3次元ベクトル鎖10をDXFファイル8に変換し、CAD専用のソフトウェアによる編集エンジン4を用いて行われる。
【0044】
図2は、上記システムで使用されるオルソ画像を模式的に表したものである(画像全体の中から軌道の部分を抜き出し、拡大したイメージを示す。)。
この画像は、上空での空中三角測量により生成されたもので、各地点の真上から観測した状態が現れるように歪みが除去されている。前述のDSM情報も、この空中三角測量により求められたもので、オルソ画像中の各画素に対応する高さ情報(Z座標)を有する。また、ワールドファイルを参照することによって、このオルソ画像の1画素に対応する地点における地図上の座標(X,Y座標)を特定することができる。
【0045】
図2の画像には、2本の軌道20A,20Bのほかに、架線支持用のビーム25およびその影24が現れている。このほか、作図の都合上、表していないが、各軌道20A,20Bの近傍には、バラストからの反射などによる明暗差や架線などが現れている。
【0046】
なお、実際のオルソ画像はカラー画像であるが、ベクトル化エンジン2により処理される際には、グレースケール画像に変換される。また、図2では、作図の都合上、ビーム25を黒線で表しているが、実際の画像では、ビーム25の色彩は白色系である。
【0047】
上記のオルソ画像はGUIアプリケーション1により表示され、表示画面上の軌道に対し、ユーザにより処理範囲の始点および終点が指定される。ただし、この指定より前にベクトル化エンジン2は、このオルソ画像を処理して2次元ベクトル段階の処理を終えており、ユーザが始点および終点を指定すると、その指定に応じた範囲の3次元ベクトル鎖を生成する。
【0048】
3次元ベクトル鎖の生成が終了すると、表示画面は図3に示すようなものに変更される。この画面には、図3と同様のオルソ画像に、ベクトル化エンジン2により生成された3次元ベクトル鎖の各ベクトルを表す線分画像26が表示されている。
【0049】
ユーザは、表示された3次元ベクトル鎖を確認し、適宜、不要なベクトルを削除したり、欠落しているベクトルを補完するなどの補正作業を行うことができる。また、ユーザが3次元ベクトル鎖の抽出精度を確認して確定操作を行うと、確定された3次元ベクトル鎖が軌道プロファイル生成エンジン3に渡され、軌道プロファイルの生成処理が開始される。
【0050】
以下、ベクトル化エンジン2および軌道プロファイル生成エンジン3により実行される処理を、詳細に説明する。
【0051】
[ベクトル化エンジン2による処理について]
図4は、ベクトル化エンジン2により実行される処理の概略手順を示すフローチャートである。この図4によれば、この実施例のベクトル化処理は、フィルタ処理、2次元ベクトル情報生成処理、ベクトル推定処理、3次元ベクトル情報生成処理に大別される。
以下、このフローチャートの流れに沿いながら、適宜、他の図面を参照して上記3種類の処理の詳細を説明する。
【0052】
(1)フィルタ処理
1−1)軌道の特徴の強調処理(ステップS11)
このステップS11は、オルソ画像中の鉄道用軌道20A,20Bを、本来とは異なる特徴パターンに変換することによって、これらを容易に検出できるようにすることを目的とするものである。以下、この変換処理を模式的に示した図5〜7を用いて、第1ステップの処理の原理を説明する。
【0053】
一般に、オルソ画像中のレールや枕木は、周囲より暗く、さらにレールの方が枕木より暗くなる(発明者の計測では、256階調の画像で約40階調の差が認められた。)。また、レール間の間隔は枕木間の間隔より広く、これらの間隔はほぼ一定である。
ステップ11では、これらの特性を利用した最小値フィルタを使用することにより、図5に例示するような変換処理を行う。
【0054】
図5の左手の図は、オルソ画像の鉄道用軌道に対応する範囲を拡大した模式図である。
図中の点線で表す矩形枠は1画素に相当するもので、具体的には約10cm四方のエリアに相当する。また、この図では、軌道の方向が画像の上下方向に対応するものとして、各レール21,22の幅を1画素、レール21,22間の画素数(レール21,22の内側端縁の間にある画素の数をいう。)を9画素、枕木23の縦幅を2画素、枕木23間の画素数(1つの枕木23とその隣の枕木23との端縁間に存在する画素の数をいう。)を4画素としている。
【0055】
この実施例では、オルソ画像に5×5のサイズの最小値フィルタ100を適用する。この最小値フィルタ100の一辺の長さ(5画素)は、画像中のレール21,22間の画素数(9画素)より小さく、枕木23間の画素数(4画素)より大きい。また、最小値フィルタ100により変換された画像では、右手の図に示すように、各レール21,22が左右に2画素ずつ膨張して、5画素幅の線状領域L1,L2が生成される。また、枕木23については、横幅が5画素に縮小されるが、縦方向は上下に2画素ずつ膨張されて枕木23同士が一体化され、その結果、5画素幅の線状領域L3が生成される。また、線状領域L1,L2には元のレール21,22の濃度が反映され、線状領域L3には元の枕木23の濃度が反映される。
【0056】
上記の変換処理の原理について説明する。
最小値フィルタとは、原画像中のフィルタに対応づけられた範囲内の最小濃度(最も暗い画素の濃度)を、フィルタの中心位置の画素に適用するものである。図6は、図2に示したオルソ画像に対し、最小値フィルタ100を左から右に向かう方向に走査した例を示す。図3は、同じ最小値フィルタ100を上から下に向かう方向に走査した例を示す。
【0057】
図6(1)は、5×5の最小値フィルタ100の右一列が左側のレール21に対応づけられた状態を示す。この場合の最小値フィルタ100に対応する範囲では、レール21の濃度が最小になるから、フィルタ100の中央の画素、すなわちレール21から2画素離れた位置にある画素にレール21の濃度が採用される。
【0058】
図6(2)は、最小値フィルタ100の左一列が左側のレール21に対応づけられた状態を示す。この場合の最小値フィルタ100に対応する範囲には、レール21のほか枕木23も含まれるが、枕木23よりレール21の方が暗くなるから、この場合にも、フィルタ100に対応する範囲ではレール21の濃度が最小の濃度となる。よってフィルタ100の中央の画素には、レール21の濃度が採用される。
【0059】
またここには図示していないが、最小値フィルタ100が図6(1)の状態から図6(2)の状態まで移動する間の各位置においても、同様に、フィルタ100に対応する範囲では、レール21の濃度が最小になる。よって、レール21より2画素外側の位置からレール21より2画素内側までの範囲にある各画素では、いずれもレール21の濃度が採用されることになる。
【0060】
つぎに図6(3)は、最小値フィルタ100が、図6(2)の状態からさらに1画素右にずれた状態を示す。この段階で最小値フィルタ100に対応する範囲にはレール21が含まれない状態になるから、この範囲では枕木の濃度が最小の濃度となる。よって、この場合のフィルタ100の中央に対応する画素には、枕木23の濃度が採用される。
【0061】
この後、最小値フィルタ100が右側に移動して、右側のレール22がフィルタ100内に含まれる状態(図6(3)の位置から5画素分移動したとき)になるまでは、フィルタ100の中央に対応する画素には、いずれも枕木23の濃度が採用される。しかし、右側のレール21が最小値フィルタ100に含まれる状態になると、再び、レール21の濃度が採用される状態となる。右側のレール21に対しても、フィルタ100による作用は、左側のレール21に対するのと同様である。
【0062】
したがって、左右のレール21,22は、それぞれ内外に2画素ずつ膨張して5画素幅になる。しかし、この膨張幅は、レール21,22間の画素数の1/2より小さいから、各レール21,22が膨張した後も、枕木23の画像が残る余地がある。具体的には、枕木22は、レール21の膨張によって、9画素幅から5画素幅になる。
【0063】
図7は、最小値フィルタ100を、図6(3)の状態から、1画素ずつ下方に移動させた状態を示す。最小値フィルタ100の一辺の長さは、枕木23間の画素数(4画素)より大きく設定されているので、上下方向のいずれの位置にあっても、常に最小値フィルタ100内に枕木23の画素が含まれる。したがって図7(1)(2)(3)に示すように、レール21,22間のレール21,22が入らない範囲で最小値フィルタ100が移動する場合には、どの位置においてもフィルタ100の中央に対応する画素に枕木23の濃度が採用される。この結果、各枕木23の間にある画素の濃度はすべて枕木23の濃度に置き換えられて、枕木23間の間隔が消失し、各枕木23が一体化される。
【0064】
上記の原理に基づく処理を行うことにより、各レール21,22の幅が広がって線状領域L1,L2が生成されるとともに、これらの間に、枕木23の濃度を反映した線状領域L3が生成される。この結果、鉄道用軌道のオルソ画像は、図2の右手に示すように、枕木23による線状領域L3を中心にして、この領域L3と当該領域L3より暗い2つの線状領域L1,L2(レール21,22による線状領域)とが幅方向に沿って並んだ状態の画像に変換される。
【0065】
この実施例では、事前にベクトル化エンジン2に、モデルのオルソ画像中のレール21,22および枕木23に対する計測により定めた最小値フィルタのサイズをセットしておき、この最小値フィルタを処理対象のオルソ画像の全範囲にわたって走査して、各画素の変換後の濃度を決定する。なお、最小値フィルタのサイズは、オルソ画像の分解能の変更などに応じて、適宜変更することができる。
【0066】
最小値フィルタ100はオルソ画像中の鉄道用軌道以外の部分にも適用されるので、周囲より暗い部位があれば、その部位もレール21,22や枕木23と同様に、各方向に2画素ずつ膨張する。しかし、鉄道用軌道と同様の形状のものでなければ、図6〜7により説明したような変換が行われるとは考えにくい。よって、上記構成の最小値フィルタを用いた変換処理によれば、線状領域L1〜L3が幅方向に沿って並んでいる特徴パターンとして、鉄道用軌道を他の物から分離して抽出することが可能になる。
【0067】
図8は、図2に示したオルソ画像に最小値フィルタを適用する処理により生成された変換画像を模式的に示す。この画像では、各軌道20A,20Bが、それぞれレール21による2本の線状領域L1,L2の間に枕木22による線状領域L3が挟まれた形態の特徴パターンに変換される。ただし、この画像には、ビーム25や影24を反映したノイズN1,N2が出現するほか、各レールの周囲にも、微小な明暗差を反映したノイズ(図示せず。)が出現する。特に、ノイズN1,N2は、軌道20A,20Bの幅方向にまたがって発生するため、ベクトル鎖が分断される原因になる。
【0068】
1−2)線形特徴の抽出処理(ステップS12)
ステップS12では、最小値フィルタにより変換された画像を対象に、ラプラシアン・ガウシアンフィルタ(以下「LoGフィルタ」と略す。)を適用して、線形の特徴を抽出する。具体的には、変換後のレールや枕木の幅長さの1/2程度の値(図5〜7の例で言えば、2.5前後)がカーネルパラメータとして設定されたLoGフィルタを、変換後の画像に走査する。また、LoGフィルタからの出力を正負2種類のしきい値と比較し、出力が正のしきい値を上回った範囲と負の値を下回った範囲とを抽出し、その抽出結果を表す処理結果画像を生成する。
【0069】
LoGフィルタは、走査方向の前後より濃度が低い範囲に対応づけられたときには正の方向に変化するデータを出力し、走査方向の前後より濃度が高い範囲に対応づけられたときには負の方向に変化するデータを出力する。したがって、周囲より濃度が低いレール21,22に対応する線状領域の幅方向にLoGフィルタが対応づけられたときには、その対応範囲が正のしきい値により検出される。またレール21,22より濃度が高い枕木23に対応する線状領域L3の幅方向にLoGフィルタが対応づけられたときには、その対応範囲が負のしきい値により検出される。よって、LoGフィルタを画像の全範囲にわたって走査することにより、レール21,22および枕木23に対応する線状領域L1,L2,L3を検出することができる。
【0070】
ただし、このLoGフィルタは、単に濃度の変化に応じた処理を行うだけであるから、、ノイズN1,N2などの細長形状の特徴も検出されてしまう。
【0071】
1−3)軌道中心部の抽出処理(ステップS13)
この処理では、LoGフィルタの適用により生成された処理結果画像を対象に、鉄道用軌道に対応する特徴を特定し、さらにその特徴の中心部を抽出する。
【0072】
具体的には、処理結果画像の各画素に順に着目して、正のしきい値を超えた画素を検索する。そして、該当する画素Gが見つかると、図9に示すように、この画素Gを基準に、上下および左右ならびに斜め45度の各方向を検索方向に設定して、検索を実行する。
【0073】
この検索は、「正のしきい値を超えた画素がn個連続し、次に負のしきい値を超えた画素がm個連続し、さらに正のしきい値を超えた画素がn個連続している画素の配列を見つけること」を目的とする。n,mの値は、先の最小値フィルタの適用により変換されるレール21,22や枕木23の幅に応じて定められる。たとえば図5の例であれば、n=5,m=5となるが、誤差を考慮して、n,mとも所定の数値範囲を設定してもよい(たとえば4≦n≦6,4≦m≦6)。
【0074】
ステップS13では、正のしきい値を超えた画素Gを見つける都度、上記の4方向への検索を実行する。さらに条件にあてはまる画素配列が見つかると、その配列中の中央部の画素(具体的には、負のしきい値を超えた画素群中の中央位置にある画素およびその前後の3画素程度)を抽出する。これにより軌道の中心部に対応する画素群が検出される。また検索により検出された画素配列に含まれた画素は、以後の検索対象から除外される。
【0075】
図10は、上記の検索および検索により見つけた画素配列の中心部を抽出する処理の結果を示す。この処理結果は、具体的には、抽出された中心部を構成する画素を黒画素(値が「1」)とし、その他の画素を白画素(値が「0」)とする2値画像として表される。
【0076】
この処理により、1本の軌道の画像から生成された線状領域L1,L2,L3の組み合わせ毎に、その長手方向を表す黒画素群が抽出される。この段階でも、ノイズ成分による黒画素群も多少生成され、図中のD1,D2に示すように、軌道を表す黒画素群に途切れが生じている箇所もあるが、各線状領域L1、L2,L3が明確に現れている範囲での黒画素群は、殆ど途切れずに連なった状態となる。
【0077】
1−4)ノイズ除去(ステップS14)
このステップでは、中心部の抽出結果を表す画像(図10)を対象に、孤立点除去、膨張・収縮処理、端点・突起除去の各処理を実行する。いずれも、2次元画像のノイズを除去する方法としてよく知られたものであるが、以下に簡単に説明しておく。
【0078】
いずれの処理でも、3×3のフィルタを2値画像に走査し、フィルタ内の画像データが所定の条件を満たしたときに、中央の画素(以下、「着目画素」という。)の値を変更する。
【0079】
孤立点の除去処理では、図11に示すように、着目画素が「1」で、周囲8近傍の画素がすべて「0」であったとき、着目画素を「0」に変更する。
【0080】
膨張処理では、図12(a)に示すように、着目画素が「0」で、周囲8近傍に1つでも「1」の画素がある場合に、着目画素を「1」に変更する。収縮処理では、図12(b)に示すように、着目画素が「1」で、周囲8近傍に1つでも「0」がある場合に、着目画素を「0」に変更する。この実施例では、まず膨張処理を行った後に、膨張処理後の画像を対象に収縮処理を行うことにより、抽出された黒画素群を円滑にし、かつ微小なラインの途切れを復元するようにしている。
【0081】
端点の除去処理では、図13に示すように、着目画素が「1」で、周囲8近傍中に「1」の画素が1つしかない場合に、着目画素を「0」に変更する。突起の除去処理では、フィルタ内に図14の(a)〜(d)のいずれかのパターンが成立したときに、着目画素を「0」に変更する。端点や突起の除去処理も、中心部を表す黒画素群を円滑化することを目的とするものである。
【0082】
1−5)細線化処理(ステップS15)
このステップでは、ノイズ除去後の2値画像中の黒画素群を対象に、その画素群の中心線を抽出することによって、複数の画素を含む幅を持つ黒画素群を1画素幅の細線に変換する。
図15は、この処理により細線化された後の2値画像を示す。つぎの2次元ベクトル情報の生成処理は、この2値画像を対象に実施されることになる。
【0083】
(2)2次元ベクトル情報生成処理
2−1)チェーンコードの設定(ステップS21)
このステップは、上記の細線化された画像を対象に、黒画素の連なり状態をコード化するものである。具体的には、図16(1)に示すように、着目画素の周囲8近傍にそれぞれ0〜7のコードを割り当てるというルールに基づき、実際の着目画素に、それぞれその画素の連結状態に応じたコードを割り当てる。
【0084】
図16(2)は、黒画素群の連結状態の例と、この黒画素群から設定されたチェーンコードを対応づけて示す。このようなチェーンコードを生成するには、まず先頭の画素に着目して、この画素の周囲8近傍を検索して着目画素に連続する画素を見つけ、その連続状態に応じたチェーンコードをあてはめる。この後は、新たに見つけた画素に着目して、同じ処理を繰り返すことにより、図16(2)の下段に示すようなコードが生成される。
【0085】
2−2)2次元ベクトル鎖の生成(ステップS22)
ステップS22では、上記のチェーンコードを参照しながら、チェーンコードが表す黒画素群から所定数の2次元ベクトルの連結体(2次元ベクトル鎖)を生成する。
【0086】
図17は、先の図16(2)の黒画素群に対してステップS22の処理を実行した例を示す。この図に基づき説明すると、まず、先頭の画素および最後の画素をそれぞれ端点A,Bとしてベクトルf1を設定する(図17(1))。そして前出のチェーンコードを参照して、A−B間に含まれる各画素をたどりながら、各画素のベクトルf1に対する距離を算出し、この距離を所定のしきい値ERと照合する。
【0087】
ここで、上記の距離がしきい値ERを超える画素が見つかると、この画素を点Cとして、ベクトルf1を削除し、新たに点Aと点Cとを結ぶベクトルf2と、点Cと点Bとを結ぶベクトルf3とを設定する(図17(2))。
【0088】
これらのベクトルf2,f3についても、端点間にある各画素との距離を求める。そしてしきい値ERを上回る画素が見つかった場合には、上記と同様の手法でベクトルを分割する。一方、しきい値ERを上回る画素が見つからなかった場合には、その時点でのベクトルを確定する。
【0089】
図17の例の場合は、点Cを一方の端点として設定されたベクトルf2とベクトルf3のうち、ベクトルf3はそのまま確定される(図17(3))。一方、ベクトルf2については、このベクトルf2に対する距離がしきい値ERを超える画素が見つかったため、ベクトルf2を削除し、見つかった画素を点Dとして、点Aと点Dとを結ぶベクトルf4と、点Dと点Cとを結ぶベクトルf5とを設定する(図17(4))。ベクトルf4,f5に対する端点間の画素の距離は、いずれもしきい値ER以内となるので、これをもって、これらのベクトルを確定する(図17(5))。
【0090】
このように、がたついて連結していた黒画素群の連結構造を分析して複数のベクトルを設定することにより、2次元ベクトル鎖が生成される。この2次元ベクトル鎖の具体的な情報は、各端点の座標をベクトル毎に組み合わせたものになる。
なお、この段階の2次元ベクトルの向きは定まっていない。この後、ユーザがオルソ画像上で始点と終点とを指定すると、各ベクトルの始点に近い方の端点が始点に設定され、終点に近い方の端点が終点に設定されて、ベクトルの向きが特定される。
【0091】
(3)ベクトル推定処理
上記までの処理により、基本的な2次元ベクトル鎖が出来上がるが、この段階の2次元ベクトル鎖には、ノイズN1,N2などの影響により途切れた箇所が含まれる場合がある。このベクトル推定処理は、このような2次元ベクトル鎖の途切れを解消することを目的とするものである。
【0092】
3−1)2次元ベクトル鎖の結合(ステップS31)
この処理では、他のベクトルに連結されていない端点を有するベクトルのうち、条件にあてはまるもの同士を対象に、両者を結合するためのベクトルを補完する。
【0093】
図18は、ベクトルを結合する例を示す。
この実施例では、2つのベクトルa,bの結合について2つの条件を設定し、ベクトルa,bがこれらの条件を2つとも満たしていれば、ベクトルa,b間に、これらを結ぶベクトルcを補完するようにしている。
【0094】
具体的には、2つのベクトルa,bがほぼ平行であること、言い換えれば、各ベクトルa,bの方向の差が所定の角度範囲内になることを第1の条件とする。さらに、ベクトルa,bを結ぶ直線に対して各ベクトルa,bのなす角度θ1,θ2がそれぞれ所定のしきい値以上になる(ただし、180度以下)ことを第2の条件とする。
【0095】
後記するように、鉄道用軌道の向きは少なくとも20mは一定に保たれるように設定されている。したがって、2次元段階でも、20mに対応する範囲内でベクトルの方向が大きく変化することはない、という大前提に基づけば、第1の条件のしきい値を0度に近い値に設定し、第2の条件に関するしきい値を180度に近い値にするべきである。
【0096】
ただし、実際の画像では、オルソ画像の誤差、ノイズ、周囲の明暗などの影響によって、レール21,22や枕木23から変化した線状領域L1〜L3にがたつきが生じ、その影響で途切れ部分の前後のベクトル間の段差が大きくなる可能性がある。
【0097】
したがって図19に示すように、第2の条件に関する角度θ1,θ2(いずれも180度より小さい方の角度)が180度からかなり離れている場合でも、ベクトル間の距離が小さい場合には結合するのが望ましい。一方で、ベクトルa,b間の距離が比較的大きい場合には、これらのベクトルa,bが同じ軌道に対応するとは考えにくいから、結合対象から除外する必要がある。
【0098】
つぎに、単純に角度θ1,θ2が180度に近いものを優先して結合すると、図20に示すような問題が生じる。
図20は、2次元ベクトル鎖に複数の分断箇所がある例を示すものである。本来は、図20(1)に示すように、最も近いベクトル同士(ベクトルaとb、ベクトルbとc)を結合する必要があるが、角度θ1,θ2が180度に近い組み合わせを優先するようなロジックを設定すると、図20(2)に示すように、近い方のベクトルの組み合わせが無視されて、離れた位置にあるベクトルaとベクトルcとが結合される可能性がある。
【0099】
上記の問題点に鑑み、この実施例では、他のベクトルに連結されていない端点を有するベクトルを第1の条件を満たすもの毎に組み合わせ、組み合わせ毎に下記の[1]式により評価値V(a,b)を求め、評価値V(a,b)が高い順に、ベクトル間の結合を行うようにしている。ただし、評価値V(a,b)が所定のしきい値以下であったものは、結合対象から除外される。
【0100】
【数1】
【0101】
上記[1]式の意味について、図21を参照して説明する。[1]式では、ベクトルa,bを結ぶ直線mとベクトルaとのなす角度をθ1(a,b)とし、当該直線mとベクトルbとのなす角度をθ2(a,b)とする。なお、θ1(a,b),θ2(a,b)とも、ベクトルa,bと直線mとがなす角度のうち、180度以下になる角度を指す。また、D(x,y)はベクトルa,b間の距離である。
【0102】
[1]式中の右辺の分子の関数U(x)はx>0のときに1、x≦0のときに0となる単位ステップ関数である。この関数U(x)のxの部分に組み込まれているT(D(a,b))は距離D(a,b)に応じて値が変化する関数であって、角度θ1(a,b),θ2(a,b)に対するしきい値として機能する。さらに、この実施例では、この関数T(D(a,b))について図22に示す2通りの関数を設定し、距離D(a,b)の値に応じて使用する関数を切り替えるようにしている。
【0103】
図22によれば、T(D(a,b))はベクトルa,b間の距離が0のときに最小値の135度となり、D(a,b)が8mのときに173度となる。また、距離D(a,b)が8mに達するまでは、D(a,b)に比例する関係をもって増加するが、D(a,b)が8.0を超えた後は変化が緩やかになって、徐々に180度に近づく。
【0104】
[1]式によれば、角度θ1(a,b),θ2(a,b)のいずれか一方がT(D(a,b))以下になると、評価値V(a,b)は0となる。またθ1(a,b),θ2(a,b)の双方がT(D(a,b))より大きくなる場合には、V(a,b)は0より大きくなる。
【0105】
また、θ1(a,b),θ2(a,b)の値がともにT(D(a,b))より大きく、それぞれ一定の値をとる場合でも、距離D(a,b)が大きくなると、分母の[D(a,b)]2の影響により評価値V(a,b)が下がる。また、距離D(a,b)が8mを大きく上回ると、しきい値T(D(a,b))が180度に近づくため、θ1(a,b)やθ2(a,b)がT(D(x,y))より小さくなって、評価値V(a,b)が0となる可能性が高まる。すなわち、ベクトルa,b間の距離が大きくなると、これらの間の段差が殆どない状態でなければ、これらのベクトルa,bを結合することはできなくなる。
【0106】
これに対し、距離D(a,b)が8mより小さい場合には、しきい値T(D(a,b))が180度よりかなり小さくなるので、ある程度の段差があるベクトルでも、結合が許容される。よって、図19に示したような結合処理を実現することができる。
【0107】
また、[1]式の右辺の分子は、ベクトル間の距離の大小に関係なく、θ1(a,b),θ2(a,b)がしきい値T(D(a,b))より大きくなれば1になるのに対し、分母はベクトル間の距離D(a,b)が小さいほど値が小さくなり、これにより評価値V(a,b)が引き上げられる。また、分母中の[(180−θ1(a,b))+(180−θ2(a,b))+1]の部分は、θ1(a,b),θ2(a,b)が180度に近づくにつれて、小さな値となり、これにより評価値V(a,b)の値が引き上げられる。
【0108】
よって、あるベクトルに対し、θ1(a,b)およびθ2(a,b)がそれぞれしきい値T(D(a,b))を上回るようなベクトルの組み合わせが複数存在する場合には、これらの中で距離が最小になるものが結合対象となる。また、ベクトル間の距離が殆ど変わらない組み合わせが複数ある場合には、各ベクトルa,b間の段差がより小さい組み合わせが結合対象となる。したがって、先の図20(2)に示したような誤った結合が生じるのを防止することができる。
【0109】
3−2)始点・終点との対応づけ(ステップS32)
この処理は、ユーザが原画像(オルソ画像)の表示画面上で指定した始点および終点に対応する2次元ベクトル鎖を特定するものである。特定された2次元ベクトル鎖が始点や終点まで延びていない場合には、無理に補完せずに、抽出されている範囲での特定に留める。また複数の軌道の始点・終点が指定された場合には、指定されたもの毎に2次元ベクトル鎖を特定する。
なお、上記の始点・終点は、始点から終点に向かう方向が列車の進行方向に対応するように行われる。またこの指定により、各2次元ベクトルの向きも、列車の進行方向に対応する方向に確定される。
【0110】
(4)3次元ベクトル情報生成処理
4−1)3次元ベクトル鎖の生成(ステップS41)
この処理は、上記のステップS32により特定された2次元ベクトル鎖を対象に、DSM情報から、2次元ベクトル鎖に含まれる各ベクトルの始点、終点に対応する高さ情報(Z座標)を読み出し、各始点、終点に対応づける。また、ワールドファイルを参照して、始点および終点に対応するX,Y座標を特定する。これにより、ピクセル単位の2次元ベクトルは実際の地点や高さを表す3次元ベクトル鎖に変換される。
【0111】
4−2)ノイズ除去(ステップS42)
このステップS42では、3次元ベクトル鎖のノイズを除去する処理として、以下の2つの処理を実行する。
【0112】
まず1つ目の処理として、鉄道用軌道にはあり得ない勾配(35‰(パーミル)以上)を持つベクトルを3次元ベクトル鎖から除外する。具体的には、3次元ベクトル鎖に含まれる各3次元ベクトル毎に、下記の[2]式により、ベクトルの勾配を求める。[2]式中の各変数は、図23に示すように、ベクトルの始点、終点の座標である。また、算出された勾配は1km単位のものに換算される。
【0113】
【数2】
【0114】
つぎに、2つ目のノイズ除去処理として、先のステップS31で補完されたベクトルのうち、ベクトル長の短いベクトルを前後のベクトルに統合する処理を行う。ステップS31では、2次元ベクトルの連なりを完成させるために、短い途切れの前後のベクトル間の段差を許容して途切れ部分にベクトルを補完したが、元来、鉄道用軌道は滑らかに変化するはずであるから、短い間隔で向きが変化するベクトルに基づいて軌道プロファイルを生成すると、現実の軌道の特性に合わない情報が生成される可能性がある。
【0115】
そこでこの実施例では、ステップS31で補完されたベクトルに対応する3次元ベクトルの長さを算出し、この長さが所定の基準値以下であれば、図24に示すように、このベクトルを、前後のベクトルのうちの短い方と統合するようにしている。なお、図24は、3次元ベクトル鎖を上方から見たものである。
【0116】
さらにこの実施例では、上記の統合処理を行ったベクトルについて、同様に長さを算出して基準値との比較を行い、ベクトルの長さが基準値以下であれば、再度の統合処理を行うようにしている。以下、統合後のベクトルが基準値を上回る状態になるまで、上記の処理を繰り返す。
【0117】
上記の1番目のノイズ除去処理によれば、生成された3次元ベクトル鎖の中に、軌道以外の要素(ビーム25などによるもの)と連結しているベクトルがある場合には、その連結を断ち切って、3次元ベクトル鎖の精度を高めることができる。また2番目のノイズ除去処理によれば、3次元ベクトル鎖を、軌道に応じた滑らかな変化を表すものに補正することができる。よって、これらの処理により、以後の軌道プロファイルの生成処理を安定して行うことが可能になる。
【0118】
なお、2番目のノイズ除去処理は、軌道以外の要素により短い2次元ベクトル鎖が生成されている場合に、これを除外する目的に使用することもできる。また、2番目のノイズ除去処理は、3次元ベクトル鎖に対するものに限らず、ステップS31の結合処理後の2次元ベクトル鎖に対して行ってもよい。
【0119】
[軌道プロファイル生成エンジンによる処理について]
この実施例では、3次元ベクトル鎖中の各3次元ベクトルを分析して、ユーザにより指定された範囲内の鉄道用軌道を所定数の区間に分割する。そして、区間毎に、その区間内の軌道の特徴および制限速度を属性として設定し、これらの属性情報をまとめたデータファイルを軌道プロファイルとして出力する。
【0120】
図25は、軌道プロファイルの生成に関する処理の概略手順を示すフローチャートである。以下、このフローチャートの流れに沿って、各ステップ(S51〜57)の詳細な内容を説明する。
【0121】
5−1)カーブの向きの特定(ステップS51)
この実施例では、3次元ベクトル鎖中で連続する関係にあるベクトル間には、微小であっても軌道の長さ方向に変化が生じている点に着目し、始点側端縁のベクトル(以下、「先頭のベクトルという。)および終点側多年のベクトル(以下「最後のベクトル」という。)を除く各ベクトルがそれぞれ右カーブまたは左カーブに対応するものとして、そのカーブの向きを特定する。
【0122】
具体的に図26を用いて説明する。この例も、3次元ベクトルを上方から見た状態を示すものであり、ベクトルβが着目中ベクトルで、ベクトルαが1つ前のベクトルである。また説明の都合上、各ベクトルα,βのなす角度を誇張して描いている。
【0123】
この実施例では、着目中のベクトルβおよび1つ前のベクトルαに、それぞれ垂直二等分線を設定し、これらの交点Pの座標を求める。以下、これらのベクトルα,βの方向が列車の進行方向に対応していることを利用して説明すると、図26の例に示すように、進行方向に対して左手に交点Pが現れた場合には、着目中のベクトルbに対応するカーブの向きを「左」と判定する。これに対し、進行方向に対して右手に交点Pが現れた場合には、着目中のベクトルβに対応するカーブの向きを「右」と判定する。
このように3次元ベクトル鎖の中の前後のベクトルの関係を利用して、カーブの向きを容易に特定することができる。なお、交点Pの座標は、ステップS54で使用するために、メモリ内に保存される。
【0124】
なお、この実施例では、後記するように、先頭および最後のベクトルに直線の属性を設定するため、これらのベクトルをステップS51の処理対象から外しているが、最後のベクトルについても、その1つ前のベクトルとの関係に基づいてカーブの方向を特定してもよい。
【0125】
5−2)あり得ないS字曲線を補正(ステップS52)
鉄道用軌道では、安全を確保するために、進行方向の切り替えが生じた地点から次の切り替えが生じる地点までに、必ず20m以上の直線区間を設けるようにしている。ステップS52は、この特徴に対応していない3次元ベクトルを検出して、補正することを目的とするものである。
【0126】
具体的には、ステップS51の処理結果に基づき、カーブの向きが変更される地点を抽出し、この変更直後の3次元ベクトルの長さを算出する。ここで算出されたベクトルの長さが20m未満であれば、図27に示すように、このベクトルを前後いずれかのベクトルに統合する(統合の手法は先の図24の例と同様である。)。
【0127】
さらに、図25には示していないが、上記の統合処理が終了した後は、処理後の3次元ベクトル鎖を対象に、再びステップS51,S52を実行する。以下、カーブが変更された直後のベクトルの長さがすべて20m以上になるまで、同様の処理を繰り返す。これにより、3次元ベクトル鎖の精度をより高め、軌道以外の要因による短い3次元ベクトル鎖を除去することができる。
【0128】
なお、上記のステップS51,52は、軌道プロファイル生成エンジン3で行う処理に限らず、ベクトル化処理エンジン2側の3次元ベクトルのノイズ除去処理(ステップS42)に含めて行ってもよい。また、上記の20mをピクセル単位の情報に変換して、2次元ベクトル鎖のノイズ除去処理を行ってもよい。
【0129】
5−3)ベクトルの属性設定(ステップS53)
この処理では、S字曲線に関する補正が終了した3次元ベクトル鎖を対象にして、各ベクトルの属性を定める。ここでは、各ベクトルに直線または曲線の属性を設定するとともに、ステップS51で特定したカーブの向きも属性に含める。さらに曲線に分類されたベクトルについては、曲率を表すカーブ半径も属性として設定する。
【0130】
図28は、ベクトルの属性の設定に関する具体的手順を示すフローチャートである。
このフローチャートに沿って説明する。この処理でも3次元ベクトル鎖の始点側のベクトルを先頭として各ベクトルに順に着目し(ST101)、先頭および最後のベクトルを除く各ベクトルに対してカーブ半径を算出する(ST102,103)。
【0131】
図29は、カーブ半径の算出方法の具体例を示す。
この例でも、先の図26と同様に、ベクトルβを着目中のベクトルとする。ベクトルαはベクトルβの1つ前のベクトルであり、ベクトルγは1つ後のベクトルである。また図29(1)の例と図29(2)の例とでは、ベクトルγが表すカーブの向きが逆になっている。
【0132】
図中の点Pは、ベクトルβとベクトルαとの間で図26に示した処理を行うことにより求められた交点である。また点Qは、ベクトルγとベクトルβとの間で同様の処理を行うことにより求められた交点である。
【0133】
これらの交点P,Qに関しては、図29(1)に示すように各点が進行方向に対して同じ側に現れる場合と、図29(2)に示すように各点が進行方向に対してそれぞれ異なる側に現れる場合とがある。しかし、この実施例では、交点P,Qの関係に関わらず、いずれの場合でも、着目中のベクトルβに対する各点P,Qの距離を求め、これらのうちの短い方(図示例では(1)(2)とも点Qとの距離になる。)を、ベクトルβに対応するカーブ半径とする。
【0134】
上記において、交点Pとベクトルβとの距離は、ベクトルβの中点と1つ前のベクトルαの中点とが同じ円弧上に位置するとした場合の当該円弧の半径に相当する。また交点Qとベクトルβとの距離は、ベクトルβの中点と1つ後のベクトルγの中点とが同じ円弧上に位置するとした場合の当該円弧の半径に相当する。すなわち上記の処理は、ベクトルαとβとの組み合わせ、ベクトルβとγとの組み合わせにつき、それぞれその組み合わせが1つの曲線に対応するものとして当該曲線に近似する円弧の半径を求め、そのうちの短い方を着目中ベクトルが表すカーブのカーブ半径として特定するものである。後記するように、カーブ半径は制限速度の導出に用いられるので、安全性を確保するために、より急峻なカーブを表す円弧の半径を採用している。
【0135】
このようにして着目中のベクトルのカーブ半径が算出されると、つぎは、算出されたカーブ半径により図30のテーブルを参照する。このテーブルでは、複数のしきい値に基づきカーブ半径の値を所定の範囲毎に区切って、各範囲にそれぞれ規格のカーブ半径として当該範囲内の最小のカーブ半径を対応づけている。
【0136】
ここで、算出されたカーブ半径が2200mより小さい場合(ST104が「NO」)には、着目中のベクトルの属性を曲線に設定する(ST105)。ついで、上記のテーブルを参照する(算出されたカーブ半径をテーブルの各範囲の上下限値と照合して、算出値に対応する範囲を判別する。)ことによって、算出されたカーブ半径を規格のカーブ半径に置き換え、この規格のカーブ半径と先のステップS51で特定したカーブの向きを、着目中のベクトルの属性に追加する(ST106)。
【0137】
図30のテーブルでは、カーブ半径が2200m以上であれば、該当するベクトルを直線に相当するとしている。これに基づき、着目中のベクトルにつき算出されたカーブ半径が2200m以上であった場合(ST104が「YES」)には、このベクトルの属性を「直線」に設定する(ST107)。ただし、このベクトルは、先に述べた進行の方向の切り替え後の直線区間に相当する可能性があるので、この場合にも、カーブの向きをベクトルの属性に追加する(ST108)。
【0138】
なお、3次元ベクトル鎖の先頭のベクトルおよびベクトル鎖の最後尾のベクトル(以下、「最後のベクトル」という。)については、図29に示した方法によりカーブ半径を算出することができないので、属性を「直線」に設定する。また、図28のフローチャートには示していないが、先頭および最後のベクトルについては、カーブの向きに代えて、ベクトル鎖の先頭または最後であることを示す情報を属性として設定する。また、図28には示していないが、ベクトルの中に、カーブ半径が100m未満のものがあった場合には、処理を中止し、そのベクトルの情報を異常値として出力する。
【0139】
図28のフローチャートによる処理は、先頭および最後のベクトルを除く各ベクトルに対し、それぞれそのベクトルに対応するカーブのカーブ半径(曲率半径)を算出し、その算出結果に基づき、対応するカーブの曲がり度合が図30に示した複数の区分のいずれに相当するかを判別するものである。さらに、この処理では、各ベクトルについて、曲がり度合を表す情報(直線/曲線の区別、および規格のカーブ半径)を属性として設定する。これらの属性は、以下の区間設定処理に利用され、さらに設定される区間にも引き継がれる。
なお、ステップS51において最後のベクトルについてもカーブの向きを特定した場合には、この最後のベクトルに対しても、1つ前のベクトルに対する関係に基づいてカーブ半径を求めて、そのカーブ半径の値や1つ前のベクトルとの関係に基づき、直線/曲線の別を判定してもよい。
【0140】
5−4)区間設定処理(ステップS54)
このステップS54では、上記の処理により属性が定まった3次元ベクトルに順に着目して、各ベクトルを所定数の区間にグループ分けする。具体的には、「直線」の属性を有するベクトルと「曲線」の属性を有するベクトルとを分類し、さらに「曲線」の属性を有するベクトルについては、カーブの向きが同じものが続く間、同じ区間に分類する。
以下、「直線」の属性を有するベクトルによる区間を「直線区間」といい、「曲線」の属性を有するベクトルによる区間を「曲線区間」という。
【0141】
図31は、区間設定処理の詳細な手順を示す。
この図を参照して説明すると、この例でも3次元ベクトル鎖の各ベクトルに、先頭から順に着目する。まず先頭のベクトルには、「直線」の属性が設定されているから、つぎのST202の判定は「NO」となり、着目中のベクトルによる直線区間を設定する(ST208)。なお、この直線区間には、着目中ベクトルに関する情報(始点および終点の座標)も属性として包含される。
【0142】
2番目以降のベクトルでも、「直線」の属性が設定されているものに対しては、上記と同様に、着目中のベクトルによる直線区間を設定する(ST208)。また、この場合には、着目中のベクトルに属性として設定されているカーブの向きが、区間の属性としても設定される。一方、着目中のベクトルに「曲線」の属性が設定されている場合には、1つ前のベクトルの属性によって処理内容が変動する。
【0143】
まず、1つ前のベクトルの属性が「直線」の場合(ST203が「YES」)には、着目中ベクトルを先頭とする新規の曲線区間を設定する(ST204)。この場合には、着目中ベクトルの始点、終点、およびカーブの向きが、この曲線区間の属性に組み込まれる。
【0144】
1つ前のベクトルの属性が「曲線」で、そのカーブの向きが着目中ベクトルと同じ場合(ST203が「NO」、ST205が「YES」)には、着目中ベクトルを1つ前のベクトルと同じ曲線区間に分類する。この場合も、着目中ベクトルの始点、終点、およびカーブ半径ならびにカーブの向きが、曲線区間の属性に追加される。
【0145】
1つ前のベクトルの属性が「曲線」で、そのカーブの向きが着目中ベクトルと異なる場合(ST203が「NO」、ST205が「NO」)には、着目中ベクトルの属性を、「曲線」から「直線」に変更し(ST207)、このベクトルによる新たな直線区間を設定する(ST208)。この場合にも、着目中ベクトルの始点および終点、ならびにこのベクトルに属性として設定されていたカーブの向きが、そのまま直線区間の属性に組み込まれる。
【0146】
前述したように、鉄道用軌道のカーブの向きが切り替えられた地点の後には、必ず20m以上の直線区間が存在する。上記ST207の処理は、この特徴を反映したものである。先のステップS52で20m未満のベクトルを統合する処理を行ったことにより、この時点で設定される直線区間は、必ず20m以上の距離を有するものとなる。
【0147】
よって、すべてのベクトルに対する処理が終了したとき(ST209が「YES」)には、鉄道用軌道の特徴を精度良く反映した区間を得ることができる。各区間には、直線/曲線およびカーブの向きを表す属性のほか、当該区間に含まれる3次元ベクトルの始点および終点の座標が包含される。
【0148】
ただし、区間の設定処理のアルゴリズムは図31に示したものに限らず、適宜アレンジすることができる。たとえば、1つのベクトルにつき1つの区間を設定してもよい。また曲線区間については、対応するカーブおよび規格のカーブ半径が同一のベクトルが連続する範囲毎に1つの曲線区間を設定してもよい。
【0149】
5−5)ベクトルの勾配・長さの算出(ステップS55)
ステップS55では、各3次元ベクトルが表す勾配およびベクトルの長さを算出する。勾配については、ベクトル化処理のステップS42と同様に1km換算の勾配を算出する。長さの算出は、ベクトルの始点と終点との距離を求める演算により行われる。これらの算出結果は、各ベクトルの属性に追加される。
【0150】
さらに勾配に関しても、カーブ半径と同様に、複数のしきい値を用いて規格の値に変更する。具体的には、算出された勾配が1‰未満であれば、勾配を0‰(すなわち平坦面)とする。以下は、5‰の単位で各勾配に範囲を設定し、各範囲での最も急な勾配を規格の値として採用する。たとえば算出された勾配が1〜5‰の範囲に入る場合には、5‰を勾配として採用し、算出された勾配が5‰〜10‰の範囲に入る場合には、10‰を勾配として採用する。
【0151】
5−5)ベクトルの勾配・長さに基づく区間の再設定(ステップS56)
ステップS56では、ステップS54の処理により設定された各区間に順に着目し、着目中の区間に含まれる3次元ベクトルの勾配および長さに基づき、着目中の区間をさらに細かく分割する。
【0152】
図32は、勾配に基づいて区間を分割する例を示す。
この例は、同一の区間に含まれる6つのベクトルa,b,c,d,e,fを勾配に基づきグループ化するものである。ここでは、各ベクトルa〜fを、それぞれの規格の勾配に基づいてグループ分けし、1つ1つのグループをそれぞれ一区間とする。これにより、各ベクトルa〜fは、4つの区間A,B,C,Dに分割される。
【0153】
なお、上記の例では、上り勾配を対象にしたグループ分けを示しているが、下り勾配を対象にする場合も、同様の方法でグループ分けが行われる。また処理前の区間に上り勾配と下り勾配とが含まれる場合には、これらを別々の区間に分ける。
【0154】
このようにして勾配に基づく区間の再設定が行われると、さらに各区間毎に、区間内に属するベクトルの長さの総和を求める。そして、この長さの総和(区間の長さ)が1000m以上になる場合には、1000mより小さくなるように、区間を分割する。
【0155】
再設定された各区間には、それぞれ元の区間の属性(直線/曲線およびカーブの向き)や所属のベクトルの属性が引き継がれる。さらに各区間には、新たに、勾配の上り/下りの区分、規格の勾配、区間の長さの各情報が属性として追加される。
【0156】
5−6)制限速度の設定(ステップS57)
ステップS57では、上記ステップS56の処理により再設定された区間に、制限速度を設定する。具体的には、カーブ半径、勾配の上り/下り、および規格の勾配の組み合わせを複数設けて、これらの組み合わせと制限速度とを対応づけたテーブルが用意されており、このテーブルを参照することによって、着目中の区間の各ベクトルに対応する範囲毎に制限速度を決定する。そして決定された制限速度を、それぞれのベクトルの属性に追加する。
【0157】
さらに、各区間の接続地点のうちカーブの向きが変わる地点については、この地点の前後の所定範囲における制限速度が同じ区間内の他の箇所より低くなるようにするなど、1つ1つの区間における制限速度およびその適用範囲を細かく設定し直す処理を行う。そして、これらの再設定に応じて各区間の属性を更新し、処理を終了する。
【0158】
上記の処理により、最終的に、複数の区間について、直線/曲線の種別、勾配の上り/下りの種別、カーブの向き、勾配、区間の長さ、区間内に含まれるベクトルの情報などの属性が対応づけられる。また、各ベクトルの情報には、始点、終点の座標や長さのほか、制限速度が含められる。このような構成の軌道プロファイルにより、列車の進行方向、カーブを切り替える地点、制限速度およびその制限速度を適用すべき走行範囲などの情報を取得して、列車の走行制御に利用することが可能になる。
【0159】
[まとめ]
以上に説明したように、ベクトル化エンジン2では、オルソ画像中の鉄道用軌道を所定幅の3つの線状領域L1〜L3が幅方向に沿って並ぶ構成のパターン画像に変換した後に、この変換後画像にLoGフィルタを適用することにより、鉄道用軌道の特徴を容易に抽出することができる。また、各線状領域L1〜L3の幅方向の画素配列を抽出して、その中心部を抽出することにより、軌道の長手方向に沿うラインの連続性を確保する(切れ目が少ない。)ことができる。さらに、抽出した軌道の特徴をベクトル化して2次元ベクトル鎖を生成するので、オルソ画像を用いた画像処理のみで、軌道の経路を表す情報(2次元ベクトル鎖)を生成することが可能になる。また、ベクトル間の距離や位置関係によって値が変動する評価値V(a,b)を用いて2次元ベクトル鎖の途切れた箇所にベクトルを補完するので、2次元ベクトル鎖の精度をさらに高めることができる。
【0160】
さらに、ベクトル化エンジン2において、DSM情報を用いて2次元ベクトル鎖を3次元化した後に、軌道プロファイル生成エンジン3において、3次元ベクトル鎖のベクトル間の関係や個々のベクトルの特徴に基づく情報処理を行って、上記内容のプロファイルを生成するので、列車の走行制御に利用可能な情報を容易に生成することが可能になる。
【0161】
上記の処理により生成された軌道プロファイルは、列車の車上装置に組み込まれて、速度制御や手動運転の監視などに使用することができる。また、車上装置に限らず、たとえば軌道上に配置されている地上子に、その設置地点を含む所定範囲内の軌道プロファイルを組み込み、近づいてきた列車に、地上子から軌道プロファイルやこれに基づき生成した制御データを送信してもよい。
【0162】
また、列車の制御に限らず、地上子や無線通信用のアンテナなどの設置位置を決める場合にも、上記の軌道プロファイルを用いた情報処理によって、処理の効率や精度を高めることができる。
【0163】
また上記では、鉄道用軌道の特徴情報を生成する処理に関して詳細に説明したが、高速道路などの一般車両用の走行路に関しても、オルソ画像から走行路の長さ方向を表すラインを抽出した後に、このラインを3次元ベクトル鎖に変換し、さらにこの3次元ベクトル鎖から走行路の具体的特徴を表す情報を生成することができる。
【0164】
ただし、鉄道用軌道以外の車両走行路の特徴情報を生成する場合のオルソ画像に対する画像処理では、最小値フィルタやLoGフィルタを用いた画像処理に代えて、処理対象の車両走行路の特性に応じた処理を実行する必要がある。また、3次元ベクトル鎖を生成した後の処理でも、鉄道用軌道に特有の補正処理(図25のステップS25)を行う必要がないので、ベクトル鎖の各ベクトルに順に着目して、着目したベクトル毎に、少なくとも始点側に連結しているベクトルとの関係に基づき、カーブの向きを特定する処理(ステップS51)とカーブ半径を求める処理とを連続して実施してもよい。その他の処理に関しても、処理対象の車両走行路の特性に応じて、適宜、変更が可能である。
【0165】
また、上記の実施例では、オルソ画像から車両走行路(軌道)の長さ方向に沿うラインを自動抽出したが、これに限らず、ユーザの手操作により画像中に走行路に沿うラインを設定し、このラインから3次元ベクトル鎖を生成してもよい。
さらに、オルソ画像に代えて、たとえば地形図の3次元情報を用いて3次元ベクトル鎖を生成してもよい。
【図面の簡単な説明】
【0166】
【図1】線路プロファイル生成システムの機能ブロック図である。
【図2】オルソ画像中の線路に対応する範囲を模式化した図である。
【図3】図2の画像にベクトル化処理により生成された3次元ベクトル鎖を重畳した画像を模式化した図である。
【図4】ベクトル化処理の概略手順を示すフローチャートである。
【図5】最小値フィルタによる変換処理の原理を説明する図である。
【図6】最小値フィルタによる変換処理の原理を説明する図である。
【図7】最小値フィルタによる変換処理の原理を説明する図である。
【図8】図5のオルソ画像に最小値フィルタを適用する処理により変換された画像を模式化した図である。
【図9】3つの線状領域に対応する画素配列を抽出する方法を説明する図である。
【図10】画素配列の中心部の抽出結果を示す2値画像を模式化した図である。
【図11】孤立点除去処理の内容を示す図である。
【図12】膨張・収縮処理の内容を示す図である。
【図13】端点除去処理の内容を示す図である。
【図14】突起除去処理の内容を示す図である。
【図15】図10の2値画像の黒画素群を細線化した結果を模式化した図である。
【図16】チェーンコードの設定処理の内容を示す図である。
【図17】2次元ベクトル鎖の生成処理の具体例を示す図である。
【図18】ベクトルを結合する条件を説明する図である。
【図19】ベクトル間の距離によって結合の条件を変更する例を示す図である。
【図20】ベクトルの正しい結合例と誤った結合例とを対比して示す図である。
【図21】ベクトルの結合を判定するための評価値の演算式に用いられるパラメータを示す図である。
【図22】評価値の演算式に組み込まれるしきい値を表す関数のグラフである。
【図23】3次元ベクトルのデータ構成を示す図である。
【図24】3次元ベクトルに対するノイズ除去処理の例を示す図である。
【図25】軌道プロファイルの作成処理の概略手順を示すフローチャートである。
【図26】ベクトルが表すカーブの方向を特定する処理を説明する図である。
【図27】あり得ないS字曲線に対応するベクトルを補正する処理を説明する図である。
【図28】ベクトルの属性設定処理に関する手順を示すフローチャートである。
【図29】カーブ半径を算出する方法を説明する図である。
【図30】カーブ半径の算出値を規格のカーブ半径に置き換えるためのテーブルの内容を示す図である。
【図31】区間設定処理に関する手順を示すフローチャートである。
【図32】勾配に基づいて区間を再設定する処理を説明する図である。
【符号の説明】
【0167】
1 GUIアプリケーション
2 ベクトル化エンジン
3 軌道プロファイル生成エンジン
5 オルソ画像のデータファイル
10 3次元ベクトル情報
11 3次元ベクトル鎖
20A,20B 鉄道用軌道
【特許請求の範囲】
【請求項1】
車両走行路を含む所定広さのエリアの3次元情報を処理することによって、前記車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成する第1ステップと、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、各対象ベクトルにつき、少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する第2ステップと、
前記第2ステップの判別結果に基づき、前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する第3ステップと、
第3ステップの処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する第4ステップとを、
実行することを特徴とする、車両走行路の特徴情報の生成方法。
【請求項2】
前記第1ステップでは、前記車両走行路に対する空中三角測量により生成されたオルソ画像中の前記車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出し、前記オルソ画像の各画素に対応する3次元座標の中から各2次元ベクトルの始点および終点に対応する座標を特定することにより、前記複数の3次元ベクトルを決定する、請求項1に記載された車両走行路の特徴情報の生成方法。
【請求項3】
前記第2ステップでは、前記対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を前記対象ベクトルに対応する曲率半径として選択するとともに、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する、
請求項1に記載された車両走行路の特徴情報の生成方法。
【請求項4】
前記第3ステップでは、前記車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する、
請求項1に記載された車両走行路の特徴情報の生成方法。
【請求項5】
前記第4ステップでは、前記第3ステップで設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する、請求項1または4に記載された車両走行路の特徴情報の生成方法。
【請求項6】
車両走行路を含む所定広さのエリアの3次元情報を入力する入力手段と、
入力した3次元情報を処理することによって、前記車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段と、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する判別手段と、
前記判別手段の判別結果に基づき前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する区間設定手段と、
前記区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合ならびに勾配の変化を表す情報を作成する情報作成手段とを、
具備する、車両走行路の特徴情報の生成装置。
【請求項7】
前記入力手段は、前記車両走行路に対する空中三角測量により生成されたオルソ画像およびこのオルソ画像の各画素に対応する3次元座標の集合を入力し、
前記ベクトル鎖生成手段は、入力されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出する2次元ベクトル生成手段と、前記3次元座標の集合から各2次元ベクトルの始点および終点に対応する3次元座標を特定することにより前記複数の3次元ベクトルを決定する3次元ベクトル生成手段とを、具備する、
請求項6に記載された車両走行路の特徴情報の生成装置。
【請求項8】
前記判別手段は、前記対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を当該ベクトルに対応する曲率半径として選択する手段と、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する、
請求項6に記載された車両走行路の特徴情報の生成装置。
【請求項9】
前記区間設定手段は、前記判別手段の判別結果に基づき、前記車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する、請求項6に記載された車両走行路の特徴情報の生成装置。
【請求項10】
前記情報作成手段は、前記区間設定手段により設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する、
請求項6または9に記載された車両走行路の特徴情報の生成装置。
【請求項11】
車両走行路を含む所定広さのエリアの3次元情報を用いて前記車両走行路の特徴を表す情報を生成する機能を、コンピュータに設定するためのプログラムであって、
前記3次元情報を処理することによって、前記車両走行路の位置および方向ならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する判別手段、
前記第1の判別手段の判別結果に基づき前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する区間設定手段、
前記区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する情報作成手段、
の各手段として前記コンピュータを機能させることを特徴とする、車両走行路の特徴情報の生成処理用のプログラム。
【請求項1】
車両走行路を含む所定広さのエリアの3次元情報を処理することによって、前記車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成する第1ステップと、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、各対象ベクトルにつき、少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する第2ステップと、
前記第2ステップの判別結果に基づき、前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する第3ステップと、
第3ステップの処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する第4ステップとを、
実行することを特徴とする、車両走行路の特徴情報の生成方法。
【請求項2】
前記第1ステップでは、前記車両走行路に対する空中三角測量により生成されたオルソ画像中の前記車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出し、前記オルソ画像の各画素に対応する3次元座標の中から各2次元ベクトルの始点および終点に対応する座標を特定することにより、前記複数の3次元ベクトルを決定する、請求項1に記載された車両走行路の特徴情報の生成方法。
【請求項3】
前記第2ステップでは、前記対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を前記対象ベクトルに対応する曲率半径として選択するとともに、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する、
請求項1に記載された車両走行路の特徴情報の生成方法。
【請求項4】
前記第3ステップでは、前記車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する、
請求項1に記載された車両走行路の特徴情報の生成方法。
【請求項5】
前記第4ステップでは、前記第3ステップで設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する、請求項1または4に記載された車両走行路の特徴情報の生成方法。
【請求項6】
車両走行路を含む所定広さのエリアの3次元情報を入力する入力手段と、
入力した3次元情報を処理することによって、前記車両走行路の位置および長さならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段と、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する判別手段と、
前記判別手段の判別結果に基づき前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する区間設定手段と、
前記区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合ならびに勾配の変化を表す情報を作成する情報作成手段とを、
具備する、車両走行路の特徴情報の生成装置。
【請求項7】
前記入力手段は、前記車両走行路に対する空中三角測量により生成されたオルソ画像およびこのオルソ画像の各画素に対応する3次元座標の集合を入力し、
前記ベクトル鎖生成手段は、入力されたオルソ画像中の車両走行路を特定して、その長さ方向の変化を複数の2次元ベクトルに分解して抽出する2次元ベクトル生成手段と、前記3次元座標の集合から各2次元ベクトルの始点および終点に対応する3次元座標を特定することにより前記複数の3次元ベクトルを決定する3次元ベクトル生成手段とを、具備する、
請求項6に記載された車両走行路の特徴情報の生成装置。
【請求項8】
前記判別手段は、前記対象ベクトルをその始点に連続するベクトルと組み合わせて算出した曲率半径と、対象ベクトルをその終点に連続するベクトルと組み合わせて算出した曲率半径とを比較して、小さい方の曲率半径を当該ベクトルに対応する曲率半径として選択する手段と、選択された曲率半径を少なくとも1つのしきい値と照合することにより、対象ベクトルに対応するカーブの曲がり度合を判別する、
請求項6に記載された車両走行路の特徴情報の生成装置。
【請求項9】
前記区間設定手段は、前記判別手段の判別結果に基づき、前記車両走行路を、対応するカーブの向きが同一になるベクトルが連続する範囲毎に分割した後に、この分割により生じた区間を、それぞれその区間内に含まれるベクトルが示す勾配の値に基づき再分割する、請求項6に記載された車両走行路の特徴情報の生成装置。
【請求項10】
前記情報作成手段は、前記区間設定手段により設定された各区間におけるカーブの曲がり度合および勾配に基づき、各区間に適用する制限速度を決定し、この決定内容を含む情報を作成する、
請求項6または9に記載された車両走行路の特徴情報の生成装置。
【請求項11】
車両走行路を含む所定広さのエリアの3次元情報を用いて前記車両走行路の特徴を表す情報を生成する機能を、コンピュータに設定するためのプログラムであって、
前記3次元情報を処理することによって、前記車両走行路の位置および方向ならびに高さの変化を表す複数の3次元ベクトルを連ねたベクトル鎖を生成するベクトル鎖生成手段、
前記ベクトル鎖の両端縁のベクトルを除く各ベクトルを対象として、それぞれ少なくとも対象ベクトルの始点に連結しているベクトルとの関係に基づき、対象ベクトルが左右いずれの方向に曲がるカーブに対応するかを判別するとともに、このカーブの曲がり度合を判別する判別手段、
前記第1の判別手段の判別結果に基づき前記車両走行路を少なくともカーブの向きが変わる地点で区切ることにより、当該車両走行路を複数の区間に分割する区間設定手段、
前記区間設定手段の処理により設定された各区間につき、それぞれ当該区間に含まれるベクトルに基づき、当該区間の長さおよびカーブの向き、ならびに当該区間における車両走行路の曲がり度合および勾配の変化を表す情報を作成する情報作成手段、
の各手段として前記コンピュータを機能させることを特徴とする、車両走行路の特徴情報の生成処理用のプログラム。
【図1】
【図4】
【図10】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図4】
【図10】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−117989(P2010−117989A)
【公開日】平成22年5月27日(2010.5.27)
【国際特許分類】
【出願番号】特願2008−292375(P2008−292375)
【出願日】平成20年11月14日(2008.11.14)
【出願人】(000196587)西日本旅客鉄道株式会社 (202)
【出願人】(391039173)株式会社ジェイアール西日本テクノス (26)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
【公開日】平成22年5月27日(2010.5.27)
【国際特許分類】
【出願日】平成20年11月14日(2008.11.14)
【出願人】(000196587)西日本旅客鉄道株式会社 (202)
【出願人】(391039173)株式会社ジェイアール西日本テクノス (26)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】
[ Back to top ]