active_face_liveness 0.2.0
active_face_liveness: ^0.2.0 copied to clipboard
On-device active face liveness for Flutter using RGBW illumination, eye response, head turns, parallax, and replay evidence.
0.2.0 - 2026-10-02 #
- Add opt-in built-in mouth opening and detector-backed tongue challenges, including rest/action/return validation, per-gesture timeouts, typed evidence, localized prompts and an example mouth toggle. Both default to disabled; tongue requires an application-supplied model adapter.
Behavior changes #
- Migration: direct
classifyLivenesscallers must explicitly pass all required evidence flags. Omitted flags now default to false. Incomplete scans returnunknownrather thanphoto. - A sustained squint no longer satisfies the blink challenge; require a full open–closed–open sequence. Optional mouth/tongue challenges default to disabled.
Reliability improvements #
- Fail closed on omitted liveness evidence; classify incomplete scans as unknown.
- Require continuously observed head holds and invalidate interrupted sessions.
- Use monotonic camera receipt times and rendered pulse windows, timer-driven illumination, stale-frame rejection and bounded inference draining.
- Require an open–closed–open blink on the same signal; remove squint-only pass.
- Track RGB skin patches with landmarks and camera rotation; correlate per-frame colour responses with equal weighting per pulse.
- Limit replay-loop evidence to dynamic windows during head movement.
- Extract pure Dart evidence primitives and add regression scenarios.
- Document heuristic-score limits and add a labelled-session evaluation tool.
Integration improvements #
- Added the one-line
ActiveFaceLiveness.verifyprivacy-first API. - Added stable failure codes, public scan steps, and step callbacks.
- Added configurable scanner colours, visibility controls, and header labels.
- Added a translucent outside-face-guide overlay.
- Added runtime configuration validation and privacy-safe JSON serialization.
- Added a complete integration example.
Validation #
- Static analysis passes and 33 pure-Dart regression scenarios pass.
- Full Flutter tests remain blocked by the macOS dartcv4/OpenCV native build.
- Detection thresholds and accuracy still require labelled real-device trials; the combined score is an uncalibrated heuristic, not a probability.
0.1.0 #
- Initial active face liveness package.
- Added randomized two-second RGBW illumination challenge.
- Added blink/squint, multi-region colour correlation and head-turn parallax.
- Added typed
LivenessConfig,LivenessResultandLivenessEvidenceAPIs. - Added configurable capture contrast, maximum output size and image output as PNG bytes, Base64, both, or none.
- Added Android and iOS example application.