AnimalDetectorCore class
On-device animal detection using a multi-stage TensorFlow Lite pipeline.
Runs SSD body detection, species classification, and optionally body pose estimation. Returns a list of Animal objects with bounding boxes, species labels, and pose keypoints.
Usage:
final detector = AnimalDetectorCore();
await detector.initializeFromBuffers(...);
final animals = await detector.detect(imageBytes);
await detector.dispose();
Constructors
- AnimalDetectorCore({AnimalPoseModel poseModel = AnimalPoseModel.rtmpose, bool enablePose = true, double cropMargin = 0.20, double detThreshold = 0.5, PerformanceConfig performanceConfig = const PerformanceConfig(), PerformanceConfig? posePerformanceConfig})
- Creates an animal detector with the specified configuration.
Properties
- cropMargin → double
-
Margin fraction added to each side of the body bounding box before cropping.
final
- detThreshold → double
-
SSD detection score threshold.
final
- effectivePoseConfig → PerformanceConfig
-
The config the pose stage actually runs with.
no setter
- enablePose → bool
-
Whether to run pose estimation.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isInitialized → bool
-
Returns true if the detector has been initialized and is ready to use.
no setter
- performanceConfig → PerformanceConfig
-
Performance configuration for TensorFlow Lite inference.
final
- poseModel → AnimalPoseModel
-
Body pose model variant.
final
- posePerformanceConfig → PerformanceConfig?
-
Optional override of performanceConfig for the body pose stage alone.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
detect(
Uint8List imageBytes) → Future< List< Animal> > - Detects animals in an image from raw bytes.
-
detectFromMat(
Mat image, {required int imageWidth, required int imageHeight}) → Future< List< Animal> > - Detects animals in an OpenCV Mat image.
-
dispose(
) → Future< void> - Releases all resources used by the detector.
-
initialize(
{void onDownloadProgress(String model, int received, int total)?, bool useIsolateInterpreter = true}) → Future< void> - Initializes the detector by loading TensorFlow Lite models.
-
initializeFromBuffers(
{required Uint8List bodyDetectorBytes, required Uint8List classifierBytes, required String speciesMappingJson, Uint8List? poseModelBytes, bool useIsolateInterpreter = true, bool useCompiledModel = false, bool compiledForceCpu = false, Set< Accelerator> accelerators = const {Accelerator.gpu, Accelerator.cpu}, Precision precision = Precision.fp32}) → Future<void> - Initializes the detector from pre-loaded model bytes.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
isHrnetCached(
) → Future< bool> - Returns true if the HRNet model is already cached locally.