Détecter
56 des 79 épisodes de lésion retrouvés (71 %) pour 1,2 fausse alerte par minute, contre 66 % pour la règle initiale à charge égale. Au réglage large : 67 sur 79 (85 %).
Stage de recherche · 4 mois
Stage de fin de M1 à l'Institut des systèmes et de la robotique de l'Université de Coimbra, au Portugal. J'y ai conçu une chaîne de traitement qui parcourt une vidéo de capsule endoscopique et signale chaque lésion suspecte, avec son instant, une capture annotée, sa catégorie clinique et sa position dans le tube digestif.
Tous mesurés sur des vidéos de patients que les modèles n'ont jamais vues.
La capsule endoscopique est l'examen de référence de l'intestin grêle. Le patient avale une capsule de la taille d'une grosse gélule, qui filme le tube digestif pendant huit à douze heures. Le médecin relit ensuite 50 000 à 100 000 images : entre trente minutes et deux heures de lecture, pendant lesquelles une lésion visible sur quelques images seulement peut passer inaperçue.
Un pipeline qui prend une vidéo complète et produit, pour chaque anomalie suspecte : son instant, une capture annotée, sa catégorie clinique et sa localisation — estomac, intestin grêle ou côlon, puis position dans le grêle en pourcentage du temps de transit. Savoir où se trouve une lésion compte autant que savoir ce qu'elle est : le choix de l'intervention en dépend.
Le stage s'est déroulé à l'Institut des systèmes et de la robotique (ISR) de l'Université de Coimbra, dans le groupe du professeur Hélder Araújo, qui travaille sur la vision par ordinateur et ses applications médicales. C'était un projet individuel de recherche et développement, mené en anglais dans un laboratoire très international.
Le sujet initial visait la trajectoire de la capsule en centimètres. Aucune donnée publique ne permet de la vérifier : une caméra seule ne donne pas l'échelle, et la capsule avance, s'arrête et recule au gré du péristaltisme. J'ai donc proposé une localisation anatomique, qui garde l'objectif clinique tout en restant mesurable.
Uniquement des jeux de données publics et anonymisés (Kvasir-Capsule, Capsule Vision 2024, WCEbleedGen), un ordinateur portable sans carte graphique pour le traitement vidéo, et le quota gratuit de GPU de Kaggle pour les entraînements.
De la vidéo brute au rapport, en six étapes.
La vidéo est lue avec OpenCV à 2 images par seconde : un enregistrement de 40 minutes donne environ 4 800 images à analyser.
Un réseau EfficientNet-B3 affiné sur 12 classes : huit types de lésions, la muqueuse normale, les vues dégradées (bulles, débris) et les deux repères anatomiques. La probabilité de lésion d'une image est la somme des huit classes de lésions.
Les images signalées à moins de deux secondes d'écart forment un épisode, dont la catégorie clinique est votée par ses images ; les épisodes contigus forment une zone. Le médecin reçoit ainsi un endroit à vérifier, pas cinquante images.
Grad-CAM localise la région de l'image qui a déclenché l'alerte ; elle est encadrée sur la capture jointe à chaque événement.
Un second réseau, MobileNetV3-Small, reconnaît le pylore et la valve iléo-cæcale. Ces deux franchissements découpent la vidéo en estomac, intestin grêle et côlon ; la position d'une lésion dans le grêle est le temps écoulé depuis le pylore, divisé par la durée totale du transit.
Un fichier JSON par vidéo liste les événements avec tous leurs champs, accompagné d'une frise chronologique. Chaque décision des modèles est enregistrée image par image, ce qui permet de rejouer n'importe quelle règle sans relancer des heures de calcul.
Construire le pipeline n'était pas le plus difficile : il fallait surtout prouver ce qu'il vaut. Un modèle évalué sur des images d'un patient qu'il a vu à l'entraînement paraît bien meilleur qu'il ne l'est : les études qui annoncent plus de 95 % mélangent les images d'un même patient, alors qu'avec une séparation par patient les meilleurs résultats publiés sur ce jeu de données plafonnent à 0,35 de macro-F1.
Mesurés une seule fois sur les vidéos tenues à l'écart, avec une tolérance de ± 5 secondes.
56 des 79 épisodes de lésion retrouvés (71 %) pour 1,2 fausse alerte par minute, contre 66 % pour la règle initiale à charge égale. Au réglage large : 67 sur 79 (85 %).
53 des 56 lésions retrouvées reçoivent la bonne catégorie clinique parmi cinq : vasculaire, inflammatoire, lymphangiectasie, corps étranger, polype.
64 lésions sur 67 placées dans la bonne région, avec une erreur médiane de 0,8 point sur la position dans le grêle. Une segmentation qui impose l'ordre anatomique, mesurée à part, ramène l'erreur au pylore de 13 à 5 secondes.
Presque toutes les images de sang frais du jeu de données viennent d'un seul patient : impossible à apprendre en validation croisée. Des images externes, auditées, ont été ajoutées ; sur 2 151 images d'un autre jeu jamais vues, l'AUROC atteint 0,90.
Un outil médical se juge autant sur ses limites que sur ses résultats. Celles-ci sont écrites noir sur blanc dans le rapport.
Intégrer la segmentation par ordre anatomique au pipeline, valider sur les 22 examens du jeu Galar filmés avec la même caméra dans un autre hôpital, et faire annoter complètement quelques vidéos par un médecin.
41 modules Python (environ 6 200 lignes), 10 notebooks d'entraînement et plus de 60 commits.
Réseaux EfficientNet-B3 et MobileNetV3-Small, entraînement, inférence, poids pré-entraînés sur ImageNet.
PyTorch 2.9
Décodage et échantillonnage des vidéos, dessin des captures annotées, essais d'homographie.
OpenCV 4.13
Carte d'activation qui situe dans l'image la région à l'origine de la décision.
Classifieur de section, distance à la muqueuse normale (k-NN), AUROC et autres mesures.
scikit-learn 1.6
Caches des sorties des modèles, rejeu des règles de décision, tableaux de résultats.
Entraînements sur le quota gratuit : environ 3 heures de GPU pour les modèles finaux, 13 minutes par modèle.
Le projet a avancé par itérations courtes, chacune conclue par une mesure. Plusieurs idées séduisantes ont été abandonnées parce qu'elles n'atteignaient pas leur critère : c'est ce qui rend les chiffres finaux crédibles.
Le détail de chaque mesure, des choix écartés et du protocole d'évaluation.
Images endoscopiques : jeu de données public Kvasir-Capsule (licence CC BY 4.0).