feat: implement K{coop}-L{floor} standard, smart discovery, multi-coop runner, and move test runs to test_run_folder
This commit is contained in:
1 parent
6723701424
commit
b00923dc2b
24 files changed
+2068
-74
No files matched your search
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
alias chicken-counter='PYTHONPATH=/home/asus/.Codes/chicken-counting-sukawarna-det/src python3 -m chicken_counter.cli'
|
||||
|
||||
# Declare the array
|
||||
my_array=("2026-06-10" "2026-06-11" "2026-06-12" "2026-06-13" "2026-06-14" "2026-06-15" "2026-06-16" "2026-06-17" "2026-06-18" "2026-06-19")
|
||||
|
||||
# Loop through each item
|
||||
for item in "${my_array[@]}"; do
|
||||
chicken-counter batch --config configs/cycle7_batch.yaml --date ${item} --no-video
|
||||
done
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
set -u
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=(
|
||||
"2026-06-10" "2026-06-11" "2026-06-12" "2026-06-13" "2026-06-14"
|
||||
"2026-06-15" "2026-06-16" "2026-06-17" "2026-06-18" "2026-06-19"
|
||||
)
|
||||
cameras=("CC1" "CC2" "CC3" "CC4")
|
||||
|
||||
# Maximum parallel video jobs (default: 4)
|
||||
MAX_JOBS="${MAX_JOBS:-4}"
|
||||
echo "=== Starting per-video parallel processing with MAX_JOBS=$MAX_JOBS ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
echo "=== Starting batch for date: $date ==="
|
||||
for cam in "${cameras[@]}"; do
|
||||
echo "=== Launching $date ($cam) ==="
|
||||
$PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --no-video &
|
||||
done
|
||||
wait || true
|
||||
echo "=== Date $date completed ==="
|
||||
done
|
||||
|
||||
echo "=== All video processing jobs completed ==="
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=("$1")
|
||||
else
|
||||
dates=(
|
||||
"2026-06-10" "2026-06-11" "2026-06-12" "2026-06-13" "2026-06-14"
|
||||
"2026-06-15" "2026-06-16" "2026-06-17" "2026-06-18" "2026-06-19"
|
||||
)
|
||||
fi
|
||||
|
||||
echo "=== Starting Hybrid Execution Mode (Threaded CPU + Batched GPU) ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
echo "=== Running hybrid batch for date: $date ==="
|
||||
$PYTHON -m chicken_counter.cli batch \
|
||||
--config configs/cycle7_batch_optimized.yaml \
|
||||
--date "$date" \
|
||||
--mode hybrid \
|
||||
--no-video
|
||||
done
|
||||
|
||||
echo "=== All hybrid batch processing completed ==="
|
||||
Executable
+49
@@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
export PYTHONPATH="$SCRIPT_DIR/src"
|
||||
|
||||
if [ -f "$SCRIPT_DIR/venv/bin/python" ]; then
|
||||
PYTHON="$SCRIPT_DIR/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
|
||||
CONFIG_FILE="${CONFIG_FILE:-configs/mortality_config.yaml}"
|
||||
INPUT_PATH="${1:-}"
|
||||
OUTPUT_DIR="${2:-}"
|
||||
|
||||
echo "=== Starting Whole-Image Mortality Chicken Detection ==="
|
||||
echo "Config File: $CONFIG_FILE"
|
||||
if [ -n "$INPUT_PATH" ]; then
|
||||
echo "Input Path Override: $INPUT_PATH"
|
||||
fi
|
||||
if [ -n "$OUTPUT_DIR" ]; then
|
||||
echo "Output Dir Override: $OUTPUT_DIR"
|
||||
fi
|
||||
|
||||
CMD=($PYTHON -m chicken_counter.cli mortality --config "$CONFIG_FILE")
|
||||
|
||||
if [ -n "$INPUT_PATH" ]; then
|
||||
CMD+=(--input "$INPUT_PATH")
|
||||
fi
|
||||
if [ -n "$OUTPUT_DIR" ]; then
|
||||
CMD+=(--output-dir "$OUTPUT_DIR")
|
||||
fi
|
||||
if [ -n "${CONF:-}" ]; then
|
||||
CMD+=(--conf "$CONF")
|
||||
fi
|
||||
if [ -n "${IOU:-}" ]; then
|
||||
CMD+=(--iou "$IOU")
|
||||
fi
|
||||
if [ -n "${MIN_AREA:-}" ]; then
|
||||
CMD+=(--min-area "$MIN_AREA")
|
||||
fi
|
||||
if [ -n "${DEDUPE_RADIUS:-}" ]; then
|
||||
CMD+=(--dedupe-radius "$DEDUPE_RADIUS")
|
||||
fi
|
||||
|
||||
"${CMD[@]}"
|
||||
|
||||
echo "=== Mortality Detection Completed ==="
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=("$1")
|
||||
else
|
||||
dates=(
|
||||
"2026-06-10" "2026-06-11" "2026-06-12" "2026-06-13" "2026-06-14"
|
||||
"2026-06-15" "2026-06-16" "2026-06-17" "2026-06-18" "2026-06-19"
|
||||
)
|
||||
fi
|
||||
|
||||
echo "=== Starting Tensor Batching processing ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
echo "=== Running tensor batch for date: $date ==="
|
||||
$PYTHON -m chicken_counter.cli batch \
|
||||
--config configs/cycle7_batch_optimized.yaml \
|
||||
--date "$date" \
|
||||
--mode tensor_batching \
|
||||
--no-video
|
||||
done
|
||||
|
||||
echo "=== All tensor batch processing completed ==="
|
||||
Executable
+37
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
set -u
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=(
|
||||
"2026-05-23"
|
||||
)
|
||||
cameras=("CC1" "CC2" "CC3" "CC4")
|
||||
|
||||
# Maximum parallel video jobs (default: 4)
|
||||
MAX_JOBS="${MAX_JOBS:-4}"
|
||||
echo "=== Starting per-video parallel processing with video output for 2026-05-23 (MAX_JOBS=$MAX_JOBS) ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
echo "=== Starting batch for date: $date ==="
|
||||
for cam in "${cameras[@]}"; do
|
||||
echo "=== Launching $date ($cam) ==="
|
||||
$PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --output-subdir output_video &
|
||||
done
|
||||
wait || true
|
||||
echo "=== Date $date completed ==="
|
||||
done
|
||||
|
||||
echo "=== All video processing jobs completed ==="
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=(
|
||||
"2026-05-24"
|
||||
)
|
||||
cameras=("CC1" "CC2" "CC3" "CC4")
|
||||
|
||||
# Maximum parallel video jobs (default: 4)
|
||||
MAX_JOBS="${MAX_JOBS:-4}"
|
||||
echo "=== Starting per-video parallel processing with video output for 2026-05-24 (MAX_JOBS=$MAX_JOBS) ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
for cam in "${cameras[@]}"; do
|
||||
echo "=== Launching $date ($cam) ==="
|
||||
$PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --output-subdir output_video &
|
||||
|
||||
# Throttle active background jobs to MAX_JOBS
|
||||
while [ "$(jobs -r -p | wc -l)" -ge "$MAX_JOBS" ]; do
|
||||
sleep 1
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
wait
|
||||
echo "=== All video processing jobs completed ==="
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=(
|
||||
"2026-06-06"
|
||||
)
|
||||
cameras=("CC1" "CC2" "CC3" "CC4")
|
||||
|
||||
# Maximum parallel video jobs (default: 4)
|
||||
MAX_JOBS="${MAX_JOBS:-4}"
|
||||
echo "=== Starting per-video parallel processing with video output for 2026-06-06 (MAX_JOBS=$MAX_JOBS) ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
for cam in "${cameras[@]}"; do
|
||||
echo "=== Launching $date ($cam) ==="
|
||||
$PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --output-subdir output_video &
|
||||
|
||||
# Throttle active background jobs to MAX_JOBS
|
||||
while [ "$(jobs -r -p | wc -l)" -ge "$MAX_JOBS" ]; do
|
||||
sleep 1
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
wait
|
||||
echo "=== All video processing jobs completed ==="
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=(
|
||||
"2026-06-16"
|
||||
)
|
||||
cameras=("CC1" "CC2" "CC3" "CC4")
|
||||
|
||||
# Maximum parallel video jobs (default: 4)
|
||||
MAX_JOBS="${MAX_JOBS:-4}"
|
||||
echo "=== Starting per-video parallel processing with video output for 2026-06-16 (MAX_JOBS=$MAX_JOBS) ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
for cam in "${cameras[@]}"; do
|
||||
echo "=== Launching $date ($cam) ==="
|
||||
$PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --output-subdir output_video &
|
||||
|
||||
# Throttle active background jobs to MAX_JOBS
|
||||
while [ "$(jobs -r -p | wc -l)" -ge "$MAX_JOBS" ]; do
|
||||
sleep 1
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
wait
|
||||
echo "=== All video processing jobs completed ==="
|
||||
Executable
+40
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
if [ -d "$SCRIPT_DIR/../src" ]; then
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
else
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
fi
|
||||
cd "$PROJECT_ROOT"
|
||||
export PYTHONPATH="$PROJECT_ROOT/src"
|
||||
|
||||
if [ -f "$PROJECT_ROOT/venv/bin/python" ]; then
|
||||
PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||||
else
|
||||
PYTHON="python3"
|
||||
fi
|
||||
dates=(
|
||||
"2026-06-18"
|
||||
)
|
||||
cameras=("CC1" "CC2" "CC3" "CC4")
|
||||
|
||||
# Maximum parallel video jobs (default: 4)
|
||||
MAX_JOBS="${MAX_JOBS:-4}"
|
||||
echo "=== Starting per-video parallel processing with video output for 2026-06-18 (MAX_JOBS=$MAX_JOBS) ==="
|
||||
|
||||
for date in "${dates[@]}"; do
|
||||
for cam in "${cameras[@]}"; do
|
||||
echo "=== Launching $date ($cam) ==="
|
||||
$PYTHON -m chicken_counter.cli batch --config configs/cycle7_batch_optimized.yaml --date "$date" --camera "$cam" --output-subdir output_video &
|
||||
|
||||
# Throttle active background jobs to MAX_JOBS
|
||||
while [ "$(jobs -r -p | wc -l)" -ge "$MAX_JOBS" ]; do
|
||||
sleep 1
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
wait
|
||||
echo "=== All video processing jobs completed ==="
|
||||
Reference in new issue
Block a user