Pipeline complet Radiacode 103 - identification automatique d'isotopes

- VegaModel CNN-FCNN 34.5M params, 82 isotopes, val acc 99.89%
- Generation 50k spectres synthetiques 1D (12-24h durees)
- Entrainement 100 epochs sur RTX 5060 Ti (CUDA 12.8, Blackwell)
- Detection continue avec soustraction du background
- Capture background 24h avec gestion deconnexion
- Docker Compose : conteneur train (GPU) + detect (CPU/USB)
- Modele entraite inclus (vega_best.pt, 395 Mo)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jacquin Antoine
2026-05-19 12:29:56 +02:00
commit 745a64b342
52 changed files with 17558 additions and 0 deletions

30
TOTO.md Normal file
View File

@ -0,0 +1,30 @@
# Radiacode 103 — Pipeline d'identification automatique d'isotopes
## Etat d'avancement
| Etape | Statut | Detail |
|-------|--------|--------|
| Build Docker | Fait | train + detect |
| Generation spectres synthetiques | Fait | 50 000 echantillons (1D, 4.2 Go) |
| Entrainement VegaModel | Fait | 100 epochs, val loss 0.0051, val acc 99.89% |
| Modele sauvegarde | Fait | `models/vega_best.pt` (395 Mo), 82 isotopes |
| Capture background 24h | En cours | 0.2h/24h, 6.5 CPS |
| Detection continue | Pas encore | Apres background 24h |
| Test avec source | Pas encore | Apres detection continue |
## Prochaines etapes
- [ ] Attendre fin de la capture background 24h (conteneur `radiacode-bg` en cours)
- [ ] Lancer le moniteur : `docker compose up detect`
- [ ] Tester avec une source radioactive connue (Cs-137)
- [] Nettoyer les checkpoints d'epochs dans `models/` (garder seulement `vega_best.pt`, `vega_final.pt`, `vega_history.json`, `vega_isotope_index.txt`)
- [ ] Transfer vers Pi 4 pour la production
## Bugs corriges
- `spectrum.duration` retourne un `timedelta`, pas un `float` -> utilise `.total_seconds()`
- Generation de spectres 2D (time x channels) causait un OOM a ~210 echantillons -> generation 1D cumulative
- PyTorch 2.4 ne supporte pas sm_120 (Blackwell/RTX 5060 Ti) -> PyTorch 2.7.0 + CUDA 12.8
- DataParallel incompatible entre GPU d'architectures differentes (4060 Ti Ada + 5060 Ti Blackwell) -> mono-GPU
- `radiacode` depend de `bluepy` (BLE) qui ne compile pas dans `python:3.11-slim` -> ajoute `build-essential libglib2.0-dev`
- Volume `./data` monte en read-only dans detect -> passe en read-write pour le snapshot JSON