今回は firebase 上に tflite ファイルをホストして CloudModel として利用します。
まず firebase console から tflite ファイルをアップロードします。

モデル名は mobilenet_v1_quant にしました。この名前はアプリ側からモデルを指定するときに使います。
firebase にホストしてある model を使うには FirebaseCloudModelSource を用意します。 FirebaseCloudModelSource.Builder() の引数には firebase console で設定したモデル名(ここでは "mobilenet_v1_quant")を指定します。
モデルが更新されたときにダウンロードするようにするには enableModelUpdates() で true を指定します。
setInitialDownloadConditions() で初回ダウンロード時の、setUpdatesDownloadConditions() で更新モデルダウンロード時の設定をすることができます。設定の FirebaseModelDownloadConditions はFirebaseModelDownloadConditions.Builder を使って生成します。設定できる項目は requireCharging(), requireDeviceIdle(), requireWifi() です。
作成した FirebaseCloudModelSource は FirebaseModelManager.registerCloudModelSource() で登録しておきます。
FirebaseModelOptions.Builder の setCloudModelName() には FirebaseCloudModelSource.Builder() の引数に指定した名前(ここでは "mobilenet_v1_quant")を渡します。
最後に FirebaseModelOptions を渡して FirebaseModelInterpreter のインスタンスを取得します。
- private val interpreter: FirebaseModelInterpreter by lazy {
- val cloudModelSource = FirebaseCloudModelSource.Builder("mobilenet_v1_quant")
- .enableModelUpdates(true)
- .setUpdatesDownloadConditions(
- FirebaseModelDownloadConditions.Builder()
- .requireWifi()
- .build()
- )
- .build()
- FirebaseModelManager.getInstance().registerCloudModelSource(cloudModelSource)
- val modelOptions = FirebaseModelOptions.Builder()
- .setCloudModelName("mobilenet_v1_quant")
- .build()
- FirebaseModelInterpreter.getInstance(modelOptions)!!
- }
interpreter を使って推論を行う部分は前回の「ML Kit Custom Model その2 : Mobilenet_V1_1.0_224_quant を LocalModel として使う」と同じです。
0 件のコメント:
コメントを投稿