organisation du module - enseeihtoberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation...
Post on 19-Oct-2020
6 Views
Preview:
TRANSCRIPT
Traitement d’images
Partie 1: Introduction
Thomas Oberlin
Signaux et Communications, IRIT/ENSEEIHT
thomas.oberlin@enseeiht.fr
http://oberlin.perso.enseeiht.fr/teaching.html
1 / 64
Organisation du module
Cours et TP : 1.25 ECTS
◮ 12h15 de cours (7 séances)◮ 14 de TD/TP (8 séances)
Objectifs :◮ Connaître les techniques de bases du traitement des images numériques◮ Pouvoir implémenter les principaux algorithmes en Matlab
Projet : 2.5 ECTS
◮ 12 séances encadrées, 2 séances finales de présentation (total : 24h30)◮ Travail en groupe
Objectifs :◮ Approfondir un aspect◮ Comprendre un article de recherche, une problématique scientifique◮ Implémenter, tester et analyser une technique avancée de TI
2 / 64
Plan du cours
◮ I – Introduction◮ TP 1 : Matlab pour le TI
◮ II – Transformée de Fourier◮ III – Échantillonnage, filtrage des images
◮ TP 2 : TF, échantillonnage, filtrage
◮ IV – Restauration◮ TP 3 : Restauration
◮ V – Représentation, approximations, compression◮ TP 4 : Approximation et compression
◮ VI – Segmentation◮ TP 5 : Segmentation
◮ VII – Détection des contours◮ TP 6 : Contours
3 / 64
Plan de la séance
1 Qu’est-ce que le traitement d’images ?GénéralitésApplicationsQuelques exemples
2 L’image numériqueDe l’analogique au numériqueImages couleurs et espaces colorimétriques
3 HistogrammeDéfinitionExemplesÉgalisation d’histogramme
4 Autres transformationsTransformations géométriquesRéduction du nombre de couleurs
4 / 64
TI : traitement du signal en dimension > 1
◮ notion de signal : observation de phénomène.
◮ quantités dépendantes du temps, de l’espace ou de la fréquence.
◮ modélisation sous forme de fonction d’une ou plusieurs variables.
◮ 1D : variable → le temps t (exemple : le son)
◮ 2D : les images, variables → l’espace (x, y)
◮ 3D : images 3D (x, y, z), , vidéos ((x, y), t)
◮ 4D : volumes 3D évoluant dans le temps6 / 64
Contexte
7 / 64
Domaines d’application ...
◮ Depuis les années 60◮ Astronomie (images spectrales, télescopes terrestres et spatiaux)◮ Imagerie médicale (radios, échographie, angiographie, IRM, etc.)◮ Imagerie biologique (microscopie, spectroscopi)◮ Image satellite (météo, climato, océano, surveillance, ressources)◮ défense, sécurité, surveillance (bio-métrie : iris, veines, empreintes, visages,
plaques, etc.)◮ Robotique, vision artificielle◮ Contrôle non-destructif (qualité de production, intégrité des structures)◮ . . .
◮ Plus récemment◮ Capture et analyse du mouvement humain (prothèses, geste sportif, interfaces
gestuelles)◮ Réalité augmentée, réalité virtuelle◮ Tatouage numérique (Watermarking)◮ Assistance à la conduite◮ Reconnaissance et classification dans de grandes bases de données◮ . . .
8 / 64
Quelques problématiques ...
◮ Analyses◮ Calcul de mesures globales (statistiques, distributions, contenu fréquentiel),
locales (dérivées, statistiques locales)
◮ Segmentation : partitionnement en régions "homogènes" (texture, couleur)
◮ Extraction de "primitives" (contours, coins, blobs, lignes)
◮ Reconnaissance d’objets (visages, texte, etc)
◮ Classification intra et inter-images
◮ Transformations◮ Compression
◮ Transformations géométriques, recalage
◮ Changement de contraste, de couleurs, etc.
◮ Débruitage, restauration et rehaussement
◮ Édition, complétion
9 / 64
Exemples – Amélioration et restauration
→
→ →
→ −→
10 / 64
Exemples – imagerie médicale (IRM)
11 / 64
Exemples – imagerie médicale
2008 : Cobzas, Birkbeck, Schmidt, Jagersand, Murtha A.
3D Variational Brain Tumor Segmentation using a High Dimensional Feature Set
12 / 64
Exemples – assistance à la conduite
www.mobileye.com
13 / 64
Exemple – complétion d’images (inpainting)
P Goyal, S Diwakar, Fast and enhanced algorithm for exemplar based image inpainting, Image and Video Technology (PSIVT) 2010.
https://www.youtube.com/watch?v=DHF6xX83uhM
14 / 64
Exemples – Imagerie hyperspectrale
GPGPU Hyperspectral Imaging, GE Intelligent Platforms
15 / 64
Exemples – Géophysique, sismologie
16 / 64
Plan de la section
1 Qu’est-ce que le traitement d’images ?
2 L’image numériqueDe l’analogique au numériqueImages couleurs et espaces colorimétriques
3 Histogramme
4 Autres transformations
17 / 64
L’image numérique
◮ image = signal bidimensionnel
◮ image analogique : image formée sur la rétine de l’oeil, image obtenue par laphoto argentique classique
◮ image numérique : signal numérique composé d’unités élémentaires (pixels)qui représentent chacun une portion de l’image. Caractérisée par :
◮ le nombre de pixels (largeur, hauteur)◮ étendue des teintes de gris ou des couleurs que peut prendre chaque pixel →
dynamique de l’image.
18 / 64
Échantillonnage et quantification
◮ Une “image continue” = une fonction à deux variables réelles R2 → R+d
◮ Image numérique : f : [[1, M ]]× [[1, N ]]→ I , où MN est le nombre de pixels,et I est un ensemble discret de valeurs.
Rappel en 1D
19 / 64
Images binaires (noir ou blanc)
Cas où I = {0, 1}
20 / 64
Images en niveau de gris
◮ cas où I = {0, . . . , P − 1} (souvent P = 28 = 256 : codage sur 8 bits)
◮ 0=noir, 255=blanc, les autres=teintes de gris
←→
21 / 64
Images couleurs RVB
I = {0, . . . , P − 1}︸ ︷︷ ︸
Rouge
×{0, . . . , P − 1}︸ ︷︷ ︸
Vert
×{0, . . . , P − 1}︸ ︷︷ ︸
Bleu
22 / 64
Espace RVB
◮ basé sur la synthèse additive des couleurs → mélange de 3 composantes
◮ Souvent, chaque couleur sur 8bits donc I = {0, . . . , 255}3
◮ Utilisé par les écrans d’ordinateurs
23 / 64
Images couleurs
←→
(0, 0, 0) (128, 0, 0) (255, 0, 0)
(0, 128, 0) (128, 128, 128) (255, 128, 0)
(0, 255, 0) (128, 255, 0) (255, 255, 255)
ou encore −→
0 128 255
0 128 255
0 128 255
,
0 0 0
128 128 128
255 255 255
,
0 0 0
0 128 0
0 0 255
24 / 64
Images couleurs
◮ Onde lumineuse : superposition d’une infinité d’ondes pures
◮ Système visuel
◮ tout signal lumineux est bien approché, visuellement, par une combinaisonlinéaire de trois primaires
◮ Constat empirique (mélange en peinture et imprimerie)
◮ Explication anatomique : trois types de cônes sur la rétine sensibles sur troisplages différentes de longueurs d’onde grossièrement associées au rouge, vertet bleu.
25 / 64
Capteur CCD (coupled-charge device)
◮ grille de photo-senseurs : chacun convertit les photons en courant électriquesur un petit intervalle de temps fixe ; la réponse peut dépendre de la longueurd’onde des photons
◮ réponses "récoltées" et numérisées (quantifiées sur un nombre fini de valeurs)
◮ images couleurs : trois types de capteurs, spécialisés sur le vert, le bleu et lerouge (mosaïque de Bayer [Kodak, 1976]) ; interpolation pour avoir autant depixels que de cellules
26 / 64
Espaces colorimétriques
◮ Tri-chromie
◮ Red-Green-Blue : RGB
◮ Cyan-Yellow-Magenta : CYM (synthèse soustractive)
◮ Espaces luminance-chrominance : une composante de luminance plus 2 dechrominance. Ex : xyY, YUV (linéaires), CIE Lab (non linéaire)
◮ Mais : peu conformes à la perception psycho-visuelle
◮ la teinte est une dimension " fermée " (roue des couleurs)
◮ distances dans un espace linéaire et dissimilarités perçues ne sont pas en bonaccord
◮ Hue(teinte)-Saturation-Value : HSV (TSV en français). Non-linéaire,représentation circulaire de la teinte → représentation conique de l’espace descouleurs.
27 / 64
Espaces colorimétriques : RGB
︷ ︸︸ ︷
R G B
28 / 64
Espaces colorimétriques : Yuv[
Y
U
V
]
=
[0, 299 0, 587 0, 114
−0, 14713 −0, 28886 0, 436
0, 615 −0, 51498 −0, 10001
][R
G
B
]
[R
G
B
]
=
[1 0 1, 13983
1 −0, 39465 −0, 58060
1 2, 03211 0
][Y
U
V
]
︷ ︸︸ ︷
Y u v
29 / 64
Espaces colorimétriques : HSV
(Transformation non linéaire)
︷ ︸︸ ︷
H S V
30 / 64
Espaces colorimétriques
CIE-XYZ CIE-Lab CIE-HSV
31 / 64
Images spectrales
Image hyperspectrale : jusqu’àquelques centaines de longueursd’ondes, couvrant le visible, l’in-frarouge et parfois d’autres plagesde longueurs d’onde.
32 / 64
Plan de la section
1 Qu’est-ce que le traitement d’images ?
2 L’image numérique
3 HistogrammeDéfinitionExemplesÉgalisation d’histogramme
4 Autres transformations
33 / 64
Histogramme d’une image en niveaux de gris
Définition
Histogramme d’une image f : fonction discrète qui associe à chaque valeurd’intensité le nombre de pixels prenant cette valeur.
hf : {0, . . . , 255} → N
v 7→ Card{(x, y)|f (x, y) = v}
f hf
34 / 64
Histogramme d’une image
◮ Si f est de taille M ×N à valeurs dans {0, . . . , 255},∑
v
hf (v) = MN
◮ Pour f = , on a hf = . Pour f = , hf = ? idem
◮ Deux images différentes peuvent avoir le même histogramme, ce n’est pas
une caractéristique de l’image
35 / 64
Histogramme d’une image
36 / 64
Histogramme d’une image
◮ Que peut-on dire d’une photo ayant pour histogramme
?
◮ Il s’agit d’une image sur-exposée
37 / 64
Histogramme d’une image
◮ Utile pour changer le contraste d’une image.
◮ On construit une image g ainsi : g(x, y) = φ(f (x, y)), avec φ fonctioncroissante
◮ Édition manuelle, exple : avec GIMP
38 / 64
Histogramme d’une image
◮ Renforcement du contraste
39 / 64
Normalisation/étirement d’histogrammes
◮ Si l’image f n’utilise pas l’ensemble de la dynamique possible :
←→
◮ On peut "étirer" l’histogramme. On cherche φ linéaire et croissante telle que
min (φ (f (x, y)))→ 0 et max (φ (f (x, y)))→ 255 (par exemple)
◮ φ(v) = 255v −min(I )
max(I )−min(I )
40 / 64
Normalisation/étirement d’histogrammes
◮ Image originale
←→
◮ Image "normalisée"
←→
41 / 64
Normalisation/étirement d’histogrammes
◮ Image originale
←→
◮ Image "normalisée"
←→
◮ Dans le cas où l’histogramme initial occupe déjà toute la plage dedynamique, aucun changement n’est visible.
42 / 64
Égalisation d’histogramme
◮ ajustement automatique du contraste
◮ but : "étaler" les valeurs de l’image pour mieux répartir sur l’ensemble desvaleurs possibles
◮ Exemple (wikipédia)
−→
43 / 64
Égalisation d’histogramme
Principes de l’algorithme
◮ image à valeurs dans {0, . . . , L − 1}
◮ intensités des pixels (f [n, m]) : réalisations d’une variable aléatoire F àvaleurs dans [0, L − 1] (continue)
◮ pf (f ) = Pf (F = f ) : sa densité de probabilité◮ Quelle transformation φ doit on appliquer à f pour que pg, la densité de
probabilité associée à l’image g = φ(f ), soit uniforme ?◮ On peut montrer qu’il faut prendre
φ(f ) = (L − 1)
∫ f
0
pf (w) dw → Fonction de répartition de F
◮ En pratique : histogrammes discrets. Impossible d’obtenir un histogramme
plat mais on suit la même idée φ(n) = (L− 1)
n∑
k=0
p(f = k), avec p(f = k) la
probabilité empirique, ie la proportion de pixels de valeur k dans l’image.C’est l’histogramme cumulé.
44 / 64
Égalisation d’histogramme
Résultats :
avant après
histogramme (rouge) et histogramme cumulé (noir)
45 / 64
Égalisation d’histogramme
Résultats :
avant après
46 / 64
Plan de la section
1 Qu’est-ce que le traitement d’images ?
2 L’image numérique
3 Histogramme
4 Autres transformationsTransformations géométriquesRéduction du nombre de couleurs
47 / 64
Transformations géométriques
But
Déformer une image (sans modifier ses valeurs)
◮ Retouche d’images
◮ Création de panoramas, fusion d’images
◮ Recalage d’images (déformer une image I pour qu’elle se "superpose" sur uneimage J )
Définition
Une transformation T : R2 → R2.
48 / 64
Exemples d’applications 1/3
◮ Création de panoramas
49 / 64
Exemples d’applications 2/3
◮ Images satellitaires
◮ Télédétection : Carte de végétation et image satellitaire
50 / 64
Exemples d’applications 3/3
◮ Recalage d’images (indispensable en traitement des images médicales)
Cible T = 0 Source T = 3 mois abs(Source - Cible)
Init
Recalé
évolution de lésions (images IRM-T2 d’un patient atteint de sclérose en plaques à quelques mois d’intervalle)
51 / 64
Transformations affines
Définition
T (x, y) =
a b
c d
︸ ︷︷ ︸
A
x
y
+
e
f
.
→
Exemple : translations (A = I2), rotations, (A orthogonale), changement d’échelle(A diagonale). Conserve le parallélisme.
52 / 64
Transformations projectives
Caractérisation◮ Préserve les droites, plans, etc◮ Obtenue lorsqu’on change de point de vue → très utilisée en vision par
ordinateur
→
53 / 64
Transformations non-linéaires
Utilisées en recalage non-rigide
→
54 / 64
Cas d’images discrètes
◮ W (x, y) n’est généralement pas à coordonnées entières
−→ −→
Interpolation d’intensités
Attribuer une intensité raisonnable à une position physique tombant entre despositions où l’intensité est connue (donc une position à coordonnées non entières)
55 / 64
Interpolation d’images
Deux approches "basiques"
◮ interpolation au plus proche voisins : I (x, y) = I (round(x), round(y))
◮ interpolation bi-linéaire
56 / 64
Interpolation d’images
Approches plus sophistiquées
◮ On cherche une fonction "simple" qui passe par les différents points connus,et on regarde la valeur de cette fonction au point qui nous intéresse
◮ fonctions possibles :◮ Bicubique (spline) : I (x, y) =
∑3
i=0
∑3
j=0aijx
iyj
Plus proche voisin Bilinéaire Bicubiquehttp://en.wikipedia.org/wiki/Bicubic_interpolation
◮ basée sur sinc(x) =sin(πx)
πx→ Lanczos3
57 / 64
Réduction du nombre de couleurs (quantification)
But
Compression ou adaptation au système d’affichage
24 bits par pixel (bpp)16 millions de couleurs
58 / 64
Réduction du nombre de couleurs (quantification)
8 bpp (256 couleurs) 4 bpp (16 couleurs)
2 bpp (4 couleurs) 1 bpp (2 couleurs)
59 / 64
Réduction du nombre de couleurs (quantification)
Réduction n.d.g. → images binaires◮ Utilité de la binarisation : imprimantes, fax◮ Binarisation par seuillage
60 / 64
Réduction du nombre de couleurs (quantification)
Réduction n.d.g. → images binaires◮ Binarisation par tramage
61 / 64
Réduction du nombre de couleurs (quantification)
Réduction n.d.g. → images binaires
◮ Binarisation par propagation de l’erreur (Floyd-Steinberg)
62 / 64
Réduction du nombre de couleurs (quantification)
Réduction n.d.g. → n.d.g.◮ Quantification scalaire uniforme :
Wikipedia
◮ Quantification scalaire non uniforme : on peut souhaiter que chaque classesoit utilisée par le même nombre de pixels
en utilisant l’histogramme cumulé
63 / 64
Réduction du nombre de couleurs (quantification)
Réduction RGB → RGB
◮ On peut appliquer une quantification scalaire sur chaque composante (R, Get B) séparément −→ pas optimal
◮ Optimal au sens de l’erreur quadratique moyenne : appliquer les k-means dansR
3. On cherche des représentants de chaque classe directement dans RGB.
64 / 64
top related