{"active_scenarios": ["falldown_detected", "no_hardhat_persistent", "danger_area_loitering"], "analysis_config": {"flush_interval_seconds": 15.0, "include_event_records": true, "max_buffer_records": 32, "summary_interval_frames": 120, "summary_only": true}, "cctv_id": "06", "created_at": "2026-05-20T16:47:00", "instance_id": "6ba5298c", "record_type": "session_start", "source_url": "file:///data/playlist/uploads/251027_fall_test_input_video/해상도편집/강진광주_넘어짐_헬멧미착용_샘플/강진광주_쓰러짐_헬멧미착용_샘플__fix_20251114_150454.mp4"}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:03", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 4, "frame_time": "2026-05-20 16:47:03", "instance_id": "6ba5298c", "last_assignment_source": "real_match", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 4, "track_kind": "real", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "41323"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "mixed", "stable_frames": 4, "track_id": 41323, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:03", "detail": {}, "event_id": 41323, "event_message": "", "event_status": "", "event_type": "danger_area_loitering_state", "frame_idx": 5, "frame_time": "2026-05-20 16:47:03", "instance_id": "6ba5298c", "last_assignment_source": "real_match", "meta": {}, "persist_event": false, "record_type": "scenario_event", "scene_scale_profile": "mixed", "stable_frames": 5, "track_id": 41323, "track_kind": "real", "zone_id": 16, "zone_name": "1"}
{"anchor_point": [140.375, 604.9], "cctv_id": "06", "created_at": "2026-05-20T16:47:05", "detail": {}, "event_id": 41323, "event_message": "위험구역 체류", "event_status": "open", "event_type": "danger_area_loitering", "frame_idx": 26, "frame_time": "2026-05-20 16:47:05", "instance_id": "6ba5298c", "last_assignment_source": "real_match", "meta": {}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "mixed", "stable_frames": 26, "track_id": 41323, "track_kind": "real", "zone_id": 16, "zone_name": "1"}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:13", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 112, "frame_time": "2026-05-20 16:47:13", "instance_id": "6ba5298c", "last_assignment_source": "reconciled_to_real", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 8, "track_kind": "manual", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "1000003"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 8, "track_id": 1000003, "track_kind": "manual", "zone_id": null, "zone_name": null}
{"cctv_id": "06", "created_at": "2026-05-20T16:47:14", "instance_id": "6ba5298c", "payload": {"active_detection_counts": {"작업자": 2}, "analysis_flags": {"summary_due": true}, "frame_counters": {"assigned_from_manual_pool": 2, "fall_candidate_rejected_duplicate_base": 2, "fall_candidate_seen": 2, "reconciled_to_real": 2, "tracker_update_calls": 1, "unmatched_objects": 2}, "frame_idx": 120, "lifetime_counters": {"assigned_from_manual_pool": 82, "assigned_from_recent_track": 1, "fall_candidate_accepted_edge_entry": 7, "fall_candidate_accepted_prev_track": 12, "fall_candidate_rejected_duplicate_base": 70, "fall_candidate_seen": 89, "pseudo_created": 8, "pseudo_promoted_to_manual": 3, "pseudo_reused": 3, "real_match_assigned": 77, "reconciled_to_real": 83, "tracker_online_targets": 77, "tracker_removed_tracks": 9, "tracker_update_calls": 120, "unmatched_objects": 97}, "scenario_analysis": {"_execution": {"_resolved_scenarios": ["falldown_detected", "no_hardhat_persistent", "danger_area_loitering"], "danger_area_loitering": {"returned_event_count": 0, "status": "returned_events"}, "falldown_detected": {"returned_event_count": 1, "status": "returned_events"}, "no_hardhat_persistent": {"returned_event_count": 0, "status": "returned_events"}}, "danger_area_loitering": {"effective_reminder_cooldown_s": 10.0, "effective_secondary_dedupe_anchor_distance_px": 80.0, "effective_secondary_dedupe_window_s": 8.0, "emit_transition_state_updates": true, "metrics": {"secondary_dedupe_suppressed": 1}, "recent_event_memory_size": 1, "scene_scale_profile": "near", "suppress_remind_events": false}, "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.006035, "bbox_height_ratio_median": 0.118576, "bbox_height_ratio_p75": 0.125174, "bbox_width_ratio_median": 0.050488, "frame_presence_count": 32, "label_counts": {"no_helmet": 32}, "object_sample_count": 32}, "작업자": {"bbox_area_ratio_median": 0.020288, "bbox_height_ratio_median": 0.185417, "bbox_height_ratio_p75": 0.6, "bbox_width_ratio_median": 0.103906, "frame_presence_count": 120, "label_counts": {"person": 123, "worker": 19}, "object_sample_count": 142}}, "scene_scale_metrics": {"sample_count": 142, "worker_height_ratio_median": 0.185417, "worker_small_worker_ratio": 0.0}, "scene_scale_profile": "near", "track_kind_counts": {"manual": 2, "pseudo": 0, "real": 0}}, "record_type": "tracking_summary"}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:14", "detail": {"candidate_count": 4, "candidate_state": "ground", "crouch_incident_active": false, "downward_motion_norm": 0.3870967741935484, "edge_entry_override_used": false, "fall_accept_reason": null, "fall_incident_active": true, "fall_recovery_emit_override_used": false, "features": {"bbox_h": 77.5, "bbox_h_over_w": 0.36384976525821594, "hip_ankle_x_ratio": 27.5, "left_knee_deg": 149.10830702846965, "max_knee_deg": 149.10830702846965, "min_knee_deg": 138.155527427923, "right_knee_deg": 138.155527427923, "torso_angle_deg": 99.51336520522433, "torso_vertical_ratio": 0.1967741935483871, "worker_center_y": 551.0, "ygap_norm": 0.0}, "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.2570635226156456, "ground": 0.7972989434279757, "ground_front_back": 0.45942356058377387, "ground_side": 0.7972989434279757, "kneel": 0.4461693120322381, "standing": 0.21499322681338992}, "stable_state": "ground", "stable_state_dwell_seconds": 0.615525484085083, "standing_seen_before": false, "track_kind": "manual", "track_stable_frames": 3}, "event_id": 1000003, "event_message": "쓰러짐 감지", "event_status": null, "event_type": "falldown_detected", "frame_idx": 120, "frame_time": "2026-05-20 16:47:14", "instance_id": "6ba5298c", "last_assignment_source": "reconciled_to_real", "meta": {}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 3, "track_id": 1000003, "track_kind": "manual", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:15", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 130, "frame_time": "2026-05-20 16:47:15", "instance_id": "6ba5298c", "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", "41326"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 1, "track_id": 41326, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:17", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 145, "frame_time": "2026-05-20 16:47:17", "instance_id": "6ba5298c", "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", "41329"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 1, "track_id": 41329, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:18", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 154, "frame_time": "2026-05-20 16:47:18", "instance_id": "6ba5298c", "last_assignment_source": "real_match", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 22, "track_kind": "real", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "41335"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 22, "track_id": 41335, "track_kind": "real", "zone_id": null, "zone_name": null}
{"anchor_point": null, "cctv_id": "06", "created_at": "2026-05-20T16:47:23", "detail": {}, "event_id": null, "event_message": "안전모 미착용", "event_status": null, "event_type": "no_hardhat_persistent", "frame_idx": 214, "frame_time": "2026-05-20 16:47:23", "instance_id": "6ba5298c", "last_assignment_source": "manual_pool_reuse", "meta": {"gear_name": "안전모", "matched_cover": 1.0, "min_cover": 0.35, "stable_frames": 29, "track_kind": "real", "violation_category": "안전모 미착용", "worker_identity_key": ["no_hardhat_persistent", "track_id", "41326"]}, "persist_event": true, "record_type": "scenario_event", "scene_scale_profile": "near", "stable_frames": 29, "track_id": 41326, "track_kind": "real", "zone_id": null, "zone_name": null}
{"cctv_id": "06", "created_at": "2026-05-20T16:47:24", "instance_id": "6ba5298c", "record_counts": {"scenario_event": 9, "tracking_summary": 1}, "record_type": "session_stop"}
