← Tous les projets

Science

ML et MLOps

Classifieur de formes 3D, avec versionnage des données, suivi d'expériences et déploiement contrôlé par la CI.

Terminé Sprint S8+S16 · 13 points
En bref, sans jargon pour les non-informaticiensLire le résuméRefermer
Ce que c'est
Une intelligence artificielle qui reconnaît la forme d'un objet 3D (cube, sphère, cylindre…), entraînée sur des milliers d'exemples.
À quoi ça sert
Le principe de la reconnaissance automatique, appliqué aux formes 3D : trier des pièces, reconnaître des objets numérisés.
Ce que ça montre
Tout le cycle d'un projet d'intelligence artificielle : données, entraînement, précision mesurée (plus de 95 %) et mise en service contrôlée.

Prolonge le CNN 3D de ma thèse

Code source

Comment les morceaux tiennent ensemble

Schéma : Pipeline DVC → Données (génère) ; Données → Modèles (entraînent) ; Modèles → MLflow ; Modèles → ONNX (export vérifié) ; ONNX → API Python ; Pipeline DVC → Fiche du site (métriques, matrices). génère entraînent export vérifié métriques, matrices Pipeline DVC params.yaml, dvc.lock Données 6 formes, 512 points Modèles scikit-learn, PyTorch MLflow base SQLite locale ONNX pointnet.onnx, 300 Ko API Python POST /v1/mesh/classify Fiche du site résultats lus au build

Résultats

Mesurés sur 600 nuages de points de test (100 par classe), jamais vus à l'entraînement ; recalculés par la CI à chaque modification du projet.

ModèlePrécisionF1 macroEntraînement (CPU)
Référence : descripteurs invariants + boosting (scikit-learn)97,2 %0,97133 s
PointNet (PyTorch)95,2 %0,951259 s
PointNet exporté en ONNX (servi par l'API)95,2 %––

La CI échoue si la meilleure précision, ou celle du modèle exporté, passe sous 90,0 %.

Matrice de confusion, modèle de référence
Vraie classe \ préditesphèretoreboîtecylindrecônegélule
sphère10000000
tore01000000
boîte0089911
cylindre0049402
cône00001000
gélule00000100
Matrice de confusion, PointNet
Vraie classe \ préditesphèretoreboîtecylindrecônegélule
sphère10000000
tore01000000
boîte00881101
cylindre00128305
cône00001000
gélule00000100

Lignes : la vraie classe ; colonnes : la classe prédite ; la diagonale compte les bonnes réponses. Les erreurs viennent presque toutes de la confusion entre boîte et cylindre.

Technologies

  • PyTorch
  • scikit-learn
  • DVC
  • MLflow
  • ONNX
  • GitHub Actions

Qui fait quoi

PyTorch
Entraîne le PointNet, un réseau qui classe un nuage de points.
scikit-learn
Le modèle de référence : descripteurs invariants par rotation et boosting, qui bat ici le réseau (97,2 % contre 95,2 %).
DVC
Décrit le pipeline (données, entraînement, export, contrôle) pour le rejouer à l'identique ; les données restent hors de git.
MLflow
Garde les paramètres, les métriques et la courbe de perte de chaque entraînement.
ONNX
Le format d'export du PointNet, vérifié identique à PyTorch, que l'API sert sans PyTorch.
GitHub Actions
Rejoue le pipeline en CI et échoue si la précision passe sous 90 %.

Definition of Done

  • Code relu, diff par diff
  • Tests unitaires et d'intégration verts
  • CI verte sur Linux, Windows et macOS si compilé
  • README, REVIEW.md et DECISIONS.md à jour
  • Textes en français et en anglais
  • Démo déployée et testée sur mobile