Skip to main content

Flutter Firebase ML Custom Examples

Flutter Firebase ML Custom: How To Examples

In this tutorial, we will explore various examples of using the firebase_ml_custom package in Flutter. The firebase_ml_custom package allows us to use custom machine learning models in our Flutter applications, leveraging the power of Firebase ML.

Installation

To get started, add the firebase_ml_custom package to your Flutter project by adding the following line to your pubspec.yaml file:

dependencies:
firebase_ml_custom: ^0.6.0

Then, run flutter pub get to fetch the package.

Example 1: Text Classification

In this example, we will use a custom machine learning model to classify text into different categories. We assume that you already have a trained model ready for text classification.

  1. Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
  1. Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
  1. Perform text classification:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, sequenceLength, 1]),
FirebaseModelIOOption(FirebaseModelDataType.INT32, [1])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);

FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);

interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
  1. Process the output:
TensorBuffer outputBuffer = modelOutput.getOutput(0);
List<List<dynamic>> outputClasses = outputBuffer.getDoubleList();

Example 2: Image Classification

In this example, we will use a custom machine learning model to classify images into different categories. We assume that you already have a trained model ready for image classification.

  1. Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
  1. Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
  1. Perform image classification:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, inputSize, inputSize, 3])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);

FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);

interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
  1. Process the output:
TensorBuffer outputBuffer = modelOutput.getOutput(0);
List<List<dynamic>> outputClasses = outputBuffer.getDoubleList();

Example 3: Object Detection

In this example, we will use a custom machine learning model to perform object detection on images. We assume that you already have a trained model ready for object detection.

  1. Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
  1. Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
  1. Perform object detection:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, inputSize, inputSize, 3])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses]),
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses]),
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses]),
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);

FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);

interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
  1. Process the output:
TensorBuffer outputBuffer1 = modelOutput.getOutput(0);
List<List<dynamic>> outputBoxes = outputBuffer1.getDoubleList();

TensorBuffer outputBuffer2 = modelOutput.getOutput(1);
List<List<dynamic>> outputClasses = outputBuffer2.getDoubleList();

TensorBuffer outputBuffer3 = modelOutput.getOutput(2);
List<List<dynamic>> outputScores = outputBuffer3.getDoubleList();

TensorBuffer outputBuffer4 = modelOutput.getOutput(3);
List<List<dynamic>> outputNumDetections = outputBuffer4.getDoubleList();

Example 4: Sentiment Analysis

In this example, we will use a custom machine learning model to perform sentiment analysis on text. We assume that you already have a trained model ready for sentiment analysis.

  1. Import the necessary packages:
import 'package:firebase_ml_custom/firebase_ml_custom.dart';
import 'package:firebase_ml_custom/firebase_ml_custom.dart' as custom_ml;
  1. Load your custom model:
FirebaseCustomRemoteModel remoteModel = FirebaseCustomRemoteModel('your_model_name');
FirebaseModelManager modelManager = FirebaseModelManager.instance;
modelManager.registerRemoteModel(remoteModel);
  1. Perform sentiment analysis:
FirebaseModelInterpreter interpreter = FirebaseModelInterpreter.instance;
FirebaseModelInputOutputOptions inputOutputOptions = FirebaseModelInputOutputOptions([
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, sequenceLength, 1])
], [
FirebaseModelIOOption(FirebaseModelDataType.FLOAT32, [1, numClasses])
]);

FirebaseModelInput modelInput = FirebaseModelInput.fromData([yourInputData]);
FirebaseModelOutput modelOutput = FirebaseModelOutput(outputBuffers);

interpreter.run(
remoteModel: remoteModel,
inputs: modelInput,
inputOutputOptions: inputOutputOptions,
output: modelOutput,
);
  1. Process the output:
TensorBuffer outputBuffer = modelOutput.getOutput(0);
List<List<dynamic>> outputSentiment = outputBuffer.getDoubleList();

By following the steps outlined in each example, you can leverage the power of custom machine learning models in your Flutter applications.