AIを使った完全な自動運転を目指して

「人とAI/人間特性から考える自動運転」がテーマのテックイベントで、先端技術分野で活躍するデンソー社員が、新しいモビリティ社会の実現に向け、人の特性を考慮した自動運転技術の開発やAI研究について語りました。登壇したのは、先端技術研究所 AI研究部 AI応用研究室 室長の伊藤直紀。AIを使った自動運転のために、トラッキングや自由視点画像生成、DNNアクセラレータなどの研究開発を行った事例について紹介しました。

※本記事は、2020年6月9日に開催された株式会社デンソーが主催するイベント「DENSO Tech Links Tokyo #7」の内容を紹介したレポート記事(Logmi)の転載です。

伊藤直紀
先端技術研究所 AI研究部 AI応用研究室
1998年にデンソーに入社し、車載用内製マイコン及び組込みシステムの量産設計から先行開発に従事。2012年から客員研究員としてスタンフォード大学コンピュータサイエンス学科に在籍。2015年から先端技術研究所にてAI技術の車載応用に向けた研究開発のマネジメントを推進。

自動運転の4つのレベルと今後のミッション

私からはAIのR&Dという視点で見た自動運転への取り組みについて紹介させていただきます。
デンソーのADAS(高度運転支援)およびAD(自動運転)システムに向けた取り組みをご説明させていただきますが、これはデンソーだけでなく世の中の流れがこうなってくるのかなというふうにとらえていただければと思います。

まず開発対象を3つの車両に分類しています。1つ目は乗用車、いわゆるオーナーカー。2つ目はトラックのような商用車、3つ目はシェアードもしくはサービスカーと言われるようなタクシーや小型バスです。横軸は、左から右にいくほどAD/ADASのレベル、自動運転の度合いが強いというように見てもらえればいいかなと思います。

そして自動運転の開発レベルを、1、2、3、4と定義しています。予防安全や、ADAS/ADの半分くらいまではレベル1もしくはレベル2と言われるところです。レベル1、2は、基本的にドライバーが主体で運転して、機械がその運転をサポートするようなものです。またレベル3、4となってくると、機械が主体的に運転するんですが、レベル3の場合は機械が運転できないような状況においてはドライバーが交代して運転をするというシステムになります。

レベル4になると、完全な自動運転というかたちで、ドライバーがいないようなもの、例えば小型のモビリティなどをドライバーレスで運転するシステムになります。

現在はレベル1、2の予防安全、例えば衝突回避のブレーキだとか、アダプティブクルーズコントロール、もしくは高速道におけるレーンキープアシスタント等の技術が普及期に入っていると言われています。

今後は、例えば一般道でのレベル2、3であったり、限定区間ではありますがサービスカー向けのレベル4の技術開発が必要になってくると考えられています。私たちの部署は研究開発部隊ですので、こういうレベル3、4をにらんだ要素技術開発に取り組んで事業に貢献していくというのがミッションだと考えています。

現状の自動運転の課題

実際に自動運転の研究をするにあたっては、いろいろと難しいところがあると考えています。例えば、これはセンサの課題になると思いますが、トンネルの出口の逆光であったり、豪雨や濃霧など非常に悪天候の状態でもセンシングしなければいけません。

また、うまくセンシングできたとしても、そのあと物体を検出することになりますが、通常であれば、交通参加者としては車両や歩行者、自転車等があるんですが、場合によっては特殊な車両や動物などが道路の上に存在する場合もあり、こういうものをどう検出するか。もしくは、例えば昨日通っていた道が今日は工事中になっていて回り道をしなければいけないなど、いろいろな難しいシーンが考えられます。

人間であれば、こういうところをうまく感知して的確な判断で運転していると思うんですが、完全に自動でやろうとすると非常に難しい問題になってきます。

実際には、先ほど説明したように、レベルに応じて簡単な自動運転から徐々に難しい自動運転に進化して、対応シーンも高速道路のようなある程度簡単なところから一般道に拡張していくかたちで普及していくと思います。

R&Dの視点で見るとさまざまなチャレンジングな課題があるので、おもしろい研究分野かなと考えています。

AI活用で実現できること

こういうチャレンジングな課題に対応していく手法の1つとして、AI、ここではとくにディープラーニングや機械学習の技術を想定しているんですが、AIの技術を自動車に適応していくことに取り組んでいます。

AI技術の実適用に向けた取り組み(1/2)
AI技術の実適用に向けた取り組み(1/2)

ある画像認識のベンチマークが毎年行われていて、これは(グラフが)下にいくほど高精度ということになるんですが、数パーセントくらいずつ改善していた認識率が、ディープラーニングというAIを使ったところ10パーセント弱も大幅に向上したということがありました。ここからディープラーニング、機械学習というのが非常に着目されて、多くの研究者に取り組まれることになったと思います。

今では、画像認識の中のある特定のタスクではありますが、人が認識するよりも高精度に認識できるようになっています。

私たちとしては、このようなディープラーニングや機械学習という技術を高度運転支援や自動運転システムに適応できないかと研究開発に取り組んでいます。

具体的には、下の図が自動運転向けの簡単なブロック図です。車両の各種センサーから得られる情報を使って周囲の環境を認識したり、シーンを理解するような認知と言われるブロックから、そこでなにがどこにあるかを認知した結果から対象物が将来どこに動いていくかという軌道予測をします。その予測結果も使いながら、車両の行動や軌道を計測して、そのあと的確にハンドル、ブレーキ、アクセルを制御していくというかたちになります。

こういったディープラーニングやAIと言われる技術は、もちろん認識のところにも使えますし、私たちとしては軌道予測やパスプランなどにも適応できるのではないかと取り組んでいます。

AIを自動車に適用するためのデンソーの取り組み

デンソーではAIを自動車に適用するためにどういうことに取り組んでいるか簡単に説明したのがこの図になります。

AI技術の実適用に向けた取り組み(2/2)
AI技術の実適用に向けた取り組み(2/2)

AIの研究開発というとメインはやはりアルゴリズムになると思いますが、ご存知のようにAIのアルゴリズムをより高精度にしていくためには大量なデータが必要になってくるということと、データがたくさんあると学習のための時間もかかるので、その学習を回す計算機をうまく使う技術も必要になってきます。

アルゴリズムやデータ、計算機の技術に対する研究開発は、世の中で活発に行われていますので、ここの技術でデンソーが世の中で一番だとは思ってはいないんですけれども。

大事なことは、世の中でいろいろな技術や論文等も発表されますので、その中からクルマに使えそうな技術をうまく見つけてきて、実際に車両システムに適用して効果を見てみる。スピーディーに応用する技術が必要なんじゃないかということで主に取り組んでいます。

具体的には、例えば認識性能が高いアルゴリズムがあったとしても、そのままクルマで使おうとするとリアルタイムで動かないこともありますので、いち早くそこにリアルタイム性を持たせるための技術などに取り組んでいます。

また、この3つの技術だけでは実際にクルマにAIを適用していくにはまだ足りないかなと考えています。具体的に言うと、やはりクルマの計算リソースは非常に限られているので、その中でうまくAIを動かすための組み込みの技術、半導体の技術も必要だと思っています。

また、クルマは品質が非常に重要ですので、AIの品質をどう保証していくのかというところも大事だと思います。

下の2つについては、これまでデンソーでも組み込み用の技術や品質保証する技術、ノウハウというのは蓄えられています。それをうまく使いながら、総合的にこの5つの要素技術に取り組むということが実際にAIをクルマに使っていくために非常に重要だと考えています。

以降、それぞれの要素技術の開発について、簡単に紹介します。

トラッキングのアルゴリズム

まずは、メインになるアルゴリズムのところですね。(スライド上部に)先ほど紹介したブロック図がありますが、まず1つは認知のところです。

研究紹介(アルゴリズム)
研究紹介(アルゴリズム)

物体を検出してトラッキング。トラッキングというのは、動画上においてある移動物体を毎フレーム検出しながらその軌跡をずっと辿っていくようなタスクになります。

ここで紹介している技術は、入力としてはカメラの画像と、LIDARから得られるいわゆる点群と言われるデータですね。この2つを使いながら物体をうまく検出してトラッキングしていく技術です。

このアルゴリズムの少し特徴的なところは、トラッキングをする際に毎フレーム確実に物体検出できていれば、その物体をマッチングさせながらトラッキングするのは比較的簡単なんですが、やはり物体検出でミスしてしまうことがあって、そうするとトラッキング情報が途中で切れて間違えてしまうということが起こり得ます。

このアルゴリズムの場合は、今回のフレームでもし検出がうまくできなかったときに、過去のトラッキング情報などを参考にしながら今回のフレームでの位置を推定して検出をかけることによってトラッキング性能を向上させています。

こちらはKITTIと呼ばれるパブリックのデータを使ったデモ動画です。

上側がカメラの画像、下がLIDARの点群データですね。この2つを使いながら歩行者やクルマを検出して、トラッキング情報を黄色の線で表示しています。

走行中におけるトラキッングのデモ(1/2)
走行中におけるトラキッングのデモ(1/2)

下の方を見てもらうと黄色い線がずっと出ているのがわかると思うんですが、これが過去の軌跡情報、すなわちトラッキング情報ですね。比較的歩行者が多いシーンにおいても、安定してトラッキングができているのがわかるかなと思います。

少しシーンを変えて、クルマが移動しているシーンです。例えば、今カメラの画像上ではこのトラックの後ろにクルマがあるのは見えないんですが、LIDARの点群で言うとかすかに点が検出できています。

走行中におけるトラキッングのデモ動画(2/2)
走行中におけるトラキッングのデモ動画(2/2)

このように物体が隠れているのをオクルージョンと言うんですが、オクルージョンがある物体に対しても過去のトラッキング情報を使いながら検出しているということもあって、比較的ロバストに検出できるようなアルゴリズムになっています。

この技術については、ちょうど1年くらい前にIntelligent Vehiclesという学会で発表していますので、興味があれば検索してもらえれば出てくると思います。

歩行者の軌道予測

前述の技術を使うと、なにがどこにあって、過去どのように進んできたという情報が手に入るんですが、そうすると次に必要になるのが、将来的にどこに動いていくかという軌道予測になります。

軌道予測の中でも今日紹介したいのは、歩行者の軌道予測に取り組んだ例です。この軌道予測の入力は先ほどの検出トラッキング結果を使っています。

過去のトラッキングデータから将来どこに行くかを予測するんですが、そのためにやっているのが、まずは目的地の予測ですね。ここ(スライドの緑の四角の箇所)に予測対象の物体があります。この絵は自転車の例ですが、自転車がいるとすると、そのあと自転車がどこに進むかという目的地を複数予測します。

その予測のために、ちょっとした地図情報ですね。道路の形状や建物の位置といった情報は入力されている前提で、目的地がこういうところにあるというのを複数予測します。次に、それぞれの目的地に対してどういうパスでそこに到達することができるかを推測して、確率の高いものから出力するようなアルゴリズムになっています。

このアルゴリズムの特徴的なところとしては、軌道の予測にGANと呼ばれる敵対的生成モデルというものを使っているということ。あとは、目的地までの軌道を学ばせるのに一気に目的地までの学習をさせようとするとなかなか学習が進まないという問題もあるので、これに対応するためにカリキュラムラーニングという複数のステップに分けて少しずつ勉強させていく技術を使っています。

こういう手法を適用することによって、ある程度歩行者の軌跡がうまく推論できるようなアルゴリズムを開発することができました。こちらはアメリカのカーネギーメロン大学との共同研究になります。

軌道予測結果の実例

歩行者の軌道予測結果を使った例として、少し動画をお見せします。実際の自動運転とは少し外れますが、人間のドライバーがクルマを運転しているような状態を想像してもらえればと思います。

歩行者の軌道予測デモの画面

範囲は変えられますが、自車の周りに危険なエリアを定義して、そこに歩行者が入ってくる可能性があればwarningをするという歩行者警報デモみたいなアプリを作っています。

使っている情報としては、先ほど申したように過去の軌跡情報と現在の歩行者の位置、あとは簡単な道路形状ですね。この交差点の形状や建物の位置を使いながら、2秒後にその対象物体がどこにいるかを予測して、右は鳥瞰図を表示したもの、左はそれをカメラ画像に投影したものとして出力しています。

自分の周りの定義した危険エリアに入ってくる確率がある閾値、これも可変ですが、ある閾値より高くなると赤のバウンダリーボックスでwarningを出すようになっています。また、逆に入らないような場合は緑のバウンダリーボックスで歩行者を示しています。緑色の線は、真値ですね。実際にその対象者が動いた軌跡になります。

少し見てもらうと、今この歩行者の方が自分の黄色いエリアに入ってくる確率が高くなったということで赤いwarningを出しています。

また別の方の場合は少しおもしろくて、まだ(画像のとおり)warningは出してないんですが、この人の真値としては実際、画面の左のほうに動いていくので、その真値に合うような予測結果を赤い線でいくつか出しています。

このようなシーンの場合、この人はこのまままっすぐ行くというオプションもあると思うんですが、それも予測ができていて、左に行くかまっすぐ行くかというところをうまく予測できているいい例かと思います。

実際この人は左に曲がっていくので、予測結果も左のほうに収束してきます。このような歩行者の軌道予測というところに、ディープラーニングの技術を使っています。これがアルゴリズムの研究の簡単な紹介になります。

DNNアクセラレータの開発

次は、半導体についてです。先ほどご紹介したようなディープラーニングを使ったネットワークのアルゴリズムを車載のコンピュータに実装しようとすると、やはり演算コストがかなり高くて電力が上がってしまったり、演算時間がかかるという問題があります。それらを解決するため、DNNアクセラレータという回路を開発しています。

このDNNアクセラレータの例は、イメージ的にはいくつかの小さな演算機をたくさん並べて、うまく接続を切り替えることで、いろいろなネットワークに対応しながらも省電力で演算速度も速く処理できる回路仕様となっています。

自由視点画像生成を使ったデータ収集

次が、データに対する取り組みですね。AIの学習にはいろいろなデータが必要になってきます。これは、自由視点画像生成という技術を使って、エッジケースを含むようないろいろなデータを効率的に取れないかということに取り組んでいます。

通常、カメラを自車の中心に付けてデータ収集すると、撮れる画像も自車の中心からの視点になると思うんですが、データとしては、例えばもう少し左に寄ったところから見たような画像ですね。こういういろいろな画像がほしい。

ただ、こういう画像を撮ろうとすると、ずっと車線の左側に寄ってデータ収集しなければいけないとか、右から撮ろうとすると右の方にクルマを寄せてデータ収集しなければいけないとか。実際に撮ろうとするとなかなか難しい問題が発生します。

こういうデータを効率的に収集する技術として今取り組んでいるのが、例では縦に3つ横に6つで18台のカメラをデータ収集車のルーフに搭載して、多視点映像をたくさん集め、カメラ間の補完を行う技術を使いながら自由視点の画像を生成するということをやっています。

実際にやろうとすると、18台のカメラをしっかり同期、キャリブレーションするとか、あとはデータも大量になるので、その大量データの保存方法とか、技術的に難しいところがあります。

なので、これはバージニア大学との共同研究なのですが、外部と共同しながらやっています。

実際の動画があります。このクルマの後ろから撮った画像に対して自由視点生成をやることによって、スムーズに視点を変えられていることがわかると思います。

自由視点画像生成の映像

車載AIの品質をどう保証するか

次が、計算機に対する取り組みですね。(スライドを指して)これはある機械学習のアルゴリズムを学習させるときの処理です。

研究紹介(計算機・品質)
研究紹介(計算機・品質)

特徴抽出をして、そのあと機械学習するという処理において、通常1台の計算機でやると当然すごく時間がかかります。そこを分散して、複数の計算機を使いながら学習することで効率化を狙っています。

ただ並列化するといっても、単純に並列化できるところとそうじゃないところがあります。入力画像を入れる部分については、画像ごとにやる処理は独立なので、それは入力画像を複数の計算機に振り分けてやればいいんですが、機械学習の部分では単純にやろうとするとなかなか効率よく並列化ができないという問題があります。

そのためここでは特徴量ベクトルの掛け算を小さい行列に分解して、うまく負荷を分散させて計算することで、並列化の恩恵を受けて効率をあげるということをしています。

最後に品質ですね。最初に申し上げたように、AIは学習によってアルゴリズムが得られるので、ブラックボックスと呼ばれることがあるのですが、それを車載で保証するにはどうすればいいかということを考えていかないといけないと思っています。

もしかすると社会需要性や世の中との合意形成も必要になるかもしれないんですが、まずはどう保証するのかという方針を考え、その方針を成り立たせるようにソフトウェアの開発プロセスに落とし込んでいかなければいけないと考えています。

またそこも一部は世の中と標準化するようなところも必要になってくるかもしれませんし、社内へのルール化や運用化にも取り組んでいかなければいけないと部分もあると思っています。あとは、プロセスを成り立たせるためにはやはりなんらかの要素技術が必要なのではないかと考えています。

例えばビジュアライゼーション、可視化の部分とか。あとは、XAIと呼ばれる説明可能なAIとかですね。こういう要素技術にも取り組むことによって、実際にAIの保証が成り立つと考えています。

(スライド右側の)下のほうで簡単に説明しているのはこの中の可視化技術の一例です。これはまだトイプロブレムで、犬を検出する検出器に対して、この画像のどこを見て犬と検出しているかというのを可視化するような技術ですね。

こういうことがうまくできれば、判断根拠などもある程度推測できることになり、品質保証やなにか問題があったときの対応などにうまく活用できると考えています。ここに関しても、国内の大学との共同研究で進めています。

デンソーの研究リソース

最後に簡単に研究リソースの紹介をします。私たちAI研究部では実際に研究用のデータを収集するための実験車両を持っています。LIDARやカメラ、事業部のセンサーを搭載した車両を使って研究開発用のデータ収集をしています。

Research recourses
Research recourses

データ収集したあとは、当然アノテーション、学習データの作成が必要になります。私たちは内製ツールを使っていて、ここでの例はカメラとLIDARの点群データですね。

LIDARとカメラのデータは同期されており、例えば点群データ上で3Dのバウンダリーボックスを付けると2Dの画像データ上にも自動でバウンダリーボックスを投影することができます。

データが貯まってくると次は学習をするのですが、そのための計算サーバも自前で持っています。このように、クルマを使ってデータを収集し、そのデータを使って学習し、できたアルゴリズムをこのクルマに搭載して評価する、というような一通りの車載のAI研究が回せるようなリソースを保有しています。

どんなデータがあるかというと、先ほど申し上げた画像データと点群データで、3Dと2Dのバウンダリーボックスが付けられていますし、トラッキング用にそれぞれのIDも振られています。

このようなデータを使って、画像だけを使ったアルゴリズムを研究するときもありますし、LIDARとカメラと両方使ったアルゴリズムを研究する場合もあります。

これは国内の高速道路のデータの例です。また、歩行者や自転車が多い繁華街のデータなどもあり、研究テーマに応じてデータ収集をしながら研究開発を進めています。

このようにデンソーの製品やサービスに貢献していくため5つの要素技術について研究開発を進めています。