Client
La société développant une plate-forme de soins de santé a engagé Elinext pour l'aider à créer un outil de diagnostic de pneumonie.
Défi
La société a développé une plate-forme de soins de santé complète. Le traitement de la pneumonie a été l'un de ses principales activités en raison de COVID, et elle souhaitait créer un outil de diagnostic de la pneumonie pour la plate-forme.
L'outil était destiné à analyser les images des radiographies pulmonaires et à identifier les signes de pneumonie à l'aide de l'apprentissage automatique (ML), une technologie d'intelligence artificielle (IA). La société ne disposait pas d'experts internes pertinents, alors ils ont demandé de l'aide et l'ont trouvée avec Elinext.
Solution
Nous avons commencé par rechercher le réseau neuronal qui analyserait au mieux les images pulmonaires et avons trouvé quatre candidats: ResNet (50, 101, 152), VGG (16, 19), MobileNet et Inception (V2, V3). Après avoir approfondi chacun d'eux, nous avons choisi Inception V3 développé par le laboratoire de recherche de Google.
Une fois que nous avons choisi notre réseau neuronal, nous sommes passés au développement d'une architecture logicielle et à la formation d'algorithmes.
Architecture
Le logiciel est basé sur la technologie Web et peut être intégré à d'autres systèmes tels que des applications de bureau et des applications mobiles.
Pour le développement de logiciel, nous avons utilisé des frameworks, des bibliothèques et des technologies accessibles au public. Pour créer une page Web HTML5 statique, nous avons déployé un serveur Web dans un conteneur Docker. Sur cette page, un utilisateur peut lécharger une image de poumon et obtenir des commentaires. L'image est envoyée pour traitement via le protocole HTTP.
Apprentissage
L'apprentissage est la partie la plus difficile de la création d'algorithmes de ML. Votre capacité à obtenir suffisamment de données, à éviter les erreurs et à être cohérent tout au long du processus peut améliorer ou perturber l'algorithme.
L'apprentissage manuelle est souvent incohérente. Vous pouvez oublier les étapes que vous avez suivies et dans quel ordre, ou parfois supprimer des journaux. En conséquence, vous ne pourrez pas répéter l'entraînement avec précision. Nous avons donc automatisé le processus de A à Z.
Nous devions former rapidement des modèles complexes avec d'énormes ensembles de données. Pour ce faire, nous avons loué une instance Amazon Web Services (AWS) g3s.xlarge et utilisé la base d'apprentissage en profondeur AMI (Ubuntu 18.10). Ce dernier est une machine puissante dotée avec 16GB de RAM, un processeur 4 cœurs et un GPU Nvidia Tesla M60. C'était parfait pour cette tâche.
Une fois que nous avons choisi la technologie, l'apprentissage pourrait commencer. Nous avons construit un conteneur Docker propre pour isoler le modèle des influences extérieures et nous avons téléchargé une tonne d'images pulmonaires de Kaggle. Pour pouvoir travailler avec les images, nous les avons sous-échantillonnées, en les réduisant à une sélection pertinente et cohérente. L'ensemble de données et l'environnement d'apprentissage étaient prêts.
L'apprentissage a commencé. Nous avons été confrontés à un défi de surentraînement qui permettait au modèle de mémoriser les images d'apprentissage et, par conséquent, de ne pas analyser avec précision de nouvelles images à l'avenir. Notre solution consistait à modifier légèrement la largeur, la hauteur, le grain et d'autres paramètres des images. Nous avons également lancé Tensorboard pour surveiller les métriques d'apprentissage.
Lors des étapes finales, nous avons exporté le modèle vers un fichier H5, un format couramment utilisé dans les diverses industries, des soins de santé à l'aérospatiale. Nous l'avons testé manuellement et automatiquement, en utilisant des scripts prédéfinis.
Exactitude
Le modèle que nous avons développé a une marge de confiance et utilise l'identification binaire. Qu'est-ce que cela signifie? Cela signifie que si l'algorithme identifie 80% des poumons comme non affectés, il dira que les poumons sont en bonne santé. Si le chiffre est inférieur à 80%, cela signifie que les poumons peuvent être affectés et nécessitent des soins médicaux.
Comment Ça Marche
L'utilisateur ouvre l'application Web dans son navigateur, télécharge une image du poumon, l'envoie au service et reçoit des commentaires. La commentaires indiqueront si les poumons sont en bonne santé ou si un médecin devrait jeter un coup d'œil à l'image.
Résultat
L'outil que nous avons créé peut aider à réduire le nombre d'erreurs humaines dans l'identification de la pneumonie. Ceci est particulièrement utile en période de pandémie, lorsque les médecins sont surchargés et peuvent ne pas remarquer certains signes de maladie. Nous pouvons également mettre le modèle à l'échelle pour identifier d'autres maladies. La mise à l'échelle du modèle permet de l'intégrer dans d'autres systèmes, d'accélérer le travail et d'analyser plusieurs images simultanément.