高専 専攻科の特別研究
高専には、本科5年を卒業後、専攻科に進学する道があります。 専攻科では、2年間の専攻科過程を修了することで、学部卒業と同等の学位を取得することができます。 本科における卒業研究に相当する特別研究を行います。
専攻科では、FPGAとAIエッジ技術に興味を持ちました。現在は、FPGAベースのDNN推論を用いた表情認識システムの実装を行っています。
研究概要
この研究では、DNN(深層ニューラルネットワーク)アクセラレータであるDPU(Deep learning Processor Unit)を活用したリアルタイム表情認識システムをSoC FPGA上に実装しました。特に、マルチスレッドを導入することでDPUの利用効率を向上させ、システム全体のスループットを改善することを目指しました。
研究背景
ロボット工学の進展に伴い、ロボットは産業用途に限らず、介護、教育、エンターテインメントなど様々な分野で人間と共存する場面が増えています。人間とロボットの効果的な相互作用には、表情認識技術が重要な役割を果たします。従来の表情認識システムでは、CPUや専用ハードウェアを用いたアプローチが主流でしたが、これらは消費電力や回路規模の面で課題を抱えていました。
提案手法
システム構成
提案するシステムは、以下の2つのステップで構成されます:
- 顔検出:DNN顔検出モデルを用いてカメラフレームから顔を検出
- 表情認識:検出した顔領域内でDNN表情認識モデルによる認識を実行
これらのDNN推論処理は、同一のDPU上で時間共有的に実行されます。さらに、マルチスレッドを導入し、DPUの待機時間を削減し、利用効率を向上させました。
マルチスレッディング戦略
シングルスレッド実行時には、CPUとDPUが効率的に並列処理できない状態が発生します。これを解消するため、以下のように3つのスレッドを構成しました:
- カメラインプット用スレッド:OpenCVによりカメラから画像を取得 (1スレッド)
- CPUプロセス用スレッド:取得したフレームに対して前処理を実行し、DPUに推論命令に送る (2スレッド)
同一のDPUを2フレームで共用することで、DPUの待機時間を最小化し、全体のスループットを向上させました。
評価結果
顔検出
- 精度:DPU上で実行したDenseBoxモデルは平均精度0.917を達成し、従来のHaar Cascade検出器(0.531)に比べて約1.73倍の精度向上を示しました。
- レイテンシ:DenseBoxモデルのレイテンシは42.10msで、従来のHaar Cascade(798ms)に比べ約18.95倍の高速化を実現しました。
表情認識
- 精度:DPU上で実行した表情認識モデルは67.4%の認識精度を達成し、従来の66%を上回りました。
- レイテンシ:表情認識のレイテンシは7.34msで、従来の6.36msとほぼ同等です。
システム全体
- スループット:マルチスレッド実行により、スループットは25FPSに達し、従来の11.67FPSから約2.14倍の向上を実現しました。
- 電力消費:スループットあたりの電力消費は9.26FPS/Wとなり、従来のシステムに比べ約2.4倍の効率向上を達成しました。
- DPU利用効率:マルチスレッド実行によりDPUの利用率は78.44%に達し、効率的な活用が確認されました。