Home VTK-ITK: Traitement d'Image avec ITK
Post
Cancel

VTK-ITK: Traitement d'Image avec ITK

Lien de la note Hackmd

Insight Toolkit (ITK)

  • Open source
  • Ecrite en C++
  • Existe depuis 2000
  • Environ 267 developpeurs
  • Plus de 500k telechargements
  • Investissement de la part du NIH: ~14M
  • Algorithmes de traitement d’image seulement
  • Pas de UI ou visualisation
  • www.itk.org

3 grandes famille de modalites:

  • IRM
    • Rapide et non nocif (a notre connaissance)
    • On voit tres bien la matiere blanche/grise du cerveau
  • Scanner
    • CB scanner, radio (rayons X)
    • Attentions aux rayons X
    • On voit tres biens les os
  • Ultrasons
    • Si on attend un enfant par exemple
    • Non nocifs a notre connaissance MAIS besoin de signer pour une echographie une decharge (au cas ou)

Visible human

Un condamne a mort aux US a donne son corps a la science

  • A ete scanner en HD avec les rayons X (apres sa mort)
  • Son corps a ete congele et decoupe en tranche
  • Chaque tranche a ete photographiee

Vraie tranche d’Humain

MAIS

  • Tout le monde a acces aux images
  • Tres utile pour la science
  • 500 Go (pour les annees 2000, quantite enorme de donnees)

Pourquoi CMAKE a ete cree

  • Utilisation des images ci-dessus par tout le monde
  • Chacun fait son algo dans son coin
  • Gouvernement US a voulu tout centraliser “visible human toolkit” (aujourd’hui ITK)

Ca reste une boite a outils et c’est pour que ce soit portable

Developpeurs initiaux d’ITK

Combinaison industriels/academique

Traitement d’image

Segmentation

Aujourd’hui, le traitement d’image sert a ameliorer le traitement d’image.

Pourquoi extraire la taille des ventricules ?

La taille des ventricules c’est important

  • Lie a l’autisme
    • Evolution de la taille des ventricules: predire l’autisme rapidement chez l’enfant
    • Verifier que les ventricules grandissent correctement

Exemple d’une tumeur: permet de detecter la tumeur + pour le traitement pour l’enlever

Recalage

Le probleme, c’est que le patient est vivant

Integrer ITK dans une application

On ne va pas fair d’interface graphique pendant le TP

Generic programming

  • La STL en C++
  • Abstraction des types et actions

C++

  • Utilisation de namespaces
  • Utilisaiton de smart pointers
    • Propre pointeurs de ITK
  • Gestion des exceptions

Python Types

Il faut connaitre le type de pixel sur lequel on travaille

Streaming

Le streaming d’ITK partitionne notre grille et applique nos filtres

  • En maillage: les ghost cells
  • Similaire en ITK

Exemple: convolution sur chaque partie partitionnee mais bordure coupee entre 2

Quelle taille pour une image d’un scanner ? Entre 10 et 25 Mo (meme decompresse, rentre largement en memoire)

Pour le TP

  • Pas en 3D

Gestion de la memoire

Pipeline de traitement

Un filtre prend une image en entree et une autre en sortie

On combine les filtres entre eux

En tant que traiteur d’image, soit:

  • On creer un nouveau filtre
  • On utilise ce qui existe deja et on combine les filtres

Segmentation

Comment segmenter cette tumeur ?

La tranche est a l’envers car le patient est sur le dos

Confidence Connected

On defini un point (un germe)

On agrandit le point

Qu’est-ce qui est problematique sur ce genre d’algo ? Le seed point a ete mis a la main

  • Pour un point ca va
  • Mais pour + (genre 15) c’est plus dur

Connected Threshold

A nous de definir upper bound et lower bound

Isolated connected

Demande 2 seeds (un germe a l’exterieur et un a l’interieur)

  • Calcul la moyenne

Quelle methode est la meilleure ? Tout depend de notre image, ce que veut le practicien, etc.

Watershed concept

Shape detection

Recalage

Exactement le meme cas pour les scanners

La machine a gauche vaut ~60M d’euros

Si on veut combiner des scanners Rayons X et IRM, il faut faire du recalage

  • Sauf dans le scanner PET-CT

Recalage d’une eclipse de Lune (fait a la main sur PowerPoint par Julien Jommier)

Composants du recalage

  • Transformation
    • Si on a 2 images, comment est-ce qu’on transforme une image qui boufe pour l’aligner avec une autre image ?
  • Metrique (de mise en correspondances)
    • Quand est-ce qu’on est alignes ou non
  • Optimiseur
    • Descente de gradient

Transformation

  • Translations (deplacements)
    • conserve distances et angles orientes
    • 2 parametres
  • Rotations (isometrie)
    • conserve distances et angles
  • Homotheties (similitude)
    • conserve les rapports entre les distances
  • Affinites
    • conserve le parallelisme
    • 6 parametres
  • Non-lineaires

Transformations

Affine

Quelle tranformation ?

Quelle transformation a ete faite sur cette image ?

Homothetie avec juste un parametre

Transformations Non-Lineaires

  • Transformations elastiques ou non-rigides
  • Exemples:
    • B-Splines (Combinaison lineaire de Spline)
    • Thin-plate splines

Metrique

  • Recalage iconique
    • Somme des differences au carre
    • Coefficient de correlation

SSD

Cross-Correlation

  • $\bar f=$ moyenne de $f$
  • $\sigma f=$ ecart type de $f$
  • Relation affine entre les intensites

Information mutuelle

  • Issue de la theorie de l’information
  • Relation statistique entre les intensites des 2 images
  • Densite conjointe de probabilite des niveaux de gris
  • Calcul d’un histogramme conjoint
  • Mesure d’entropie

Histogramme conjoint:

  • Tres serree: peu d’entropie
  • Un peu partout: beaucoup d’entropie

On a 2 images qui ont bouge, l’histogramme commence a etre diffus:

Soit $g(x,y)$ la valeur de l’histogramme conjoint au point [x,y]:

Si on a 2 images alignees (meme patient):

Optimiseur

  • Descente de gradient
  • Gradient conjugue
  • Algo genetiques
  • Powell
  • LBFGS

Interpolateur

Quiz

Premiere question

On a 2 images du meme patient

Deuxieme question

  • a) 2.0
  • b) 1.0
  • c) 0.5
This post is licensed under CC BY 4.0 by the author.