diff --git a/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.engine b/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.engine deleted file mode 100755 index ca98117..0000000 Binary files a/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.engine and /dev/null differ diff --git a/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.onnx b/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.onnx deleted file mode 100755 index a86fd41..0000000 Binary files a/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.onnx and /dev/null differ diff --git a/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.pt b/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.pt deleted file mode 100755 index 1013fd6..0000000 Binary files a/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.pt and /dev/null differ diff --git a/chicken-detection-model-v26n-seg-300e-best-2026-04-18.pt b/chicken-detection-model-v26n-seg-300e-best-2026-04-18.pt deleted file mode 100755 index 98aa2c1..0000000 Binary files a/chicken-detection-model-v26n-seg-300e-best-2026-04-18.pt and /dev/null differ diff --git a/configs/cycle7_batch.yaml b/configs/cycle7_batch.yaml index d50284f..1803fdb 100755 --- a/configs/cycle7_batch.yaml +++ b/configs/cycle7_batch.yaml @@ -5,10 +5,12 @@ batch: compress_max_mb: 200 delete_intermediate: false checkpoint_every_n_frames: 3000 + location: kandang-atas + db_path: /media/jetson/DATA/.Codes/chicken-counting-sukawarna-det/db/chicken_counts.db defaults: detection: - model_path: /media/jetson/DATA/.Codes/chicken-counting-sukawarna-det/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.engine + model_path: /media/jetson/DATA/.Codes/chicken-counting-sukawarna-det/models/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.engine classes: [0] ignored_classes: [1, 2] conf: 0.35 diff --git a/configs/cycle7_batch_optimized.yaml b/configs/cycle7_batch_optimized.yaml new file mode 100644 index 0000000..71a7b7d --- /dev/null +++ b/configs/cycle7_batch_optimized.yaml @@ -0,0 +1,126 @@ +batch: + root_dir: /media/jetson/DATA/.Codes/VIDEOS/cycle7/kandang-atas + camera_glob: "kandang_*_camera_{num}_*.mp4" + output_subdir: output + compress_max_mb: 200 + delete_intermediate: false + checkpoint_every_n_frames: 3000 + location: kandang-atas + db_path: chicken_counts.db + +defaults: + detection: + model_path: /media/jetson/DATA/.Codes/chicken-counting-sukawarna-det/chicken-detection-model-v26n-300e-best-2026-05-02-NEW.engine + classes: [0] + ignored_classes: [1, 2] + conf: 0.55 # ↑ 0.35 → fewer false positives, less tracking CPU + iou: 0.55 + imgsz: 640 + device: "0" + min_box_area_px: 5000 # ↑ 3000 → filter small false positives + validate_while_inside: true + detection_zone: + enabled: true + buffer_above_px: 250 + buffer_below_px: 250 + show_in_overlay: true + tracker: + tracker_config_path: /media/jetson/DATA/.Codes/chicken-counting-sukawarna-det/configs/trackers/botsort_chicken.yaml + persist: true + track_buffer: 75 + gate: + mode: two_line + lines_y: [420, 730] + direction: bottom_to_up + motion: + enabled: true + axis: vertical + forward_sign: 1.0 + ema_alpha: 0.2 + reverse_enter_threshold: -1.5 + reverse_exit_threshold: -0.5 + debounce_frames: 12 + min_features: 40 # ↓ 60 → less optical flow computation + max_corners: 50 # ↓ 80 → fewer corner features + stride_frames: 3 # ↑ 2 → motion detection every 3rd frame + flow_scale: 0.5 + quality_level: 0.01 + min_distance: 8 + block_radius: 6 + overlay: + show_boxes: true + show_track_trails: false + trail_length: 20 + show_center_marker: false # ✗ → save 1 circle per chicken + show_track_ring: false + count_anchor: [780, 120] + inside_box_only: true + validated_only: true # NEW → only draw counted chickens + pending_blink: true + pending_colors: + - [255, 255, 0] + - [0, 255, 255] + display: + show_window: false + encoder: auto + output_bitrate_kbps: 2000 # ↓ 4000 → faster encoding + codec_preference: [avc1, mp4v, H264] + performance: + half: false + overlay_buffer_reuse: true + inference_stride: 2 + stream: + enabled: true # required for dashboard live feed + shm_dir: /dev/shm + interval_frames: 5 + feedback: + enabled: true + every_n_frames: 3000 + save_images: false # ✗ → disable checkpoint JPEG I/O spikes + log_to_terminal: true + roi: + inset_left_px: 60 + inset_right_px: 60 + inset_top_px: 0 + inset_bottom_px: 0 + min_overlap_ratio: 0.35 # ↑ 0.30 → stricter counting validation + +cameras: + CC1: + camera_num: 1 + count_anchor: [780, 120] + roi: + points: + - [250, 330] + - [1650, 330] + - [1650, 720] + - [250, 720] + CC2: + camera_num: 2 + count_anchor: [900, 120] + detection: # per-camera override: wider angle = smaller bboxes + min_box_area_px: 3000 + roi: + points: + - [20, 380] + - [1880, 380] + - [1880, 720] + - [20, 720] + CC3: + camera_num: 3 + count_anchor: [900, 120] + roi: + points: + - [20, 330] + - [1880, 330] + - [1880, 720] + - [20, 720] + CC4: + camera_num: 4 + count_anchor: [700, 120] + roi: + points: + - [50, 330] + - [1450, 330] + - [1450, 720] + - [50, 720] diff --git a/src/chicken_counter/config.py b/src/chicken_counter/config.py index 5d01be9..5440ea4 100755 --- a/src/chicken_counter/config.py +++ b/src/chicken_counter/config.py @@ -212,6 +212,8 @@ class BatchConfig: compress_max_mb: int = 200 delete_intermediate: bool = False checkpoint_every_n_frames: int = 3000 + location: str = "" + db_path: str = "" @dataclass