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

2.3 KiB

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