pose_detection 3.0.1
pose_detection: ^3.0.1 copied to clipboard
Pose, person and landmark detection using on-device TFLite models.
3.0.1 #
- Update flutter_litert -> 2.4.1
3.0.0 #
Breaking:
-
PoseDetectorconfiguration moves from the constructor toinitialize().PoseDetector({mode: ..., landmarkModel: ..., ...})→PoseDetector()+await detector.initialize(mode: ..., landmarkModel: ..., ...). MatchesFaceDetector's shape.PoseDetector.create({...})continues to accept the same named params unchanged. -
PoseDetector.detectFromMatsignature changed.detectFromMat(cv.Mat, {required int imageWidth, required int imageHeight})is nowdetectFromMat(cv.Mat). Dimensions are read from the Mat directly. Existing callers must drop theimageWidthandimageHeightnamed arguments. -
detect(...)no longer swallows exceptions. Undecodable image bytes now propagate as an error (matchingFaceDetectorandHandDetectorbehaviour) rather than silently returning an empty list. Wrapdetect(...)in atry/catchif your callsite depended on the previous silent-failure behaviour. On web, decode failure still returns an empty list because browser HTMLImageElement decode does not throw. -
All inference now runs in a dedicated background isolate, keeping the UI thread free. Previously, inference ran on the calling thread.
-
Add
PoseDetector.create({...})one-step factory (mirrorsFaceDetector.createandHandDetector.create). -
Add
detectFromFilepath(String path): reads the file and delegates todetect. -
Add
detectFromMatBytes(Uint8List, {required int width, required int height, int matType})zero-copy fast path viaTransferableTypedData. -
Add
initializeFromBuffers({required Uint8List yoloBytes, required Uint8List landmarkBytes})for callers that load model bytes independently of Flutter's asset system. -
Add
isReadygetter as an alias forisInitialized. -
Add a top-level Live Camera Detection section to the README, modelled on
face_detection_tflite'spackYuv420+ nativecv.cvtColorpattern, and remove the orphanassets/models/pose_detection.tfliteleft over from the pre-YOLOv8n scaffold. -
Expand
flutter_litertre-exports through thepose_detectionbarrel to matchface_detection_tflite: tensor helpers (createNHWCTensor4D,fillNHWC4D,allocTensorShape,flattenDynamicTensor), math helpers (sigmoid,sigmoidClipped,clamp01,clip), letterbox helpers (computeLetterboxParams,LetterboxParams), BGR→RGB byte helpers (bgrBytesToRgbFloat32,bgrBytesToSignedFloat32), andPerformanceMode. Consumers no longer need a directflutter_litertimport for these.
2.1.1 #
- Add public
PoseDetector.modelVersionandPoseDetector.modelVersionFor(...)APIs for downstream cache invalidation.
2.1.0 #
- Fix live camera in the example app on Android (previously detections were sideways and unreliable):
- Apply rotation to raw landscape camera frames before detection so the pose detector sees upright people.
_rotationFlagForFramehandles all four device orientations (portrait up/down, landscape left/right) via a combinedsensorOrientation+DeviceOrientationformula. - Mirror the overlay on Android front camera to match
CameraPreview's auto-mirrored preview texture. - Replace the per-pixel Dart YUV loop with
flutter_litert's sharedpackYuv420helper + nativecv.cvtColoron mobile (iOS NV12, Android NV21 / I420). - Replace the per-pixel Dart BGRA→BGR / RGBA→BGR loop with native
cv.cvtColoron desktop (macOS / Linux).
- Apply rotation to raw landscape camera frames before detection so the pose detector sees upright people.
- Align example app live-camera layout with
face_detection_tflite: Material+Row top bar (replaces AppBar), flip-camera button, FPS + detection-time display, rotating top bar in landscape with safe-area padding, and a settings popup housing pose-specific controls (landmark-model chips: Lite / Full / Heavy). - Re-export
packYuv420,YuvPlane,YuvLayout, andPackedYuvfromflutter_litertthrough thepose_detectionbarrel. - Update
flutter_litertto^2.2.0.
2.0.10 #
- Update flutter_litert -> 2.1.0
2.0.9 #
- Update flutter_litert to 2.0.13
2.0.8 #
- Update flutter_litert -> 2.0.12
2.0.7 #
- Update flutter_litert 2.0.10 -> 2.0.11
2.0.6 #
- Fixed Metal GPU delegate producing inconsistent detection counts on iOS
2.0.5 #
- Update documentation
2.0.4 #
- Update flutter_litert 2.0.8 -> 2.0.10
2.0.3 #
- Enable auto hardware acceleration by default (XNNPACK on all native platforms, Metal GPU on iOS)
- Update flutter_litert 2.0.6 -> 2.0.8
2.0.2 #
- Update flutter_litert 2.0.5 -> 2.0.6
2.0.1 #
- Fix Xcode build warnings by declaring PrivacyInfo.xcprivacy as a resource bundle in iOS and macOS podspecs
2.0.0 #
Breaking: Point now uses double coordinates. BoundingBox is now a 4-corner Point-based type.
- Use shared
PointandBoundingBoxfromflutter_litert2.0.0 toPixel()now returns full-precisiondoublecoordinates (was truncating toint)- Extract
PersonDetectorBaseshared between native and web detectors - Simplify model classes and detector implementations
- Remove integration tests from unit test suite
- Remove dead test helpers (
test_config.dart)
1.0.7 #
- Update
camera_desktop1.0.1 -> 1.0.3
1.0.6 #
- Update
flutter_litert-> 1.2.0 - Refactor to use
flutter_litertshared utilities (InterpreterFactory,InterpreterPool,PerformanceConfig)
1.0.5 #
- Update
opencv_dart2.1.0 -> 2.2.1 - Update
flutter_litert1.0.2 -> 1.0.3
1.0.4 #
- Update
flutter_litert1.0.1 -> 1.0.2
1.0.3 #
- Update documentation
1.0.2 #
- Update
flutter_litertto 1.0.1,camerato 0.12.0
1.0.1 #
- Update
flutter_litertto 0.2.2
1.0.0 #
- Initial release
- Person detection using YOLOv8
- Pose landmark detection with MediaPipe Pose
- Support for lite, full, and heavy models
- Box-only and full landmark detection modes