AI2GO を試す

2019年7月30日 Bee今村

はじめに

 Beeは組込み会社では知見の少ないAIにも取り組んでおり、組込みソフト開発専門の知見を活かし組込みAI(エッジAI)にも積極的に取り組んでいます。
 今回は、Xnor.ai 社が開発した AI2GO を試してみます。

AI2GO とは

 AI2GO は Xnor.ai 社製のエッジベース AI のためのプラットフォームです。AIモデルと実行環境(SDK)が提供されています。
AIモデルは計算能力の低いエッジデバイス上でも動作する用にカスタマイズされており、SDKを使用してエッジデバイス上でAIモデルを試すことができます。

AI2GO のデモを試す

環境

  • Raspberry Pi Zero(OS:raspbian strech 2019-04-10)
  • Raspberry Pi Camera V2.1

サンプルXBを実行してみる

公式ガイド https://ai2go.xnor.ai/getting-started/python の手順通りに進めました。
SDKを展開するとサンプルのXBとコードが用意されているので、SDK のサンプルから人物検出 XB の実行を試してみました。
※公式ガイドでは Linux x86_64 マシンで動作させていますが、今回は Raspberry Pi Zero で動作させるため、デバイスに合ったディレクトリを参照するように注意してください。(Raspberry Pi Zero の場合は"rpi0")

  • 用語
    • Xnor Bundle (XB)

      AIモデルと推論エンジンを含む単一のモジュールで、数行のコードでモデルをエッジデバイス上で実行できます。
      ユーザ指定のハードウェア用にトレーニング、最適化されたモデルで、モデルの編集はできないです。

    • Xnor Software Developer Kit(SDK)

      XB を実装して実験するための環境。
      C,Python のサンプルコード、サンプルコードで動作する XB が含まれています。

  • 対応しているハードウェア
    • Linux x86_64
    • Raspberry Pi 3
    • Raspberry Pi Zero
    • Toradex
    • Ambarella S5L
    • Mac OS X
  • Person Detection XB Sample

    人物検出XBのサンプルを実行してみる。
    rpi0 にはディスプレイにプレビューを出力するスクリプトが無かったため、rpi3からコピーして使用しました。

    
    python3 picamera_live_overlay_object_detector.py
    										

    CPU上で動いているためFPSはかなり低いです。(0.3FPS程度)

  • カスタムXB

    AI2GOのホームページからXBをダウンロードできます。(AI2GO のアカウント必要)
    XB は様々なパフォーマンスのモデルが用意されています。メモリ使用量と速度でモデルの選択ができるようです。

まとめ

 文章での説明だけでなくコマンド入力時の動画があったりと、ドキュメントが丁寧に作られており、 プログラミング経験のない人でも体験しやすいつくりになっているなと感じました。
 XBの種類、対応デバイス、モデルのパフォーマンスが多く、様々なニーズに応えられそうです。