Vision par ordinateur
Introduction
2ème année GI et 3ème année AE3S – ENSMR I. BENMILOUD
Master Intelligent Processing Systems –FSR
Année universitaire 2020/2021
Plan du cours
- S1 : Introduction à la vision par ordinateur
- S2 : Techniques d’amélioration d’images
- S3 : Filtrage d’images
- S4 : Détection des contours
- S5 : Morphologie mathématique
- S6 : Segmentation d’images
2
Plan de la séance
- Définitions
- Applications
- Définition d’une image
- Types d’images
- Formats d’images
- Espaces couleurs
- Présentation du toolBox «Image processing» sous Matlab
3
Qu’est ce que la vision par ordinateur?
"We see with our brains, not with our eyes“ (Oliver Sacks and others) 4
Qu’est ce que la vision par ordinateur ?
- La vision par ordinateur est une discipline informatique qui consiste à
mettre en œuvre des outils et techniques pour permettre à un
ordinateur d’interpréter un élément visuel
- Quelque synonymes existent pour désigner cette discipline:
• Vision assistée par ordinateur
• Computer Vision
• Vision industrielle
5
Domaines connexes
Artificial
intelligence
Mathematics Physics
Computer vision
Image Cognitive
processing science
Algorithms
6
Reconnaissance visuelle
7
Objets présents dans la scène
building
balcony
street
truck
carriage
horse
car
person
table person 8
Détection: véhicules
9
Activtité: que font les personnes dans la scène?
10
Scène: est-ce que c’est une scène d’intérieur?
11
Instance: Quelle ville? Quel bâtiment?
12
Réponse visuelle aux questions: Pourquoi y a-t-il une
calèche dans la rue ?
13
Reconnaissance optique des caractères (OCR)
Digit recognition, AT&T labs
http://www.research.att.com/~yann/
License plate readers
http://en.wikipedia.org/wiki/Automatic_number_plate_recognition
14
Automatic check processing
Reconnaissance faciale et détection des émotions
15
Fin des codes-barres dans les supermarchés
Toshiba a développé un système qui permet, via
une caméra, de reconnaître des produits
emballés comme des fruits et légumes frais.
Cette technologie repose sur le système de
reconnaissance de formes
http://www.actinnovation.com/innovation-technologie/code-barres-supermarches-reconnaissance-objets-4506.html
16
Reconnaissance d’objets (Amazon Go)
https://www.amazon.com/b?node=16008589011
17
La biométrie par l’Iris
18
“How the Afghan Girl was Identified by Her Iris Patterns” Read the story wikipedia
Connection sans mot de passe
La reconnaissance faciale
L’empreinte digitale http://www.sensiblevision.com/
19
Reconnaissance d’objets via un téléphone
mobile
Point & Find : Nokia
Google Goggles
20
Reconstruction 3D
21
Suivi d’objets (tracking)
22
Suivi d’objets (tracking)
23
Suivi d’objets (tracking)
24
Google cars: voiture sans conducteur
25
Robotique industrielle
Les robots guidés par la vision placent les écrous
sur les roues
26
Contrôle automatique des objets
27
Imagerie médicale
Les images 3D - MRI Chirurgie guidée par image
Grimson et al., MIT
28
Difficultés de la vision par ordinateur (1)
Viewpoint variation
Scale
29
Illumination
Difficultés de la vision par ordinateur (2)
Motion
Intra-class variation
Background clutter 30
Difficultés de la vision par ordinateur
Deformation
Occlusion
31
Définitions
- Le traitement d'images désigne l'ensemble des opérations sur les
images numériques, qui transforment une image en une autre image,
ou en une autre primitive formelle.
- La vision par ordinateur désigne la compréhension d'une scène ou
d'un phénomène à partir d'informations «image», liant la perception,
comportement et contrôle.
32
Les bases pour la vision par ordinateur
Opérations bas niveau sur les images
- Manipulation d’histogrammes
- Transformation géométrique
- Filtrage
- Détection de contour
- Opérateurs de morphologie
- Segmentation
Opérations haut niveau pour la reconnaissance d’objets
- À base de caractéristiques (détecteurs et descripteurs)
33
C’est quoi une image?
0=noir
255=blanc
34
Acquisition: source d’énergies
35
C’est quoi une image?
- Une image est généralement une projection 2D d'une scène 3D capturée par un
capteur.
- C'est une fonction continue de deux coordonnées dans le plan image.
- Pour traiter une telle image sur un ordinateur numérique, il faut à la fois deux
étapes:
• échantillonnage spatial
• quantification des luminances
Une image numérique est une image échantillonnée et quantifiée!
36
D’un signal continu à un signal discret (1)
Signal continu (référence) Signal échantillonné
37
D’un signal continu à un signal discret (2)
Échantillonnage: est le procédé de discrétisation spatiale d'une image
consistant à associer à chaque zone rectangulaire R(x,y) d'une image
continue une unique valeur I(x,y)
38
Echantillonnage d’une image 2D
Les images sont des signaux 2-D, l’échantillonnage se fait selon les
dimensions spatiales «x» et «y» (et non pas selon le temps comme
précédemment).
N=4 N=8 N = 32 N = 64
39
Quantification et codage
La quantification désigne la limitation du nombre de valeurs
différentes que peut prendre I(x,y)
40
Différentes valeurs de quantification
Une quantification trop faible peut causer des problèmes de faux
contours !
1 bit 2 bits 3 bits 8 bits
41
Quantification et codage
- Le nombre de niveaux de quantification de la luminance est
généralement de 256, chaque niveau étant alors codé sur 8 bits.
- Image binaire (noir (0) et blanc (1)): codage sur 1 bit
94 211 0 0 50 205 0 125
211 206 94 211 70 191 15 106
255 206 206 0 158 191 50 0
205 94 211 0 37 154 0 255
Pixel Noir
8 36 230 255 191 191 205 50
0 152 148 211 205 25 128 205 Pixel blanc
0 31 53 94 211 49 205 50
0 39 64 50 76 211 128 128
Portion d’image zoomée La matrice correspondante 42
Résolution d’une image
- Résolution = nombre de pixels par unité de surface, exprimé en points
par pouce ou PPP (en anglais DPI : Dots Per Inch)
- 1 pouce = 2,54 cm
- Elle correspond à la finesse de la description spatiale
43
Types d’images (1)
Image binaire
44
Types d’images (2)
Image en niveaux de gris
45
Types d’images (3)
colonne
R
0.92 0.93 0.94 0.97 0.62 0.37 0.85 0.97 0.93 0.92 0.99 G
0.95 0.92
0.89 0.93
0.82 0.94
0.89 0.97
0.56 0.62
0.31 0.37
0.75 0.85
0.92 0.97
0.81 0.93
0.95 0.92
0.91 0.99
0.95 0.89 0.82 0.89 0.56 0.31 0.75 0.92 0.81 0.95
0.89 0.720.920.510.930.550.940.510.970.420.620.570.370.410.850.490.970.910.930.920.92 0.91
0.99
B
0.96 0.89 0.72
0.950.95 0.51
0.880.89 0.55
0.940.82 0.51
0.560.89 0.42
0.460.56 0.57
0.910.310.870.750.41
0.900.920.49 0.91
0.970.81 0.92
0.950.95 0.91
0.71 0.96 0.95
0.810.89 0.88
0.810.72 0.94
0.870.51 0.56
0.570.55 0.46
0.370.51 0.91
0.800.420.880.570.87
0.890.410.90 0.97
0.790.49 0.95
0.850.91 0.92
0.49 0.71 0.81
0.620.96 0.81
0.600.95 0.87
0.580.88 0.57
0.500.94 0.37
0.600.56 0.80
0.580.460.500.910.88
0.610.870.89 0.79
0.450.90 0.85
0.330.97 0.95
0.49 0.62 0.60 0.58 0.50 0.60 0.58 0.50 0.61 0.45
0.86 0.840.710.740.810.580.810.510.870.390.570.730.370.920.800.910.880.490.890.740.79 0.33
0.85
0.96 0.86 0.84
0.670.49 0.74
0.540.62 0.58
0.850.60 0.51
0.480.58 0.39
0.370.50 0.73
0.880.600.900.580.92
0.940.500.91 0.49
0.820.61 0.74
0.930.45 0.33
0.69 0.96 0.67
0.490.86 0.54
0.560.84 0.85
0.660.74 0.48
0.430.58 0.37
0.420.51 0.88
0.770.390.730.730.90
0.710.920.94 0.82
0.900.91 0.93
0.990.49 0.74
0.79 0.69 0.49
0.730.96 0.56
0.900.67 0.66
0.670.54 0.43
0.330.85 0.42
0.610.48 0.77
0.690.370.790.880.73
0.730.900.71 0.90
0.930.94 0.99
0.970.82 0.93
0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93
0.91 0.940.690.890.490.490.560.410.660.780.430.780.420.770.770.890.730.990.710.930.90 0.97
0.99
0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93
0.79 0.73 0.90 0.67 0.33 0.61 0.69 0.79 0.73 0.93 0.97
ligne 0.91 0.94 0.89 0.49 0.41 0.78 0.78 0.77 0.89 0.99 0.93
Image en couleur
46
Types d’images (4)
Palette de couleurs
Image indexée
47
Formats d’images
48
Vision humaine
49
La lumière et la couleur
- À chaque couleur perçue par l’œil humain correspond une longueur d’onde, la longueur d’onde se
mesure en mètre
- La longueur d’onde se mesure en mètre (m)
- =𝑐 𝐹 où F est la fréquence exprimée en Hz et c la vitesse de la lumière (c=300 000 km/s)
.
440 530 560 nm.
RELATIVE ABSORBANCE (%)
100
S M L
50
400 450 500 550 600 650
WAVELENGTH (nm.)
50
Les espaces couleur
- Toute couleur peut être représentée comme une combinaison linéaire de trois
primaires C1, C2, C3
- Deux types de synthèse:
- synthèse additive : mélange de sources lumineuses colorées
• Ecran de télévision
- synthèse soustractive : mélange des pigments colorés.
• tout procédé de reproduction et d’impression à base de pigments
ou de colorants
51
La colorimétrie
- Définition : Ensemble des techniques qui permettent la définition et la
comparaison et l’étude des couleurs.
- La trichromie est le principe permettant de reproduire un très grand nombre de
couleurs à partir de trois couleurs primaires.
52
Espace RGB
- Chaque couleur est un mélange de Rouge(R), Vert (G) et Bleu (B) par
une synthèse additive
- Utilisé en éclairage afin d'obtenir toutes les couleurs visibles par
l'homme.
- La relation pour convertir une image couleur en niveau de gris d’après
CIE est : L = 0.299R + 0.587G + 0.114B
R=1 G=1 B=1
(G=0,B=0) (R=0,B=0) (R=0,G=0)
53
Image Processing avec MATLAB
54
Matlab
-The MATrix LABoratory
1. Langage à typage dynamique
• Variables n’ont pas besoin d’être déclarées
• Créer par une simple initialisation
2. Toutes les variables sont traitées comme des matrices
• Scalaire: 1×1
• Vecteur: N×1
• Matrice: M×N
- Avantages
1. Rapide dans l’implémentation et le debugage
2. Image processing toolbox riche et puissant
55
Matlab
56
Matlab: Image Processing Toolbox
- Image Processing Toolbox™ propose un ensemble complet d'algorithmes
standard de référence et d'applications pour le traitement d'images, l'analyse,
la visualisation et le développement d'algorithmes.
- Les opérations que vous pouvez effectuer sont la segmentation des images,
l'amélioration des images, la réduction du bruit, les transformations
géométriques, le recalage des images et le traitement des images en 3D.
57
Structure d’ une image
I(1,1,3)
I(1,n,3)
I(1,1,1)
- Image niveau de gris et binaire: m n
- Image couleur: m n 3
I(m,n,3)
n I(m,n,1)
58
Matlab: lecture d’une image
Image du toolbox image ImGray=imread('cameraman.tif');
processing ImRGB=imread('peppers.png');
[ImIndexed,cmap] = imread('corn.tif');
Dossier actuel Im=imread(‘MyImage.ext');
Chemin de l’image dans un dossier Im=imread('C:\myFolder\myImage.ext');
ou URL Im=imread('http://hostname/path_to_file/my_image.jpg');
Lire une région de l’image A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});
Lire la valeur d’un pixel ImRGB(100,200,:)
ImRGB(100,200,2)
impixel(ImRGB,200,100)
59
Matlab: lecture d’une image
ind2rgb Indexed to RGB y=ind2rgb(x,map);
ind2gray Indexed to Grayscale y=ind2gray(x,map);
gray2ind Grayscale to indexed [y,map]=gray2ind(x,n);
rgb2gray RGB to grayscale y=rgb2gray(x);
gray2rgb Grayscale to RGB y=gray2rgb(x);
rgb2ind RGB to indexed [y,map]=rgb2ind(x,n);
60
Matlab: affichage d’une image
imshow() Affiche une image
image() Affiche une matrice d’entrée comme une image
imtool() Affiche l’image ainsi que certains outils
imagesc() Affiche une image (objet graphique Image) avec
interpolation des couleurs
61
Matlab: informations sur une image
numel() Pour obtenir la taille de l’image
whos I Pour plus d'informations sur une image stockée dans la variable I
imfinfo()
Pour obtenir la taille de l'image stockée dans la variable
size(I)
class(I) Pour obtenir le type de données stockées dans la variable I
62
Matlab: Lecture & affichage d’une image
Niveaux de gris Couleur Indexée
Taille Matrice de 2 dimensions Matrice de 3 dimensions Matrice de 2 dimensions dont les valeurs
sont comprises entre 0 et n-1 selon la table
de couleur Colormap de taille nx3 avec n le
nombre de couleur
Lecture I = imread(‘nomImage.tif’); I = imread(‘nomImage.tif’); [I,map]= imread(‘nomImage.tif’);
Affichage Imshow(I) Imshow(I) Imshow(I, map)
imshow(I,[]) %pour utiliser
tous les niveaux de gris
sauvegarde imwrite(I, ‘NewName.png'); imwrite(I, ‘NewName.png'); imwrite(I,map, ‘NewName.png');
63
Matlab: Exemple
% Grayscale % Color % Indexed
infoI = imfinfo('pout.tif'); infoJ = imfinfo('peppers.png'); infoK = imfinfo('corn.tif');
I= imread('pout.tif'); J = imread('peppers.png'); [K,map] = imread('corn.tif',3);
figure, imshow(I) figure, imshow(J) figure, imshow(K)
64
Matlab: subplot
I=imread('peppers.png');
imshow(I);
red_I=I(:,:,1);
green_I=I(:,:,2);
blue_I=I(:,:,3);
% Affichage des 4 images sur la même figure
figure,
subplot(2,2,1);imshow(I);
title('image originale')
subplot(2,2,2);imshow(red_I);title('Red canal')
subplot(2,2,3);imshow(green_I);title('Green canal')
subplot(2,2,4);imshow(blue_I);title('Blue canal');
65
Bibliographie
- Cours de traitement d’images Elise Arnaud – Edmond Boyer Université
Joseph Fourier
- Cours de traitement d’images Alain Boucher
- Cours de traitement d’images T Guyer Université de Chambéry
- Cours de traitement d’images Caroline ROUGIER université de
Montréal
- Analyse d’images : filtrage et segmentation (Edition Broché) –
Cocquerez
- http://szeliski.org/Book/
- http://www.profil-couleur.com/index.htm
66