SWEST25にFPGA版REEL SSを簡易展示

SWEST25にFPGA版REEL SSを簡易展示

はじめに

SWEST25にREEL SSのFPGA版の簡易展示を行いました。
展示内容について説明します。

展示内容

AMD製Kria KV260 ビジョン AI スターター キット(クリアケースの中)とディスプレイ

展示物は、AMD製Kria KV260 ビジョン AI スターター キット(クリアケースの中)とディスプレイです。表示内容は、ラインを流れる錠剤の傷検査をREEL SS(セマンティックセグメンテーション)で行っている状況です。ディスプレイ中の左側上が入力ビデオ、左側下が検査出力(REEL SS出力)、右側が固定の説明画像になっています。入力ビデオは、緑のベルトコンベヤに乗って白い錠剤が下から上に流れる(CGで制作)30秒の繰返し映像です。白い錠剤には、ところどころ傷(CGで加工)が入っていて、検査出力で傷部分が赤く表示されます。

KV260(ARM-CPU)単体では、VitisAIツールの一部がIntel-CPU専用になために学習できません。そのため、展示は固定ビデオ入力と前もって学習したネットワークを使った傷検査とその出力としました。


簡単な用語説明 (文末の参考資料も参照)

Vitis AI:

AMD Vitis™ AI 開発環境は、FPGAを含むAMD環境にAI推論エンジンを実装するための統合環境です。KV260のSoC(system on a chip)は、ARM-CPUとFPGAが一体となったZynqMPシリーズなので、ZynqMP用のDPU(Deep learning Processor Unit):DPUCZDX8Gを使用して、REEL SSの推論部分を実装しました。

Vitis Video Analytics SDK (VVAS):

Vitis Video Analytics SDK (VVAS)は、ZynqMPを含むAMD環境にAI/画像処理(CPUを含む)、FPGA処理等を構築するフレームワークで、GStreamerのプラグイン形式をサポートしてます。今回は、REEL SS処理が3個の処理に分解されるため、それぞれをGStreamerのプラグインとして実装しました。

GStreamer:

GStreamerは、オープンソースのメディア処理コンポーネントのグラフを構築するためのライブラリです。AMDは、KV260を含むAMD環境のpetalinux上でgstreamerをサポートしています。デモ表示は、VVASの3個のプラグインを使用したREEL SS処理、2つのビデオ表示、説明資料の表示をGStreamerのスクリプトで行っています。


ディスプレイ右側の説明資料

ディスプレイ右側の説明資料

SWESTの展示なので、SWエンジニア向けに表示内容の使用技術の説明となっています。低レベル側から3個の技術、Vitis AI、VVAS、GStreamer で構成されています。

今回のデモアプリケーションは、CPUの処理2個とFPGAの処理1個が結合していますが、処理性能とFPGAのリソースを検討して、”次のデモでは、処理’‘(右の緑の四角)を、CPUからFPGAに置き換えよう”と考えるかもしれません。
その様な組み換えを可能にするため、処理をグラフで構築するGStreamerの技術と、GStreamerとFPGAの処理を結合するVVASフレームワークが便利と判断して選択しました。

参考資料