application: name: pedestrian-signage-system version: "0.12.0" window_name: "Pedestrian Detection" exit_key: "q" screenshot_key: "s" pause_key: "p" experiment: experiment_id: phase1_default location: unknown operator: unknown notes: "" input: type: camera camera_id: 0 video_path: null width: 1280 height: 720 fps: 30 backend: auto horizontal_flip: false max_consecutive_read_failures: 5 detector: model_path: yolo11n.pt device: auto confidence_threshold: 0.40 iou_threshold: 0.50 image_size: 640 person_class_id: 0 max_detections: 30 half_precision: false use_agnostic_nms: false tracker: enabled: true type: bytetrack track_high_thresh: 0.50 track_low_thresh: 0.10 new_track_thresh: 0.60 match_thresh: 0.80 track_buffer_frames: 30 min_confirmed_frames: 3 max_missed_frames: 30 fuse_score: true track_management: trajectory_max_points: 120 direction_window_points: 5 minimum_direction_displacement_pixels: 20 region_entry_confirm_frames: 2 region_exit_confirm_frames: 3 minimum_visible_frames_for_count: 5 minimum_duration_sec_for_count: 0.3 require_region_entry_for_count: true require_trigger_crossing_for_count: true crossing: enabled: true count_once_per_track: true deadband_pixels: 8 minimum_displacement_pixels: 15 minimum_track_points: 3 require_confirmed_track: true tracking_logging: enabled: true log_frame_tracks: true log_events: true log_summaries: true flush_interval_frames: 30 directory: data/logs/tracking face: enabled: true backend: mediapipe process_every_n_frames: 1 max_persons_per_frame: 3 require_confirmed_track: true process_only_inside_region: false roi_height_ratio: 0.60 roi_expand_ratio: 0.20 min_roi_width: 40 min_roi_height: 40 static_image_mode: false max_num_faces: 1 refine_landmarks: true min_detection_confidence: 0.40 min_tracking_confidence: 0.40 head_pose: enabled: true method: solvepnp smoothing_enabled: true smoothing_method: ema ema_alpha: 0.4 max_abs_angle: 120.0 face_logging: enabled: true log_frame_faces: true log_summaries: true flush_interval_frames: 30 directory: data/logs/face turn_detection: enabled: true signage_yaw_direction: positive baseline_strategy: first_valid baseline_window_sec: 0.8 baseline_min_samples: 3 subtle_threshold_deg: 10.0 weak_threshold_deg: 20.0 medium_threshold_deg: 35.0 strong_threshold_deg: 50.0 min_subtle_duration_sec: 0.20 min_turn_duration_sec: 0.30 max_pose_gap_sec: 0.30 min_pose_samples_for_evaluation: 5 min_face_detection_rate_for_evaluation: 0.20 min_pose_estimation_rate_for_evaluation: 0.20 face_appearance_enabled: true face_missing_before_appearance_sec: 0.30 weak_or_higher_is_turn: true turn_logging: enabled: true log_frame_turns: true log_events: true log_summaries: true flush_interval_frames: 30 directory: data/logs/turn audio: enabled: true backend: pygame file_path: assets/audio/prompt.wav volume: 0.8 overlap_policy: skip voice_prompt: enabled: true mode: prompt trigger_strategy: trigger_line_crossing require_confirmed_track: true require_inside_region: true skip_if_already_turned: true one_prompt_per_track: true global_cooldown_sec: 3.0 minimum_track_age_sec: 0.3 response_window_sec: 3.0 fixed_position_axis: x fixed_position_value: 640 fixed_position_direction: decreasing voice_logging: enabled: true log_decisions: true log_events: true log_summaries: true flush_interval_frames: 30 directory: data/logs/voice person_state: enabled: true min_track_duration_sec: 0.5 require_trigger_crossing_for_completion: false require_voice_eligibility_for_voice_analysis: true mark_not_evaluable_as_excluded: false finalize_on_track_lost: true keep_completed_state_after_response: true person_state_logging: enabled: true log_frame_states: true log_events: true log_summaries: true flush_interval_frames: 30 directory: data/logs/person_state unified_logging: enabled: true directory: data/logs/unified log_unified_events: true log_person_analysis_table: true log_session_summary: true log_consistency_issues: true flush_interval_frames: 30 include_tracking_events: true include_turn_events: true include_voice_events: true include_person_state_events: true include_face_events: false important_events_only: false camera_position_note: "" run_consistency_checks: true analysis: enabled: true input_directory: data/logs/unified output_directory: data/analysis recursive: true include_prompt_condition: true include_control_condition: true valid_voice_analysis_only: true response_level_threshold: weak response_rate_test: auto numeric_test: mannwhitney yaw_metric_denominator: valid_turn_analysis generate_plots: true overwrite_outputs: true alpha: 0.05 gui: enabled: false default_config_path: config/experiment.yaml default_analysis_input: data/logs/unified default_analysis_output: data/analysis preview_max_fps: 15 remember_last_paths: false show_opencv_window_when_gui: false auto_run_analysis_after_experiment: false experiment_protocol: default_output_markdown: docs/experiment_protocol.md default_output_yaml: data/experiment_notes/experiment_protocol.yaml voice_prompt_text: "こんにちは。こちらをご覧ください。" privacy_note: "顔認証・個人識別は行わず、track_idは実行中だけの一時IDとして扱う。" planned_session_duration_min: 10 quality_check: enabled: true min_valid_voice_analysis_rate: 0.5 max_not_evaluable_rate: 0.4 max_no_pose_rate: 0.4 require_prompt_and_control: true require_camera_position_note: true require_plots: false pilot_report: enabled: true output_markdown: data/analysis/pilot_report.md presentation_summary: enabled: true output_markdown: data/analysis/midterm_summary.md pilot_diagnostics: enabled: true target_valid_records_per_condition: 20 min_valid_records_per_condition: 5 min_valid_voice_analysis_rate: 0.5 max_not_evaluable_rate: 0.4 max_no_pose_estimated_rate: 0.4 max_condition_valid_count_ratio: 2.0 min_sessions_per_condition: 1 require_camera_position_note: true ready_requires_prompt_and_control: true output_report: data/analysis/pilot_diagnostic_report.md output_metrics_csv: data/analysis/pilot_diagnostic_metrics.csv output_recommendations_csv: data/analysis/improvement_recommendations.csv output_session_quality_csv: data/analysis/session_quality_summary.csv calibration_history: enabled: true path: data/calibration_history/calibration_history.csv main_experiment: enabled: true target_prompt_valid_records: 30 target_control_valid_records: 30 minimum_prompt_valid_records: 20 minimum_control_valid_records: 20 planned_prompt_sessions: 3 planned_control_sessions: 3 condition_order_rule: "PromptとControlを同じ場所・時間帯で交互に実施する。" camera_position_policy: "位置・高さ・角度を固定し、各セッションでcamera_position_noteを記録する。" final_output_directory: data/final_results experiment_snapshot: enabled: true output_directory: data/experiment_snapshots include_git_commit: true include_merged_config: true final_report: enabled: true output_markdown: data/final_results/final_experiment_report.md output_summary_csv: data/final_results/final_experiment_report_summary.csv include_limitations: true include_quality_notes: true avoid_causal_claims: true presentation_assets: enabled: true output_markdown: data/final_results/presentation_assets.md output_tables_csv: data/final_results/presentation_tables.csv include_slide_outline: true display: enabled: true show_bounding_boxes: true show_confidence: true show_detection_count: true show_fps: true show_timestamp: true show_frame_number: true show_evaluation_region: true show_trigger_line: true show_track_ids: true show_trajectories: true show_movement_direction: true show_tracking_counters: true trajectory_max_points: 30 show_face_roi: true show_head_pose: true show_face_landmarks: false show_face_counters: true show_turn_status: true show_yaw_delta: true show_turn_counters: true show_voice_status: true show_voice_counters: true show_person_state: true show_person_state_counters: true resize_scale: 1.0 evaluation_region: enabled: true coordinate_mode: normalized x1: 0.05 y1: 0.05 x2: 0.95 y2: 0.95 trigger_line: enabled: true orientation: vertical coordinate_mode: normalized position: 0.50 logging: runtime_log_enabled: true detection_log_enabled: true log_every_frame: true log_empty_frames: true flush_interval_frames: 30 runtime_log_directory: data/logs/runtime detection_log_directory: data/logs/detections output: save_video: false video_directory: data/output/videos video_codec: mp4v screenshot_directory: data/output/screenshots performance: skip_frames: 0 fps_average_window: 30 warn_fps_threshold: 10.0 debug: enabled: false show_raw_model_output: false print_detections: false