ザイリンクスのreVISIONスタックは、コンピュータビジョン、機械学習、コネクティビティ & センサー サポート に注力してFPGA上で動作させることのできるハードウェアデザインやソフトウェアスタックを提供している。
このなかでコンピュータビジョンに注目してみると、コンピュータビジョン向けの最も有名なライブラリ群OpenCVをベースにしたザイリンクスのxfOpenCVを提供している。
- 高い応答性とリコンフィギャラブルなビジョン システム
https://japan.xilinx.com/products/design-tools/embedded-vision-zone.html#computer
この中で、提供しているライブラリは、上記のウェブサイトによると、
- OpenCV 3.1 ライブラリの数百以上の関数が、Zynq の ARM Cortex™-A9 および Cortex A53 コアで実行するために利用可能
- 約 45 個の OpenCV 関数 (OpenVX のサブセット) が、ザイリンクス SoC 向けに RTL に最適化された関数ライブラリとして利用可能
- デバイス使用率と性能を示したライブラリ ユーザー ガイド
- ほとんどの関数は、1 および 8 ピクセルのパラレル バージョンに対応
OpenCVはARM Cortexで動作させ、OpenVXのサブセットはSoCやRTL実装されているということだろうか?興味がある。 そもそもOpenVXというのは画像認識のためのAPIで、現在はバージョン1.2まで定義されているが実装としてはnVIDIAとAMDによる実装しか存在していない。
- nVIDIA VisionWorks
VisionWorks | NVIDIA Developer
- AMD OpenVX
とりあえずWindows上で手っ取り早く試してみる方法として、他者が提供している仮想マシンをダウンロードして実行してみる方法がある。
GitHub - rgiduthuri/openvx_tutorial: Khronos OpenVX Tutorial Material
VirtualBoxの仮想イメージをダウンロードして、実行してみると、いくつかプロジェクトが立ち上がってOpenVXのサンプルを実行できる。
それ以外にも、日本語のチュートリアルも存在する。これらをいくつか触ってみて、OpenVXの理解を深めていこうかな。