You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

330 lines
9.0 KiB

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