Files
yolov26_3d/eval_tools/heading_analysis/test_extract_bad_cases.sh
2026-06-24 09:35:46 +08:00

89 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# Test script for extracting bad heading cases
# Set PYTHONPATH to project root for module imports
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)"
export PYTHONPATH="${PROJECT_ROOT}:${PYTHONPATH}"
echo "========================================="
echo "Bad Heading Cases Extraction Test"
echo "========================================="
echo ""
INPUT_FILE="eval_results_common_match_comparison/yolov5s-300w/20260203_210259/detailed_3d_matches.json"
OUTPUT_DIR="runs/heading_error_analysis"
# Check if input file exists
if [ ! -f "$INPUT_FILE" ]; then
echo "Error: Input file not found: $INPUT_FILE"
echo "Please update INPUT_FILE path in this script"
exit 1
fi
mkdir -p "$OUTPUT_DIR"
echo "Test 1: Extract all cases with error > 1.5 rad (≈ 85°)"
echo "-----------------------------------------------------"
python eval_tools/heading_analysis/extract_bad_heading_cases.py \
--input "$INPUT_FILE" \
--threshold 1.5 \
--output "$OUTPUT_DIR/all_bad_cases.json" \
--stats
echo ""
echo ""
echo "Test 2: Extract top 50 worst cases"
echo "-----------------------------------------------------"
python eval_tools/heading_analysis/extract_bad_heading_cases.py \
--input "$INPUT_FILE" \
--threshold 1.5 \
--top-k 50 \
--output "$OUTPUT_DIR/top50_worst.json" \
--stats
echo ""
echo ""
echo "Test 3: Extract only reversal errors (≈ 180°)"
echo "-----------------------------------------------------"
python eval_tools/heading_analysis/extract_bad_heading_cases.py \
--input "$INPUT_FILE" \
--threshold 1.5 \
--reversal-only \
--top-k 100 \
--output "$OUTPUT_DIR/reversal_errors.json" \
--stats
echo ""
echo ""
echo "Test 4: Extract vehicle class only, high confidence"
echo "-----------------------------------------------------"
python eval_tools/heading_analysis/extract_bad_heading_cases.py \
--input "$INPUT_FILE" \
--threshold 1.5 \
--classes vehicle \
--min-confidence 0.5 \
--top-k 50 \
--output "$OUTPUT_DIR/vehicle_high_conf.json" \
--stats
echo ""
echo ""
echo "Test 5: Extract mid-distance cases (30-80m)"
echo "-----------------------------------------------------"
python eval_tools/heading_analysis/extract_bad_heading_cases.py \
--input "$INPUT_FILE" \
--threshold 1.5 \
--min-distance 30 \
--max-distance 80 \
--top-k 50 \
--output "$OUTPUT_DIR/mid_distance.json" \
--stats
echo ""
echo "========================================="
echo "All tests complete!"
echo "Output directory: $OUTPUT_DIR"
echo "========================================="