ここからはDNNを用いた個別のデモについて紹介しよう。1つ目は「Deep Learningを活用したリアルタイムでの歩行者認識」である。
このデモでは、単眼カメラだけで、歩行者を検知するとともに、その身長、カメラからの距離、体の向きを高い応答性で推定する。また、高齢者や子ども、携帯電話機を操作中といったことも判別できるという。距離の推定誤差は10mの場合で±50cm、応答性の目安となる処理時間は56ms(16〜17fps)を実現した。ADASでは画像認識の処理速度として10〜15fps以上が求められるといわれており、これをクリアできていることになる。デモではハードウェアとしてNVIDIAの「Tegra K1」を使用していた。
このデモを実現するための手法は2つある。1つは、認識対象となる歩行者との距離推定を考慮したディープラーニングの手法である。単眼カメラの設置高さと、歩行者が路面に足を着けている下端位置から歩行者との距離を推定。その上で、歩行者の状態を認識するディープラーニングを行った。
もう1つは、応答性を高めるための処理負荷軽減の手法だ。DNNによる画像認識では、微小に縮小した画像の識別を何度も繰り返すことが多い。これら微小に縮小した画像を積み上げるとピラミッド状になっているように見えるので、ピラミッド画像とも呼ばれる。これを、4分の1に縮小した画像を識別することで、縮小→識別の繰り返し回数を10分の1に減らした。
2つ目のデモは「DNNアクセラレータ」である。DNNというと、NVIDIAのGPU上で大規模なソフトウェアを動作させるイメージが強い。この場合消費電力とコストはどうしても高くなる。このGPUに替わる専用ハードウェアIPによってDNNを動作させ、消費電力とコストを低減することが狙いとなっている。
DNNアクセラレータの構成は大まかに2つに分かれる。1つは、DNNのネットワーク構成情報に柔軟に対応するためのプログラマブルな回路だ。もう1つは、要求に応じた消費電力と処理速度を実現できるように、画像認識のDNNのアルゴリズムで重要な畳み込み演算を実行する並列の積和演算器である。
機械学習済みアルゴリズムの実装が最大の目的となっているため、GPU上でソフトウェアを動作させるよりも柔軟性は高いとはいえないし、何より機械学習は行えない。ただし、プログラマブルな回路の導入によって、クラウドやHPCを使って機械学習で構築した新たなアルゴリズムを実装する程度には十分な柔軟性を確保できた。
デモは、Xilinxの高性能FPGA「Virtex-7」に組み込んだDNNアクセラレータによって実行している。動作周波数266MHz、16並列、40nmプロセスで見積もると、消費電力は0.74Wになる。「DNNアクセラレータを開発しているのは、自社でICを開発するためではない。半導体メーカーにわれわれの求めるICの開発を求める際に、その要件を具体的に伝えて、早期に製品化できるようにするためだ」(デンソーの説明員)という。
Copyright © ITmedia, Inc. All Rights Reserved.