自動車は、確かに馬に引っ張ってもらう必要はなく自分で動けるが、人間の介在無しに自動で走る車には程遠い。辛口で言えば、衝突や道路を外れて転落する危険などを自分で回避する馬車の方が、よほどインテリジェンスが高いとも言える。しかし、LSIの能力の向上と、各種のテクノロジの発展で、この事情は急速に変わりつつある。

今回のCool Chips XVIIIでは名古屋大学の加藤真平 准教授の招待講演、加藤先生をモデレータとする自動運転に関するパネル、そして、ルネサス エレクトロニクスと東芝のADAS(Advanced Driver Assistance Systems:先進運転支援システム)用のLSIの発表が行われ、自動運転がメインテーマであるかの様相を呈していた。これらの発表に関して、ルネサス、東芝の論文発表、加藤先生の招待講義、パネルディスカッションの順に紹介していく。

次の図は、パネルディスカッションで東芝の雨森氏が見せたスライドであるが、「NHTSA(National Highway Traffic Safety Administration:米国運輸省の国家道路交通安全局)」の運転自動化のレベルのガイドラインを示す図である。レベル0は自動化の無い現在の普通の車、レベル1は特定の1つの機能を自動化するもので、適応型クルーズコントロールなど。レベル2は複数の機能を自動化するもので、ベンツのSクラスのように適応型クルーズコントロールと車線の中央を維持するハンドル操作をもつもの。

レベル3は、制限付き自動運転で、車が自動運転が難しいと判断した場合は人間に運転を代わってもらう。レベル4は完全自動運転である。これらのレベルでは自動運転中は、運転者はバックアップとなり、道路や交通状況をみていることは期待されていない。

NHTSAの自動化レベルの分類。自動化なしのレベル0から全自動のレベル4までの分類がある(出典:パネルディスカッションでの東芝 雨森氏のスライド)

現状の、ADASはレベル1の機能を提供するもので、各社はレベル2からレベル3の実現を可能にするシステムの開発にしのぎを削っているという状況であるという。また、Googleの自動運転車は、レベル4を目指しており、今回のCool Chips XVIIIで発表された名古屋大学の加藤先生の研究もレベル4を目指している。

ルネサスの車の位置検出SoC

発表を行うルネサスの木村氏

Cool Chips XVIIIにおいて、ルネサスの木村基氏が同社のSoC「R-Car H2」について発表を行った。

ルネサスは、カメラの映像の変化から車の位置を検出するという方法を使っている。この方法は、加速度計やGPSを使う方法より精度が高いという。

ルネサスはカメラの映像の変化から動きを検出する

自己運動の検出には「Multi Frame Integration(MFI)」というアルゴリズムを用いている。MFIでは、まず、動きを追跡する特徴点を抽出し、フレーム間での特徴点の移動から、車に固定されたカメラがどのように移動したかを求める。MFIでは、隣接するフレーム間の比較だけでなく、多数のフレームを連続して特徴点の移動を追跡することで、精度の向上やノイズの低減を行っている。

なお、発表では明確に書かれていないが、ステレオカメラが使われていると考えられる。

次の図では、人間は中央の顔に目が行くが、ルネサスのシステムでは、特徴点の抽出は、検出が容易なコーナーを抽出している。この写真では1カ所しか書かれていないが、実際には1000カ所以上の特徴点を抽出する。そして、連続するフレームの特徴点を中心とする小領域をずらしながら重ね合わせて、一番よく一致する移動量を求める。

そして、Sparse Stereo以下の処理でMFIの補正を行ってグローバルな移動量を求める。なお、Badinoの論文では、使用したテストデータの場合は、この補正は基本の処理の計算量の3.8%のオーバヘッドと書かれている。

MFIの処理の流れ。入力イメージの特徴点を抽出してその移動を計算し、さらにSparse Stereo以下のMFI処理を行って、グローバルな移動量を求める

この処理を行うR-Car H2は、4個のARM Cortex-A15コアと4個のARM Cortex-A7コアを持ち、さらにイメージ認識の専用機能を高速で実行するエンジンを持っている。また、PowerVR G6400 GPUとルネサスの2D GPU、オーディオ、ビデオのデコーダとPCI Express、 USB3.0、SATAなどの標準I/Oインタフェースなどを搭載している。

R-Car H2 SoCは、イメージ認識エンジンと8個のCPUコア、2Dと3DのGPU、オーディオ、ビデオのデコーダ、ビデオシグナルプロセサ、各種I/Oなどを集積している

特徴抽出やフィルタリングはデータ量の多い重い処理であるが、処理手順は決まっておりプログラム性はあまり必要が無い。このため、専用ハードウェアであるイメージ認識エンジンで処理を行っている。一方、後半の処理はプログラム性が必要な処理であり、CPUで処理を行っている。しかし、後半の処理は計算量は少ないので、これで間に合う。

MFI処理の実装のやり方。特徴抽出やフィルタリングなどは専用エンジンで実行し、Motion Flow以下はCPUで実行する

ビデオのデコード処理を含む処理性能は、2.6GHzクロックのCore i7で処理を行った場合は19.6fps、SoC内蔵のCortex-A15コア群で処理すると7.7fpsであったが、A15コア群とイメージ処理エンジンを組み合わせると28.2fpsの性能が得られたという。

同一画像のCore i7、内蔵のCortex-A15コア群、A15コア群+イメージ処理エンジンの処理性能比較

そして、R-Car H2の消費電力は2.6Wと小さく、この状態でもCPUの負荷は32%に留まっており、必要があれば、他の処理を並行して実行する余裕が残っているという。