La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Calcul numérique (avec Maple) Maplesoft Maple version 9.5.

Présentations similaires


Présentation au sujet: "Calcul numérique (avec Maple) Maplesoft Maple version 9.5."— Transcription de la présentation:

1 Calcul numérique (avec Maple) Maplesoft Maple version 9.5

2 Chapitre 8 : Entrées-Sorties Analyse de Données Quelques mots sur le filtrage dimages

3 Entrées-Sorties

4 Entrées-sorties Notion de « chemin » (PATH) dans un système de gestion de fichiers FILENAME := "C:\\Documents and Settings\\chaumont\\Mes documents\\Enseignement\\Maple\\ Cours\\07_ressources\\data1.txt":

5 Entrées-sorties La notion douverture de fichier

6 Entrées-sorties La notion douverture de fichier –fopen retourne un descripteur de fichier (un petit entier). > NBCOLONNE := 2: FILENAME := "data1.txt": fd := fopen(FILENAME, READ); fd := 1

7 Entrées-sorties La lecture… –beaucoup de commandes, –choisir en fonction de ses besoins !

8 Entrées-sorties Exemple de lecture; commande readdata :

9 Entrées-sorties Exemple de lecture; commande readdata : > restart; NBCOLONNE := 2: FILENAME := "data1.txt": fd := fopen(FILENAME, READ): listePoints := readdata(fd, float, NBCOLONNE); fclose(fd): plot(listePoints, style=point);

10 Entrées-sorties Exemple décriture; commande fprintf : > fd := fopen("testFile.txt",WRITE,TEXT); fd := 0 > fprintf(fd,"This is a test\n"); 15 > fclose(fd);

11 Entrées-sorties Exemple dutilisation… –Des étudiants de chimie ont effectué des relevés expérimentaux du volume de lair en fonction de la température (ceci à pression constante). –Ces relevés ont été stockés dans un fichier texte. 1ère colonne : température en °C 2ème colonne : volume en mL. Lien data1.txt Exemple dutilisation

12 Protocole de mesure... Exemple dutilisation

13 Entrées-sorties > restart; NBCOLONNE := 2: FILENAME := "C:\\data1.txt": fd := fopen(FILENAME, READ): listePoint := readdata(fd, float, NBCOLONNE); fclose(fd): plot(listePoint, labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimentale du volume dun gaz à pression constante en fonction de la température", style=point); Lien Code Maple

14 Entrées-sorties Mesures obtenues par un groupe détudiants

15 Entrées-sorties Remarque : la loi des gaz parfaits indique que P.V = n.R.T P est la pression (en pascal) ; V est le volume occupé par le gaz (en mètre cube) ; n est la quantité de matière, en mole R est la constante des gaz parfaits (R = 8, J.K -1.mol -1 ) T est la température absolue (en kelvin). Exemple dutilisation

16 Entrées-sorties Remarque : la loi des gaz parfaits indique que P.V = n.R.T donc V = (n.R/P) × T = cst × T Si T est exprimée en °C on a une expression linéaire V=a.T + b avec a et b deux constantes. Exemple dutilisation Doù la « sensation » de linéarité en regardant le tracé. (Figure montrée 2 transparents avant celui-ci)

17 Entrées-sorties Si T est exprimée en °C on a une expression linéaire V=a.T + b avec a et b deux constantes. Exemple dutilisation Question : Déterminer léquation de la droite ?

18 Entrées-sorties Signal image : j i Exemple dutilisation

19 Entrées-sorties Représentation : Images et suite dimages... Image : tableau HxL de pixels Pixel : * niveau de gris ([0,255]) * couleur (RGB, YUV, …) * autres (multi-bande satellite, mouvement, …) L H image pixel Exemple dutilisation

20 Entrées-sorties Le format (image) pgm : Contenu du fichier : P ¢¡¢žŸœ£¨¬¥v``gjkmlmmjpvw{ Exemple dutilisation

21 Analyse de données

22 Analyse de données ; la régression linéaire En statistiques, il arrive que deux grandeurs X et Y apparaissent liées par relation affine : Y = a.X + b. La régression linéaire consiste à déterminer une estimation des valeurs a et b et à quantifier la validité de cette relation grâce au coefficient de corrélation linéaire. La généralisation à p variables Y = a0 + a1·X1 + a2·X2 + … + ap·Xp s'appelle la régression linéaire multiple.

23 Régression linéaire Soient M i des points (x i,y i ) avec i [1..n], on cherche la droite D dont l'équation est y = a x + b et qui passe au plus près des points M i. D

24 Régression linéaire D xixi yiyi xixi yiyi y = a.x i + b

25 On voudrait pour tous les points M i que (y i - y)² soit le plus petit possible Régression linéaire xixi yiyi xixi yiyi y = a.x i + b Cest-à-dire (y i - (a.x i +b))² soit le plus petit possible cest-à-dire minimiser

26 Régression linéaire Passer au plus près, selon la méthode des moindres carrés, c'est rendre minimale la somme : où (yi - axi - b)² représente le carré de la distance verticale du point expérimental Mi à la droite considérée comme la meilleure.

27 Régression linéaire Passer au plus près, selon la méthode des moindres carrés, c'est rendre minimale la somme : Cela revient donc à déterminer les valeurs des paramètres a et b (respectivement le coefficient directeur de la droite et son ordonnée à l'origine) qui minimisent la somme ci-dessus.

28 Régression linéaire

29

30 Quelques formules classiques :

31 Régression linéaire Ré-écriture de a et de b...

32 Least Square Maple permet dobtenir immédiatement le calcul de a et b de l'équation y = a x + b : > abscisse := createList(listePoints, 1); ordonnees := createList(listePoints, 2); with(stats): fit[leastsquare[[x,y]]]([abscisse,ordonnees]); y = x

33 > f := x -> *x: plot([listePoints, f(x)], x= , labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimental du volume d'un gaz à pression constante en fonction de la température", style=[point, line]);

34 Least Square > with(stats): this example uses the defaults to fit the data to the curve y=a*x+b > fit[leastsquare[[x,y]]]([[10,15,17,19],[3,4,5,6]]); This is the same as > fit[leastsquare[[x,y], y=a*x+b, {a,b}]]([[10,15,17,19],[3,4,5,6]]); One can also specify nonlinear curves -- as long as the unknown parameters appear linearly > fit[leastsquare[[x,y], y=a*x^2+b*x+c]]( [[10,15,17,19],[3,4,5,6]]);

35 Least Square with(stats): fit[leastsquare[[x,y],y=a*x^2+b*x+c]]([[10,15,17,19],[3,4,5,6]]); f := x -> 417/13358*x^2-7583/13358*x+37054/6679; lstPoints := [[10,3],[15,4],[17,5],[19,6]]; plot([f(x), lstPoints], x= , style=[line, point]);

36 Régression linéaire Qualité de lestimation de la linéarité: Le coefficient de corrélation linéaire est toujours compris entre -1 et 1. En pratique sa valeur absolue est rarement égale à 1, mais on estime généralement que l'ajustement est valide dès que ce coefficient a une valeur absolue supérieure à

37 Régression linéaire Qualité de lestimation de la linéarité:

38 coefficient de corrélation linéaire Avec la formule... covar := describe[covariance](abscisse, ordonnees): varX := describe[variance](abscisse): varY := describe[variance](ordonnees): covar /(sqrt(varX) * sqrt(varY)); Avec Maple... describe[linearcorrelation](abscisse, ordonnees);

39 Traitement des données aberrantes (outlier)

40 Traitement de données contenant des données aberrantes (outlier) AJOUT DU POINT ABERRANT (19, 78) abscisseAberrant := [op(abscisse),19]: ordonneesAberrant := [op(ordonnees),78]: fit[leastsquare[[x,y]]]([abscisseAberrant,ordonneesAberran t]); y = x f_LS_2 := x -> *x: plot([listePoints, [[19.,78.]], f_LS_2(x)], x= , labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimental du volume d'un gaz à pression constante en fonction de la température", style=[point, point, line], color=[black, black, blue], legend=["Données expérimentales", "Point aberrant", "Least Square"]);

41 Traitement de données contenant des données aberrantes (outlier) Sans « outlier » Avec « outlier » = =

42 Traitement de données contenant des données aberrantes (outlier) The function leastmediansquare of the subpackage stats[fit,...] fits a curve to the given data using the method of least median of squares. The equation to fit will be linear (affine) in the unknown parameters. The equation itself need not be linear. For example, specifying vars to be [x,y] implies fitting to the equation y=a*x^2+b*x+c.

43 Traitement de données contenant des données aberrantes (outlier) The well-known least square regression method suffer from leverage points. By adding a single point to the data, one can change the result to an arbitrary extent. The least median of squares method allows one to add up to half the number of points without changing the result. The price to pay for this robustness is a substantial increase in computation cost.

44 Traitement de données contenant des données aberrantes (outlier) with(stats): fit[leastsquare[[x,y]]]([abscisse,ordonnees]); y = x fit[leastmediansquare[[x,y]]]([abscisse,ordonnees]); y = x f_LS_1 := x -> *x: f_LMS_1 := x -> *x: plot([listePoints, f_LS_1(x), f_LMS_1(x)], x= , labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimental du volume d'un gaz à pression constante en fonction de la température", style=[point, line, line], color=[black, blue, red], legend=["Données expérimentales", "Least Square", "Least Median Square"]);

45 Traitement de données contenant des données aberrantes (outlier)

46 AJOUT DU POINT ABERRANT (19, 78) abscisseAberrant := [op(abscisse),19]: ordonneesAberrant := [op(ordonnees),78]: fit[leastsquare[[x,y]]]([abscisseAberrant,ordonneesAberran t]); y = x fit[leastmediansquare[[x,y]]]([abscisseAberrant,ordonneesA berrant]); y = x f_LS_2 := x -> *x: f_LMS_2 := x -> *x: plot([listePoints, [[19.,78.]], f_LS_2(x), f_LMS_2(x)], x= , labels=["Temperature (°C)", "Volume(mL)"], title = "Mesure expérimentale du volume d'un gaz à pression constante en fonction de la température", style=[point, point, line, line], color=[black, black, blue, red], legend=["Données expérimentales", "Point aberrant", "Least Square", "Least Median Square"]);

47 Sans « outlier » Avec « outlier »

48 Explications sur un exemple with(stats): data := [[1,3],[2,4],[3,5],[1,2]]: abscisse := createList(data, 1); ordonnees := createList(data, 2); fit[leastmediansquare[[x,y]]]([abscisse, ordonnees]); abscisse := [1, 2, 3, 1] ordonnees := [3, 4, 5, 2] y = 2+x f := x -> 2+x; plot([f(x), data], x= , style=[line, point])

49 Explications Least Median Squarre data := [[1,3],[2,4],[3,5],[1,2]]: abscisse := createList(data, 1); ordonnees := createList(data, 2); fit[leastmediansquare[[x,y]]]([abscisse, ordonnees]); This is calculated as follows. For example, pick two points, say [1,3] and [2,4]. Pass a straight line through them. In this case it is y=2+x. For each point compute the square of the distance of the line to the point This gives [0,0,0,1]. Find the median through these distances: this gives 0. Now minimize over all possible lines. This is the result. | y i - (a.x i +b) | avec a=1 et b=2

50 data := [[1,3],[2,4],[3,5],[1,2]]: This is calculated as follows. For example, pick two points, say [1,3] and [2,4]. Pass a straight line through them. In this case it is y=2+x. For each point compute the square of the distance of the line to the point This gives [0,0,0,1]. Find the median through these distances: this gives 0. Now minimize over all possible lines. This is the result. Cas où lon a pris les points (1,3) et (2,4) ce qui donne la droite y = 1.x + 2 (y = a.x + b avec a = 1 et b = 2)

51 the median of a sorted list of numbers is either the middle value or the arithmetic mean of the two middle values. If the requested median falls between entries, it is interpolated. > describe[median]([1,2,3,4,250]); 3

52 Quelques mots sur le traitement dimages

53 Initiation au traitement d'images Traitement d'images, applications : –Vision robotique Suivi d'objets Surveillance Déplacement autonome d'un robot Contrôle qualité sur une chaîne de production Lecture d'un numéro sur une pièce... –Analyse d'images satellite Détection des champs, routes Détection d'informations sur le sous-sol... –Analyse d'images vidéo Indexation automatique, Reconnaissance de visages Recherche de publicités, Détection d'accidents sur autoroute…

54 Traitement d'images, applications : –Compression intelligente Visiophone : transmettre plus de détail sur le visage que le fond... –Reconnaissance de l'écriture manuscrite Sans contrainte Traitement automatique de chèques Traitement automatique d'adresses postales... –Reconnaissance de documents Tout type de documents, structurés ou non Traitement automatique de bons de commandes Indexation Eviter la saisie de documents sous forme papier... Initiation au traitement d'images

55 Une image : –Ensemble de points : les pixels –Chaque pixel contient une valeur couleur (codée sur 8, 16, 24, 32 bits) niveau de gris (0 : blanc à 255 : noir) blanc (0) ou noir (1) –Un tableau à 2 dimensions de pixels (matrice)

56 Initiation au traitement d'images Reconnaissance : une tâche très difficile –Vision par ordinateur = vision de 4 ou 9 pixels à la fois Quelques pixels parmi 6 millions de pixels (feuille A4) –Passer de l'ensemble de pixels à une signification Coopération entre niveau numérique (image) et niveau symbolique (concepts représentés dans l'image) Nécessité d'introduire de la connaissance dans le système

57 Initiation au traitement d'images Exemple d'enchaînement de traitements pour effectuer une reconnaissance –Améliorer la qualité de l'image –Détecter des primitives (des segments, des contours…) –Définir et utiliser différents algorithmes liés à l'intelligence artificielle pour extraire du sens à partir des primitives et permettre à l'ordinateur de "comprendre l'image" Exemple : graphes, grammaires, classification…

58 Image Analyse de la structure du document Segmentation Traitement des images Caractères Reconnus Classifieur Exemple de chaîne de traitement

59 Initiation au traitement d'images : Filtrage Principe –Modification du signal d'entrée par l'étude des valeurs de son voisinage Filtrage –Bidimensionnel : sur une image –Monodimensionnel : sur un signal sonore

60 Initiation au traitement d'images : Filtrage Filtrage analogique (radio, TV…) –Sur un signal analogique –Composants électroniques Pb : vieillissement, sensibilité aux intempéries… –Ex : enlever du bruit (taches de couleur sur TV si mauvaise réception)… Filtrage numérique –Sur un signal numérique –On stocke le signal dans un tableau mono ou bidimensionnel –Mêmes objectifs que filtrage analogique

61 Filtrage monodimensionnel Filtrage monodimensionnel pour supprimer du bruit –Exemple Correction d'erreurs de lecture sur un CD audio Suppression du souffle sur un vieil enregistrement –Problème Bruit : valeur trop différente de ses voisins Limiter ces valeurs => 1 solution : faire la moyenne des valeurs sur un certain intervalle

62 Filtrage monodimensionnel Filtrage monodimensionnel pour supprimer du bruit –Exemple Soit le signal suivant : (10, 10, 10, 15, 11, 12, 12) Valeur 15 peut être considérée comme du bruit Moyenne calculée à partir de ses 2 voisins directs Soit : (10, 11.67, 12, 12.67, 12) –avec = 1/3 ( ) –12 = 1/3 ( ) Lissage de courbes

63 Filtre pour réaliser la moyenne –Principe Fenêtre à déplacer sur la suite de données Fenêtre ici de taille 3 –le point à recalculer –ses 2 voisins –Calcul : tableau des coefficients pondérateurs de la moyenne exemple F = [ 1/3, 1/3, 1/3 ] (10, 10, 10, 15, 11, 12, 12) [1/3, 1/3, 1/3 ] (10, 11.67,12,...,...) –Remarques On ne peut calculer les valeurs sur les bords

64 Filtrage monodimensionnel Possibilité de calculer des moyennes pondérées –Pour accorder plus ou moins de d'importance aux valeurs voisines –Exemple F' = [ 1/8, 3/4, 1/8 ] -> (10, 10.83, 13.50, 11.83, 12)

65 Filtrage monodimensionnel Filtrage monodimensionnel pour détecter des zones de variation forte –Exemple Lecture d'un code barre --> séquence de valeurs numériques (niveaux de gris sur la ligne du faisceau lumineux) On veut détecter les bords des barres noires –Problème Pour les zones de valeurs constantes -> 0 Pour les zones de forte variation -> valeur proportionnelle à la variation => détection de la dérivée de la courbe des valeurs => filtre possible [-1, 1] (filtre dérivateur) 250,200,100,50,50,...

66 Filtrage monodimensionnel –Exemple Signal : –(10, 10, 10, 16, 16, 16, 16, 11, 6, 1, 1, 1) Réponse du filtre –(0, 0, 6, 0, 0, 0, -5, -5, -5, 0, 0)

67 Filtrage monodimensionnel Pour avoir une réponse plus précise –Quand la variation forte est répartie sur plusieurs valeurs –Appliquer une deuxième fois le filtre dérivateur sur la réponse du filtre => détecte la dérivée seconde (0, 6, -6, 0, 0, -5, 0, 0, 5, 0) –On peut construire directement le filtre qui effectue cette double application F= [ 1, -2, 1] (filtre laplacien)

68 –On peut dans certains cas introduire un coefficient multiplicateur pour rendre les pics plus visibles On multiplie toutes les valeurs calculées par le filtre par un entier.

69 Même principe que pour filtrage monodimensionnel Signal d'entrée : –Matrice de valeurs en niveau de gris => comprises entre 0 et 255 Filtre –Une matrice carrée de coefficients –Même principe que pour le filtre mondimensionnel : On calcule la valeur du pixel au centre du filtre en effectuant la somme pondérée par les coeff du filtre des pixels sous le filtre Filtrage bidimensionnel

70 Filtrage bidimensionnel Application du filtre sur toute l'image produit une matrice de valeurs comprises entre 0 et 255 –Attention il ne faut pas générer de valeurs 255 –=> par exemple, les filtres dérivateurs génèrent des valeurs négatives Il faut produire la valeur absolue si val < 0 alors val = -val si val > 255 alors val = 255

71 Filtrage bidimensionnel Effets du filtrage sur une image –Filtre de type moyenne (appelés "passe bas") : supprime du bruit rend l'image plus floue –Filtre dérivateur : détecte les contours

72 Illustration Filtre de type dérivateur (filtre contour)

73 /16 2/16 1/16 2/16 4/16 2/16 1/16 2/16 1/16 Filtre de type moyenne (filtre flou)


Télécharger ppt "Calcul numérique (avec Maple) Maplesoft Maple version 9.5."

Présentations similaires


Annonces Google