本発明の一実施例について、図1に示される地理空間情報処理システム10を例に挙げて説明する。
図1に示されるように、本実施例に係る地理空間情報処理システム10は、データ管理サーバ30と、地図データベース50と、地理空間情報処理装置70とを備え、これらは、ネットワーク90を介して相互に通信可能に接続される。なお、ネットワーク90は、たとえばインターネットであるが、LANやWANであってもよく、あるいは、LANやWANを含んでもよい。
データ管理サーバ30は、不図示のデータベースを有し、このデータベースには、多数のドライブレコーダによる記録データが保存される。ドライブレコーダによる記録データには、当該ドライブレコーダが備えるカメラによる撮影画像データ(動画データ)と、当該ドライブレコーダに内蔵された測位衛星受信機、いわゆるGPS受信機、による測位データとが含まれる。また、測位データには、測位位置を表す測位位置データと、測位日時を表す測位日時データ(タイムスタンプ)とが含まれる。なお、撮影画像データには、撮影時刻を表すデータは含まれていない。
地図データベース50は、デジタル地図のデータベースであり、たとえばオープンストリートマップ(以下、「OSM」と称する。)のデータベースである。OSMについては、公知であるので、その詳細な説明は、省略する。
そして、地理空間情報処理装置70は、データ管理サーバ30に保存されているドライブレコーダによる記録データのうちの任意のデータを、当該データ管理サーバ30から取得する。前述したように、ドライブレコーダによる記録データには、当該ドライブレコーダが備えるカメラによる撮影画像データと、当該ドライブレコーダに内蔵された測位衛星受信機による測位データとが含まれる。特に、撮影画像データは、複数のフレームを含む。そして、ドライブレコーダが搭載された車両(動体)が道路上を走行しているときのフレームには、たとえば図2に示される如く道路(の画像)が含まれる。
地理空間情報処理装置70は、撮影画像データを成すそれぞれのフレームに含まれる道路上の適宜の箇所、厳密には後述する2次元特徴点132(図18参照)の、実世界座標空間(WGS84)における3次元座標値を導出するとともに、導出された3次元座標値を表す位置情報を、当該2次元特徴点132に関連付ける。併せて、地理空間情報処理装置70は、それぞれのフレームにおける道路上の2次元特徴点132を利用して、当該道路の実際の(実世界座標空間における)幅員Wtを推定し、その推定結果を、当該推定結果に係る2次元特徴点132に対応する後述の3次元点102(図5参照)に関連付ける。さらに、地理空間情報処理装置70は、それぞれのフレームにおける道路の表面の状態、とりわけ路面の種類(アスファルトやコンクリートなど)を判定し、その判定結果を、当該判定結果に係る道路上の2次元特徴点132に対応する3次元点102に関連付ける。
このような地理空間情報処理装置70は、たとえば図3に示されるようなパーソナルコンピュータ(以下、「PC」と称する。)によって構成される。すなわち、地理空間情報処理装置70としてのPCは、制御部72と、入出力インタフェース(I/F)部74と、入力装置76と、表示装置78と、補助記憶部80と、通信部82とを有する。なお、地理空間情報処理装置70としてのPCは、他にも種々の要素を有するが、図4においては、本発明に直接的に関係しない要素の図示は省略してある。
制御部72は、地理空間情報処理装置70としてのPC全体の制御を担う制御手段であり、この制御部72は、制御実行手段としてのCPU72aを有する。併せて、制御部72は、CPU72aが直接的にアクセス可能な主記憶部72bを有する。主記憶部72bは、たとえばROMおよびRAMを含む。このうちのROMには、BIOSを含むファームウェアが記憶されている。一方、RAMは、CPU72aがファームウェアやオペレーティングシステム、後述する地理空間情報処理ソフトウェア80aなどの各種ソフトウェアに含まれる種々のプログラムに基づく処理を実行する際の作業領域およびバッファ領域を構成する。
入出力インタフェース部74は、制御部72、とりわけCPU72aと、入力装置76などの各要素との橋渡しを担う要素であり、たとえばチップセットを含む。このため、入出力インタフェース部74には、制御部72が接続されるとともに、入力装置76などの各要素が接続される。
入力装置76は、不図示の操作者による操作を受け付ける操作受付手段である。この入力装置76は、たとえばキーボードおよびマウスを含む。
表示装置78は、種々の情報を表示する表示手段である。この表示手段は、たとえば液晶ディスプレイや有機ELディスプレイなどのフラットパネルディスプレイであるが、これに限らない。
補助記憶部80は、補助記憶手段であり、たとえばハードディスクドライブを有する。この補助記憶部80には、オペレーティングシステムが記憶されるとともに、各種ソフトウェアが記憶され、とりわけPCを地理空間情報処理装置70として機能させるための地理空間情報処理ソフトウェア80aというアプリケーションソフトウェアが記憶される。なお、補助記憶部80は、ハードディスクドライブに代えて、または、これに加えて、フラッシュメモリなどの書き換え可能な不揮発性メモリを有してもよい。
そして、通信部82は、前述のネットワーク90との接続を担う通信接続手段である。この通信部82とネットワーク90との接続は、有線であってもよいし、無線であってもよい。
さて前述したように、地理空間情報処理装置70は、撮影画像データを成すそれぞれのフレームに含まれる道路上の2次元特徴点132の実世界座標空間における3次元座標値を導出するとともに、導出された3次元座標値を表す位置情報を、当該2次元特徴点132に関連付ける。併せて、地理空間情報処理装置70は、それぞれのフレームにおける道路上の2次元特徴点132を利用して、当該道路の実際の幅員Wtを推定し、その推定結果を、当該推定結果に係る2次元特徴点132に対応する後述の3次元点102に関連付ける。さらに、地理空間情報処理装置70は、それぞれのフレームにおける道路の表面の状態を判定し、その判定結果を、当該判定結果に係る道路上の2次元特徴点132に対応する3次元点102に関連付ける。この地理空間情報処理装置70による一連の処理の流れを、図4に示す。なお、図4において、「S」から始まる符号は、各処理ステップを特定するための符号であり、以下の説明では、各処理ステップを当該符号で表現する。
この図4に示されるように、地理空間情報処理装置70(厳密にはCPU72a)は、まずS1において、データ管理サーバ30から任意のドライブレコーダによる記録データを取得する。前述したように、ドライブレコーダによる記録データには、当該ドライブレコーダが備えるカメラによる撮影画像データと、当該ドライブレコーダに内蔵された測位衛星受信機による測位データとが含まれる。ここで、撮影画像データのフレームレートは、たとえば7fpsである。言い換えれば、撮影画像データのフレーム更新周期は、1/7秒間である。一方、測位データは、所定の周期で取得され、たとえば3秒間周期で取得される。すなわち、撮影画像データのフレーム更新周期(第1周期)は、測位データの更新周期(第2周期)よりも短く、つまり当該測位データの更新周期とは異なる。また、これら両更新周期は、互いに非同期である。
S1の実行後、地理空間情報処理装置70は、続くS3において、当該S1で取得された記録データに含まれる撮影画像データに基づいて、この撮影画像データによって表される地理空間の3次元モデルを図6に示される如く3次元点群100により再構成する。この再構成は、たとえば公知のSfM(Structure from Motion)により行われ、詳しくはたとえば公知のCOLMAPにより行われる。このため、前述の地理空間情報処理ソフトウェア40abには、COLMAPが含まれる。また、この再構成に際しては、カメラのレンズによる歪みが補正され、その上で、当該再構成が行われる。さらに、再構成においては、それぞれのフレームが得られたときのカメラの位置が推定されるとともに、その推定結果であるカメラ推定位置Pc[j](j;フレーム番号)が、再構成された3次元点群100の空間である3次元点群再構成空間と関連付けられる。なお、カメラの位置の推定と併せて、カメラの姿勢(パン・チルト・ロール)およびパラメータも推定されるが、当該カメラの姿勢およびパラメータは、本実施例においては特段には利用されない。
ちなみに、図5は、図2によって示されるのと同じ地理空間についての3次元点群再構成空間とカメラ推定位置Pc[j]とを可視化した一例である。この図5に示されるように、3次元点群100は、多数の3次元点102によって構成される。また、図5においては、カメラ推定位置Pc[j]が3次元点群100に重ねて示されることで、当該カメラ推定位置Pc[j]が3次元点群再構成空間と関連付けられていることが表現されている。なお、図5は、飽くまでも3次元点群再構成空間とカメラ推定位置Pc[j]とが可視化された図の一例であり、実際には、それぞれの3次元点102の3次元座標値とカメラ推定位置Pc[j]の3次元座標値とがSfMによる処理結果として得られる。
図4を改めて参照して、S3の実行後、地理空間情報処理装置70は、続くS5において、当該S3で再構成された3次元点群再構成空間を実世界座標空間に整合させる。このとき併せて、カメラ推定位置Pc[j]も実世界座標空間に整合される。この整合は、たとえばプロクラステス解析を用いた相似変換により行われる。その要領について、図6を参照して説明する。
なお、図6は、プロクラステス解析を用いた相似変換による整合結果の一例を示す図であり、詳しくは測位位置データによって表される測位位置Pg[k](k;測位順)を青色の丸印でOSM上に記す(プロットする)とともに、整合後のカメラ推定位置Pc[j]を赤色の丸印で当該OSM上に記した図である。また、図6によって示される地理空間は、図2(および図5)に示される地理空間とは異なる。さらに、図6においては、1分間分の測位位置Pg[k]が記されており、つまり計21個の測位位置Pg[k]が記されている。併せて、図6においては、測位位置Pg[k]と並行して得られた撮影画像データに基づく1分間分(厳密には1分間弱分)のカメラ推定位置Pc[j]が記されており、詳しくは計420個のカメラ推定位置Pc[j]が記されている。また、図6においては、その右下端にある測位位置Pg[k]が、最初の測位位置Pg[1]であり、左上端にある測位位置Pg[k]が、最後の測位位置Pg[K](=Pg[21])である。すなわち、ドライブレコーダを搭載した車両が最初の測位位置Pg[1]から最後の測位位置Pg[K]に向かって移動したことが、測位位置Pg[k]の軌跡によって表されている。そして、図6における右下端にあるカメラ推定位置Pc[j]が、最初のカメラ推定位置Pc[1]であり、図6における左上端にあるカメラ推定位置Pc[j]が、最後のカメラ推定位置Pc[J](=Pc[420])である。
このプロクラステス解析を用いた相似変換は、それぞれの測位位置Pg[k]を指標として行われる。そのために、全てのカメラ推定位置Pc[j]の中からそれぞれの測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]が特定される。
具体的には、最初の測位位置Pg[1](第1測位位置)と最初のカメラ推定位置Pc[1](第1推定位置)とが互いに対応するとともに、最後の測位位置Pg[K](第2測位位置)と最後のカメラ推定位置Pc[J](第2推定位置)とが互いに対応するものとみなされる。すなわち、最初のカメラ推定位置Pc[1]が最初の測位位置Pg[1]に対応する対応カメラ推定位置Pcg[1]であると特定されるとともに、最後のカメラ推定位置Pc[J]が最後の測位位置Pg[K]に対応する対応カメラ推定位置Pcg[K](=Pcg[21])であると特定される。
そして、最初の測位位置Pg[1]および最後の測位位置Pg[k]以外のそれぞれの測位位置Pg[k](第3測位位置)に対応する対応カメラ推定位置Pcg[k](第3推定位置)については、測位位置Pg[k]の移動進捗度合いと、カメラ推定位置Pc[j]の移動進捗度合いとが、互いに同じである、という発想に基づいて特定される。詳しくは、最初の測位位置Pg[1]および最後の測位位置Pg[K]のそれぞれに対する任意の測位位置Pg[k]の空間的関係と、当該任意の測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]の最初のカメラ推定位置Pc[1]および最後のカメラ推定位置Pc[J]のそれぞれに対する空間的関係とが、互いに共通する、という発想に基づいて、当該任意の測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]が特定される。
そのために、次の式1に基づいて、最初のカメラ推定位置Pc[1]から任意の測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]までの経路長Lcg[k]が求められる。ここで、Lg[k]は、最初の測位位置Pg[1]から任意の測位位置Pg[k]までの経路長である。そして、Lg_ALLは、最初の測位位置Pg[1]から最後の測位位置Pg[K]までの全経路長である。また、Lc_ALLは、最初のカメラ推定位置Pc[1]から最後のカメラ推定位置Pc[J]までの全経路長である。
《式1》
Lcg[k]=(Lg[k]/Lg_ALL)・Lc_ALL
そして、最初のカメラ推定位置Pc[1]から式1に基づく経路長Lcg[k]を経た位置Ptに該当するカメラ推定位置Pc[j]が、任意の測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]として特定される。なお、位置Ptに該当するカメラ推定位置Pc[j]が存在しない場合には、当該位置Ptに最も近いカメラ推定位置Pc[j]が、任意の測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]として特定される。
その上で、それぞれの対応カメラ推定位置Pcg[k]が当該対応カメラ推定位置Pcg[k]に対応する測位位置Pg[k]と一致するように、プロクラステス解析を用いた相似変換が行われる。これにより、3次元点群再構成空間が、カメラ推定位置Pc[j]と併せて、並進、回転およびスケーリングされて、実世界座標空間に整合される。
なお、プロクラステス解析を用いた相似変換による整合に際して、測位位置Pg[k]およびカメラ推定位置Pc[j]それぞれのばらつきを補正するための前処理が行われてもよい。この前処理は、たとえば公知のカルマンフィルタにより行うことができる。このような前処理が行われることで、整合精度の向上が図られる。
ここで、プロクラステス解析を用いた相似変換による整合後のそれぞれの対応カメラ推定位置Pcg[k]は、つまり実世界座標空間におけるそれぞれの対応カメラ推定位置Pcg[k]は、当該それぞれの対応カメラ推定位置Pcg[k]に対応する測位位置Pg[k]と同様、緯度および経度により規定される。なお、実世界座標空間においては、垂直(鉛直)軸がY軸であり、2つの水平軸がX軸およびZ軸である。すなわち、実世界座標空間のXZ平面における座標値は、緯度および経度により規定される。
一方、実世界座標空間のY軸方向における座標値は、たとえば標高により規定されるが、整合後の3次元点群100を成すそれぞれの3次元点102の高さ位置を表すY値については、とりわけY軸方向における2つの3次元点102および102の相互間距離については、何らかの規準がなければ、これを定量的に(何メートルであるのかを)求めることができない。これは、測位衛星受信機による測位データに高さ方向に関する情報が含まれていないことによる。
そこで、地理空間情報処理装置70は、整合後の各対応カメラ推定位置Pcg[k]間の距離と、当該各対応カメラ推定位置Pcg[k]間の測地線(Geodesic)距離との、相互比率に基づいて、規準としてのスケールファクタSfを導出する。
具体的には、地理空間情報処理装置70は、整合後の連続する2つの対応カメラ推定位置Pcg[k]およびPcg[k+1]間の最短距離ΔLcg[k]を求める。併せて、地理空間情報処理装置70は、実世界座標空間における当該2つの対応カメラ推定位置Pcg[k]およびPcg[k+1]間の測地線距離ΔLa[k]を求める。そして、地理空間情報処理装置70は、測地線距離ΔLa[k]に対する最短距離ΔLcg[k]の比率R[k](=ΔLcg[k]/ΔLa[k])を求める。そして、地理空間情報処理装置70は、全ての区間における比率R[k]の平均を、スケールファクタSfとし、つまり次の式2に基づいて、スケールファクタSfを導出する。
《式2》
Sf=(ΣR[k])/(K-1) where k=1~K-1
実世界座標空間のY軸方向においては、とりわけ2つの3次元点102および102の相互間距離に、このスケールファクタSfが乗ぜられることで、当該相互化距離が定量的に求められる。
前述したように、図6は、プロクラステス解析を用いた相似変換による整合結果の一例を示す図であり、詳しくは測位位置Pg[k]を青色の丸印でOSM上に記すとともに、整合後のカメラ推定位置Pc[j]を赤色の丸印で当該OSM上に記した図である。そして、図6においては、それぞれの測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]が緑色の丸印で記されている。
ここで、整合後の対応カメラ推定位置Pcg[k](図6における緑色の丸印)と測位位置Pg[k](図6における青色の丸印)とは、互いに一致していることが理想である。しかしながら、図6に示される例においては、整合後の対応カメラ推定位置Pcg[k]と測位位置Pg[k]とが局所的に一致しておらず、つまり両者間に多少のズレがある。このズレは、カメラパスやシーン特性などに起因するものである。また、このズレは、整合後の3次元点群再構成空間全体において、生じているものと考えられる。
そこで、改めて図4を参照して、地理空間情報処理装置70は、S5に続くS7において、測位位置Pg[k]を基準とする3次元点群再構成空間全体の補正を行う。
具体的には、地理空間情報処理装置70は、整合後のそれぞれの対応カメラ推定位置Pcg[k]の測位位置Pg[k]に対する誤差ベクトル(補正オフセット)Vg[k]を算出する。この誤差ベクトルVg[k]は、緯度についての誤差ベクトルVg_LAT[k]と、経度についての誤差ベクトルVg_LON[k]とを含む。
そして、地理空間情報処理装置70は、整合後の対応カメラ推定位置Pcg[k]を制御点とし、誤差ベクトルVg[k]を補間値とする、放射基底関数(RBF)補間により、図7に示されるような補正空間(第1補正空間)を生成する。なお、図7において、赤色の丸印は、整合後の対応カメラ推定位置Pcg[k]を表し、換言すればS7による補正前の対応カメラ推定位置Pcg[k]を表す。そして、図7における緑色の丸印は、S7による補正後の対応カメラ推定位置Pcg’[k]を表し、換言すれば当該S7による補正の目標とする対応カメラ推定位置Pcg’[k]を表す。また、図7に示される補正空間の横軸は、経度を表し、当該補正空間の縦軸は、経度を表し、当該補正空間の色は、補正の程度(強さ)を表す。
その上で、地理空間情報処理装置70は、図7に示される補正空間を整合後の3次元点群再構成空間に適用することで、当該3次元点群再構成空間全体を補正する。これにより、補正前のそれぞれの対応カメラ推定位置Pcg[k]が目標とする対応カメラ推定位置Pcg’[k]に補正され、これに伴い、3次元点群再構成空間全体が補正される。
図8は、S7による補正結果の一例を示し、つまり測位位置Pg[k]を基準とする補正結果の一例を示す。なお、図8は、図6におけるOSM上の道路(以下、「OSM道路」と称する。)の一部と、当該OSM上に記したカメラ推定位置Pc[j](赤色の丸印)および測位位置Pg[k](青色の丸印)とを、抽出して示すとともに、これに、測位位置Pg[k]を基準とする(つまり図7に示される補正空間による)補正後のカメラ推定位置Pc’[j]をオレンジ色の丸印で記した図である。
この図8に示されるように、測位位置Pg[k]を基準とする補正が行われることで、当該補正後のカメラ推定位置Pc’[j]が測位位置Pg[k]の軌跡に倣うようになる。また、図8からは分からないが、それぞれの対応カメラ推定位置Pcg’[k]が測位位置Pg[k]と一致するようになる。これと併せて、3次元点群再構成空間全体が補正される。
ところで、測位位置Pg[k]については、状況によっては誤差が生ずる場合がある。たとえば、図8においては、破線の矩形枠110により囲まれた領域内の測位位置Pg[k]について、誤差が生じている(測位位置Pg[k]が若干OSM道路の中央寄りにある)ことが認められる。このような場合は、測位位置Pg[k]を基準とする補正後のカメラ推定位置Pc’[j]を含む3次元点群再構成空間全体について、さらなる補正をすることが、詳しくはOSM道路を基準とする追加補正をすることが、適当であるものと考えられる。
そこで、改めて図4を参照して、地理空間情報処理装置70は、S7に続くS9において、OSM道路を基準とする3次元点群再構成空間全体の追加補正を行う。
そのために、地理空間情報処理装置70は、追加補正に必要なOSM道路に関する情報、言わばOSM道路情報を、地図データベース50から取得する。この地図データベース50からのOSM道路情報の取得は、Overpass_APIを用いて行われる。
ここで言う追加補正に必要なOSM道路に関するOSM道路情報とは、当該追加補正の対象となるいずれかのカメラ推定位置Pc’[j]を含むOSM道路に関するOSM道路情報、あるいは、当該カメラ推定位置Pc’[j]の近傍にある、詳しくは当該カメラ推定位置Pc’[j]を中心とする所定の検索半径Rs内にある、OSM道路に関するOSM道路情報を指す。なお、検索半径Rcは、たとえば10mであるが、これに限らない。
そして、地理空間情報処理装置70は、地図データベース50から取得されたOSM道路情報によって表されるOSM道路の中から、それぞれのカメラ推定位置Pc’[j]にマッチするOSM道路を特定し、詳しくは当該OSM道路のOSM_IDを特定し、言わば道路マッチングを行う。たとえば、いずれかのカメラ推定位置Pc’[j]がいずれかのOSM道路に含まれる場合は、そのカメラ推定位置Pc’[j]は、当該カメラ推定位置Pc’[j]を含むOSM道路とマッチする、と判定される。一方、いずれのOSM道路にも含まれないカメラ推定位置Pc’[j]については、当該カメラ推定位置Pc’[j]からの最短距離DSと、当該カメラ推定位置Pc’[j]の移動方向DRcとの関係とに基づいて、道路マッチングが行われる。
具体的には、OSM道路は、図9に示されるように、2つのノード120および120と、これら2つのノード120および120を結ぶ直線状のエッジ122とによって、規定されている。そして、いずれかのカメラ推定位置Pc’[j]がいずれかのOSM道路上(エッジ122上)に存在する場合に、そのOSM道路が当該カメラ推定位置Pc’[j]とマッチする、と判定される。
一方、いずれのOSM道路上にも存在しないカメラ推定位置Pc’[j]については、当該カメラ推定位置Pc’[j]から(地図データベース50から取得されたOSM道路情報によって表される)それぞれのOSM道路までの最短距離DSに応じた距離スコアSdsと、当該カメラ推定位置Pc’[j]の移動方向DRcとそれぞれのOSM道路の向きDRsとの関係に応じた方向スコアSdrとに基づいて、当該カメラ推定位置Pc’[j]にマッチするOSM道路が特定される。
ここで言う最短距離DSは、図10に示されるように、カメラ推定位置Pc’[j]の軌跡に対して直角な方向における当該カメラ推定位置Pc’[j]からOSM道路までの距離(直交距離)である。そして、距離スコアSdsは、次の式3に基づいて算出される。すなわち、距離スコアSdsは、最短距離DSを前述の検索半径Rsによって正規化した値である。
《式3》
Sds=DS/Rs
また、方向スコアSdrは、次の式4に基づいて算出される。この式4におけるθdrは、カメラ推定位置Pc’[j]の移動方向DRcとそれぞれのOSM道路の向きDRsとが互いに成す角度であり、言わば誤差角度である。すなわち、方向スコアSdrは、誤差角度θdrを90°という所定の角度で正規化した値である。
《式4》
Sdr=θdr/90°
なお、方向スコアSdrについては、誤差角度θdrを180°という角度で正規化した値とすることも考えられるが、道路マッチングの誤判定を抑制するには、当該誤差角度θdrを90°という角度で正規化する方が、換言すれば90°という角度を最大誤差として扱う方が、適当である。また、方向スコアSdrについては、OSM道路が一方通行の道路であるのか、それとも双方向通行の道路であるのかが、加味される。
すなわちたとえば、OSM道路が一方通行の道路である場合には、そのOSM道路情報に“oneway”というタグが付される。この“oneway”というタグが付されたOSM道路情報によって表されるOSM道路については、つまり一方通行のOSM道路については、前述の式4に基づいて方向スコアSdrが算出される。
これに対して、“oneway”というタグが付されていないOSM道路情報によって表されるOSM道路については、つまり双方向通行のOSM道路については、式4に基づいて方向スコアSdrが算出されるとともに、次の式5に基づいて方向スコアSdrが算出される。
《式5》
Sdr=(180°-θdr)/90°
そして、式4に基づく方向スコアSdrと、式5に基づく方向スコアSdrとのうちの小さい方の値が、道路マッチングに用いられる。
このようにして距離スコアSdsと方向スコアSdrとが算出された上で、地理空間情報処理装置70は、当該距離スコアSdsと方向スコアSdrとの合計である合計スコアSaが最も小さいOSM道路を、カメラ推定位置Pc’[j]とマッチするものとして特定する。
具体例を挙げて説明すると、或るカメラ推定位置Pc’[j]の移動方向が北方向であり、この或るカメラ推定位置Pc’[j]がAという実際の(マッチするべき)OSM道路から東側へ9m離れている、とする。ここで、OSM道路Aは、北向きの一方通行の道路である、とする。そして、OSM道路Aとは別のBというOSM道路が存在し、このOSM道路Bは、南東向きの一方通行の道路であり、ここで言う或るカメラ推定位置から西側へ1m離れている、とする。この場合、OSM道路Aについての距離スコアSdsは、0.9(=9m/10m)であり、方向スコアSdrは、0.0(=0°/90°)であり、合計スコアSaは、0.9(=0.9+0.0)である。一方、OSM道路Bについての距離スコアSdsは、0.1(=1m/10m)であり、方向スコアSdrは、1.5(=135°/90°)であり、合計スコアSaは、1.6(=0.1+1.5)である。したがって、ここで言う或るカメラ推定位置Pc’[j]は、合計スコアSaが小さいOSM道路Aとマッチするものとして特定される。
このようにしてそれぞれのカメラ推定位置Pc’[j]とマッチするOSM道路が特定された上で、地理空間情報処理装置70は、当該OSM道路の形状を高解像度化する(滑らかにする)ための処理を行う。
すなわち、図9を参照しながら説明したように、OSM道路は、2つのノード120および120と、これら2つのノード120および120を結ぶ直線状のエッジ122とによって、規定されている。したがって特に、カーブの区間では、図11に示されるように、OSM道路の解像度が低く、ゆえに、当該OSM道路の形状(道路スプライン)が実際の道路の形状から乖離する傾向にある。
そこで、地理空間情報処理装置70は、OSM道路の形状を高解像度化するための処理を行う。この処理は、公知の3次エルミートスプライン補間により行われる。これにより、OSM道路の形状が図12に示される如く高解像度化される。
その上で、地理空間情報処理装置70は、図13に示されるように、高解像度化されたOSM道路におけるそれぞれのカメラ推定位置Pc’[j]に対応する位置Ps[j]を特定する。なお、高解像度化されたOSM道路におけるそれぞれのカメラ推定位置Pc’[j]に最も近い位置が、対応位置Ps[j]として特定される。
そして、地理空間情報処理装置70は、それぞれのカメラ推定位置Pc’[j]の対応位置Ps[j]に対する誤差ベクトル(補正オフセット)Vs[j]を算出する。この誤差ベクトルVs[j]は、緯度についての誤差ベクトルVs_LAT[j]と、経度についての誤差ベクトルVs_LON[j]とを含む。
さらに、地理空間情報処理装置70は、それぞれのカメラ推定位置Pc’[j]を制御点とし、誤差ベクトルVs[j]を補間値とする、放射基底関数補間により、図14に示されるような補正空間(第2補正空間)を生成する。なお、図14において、赤色の丸印は、S9による追加補正前のカメラ推定位置Pc’[j]を表し、換言すればS7による補正後のカメラ推定位置Pc’[j]を表す。そして、図14における緑色の丸印は、S9による追加補正後のカメラ推定位置Pc”[j]を表し、換言すれば当該S9による追加補正の目標とするカメラ推定位置Pc”[j]を表す。また、図14に示される補正空間の横軸は、経度を表し、当該補正空間の縦軸は、経度を表し、当該補正空間の色は、追加補正の程度を表す。
地理空間情報処理装置70は、この図14に示される補正空間をS7による補正後の3次元点群再構成空間に適用することで、当該3次元点群再構成空間全体を追加補正する。これにより、追加補正前のそれぞれのカメラ推定位置Pc’[j]が目標とするカメラ推定位置Pc”[j]に補正され、これに伴い、3次元点群再構成空間全体が補正される。
図15は、S9による追加補正結果の一例を示し、つまりOSM道路を基準とする追加補正結果の一例を示す。この図15においては、図6および図8と同様、測位位置Pg[k]を青色の丸印で記すとともに、補正後のカメラ推定位置Pc’[j]をオレンジ色の丸印で記しており、さらに、追加補正後のカメラ推定位置Pc”[j]をピンク色の丸印で記してある。
この図15に示されるように、OSM道路を基準とする追加補正が行われることで、当該追加補正後のカメラ推定位置Pc”[j]がOSM道路に精確に倣うようになる。特に、破線の矩形枠110により囲まれた領域内のカメラ推定位置Pc”[j]についても、OSM道路に精確に倣うようになる。そして、図15からは分からないが、3次元点群再構成空間全体が追加補正される。
改めて図4を参照して、地理空間情報処理装置70は、S9に続くS11において、撮影画像データを成すそれぞれのフレームに含まれる道路上の2次元特徴点132に、当該2次元特徴点132の実世界座標空間における3次元座標値を表す位置情報を関連付けるための処理を行う。
このS11の処理においては、前述のSfMによりカメラのレンズ歪みが補正された後の撮影画像データが用いられる。たとえば図16は、図2(および図5)によって示されるのと同じ地理空間の撮影画像データに対してSfMによるレンズ歪み補正が施された後の撮影画像データの、厳密には或るフレームの、一例を示す。
地理空間情報処理装置70は、SfMによるレンズ歪みが施された後のフレームについて、換言すればそれぞれのフレームごとに、物体検出モデルによる道路検出を行う。ここで言う物体検出モデルとしては、たとえば公知のGroundingDINOが用いられる。このため、前述の地理空間情報処理ソフトウェア40abには、GroundingDINOがセットアップされる。なお、この道路検出のためのGroundingDINOのプロンプトは、たとえば“building.”である。そして、パラメータとしてのボックス閾値は、たとえば0.3に設定され、テキスト閾値は、たとえば0.25に設定される。
このGroundingDINOによる道路検出が行われることで、たとえば図17に示されるように、検出された道路にバウンディングボックス125が付される。なお、図17に示される地理空間は、図2(および図5、図16)によって示される地理空間と同じである。また、図17に示されるフレームにおいては、その左上隅を原点とし、横軸をX軸とし、縦軸をY軸とする、2次元座標が設定される。このことは、図16などの他の図面に示されるフレームにおいても、同様である。
このGroundingDINOによる道路検出が行われた後、地理空間情報処理装置70は、それぞれのフレームごとに、セグメンテーションモデルにより道路領域を区分するためのセグメンテーションを行う。ここで言うセグメンテーションモデルとしては、たとえば公知のSAM2が用いられる。このため、前述の地理空間情報処理ソフトウェア40abには、SAM2がセットアップされる。また、SAM2には、GroundingDINOによる道路検出結果を表すバウンディングボックス125がそのままプロンプトとして入力される。これにより、バウンディングボックス125内の道路領域が他の領域と区分され、図18に示されるように、当該道路領域にマスク130が掛けられる。
このSAM2によるセグメンテーションの後、地理空間情報処理装置70は、当該セグメンテーションにより区分された道路領域(マスク130)内にある2次元特徴点132を抽出する。すなわち、前述のSfMによる3次元点群100の再構成においては、それぞれのフレームから2次元特徴点が検出され、この2次元特徴点のフレーム上における2次元座標値やカメラ推定位置Pc[j]などに基づいて、当該3次元点群100が再構成される。そして、3次元点群100の再構成に供された2次元特徴点は、当該2次元特徴点対応する3次元点102と関連付けられる。地理空間情報処理装置70は、それぞれのフレームの2次元特徴点のうち、SAM2によるセグメンテーションにより区分された道路領域内にある2次元特徴点132を抽出する。なお、図18は、道路領域内にある2次元特徴点132を示す図の一例でもある。
さらに、地理空間情報処理装置70は、抽出された2次元特徴点132に対応する、つまり道路領域内にある2次元特徴点132に対応する、3次元点102を特定する。そして、地理空間情報処理装置70は、特定された3次元点102のうち、実世界座標空間のY軸方向におけるz-スコアが所定値を超えるものを、外れ値として後続の処理から除外する。この手法は、公知のPython(登録商標)ライブラリの1つであるSciPyを用いた標準的なフィルタリング手法(z-スコアフィルタリング手法)である。なお、ここで言う所定値は、たとえば±2であり、つまり約97%という信頼範囲に相当する値であるが、これに限らない。
そして、地理空間情報処理装置70は、外れ値を除外した後の3次元点102の3次元座標値を表す位置情報を、当該3次元点102に対応する2次元特徴点に関連付ける。これをもって、地理空間情報処理装置70は、図4におけるS11を終了する。
S11に続くS13において、地理空間情報処理装置70は、それぞれのフレームにおける道路領域内にある2次元特徴点132を利用して、当該道路の実際の幅員Wtを推定するとともに、その推定結果を、当該推定結果に係る2次元特徴点132に対応する3次元点102に関連付けるための処理を行う。
このS13の処理において、地理空間情報処理装置70は、まず、それぞれのフレームごとに、車線境界検出モデルによる車線境界検出を行う。ここで言う車線境界検出モデルとしては、たとえば公知のCLRerNETが用いられる。このため、前述の地理空間情報処理ソフトウェア40abには、CLRerNETがセットアップされる。
続いて、地理空間情報処理装置70は、ここでも兼用される図18に示されるように、CLRerNETにより検出された車線境界134に近い位置にある2次元特徴点132aを、当該車線境界134ごとにグループ化する。なお、それぞれの2次元特徴点132が車線境界134に近い位置にあるかどうかは、フレーム上における当該2次元特徴点132と車線境界134との相互間距離に基づいて判定される。
さらに、地理空間情報処理装置70は、各グループ間で、同一水平線(同一スキャンライン)136上にある、換言すればフレームにおけるY値が互いに同じである、2次元特徴点132aをペアリングする。なお、ここで言う同一水平線上にあるかどうかについては、つまりフレームにおけるY値が互いに同じであるかどうかについては、適当なマージンが設けられるのが望ましい。
その上で、地理空間情報処理装置70は、ペアリングされた2次元特徴点132aに対応する3次元点102の相互間距離を算出し、この算出された相互間距離を、車線幅員Wtとして推定する。
そして、地理空間情報処理装置70は、推定された車線幅員Wtを、当該車線幅員Wtの推定に係る3次元点102に関連付ける。これをもって、地理空間情報処理装置70は、図4におけるS13を終了する。なお、S13においては、所定数(たとえば5~10)のフレームにわたって推定された車線幅員Wtの平均値が、当該S13における最終的な推定結果とされてもよく、いわゆるスライディングウィンドウ法により最終的な車線幅員Wtが推定されてもよい。
S13に続くS15において、地理空間情報処理装置70は、それぞれのフレームにおける道路の表面の状態を判定するとともに、その判定結果を、当該判定結果に係る道路上の2次元特徴点132に対応する3次元点102に関連付けるための処理を行う。
このS15の処理において、地理空間情報処理装置70は、まず、前述のS11の処理と同様、それぞれのフレームごとに、物体検出モデルによる、つまりたとえばGroundingDINOによる、道路検出を行う。これにより、図19に示されるように、検出された道路にバウンディングボックス140が付される。
このGroundingDINOによる道路検出が行われた後、地理空間情報処理装置70は、当該GroundingDINOにより検出されたフレーム上の道路について、つまりバウンディングボックス140が付された部分について、画像言語埋め込みモデルによる路面状態判定を行う。なお、画像言語埋め込みモデルとしては、たとえば公知のCLIPが用いられる。このCLIPには、たとえば次のようなプロンプトが入力される。
asphalt: "a paved road with an asphalt surface“
concrete: "a paved road with a concrete surface“
gravel: "an unpaved surface covered with gravel“
dirt: "an unpaved road with a dirt or mud surface“
grass: "an unpaved offroad surface covered with grass or foliage“
other: "an image with a foreground object or structure, or background“
これにより、それぞれのフレームにおける道路の表面の状態、とりわけ路面の種類が次判定され、図19に示されるように、その判定結果を可視化した判定結果表示情報142が当該フレームに配される。なお、図19においては、判定結果表示情報142がバウンディングボックス140内に配されるが、この判定結果表示情報142が配される位置は、これに限らない。また、同フレームには、たとえばその左上隅近傍の位置には、判定の確度を可視化した判定確度表示情報144が配される。
そして、地理空間情報処理装置70は、CLIPによる路面状態(路面種類)の判定結果を表す判定結果情報を、当該判定結果に係る道路上の2次元特徴点132に対応する3次元点102に関連付ける。これをもって、地理空間情報処理装置70は、図4におけるS15を終了する。
なお、図20は、図4におけるS5の詳細を示すフロー図である。この図20に示されるように、地理空間情報処理装置70は、まず、S101において、カメラ推定位置Pc[j]のうち、それぞれの測位位置Pg[k]に対応する対応カメラ推定位置Pcg[k]を特定する。そして、地理空間情報処理装置70は、続くS103において、プロクラステス解析を用いた相似変換を行う。これにより、3次元点群再構成空間が実世界座標空間に整合される。さらに、地理空間情報処理装置70は、続くS105において、スケールファクタSfを導出する。これをもって、地理空間情報処理装置70は、図4におけるS5を終了する。
また、図21は、図4におけるS7の詳細を示すフロー図である。この図21に示されるように、地理空間情報処理装置70は、まず、S201において、プロクラステス解析を用いた相似変換による整合後の対応カメラ推定位置Pcg[k]の測位位置Pg[k]に対する誤差ベクトルVg[k]を算出する。そして、地理空間情報処理装置70は、続くS203において、整合後の対応カメラ推定位置Pcg[k]を制御点とし、誤差ベクトルVg[k]を補間値とする、放射基底関数補間により、図7に示されるような補正空間を生成する。さらに、地理空間情報処理装置70は、続くS205において、S203で生成された補正空間を整合後の3次元点群再構成空間に適用することで、当該3次元点群再構成空間全体を補正する。これをもって、地理空間情報処理装置70は、図4におけるS7を終了する。
そして、図22は、図4におけるS9の詳細を示すフロー図である。この図22に示されるように、地理空間情報処理装置70は、まず、S301において、追加補正に必要なOSM道路に関するOSM道路情報を地図データベース50から取得する。そして、地理空間情報処理装置70は、続くS303において、それぞれのカメラ推定位置Pc’[j]にマッチするOSM道路を特定し、つまり当該OSM道路のOSM_IDを特定する。さらに、地理空間情報処理装置70は、続くS305において、S303で特定されたOSM道路の形状を公知の3次エルミートスプライン補間により高解像度化する。そして、地理空間情報処理装置70は、続くS307において、S305で高解像度化されたOSM道路におけるそれぞれのカメラ推定位置Pc’[j]に対応する位置Psを特定する。
そして、S307に続くS309において、地理空間情報処理装置70は、当該S307で特定された対応位置Ps[j]に対するそれぞれのカメラ推定位置Pc’[j]の誤差ベクトルVs[j]を算出する。その上で、地理空間情報処理装置70は、続くS311において、それぞれのカメラ推定位置Pc’[j]を制御点とし、誤差ベクトルVs[j]を補間値とする、放射基底関数補間により、図14に示されるような補正空間を生成する。そして、地理空間情報処理装置70は、続くS313において、S311で生成された補正空間を前述のS7(S205)による補正後の3次元点群再構成空間に適用することで、当該3次元点群再構成空間全体を追加補正する。これをもって、地理空間情報処理装置70は、図4におけるS9を終了する。
さらに、図23は、図4におけるS11の詳細を示すフロー図である。この図23に示されるように、地理空間情報処理装置70は、まず、S401において、撮影画像データのそれぞれのフレームごとに、物体検出モデルによる、たとえばGroundingDINOによる、道路検出を行う。
そして、地理空間情報処理装置70は、続くS403において、S401における検出結果に対して、セグメンテーションモデルにより、たとえばSAM2により、道路領域を区分するためのセグメンテーションを行う。
このS403の後、地理空間情報処理装置70は、続くS405において、当該S403におけるセグメンテーションにより区分された道路領域(マスク130)内にある2次元特徴点132を抽出する。
そして、地理空間情報処理装置70は、S405に続くS407において、当該S405で抽出されたそれぞれの2次元特徴点132に対応する、つまり道路領域内にある2次元特徴点132に対応する、3次元点102を特定する。
さらに、地理空間情報処理装置70は、S407に続くS409において、当該S407で特定され3次元点102のうち、実世界座標空間のY軸方向におけるz-スコアが所定値を超えるものを、外れ値として後続の処理から除外する。
その上で、地理空間情報処理装置70は、S409に続くS411において、当該S409で外れ値が除外された後の3次元点102の3次元座標値を表す位置情報を、当該3次元点102に対応する2次元特徴点に関連付ける。これはすなわち、フレーム内の道路上の適宜の箇所の実世界座標空間における3次元座標値が、当該フレーム内の道路上の適宜の箇所に関連付けられることを意味する。これをもって、地理空間情報処理装置70は、図4におけるS11を終了する。
また、図24は、図4におけるS13の詳細を示すフロー図である。この図24に示されるように、地理空間情報処理装置70は、まず、S501において、撮影画像データのそれぞれのフレームごとに、車線境界検出モデルにより、たとえばCLRerNETにより、車線境界検出を行う。
そして、地理空間情報処理装置70は、続くS503において、S501で検出された車線境界134に近い位置にある2次元特徴点132aを、当該車線境界134ごとにグループ化する。
このS503の後、地理空間情報処理装置70は、続くS505において、当該S503によりグループ化された各グループ間で、同一水平線上にある、換言すればフレームにおけるY値が互いに同じである、2次元特徴点132aをペアリングする。
そして、地理空間情報処理装置70は、S505に続くS507において、当該S505でペアリングされた2次元特徴点132aに対応する3次元点102の相互間距離を算出し、この算出された相互間距離を、車線幅員Wtとして推定する。
その上で、地理空間情報処理装置70は、S507に続くS509において、当該S507で推定された車線幅員Wtを、当該車線幅員Wtの推定に係る3次元点102に関連付ける。これはすなわち、フレーム内の道路の実際の車線幅員Wtの推定結果が、当該フレーム内の道路に関連付けられることを意味する。これをもって、地理空間情報処理装置70は、図4におけるS13を終了する。
さらに、図25は、図4におけるS15の詳細を示すフロー図である。この図25に示されるように、地理空間情報処理装置70は、まず、S601において、撮影画像データのそれぞれのフレームごとに、物体検出モデルによる、たとえばGroundingDINOによる、道路検出を行う。このS601の処理は、前述のS11におけるS401の処理と同様である。
そして、地理空間情報処理装置70は、続くS603において、S601における検出結果について、つまりバウンディングボックス125が付された部分について、画像言語埋め込みモデルによる、たとえばCLIPによる、路面状態判定を行う。
このS603の後、地理空間情報処理装置70は、続くS605において、当該S603によりグループ化された各グループ間で、同一水平線上にある、換言すればフレームにおけるY値が互いに同じである、2次元特徴点132aをペアリングする。
そして、地理空間情報処理装置70は、S505に続くS507において、当該S505による判定結果を、当該判定結果に係る3次元点102に関連付ける。これはすなわち、フレーム内の道路の表面の状態の判定結果が、当該フレーム内の道路に関連付けられることを意味する。これをもって、地理空間情報処理装置70は、図4におけるS15を終了する。
以上のように、本実施例によれば、ドライブレコーダによる記録データに基づいて、当該記録データに含まれる撮影画像データのそれぞれのフレーム内の道路上の適宜の箇所の実世界座標空間における3次元座標値が導出されるとともに、導出された3次元座標値を表す位置情報が当該道路上の適宜の箇所に関連付けられる。すなわち、それぞれのフレーム内の道路上の適宜の箇所に、その箇所の実世界座標空間における3次元座標値が関連付けられる。これは要するに、ドライブレコーダに内蔵されている測位衛星受信機による測位に比べて遥かに高い解像度で、フレーム内の道路上の各箇所の実世界座標空間における位置情報が得られることを意味する。このことは、従来よりもコストを抑えながら精確なデジタル地図の作成および更新を実現するのに大きく貢献する。そして、この効果は、デジタル地図の領域が広いほど顕著である。
また、本実施例によれば、ドライブレコーダによる記録データに基づいて、当該記録データに含まれる撮影画像データのそれぞれのフレーム内の道路の実際の幅員Wtが推定されるとともに、その推定結果が、フレーム内の道路に関連付けられる。このこともまた、従来よりもコストを抑えながら精確なデジタル地図の作成および更新を実現するのに大きく貢献する。そして、この効果は、デジタル地図の領域が広いほど顕著である。
さらに、本実施例によれば、ドライブレコーダによる記録データに基づいて、当該記録データに含まれる撮影画像データのそれぞれのフレーム内の道路の表面の状態が判定されるとともに、その判定結果が、フレーム内の道路に関連付けられる。このこともまた、従来よりもコストを抑えながら精確なデジタル地図の作成および更新を実現するのに大きく貢献する。そして、この効果は、デジタル地図の領域が広いほど顕著である。
なお、本実施例において、図4におけるS1を実行する地理空間情報処理装置70は、厳密にはCPU72aは、本発明に係る画像データ入力受付手段の一例であるとともに、本発明に係る測位データ入力受付手段の一例でもある。また、図4におけるS3を実行するCPU72aは、本発明に係る3次元点群再構成手段の一例であり、図4におけるS5を実行するCPU72aは、本発明に係る空間整合手段の一例である。さらに、図4におけるS11を実行するCPU72aは、本発明に係る第1関連付け手段の一例である。そして、図4におけるS13を実行するCPU72aは、とりわけ図24におけるS507を実行するCPU72aは、本発明に係る車線幅員推定手段の一例である。加えて、図24におけるS501を実行するCPU72aは、本発明に係る車線境界検出手段の一例であり、図24におけるS509を実行するCPU72aは、本発明に係る第2関連付け手段の一例である。さらに加えて、図4におけるS15を実行するCPU72aは、とりわけ図25におけるS603を実行するCPU72aは、本発明に係る路面状態判定手段の一例である。そして、図25におけるS605を実行するCPU72aは、本発明に係る第3関連付け手段の一例である。
本実施例は、飽くまでも本発明の具体例であり、本発明の範囲を限定するものではない。本実施例以外の種々の局面においても、本発明を適用することができる。
たとえば、地理空間情報処理装置70は、PCによって構成されることとされたが、これに限らない。PC以外の装置によって、とりわけ専用の装置によって、地理空間情報処理装置70が構成されてもよい。
また、ドライブレコーダによる記録データは、データ管理サーバ30から取得されることとされたが、これに限らない。たとえば、ドライブレコーダから直接的に当該ドライブレコーダによる記録データが取得されてもよい。
さらに、地図データベース50として、OSM以外のデジタル地図のデータベース、とりわけオープンプラットフォーム型(ユーザ生成型)のデジタル地図のデータベースが、採用されてもよい。
そして、本発明は、デジタル地図の作成および更新のみならず、メタバースやゲームなどの当該デジタル地図以外の分野へも適用可能である。
また、本発明は、地理空間情報処理装置という装置の形態に限らず、地理空間情報処理方法という方法の形態によっても、提供することができる。