Patrick Hébert Génie électrique et génie informatique Université Laval

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Distance inter-locuteur
Les numéros
Les identités remarquables
4. Descripteurs du contenu

Xialong Dai, Siamak Khorram
Introduction à la logique
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Traitements d'images et Vision par ordinateur
Monique THONNAT et Nathanaël ROTA Projet ORION
Traitements d'images et Vision par ordinateur
Application des algorithmes génétiques
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Analyse d’images Détection de contour Cours 8
Cours de physique générale I Ph 11
Le filtrage d’images.
SUJETS SPÉCIAUX EN INFORMATIQUE I
Tableaux de distributions
Tableaux de distributions
Logiciel gratuit à télécharger à cette adresse :
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
Cours #6 Filtrage Découverte Plan du cours
Représentation des systèmes dynamiques dans l’espace d’état
Systèmes mécaniques et électriques
Représentation des systèmes dynamiques dans l’espace d’état
N Découverte n Présentation des équipes et des projets n 3- Extraction des caractéristiques u 3.1 Caractéristiques 3D et 2D u 3.2 Arêtes u 3.3 Gradient.
Représentation des systèmes dynamiques dans l’espace d’état
La statistique descriptive
La Distribution des Données
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Design dun système de vision embarqué. Application:
TRAITEMENT D’IMAGE SIF-1033.
Chapitre 4 : Morphologie Mathématique
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Le filtrage d’images.
Cours #9 Segmentation Découverte 4- Segmentation Introduction
Aire d’une figure par encadrement
MAP-6014 Concepts avancés en mathématiques et informatique appliquées
Application d’algorithmes d’extraction de la couleur et des textures à partir d’images aériennes dans le contexte de l’extraction de bâtiments pour supporter.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
SIF-1033 Traitement d’image
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Projet de session – SCG-67210
FONCTION DE PLUSIEURS VARIABLES
Elaboré par M. NUTH Sothan 1. 2 Soit x, y et z des coordonnées cartésiennes à 3 dimension. G un ensemble de points dans le plan (u, v). Déf. : On appelle.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Segmentation (1ère partie)
Introduction à la reconnaissance:
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
Caractérisation texturale des surfaces boisées dans une image Ikonos de la région de Montréal Pierre Bugnet Langis.
Module 4: Le filtrage d’images. Objectifs du filtrage.
Traitement de base d'une image (partie 1)
TRAITEMENT D’IMAGE SIF-1033 Segmentation des images par détection de contours et d’arêtes u Détection des contours et arêtes u Dérivée première (gradient)
INF-1019 Programmation en temps réel
Introduction au Traitement d’image
La couleur! Références: Sonka et al: section 2.4
MAP-6014 Concepts avancés en mathématiques et informatique appliquées
Romain Dupont encadré par J.Aubourg et P. Fuchs
Traitement d’images 420-D78-SW A15 Semaine 02.
Partie II : Segmentation
PIF-6003 Sujets spéciaux en informatique I
Exemple et critique d’un système de vision simple Patrick Hébert (dernière révision septembre 2008) Référence complémentaire: Shapiro et Stockman: chap.
Filtrage des images.
Transcription de la présentation:

Introduction à la vision artificielle Première partie Traitement des images Patrick Hébert Génie électrique et génie informatique Université Laval *collaboration Éric Samson (Revisité par A. Bendada en 2013, D. Laurendeau en 2014)

Mise en contexte… Qu'est-ce que la caméra embarquée permet au robot de faire? Reconnaitre et localiser les objets sur le terrain, i.e. évaluer la position relative au robot, évaluer la position relative des tableaux de commandes dans leurs cadres, la zone des rondelles, la zone cible, les obstacles, etc.) En complément à la Kinect, évaluer sa position et son orientation sur le terrain (par rapport aux bandes, coins, à la zone de lecture de la résistance, à la zone de lecture des commandes, etc.) robot

Reconnaître les objets dans les images Mise en contexte… Le cours d'introduction à la vision couvre en particulier 2 étapes du processus de vision qui sont nécessaires à l'atteinte de ces objectifs : Reconnaître les objets dans les images Traitement des images Calculer la position des objets par rapport au robot et celle du robot dans l’environnement Étalonnage géométrique de la caméra et du système

Mise en contexte Ces deux étapes s'inscrivent dans le cycle global "perception/action" du processus de vision Perception initiale de l'environnement Formation des images/acquisition Traitement des images et reconnaissance Repérer les objets de l'aire de travail dans l'image Analyse des données Calculer la position des objets et du robot Planification et prise de décision Déterminer la prochaine commande à transmettre au robot Exécution Transmission de la commande au robot

Plan de la présentation Espaces des couleurs Traitement des images : Introduction Filtrage Segmentation Extraction de régions Extraction de contours Détection de coins Conclusion

Absorption de la lumière par les Espaces des couleurs… En général, on représente la couleur à l'aide de 3 valeurs  Espace en 3 dimensions L'espace le plus connu est RGB (Red, Green, Blue) Lié au système visuel humain L'œil perçoit la couleur à l'aide de trois types de capteurs (cônes) sensibles à trois plages de longueurs d'onde. Absorption de la lumière par les cônes de l’œil humain Note: les bâtonnets sont aussi photosensibles mais ne “différencient” pas les couleurs. Ils sont surtout utiles pour la vision périphérique et la vision nocturne. *tirée de Gonzales & Woods 6

Principe de la caméra couleur… Couleurs additives

Principe de la caméra couleur… Couleurs additives

Principe de la caméra couleur… Couleurs additives

Image numérique couleur Sortie d’une caméra couleur Image numérique couleur Mosaïque à filtres de Bayer Matrice 3D

Espaces des couleurs… L'espace RGB (suite) Largement utilisé en informatique (moniteurs) Cube de couleurs RGB Cube RGB 24-bits Teintes de gris  R=G=B le long de la diagonale Génération de couleurs

L’espace RGB n’est pas intuitif pour l’utilisateur (e.g. Photoshop) Espaces des couleurs… Problème: L’espace RGB n’est pas intuitif pour l’utilisateur (e.g. Photoshop) Exemple: On veut baisser la saturation (i.e. la « pureté) de la couleur du disque orange de 50% Ces valeurs semblent aléatoires

HSV  Hue (H), Saturation (S), Value (V) Espaces des couleurs… HSV  Hue (H), Saturation (S), Value (V) Séparation de la teinte, de la saturation et de l'intensité Plus intuitif pour identifier et décrire ou spécifier les couleurs Traitement des ombres plus facile lors de la segmentation Ombre  même teinte mais intensité différente. V (intensité): une hauteur entre 0 (noir) et 1 (blanc) La teinte est contenue dans H (Hue) : un angle (0  360°) S (Saturation = pureté): un rayon entre 0 et 1: S = 0 niveau de gris S = 1 couleur pure Espace HSV

Espaces des couleurs… HSV - Le modèle HSV est particulièrement utilisé dans les applications graphiques. - La teinte est sélectionnée sur la région circulaire; la saturation et l’intensité sont sélectionnées a posteriori sur un triangle. Exemple: On veut baisser la saturation du disque orange de 50% Roue de couleurs HSV

Passage RGB  HSV : Formules Espaces des couleurs… Passage RGB  HSV : Formules Référence sur les conversions: http://en.wikipedia.org/wiki/HSL_and_HSV

Espaces des couleurs : Exemple récapitulatif 1 Red Green Blue A 2007 Hue Design III / GEL-21405 H06 Saturation Value

Plan de la présentation Espaces des couleurs Traitement des images : Introduction Filtrage Segmentation Extraction de régions Extraction de contours Détection de coins Conclusion

Traitement des images : introduction Le traitement simple des images peut se faire en 2 étapes: Traitement sur les pixels Filtrage Regroupement en régions Détection de contours Détection de points d'intérêt (coins) Interprétation Reconnaissance basée sur les modèles Est-ce que ce groupe de pixels "jaunes" peut correspondre à une balle sphérique ou à une cible rectangulaire?

Traitement des images : introduction Plusieurs facteurs influencent le traitement et l'interprétation des images Éclairage variable Heure du jour, éclairage naturel ou artificiel Arrière-plan (circulation autour de la table!) Points de vue différents Un objet peut présenter des formes très différentes selon le point de vue La simple projection d'un espace 3D à 2D pour un objet opaque La réflectance des matériaux Bruit du capteur …

Traitement des images : introduction Pour éviter des résultats indésirables (e.g. fausse alarme, non-détection), il faut que le traitement et l'interprétation soient robustes aux variations des facteurs hors de votre contrôle Robustesse au niveau du traitement (ex. Seuillage adaptatif) "et/ou" Robustesse au niveau de l'interprétation (ex. Confirmation de la reconnaissance en utilisant un 2e traitement (différent)).

Plan de la présentation Espaces des couleurs Traitement des images : Introduction Filtrage Segmentation Extraction de régions Extraction de contours Détection de coins Conclusion

Convolution de l'image avec un masque (noyau) fixe Filtrage linéaire Convolution de l'image avec un masque (noyau) fixe La convolution est une opération linéaire commutative A * E = E * A associative A * (B * E) = (A * B) * E Exemple de masque Équation de convolution (voir cvSmooth dans OpenCV)

Exemple de filtre : Le filtre de moyennage Filtrage linéaire Exemple de filtre : Le filtre de moyennage Chaque pixel de l'image résultat prend comme valeur la somme des pixels voisins.

Filtrage linéaire : Attention aux effets de bord ! les ignorer  image résultat plus petite on peut ajouter des valeurs constantes sur les bords mais … on peut considérer l'image comme étant périodique mais … on peut considérer le bord de l'image comme un miroir mais …

Filtrage linéaire passe bas 1. Filtre moyenneur Connexité 4-voisins Connexité 8-voisins Image d’origine m x m = 5 x 5 m x m = 9 x 9 m x m = 15 x 15 m x m = 35 x 35

Filtrage linéaire passe bas 2. Filtre Gaussien… * Meilleur comportement fréquentiel (réduit le recouvrement spectral p/r au filtre moyenneur). Préserve mieux les arêtes. On choisit la taille du filtre w (en pixel) tel que Exemple

Filtrage linéaire passe bas 2. Filtre Gaussien… Attention: Plus la gaussienne est large, plus le flou est marqué. En général, un sigma est utilisé pour réduire le bruit. Image non filtrée

Filtrage linéaire passe bas 2. Filtre Gaussien Propriété du filtre gaussien  Filtre séparable Filtrer l'image avec le filtre gaussien 1D vertical Filtrer le résultat avec le filtre gaussien 1D horizontal Exemple Filtre 1D vertical : Filtre 1D horizontal :

Filtrage linéaire passe haut Principe des filtres de rehaussement d’arêtes f(x)

Filtrage linéaire passe haut Effet du bruit sur les filtres de rehaussement d’arêtes Filtre Gradient Filtre Laplacien Filtre Gradient Filtre Laplacien 3- Bruit élevé 1- Sans bruit 2- Faible bruit 4- Bruit très élevé

Filtrage linéaire passe haut 1. Filtre Gradient (Masque de Prewitt) Gradient horizontal : Gradient vertical : Attention : la dérivée est sensible au bruit. Faire un filtrage gaussien avant de l'utiliser ou bien appliquer un masque de Sobel. À noter :

Filtrage linéaire passe haut 2. Filtre Laplacien… Arêtes aux passages par zéro Plus sensible au bruit LOG : Laplacien d’une gaussienne Ne permet pas de déterminer la direction du gradient

Filtrage linéaire passe haut 2. Filtre Laplacien Utilisé souvent en renforcement des contours Image filtrée par le laplacien Image originale Image avec contours renforcés Image avec contours renforcés *Tirée de Gonzales & Woods

Note sur le filtrage non-linéaire Le résultat n'est pas une combinaison linéaire des pixels de l'image à traiter mais plutôt une fonction non-linéaire telle qu'un min, un max ou la médiane.

Opérateurs morphologiques Tiré de Alain Boucher - IFI

Opérateurs morphologiques Fonctions dans OpenCV : erode, dilate, open, close.

Érosion

Dilatation

Érosion - Dilatation

Ouverture - Fermeture Isoler les surfaces présentes dans l’image, lisser les contours. Recoller des morceaux de surfaces proches de manière à fermer des contours disjoints, lisser les contours.

Exemple récapitulatif Ouverture: - Les petits détails sont supprimés. - Les objets « massifs » retrouvent leurs formes. Fermeture: - Les petits trous ou les fentes fines sont bouchés. - Les objets « massifs » retrouvent leurs formes.

Plan de la présentation Traitement des images : Introduction Espaces des couleurs Filtrage Segmentation Contours Points d'intérêt : coins Régions

Exploitation des contours Retour au filtrage passe haut Intérêt Moins sensibles que les régions aux variations d'éclairage Difficultés Contours incomplets (par parties) Il faut regrouper les contours d'un même objet

Extraction de contours (Filtre de Canny) Calculer les gradients horizontal et vertical (EX et EY) EX EY

Extraction de contours (Canny) Calculer les gradients horizontal et vertical (EX et EY) Calculer les images : EX EY ES

Extraction de contours (Canny) Calculer les gradients horizontal et vertical (EX et EY) Calculer les images : Éliminer les réponses non-maximales Un pixel a une réponse maximale si ses deux voisins, situés dans l'axe de sa normale, ont une réponse inférieure. Un pixel non max est mis à zéro

Extraction de contours (Canny) Calculer les gradients horizontal et vertical (EX et EY) Calculer les images : Éliminer les réponses non-maximales Un pixel a une réponse maximale si ses deux voisins, situés dans l'axe de sa normale, ont une réponse inférieure. Un pixel non-max est mis à zéro. Seuillage par hystérésis (2 seuils) Si réponse du pixel > Seuil 1  Contour Suivre le contour tant que la réponse des pixels rencontrés soit > Seuil 2

Extraction de contours (Canny) 5. Sortie du détecteur de contours de Canny : Image de contours (binaire) Exemple sur l’impact du seuillage et l’effet de l’ombrage A 2009 Design III / GEL-3004 (voir aussi : OpenCV : les fonctions canny et findContours)

Plan de la présentation Traitement des images : Introduction Espaces des couleurs Filtrage linéaire Segmentation Contours Points d'intérêt : coins Régions

Détecteur de coins et points isolés Détecteur de Harris Constat: les détecteurs d'arêtes se comportent moins bien près des coins Proposition: détecter les endroits où le gradient est fort dans plus d'une direction Réalisation: détecteur de Harris Voir aussi dans Open CV la fonction : Good features to track

Détecteur de coins et points isolés Détecteur de Harris Entrée: Image d'intensité, une taille (2N+1 x 2N+1) de la fenêtre de traitement (N entre 2 et 10 pixels) et un seuil t (sur l2) Sortie: Une liste de coins Procédure: Calculer les images de gradients EX et EY Pour tous les points de l'image Estimer la matrice de covariance du gradient (dans une fenêtre 2N+1 x 2N+1) et en extraire les valeurs propres (1 et 2 avec 2  1). Si la valeur propre minimale 2 > seuil t  coins potentiels Trier les coins potentiels dans un ordre décroissant selon 2 En parcourant les coins potentiels triés, on élimine les autres coins se trouvant dans le voisinage du coin courant

Détecteur de coins et points isolés Détecteur de Harris Image originale Coins de l’image originale Image bruitée Coins de l’image bruitée Extrait de : Patrick Labatut (http://www.tsi.telecom-paristech.fr/)

Plan de la présentation Traitement des images : Introduction Espaces des couleurs Filtrage Segmentation Extraction de contours Détection de coins Extraction de régions

Segmentation en régions Découper l'image en régions de mêmes caractéristiques Exemples de caractéristiques sur lesquelles on peut segmenter Couleur (caractéristique d'un pixel) Texture (caractéristique de voisinage) Mouvement inter-images (caractéristique de voisinage) Segmentation simple (basée sur les caractéristiques des pixels)  3 étapes Classifier chaque pixel Ex. : 0  Noir 1  Blanc 2  Jaune 3  Rouge 4  Autre Regrouper par régions Regrouper les pixels connexes de même classe. 3. Étiqueter les régions

Segmentation en régions Étape 1 – Classifier chaque pixel… Chaque pixel est caractérisé par la valeur de ses paramètres Paramètres : H, S et V si on désire segmenter sur la couleur Modèle : Intervalle sur les paramètres 1 classe Ex. : Jaune  Comment choisir les intervalles pour que les régions soient représentatives ? Ex. : On désire mettre en évidence des objets d'une couleur distincte Mesure directe (un modèle basé sur un ensemble d'images) Analyse d'histogramme (pour adaptation automatique d'intervalles)

Segmentation en régions Étape 1 – Classifier chaque pixel… Analyse d'histogramme On tente de séparer les différents modes de l'histogramme Cette procédure peut être automatisée Histogramme d'une image en niveaux de gris (Ex: canal V dans HSV) Seuil

Segmentation en régions Étape 1 – Classifier chaque pixel… Analyse d'histogramme Seuillage adaptatif (Efficace pour ombrage ou éclairage non uniforme) Seuil Seuil *Tirée de Pratt Dans OpenCV, voir les fonctions threshold et adaptive threshold.

Segmentation en régions Étape 1 – Classifier chaque pixel… Analyse d'histogramme On tente de séparer les différents modes de l'histogramme Cette procédure peut être automatisée Histogramme des couleurs (Canal H dans HSV)

Segmentation en régions Étape 1 – Classifier chaque pixel Analyse d'histogramme dans l’espace HSV - Attention: H invalide lorsque S tend vers 0. Originale Hue Saturation Value Produit: Hue x Masque Masque binaire (noir = 0) Région de couleur rougeâtre Segmentation de la région d’intérêt Histogramme du produit *Tirées de Forsyth & Ponce

Segmentation en régions Étape 2 – Regrouper par régions... Regrouper les pixels connexes de la même classe pour former des régions.

Segmentation en régions Étape 2 – Regrouper par régions Regrouper les pixels connexes de la même classe pour former des régions. Définition de la connexité (voisinage) p p Connexité à 4 voisins Connexité à 8 voisins *Tirée de Efford p et q sont connexes-4 si q est dans N4(p) p et q sont connexes-8 si q est dans N8(p)

Segmentation en régions Étape 3 – Étiqueter les régions... On désire donner une valeur commune (étiquette) pour les pixels d'une région. On désire avoir une valeur différente pour chaque région.

Segmentation en régions Étape 3 – Étiqueter les régions...

Segmentation en régions Étape 3 – Étiqueter les régions...

Segmentation en régions Étape 3 – Étiqueter les régions...

Segmentation en régions Étape 3 – Étiqueter les régions

Segmentation en régions Exploitation du résultat de la segmentation Pour une étiquette donnée, récolter diverses informations : Nombre de pixels, largeur, hauteur, centre, point de contact avec le sol, etc. Définir des critères pour éliminer les régions sans intérêt Par exemple : On cherche la ligne rouge. On n'est pas intéressé par le rouge sur le chandail en arrière-plan. Exemples de critères Rapport Hauteur/Largeur Un cercle couvre (p/4)*100% de la surface de son "bounding box"; Un rectangle, près de 100% Position du centre de gravité etc. (Il s’agit souvent des critères empiriques, soyez inventifs !)

Conclusion Considérations calculatoires: le traitement d'images sur les pixels est très coûteux. Quel est le temps raisonnable de calcul ? Est-il acceptable de travailler à mi-résolution ? Références intéressantes sur la vision: OpenCV : http://opencv.itseez.com Digital image processing (Gonzales and Woods)