22
33import android .graphics .Bitmap ;
44import android .graphics .Color ;
5- import android .os .Build ;
65import androidx .annotation .NonNull ;
76import androidx .appcompat .app .AppCompatActivity ;
87import android .util .Log ;
98
109import com .google .android .gms .tasks .OnFailureListener ;
1110import com .google .android .gms .tasks .OnSuccessListener ;
1211import com .google .firebase .ml .common .FirebaseMLException ;
13- import com .google .firebase .ml .common .modeldownload .FirebaseLocalModel ;
14- import com .google .firebase .ml .common .modeldownload .FirebaseModelDownloadConditions ;
15- import com .google .firebase .ml .common .modeldownload .FirebaseModelManager ;
16- import com .google .firebase .ml .common .modeldownload .FirebaseRemoteModel ;
12+ import com .google .firebase .ml .custom .FirebaseCustomLocalModel ;
13+ import com .google .firebase .ml .custom .FirebaseCustomRemoteModel ;
1714import com .google .firebase .ml .custom .FirebaseModelDataType ;
1815import com .google .firebase .ml .custom .FirebaseModelInputOutputOptions ;
1916import com .google .firebase .ml .custom .FirebaseModelInputs ;
2017import com .google .firebase .ml .custom .FirebaseModelInterpreter ;
21- import com .google .firebase .ml .custom .FirebaseModelOptions ;
18+ import com .google .firebase .ml .custom .FirebaseModelInterpreterOptions ;
2219import com .google .firebase .ml .custom .FirebaseModelOutputs ;
2320
2421import java .io .BufferedReader ;
@@ -29,48 +26,32 @@ public class CustomModelActivity extends AppCompatActivity {
2926
3027 private void configureHostedModelSource () {
3128 // [START mlkit_cloud_model_source]
32- FirebaseModelDownloadConditions .Builder conditionsBuilder =
33- new FirebaseModelDownloadConditions .Builder ().requireWifi ();
34- if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .N ) {
35- // Enable advanced conditions on Android Nougat and newer.
36- conditionsBuilder = conditionsBuilder
37- .requireCharging ()
38- .requireDeviceIdle ();
39- }
40- FirebaseModelDownloadConditions conditions = conditionsBuilder .build ();
41-
42- // Build a remote model source object by specifying the name you assigned the model
43- // when you uploaded it in the Firebase console.
44- FirebaseRemoteModel cloudSource = new FirebaseRemoteModel .Builder ("my_cloud_model" )
45- .enableModelUpdates (true )
46- .setInitialDownloadConditions (conditions )
47- .setUpdatesDownloadConditions (conditions )
48- .build ();
49- FirebaseModelManager .getInstance ().registerRemoteModel (cloudSource );
29+ FirebaseCustomRemoteModel remoteModel =
30+ new FirebaseCustomRemoteModel .Builder ("your_model" ).build ();
5031 // [END mlkit_cloud_model_source]
5132 }
5233
5334 private void configureLocalModelSource () {
5435 // [START mlkit_local_model_source]
55- FirebaseLocalModel localSource =
56- new FirebaseLocalModel .Builder ("my_local_model" ) // Assign a name to this model
57- .setAssetFilePath ("my_model.tflite" )
58- .build ();
59- FirebaseModelManager .getInstance ().registerLocalModel (localSource );
36+ FirebaseCustomLocalModel localModel = new FirebaseCustomLocalModel .Builder ()
37+ .setAssetFilePath ("your_model.tflite" )
38+ .build ();
6039 // [END mlkit_local_model_source]
6140 }
6241
63- private FirebaseModelInterpreter createInterpreter () throws FirebaseMLException {
42+ private FirebaseModelInterpreter createInterpreter (FirebaseCustomLocalModel localModel ) throws FirebaseMLException {
6443 // [START mlkit_create_interpreter]
65- FirebaseModelOptions options = new FirebaseModelOptions .Builder ()
66- .setRemoteModelName ("my_cloud_model" )
67- .setLocalModelName ("my_local_model" )
68- .build ();
69- FirebaseModelInterpreter firebaseInterpreter =
70- FirebaseModelInterpreter .getInstance (options );
44+ FirebaseModelInterpreter interpreter = null ;
45+ try {
46+ FirebaseModelInterpreterOptions options =
47+ new FirebaseModelInterpreterOptions .Builder (localModel ).build ();
48+ interpreter = FirebaseModelInterpreter .getInstance (options );
49+ } catch (FirebaseMLException e ) {
50+ // ...
51+ }
7152 // [END mlkit_create_interpreter]
7253
73- return firebaseInterpreter ;
54+ return interpreter ;
7455 }
7556
7657 private FirebaseModelInputOutputOptions createInputOutputOptions () throws FirebaseMLException {
@@ -109,7 +90,8 @@ private float[][][][] bitmapToInputArray() {
10990 }
11091
11192 private void runInference () throws FirebaseMLException {
112- FirebaseModelInterpreter firebaseInterpreter = createInterpreter ();
93+ FirebaseCustomLocalModel localModel = new FirebaseCustomLocalModel .Builder ().build ();
94+ FirebaseModelInterpreter firebaseInterpreter = createInterpreter (localModel );
11395 float [][][][] input = bitmapToInputArray ();
11496 FirebaseModelInputOutputOptions inputOutputOptions = createInputOutputOptions ();
11597
0 commit comments