merge vom thinkcentre > reconstruct

This commit is contained in:
chk
2026-06-03 07:30:28 +02:00
parent 9e45340427
commit 6d4a61f4d5
10 changed files with 753 additions and 4 deletions

12
run/run_analyze.bat Normal file
View File

@@ -0,0 +1,12 @@
@echo off
REM run_analyze.bat
REM Aggregiert die Kamera-Studie: Genauigkeit je Kameraanzahl (3, 4 ... k)
REM ueber alle berechneten Szenen und Subsets.
REM
REM Aufruf:
REM run_analyze.bat (Finger-Fehler in mm, Standard)
REM run_analyze.bat --metric wrist_error_mm
REM run_analyze.bat --metric mean_abs_deg
cd /d "%~dp0.."
python benchmark\camera_count\analyze.py %*

18
run/run_camera_study.bat Normal file
View File

@@ -0,0 +1,18 @@
@echo off
REM run_camera_study.bat
REM Untersucht wie viele Kameras fuer die Pose-Schaetzung benoetigt werden.
REM
REM Einfacher Aufruf (alle Szenen mit pose.json, 10 Samples pro k):
REM run_camera_study.bat
REM
REM Mit Optionen:
REM run_camera_study.bat --scenes Scene7 Scene9 --k-min 3 --k-max 5 --samples 15
REM run_camera_study.bat --force
REM run_camera_study.bat --clean
REM run_camera_study.bat --clean --scenes Scene10
REM
REM Auswertung danach:
REM python benchmark\camera_count\analyze.py
cd /d "%~dp0.."
python benchmark\camera_count\run_camera_study.py %*

29
run/run_eval_pose.bat Normal file
View File

@@ -0,0 +1,29 @@
@echo off
REM run_eval_pose.bat
REM Wertet eine geschaetzte Pose gegen die Ground Truth aus.
REM Gibt Gelenkwinkelfehler (deg/mm) sowie Handgelenk- und Finger-Abstand (mm) aus.
REM
REM Aufruf:
REM run_eval_pose.bat data\evaluations\Scene8
REM run_eval_pose.bat data\camera_study\Scene10\k3_abc
cd /d "%~dp0.."
if "%1"=="" (
echo.
echo [INFO] Aufruf fehlt!
echo Beispiel: run_eval_pose.bat data\evaluations\Scene8
echo.
exit /b 1
)
set "EVAL_DIR=%~1"
if "%EVAL_DIR:~-1%"=="\" set "EVAL_DIR=%EVAL_DIR:~0,-1%"
for %%I in ("%EVAL_DIR%") do set "SCENE_NAME=%%~nxI"
set "ROBOT_STATE=%EVAL_DIR%\robot_state.json"
set "GT=data\simulation\%SCENE_NAME%\pose.json"
set "ROBOT=data\robot\robot.json"
python benchmark\eval_pose.py "%ROBOT_STATE%" "%GT%" --robot "%ROBOT%"

28
run/run_eval_pose.sh Normal file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# run_eval_pose.sh
# Wertet eine geschätzte Pose gegen die Ground Truth aus.
# Gibt Gelenkwinkelfehler (deg/mm) sowie Handgelenk- und Finger-Abstand (mm) aus.
#
# Aufruf:
# ./run/run_eval_pose.sh data/evaluations/Scene8
# ./run/run_eval_pose.sh data/camera_study/Scene10/k3_abc
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
if [[ $# -eq 0 ]]; then
echo
echo "[INFO] Aufruf fehlt!"
echo "Beispiel: ./run/run_eval_pose.sh data/evaluations/Scene8"
echo
exit 1
fi
EVAL_DIR="${1%/}"
SCENE_NAME="$(basename "$EVAL_DIR")"
python3 "$ROOT/benchmark/eval_pose.py" \
"$ROOT/$EVAL_DIR/robot_state.json" \
"$ROOT/data/simulation/$SCENE_NAME/pose.json" \
--robot "$ROOT/data/robot/robot.json"

36
run/run_evaluateMarker.sh Normal file
View File

@@ -0,0 +1,36 @@
#!/usr/bin/env bash
# run_evaluateMarker.sh
# Vergleicht triangulierte Marker-Positionen (initial und optimiert) mit der
# Blender-Grundwahrheit (render_a.json der Simulationsszene).
#
# Aufruf:
# ./run_evaluateMarker.sh ../data/evaluations/Scene8
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$(dirname "$SCRIPT_DIR")"
if [[ $# -eq 0 ]]; then
echo
echo "[INFO] Aufruf fehlt!"
echo "Beispiel: ./run_evaluateMarker.sh ../data/evaluations/Scene8"
echo
exit 1
fi
EVAL_DIR="${1%/}" # trailing slash entfernen
SCENE_NAME="$(basename "$EVAL_DIR")"
ORIGINAL="$ROOT/data/simulation/$SCENE_NAME/render_a.json"
echo "===================================="
echo "INITIAL:"
python3 "$ROOT/pipeline/9_evaluateMarker.py" \
"$EVAL_DIR/aruco_positions_initial.json" \
"$ORIGINAL"
echo "===================================="
echo "OPTIMIZED:"
python3 "$ROOT/pipeline/9_evaluateMarker.py" \
"$EVAL_DIR/aruco_positions_optimized.json" \
"$ORIGINAL"