{"active_scenarios": ["no_hardhat_persistent", "falldown_detected", "ppe_status_check"], "analysis_config": {"flush_interval_seconds": 15.0, "include_event_records": true, "max_buffer_records": 32, "summary_interval_frames": 120, "summary_only": true}, "cctv_id": "26", "created_at": "2026-06-22T10:28:36", "instance_id": "38980f4a", "record_type": "session_start", "source_url": "file:///data/playlist/uploads/251027_fall_test_input_video/해상도편집/강진광주_넘어짐_헬멧미착용_샘플/강진광주_쓰러짐_헬멧미착용_샘플__fix_20251114_150454.mp4"}
{"anchor_point": null, "cctv_id": "26", "created_at": "2026-06-22T10:28:51", "detail": {"candidate_count": 2, "candidate_state": "ground", "crouch_incident_active": false, "downward_motion_norm": 0.18781179975169573, "edge_entry_override_used": false, "fall_accept_reason": null, "fall_incident_active": true, "fall_recovery_emit_override_used": false, "features": {"bbox_h": 129.0, "bbox_h_over_w": 1.0455927051671732, "hip_ankle_x_ratio": 0.9974226804123711, "left_knee_deg": 69.84948572758829, "max_knee_deg": 87.2692254633009, "min_knee_deg": 69.84948572758829, "right_knee_deg": 87.2692254633009, "torso_angle_deg": 146.6370663226357, "torso_vertical_ratio": 0.2751937984496124, "worker_center_y": 574.0, "ygap_norm": 0.0}, "from_fall_only": false, "ground_variant": "ground_side", "instant_state": "ground", "prev_stable_state": "standing", "recent_fall_suppressed": true, "recent_ground_exit_suppressed": false, "scores": {"crouch": 0.32, "ground": 0.7740555628372501, "ground_front_back": 0.5733950698191667, "ground_side": 0.7740555628372501, "kneel": 0.3, "standing": 0.15}, "stable_state": "ground", "stable_state_dwell_seconds": 0.0, "standing_seen_before": true, "track_kind": "real", "track_stable_frames": 6}, "event_id": 3, "event_message": "쓰러짐 감지", "event_status": null, "event_type": "falldown_detected", "frame_idx": 78, "frame_time": "2026-06-22 10:28:51", "instance_id": "38980f4a", "last_assignment_source": "manual_pool_reuse", "meta": {}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 6, "track_id": 3, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "26", "created_at": "2026-06-22T10:28:57", "detail": {"candidate_count": 6, "candidate_state": "ground", "crouch_incident_active": false, "downward_motion_norm": 0.1518987341772152, "edge_entry_override_used": false, "fall_accept_reason": null, "fall_incident_active": true, "fall_recovery_emit_override_used": false, "features": {"bbox_h": 79.0, "bbox_h_over_w": 0.6929824561403509, "hip_ankle_x_ratio": 0.1282051282051282, "left_knee_deg": 118.98880609119753, "max_knee_deg": 118.98880609119753, "min_knee_deg": 111.84179928439052, "right_knee_deg": 111.84179928439052, "torso_angle_deg": 84.28940686250037, "torso_vertical_ratio": 0.06329113924050633, "worker_center_y": 533.0, "ygap_norm": 0.3227848101265823}, "from_fall_only": false, "ground_variant": "ground_side", "instant_state": "ground", "prev_stable_state": "ground", "recent_fall_suppressed": true, "recent_ground_exit_suppressed": false, "scores": {"crouch": 0.41272999783779707, "ground": 0.8109582881337487, "ground_front_back": 0.5145892656094092, "ground_side": 0.8109582881337487, "kneel": 0.4692206835873666, "standing": 0.190171958247579}, "stable_state": "ground", "stable_state_dwell_seconds": 0.6446375846862793, "standing_seen_before": false, "track_kind": "real", "track_stable_frames": 8}, "event_id": 15, "event_message": "쓰러짐 감지", "event_status": null, "event_type": "falldown_detected", "frame_idx": 115, "frame_time": "2026-06-22 10:28:57", "instance_id": "38980f4a", "last_assignment_source": "real_match", "meta": {}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 8, "track_id": 15, "track_kind": "real", "zone_id": null, "zone_name": null}
{"cctv_id": "26", "created_at": "2026-06-22T10:28:57", "instance_id": "38980f4a", "payload": {"active_detection_counts": {"작업자": 2}, "analysis_flags": {"summary_due": true}, "frame_counters": {"assigned_from_manual_pool": 1, "pseudo_promoted_to_manual": 1, "reconciled_to_real": 1, "tracker_update_calls": 1, "unmatched_objects": 2}, "frame_idx": 120, "lifetime_counters": {"assigned_from_manual_pool": 31, "assigned_from_recent_track": 1, "pseudo_created": 4, "pseudo_promoted_to_manual": 2, "pseudo_reused": 2, "real_match_assigned": 138, "reconciled_to_real": 5, "tracker_online_targets": 140, "tracker_removed_tracks": 10, "tracker_update_calls": 120, "unmatched_objects": 40}, "scenario_analysis": {"_execution": {"_resolved_scenarios": ["no_hardhat_persistent", "falldown_detected", "ppe_status_check"], "falldown_detected": {"returned_event_count": 0, "status": "returned_events"}, "no_hardhat_persistent": {"returned_event_count": 0, "status": "returned_events"}, "ppe_status_check": {"returned_event_count": 0, "status": "returned_events"}}, "no_hardhat_persistent": {"active_violation_count": 0, "current_violation_count": 0, "recovered_violation_count": 0, "recovery_grace_seconds": 2.0}}, "scene_metrics": {"안전그네 착용": {"bbox_area_ratio_median": 0.004335, "bbox_height_ratio_median": 0.091319, "bbox_height_ratio_p75": 0.091667, "bbox_width_ratio_median": 0.047461, "frame_presence_count": 2, "label_counts": {"harness": 2}, "object_sample_count": 2}, "안전모 착용": {"bbox_area_ratio_median": 0.004788, "bbox_height_ratio_median": 0.110764, "bbox_height_ratio_p75": 0.132986, "bbox_width_ratio_median": 0.042871, "frame_presence_count": 53, "label_counts": {"helmet": 53}, "object_sample_count": 53}, "작업자": {"bbox_area_ratio_median": 0.017912, "bbox_height_ratio_median": 0.183333, "bbox_height_ratio_p75": 0.654669, "bbox_width_ratio_median": 0.099316, "frame_presence_count": 107, "label_counts": {"person": 72, "worker": 51}, "object_sample_count": 123}}, "scene_scale_metrics": {"sample_count": 123, "worker_height_ratio_median": 0.183333, "worker_small_worker_ratio": 0.0}, "scene_scale_profile": "near", "track_kind_counts": {"manual": 1, "pseudo": 0, "real": 1}}, "record_type": "tracking_summary"}
{"anchor_point": null, "cctv_id": "26", "created_at": "2026-06-22T10:28:59", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 133, "frame_time": "2026-06-22 10:28:59", "instance_id": "38980f4a", "last_assignment_source": "manual_pool_reuse", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 15, "track_kind": "real", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "3"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 15, "track_id": 3, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "26", "created_at": "2026-06-22T10:29:01", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 145, "frame_time": "2026-06-22 10:29:01", "instance_id": "38980f4a", "last_assignment_source": "manual_pool_reuse", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 1, "track_kind": "real", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "13"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 1, "track_id": 13, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "26", "created_at": "2026-06-22T10:29:10", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 202, "frame_time": "2026-06-22 10:29:10", "instance_id": "38980f4a", "last_assignment_source": "reconciled_to_real", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 17, "track_kind": "manual", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "1000010"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 17, "track_id": 1000010, "track_kind": "manual", "zone_id": null, "zone_name": null}
{"cctv_id": "26", "created_at": "2026-06-22T10:29:10", "instance_id": "38980f4a", "record_counts": {"scenario_debug": 0, "scenario_event": 5, "tracking_summary": 1}, "record_type": "session_stop"}
