NonOS / RTOS など組み込み機器向けの AI 推論エンジン。TFLite 互換の推論 API を提供します。
プラットフォームを選び、最初の TFLite 推論を動かしてみましょう。
ailia-models-tflite にはモデルごとの推論スクリプトが同梱されています。一度クローンして共通の依存をインストールしたあと、各モデルのフォルダへ cd して実行するだけです。-v 0 で Web カメラ入力、-i image.png で静止画を扱えます。リポジトリ直下の python3 launcher.py を起動すると、量子化 TFLite モデルを GUI で参照できます。
git clone https://github.com/ailia-ai/ailia-models-tflite.git
cd ailia-models-tflite
pip3 install -r requirements.txt
cd object_detection/yolox
python3 yolox.py -v 0
サンプルリポジトリ
ailia TFLite Runtime はデスクトップ / モバイル / 組み込み向けの C99 製 TensorFlow Lite 互換推論エンジンです。
.tflite)TFLite モデルを読み込み推論を実行する最小サンプル。Python API は tflite_runtime.interpreter と同じ形なので、import を差し替えるだけで既存コードがそのまま動きます。
import ailia_tflite
import numpy as np
interpreter = ailia_tflite.Interpreter(model_path="model.tflite")
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
input_data = np.zeros(input_details[0]["shape"], dtype=np.float32)
interpreter.set_tensor(input_details[0]["index"], input_data)
interpreter.invoke()
output = interpreter.get_tensor(output_details[0]["index"])
print(output.shape)
ailia TFLite Runtime についてのよくある質問。
はい。Python の ailia_tflite.Interpreter クラスは tflite_runtime.interpreter.Interpreter と同じインターフェース (コンストラクタも、allocate_tensors() / set_tensor() / invoke() / get_tensor() も同じ) を提供します。既存の TFLite Python スクリプトは通常 import を差し替えるだけで動作します。
主に 2 点です。Intel MKL による PC 上の高速推論、そして軽量な C99 実装による NonOS / RTOS 組み込み配備。Android では NNAPI 経由でオンデバイス NPU も駆動できます。
ailia-models-tflite のサンプルに --tflite を渡すと、本家挙動と比較できます。
はい。INT8 量子化 TFLite モデルが標準でサポートされています。組み込みや NPU 向けには量子化が推奨です。ailia-models-tflite のモデル群も量子化版を中心に構成されています。
C99 コアは NonOS / RTOS や小フットプリント配備向けに設計されています。具体的な MCU 対応は利用可能メモリやツールチェーンに依存します。組み込み移植の詳細は ailia までお問い合わせください。
ailia_tflite.Interpreter 構築時に env_id (および任意で flags / num_threads) を指定します。デフォルトはプラットフォーム上で最速のバックエンドを自動選択します。
評価ライセンスは実行時に自動でダウンロードされ、開発・評価用途に利用できます。組み込みでの再配布を含む商用配布には製品ライセンスを申請してください。詳細は ailia ライセンス規約 を参照してください。