Vous êtes sur la page 1sur 18

1 2

Contenu
SYS-866: Intelligence Artificielle en Imagerie Médicale
•  Prétraitement I
–  Filtrage
Cours 3: Prétraitement I et Géométrie I –  Linéaire vs Non-linéaire
•  Géométrie I
–  Variables
–  Espaces
Prof. Matthew Toews
École de Technologie Supérieure –  Fonctions
matthew.toews@etsmtl.ca

3 4

Prétraitement I Réduire / atténuer le bruit


•  Réduire / atténuer le bruit
•  Réhausser / accentuer les attributs
•  Améliorer le contraste
–  Augmenter la plage dynamique
•  Filtrage
–  Linéaire
–  Non-linéaire
5 6

Réhausser / accentuer les attributs Améliorer le contraste

Filtrage Voisinage, Connectivité


I(x, y) Entrée
3D
2D
6 voisins
F(x, y) Filtre, noyeau, kernel, operateur, …,
4 voisins, 8 voisins …
26 voisins …

R(x, y)
Sortie, resultât, feature map, …

Le filtrage est le processus de créer une nouvelle valeur de pixel par Les valeurs des pixels voisins sont corrélées en images naturelles.
en fonction des données à proximité du pixel. Les filtres exploitent cet information.
Un opérateur local.
10

Filtres – CNN U-NET


Nombre de filtres par
couche
Entrée UNET Sortie Y = f (X)

Grandeur
d’image
Classification
Pré-traitement Détection
Type
Segmentation de
Filtres

Recalage
Ronneberger, O. et al. "U-net: Convolutional networks for biomedical image segmentation."
MICCAI, 2015.

12

Filtrage Linéaire Filtrage Linéaire


I(x, y) Entrée
•  Choix de noyau
F(x, y) Filtre, noyeau, kernel, …,
–  Identité
–  Pas bas: moyenneur, Gaussian
R(x, y) –  Pas haut: dérivé, gradient, Laplacien
Sortie, resultât, feature map, … –  Détecteur: motif d’intérêt
–  Déplacement d’image
–  Sous échantionnage
Convolution R(x, y) = ∑∑ I(x + i, y + j)F(i, j)
i j
–  Interpolation
2
Somme des différences carrées R(x, y) = ∑∑[ I(x + i, y + j) − F(i, j)]
i j
13 14

Filtrage Linéaire – Identité Filtrage Linéaire – Moyenneur

15 16

Filtrage Linéaire – Moyenneur Filtrage Linéaire – Gaussien


17 18

Gaussien ou Normale Gaussien ou Normale: Multidimensionnelle

Deux Paramètres: Deux paramètres:


Variance σ Covariance
Moyenne μ (matrice NxN) Σ
Moyenne
(vecteur 1xN) μ

19 20

Filtrage Linéaire – Gaussien Filtrage Linéaire – Gradient Horiz.


Filtrée ∂∂II ∂∂I ∂I
Originale ∇I = , ,
∂x ∂∂y ∂z
σ =5

σ = 10

σ = 50
21 22

Filtrage Linéaire – Gradient Horiz. Large Filtrage Linéaire – Gradient Vert.


∂∂II ∂∂I ∂I ∂II ∂∂II ∂I
∇I = , , ∇I = , ,
∂x ∂∂y ∂z ∂xx ∂y ∂z

23 24

Filtrage Linéaire – Laplacien Filtrage Linéaire – Laplacien

Système visuel mammifère:


champ réceptif
25 26

Filtrage Linéaire – Laplacien Filtrage Linéaire – Laplacien


•  Approximation
–  Difference-of-Gaussian

27 28

Filtrage Linéaire:
Filtrage Linéaire – Laplacien
Masque flou (Unsharp Mask)

I + α∇ 2 I

I ∇2 I
29 30

Filtrage Linéaire:
Filtrage Linéaire – Détecter de Motif
Masque flou (Unsharp Mask)

Accentuer les attributs

31 32

Filtrage Linéaire – Détecter de Motif Filtrage Linéaire – Déplacement d’Image


Filtre

Image Résultat
33 34

Filtrage Linéaire – Filtrage Non-linéaire


–  Médian
–  Bilateral
–  Réctification
•  ReLU CNN
–  MaxPool

35 36

Non-linéaire – Médian Filtre Médian vs. Gaussien


Filtre Médian
Image Bruité * Arêtes préservés,
bruit supprimé
* Structure perdue

Filtre Gaussien
* Arêtes, structure
plus flou
Pour chaque pixel 011122224
1) Trier les intensités voisines
2) Remplacer par la médiane Supprimer du bruit impulsionnel
37 38

Filtre Non-Linéaire – Bilateral Bilateral vs. Gaussien


Image Bruité Filtre Gaussien Filtre Bilateral
Filtrer tout en préservant les arêtes

39 40

Homunculus Géométrie I
•  Espaces
–  Ensembles (sets)
–  Dimension, distance, métrique
•  Fonctions
–  Transformations
•  Formes
–  point, ligne, sphere, surface
Penfield, Wilder; Boldrey, Edwin (1937). "Somatic Motor And Sensory –  1D, 2D, 3D, 4D, ND
Representation In The Cerebral Cortex Of Man As Studied By Electrical
Stimulation". Brain. 60 (4): 389–443. Prix Nobel, McGill
41 42

Image Numérique Variables, Chiffres, Nombres


•  Une grille de chiffres en mémoire
–  Coordonnées (x,y,…) – Géométrie
–  Valeurs I(x,y…) – Apparence I(x, y, z)
pixels, voxels, intensités
I(x,
( y)
x

43 44

Nombres Entiers & Naturels Nombres Entiers & Naturels


•  Binaire 1-bit: 0 ou 1 •  Binaire 2-bit: [-2,1] ou [0,3]

0 0 0 0
0 0 00 00

-1 11 01 1 3 11 01 1

1 1 10 10
-1 1 -2 2
45 46

Nombres Entiers & Naturels Nombres Entiers & Naturels


•  Binaire 3-bit: [-4,3] ou [0,7] •  Hexadécimal 4-bit binaire hexadécimal décimal

24 = 16 valeurs possible
•  Octet 8-bit ex [0101 1010]
0 0 28 = 256 valeurs possible
-1 000 7 000
111 1 111 1
001 001 [-128,127] ou [0,255]

-2 110 010 2 6 110 010 2

101 011 101 011


100 100
-3 3 5 3
-4 4

47 48

Nombres Réels Image Numérique


Chiffre a virgule flottante IEEE-754 32-bit
•  Coordonnées (x,y,…) – Géométrie
emplacements
•  Valeurs I – Apparence I(x, y, z)
pixels, voxels, intensités
I(x,
( y)
x

Signe Exposant Mantisse fractionnnaire


1-bit 8-bit 23-bit

y
49 50

Coordonnées – Géométrie Intensités – Apparence, Mesures


1D : niveau de gris
1D
x ∈ R1 I ∈ R1

3D 3D : ex JPG Couleur
(x, y, z) ∈ R1 × R1 × R1 = R 3 I ∈ R1 × R1 × R1 = R 3

51 52

Application, Fonction Espaces


Application: une relation entre deux ensembles pour laquelle chaque 2D p = (x, y) ∈ R 2 Espace
élément du premier est relié à un unique élément du second.
y = un ensemble de points
I(x, y, z) p2 = (x2 , y2 )
y2
v12 = p2 − p1 = (x2 − x1, y2 − y1 ) Vecteur
I : R 3 → R1
Coordonnées 3D y1
p1 = (x1, y1 ) Distance: longueur ou norm
x2 x1 x de vecteur
d( p2 , p1 ) = v12 = (x2 − x1 )2 + (y2 − y1 )2
Niveau de gris 1D
53 54

Espaces Distances: L Norme


3D p = (x, y, z) ∈ R 3 Espace
L2 = v12 = (x2 − x1 )2 + (y2 − y1 )2 + (z2 − z1 )2 Distance euclidienne, norme L2
2
y = un ensemble de points y
p2 = (x2 , y2 , z2 ) L1 (v12 ) = dx + dy + dz Distance Manhattan, norme L1

dz = z2 − z1 dz = z2 − z1
v12 = p2 − p1 = (dx, dy, dz) Vecteur L∞ = v12 ∞
= max(dx, dy, dz) Max, norme L∞

dy = y2 − y1 dy = y2 − y1 v12 = (dx, dy, dz)


p1 = (x1, y1, z1 )
dx = x2 − x1 Distance: longueur ou norm dx = x2 − x1 L-norme Lp
x de vecteur x
1/ p
L p = v12 p
= (x2 − x1 ) p + (y2 − y1 ) p + (z2 − z1 ) p
2 2 2
d( p2 , p1 ) = v12 = (x2 − x1 ) + (y2 − y1 ) + (z2 − z1 )
z z

55 56

Espace Métrique Triangle Rectangle


Espace métrique: un ensemble muni d'une métrique.
Une distance sur un ensemble RN (N dimensions) est une fonction de pi
RN×RN dans l'ensemble des nombres réels positifs:
c = d( pi , p j )
d( pi , p j ) : R N × R N → R + a = d( pi , pk )

Une métrique est une distance qui satisfait les conditions suivantes pour
tous pi, pj, pk dans RN: pj
1) identité des indiscernables
pk
pi b = d( pk , p j )
d( pi , p j ) = 0 ⇒ pi = p j 2) symétrie
3) inégalité triangulaire
d( pi , p j ) = d( p j , pi )
d( pi , p j ) ≤ d( pi , pk ) + d( pk , p j )
c2 = a2 + b2
pk pj
57 58

Vecteur Produit Scalaire


 
v = {v1, v2 ,..., vN } RN v = {v1, v2 ,..., vN }

1) Longeur v
 Vecteur d’unité: norme = 1
v *Normalization de longeur
2) Direction v̂ = 
vecteur d’unité v  
θ u = {u1,…, uN } θ u ⎧⎪ u u ⎫⎪
û =  = ⎨ 1 ,…, N ⎬
u ⎪⎩ u u ⎪⎭
û = 1
Produit scalaire R N × R N → R+ Produit scalaire
N
  N    1
u ⋅ v = ∑ ui vi = u v cos(θ ) û ⋅ v =  ∑u v =i i v cos(θ )
i=1
u i=1

https://fr.wikipedia.org/wiki/Vecteur

59 60

Produit Scalaire Produit Scalaire


 
v v
v̂ =  Deux vecteurs d’unité
v


Projection de v sur l’axe û 
v̂ = 1 u
θ θ û = 
û u
uû = 1 û = 1
Produit scalaire
Pro Produit scalaire : Similarité cosinus
N
 1
û ⋅ v =  ∑u v = i i v cos(θ ) û ⋅ v̂ = cos(θ )
u i=1
61 62

Produit Vectoriel 3D Produit Scalaire : Matrices



v = {v1, v2 , v3 } ⎡v1 ⎤
 ⎢ ⎥ ⎡u1 ⎤
v = {v1,…, vN } = ⎢ ⎥  ⎢ ⎥
u = {u1,…, uN } = ⎢ ⎥
⎣⎢vN ⎦⎥ ⎢⎣uN ⎥⎦

w  T
u = {u1, u2 , u3 } ⎡u1 ⎤
θ Règle de la main droite θ T ⎢ ⎥
 Matrice transposé
transposée u = ⎢ ⎥ = [u1,…, uN ]
w
ŵ =  ⎢⎣uN ⎥⎦
w
Produit vectoriel Produit scalaire Produit scalaire avec matrices

     ⎡v1 ⎤
  w = u × v = u v sin(θ )ŵ   N T  ⎢ ⎥ N
u ⋅ v = ∑ ui vi u ⋅ v = [u1,…, uN ]⎢ ⎥ = ∑ ui vi
i=1
w⋅u = ? ⎢⎣vN ⎥⎦ i=1

63 64

Système de coordonnées Matrice de Rotation


N
 R  RN
v Système de coordonnées = N vecteurs ou axes v Système de coordonnées = N vecteurs ou axes
⎡u1T ⎤ ⎡[u11,…, u1N ] ⎤ ⎡u1T ⎤ ⎡[u11,…, u1N ] ⎤
 ⎢ T ⎥ ⎢ ⎥  ⎢ T ⎥ ⎢ ⎥
u2    ⎢u2 ⎥ ⎢[u21,, u2 N ] ⎥ u2    ⎢u2 ⎥ ⎢[u21,, u2 N ] ⎥
Axe 2 U = {u1, u2 ,…, uN } = ⎢ ⎥ = ⎢ ⎥ Axe 2 U = {u1, u2 ,…, uN } = ⎢ ⎥ = ⎢ ⎥
   
Axe 1 ⎢ ⎥ ⎢ ⎥ Axe 1 ⎢ ⎥ ⎢ ⎥
 T ⎢  T ⎢
u1 ⎢⎣uN ⎥⎦ ⎣[uN1,, uNN ]⎥⎦ u1 ⎢⎣uN ⎥⎦ ⎣[uN1,, uNN ]⎥⎦

Produit matriciel : N produits scalaires  Produit matriciel : N produits scalaires


Si ui = 1, ∀i
⎡[u11,…, u1N ] ⎤⎡v ⎤ ⎡u ⋅ v ⎤  
  ⎡u1 ⋅ v ⎤
⎢ ⎥⎢ 1 ⎥ ⎢ 1  ⎥ et ui ⋅ u j = 0, ∀i ≠ j ⎢  ⎥
u
 ⎢[ 21 ,, u 2 N ] ⎥⎢v2 ⎥ ⎢u2 ⋅ v ⎥  ⎢u2 ⋅ v ⎥ 
U ⋅v =⎢ alors U est une matrice de rotation U ⋅v = = v'
⎥⎢ ⎥ = ⎢ ⎥ ⎢ ⎥
⎢ ⎥⎢ ⎥ ⎢   ⎥ ⎢  ⎥
⎢⎣[uN1,, uNN ]⎥⎦⎣vN ⎦ ⎣uN ⋅ v ⎦ RN → RN ⎣uN ⋅ v ⎦
65 66

Matrice de Rotation: Exemples 2D Matrice de Rotation: Inverse


   
v ' = Uv R2 → R2 v ' = Uv

, )
u2 = ((0,1)    
v = (1,1) U −1U = I Definition de l’inverse U −1v ' = U −1Uv = v
 
v = 2 u2 = (sin θ , cosθ )
U −1 = U T Pour une matrice de rotation


u1 = (1, 0) θ ⎡cθ , −sθ ⎤ ⎡c θ , sθ ⎤
U =⎢ ⎥ U −1 = U T = ⎢ ⎥ θ
⎡1, 0⎤ ⎡cosθ , −sin θ ⎤  ⎣sθ , cθ ⎦ θ ⎣−sθ , cθ ⎦
U =⎢ ⎥= I U =⎢ ⎥ u1 = (cosθ , −sin θ )
⎣0,1⎦ ⎣sin θ , cosθ ⎦

  θ = 45° v ' = 0, 2 ( ) https://fr.wikipedia.org/wiki/Matrice_de_rotation
v'= v

67 68

Matrice de Rotation Rotation + Translation :


    
v ' = Uv v ' = Uv + t
 
R2 R3 ⎡u11, u12 , u13 ⎤
RN ⎡
u11,, u1N ⎤
⎡v'1 ⎤ ⎡v1 ⎤ ⎡t1 ⎤ ⎡u1 ⋅ v + t1 ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ Rajoute un vecteur de déplacement ou
⎡cθ , −sθ ⎤ ⎢ ⎥ ⎢ ⎥ = U ⎢ ⎥ + ⎢ ⎥ = ⎢ ⎥ translation après rotation.
U =⎢ U = ⎢u21, u22 , u23 ⎥ U = ⎢ ⎥
⎥ ⎢⎣v' N ⎥⎦ ⎢⎣vN ⎥⎦ ⎢⎣t N ⎥⎦ ⎢⎣uN ⋅ v + t N ⎥⎦
⎣sθ , cθ ⎦ ⎢⎣u31, u32 , u33 ⎥⎦ ⎢⎣uN1,, uNN ⎥⎦
2x2 = 4 elements,
3x3 = 9 elements, N2 elements,
1 paramètre intrinsèque
3 paramètres intrinsèques N*(N-1)/2 paramètres ⎡v'1 ⎤ ⎡⎡u11,, u1N ⎤⎡t1 ⎤⎤⎡v1 ⎤
intrinsèques Coordonnées Homogènes
⎢ ⎥ ⎢⎢ ⎥⎢ ⎥⎥⎢ ⎥
* Angles d’Euler ⎢ ⎥ = ⎢⎢ ⎥⎢ ⎥⎥⎢ ⎥
* Quaternions ⎢v' N ⎥ ⎢⎢uN1,, uNN ⎥⎢t N ⎥⎥⎢vN ⎥
⎢ ⎥ ⎢⎢ ⎥⎢ ⎥⎥⎢ ⎥
https://fr.wikipedia.org/wiki/Matrice_de_rotation
⎣1 ⎦ ⎢⎣⎣0,,, 0 ⎦⎣1 ⎦⎥⎦⎣1 ⎦
69 70

Application linéaire 2D Application linéaire 3D

71

3D Slicer