Search packages, repositories and app categories

flutter_vision cover
Package detailsv3.0.2

flutter_vision

Plugin for managing Yolov5, Yolov8 and Yolov11 accessing with LiteRT (TensorFlow Lite) Support object detection and segmentation on Android. iOS, Working in progress.

AndroidiOS
30-day downloads
505
Likes
116
Pub points
160

Install package

flutter pub add flutter_vision

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

flutter_vision is a Flutter plugin that enables object detection and segmentation using YOLOv5, YOLOv8, and YOLOv11 models via LiteRT (TensorFlow Lite). It supports both Android and iOS platforms, offering efficient on-device inference for computer vision tasks. The plugin is designed for developers integrating real-time image analysis into mobile apps, with ongoing development to enhance functionality and performance. It's particularly useful for applications requiring fast, accurate object recognition and localization directly on the device.

Use cases

  • Real-time object detection in mobile apps
  • Image segmentation for augmented reality
  • On-device OCR and visual analysis
  • Mobile-based surveillance systems
  • AI-powered photo tagging

Key features

  • Supports YOLOv5, YOLOv8, and YOLOv11 models
  • Uses TensorFlow Lite via LiteRT for optimized performance
  • Cross-platform Android and iOS compatibility
  • Lightweight and suitable for mobile deployment
  • Built-in support for object detection and segmentation

Suitable for

  • Mobile app developers working with AI vision
  • Teams building on-device computer vision features
  • Projects requiring low-latency inference
  • Developers targeting Android and iOS with minimal setup
  • Prototyping AI-powered camera applications

Considerations

  • Still under active development
  • Limited documentation available
  • Performance depends on device hardware
  • Model size may affect app bundle size
  • iOS integration may require additional configuration

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

flutter_vision

A Flutter plugin for managing Yolov5, Yolov8, and Yolov11 accessing with LiteRT (TensorFlow Lite). Support object detection and segmentation on Android. iOS not updated, working in progress.

Installation

Add flutter_vision as a dependency in your pubspec.yaml file.

Android

In android/app/build.gradle, add the following setting in android block.

    android{
        aaptOptions {
            noCompress 'tflite'
            noCompress 'lite'
        }
    }

iOS

Coming soon ...

Usage

For YoloV5, YoloV8, and YoloV11 MODEL

  1. Create a assets folder and place your labels file and model file in it. In pubspec.yaml add:
  assets:
   - assets/labels.txt
   - assets/yolovx.tflite
  1. Import the library:
import 'package:flutter_vision/flutter_vision.dart';
  1. Initialized the flutter_vision library:
 FlutterVision vision = FlutterVision();
  1. Load the model and labels: modelVersion: yolov5 or yolov8 or yolov8seg or yolo11 or yolov11
await vision.loadYoloModel(
        labels: 'assets/labelss.txt',
        modelPath: 'assets/yolov5n.tflite',
        modelVersion: "yolov5",
        quantization: false,
        numThreads: 1,
        useGpu: false);
For camera live feed
  1. Make your first detection: confThreshold work with yolov5 other case it is omited.

Make use of camera plugin

final result = await vision.yoloOnFrame(
        bytesList: cameraImage.planes.map((plane) => plane.bytes).toList(),
        imageHeight: cameraImage.height,
        imageWidth: cameraImage.width,
        iouThreshold: 0.4,
        confThreshold: 0.4,
        classThreshold: 0.5);
For static image
  1. Make your first detection or segmentation:
final result = await vision.yoloOnImage(
        bytesList: byte,
        imageHeight: image.height,
        imageWidth: image.width,
        iouThreshold: 0.8,
        confThreshold: 0.4,
        classThreshold: 0.7);
  1. Release resources:
await vision.closeYoloModel();

About results

For Yolo v5, v8, or v11 in detection task

result is a List<Map<String,dynamic>> where Map have the following keys:

   Map<String, dynamic>:{
    "box": [x1:left, y1:top, x2:right, y2:bottom, class_confidence]
    "tag": String: detected class
   }

For YoloV8 in segmentation task

result is a List<Map<String,dynamic>> where Map have the following keys:

   Map<String, dynamic>:{
    "box": [x1:left, y1:top, x2:right, y2:bottom, class_confidence]
    "tag": String: detected class
    "polygons": List<Map<String, double>>: [{x:coordx, y:coordy}]
   }

Example

Screenshot_2022-04-08-23-59-05-652_com vladih dni_scanner_example Home Detection Segmentation

Contact

  • For flutter_vision bug reports and feature requests please visit GitHub Issues
  • For direct contact: yurihuallpavargas@gmail.com

Categories

Dependencies

Dependency list 1 items

Source repository

Projects using this package

No data available yet.