vol.112 AIが車載SoC設計に与える影響

AIが車載SoC設計に与える影響

先進運転支援システム(ADAS)およびその先の自動運転を実現する強力な技術として、人工知能(AI)およびニューラル・ネットワークを使用したディープ・ラーニングがあります。しかしAIの研究は急速な進歩を続けており、エンベデッド・ビジョンにおける推論など、ディープ・ラーニングを利用した車載アプリケーションをサポートするには、効率と柔軟性に優れたスケーラブルなハードウェアとソフトウェアを開発しなければならず、このことが設計者にとって大きな課題となっています。AIやディープ・ラーニングは、インフォテインメント・システムのように安全に直結しない車載システムには簡単に導入できても、セーフティ・クリティカルなシステムでは機能安全規格ISO 26262の要求事項を満たす必要があるため、導入は容易ではありません。ニューラル・ネットワークを使用したシステムがISOの安全要求を満たし、必要なASIL認証を達成するには、実証済みIPを選択すること、安全の文化を育成すること、厳密なプロセスとポリシーを作成すること、セーフティ・マネージャーを任命することなどが必要となってきます。また、ISO 26262の要求事項を満たしたビジョン対応SoCを開発するには、包括的なシミュレーション、バリデーション、テスト、および体系的な検証プランも必要となります。

ビジョンを利用したADASシステムへのAIの適用

AIとディープ・ラーニングによってADASシステムは進化を続け、自動運転車の実現へと向かっています。その背景には、伝統的なアルゴリズムでは実行が難しかった物体(歩行者)検出や複数の物体の認識が、AIとディープ・ラーニングによって精度が飛躍的に向上していることが挙げられます。AIによって、自動車は周囲環境の意味さえも解析できるようになっています。これは、自動車が周囲の環境やそこで発生する事象を評価できるようになるために欠かせない能力です。

 

車載アプリケーションへのAIの採用は主に2つの分野で進行しています。1つはヒューマン・マシン・インターフェイス(HMI)を備えたインフォテインメント・システムで、もう1つはADAS/自動運転車です。HMIは音声認識(自然言語インターフェイス)、ジェスチャ認識、バーチャル・アシスタントなどで構成され、既に現在の自動車にも導入されています。これらのシステムでは単なる汎用AIではなく、最先端のディープ・ラーニングの活用が始まっています。これに対し、もう1つの分野であるADAS/自動運転車を実現するシステムは、はるかに複雑で、カメラ、長距離/短距離レーダー・システム、LiDARを使用して物体認識やコンテキスト評価、更には行動予測も実行します。

ソフトウェア開発に対するAIの影響

ソフトウェアの面から見ると、ディープ・ラーニングはアルゴリズムのプログラミングと実装の大きなパラダイム・シフトを意味します。たとえば伝統的なコンピュータ・ビジョンで歩行者検出アプリケーションを開発するには、ある特定の形状が人物であるかどうかを判定するプログラムを作成します。このプログラムはビデオ入力の各イメージをフレームごとに解析して、そのイメージに人物が含まれるかどうかを判定します。ディープ・ラーニング以前に開発された物体検出手法の1つにHOG(Histogram-Oriented Gradients)アルゴリズムがあります。これは、画像に存在する形状のエッジの向きを解析して特定の物体を検出するというものです(図1)。

図1:CNNエンジンを内蔵したシノプシスのDesignWare® EV61エンベデッド・ビジョン・プロセッサでTinyYOLO CNNグラフを実行し、物体検出・分類を行う自動運転および監視アプリケーションの例

HOGなどの伝統的なコンピュータ・ビジョン・アルゴリズムを使用した場合、歩行者に加え乗用車、各種トラック、犬、自転車など、あらゆる物体を識別可能なアルゴリズムを人手で作成しようとすると、何年もの工数がかかります。これに対し、ニューラル・ネットワークは生の入力データを与えると、それを使用して画像の中に何を見つければよいかの判断を下す方法を「学習」します。ニューラル・ネットワークには入力層と出力層が1つずつあり、入力層と出力層の間に複数の隠れ層(すなわち全体で3層以上)を持つものをディープ・ニューラル・ネットワーク(DNN)と呼びます(図2)。各層にはいくつもの独立したノードがあり、これらが学習をします。各ノードの値に重みを掛けて足したものを次の層のノードに入力します。このプロセスはニューラル・ネットワークの学習の一部であり、直接プログラムするものではありません。

図2:ディープ・ニューラル・ネットワーク(DNN)。大量のデータセットを使用して「トレーニング」したネットワークは物体を分類、検出する方法を「学習」し、この学習が進むにつれて重み(係数)が微調整されていきます。

ニューラル・ネットワークでは、すべてのノードが次の層のすべてのノードに接続されます。ノードの層を増やすことで、物体検出/分類、顔認識、ジェスチャ認識など多くのアプリケーションにおいて伝統的なコンピュータ・ビジョン・アルゴリズムを上回る精度を達成できます。前処理と後処理が必要なため、プログラマブル・ソリューションが完全に不要になるわけではありませんが、DNNは飛躍的に高い精度を実現できるため、分類、検出、認識などの解析における事実上の標準となっています。

畳込みニューラル・ネットワークを利用した衝突被害軽減ブレーキ(AEB)

畳込みニューラル・ネットワーク(CNN)はDNNの一種で、画像認識における最先端の手法となっています。CNNはビデオ入力の各イメージをフレームごとに処理します。CNNでは、フィルタを使用して各イメージを畳込み処理して中間特徴マップを得ます。これを複数の層に対して繰り返して実行し、低レベル特徴、中レベル特徴、高レベル特徴を抽出したものを、衝突被害軽減ブレーキ(AEB)システムの歩行者検出などのアプリケーションで利用します(図3)。

図3:CNNは1つの画像を特徴マップに分解します。出典:「Deep Convolutional Neural Networks for Pedestrian Detection」(Milan: Dipartimento di Elettronica, Informazione e Bioingegneria, Politecnico di Milano, 2016)アクセス日2017年3月14日

低レベル特徴とは、曲線やエッジなどをいいます。中レベル特徴とは円(曲線の組み合わせ)や矩形(エッジの組み合わせ)などです。そして最後に、歩行者を認識するようにトレーニングしたネットワークであれば、腕、足、胴体などの形状を識別します。最後の層は全結合され、すべての解析結果が1つにまとめられます。要するに、コンピュータまたはマシンは入力画像を細かく分解し、これらを最後に再び1つに組み合わせ、曲線やエッジ、ラインに基づいてそれが歩行者であるかどうかを判定します。この判定はCNNの学習フェーズに基づいて行われます。

CNNの学習と運用

AIアプリケーションのプログラミングは伝統的なコンピュータ・プログラミングとはまったく異なり、2つのフェーズで構成されます(図4)。第1フェーズは学習フェーズと呼ばれ、物体を認識するようにネットワークをトレーニングします。第2フェーズは推論または運用フェーズと呼ばれ、自動車などの組込み環境のハードウェア上で実行します。一般に、学習フェーズはクラウド・データ・センターで1つまたは複数のGPUを使用して行い、推論フェーズは最終製品で実行します。

図4:学習フェーズはクラウドまたはサーバ・ファームで実行し、推論フェーズは自動運転車などの最終製品で実行します。

学習フェーズでは、ネットワークにラベル付きイメージを入力してトレーニングを行います。この作業を何度も繰り返すことにより、ネットワークは係数(重み)を調整して目的の物体を認識するように「学習」します。十分なトレーニングの後、この重みとネットワークを自動車などの組込みシステムに移転し、推論フェーズで物体を認識させます。基本的に、推論フェーズでのニューラル・ネットワークは、学習フェーズでトレーニングした物体が画像に含まれる確率を出力します。たとえば歩行者を検出するようにトレーニングされたニューラル・ネットワークは、入力イメージに歩行者が含まれる確率を返します。更に高度な処理を実行するには、画像に含まれる物体(一時停止標識など)に対して自動車がどのようにふるまうかを判断させる作業が必要となります。ここでもAIとディープ・ラーニングを利用して、さまざまな状況でどのようにふるまうかをシステムに学習させることができます。

AIとハードウェア開発

学習フェーズの出力は32ビット浮動小数点数です。自動車に推論フェーズを実装する場合、機能安全と消費電力の両方が課題となるため、なるべく小さな規模で最大の精度が得られるようなハードウェアが望まれます。面積と消費電力を考慮しながら最適なビット分解能を決定することで、面積を最小限に抑えたハードウェアを開発することができます。ここ数年で、これらの新しいニューラル・ネットワーク・アルゴリズムを組み合わせたハードウェア開発が進み、CNN機能を内蔵した小型で高速な低消費電力SoCが実現しています。

 

シノプシスDesignWare EV6xエンベデッド・ビジョン・プロセッサはCNNを密接に統合しており(図5)、性能、消費電力、面積の要件を満たしつつデザインの拡張が可能です。前処理と後処理はスカラーおよびベクター・ユニットで実行し、ディープ・ラーニング処理はCNNエンジンで実行します。もちろん、これらを効率よくプログラムするにはソフトウェアが重要な役割を果たします。

図5:DesignWare EV6xエンベデッド・ビジョン・プロセッサ

ニューラル・ネットワークの変遷がハードウェア開発に与える影響

ニューラル・ネットワークは常に変化しており、このことがAIテクノロジを使用するハードウェアの設計において大きな課題となります。たとえば分類ネットワークはAlexNetからGoogLeNet、ResNetを経て、今も新しいネットワークが登場しています。また、物体認識は分類と位置特定を組み合わせたもので、物体が何であるかだけでなくどこにあるかも認識する必要があるため更に複雑で、より高い演算性能が要求されます。このニューラル・ネットワークも急速に発展しており、RCNN(Regional CNN)からFast RCNN、Faster RCNNと変遷し、現在ではSSDやYOLOの派生ネットワークが主流となっています。

 

こうした演算面での課題に加え、自動車に搭載されるカメラの解像度も変化しています。現在の自動車に搭載されているカメラの画素数は1〜2メガピクセル(MP)ですが、最近は3〜4 MPのものも登場しており、8 MPのカメラも視野に入っています。画素数が増えると視覚性能が向上しますが、求められる処理性能も増大します。また、フレーム・レートを現在の15〜30 fpsから60 fpsに引き上げると車両を完全に静止するまでの距離を短くできますが、そのためにはレイテンシを短く抑える必要があります。

 

このように解像度とフレーム・レートは向上する傾向にあり、数年前のニューラル・ネットワークは64 MACsの性能があれば十分でしたが、その後すぐに800~100 MACsが要求されるようになり、現在では複数のカメラに対応するために50 TeraMACs/sの性能を最小限の消費電力で達成することが求められるようになっています。

こうした要件の急激な変化を考慮して、シノプシスは専用のニューラル・ネットワーク・エンジンとビジョン・コア、およびMetaWare EV Development Toolkitを組み合わせたDesignWare EV6xエンベデッド・ビジョン・プロセッサをご提供しています。伝統的コンピューティングとニューラル・ネットワーク・エンジン、およびソフトウェアを組み合わせることによって、居眠り運転検知用の小型SoCでも自動運転に使用する高性能なセーフティ・クリティカルSoCでも開発が可能です。このDesignWareソリューションは幅広いアプリケーションへの対応を考慮して開発されていますが、基本的なハードウェアおよびソフトウェア・ビルディング・ブロックは共通のものを使用しています。

図6:DesignWare EV6xプロセッサは880 CNNエンジンを1個だけ使用して小規模なデザインを実装することも、AXIバスに複数個のプロセッサを接続してより高いCNN性能を得ることもできます。DesignWare EV6xプロセッサは現在、車載デザインなど低消費電力と高性能の両立が求められるアプリケーションに採用されています。

機能安全規格への準拠

AIとニューラル・ネットワークによってADASアプリケーションの改良が進み、自動運転車の実現が近付いていますが、こうした自動運転が消費者に受け入れられるためには、システムの安全に万全の信頼が求められます。自動車業界は、車両システムが正しく機能して危険な状況を回避できること、そして故障を検出および管理できる能力を証明できることを要求しています。これらの要求事項は、機能安全規格ISO 26262、およびその中で定義されているASIL(Automotive Safety Integrity Level)によって規定されています。

図7:ASILレベルの定義

ISO 26262の要求事項におけるディープ・ラーニング・システムの位置付けはまだ定まっていません。インフォテインメント・システムでASIL B認証を取得するのは比較的容易かもしれませんが、ASIL CまたはD認証が必要とされるようなセーフティ・クリティカルなアプリケーションの場合、システムに冗長性を持たせることが求められるでしょう。また、このようなアプリケーションでは、ISO 26262の厳格な認証要求を満たしたポリシー、プロセス、文書化ストラテジを開発することも必要となってきます。

 

この場合、50 TeraMAC/sでの動作を達成するという課題を解決するだけでなく、ASIL認証を取得するために冗長性とフォールト・トレランスを追加する必要があります。シノプシスは、インフォテインメントなどのシステムではASIL B、セーフティ・クリティカルなアプリケーションではASIL Dを達成できるように設計者を支援するソリューションに投資を続けています。ただし、現在のSoC開発の要求レベルがASIL Bだからといって、ASIL Bに対応したSoCを開発していると、将来的にASIL Dが要求される自動運転アプリケーションでそのSoCを使用する場合に対応できなくなるため注意が必要です。

 

シノプシスはASIL BおよびASIL D対応IPを幅広くご提供するだけでなく、これまでISO 26262認証を成功させてきた豊富な経験に基づき、安全文化の育成、検証プランの作成、FMEDA(Failure-Mode Effect and Diagnostic Analysis)評価の実行などに関するノウハウもご提供しています。シノプシスはSGS-TUVとも協業しており、SoCの安全評価および認証にかかる期間を短縮していただけます。

まとめ

車載システム設計には既に伝統的なエンベデッド・ビジョン・アルゴリズムが採用されていますが、今後の自動運転を実現していくには、AI手法の応用が1つの重要なキー・テクノロジとなってきます。その中でも特に注目されているのが、ディープ・ラーニング・アルゴリズムをベースにしたAIを多層CNNに実装したエンベデッド・ビジョンです。これらのアルゴリズムは、自動運転車の実現に必要な物体認識、分割、分類に特に大きな進歩をもたらすことが期待されています。

車載システムにAIを統合しようとすると、性能、消費電力、面積、機能安全の面で高いハードルをクリアする必要があり、ソフトウェアおよびハードウェア・エンジニアにとってシステム設計のあり方が大きく変化しています。シノプシスのようにASIL対応IPの提供において豊富な実績を持つIPベンダを選ぶことが、市場での成功の鍵を握ります。

 

詳細情報