136 lines
4.2 KiB
YAML
136 lines
4.2 KiB
YAML
cage_id: kandang_1
|
||
csv_path: data/historical_weights_manual_iot_review.csv
|
||
video_root: /media/asus/One Touch/VIDEOS/cycle7/kandang-atas
|
||
camera_glob: "kandang_{cage}_camera_{num}_*.mp4"
|
||
cameras: [CC2, CC3]
|
||
camera_nums:
|
||
CC2: 2
|
||
CC3: 3
|
||
exclude_cycle_days: [0, 1, 2]
|
||
# Production model (train): ages 3–35. Evaluate late holdout stays 29–35 for GO (fit on 3–28).
|
||
train_cycle_day_min: 3
|
||
train_cycle_day_max: 35
|
||
# Smart fuse: ignore cams below this count; else weight by detection_count.
|
||
fuse_min_detections: 100
|
||
# Vision drives weight; Gompertz age curve is diagnostic only.
|
||
model_mode: vision_primary
|
||
# Production feature preset: mask-centric shape geometry (no detection_count/mean_confidence).
|
||
features:
|
||
preset: mask_max
|
||
chicken_counter_config: /media/asus/One Touch/LABS/chicken-counting/chicken-sukawarna-existing/configs/cycle7_batch.yaml
|
||
calibration_dir: configs/calibration
|
||
output_dir: output
|
||
|
||
# Segmentation pilot: chicken class only (seg model has classes 0/1, no half-chicken).
|
||
detection:
|
||
model_path: /media/asus/One Touch/LABS/chicken-counting/chicken-sukawarna-existing/chicken-detection-model-v26n-seg-300e-best-2026-04-18.pt
|
||
classes: [0]
|
||
|
||
geometry:
|
||
prefer_mask: true
|
||
min_mask_fill_ratio: 0.30
|
||
fallback_to_bbox: true
|
||
# Shape stats use mask rows only when at least this many mask detections exist.
|
||
min_mask_for_stats: 20
|
||
|
||
# Second filter: drop camera-day area anomalies outside the robust normal band.
|
||
size_distribution:
|
||
enabled: true
|
||
metric: area_cm2
|
||
method: mad_zscore
|
||
z_max: 2.0
|
||
min_samples: 30
|
||
|
||
# Relaxed filters for small chicks on early cycle days (cycle_day <= day_max).
|
||
early_cycle:
|
||
day_max: 17
|
||
quality:
|
||
min_overlap_ratio: 0.35
|
||
min_box_area_px: 200
|
||
area_outlier_min_factor: 0.10
|
||
conf_min: 0.12
|
||
min_centroid_distance_px: 15
|
||
max_pairwise_iou: 0.55
|
||
min_frame_clean_ratio: 0.01
|
||
min_aspect_ratio: 0.35
|
||
max_aspect_ratio: 2.2
|
||
max_birds_per_frame: 50
|
||
size_distribution:
|
||
z_max: 3.0
|
||
|
||
# Soften day-21 cliff: in-between gates for mid flock.
|
||
mid_cycle:
|
||
day_min: 18
|
||
day_max: 24
|
||
quality:
|
||
conf_min: 0.20
|
||
min_box_area_px: 800
|
||
min_overlap_ratio: 0.55
|
||
min_centroid_distance_px: 30
|
||
max_pairwise_iou: 0.40
|
||
max_birds_per_frame: 45
|
||
min_frame_clean_ratio: 0.05
|
||
min_aspect_ratio: 0.40
|
||
max_aspect_ratio: 2.0
|
||
size_distribution:
|
||
z_max: 2.5
|
||
|
||
# Red-line aisle corridors (widened ~80px/side for early small chicks at corridor edges).
|
||
sampling_corridors:
|
||
CC2:
|
||
boundary_x: [230, 970, 1220, 1690]
|
||
inclusion_pairs: [[230, 970], [1220, 1690]]
|
||
y_bounds: [380, 720]
|
||
CC3:
|
||
boundary_x: [150, 720, 920, 1650]
|
||
inclusion_pairs: [[150, 720], [920, 1650]]
|
||
y_bounds: [330, 720]
|
||
|
||
sampling:
|
||
# One short clip (~10–15 min, often ~12:00) per day/camera: sample the whole file.
|
||
use_full_video: true
|
||
# Only used when use_full_video is false (long recordings with a morning weigh window).
|
||
morning_weigh_in_time: "12:00:00"
|
||
window_minutes_before: 30
|
||
window_minutes_after: 30
|
||
# Unique-chicken extract: track every frame, one best obs per track_id.
|
||
initial_stride_frames: 4
|
||
min_stride_frames: 2
|
||
target_detections: 600
|
||
late_cycle_target_detections: 600
|
||
late_cycle_day_threshold: 20
|
||
per_track_cap: 1
|
||
track_every_n_frames: 1
|
||
keep_best_per_track: true
|
||
allow_stride_multipass: false
|
||
convergence_window: 50
|
||
convergence_pct: 0.01
|
||
convergence_checks_required: 3
|
||
low_confidence_detection_threshold: 100
|
||
# During extract, save green/red filter overlays every N video frames (0 = off).
|
||
extract_overlay_every_n_frames: 1000
|
||
# Stop sampling when cart/camera reverse is confirmed (chicken_counter optical flow).
|
||
stop_on_backward: true
|
||
|
||
quality:
|
||
allowed_class_ids: [0]
|
||
reject_class_ids: []
|
||
# Tier 1 — containment (relaxed for dense late-cycle frames)
|
||
require_full_bbox_inside_roi: false
|
||
min_overlap_ratio: 0.75
|
||
# Tier 2 — isolation
|
||
max_pairwise_iou: 0.30
|
||
min_centroid_distance_px: 45
|
||
min_centroid_distance_bbox_factor: 0.35
|
||
max_birds_per_frame: 40
|
||
# Tier 3 — shape and confidence
|
||
conf_min: 0.30
|
||
min_box_area_px: 2000
|
||
min_aspect_ratio: 0.5
|
||
max_aspect_ratio: 1.8
|
||
area_outlier_min_factor: 0.5
|
||
area_outlier_max_factor: 1.8
|
||
# Tier 4 — frame gate
|
||
min_frame_clean_ratio: 0.1
|
||
min_accepted_per_frame: 1
|