Claude: Docker Phase 1
This commit is contained in:
69
setup/generateSets/README.docker.md
Normal file
69
setup/generateSets/README.docker.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Docker — Phase 1
|
||||
|
||||
Zwei getrennte Images (siehe `doc/docker_containerization_roadmap.md`):
|
||||
|
||||
| Image | Dockerfile | Zweck |
|
||||
|---|---|---|
|
||||
| `approbot/blender-renderer:4.5` | `Dockerfile.renderer` | Blender 4.5 headless → erzeugt Test-Szenen (Bilder, npz, Ground-Truth) |
|
||||
| `approbot/pose-pipeline:latest` | `Dockerfile.pipeline` | schlanke Pose-Schätzung (das eigentliche Produkt) |
|
||||
|
||||
Beide teilen sich das `data/`-Volume: Der Renderer schreibt nach `data/simulation/SceneX`,
|
||||
die Pipeline liest von dort und schreibt nach `data/evaluations/SceneX`.
|
||||
|
||||
## Bauen
|
||||
|
||||
```bash
|
||||
cd setup/generateSets
|
||||
docker compose build
|
||||
```
|
||||
|
||||
Die Blender-Patch-Version steht in `Dockerfile.renderer` (`ARG BLENDER_VERSION=4.5.0`) —
|
||||
muss unter download.blender.org existieren; bei Bedarf anpassen:
|
||||
```bash
|
||||
docker compose build --build-arg BLENDER_VERSION=4.5.3 renderer
|
||||
```
|
||||
|
||||
## Rendern (Test-Daten erzeugen)
|
||||
|
||||
```bash
|
||||
docker compose run --rm renderer --poses 8 # nur Pose 8
|
||||
docker compose run --rm renderer # alle robot_test_poses
|
||||
```
|
||||
CPU-Rendering ist Default. Für GPU (Cycles, deutlich schneller): NVIDIA Container Toolkit
|
||||
installieren und den `deploy:`-Block in `docker-compose.yml` einkommentieren.
|
||||
|
||||
## Pose-Pipeline ausführen
|
||||
|
||||
```bash
|
||||
docker compose run --rm pipeline pipeline/run_pipeline.py data/simulation/Scene8
|
||||
# -> data/evaluations/Scene8/robot_state.json
|
||||
```
|
||||
|
||||
## Benchmark gegen Ground-Truth
|
||||
|
||||
```bash
|
||||
docker compose run --rm pipeline benchmark/run_benchmark.py --scenes 8
|
||||
docker compose run --rm pipeline benchmark/eval_pose.py \
|
||||
data/evaluations/Scene8/robot_state.json data/simulation/Scene8/pose.json
|
||||
```
|
||||
|
||||
## Hinweise
|
||||
|
||||
* **cv2 im Renderer** liegt in *Blenders* gebündeltem Python (nicht System-Python) —
|
||||
siehe `Dockerfile.renderer`. Das frühere `Dockerfile` mit `pip3 install opencv-python`
|
||||
installierte ins falsche Python und ist ersetzt.
|
||||
* **robot.json wird beim Rendern mutiert** (Kamera/Pose pro Bild). Für einen einzelnen
|
||||
sequentiellen Lauf ok; für *parallele* Render-Jobs muss das vorher auf eine temporäre
|
||||
Config pro Job umgestellt werden (Roadmap Phase 2/4, Schlüsselpunkt 3).
|
||||
* **Code wird als Volume gemountet** — Änderungen an Python-Scripten wirken ohne Rebuild.
|
||||
Nur bei geänderten Abhängigkeiten (`requirements.pipeline.txt`) oder Blender-Version neu bauen.
|
||||
|
||||
## Portainer-Stack (optional)
|
||||
|
||||
`create-portainer-stack.bat` legt den Stack per Portainer-API an. In **cmd.exe** ausführen
|
||||
(dort ist `curl` = curl.exe). In **PowerShell** zum Testen `curl.exe` statt `curl` verwenden,
|
||||
da `curl` dort ein Alias für `Invoke-WebRequest` ist:
|
||||
|
||||
```powershell
|
||||
curl.exe -k -H "X-API-Key: <KEY>" https://localhost:9443/api/endpoints
|
||||
```
|
||||
Reference in New Issue
Block a user