Flutter camera Firebase barcode-scanner Dart
Need help with flutter_camera_ml_vision?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
rushio-consulting

Description

A flutter widget that show the camera stream and allow ML vision recognition on it, it allow you to detect barcodes, labels, text, faces...

152 Stars 66 Forks MIT License 72 Commits 34 Opened issues

Services available

Need anything else?

Flutter Camera Ml Vision

pub package

A Flutter package for iOS and Android to show a preview of the camera and detect things with Firebase ML Vision.

Installation

First, add

flutter_camera_ml_vision
as a dependency.
...
dependencies:
  flutter:
    sdk: flutter
  flutter_camera_ml_vision: ^2.2.4
...

Configure Firebase

You must also configure Firebase for each platform project: Android and iOS (see the

example
folder or https://codelabs.developers.google.com/codelabs/flutter-firebase/#4 for step by step details).

iOS

Add two rows to the ios/Runner/Info.plist:

  • one with the key Privacy - Camera Usage Description and a usage description.
  • and one with the key Privacy - Microphone Usage Description and a usage description. Or in text format add the key:
NSCameraUsageDescription
Can I use the camera please?
NSMicrophoneUsageDescription
Can I use the mic please?

If you're using one of the on-device APIs, include the corresponding ML Kit library model in your Podfile. Then run pod update in a terminal within the same directory as your Podfile.

pod 'Firebase/MLVisionBarcodeModel'
pod 'Firebase/MLVisionFaceModel'
pod 'Firebase/MLVisionLabelModel'
pod 'Firebase/MLVisionTextModel'

Android

Change the minimum Android sdk version to 21 (or higher) in your

android/app/build.gradle
file.
minSdkVersion 21

ps: This is due to the dependency on the camera plugin.

If you're using the on-device

LabelDetector
, include the latest matching ML Kit: Image Labeling dependency in your app-level
build.gradle
file.
android {
    dependencies {
        // ...

    api 'com.google.firebase:firebase-ml-vision-image-label-model:19.0.0'
}

}

If you receive compilation errors, try an earlier version of ML Kit: Image Labeling.

Optional but recommended: If you use the on-device API, configure your app to automatically download the ML model to the device after your app is installed from the Play Store. To do so, add the following declaration to your app's

AndroidManifest.xml
file:
  ...
  
  

Usage

1. Example with Barcode

CameraMlVision>(
  detector: FirebaseVision.instance.barcodeDetector().detectInImage,
  onResult: (List barcodes) {
    if (!mounted || resultSent) {
      return;
    }
    resultSent = true;
    Navigator.of(context).pop(barcodes.first);
  },
)

CameraMlVision
is a widget that show the preview of the camera. It take a detector as parameter here we pass the
detectInImage
method of the
BarcodeDetector
object. The detector parameter can take all the different FirebaseVision Detector. Here is a list :
FirebaseVision.instance.barcodeDetector().detectInImage
FirebaseVision.instance.cloudLabelDetector().detectInImage
FirebaseVision.instance.faceDetector().processImage
FirebaseVision.instance.labelDetector().detectInImage
FirebaseVision.instance.textRecognizer().processImage

Then when something is detected the onResult callback is called with the data in the parameter of the function.

Exposed functionality from CameraController

We expose some functionality from the CameraController class here a a list of these :

  • value
  • prepareForVideoRecording
  • startVideoRecording
  • stopVideoRecording
  • takePicture

Getting Started

See the

example
directory for a complete sample app.

Features and bugs

Please file feature requests and bugs at the issue tracker.

Technical Support

For any technical support, don't hesitate to contact us. Find more information in our website

For now, all the issues with the label

support
mean that they come out of the scope of the following project. So you can contact us as a support.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.