ADAS/自動運転向けの物体検出CNNを1個のArmコア内蔵FPGAで実現、ザイリンクスが講演
米Xilinx(ザイリンクス)社は、1個のArmコア内蔵FPGA「Zynq UltraScale+ EG(XCZU3EG)」上に実装できる、物体検出用の畳み込みニューラルネットワーク(CNN)「Tincy YOLO」を開発し、その概要をドイツ・ドレスデンで開催の電子設計・テスト技術に関する国際学会「2018 Design, Automation & Test in Europe:DATE 18」(3月19日~22日)で発表した。ビデオストリームからリアルタイム(16フレーム/秒の速度)で物体を検出できるため、ADASや自動運転向けの画像認識処理などに応用可能だとした。
以下、実装手法の抜粋
デバイス:Zynq UltraScale+ EG(XCZU3EG)
データセット:Pascal Visual Object Classes
ネットワークモデル:Tincy YOLO(Tiny YOLOの独自改造版)
以下の複数の技術を使って、精度低下なしに16fpsを実現
(普通にARM Cortex-A53でTiny YOLOを動かした場合の160倍)
(1)CNNで処理するデータやパラメーターの量子化
入力層:8bit以上
隠れ層(12層):重みは1bit、データは3bit
出力層:8bit以上
(2)FPGAファブリックの利用
量子化された畳み込み層の処理のオフロードに利用
(3)Cortex-A53が内蔵するSIMD演算器「NEON」の利用
入力層の高速化に寄与
(4)アルゴリズム的な工夫
入力層の次のmaxpool層の除去
(5)4つのCortex-A53を使った並列処理
なお、Tiny YOLOが「Darknet」フレームワークをベースに開発されており、CUDAプログラミングではないGPUであるMaliへの実装のうまみがないとのこと。
CNN部分は低精度で構わなのでFPGA、入力層と回帰部分は高精度必要なのでCPU(NEON)ということかと思われます。reVISIONもそうですが、Xilinx社はFPGAだけというより、SOC FPGAで総合的に速度を上げるアプローチ。このクラスのデバイスでも64bit ARMを搭載してるのが強いですね。