Files
radiacode/TOTO.md
Jacquin Antoine 75d271c696 Background réaliste CsI(Tl) + hybridation mesuré/synthétique + dashboard continuum
- Remplace le continuum exponentiel par un modèle réaliste CsI(Tl) dans
  l'entraînement (bosse asymétrique ~110 keV + queue Compton)
- Ajoute l'injection de background mesuré (70% mesuré / 30% synthétique)
  via --measured_background et MEASURED_BACKGROUND_PATH
- Ajoute l'endpoint /api/background/continuum et le toggle "Continuum CsI"
  sur le dashboard background
- Exclut le canal 1023 (overflow bin) de l'affichage web (NUM_CHANNELS=1023)
- Corrige le lissage Gaussien du background (normalisation locale aux bords)
- Met à jour README.md, CLAUDE.md, TUTORIEL.md, TOTO.md, vega_ml/README.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 18:14:00 +02:00

36 lines
2.3 KiB
Markdown

# Radiacode 103 — Pipeline d'identification automatique d'isotopes
## Etat d'avancement
| Etape | Statut | Detail |
|-------|--------|--------|
| Build Docker | Fait | train + detect + web |
| 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 | Fait | Background mesure disponible |
| Detection continue | Fait | Moniteur avec soustraction du background |
| Dashboard web | Fait | FastAPI + Chart.js, 4 onglets (spectre, background, CPS, historique) |
| Background realiste (entrainement) | Fait | Continuum CsI(Tl) + hybride mesuré/synthétique |
| Canal de debordement exclu | Fait | 1023 canaux (ch 1023 overflow exclu) |
## Prochaines etapes
- [ ] Re-entrainer le modele avec le background realiste CsI(Tl) + hybridation du background mesure
- [ ] Tester avec une source radioactive connue (Cs-137)
- [ ] Nettoyer les checkpoints d'epochs dans `models/` (garder seulement `vega_best.pt`, `vega_isotope_index.txt`)
- [ ] Transfer vers Pi 4 pour la production
- [ ] Ajouter la courbe de continuum CsI(Tl) sur l'interface web background
## 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
- Canal 1023 (overflow bin) affiche comme un pic a 3039 keV -> exclus de l'affichage (NUM_CHANNELS=1023)
- Lissage Gaussien du background creait un artefact aux bords -> normalisation locale du noyau au lieu de reinjecter data[i]
- Background d'entrainement exponentiel ne ressemblait pas au spectre CsI(Tl) reel -> remplace par modele realiste (bosse asymetrique a 110 keV + queue Compton)
- Ajout de l'entrainement hybride : 70% background mesure + 30% synthetique quand `background_24h.npy` est disponible