今回は 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 件のコメント:
コメントを投稿