モビリティ開発の速度を上げる「リアル×仮想」(前編)

最先端のゲームでは、実写と見まごうクオリティの映像表現、物理シミュレーションが可能である。デンソーは、こうしたゲームの開発技術をモビリティのシステム開発の現場で活用しようとしている。前編で紹介するのは、精密に再現された仮想環境における運転支援システムのシミュレーション。これによって、モビリティのシステム開発で求められる膨大なテストを大幅に効率化できる手法を検討している。

小口 貴弘
AD&ADASシステム技術部
幼少時代からゲームやプログラミングに慣れ親しむ。学生時代は量子力学やカオスシミュレーションを専攻。
新卒でゲームメーカーに入社し、エンジニアとして15年勤めたのちデンソーに転職。前職で培った仮想環境での研究開発技術を活かし、高度運転支援システムの先行開発などに従事。

最先端のゲーム開発技術をモビリティのシステム開発現場で活用する

運転支援システムを開発するために、ゲームの開発技術を活用されているとお聞きしました。モビリティのシステム開発を手がけるデンソーでゲーム開発技術が使われているのはとても興味深いです。

小口:私は前職でゲーム機の開発に携わっていました。GPUの設計やCG・画像処理の研究開発を行っていたのですが、次第にCGを実社会で活用したいと考えるようになりました。やがて世間で運転支援システムの開発が盛んになり、自分がこれまでに得た技術を活用することができるのではと思うようになりました。そこで、2017年にデンソーへ転職。CGやGPUの技術を組み合わせ、高度運転支援システム(以下、ADAS)などの開発で活用するための仮想環境の開発を行っています。

ADASのアプリケーション例
ADASのアプリケーション例

カーシミュレーションゲームを開発するエンジニアには自動車好きが多いと聞きますが、小口さん自身はいかがですか?

小口:趣味で海や山に行くことが多く、その際には自らハンドルを握ってドライブを楽しんでいます。競技用の車両を購入してレースに出場する領域には、踏み込んでいません(笑)。ただ、モビリティの挙動を根本から理解したいと考え、テストコースドライバーの社内ライセンスを取得しました。講習では、ブレーキングで0.5Gや0.7Gの圧を掛けられるようにしたり、バンク(サーキットのコーナーなどにつけられた傾斜)でほぼ真横になって高速走行したりと、テストコースで約2ヶ月かけて特訓しました。教官はモビリティの仕組みや挙動についてもしっかり指導してくださるので、理解が深まりました。

それはすごい!

小口:一番の収穫は、仮想環境でCGの研究・開発をするだけではなく、実際にモビリティを運転して理解を深める重要性に気づけたことです。この経験で運転技術に対する理解がかなり変わりました。

そもそもなぜゲーム開発技術を、モビリティのシステム開発に用いようと考えたのですか?

小口: ADAS開発の課題を解決できるのではないかと考えたからです。
駐車支援や自動駐車を例に取れば、クルマを狙った場所に停めるためには適切な駐車場所の検出を行なわなければなりませんし、危険な状態になったら停止するようにしなければなりません。こうした認知機能を開発するためには、駐車環境についての膨大なデータを使ってAIに学習をさせたり、システム検証を行うことが必要です。機能や車種が増えるごとに、収集すべきデータも増えていきます。

こうしたデータは実際の車両の車載センサーから収集しますが、それにはいくつか課題があります。安全を確保するために、さまざまなセンサーデバイスからデータを収集しようとすると、どうしても時間がかかってしまうのです。

ゲームの開発技術を活用すれば、現実感のある画像をリアルタイムに生成でき、人間と機械のインタラクション(相互作用)も可能です。また、実車の実験では正確な計測を行う手間がかかりますが、シミュレーションであれば必要なデータをいつでも簡単に取り出すことができます。

ゲームの開発技術を用いた仮想環境を使うことで、ADAS開発に必要なデータの収集効率を大幅に挙げられることが見込まれます。

その仮想環境の構築には、Epic GamesのUnreal Engineを使われているそうですね。

小口:開発を効率化するために、さまざまな機能が含まれているゲームエンジンを使うことにしました。Unreal Engineは、アセットデータを活用して高品質な表現で仮想環境を素早く構築できる・ソースコードが公開されている・プラグインで機能を拡張できる・RHI(Render Hardware Interface)という仕組みを使ってコマンドによる解析や最適化がおこなえるなど、エンジニアとして魅力的なプラットフォームです。

仮想環境のシミュレーションで開発を効率化する

どのようにUnreal EngineをADAS開発に活かしているのですか?

小口:現在進めているプロジェクトは、大きく分けて3つあります。

1つ目は「システム検証」への活用です。実環境すなわちリアルでの検証に、仮想環境での実験を加えることで、実車試験のシステム検証・評価にかかる時間や人手の削減を目指しています。
2つ目は「センシング機能の開発」への活用です。これは仮想環境を用いて、ADASのセンシング機能のアルゴリズムを、深層学習からシステム検証まで効率的に開発することを目指しています。
3つ目は、「HMI機能の開発」への活用です。例えば、駐車支援システムのユーザーインターフェイス開発の研究事例があります。

ADASにおける仮想環境の活用先
ADASにおける仮想環境の活用先

研究・開発では、どのような機材を使われているのですか?

小口:高性能なGPUを搭載したパーソナルコンピューター上でUnreal Engineを動かしています。特殊な機材でなくても開発ができるのは、ゲームエンジンの強みです。

まず1つ目の「システム検証」への活用について、仮想環境での実験とは、いわばハイエンドなカーシミュレーションゲームをつくることになるのですか?

小口:そうなります。ただし、何がどの向きでどのくらいの速度で動いているのかなどを確実に把握し、仮想環境で再現・システム検証することが目的ですから、ゲームとは方向性が異なります。

現在、リアルではどのように技術の評価試験をおこなっているのでしょうか?

小口:複数のセンサーを搭載した試験車をさまざまな公道やデンソーのテストコースで走らせて、システムの品質評価に必要なデータを収集します。走る・曲がる・止まるという動作を実車で徹底的に検証します。テストコースに用意された性能評価施設では、登坂路・歩行者の飛び出し・夜間・雨などの走行環境を再現することができます。
こうした実車による走行試験のデータに加え、公道やテストコースでは再現しにくい走行環境を仮想環境で網羅的に検証するのがプロジェクトの目的です。

仮想環境で得られた結果をさらに実車で確認してシステムに必要なロジックをつくり込めば、安心・安全を担保することができます。仮想環境を活用して問題を洗い出すまでの反復時間を短くすることで、開発を加速できると考えています。

試験車には多数のセンサーが搭載されている
試験車には多数のセンサーが搭載されている

かなり複雑なテストを実車で行われていますが、それをどのように仮想環境で再現するのでしょうか?

小口:仮想環境での技術の評価試験には、外界モデル・センサーモデル・車両運動モデルが必要になります。
外界モデルというのは、ゲームでいうシーンに当たります。市街地や駐車場そして自宅周辺などのロケーションモデルと、ポールや信号機などのオブジェクトモデル。それに時間・天候変化を掛け合わせ、バリエーションを生み出すことができます。ゲームスタジオの株式会社ORENDAに協力いただき、この手法を用いた駐車場のシーンをUnreal Engine上に構築しました。

実際のシーン
実際のシーン

センサーモデルでは、リアルの試験車に搭載しているセンサーを仮想空間で再現しているのですか?

小口:仮想環境上の試験車では、用途に応じ適切なセンサーモデルに差し替えて検証・評価しています。例えばリアルタイムのカメラ入力を必要とする場合には多少精度を落としても、1秒間に30枚以上の画像を生成しなければなりません。一方、リアルタイム性の必要がないセンサーの検証・評価であれば複雑な効果を加えて、精度の高いシミュレーションを行うといった具合です。
車両運動モデルに関しては、Unreal Engineの車両モデルをカスタマイズして使っています。低速の自動駐車を想定したもので、重心の設定とサスペンションをシミュレートしています。

測距センサーの種類
測距センサーの種類

検証内容によっては、センサーモデルのつくり込みも課題になりそうですね。

小口:実現したい機能によって、要件は変わってきます。例えば、ソナーセンサーはオブジェクトが凸型、凹型かによって音波の反響が変わってきます。ソナーセンサーのエンジニアからはそうした状況も精密に再現してほしいという要望がある一方、システムとしては複数のセンサーで安全を担保するといった考え方もあります。担当部署ごとに求める要件は違うので、細やかな調整が必要です。

リアルと仮想のテストを擦り合わせる

仮想環境での技術の評価試験は、どのように行っているのですか?アーケードのようなステアリング付きドライバーシートやヘッドマウントディスプレイを使ったりしているのでしょうか?

小口:それも試したことはありますが、現在行っているのは実車と同等品質の運転走行データを得られるようにすることです。例えば、数台のクルマが走っている状況があって、その間に自車を走らせた時に「実車と同じ経路を走っているか?」。人が飛び出してきた時には、「実車の自動ブレーキと同じように作動するか?」。そうした部分を検証しています。

実車を使ったテスト結果と仮想環境でのテスト結果は、どのように擦り合わせるのでしょうか?

小口:完全に同一条件にすることは困難なのでリアルと仮想の結果を100%一致させることはできませんが、独ケンプテン応用科学大学のシュナイダー教授が進めている、現実と仮想の差異を定量評価する試みを参考にしています。

基本的な流れとしては認識器※を固定して、現実と仮想環境両方の画像を入力、どれだけ似ているかを定量的に評価します。人やモビリティの検出AIに関してはIoU(Intersection over Union)などの指標があるので、こうした指標を基に何%の確率でモビリティと認識しているかなどを調べて比較するわけです。

また、自動駐車などで使われる自己位置推定の技術では、途中段階の特徴量パラメーターの結果が現実と仮想の結果が完全に一致しなくても、結果として推定結果があっていれば問題ありません。そうした用途では、時系列データ等を使って多少のずれを許容し、マクロな結果について差分を評価します。

いずれにせよ、どんなにコストをかけて精度を高くしても、差異は必ず生じます。生成する画像のすべてを現実の画像と比較していたのでは、データを効率よくつくるという目的が達成できません。差異をどのように捉え、どのような用途なら使えるか。そうしたモデルの定義と、現実と仮想の比較事例を増やしていくことが重要だと考えています。

※:ディープラーニングなどの機械学習において、分類や認識を行うための判断基準を学習した(ソフトウェアを含む)機械のこと。

仮想環境では天候などをシミュレートできますが、それらと実車のテスト結果はどのように比較するのでしょうか?

小口:デンソーのテストコースには雨を再現できる施設があるので、それを使ってリアルでもシーンを再現します。
ただ、シーンや機能の組み合せは無限にありますから、目的に応じてリファレンスとして使えるシーンを適切に選定する必要がありますね。
ゲームとは異なり、モビリティは人の命を預かるものです。そのため、リアルと仮想環境を組み合わせたADAS開発について、仮想環境のシミュレーションの試行錯誤と技術の活用に向けた検討をしています。これからのADAS開発のあり方を議論しているところです。(後編に続く