15年間ゲーム開発の仕事をしたのち、デンソーへ転職

小口貴弘氏:AD&ADASシステムとゲーム開発技術の融合についてお話ししたいと思いますが、まずは自己紹介をさせていただきます。

前職はゲーム業界で、ずっとゲーム機の開発の仕事を15年間していました。それからデンソーに転職して、今はAD&ADAS開発に携わることをいろいろやっています。

前職のさまざまなノウハウをまとめて、GPUを使ってどうCGを効率的に出していくかをテーマにした『GPU最適化入門』という本を2021年に出しました。ボーンデジタルさんから発売中です。近々、専門学校などで使っていただけたり、翻訳も進んでいたりするので、GPUを使った効率的なCGを作りたい方はぜひ手に取ってみてください。

デンソーの会社紹介

本日は、まず簡単にデンソーの会社紹介と、AD&ADASシステムの概要についてお話しします。AD&ADASですが、ここではADはAutomated Driving、自動運転。ADASは、Advanced Driver Assistance System、高度運転支援システムの略と定義しています。

これらの概要を話したあとに、システム検証、センシング開発、HMI機能開発、3つの事例を持ってきたので、そこでCGをどう使っているか、仮想環境をどのように使っているかを説明したいと思います。

まずは、会社の説明をいたします。詳細はホームページに記載しているので割愛しますが、デンソーは愛知県刈谷市にあり、2021年3月31日のデータでは、資本金が1,875億円、売上収益が連結で4兆9,367億円です。子会社は、世界各地に200社ぐらいあります。

今回の仮装環境を活用したトライアルは、服部(服部陽介氏)さんと関川(関川雄介氏)さんと一緒に行ったのですが、私は日本橋の室町で、服部さんが愛知県の刈谷で勤務しています。関川さんは渋谷のデンソーアイティーラボラトリというところで勤務しています。デンソーグループは東京地区にもたくさん会社があります。ちなみに服部さんは今はJ-QuAD DYNAMICSさんという別の会社におります。

AD&ADASシステムの概要

自動車業界ではCASE(Connected、Autonomous、Shared & Services、Electric)と呼ばれる技術の潮流があります。コネクティッド、先進安全/自動運転、シェアリング、電動化などいろいろな取り組みがある中で、今日のテーマは先進安全/自動運転です。デンソーが注力している分野の1つです。

では、さっそくシステム概要の説明に入ります。AD&ADASのアプリケーションはこの図に集約されていますが、左側から、あると便利な「いつもの安心」で、右側に行くに従って「もしもの安全」。「もしもの安全」は事故が起こった時に安全を担保していくというところと、「いつもの安心」は、あるといろいろ便利になる機能ですね。

(スライドを示して)今回は、左下の自動駐車についての事例を持ってきました。また、「Adaptive Cruise Control(ACC)」といって前を走るクルマがいる場合、車間距離を保ちながら自動的に追従をしていく機能や、レーンキープアシストといってクルマが走行する車線を維持できるようステアリング操作をアシストしてくれる機能ですね。

それから、もしもの安全というところでは、エアバッグや、ポップアップフードなど、安全を確保してくれるものがあります。

AD&ADASシステムの全体像の中で、いつもの安心を目指した運転を支援する機能が拡充していて、今非常にデータが足りない状況になってきています。そこの詳細についてお話ししていきます。

AD&ADASシステムを論理的に示したのが(スライドを示して)この図になります。非常にざっくり言うと、走行環境を外界として入力して、AD&ADASシステムが認知・判断・操作をすることで、自動駐車などの制御を行ってくれるというのを示した図です。

その過程で、ディスプレイやスピーカーなどHMI(ヒューマンマシンインターフェイス)でドライバーに認知をさせて、ドライバーステータスモニター等で、ドライバーをセンシングした結果を戻して、その結果を基に、AD&ADASシステムが動くという流れを、この図では説明しています。

このAD&ADASシステムは、センサーを持っているカメラ、ミリ波レーダー、ソナー、LiDARなどを車載するほかに、自車のみならず、インフラ側ですね。クルマと何かをつなぐ無線通信技術のV2X(Vehicle to X)や、クラウドなどのあらゆるセンサーが関与して、品質を上げていくという取り組みになっています。

仮想環境開発事例その1 システム検証

どういうかたちで仮想環境を使っていくのか、具体的な事例を紹介します。

大きく分けて、3つの取り組みがあります。1つ目はシステム検証、2つ目はセンシング機能開発、3つ目がHMI機能開発です。

システム検証の取り組みを説明するにあたり、まずはシステムの品質保証の考え方について説明します。

従来も、徹底した公道走行で網羅率を上げているのですが、デンソーは日本各地に、特定の環境を模擬した物理的な装置、シーンを持つテストコースを持っているので、そこで、特定の難しいシーンを評価することができます。今回説明する仮想環境は、この両者の隙間を埋めながら、いろいろ加速試験を実施していく位置づけになると考えています。

こちらはテスト車両の例ですが、見ていただくとわかるとおり、センサーがてんこ盛りですね。さまざまなセンサーが付いて、走る・曲がる・止まる。また、評価対象だけではなく、真値計測という正解データを取ってくるために、テスト車両にはリッチなセンサーが付いています。非常に高価で複雑な構成になっています。

このようなテスト車両を使って、実際に公道試験をするのですが、ターゲット車両があってそこを追随するという取り組みから、安全スイッチをボンと押すと停止してくれるという、セーフティーの仕組み。さらに、莫大なデータをハードディスクなどにロギングして、その結果を飛行機で空輸したりなど、現実の実験には非常に手間がかかります。

デンソーには愛知県の額田や北海道の網走にテストセンターがあり、羽田にもテスト路があります。これらは物理的に用意した施設で、決められたパターンのチェックをすることになります。加えて天候変化など、環境変化を組み合わせてチェックすることになります。

現実にはさまざまなシーンがありますが、スライドにあるように、テスト環境では特定の走行シーンを再現しています。

仮想環境を用いることでバリエーションの網羅性を向上する

やはり自動運転やAD&ADASの実現を考えた場合、信頼性を得るにはたくさん検証しなければいけません。

実現のために必要なテスト走行距離については、いろいろな議論があると思いますが、話題になったある例のもと計算すると、100台の実験車で1日500キロ走っても、20万日、つまり550年かかります。さまざまな条件のテスト項目を細かく区切り、それぞれ組み合わせを考えていくとテストすべきバリエーションが膨大になり、さらにそれらをすべて実車を使って一つひとつ確認していく時間を考えると、非常に大変だということが、ここで言いたいことになります。

そこで、本当に安全を担保する、走る・曲がる・止まるという基本はきっちり実車で検証をやりつつ、仮想環境を間に入れていろいろな検証バリエーションをどんどん増やしていき、その結果、網羅性を向上させていくということを目論んでいます。

実際、仮想環境の取り組みは、ドイツをはじめとする欧州などで増えており、「CARLA」とか、「Pegasus-Project」などいろいろな事例がどんどん出てきています。各所で活発ということですね。

走行環境を模擬する外界モデルにおける活用

仮想環境を使う場合、まずは外の走行環境を模擬する外界モデル。それをどう受け入れていくかというところで、センサーモデル。そして、車両にどう適用していくかというところで、アクチュエーター/車両運動モデルという3つのモデルが基本になると考えています。これらをもう少し説明します。

まず、外界モデルからですね。今日はゲーム業界の方も参加されていると思いますが、ゲームだと当たり前のアプローチですね。まず場所を用意して、そこにコーンとか駐車場とか、オブジェクトモデルの要素を組み合わせていろいろなパターンを生み出します。

さらにそこに、時間変化や天候変化など、いろいろな環境変化要因を入れることで、容易にバリエーションの数を増やすことができます。これが非常に強みになると考えています。

実際に、ORENDAさまと協力して制作した映像をご紹介します。「Unreal Engine」と「trueSKY」を使って表現しています。

まず、時間・天候の変化ということで、実際の駐車場を模擬したシーンでは、昼間から夕方へと時間が変化していることがわかると思います。

こちらのシーンではけっこう雨が降ってきた様子を捉えていますが、路面が反射して映り込んでいるのがわかると思います。

次にこちらが立体駐車場のモデルです。実際に、商業施設の大型の駐車場を設計しているところにお願いして、CADからモデルを起こして、実際の自動駐車のシミュレーションに使おうと思って作ったシーンです。お気づきになる方も多いと思いますが、本当の駐車場とまったく同じ看板やレイアウトになっているのがわかると思います。

実際に仮装世界をどう使っていいかというところがやはり課題になります。これは、左側が実写で、右側が仮想になりますね。

SLAM(Simultaneous Localization and Mapping)という画像認識の中間段階の結果を表していて、緑の点で特徴量を図示しています。このあとに、この特徴量を使って、自己位置推定や、マップの作成をするのですが、この中間段階のデータが非常に相似した結果として出ているのが見て取れると思います。

あとは、アセット調整ですね。汚れたコーンが見えると思いますが、ゲームエンジンを使って、パラメーターをちょっと変えると、すごくきれいなコーンに変わります。ゲームエンジンを使うと、こういったバリエーションが非常に容易に作れます。このあたりは、Unreal Engineの標準で付いているエディターですね。

Unreal Engineの機能を使って、ドラッグ&ドロップでマテリアルのいろいろなシーンを容易に作れます。こういったかたちで外界モデルを作って、バリエーションを増やしています。

(次回へつづく)