uc23-18

3D都市モデルに最適化したVPSの開発v3.0

実施事業者TOPPAN株式会社 / 株式会社ホロラボ / プレティア・テクノロジーズ株式会社
実証場所静岡県沼津市
実施期間2023年9月~2024年2月
Share

3D都市モデルとカメラ画像等を組み合わせたVPS(Visual Positioning System)を高度化し、より精度の高い自己位置推定システムを開発。モビリティに留まらず様々な業界に向けたサービス実装を目指す。

実証実験の概要

画像と3D地図等をマッチングさせることで位置を特定するVPS(Visual Positioning System)は、一般的には事前にユーザーが現地へ訪問し、撮影やスキャンによってマップを作成する必要がある。このVPS用マップをオープンデータである3D都市モデルを活用して作成することができれば、汎用的かつスケーラブルなVPSを実現することができ、モ
ビリティサービスやエンタメなど様々な分野へ応用が可能となる。

今回の実証実験では、2022年度に「自動運転車両の自己位置推定におけるVPS活用Ver2
」として開発したVPS「C*(C-STAR)」の追加開発を行い、3D都市モデルと光学カメラ画像を組み合わせた自己位置推定精度をさらに向上させる。また、新たにスマートフォン向けに最適化されたVPSを開発することで、スマホ向けアプリ等における有用性を検証する。

実現したい価値・目指す世界

自動運転システム等に用いられている自己位置推定技術には、GNSS、LiDAR、速度計、ジャイロスコープ等の各種センサや、3Dベクトルデータ、3D点群データ等の様々なデータが活用されており、一定の実用水準にあるものの、使用されるLiDAR等の機器は高額なものが多く、また、必要となる高精度なデジタルマップの作成コストも高いため、様々な用途に導入しやすい状況には至っていない。また、GPSはビルが立ち並ぶ都市部や、屋内では精度が低下するといった問題もある。そのため、あらかじめ作成した三次元マップデータと画像を照合することで環境に左右されず自己位置を推定することができるVPS技術が着目されている。

2022年度の開発「自動運転車両の自己位置推定におけるVPS活用Ver2」では、安価、簡易、安全、スケーラブルな自動運転システムの実現を目指し、産業技術総合研究所から提供された「C*」をベースに、3D都市モデルと光学カメラ画像を組み合わせたVPS技術の開発を行った。その結果、一定の条件下における自己位置推定には成功したものの、低速走行時の自己位置推定精度の低下やレンダリング処理の遅延等、サービス実装に向けた多くの課題が判明した。特に初期位置推定及び自律走行時における継続的なトラッキングに関する改善の必要性が明らかとなった。

今回の実証実験では、3D都市モデルを活用したVPS技術の確立と、社会実装に向けた汎用性の拡大の2つの観点で開発を行う。

1つは昨年度の追加改修として、車両向け自律走行システムの高度化を目指す。具体的には、昨年度開発した「C*」の精度向上を図るため、自己位置推定結果をフィードバックすることで自己位置探索の効率化を検証した。また、Kudan株式会社から提供を受けたVPS技術である「KdVisual」を活用し、両VPSを最適に組み合わせることで自己位置推定の精度とトラッキング機能の安定性の向上を目指す。

2つ目はスマートフォン向けのアプリケーションとして利用可能なVPS技術の開発を目指し、プレティア・テクノロジーズ株式会社が開発するPretiaVPSをベースに、3D都市モデルを活用した自己位置推定システムを開発する。具体的には、3D都市モデルから生成した点群マップと、スマートフォンで撮影したカメラ画像から生成した点群マップとを比較し、自己位置を推定するシステムを開発する。さらに、利用者の移動量に応じた自己位置のトラッキング機能を構築することで、コンシューマー向けコンテンツの提供に利用可能な速度及び精度の担保を目指す。

これらの開発により、3D都市モデルとカメラ画像を組み合わせたVPS技術を確立することで、3D都市モデルとスマートフォンなどの広く普及し低コストな機器を利用した高精度な自己位置推定が可能になり、都市内のモビリティの自動運転やXRなどのエンターテイメント用途、さらにデジタルツインとの接続など、3D都市モデルを活用した新たなソリューション開発につながることを目指す。

対象地域地図(2D)静岡県沼津市
対象地域地図(3D)静岡県沼津市

検証や実証に用いた方法・データ・技術・機材

■ 車両向けの自律走行システム

1つ目の車両向けの自律走行システムは、昨年度「C*」をベースに開発したシステムに「KdVisual」という新たなシステムを追加することで精度、処理速度、トラッキングの継続性の面で機能高度化を目指した統合的な自己位置推定システムを開発した。

今回新規で追加した「KdVisual」は、主に倉庫内の自動搬送ロボットやドローンへの適用を想定したカメラ画像ベースのVSLAMシステムである。通常、VSLAMではカメラ画像を取得し、VSLAM用のマップを作成して自己位置推定に用いるが、3D都市モデルを活用したVPSの実現を目指す今回の実証実験では、VPSマップ作成のために入力する実写画像の代わりに、Unity上でCityGML形式の3D都市モデルをレンダリングした画像を入力し、「KdVisual」のSLAMモジュールを用いて対象エリアの3D点群データを生成することで、三次元位置情報と特徴点情報を持ったマップデータを作成した。走行実証時には、現実世界のカメラ画像から取得された特徴点のベクトルデータを3D都市モデルから作成したVPSマップデータが持つ特徴点と照合し、類似性があると判定されたVPSマップデータ上の特徴点の三次元位置情報をもとに現実世界のカメラ位置を算出することで自己位置推定を行った。
さらに、今回の実証実験では、「C*」と「KdVisual」の両システムを同時稼働することで双方のシステムから座標を取得し、カルマンフィルタと呼ばれる2つ以上の位置推定システムから得られた座標軸を組み合わせて、再度対象物の位置算出を行うアルゴリズムを活用することで、現在位置の高精度な推定と、安定的にトラッキングが可能なシステムを構築した。
「C*」は、入力画像全体の類似性をもとに自己位置推定する仕組みのVPSであるのに対し、「KdVisual」は、特徴的な点を抽出してあらかじめVSLAMで作成したデータベースとマッチングして自己位置推定する仕組みである。このため、「C*」では特徴点が少ない場合でも自己位置推定できるが、実際の位置に近い初期位置を別の方法で与えなければならない。一方、「KdVisual」では対象エリア全体のデータベースからマッチングを行う仕組みとなっているため初期位置入力が必要ないが、位置精度が対象となる地点に対する特徴点の有無に依存する。両者を組み合わせることで、「KdVisual」で大まかな位置を推定し、「C*」でより精度の高い自己位置推定を行う多段階の仕組みや、両者の推定座標を統合してより確からしい座標を求める処理により、二方式を相互補完的に運用することを可能とし、自己位置推定の精度を高めることを目指した。

また、これらのシステムの状態を一元的に可視化するモニタリングシステムとして「Status Display」を開発した。「Status Display」は、3D都市モデルから作成した三次元マップをベースに、現実世界のカメラ画像、これと比較した際のローカライズの結果、トラッキングの状況を確認できるステータスウィンドウ等を備える。具体的には、ROS Sharpというライブラリを使用し、稼働している双方のシステムからの自己位置推定した結果をROSメッセージで取得することで走行ルート上にオブジェクトとして描画する仕組みを開発した。さらに、各システムから得られた座標や、システム自体の稼働状況を自己位置推定の結果のオブジェクトと併せて同じ画面上で確認可能なインターフェースとして構築し、VPSを用いた自己位置推定精度や速度をリアルタイムな評価を可能にした。

これらのシステムを活用し、昨年度同様に走行する車両に搭載したカメラからの入力画像による自己位置推定を行い、課題となった位置推定の精度向上や自律走行時における安定的なトラッキングの継続の実現を目指した。

■ スマートフォン向けのアプリケーションとして利用可能なVPS技術の開発

2つ目のスマートフォン向けのアプリケーションとして利用可能なVPS技術の開発では、PretiaVPS (プレティア・テクノロジーズ株式会社)をベースに、3D都市モデルから生成した点群と、スマートフォンで撮影したカメラ画像からリアルタイムに生成した点群の双方を対応付けすることで自己位置推定を行うシステムを構築した。

PretiaVPSは、スマートフォンの3Dスキャナアプリで空間をスキャンして作成した点群を空間マップとし、別途スマートフォンから取得した画像情報を点群化して空間マップとマッチングさせることで自己位置を推定する仕組みとなっている。
これに対し、今回の実証実験では、3D都市モデルを空間マップとして使用することで事前の3Dスキャンを不要とすることを目指した研究開発を行なった。
具体的には、まずPLATEAU SDK for Unityを用いてCityGML形式の3D都市モデルを読み込み、対象エリアの仮想空間を生成した。次に①Unityカメラで撮影して出力したPNG形式の画像ファイルと、②スマートフォンで現実世界を撮影したカメラ画像をもとに、VPS用の点群データに変換する技術であるSfM(Structure from Motion)を用いて二種類のJSONファイル形式の点群を出力した。

次に、2つ以上の点群を単一の座標系に統合するPoint Cloud Registration技術を応用し、二種類の点群をそれぞれ一定の領域で切り分け、切り分けられた点群の領域同士の位置合わせを行うICP(iterative closest point)アルゴリズムを適用することで、双方の点群データに位置情報の対応関係を持たせた。ICPアルゴリズムは異なるデータセット間の三次元点群に対して位置合わせを行う際に用いるアルゴリズムであり、基準となるデータが持つ点群データに対して入力された点群データを重ね合わせ、2つの点群間の距離が最小となるためにはどの点同士を対応させるべきかということを判断し、マッチングすることが出来る。このように、カメラ画像をもとに生成した点群を再処理し、3D都市モデルから生成した点群とマッチング可能とする機能を「点群to点群対応化」機能として開発した。

「点群to点群対応化機能」の概要

これらのシステムを活用するプラットフォームとして、一般ユーザーが利用するスマートフォン向けサービスを想定し、ARナビゲーションアプリを開発した。具体的には、プレティア・テクノロジーズ株式会社が所有するクラウド上に「点群 to 点群対応化機能」を構築した上で、スマートフォンのカメラ画像から出力された点群の座標をリアルタイムに解析し、3D都市モデル上の座標情報を取得することで利用者の自己位置推定が可能なシステムとなっている。この自己位置推定された利用者の位置情報をもとに、利用者がスマートフォンで撮影している画面に対して、店舗のポップアップや移動ルートを表示するARナビゲーションアプリとして構築することでVPS技術の有用性を検証できる仕様を整えた。

検証で得られたデータ・結果・課題

■ 車両向けの自律走行システム

1つ目の車両向けの自律走行システムについては、「C*」と「KdVisual」の二つの異なるアルゴリズムのVPSシステムを「推定位置連携アルゴリズム」で結合したシステムを実車両に搭載し、実証場所である沼津駅から沼津港までの約2㎞の道路で継続したトラッキング及び位置精度の検証を行った。
実証の準備として必要なVPSマップデータは、「C*」と「Kdvisual」でそれぞれ作成した。「C*」についてはPLATEAU SDK for Unity を用いてCityGML形式の3D都市モデル(建築物モデルLOD3・道路モデルLOD3・都市設備モデルLOD3等)を用いてUnityに読み込み、通常の画像と各画素の三次元位置をエンコードするシェーダーで描画した画像を表示するプログラムを作成し、これを位置推定の参照データとして用いた。
「KdVisual」についてもPLATEAU SDK for Unityを用いてCityGML形式の3D都市モデルをレンダリングし、その結果をROS(Robot Operating System)を使用してKdVisualに入力することでマップを作成した。また、実際の現実世界の画像の入力に使用するカメラには、C*には昨年度と同様にスマートフォン(Google Pixel6)のカメラ画像を使用し、KdVisualではRealSense D455カメラとTIER IV C1カメラを使用している。

今回の実証実験では、C*とKdVisualが補間しあうことで位置推定の精度向上や継続性を高めることを意図していたが、結果としてC*の位置精度は昨年と同様5m前後の誤差が発生し、KdVisualはローカライズが出来た場所は全体の区間の一部に限られ、またローライズした場合も誤った位置を自己位置推定していた。そのため双方の自己位置を統合した推定位置連携アルゴリズムの動作を確認できなかった。

原因分析のために、走行時に搭載した高精度RTK-GNSS受信機の座標(自動運転車両の自動運転システムが認識している座標)と、本ユースケースで開発した自己位置推定システムの出力座標を比較した。
KdVisualの動作状況を分析すると、3D都市モデルから作成したVPSマップと現実世界のカメラ画像との特徴点マッチングが出来ていないことが確認でき、またマッチングした場合でも誤った場所の特徴点同士を組み合わせている状況が見られた。この原因として、3D都市モデルのレンダリング画像と現実世界のカメラ画像では、3D都市モデルのテクスチャと現実世界における建物の側面外観の乖離や、3D都市モデル上で再現されていない都市設備や植生などのディテールが異なることから特徴点ごとの特徴量の乖離が大きく、一致判定をすることが出来なかった。「KdVisual」は画像内の特徴点に着目し周辺のピクセルの明度の差やパターンを分析し特徴量を算出している。そのため、レンダリング画像の特徴点としてメッシュのエッジやテクスチャのコントラストのはっきりした部分を抽出する傾向があるが、レンダリング画像と実写画像の比較では、明るさやコントラストの違いからマッチングに必要な類似性を見つけることが出来なかったと考えられる。一方で「C*」は局所的な類似性ではなく大域的な類似性をもとに判別することから、おおよそ似通った画像であればある程度の自己位置推定は可能となるため、この仕組みの違いが、今回の結果の差異につながった。

本システムを用いたVPS技術を改善するためには、アルゴリズムの高度化によるVPSマップデータと現実世界のカメラ画像のマッチング精度の向上はもとより、その前段階としてUnity上に読み込む3D都市モデルのレンダリング画像をより現実世界に近づけるための処理が必要だと考えられる。具体的にはレンダリング時に画像処理による影の削除やコントラスト・明度の調整など画像データ自体を高精細化するための機能を追加することでVPSマップデータと現実世界のカメラ画像の特徴量の乖離を小さくすることが可能となる。

車両向けVPS技術の実証で使用した自動運転車
カメラ、RTK-GNSS端末などの搭載の様子
自動運転車内でシステムを稼働させている様子
システムのモニタリング用画面(左上:「C*」の位置推定処理結果、左下:カメラ画像表示、右上:「KdVisual」の位置推定処理結果、右下:「C*」レンダラー)
Status Display動作画面とスマートフォン上で動作する初期位置設定アプリの画面

■ スマートフォン向けのアプリケーションとして利用可能なVPS技術の開発

2つ目のスマートフォン向けのVPS技術実証では、ARアプリケーションに本システムを搭載し、コンシューマー向けコンテンツに適した自己位置推定の処理速度や精度の有用性検証を行った。具体的には現実世界を撮影したカメラ画像からVPSによる自己位置推定を行い、スマートフォンの画面内に店舗情報などを表示させ、その表示までの時間や相対的な位置のズレを測定した。

車両側と同様のルートを検証エリアとして、LOD3の3D都市モデルが整備されているエリアのうち10ヶ所を選定し、スマートフォン向けのARアプリケーション上で3D都市モデルを用いて正しく自己位置推定が行えるか、表示されるARコンテンツの位置精度やARコンテンツ表示までの時間を用いて定量的な自己位置推定の評価を実施した。評価を実施する10ヶ所の選定においては、画像をもとに位置情報をVPSの特性から得意とする特徴的な外壁を持つ建物の周辺や、逆に苦手とする、特徴の少ない建物、一定の規則的な模様の外壁を持つ建物の周辺、周辺環境の変化が激しいポイントなどを基準に選定した。

実証を行うにあたり評価の目標値として、従来の事前に現場での専門的なスキャンを必要とするVPSを用いたARコンテンツの表示精度(位置誤差1m程度)や処理時間(10s程度)を参考に、同等の表示制度及び処理時間を目標値として設定している。特に表示精度については、並行移動のみではなく、回転方向にもズレが発生する場合があるため、選定した各エリアにおいて定点的な2ヶ所の位置誤差を算出し、その平均値をそのエリアにおける位置誤差とした。なお、今回の実証実験で用いるARコンテンツは、将来的に歩行者やラストワンマイルモビリティなどを対象としたARナビゲーションとして利用することを想定し、約10名の参加者にアンケートを実施することで、定性的な技術の有用性についても評価を実施した。

今回の実証実験の結果、「点群to点群対応化機能」において一部手動による補正は実施したものの、定量評価ではARコンテンツの表示精度では10ヶ所中8ヶ所、処理時間では10ヶ所全てで目標値をクリアすることができていることを確認した。ARコンテンツの表示精度において目標値をクリアできなかった2ヶ所は、一定の規則的な模様の外壁を持つ建物の周辺エリアや、車の出入りなどの影響で自己位置推定を実施する外部環境が流動的に変化する場所であり、大きい誤差では1.5m以上の位置ずれが発生した。しかし、VPSが視覚情報を元に自己位置を特定する性質上、規則的な模様の羅列が続くエリアでは視覚的な特徴が捉えづらいほか、車の出入りなどにより外部環境が流動的に変化する場所は、事前に保持している点群との差分が大きくなるため、従来の事前に現場での専門的なスキャンを必要とするVPSでも高精度での自己位置推定が見込めないエリアと言える。つまり、3D都市モデルを利用した今回のシステムにおいて、従来の事前に現場での専門的なスキャンを必要とするVPSと比較しても遜色ない結果を得られたと考えられる。

また、ユーザービリティの検証として、6名の参加者を対象として定性的なアンケートを実施し、開発したVPS技術を用いたARナビゲーションの位置精度や表示速度が利用者視点で有用であるかを確認した。結果として利用者視点ではコンテンツの位置精度や処理時間を重要視するものの、今回設定した目標値(ARコンテンツの表示位置誤差1m以内、処理時間10s以内)を超えるものではないことが確認できたため、VPSの処理データに現実の空間の代替として3D都市モデルを利用し簡易的に高精度なVPSを実現できる可能性を十分に示すことができたと言える。一方で、アンケート結果に焦点を当てると、精度よりも処理時間に関心が集中しており、快適なユーザービリティが担保されているかということが重要あることがわかった。今後の課題点としては、今回一部手動による補正を実施している処理を完全に自動化できるよう「点群to点群対応化機能」を改善することのほか、VPSとして欠かせない「ユーザーによる自己位置推定のためのスキャンオペレーション」の負荷を減らしていくことが挙げられる。

スマートフォン向けVPS技術の現地実証
蕎麦屋の前に表示されたそばのアイコン – 経路上の店舗をわかりやすく通知
実際の建物にPLATEAUの3D都市モデルと投影
位置精度評価の様子

最後に、車両向けシステムとスマートフォン向けシステム2つの観点から、VSP技術の比較評価を実施した。車両向けシステムは3D都市モデルを直接マップとして利用するほか、車両での自動運転を想定し、Visual SLAM技術をベースとしたリアルタイム性を重視したシステムであるのに対し、スマートフォン向けシステムは歩行者やラストワンマイルモビリティなど停止を許容される状況下での利用を想定し、SfM技術をベースとした精度を重視するシステムとなっている。そのため、精度のみで双方の技術を比較・評価することは難しいが、参考として本実証における2つのVPS技術(車両向け・スマートフォン)についてVPSの位置精度誤差を比較した。
結果として、精度は車両向けの方が5m前後、スマートフォン向けの方が1m程度と一定の差分が発生した一方で、双方ともに精度が低い結果となったエリアは共通していた。これは、両者ともにVPSという視覚的な情報を元に位置情報を求める技術を活用していることによるものと言えるため、事前に現場での専門的なスキャンを必要とする従来のVPSでも同様の課題を抱えている。つまり、現時点で全ての環境においてVPSのみを用いて高精度で自己位置推定を実現することは難しく、他のセンサ情報などの追加情報を与える、もしくは用途や利用環境を限定することが重要である。一方、今回の結果から適切な用途、環境を特定することができれば、GNSSなどの既存の位置情報と比べると高精度な自己位置推定が実現できるため、それぞれ今回の実証実験で開発したVPS技術精度や処理性能を向上させるとともに、既存の自己位置推定技術を組み合わせて使用していくことで社会実装に繋がると考えられる。

参加ユーザーからのコメント

スマートフォン向けのアプリケーションとして利用可能なVPS技術の開発

・多少の表示位置の誤差はあるが、およそ正しく表示されていた。また想定よりも処理速度が速く、経路案内への利用を想定しても違和感ない程度だと思う。
・複数回スキャニングが必要なのであれば、1回あたりにかかる時間は10秒以内が望ましい。
・10秒から20秒位が許容範囲かと思う。おそらく30秒以上かかるとユーザーはこのアプリケーション活用を諦める可能性がある。
・稀に時間がかかるケースがあった。リロードやリトライの指示だしやユーザーインタフェース上で表示があるとよい。
・更なる発展形のアプリケーションとして、キャラクターなどが音声でアナウンスをして、お店の案内をするなどの付加機能を開発すれば視覚障害の方や初めて訪れた人たちに向けた新たなサービスになりそうだと感じた。
・写真の読み込み時間や精度の向上など課題はあるが、都市に付加価値を持たせる新しい取り組みとして期待できる。

今後の展望

今回の実証実験では、3D都市モデルを活用したVPS技術の確立と社会実装に向けた汎用性の拡大という2つの観点で、昨年度開発した「C*」に「KdVisual」を組み合わせた車両向け自律走行システムの高度化と「PretiaVPS」をベースとしたスマートフォン向けのアプリケーションとして利用可能なVPS技術を構築した。

車両向け自律走行向けシステムについては、事前に現地に訪問の上、多数の画像を撮影してマップを作成する必要があるというVPSの課題に対して、ゲームエンジン上でレンダリングした3D都市モデルの画像からVPSマップを作成することは成功したが、そのマップを活用して現実世界のカメラ画像とのマッチングによる精度の高いローカライズは困難であった。

3D都市モデルを活用したVPS技術の確立のためには、既存のVPSアルゴリズムを流用するのではなく、新規に3D都市モデルに適したVPSアルゴリズムを開発することが必要と考える。例えば、3D都市モデルのレンダリング画像と現実世界のカメラ画像を教師データとして準備し、SuperPointやLightGlueのような最新の特徴点抽出マッチングアルゴリズムを機械学習させ、特徴点の照合に必要なパラメーターの選定や閾値を算出することで3D都市モデルに特化したVPSアルゴリズムの確立が可能になると想定される。新たなVPSアルゴリズムにより、高精度かつ安定した自己位置推定が実現されれば、3D都市モデルが整備されている場所全域で使えるVPS技術となり、モビリティやXR、デジタルツインの基盤など、デジタルとリアルを融合する基盤技術として広範囲の応用が見込める。

一方で、スマートフォン向けのアプリケーションとして利用可能なVPS技術の実証実験では、PLATEAU SDK for Unityを基にPoint Cloud Registration技術を応用した座標変換マトリクスを出力する「点群to点群対応化機能」を開発した。一部手動操作が必要ではあるが、自動化を見据えた対応付けの仕組みを構築でき、定量的・定性的にも十分な性能のVPS機能が実現できた。

更なる実用化に向けては、精度や性能の改善はもとより、「点群to点群対応化機能」の完全な自動化や、実際にナビゲーションとして利用を想定し、ユーザーエクスペリエンスの向上に向けて、LOD4やBIMデータと連携し、屋内・屋外などの利用可能範囲の拡大が必要になると考えられる。これらの機能改善により、将来的には屋内外をシームレスに案内することが可能な一般ユーザー向け観光ナビゲーションや、ビジネスシーンにおいてはラストワンマイルモビリティの高度化を期待することが可能となり、移動や配送における3D都市モデルの利用用途拡大を目指す。