Mesure de l’épaisseur des parois inter-alvéolaires dans une coupe de poumon

Reactiv’IP a développé un script Python spécifique, basé sur la librairie IPSDK, pour mesurer automatiquement l’épaisseur des parois situées entre les alvéoles pulmonaires à partir de coupes de poumons acquises en microscopie optique. Cette approche globale permet de générer un histogramme complet des épaisseurs tout en évitant un travail manuel fastidieux habituellement réalisé par un opérateur.

Parois avéoles pulmonaires

Coupe de poumon, détection des parois et mesure automatique des épaisseurs.

Cette application commence par détecter les alvéoles à l’aide d’un modèle de Machine Learning préalablement créé à partir de quelques images. Une fois la segmentation des alvéoles réalisée, l’algorithme calcule une carte de distance à partir du masque correspond aux parois. L’histogramme des épaisseurs est alors calculé en utilisant les valeurs des distances issues de la ligne de crête de cette carte de distance.

Thickness histogram

Histogramme de répartition des épaisseurs des parois en microns

Description détaillée du process

Apprentissage pour la détection des alvéoles

La première étape a consisté à créer un modèle de Machine Learning à l’aide du module de Smart Segmentation proposé dans IPSDK Explorer. L’opération consiste simplement à marquer manuellement quelques zones faisant partie des parois et des alvéoles. Une fois le modèle construit à partir d’une petite zone de l’image, il peut être réappliqué sur l’image complète ou sur d’autres images du même type.

Segmentation des alvéoles

Une fois le modèle de Machine Learning créé, l’algorithme est capable de segmenter automatiquement les alvéoles et les parois. A cette étape intermédiaire, il est possible de compter le nombre d’alvéoles ainsi que de réaliser une mesure de distribution de leur taille.

Carte de distance des parois

L’étape suivante consiste à calculer la carte de distance des parois inter-pulmonaires. Cet algorithme utilise l’image binaire du masque des parois. Puis en se basant sur les contours, il va réaliser une propagation à l’intérieur du tissu en marquant les pixels de façon incrémentale (proportionnelle à la distance au bord le plus proche).

Au final, la carte de distance fournit la cartographie globale des épaisseurs.

Parois avéoles pulmonaires

Extraction des lignes médianes entre les alvéoles

Il est ensuite nécessaire de ne pendre en compte que les pixels présents sur les lignes de crête pour construire l’histogramme de répartition des épaisseurs de parois. Ces lignes correspondent aux lignes de séparation générées par l’algorithme de bassins versants.

A noter que les valeurs présentes sur ces lignes de crête représentent la distance au bord le plus proche. Il est donc nécessaire de multiplier ces valeurs par deux pour obtenir les épaisseurs.

Alveoli line separator

Calcul de l’histogramme des épaisseurs

Au final, le process utilise les valeurs des pixels se trouvant sous les lignes médianes pour calculer automatiquement l’histogramme de répartition des épaisseurs de parois.

Ce calcul est directement effectué à l’aide de la fonction Masked Histogram measurement 2d disponible en standard dans la librairie IPSDK.

 

Thickness histogram