Retour aux projets

Labo de détection de la pneumonie

Labo pédagogique sur des radiographies thoraciques comparant une régression logistique à caractéristiques conçues à la main et des modèles CNN pour la prédiction Normal contre Pneumonie.

ExpérimentalCode source disponibleLaboratoire pédagogique d'imagerie médicale / 2024-2025

Problème

La classification de radiographies thoraciques exige un prétraitement cohérent et une formulation prudente pour que la démo ne laisse pas croire à une maturité clinique.

Solution

Construire et comparer trois voies de modèles pédagogiques : une régression logistique avec un seul vecteur de caractéristiques combiné, une régression logistique avec des caractéristiques Gabor/DCT/Fourier/PHOG séparées, et un CNN entraîné directement sur des tenseurs d'images.

Fonctionnalités clés

Jeu de données documenté de 5 200 radiographies thoraciques réparties entre les classes Normal et Pneumonie
Prétraitement des images : chargement en niveaux de gris, redimensionnement en 128x128, normalisation et tenseurs prêts pour les notebooks
Extraction de caractéristiques avec des filtres de Gabor, la DCT, la transformée de Fourier et des descripteurs PHOG
Notebooks de régression logistique à une et plusieurs caractéristiques avec modèles pickle sauvegardés
Notebook CNN avec courbes d'entraînement TensorFlow/Keras et artefact de modèle h5 sauvegardé
Matrices de confusion, rapports d'exactitude, graphiques PCA/frontières de décision et courbes d'entraînement/validation
Interface d'inférence Tkinter avec import d'image, sélecteur de modèle et sortie de labo Normal/Pneumonie
Présenté comme une expérience pédagogique, pas comme un produit de diagnostic médical

Rôle

Contributeur d'une équipe académique avec Chawki Ahmed Ramzi Belhaddad, qui présente le dépôt public comme un travail pédagogique d'imagerie médicale et non comme un produit diagnostique.

Stack

PythonJupyter NotebookTensorFlow/Kerasscikit-learnOpenCVscikit-imageNumPyPandasSciPyMatplotlibSeabornTkinterMedical Imaging

Liens

Schéma d'architecture

Mermaid
flowchart LR
  Dataset["Jeu de données de radiographies thoraciques"] --> Prep["Prétraitement : niveaux de gris, redimensionnement 128x128, normalisation"]
  Prep --> Features["Extraction de caractéristiques : Gabor, DCT, Fourier, PHOG"]
  Features --> SingleCsv["single_feature.csv : vecteur de caractéristiques combiné"]
  Features --> MultiCsv["multi_features.csv : colonnes de caractéristiques séparées"]
  SingleCsv --> LRSingle["Régression logistique : LR_1feature"]
  MultiCsv --> LRMulti["Régression logistique : LR_4features"]
  Prep --> CNN["CNN entraîné sur des tenseurs d'images"]
  LRSingle --> Metrics["Exactitude, rapports, matrices de confusion"]
  LRMulti --> Metrics
  CNN --> Metrics
  LRSingle --> App["Sélecteur de modèle Tkinter"]
  LRMulti --> App
  CNN --> App
  App --> Result["Sortie du labo : Normal ou Pneumonie"]

Captures d'écran : Labo pneumonie

6 vues
Courbes d'entraînement et de validation du CNN, utilisées pour examiner le comportement d'apprentissage du modèle à base d'images.
Matrice de confusion du CNN sur le jeu de test, présentée comme preuve de labo et non comme une affirmation de performance clinique.
Visualisation des régions de décision par PCA pour la voie de régression logistique utilisant des caractéristiques Gabor, DCT, Fourier et PHOG séparées.
Matrice de confusion de la régression logistique multi-caractéristiques, pour comparer les résultats avec caractéristiques conçues à la main.
Frontière de décision de la régression logistique à caractéristique unique, construite à partir du vecteur de caractéristiques combiné.
Matrice de confusion de la régression logistique à caractéristique unique, utilisée pour comparer le tableau de caractéristiques plus simple à la configuration multi-caractéristiques.