2
2
3
3
import android .graphics .Bitmap ;
4
4
import android .graphics .Color ;
5
- import android .os .Build ;
6
5
import androidx .annotation .NonNull ;
7
6
import androidx .appcompat .app .AppCompatActivity ;
8
7
import android .util .Log ;
9
8
10
9
import com .google .android .gms .tasks .OnFailureListener ;
11
10
import com .google .android .gms .tasks .OnSuccessListener ;
12
11
import 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 ;
17
14
import com .google .firebase .ml .custom .FirebaseModelDataType ;
18
15
import com .google .firebase .ml .custom .FirebaseModelInputOutputOptions ;
19
16
import com .google .firebase .ml .custom .FirebaseModelInputs ;
20
17
import com .google .firebase .ml .custom .FirebaseModelInterpreter ;
21
- import com .google .firebase .ml .custom .FirebaseModelOptions ;
18
+ import com .google .firebase .ml .custom .FirebaseModelInterpreterOptions ;
22
19
import com .google .firebase .ml .custom .FirebaseModelOutputs ;
23
20
24
21
import java .io .BufferedReader ;
@@ -29,48 +26,32 @@ public class CustomModelActivity extends AppCompatActivity {
29
26
30
27
private void configureHostedModelSource () {
31
28
// [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 ();
50
31
// [END mlkit_cloud_model_source]
51
32
}
52
33
53
34
private void configureLocalModelSource () {
54
35
// [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 ();
60
39
// [END mlkit_local_model_source]
61
40
}
62
41
63
- private FirebaseModelInterpreter createInterpreter () throws FirebaseMLException {
42
+ private FirebaseModelInterpreter createInterpreter (FirebaseCustomLocalModel localModel ) throws FirebaseMLException {
64
43
// [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
+ }
71
52
// [END mlkit_create_interpreter]
72
53
73
- return firebaseInterpreter ;
54
+ return interpreter ;
74
55
}
75
56
76
57
private FirebaseModelInputOutputOptions createInputOutputOptions () throws FirebaseMLException {
@@ -109,7 +90,8 @@ private float[][][][] bitmapToInputArray() {
109
90
}
110
91
111
92
private void runInference () throws FirebaseMLException {
112
- FirebaseModelInterpreter firebaseInterpreter = createInterpreter ();
93
+ FirebaseCustomLocalModel localModel = new FirebaseCustomLocalModel .Builder ().build ();
94
+ FirebaseModelInterpreter firebaseInterpreter = createInterpreter (localModel );
113
95
float [][][][] input = bitmapToInputArray ();
114
96
FirebaseModelInputOutputOptions inputOutputOptions = createInputOutputOptions ();
115
97
0 commit comments