uc22-043

自動運転車両の自己位置推定におけるVPS(Visual Positioning System)活用Ver2

実施事業者凸版印刷株式会社
実施場所静岡県沼津市
実施期間2022年5月〜2023年1月
Share

3D都市モデルとカメラ画像等を組み合わせたVPS(Visual Positioning System)の実装に向け、精度の高い自動運転車両の自己位置推定システムを構築する。

実証実験の概要

自動運転の実現に向けて官民各主体で多くの研究開発・実証・実装が行われており、Project PLATEAUでも、3D都市モデルを活用した自動運転技術の実証・実装に取り組んでいる。

今回の実証実験では、2021年度に実施した自動運転車両の自己位置推定におけるVPS(Visual Positioning System)の活用に係るユースケースの検証結果で明らかとなった課題に基づき、3D都市モデルと、産業技術総合研究所から提供されているVPS「C*※」(C-STAR)を活用した自己位置推定システムの実用化に向けた開発を実施する。カメラ画像と3D都市モデルをレンダリングした画像とを照らし合わせることにより、車両の自己位置を推定するシステムを開発・検証し、自動運転システムへの活用を見据えたフィージビリティスタディを行う。

※ 産業技術総合研究所が中心となり開発したシステム。参考文献:Oishi+, "C*: Cross-modal Simultaneous Tracking And Rendering for 6-DoF Monocular Camera Localization Beyond Modalities", IEEE Robotics and Automation Letters, vol.5, no.4, pp.5229-5236, 2020.

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

現在の自動運転システムにおける自己位置推定には、GNSS、LiDAR、速度計、ジャイロスコープ等の各種センサーや、3Dベクトルデータ、3D点群データ等の様々なデータが活用されており、一定の実用水準にあるものの、使用されるLiDAR等の機器は高額なものが多く、また、必要となる高精度なデジタルマップの作成負荷も高いため、様々な用途に自動運転システムを導入しやすい状況には至っていない。安価、簡易、安全、スケーラブルな自動運転システムの普及に向けては、3D都市モデルと光学カメラ画像を組み合わせたVPS技術の確立が必要である。

このため、2021年度に実施した技術実証では、3D都市モデルを活用したVPSによる自己位置推定の検証を行い、位置測位のアルゴリズムや3D都市モデルで用いられるテクスチャ情報のあり方等についての課題を抽出した。今回の実証実験では、2021年度に抽出された課題を解決するため、テクスチャ情報だけに依存せず、建物等の地物・形状から生成される特徴も活かすことができる手法を用いて、3D都市モデルに最適化されたVPSの構築を目指す。

利用するVPS技術としては、あらたに産業技術総合研究所から提供されている「C*」を用いる。「C*」は、3Dデータをレンダリングした映像と実際のカメラ映像とをNID(Normal Information Distance)と呼ばれる画像どうしの類似度を指標に照合して自己位置を推定する仕組みとなっており、必ずしも高精細なテクスチャを必要とせず、テクスチャ品質が高くない3D都市モデルでの最適化を目指すことが可能となる。具体的には、3D都市モデル(LOD3)を実際の光源環境に近い状態で高品質にレンダリングし、その映像と実際の車両に設置したカメラから取得した映像とを照合することで位置情報を推定する。

また、今後の社会実装に向けて、VPSで自己位置推定された位置情報と自動運転統合ソフトウェア(ADENU)による位置情報を照合できるようにし、実際の自動運転に用いることができるかを検証する。

対象エリアの地図(2D)
対象エリアの地図(3D)

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

今回の実証実験では、「C*」をベースに開発した「自己位置推定システム」及び自己位置推定結果をリアルタイムで表示する「Status Display」と、これらを自動運転総合ソフトウェア(ADENU)と接続するインターフェースを開発した。実装はロボット・アプリケーションの作成支援ライブラリ・ツール群であるROSを利用した。

「自己位置推定システム」は、チューニングされたC*のVPSアルゴリズムを利用し、これに「独自Renderer」と「初期位置入力プログラム」を付加する形で構築した。入力画像はスマートフォン(Google Pixel 6)のカメラ画像を用いた。

「独自Renderer」は、3D都市モデルをVPS用の3次元地図として使用するためのプログラムである。C*自身もOpenGLを利用したシンプルなレンダリングプログラムを有していたが、これを3D都市モデルに最適化するため、Unityを用いて大容量データの処理、デプス画像及びモノクロ画像の生成、画像に対するシェーディング(光源・陰影)処理などを行う機能を開発した。C*との接続はROS#及びRosbridgeを用いた。

また、C*は任意で設定した初期位置に対してカメラ画像と3次元地図を照合して自己位置推定を行う仕組みとなっており、自己位置推定に失敗した後に復帰する仕組みが存在しなかった。そこで、C*に対し自己位置推定のための初期位置をシームレスに入力する仕組みとして「初期位置入力プログラム」を開発した。「初期位置入力プログラム」は、まずスマートフォンGPSと地形モデル(DEM)を組み合わせて三次元座標を取得し、これをセンサーフュージョンによって補完する。センサーフュージョンでは、IMU及びGPS座標履歴を入力データとしたカルマンフィルタによる移動量推定を行った。さらに、これによって得られた近傍座標を3D都市モデル上のカメラ位置として再現し、取得された画像とカメラ画像の最近値をNID計算によって算出することで、C*に対する初期位置入力の精度を高める仕組みとなっている。

また、「自己位置推定システム」の稼働状況のモニタリング、ログ管理、ADENU との連携等を行うため、「StatusDisplay」を開発した。「Status Display」は4 つの機能を有しており、画面左上は、C*から受け取った自己位置推定結果と ADENU から受け取った自動運転車両の走行位置を、3D 都市モデル上に表示し、画面左下にアプリケーションのログ、画面右上に各機器の稼働状況、画面右下にC*の自己位置推定結果の位置姿勢から3D都市モデルをレンダリングした画像とカメラ画像を表示する。実装は Unity を用い、C*との接続はROS#及び Rosbridge、ADENU との接続には UDP 通信を用いた。

システムアーキテクチャ図
自動走行運転車両・VPS機材
自動走行運転車両車内・VPS画面

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

精度検証は自動走行運転下での自己位置推定と、自己位置推定成功後の継続的なトラッキングの二つの観点で実施した。自己位置の真値としてはRTK-GNSS座標を用いた。

走行実証の結果、「自己位置推定システム」により自己位置推定の実施ができていることを確認ができた。精度としては、自己位置推定座標が真値から2~4mをピークに0~8mの範囲に集中的に分布している結果となった。

また、継続的なトラッキングによる自己位置推定の維持については、走行時は自己位置推定の遅延が発生したり、カメラ画像と3D都市モデルが乖離している場合(モデルがない、障害物が存在する)は自己位置推定が機能しない箇所もある結果となった。具体的には、そうした場所では初期位置入力直後のC*による自己位置推定座標からの変位に走行方向に対する明確な偏りが見られなかった。

「初期位置入力プログラム」によるGPS座標の補完については、カルマンフィルタ(GPS座標履歴等からの速度ベクトル推定)とNID計算探索を段階的に実施することで精度が向上し、「自己位置推定システム」による自己位置推定の成功に寄与していることがわかった。具体的には、各段階における真値からの距離の平均値がスマートフォンGPSの5.98mからカルマンフィルタによる補間で5.69m、NID計算探索で5.25mと漸近的に減少しC*の自己位置推定座標で5.22mとなるなどの結果が得られた。

初期位置入力プログラム
独自Renderer(グレースケールレンダリング画像とXYZレンダリング画像)
StatusDisplay(自己位置推定結果)

今後の展望

オープンデータである3D都市モデルを活用したVPSが実装されることで、3D都市モデルが整備されている地域であればどこでも簡易に自己位置推定システムの活用が可能となり、自動走行運転における自己位置推定のほか、様々なサービスにおけるデジタルツインの基盤としても利用が可能となる。

今回の実証で得られた結果を踏まえると、自己位置推定アルゴリズムの改善・開発、低速走行への最適化、レンダリング処理の改善、処理速度の向上等の施策が有効と考えられる。特に、初期の自己位置推定(ローカライズ)とこれを基礎とした継続的な自己位置推定(トラッキング)に必要なアルゴリズム、入力情報、補完手法の違いなどが明らかとなったことから、それぞれに最適な仕組みを構築することで精度向上を図っていく。