16
Traitement d’images Partie 1: Introduction Thomas Oberlin Signaux et Communications, IRIT/ENSEEIHT [email protected] 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és Applications Quelques exemples 2 L’image numérique De l’analogique au numérique Images couleurs et espaces colorimétriques 3 Histogramme Définition Exemples Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction du nombre de couleurs 4 / 64

Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

Traitement d’images

Partie 1: Introduction

Thomas Oberlin

Signaux et Communications, IRIT/ENSEEIHT

[email protected]

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

Page 2: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 3: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 4: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 5: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 6: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 7: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 8: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 9: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 10: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 11: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 12: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

É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

Page 13: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 14: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 15: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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

Page 16: Organisation du module - ENSEEIHToberlin.perso.enseeiht.fr/cours/cours1_polyr.pdf · Égalisation d’histogramme 4 Autres transformations Transformations géométriques Réduction

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