Vision Par Ordinateur James L. Crowley DEA IVR Premier Bimestre 1999/00 Séance 4 26 octobre 1999 Plan de la séance : Techniques Statistiques de la Reconnaissance de Forme Segmentation...2 La Distribution de la Couleur d'une Surface...2 Segmentation par seuillage...3 Codage en "runs" (Run Length Encoding)...4 Comment Choisir le seuil?...4 Segmentation par les statistiques de la couleur...5 Variables Aléatoires...7 L'Histogramme et la densité de probabilité...8 L'Espérance d'une variable aléatoire...9 Vecteurs de variables aléatoires...10 Projection sur un axe...11 Composantes principales...12
Segmentation La Distribution de la Couleur d'une Surface Est ce que la couleur d'une surface est constant? Non Qu'est-ce que la couleur d'une surface? Le corps d'une surface a la couleur de ses pigments. Le reflet a la couleur de la source. La frontière donne une transition. Ceci peut être décrit par une histogramme en R, V, B. B Couleur du Objet Couleur de la Lumiere R V L'Histogramme compte le nombre de pixels pour chaque valeur R, V, B. 4-2
Segmentation par seuillage La technique la plus simple d'isolé une forme dans une image est de comparer les pixels à une seuil. Considère la ligne J, de l'image g(i, j). niveau de Gris 255 Seuil 0 0 512 Colonne On remplace chaque pixel par une valeur binaire niveau de Gris b(i, j) := 255 1 si g(i, j) Seuil 0 Sinon Seuil 0 0 512 Colonne 4-3
Codage en "runs" (Run Length Encoding) Il s'agit d'un codage pour une image binaire. On note, pour chaque ligne, les colonnes où débute et termine chaque zone. On note également le numéro de la ligne et le nombre de "runs": [ligne J, n runs] [col1, col 2] [col3, col 4]... Comment Choisir le seuil? Théorie : calculer un histogramme, placer les seuils aux vallées Nombre des Pixels 0 0 Seuil 255 Niveau de gris Pratique : ou 1) choisir le seuil "interactivement" 2) Calculer une image de probabilité 4-4
Segmentation par les statistiques de la couleur Un histogramme de couleur peut fournir une densité de probabilité afin de trouver les pixels qui sont les images d'un objet, par exemple, la peau humaine. La Luminance, L=R+V+B décrit la forme 3D d'une surface. On peut simplifier l'histogramme par une normalisation de la luminance. Pour chaque pixel P(i,j) = [R, V, B], on normalise par la luminance : r = R R+V+B v = V R+V+B Calcul d'une histogramme des valeurs h(r, v). On alloue une tableau 2D de taille N h (exemple 32 x 32 = 1024 cellules : h(r, v). ) Pour chaque pixel C = c(i, j) = r(i, j) v(i, j), on incremente la cellule de l'histogramme qui correspond à (r, v) h(r, v) := h(r, v) +1 Une histogramme des couleurs, h(c), de N pixels donne une approximation de la probabilité de chaque couleur p(c) = Lim N { 1 N h(c)} Une histogrammedes de couleurs, h tot (C), de les N tot pixels dans une l'image donne une approximation de la probabilité de chaque couleur dans l'image. p(c) 1 N tot h tot (C) Une histogramme des de couleurs d'une objet, h o (C), de les N o pixels dans une région d'une image de l'objet, w(i, j), donne une approximation de la probabilité de chaque couleur de l'objet. p(c objet ) 1 N o h o (C) 4-5
Application de la Règle de Bayes. Les histogramme permet d'utiliser le règle de Bayes afin de calculer la probabilité qu'une pixel correspond à une objet. p(objet C) = p( C objet ) p(objet) p(c) Soit M images de N pixels. Ceci fait N tot Pixels. Soit h tot (r, v), l'histogramme de tout les N tot pixels. Soit h o (r, v), l'histogramme des N o pixels de l'objet "o". p(objet) = N o N tot 1 p(c) = N h tot (r, v) tot p(c objet ) = 1 N o h o (C) Donc p(objet C) = p( C objet ) p(objet) p(c) p(objet C) = p(objet C) = 1 N o h o (C) h o (C) h tot (C) N o N tot 1 N tot h tot (C) Cependant, il faut assurer que h tot (C) 0!! Pour cela il faut que N tot >> N h (nombre de cellules de l'histogramme.). Aini, on peut creer une image de probabilité de l'objet. 4-6
Variables Aléatoires Remarque préliminaire Les perceptions ne sont jamais parfaitement précises. Les observations sont limitées en précision. Chaque observation est asujettie à des erreurs. Conséquence : 1) Chaque mesure perceptive doit être accompagnée par une estimation de sa précision. 2) Il nous faut les outils mathématiques de représentation et manipulation de la précision. Ces outils sont fournis par les statistiques et la probabilité. Une variable aléatoire, x, est une variable dont les valeurs sont imprévisibles. Les variables aléatoires sont décrites par leurs propriétés statistiques. Soit une variable aléatoire, x, on peut observer une population de N échantillons de x, {x n } pour 0 n < N. Exemples : les notes des étudiants dans un cours. La note de chaque individu est imprévisible (donc aléatoire). On peut décrire une population des notes par leurs propriétés statistiques. Par exemple, on peut calculer la moyenne des notes. La moyenne d'une population {x n } de n échantillons peut être calculée par x^ = 1 N N-1 x n n=0 Ici on a calculé la moyenne "a posteriori" d'une population. Pour l'année suivante, on peut prédire que la "moyenne" des notes sera la même. Dans ce cas, on utilise la moyenne précédente comme une estimation "a priori". On peut mesurer une autre caractéristique d'une population d'échantillons : par exemple, on peut mesurer sa densité de probabilité. 4-7
L'Histogramme et la densité de probabilité L'histogramme, h(x) d'une population d'échantillons {x n } des valeurs discrète est le nombre de fois que chaque valeur est observée dans la population. Par exemple, ici l'histogramme des notes finales obtenues dans le cours vision par ordinateur pour l'année scolaire 93/94. 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 On peut convertir l'histogramme en densité de probabilité par une normalisation. Il s'agit de diviser par le nombre d'échantillons en sorte que la somme des valeurs de l'histogramme soit 1.0. Probabilité de chaque valeur possible de x : p(x) = Lim N { 1 N h(x)} La densité des probabilités mesurée pour une population, fournit une densité de probabilité "A posteriori". Si les propriétés statistiques ne changent pas, on peut prendre la densité "a posteriori" d'une population comme une approximation "a priori" d'une autre. Une distribution de probabilités (l'intégrale d'une densité) est définie par la probabilité que v (paramètre) soit infieure ou égale à x (variable aléatoire) x P(v) = p(v x) = p(v) v=0 4-8
L'Espérance d'une variable aléatoire Soit une variable aléatoire x avec fonction de densité de probabilité p(x). L'espérance d'une population d'échantillons {x n } de x est sa moyenne : x^ E{x} = 1 N-1 N x n n=0 La moyenne d'une population {x n } de N échantillons de x est définie par l'espérance E{x}. Les probabilités sont les masses! (ou plutôt, la masse est une propriété probabiliste de la matière). La moyenne est le premier moment de la densité de probabilité. Elle peut également être calculée par : x^ µ x E{x} = X maxx P(x) = x=0 où p(x) est la densité de probabilité de x, et h(x) est un histogramme de valeurs de x. X maxx h(x) N x=0 Commet-on une erreur si on remplace une variable aléatoire, x par sa moyenne? oui. e = x x^ = x µ x Mais cette erreur, e, est elle aussi une variable aléatoire. Donc on peut calculer son espérance. Mais afin que les erreurs positives et négatives ne s'annulent pas, on utilise le carré de l'erreur. La variance, σ 2, d'une variable aléatoire, x, est l'espérance du carré de l'écart entre les échantillons {x n } et la moyenne. N-1 σ 2 = E{(e) 2 } = E{(x x^) 2 1 } = N (x n x^) 2 n=0 4-9
La variance, σ 2, est équivalente à un deuxième moment de la densité de probabilité, autour de la moyenne. X σ 2 = E{(x x^) 2 X max max } = (x n x^) 2 P(x)) = (x n x^) 2 h(x) x=0 N x=0 On peut également écrire : σ 2 = E{(x x^) 2 } = E{(x E{x}) 2 } Vecteurs de variables aléatoires. Un vecteur aléatoire est un vecteur de variables aléatoires. X x 1 x 2... x k = Son espérance est le vecteur d'espérances des composantes. X E{X } E{x 1 } E{x 2}... E{x k} Il s'agit du premier moment du vecteur densité de probabilité h(x ) N. La précision d'une moyenne est l'espérance de son erreur. La "covariance" est une matrice qui mesure la moyenne du carré de l'espérance de l'erreur : C E{[X X^ ] [X X^}] T } = E{[X E{X }] [X E{X }}] T } où et C x σ x1 2 σ x2 x 1... σ xn x 1 σ x1 x 2 σ x2 2... σ xn x 2......... σ x1 x n σ x2 x n... σ xn 2 σ x2 x 1 E{ (x 1 - x^ 1 ) (x 2 - x^ 2)} σ x1 2 E{ (x 1 - x^ 1) 2 } 4-10
Projection sur un axe Soit une vecteur unitaire D = x 1 x 2... x n tel que D = 1. La projection de la covariance sur une axe, D donne une variance, σ 2 D dans la direction D. σ 2 D = D C D Τ La surface des projections est une ellipsoide λ2 λ 1 Les axes de l'ellipsoide sont les composantes principales de la covariance. 4-11
Composantes principales Les axes sont calculés par une analyse en composantes principales de la matrice C. Il s'agit de trouver une rotation, Φ, dans l'espace de caractéristiques Φ C P Φ Τ = Λ, telle que Λ soit diagonale. Λ = λ 1 0 0 λ tel que λ 2 1 > λ 2 Φ = Cos(θ) Sin(θ) Sin(θ) Cos(θ) Φ C P Φ Τ = Λ = λ 1 0 0 λ Φ Τ Φ = I = 1 0 2 0 1 Φ C P Φ Τ Φ = Φ C P = Λ Φ = λ 1 0 0 λ 2 Cos(θ) Sin(θ) Sin(θ) Cos(θ) Les lignes du Φ sont des vecteurs propres du C. La longueur des axes majeur et mineur sont les valeurs propres de la matrice C. θ est l'orientation de l'axe "majeur" et λ 1 / λ 2 est le rapport entre la longueur et la largeur. λ 1 / λ 2 est une caractéristique invariante de la taille et de l'orientation. 4-12