/PneumoApp

Primary LanguageJupyter Notebook

Qu'est-ce que la Pneumonie

La pneumonie est une affection inflammatoire du poumon affectant principalement les petits sacs d'air connus sous le nom d'alvéoles. Les symptômes incluent généralement une combinaison de toux productive ou sèche, de douleurs thoraciques, de fièvre et de difficultés respiratoires. La gravité de la condition est variable. La pneumonie est généralement causée par une infection virale ou bactérienne, et plus rarement par d'autres micro-organismes, certains médicaments ou des affections telles que les maladies auto-immunes. Les facteurs de risque incluent la fibrose kystique, la broncho-pneumopathie chronique obstructive (BPCO), l'asthme, le diabète, l'insuffisance cardiaque, un historique de tabagisme, une capacité réduite à tousser, comme après un AVC, et un système immunitaire affaibli. Le diagnostic est souvent basé sur les symptômes et l'examen physique. Une radiographie pulmonaire, des analyses sanguines et une culture des crachats peuvent aider à confirmer le diagnostic. La maladie peut être classée en fonction de l'endroit où elle a été contractée, comme la pneumonie communautaire ou nosocomiale, ou associée aux soins de santé.

Étapes que Nous avons Suivies

1. Collecte de Données

Nous avons utilisé l'ensemble de données sur la pneumonie aux rayons X, qui est open source et disponible sur Kaggle. Le jeu de données est organisé en 3 dossiers (train, test, val) et contient des sous-dossiers pour chaque catégorie d'images (Pneumonie/Normal). Il y a 5 863 images aux rayons X (JPEG) et 2 catégories (Pneumonie/Normal). Les images aux rayons X du thorax (antéro-postérieur) ont été sélectionnées parmi des patients pédiatriques âgés de un à cinq ans du Guangzhou Women and Children's Medical Center, à Guangzhou. Toutes les radiographies du thorax ont été réalisées dans le cadre des soins cliniques de routine des patients. Pour l'analyse des images aux rayons X du thorax, toutes les radiographies du thorax ont été initialement examinées pour le contrôle de la qualité en éliminant toutes les images de faible qualité ou illisibles. Les diagnostics des images ont ensuite été évalués par deux médecins experts avant d'être autorisés à former le système d'IA. Afin de tenir compte des erreurs de notation éventuelles, l'ensemble d'évaluation a également été vérifié par un troisième expert.

2. Bibliothèques Utilisées

  1. Pandas
  2. Numpy
  3. cv2
  4. Keras
  5. Scikit Learn
  6. Flask

3. Augmentation des Données

Afin d'éviter le problème de surajustement, nous devons étendre artificiellement notre jeu de données. Nous pouvons rendre votre jeu de données existant encore plus grand. L'idée est d'altérer les données d'entraînement avec de petites transformations pour reproduire les variations. Les approches qui modifient les données d'entraînement de manière à changer la représentation des tableaux tout en conservant l'étiquette sont connues sous le nom de techniques d'augmentation de données. Certaines augmentations populaires que les gens utilisent sont les niveaux de gris, les retournements horizontaux, les retournements verticaux, les découpes aléatoires, les fluctuations de couleur, les translations, les rotations, et bien d'autres. En appliquant seulement quelques-unes de ces transformations à nos données d'entraînement, nous pouvons facilement doubler ou tripler le nombre d'exemples d'entraînement et créer un modèle très robuste.
Pour l'augmentation des données, Nous avons choisi de :

  1. Faire pivoter aléatoirement certaines images d'entraînement de 30 degrés
  2. Zoomer aléatoirement de 20 % certaines images d'entraînement
  3. Déplacer aléatoirement les images horizontalement de 10 % de la largeur
  4. Déplacer aléatoirement les images verticalement de 10 % de la hauteur
  5. Faire basculer aléatoirement les images horizontalement. Une fois que notre modèle est prêt, nous adaptons l'ensemble de données d'entraînement.

4. Entraînement du Modèle

Pour entraîner le modèle, nous avons utilisé un algorithme simple de réseau de neurones convolutionnels.

5. Analyse après l'Entraînement du Modèle


matrice de confusion


6. Création d'une webapp

Utilisation du framework Flask pour créer une Webapp Basique permetttant d'upload une image grayscale de radio et génère une prédiction sur la présence ou non de Pneumonie dans celle ci.

7. Déploiement sur GCP Run

  1. Mise en ligne du projet sur Github
  2. Creation d'un compte GCP
  3. Upload via GCP Run en utilisant le tutorial suivant: https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-python-service