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
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- YOLOView
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