feat(v1): relax fall sensitivity for low overhead cameras

Adds configurable event.require_rapid_drop (default off), require_lower_body
(default off) and horizontal_angle_threshold_degrees (default 45). With the
lenient defaults a sustained horizontal pose alone enters SUSPECT and confirms
after the confirm window, which is now the main false-positive guard; missing
knees/ankles no longer reject the pose. Thresholds flow into config_version.
End-to-end smoke confirms a lying pose; 70 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
ila
2026-07-21 23:29:16 +08:00
co-authored by Claude Opus 4.8
parent 5f29a8e60f
commit b1f0e8aeb4
12 changed files with 104 additions and 12 deletions
+8
View File
@@ -36,6 +36,14 @@ def test_missing_ankles_rejects_pose():
assert quality.reason == "required_joint_low_confidence"
def test_missing_ankles_accepted_when_lower_body_not_required():
quality = assess_pose_quality(
_pose(missing_ankles=True), threshold=0.4, require_lower_body=False
)
assert quality.accepted is True
def test_horizontal_body_is_evidence_not_event():
pose = _pose(horizontal=True)
quality = assess_pose_quality(pose, threshold=0.4)