YOLOView class

A Flutter widget that displays a real-time camera preview with YOLO object detection.

This widget creates a platform view that runs YOLO inference on camera frames and provides detection results through callbacks. It supports various YOLO tasks including object detection, segmentation, classification, pose estimation, and oriented bounding box detection.

Example:

YOLOView(
  modelPath: 'assets/models/yolov8n.mlmodel',
  task: YOLOTask.detect,
  onResult: (List<YOLOResult> results) {
    // Handle detection results
    for (var result in results) {
      print('Detected ${result.className} with ${result.confidence}');
    }
  },
  onPerformanceMetrics: (Map<String, double> metrics) {
    print('FPS: ${metrics['fps']}');
  },
)

The widget requires camera permissions to be granted before use. On iOS, add NSCameraUsageDescription to Info.plist. On Android, add CAMERA permission to AndroidManifest.xml.

Inheritance

Constructors

YOLOView({Key? key, required String modelPath, required YOLOTask task, YOLOViewController? controller, String cameraResolution = '720p', dynamic onResult(List<YOLOResult>)?, dynamic onPerformanceMetrics(YOLOPerformanceMetrics)?, dynamic onStreamingData(Map<String, dynamic> streamData)?, bool showNativeUI = false, dynamic onZoomChanged(double zoomLevel)?, YOLOStreamingConfig? streamingConfig, double confidenceThreshold = 0.5, double iouThreshold = 0.45})
const

Properties

cameraResolution String
The camera resolution to use.
final
confidenceThreshold double
Initial confidence threshold for detections.
final
controller YOLOViewController?
Optional controller for managing detection settings.
final
hashCode int
The hash code for this object.
no setterinherited
iouThreshold double
Initial IoU (Intersection over Union) threshold.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
modelPath String
Path to the YOLO model file.
final
onPerformanceMetrics → dynamic Function(YOLOPerformanceMetrics)?
Callback invoked with performance metrics.
final
onResult → dynamic Function(List<YOLOResult>)?
Callback invoked when new detection results are available.
final
onStreamingData → dynamic Function(Map<String, dynamic> streamData)?
Callback invoked with comprehensive raw streaming data.
final
onZoomChanged → dynamic Function(double zoomLevel)?
Callback invoked when the camera zoom level changes.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
showNativeUI bool
Whether to show native UI controls on the camera preview.
final
streamingConfig YOLOStreamingConfig?
Initial streaming configuration for detection results.
final
task YOLOTask
The type of YOLO task to perform.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<YOLOView>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited