outils logiciels pour le traitement du signal et des image

35
Romulus Terebes, professeur de universités Master Traitement du signal et des images, UTCN 2020 Outils logiciels pour le traitement du signal et des image

Upload: others

Post on 22-Jun-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Outils logiciels pour le traitement du signal et des image

Romulus Terebes, professeur de universités

Master Traitement du signal et des images, UTCN 2020

Outils logiciels pour le traitement du signal et des

image

Page 2: Outils logiciels pour le traitement du signal et des image

▪Connaitre les concepts, principes et méthodologies d'analyse et de conception des systèmes de traitement de l’information dans les domaines suivants: traitement du signal, traitement des images, statistiques et probabilités / algorithmes, intelligence artificielle

▪Concevoir, implémenter et évaluer les systèmes de traitement du signal, des images et de vidéos utilisant les langages de programmation Python et Matlab

▪Utiliser des techniques de programmation avancées et des langages de programmation génériques et spécialisés (Python, Matlab) pour des applications spécifiques à des domaines liés au traitement de séquences d'images et de séquences vidéo.

.

Objectifs d’apprentissage

Page 3: Outils logiciels pour le traitement du signal et des image

▪Epreuve pratique (E)- application Python sur un sujet donné(60%)

▪Comptes rendu – TPs (CR) (40%) - à rendre par email après les TPs

▪ Note cours et TPs (N=0.6E+0.4CR)

▪Projet (P) -travail à réaliser: étude théorique, implantation numérique, validation expérimentale, article (au moins 4 pages en format 2 colonnes)

▪Note finale = 0.5N+0.5P

Evaluation

Page 4: Outils logiciels pour le traitement du signal et des image

▪1.R. Terebes– Software pentru prelucrări de semnale și imagini/Outilslogicels pour le traitement du signal et des images, notițe de curs, 2020-2021; http://ares.utcluj.ro/oltsi/oltsi.html

▪2.Maurice BELLANGER– Traitement numérique du signal : cours et exercices corrigés, Dunod, 2012

▪3. S. Bri- Traitement du signal et applications, Saarbrücken : Éditions Universitaires Européennes, 2015

▪4. R. BELAROUSSI Traitement de l'image et de la vidéo : avec exercices pratiques en Matlab et C++, Ellipses, 2010

▪5. M. Bergounioux - Mathématiques pour le traitement du signal : cours et exercices corrigés, Dunod. 2014

▪6. Ressources en ligne : http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_python.html, https://python.developpez.com/cours/TutoSwinnen/

Bibliographie

Page 5: Outils logiciels pour le traitement du signal et des image

▪ 1.1 Matlab

-abréviation du Matrix Laboratory; environnent informatique conçu pour le calcul matriciel;

-facile à employer;

-nombreuses boites à outils (plus de 100 toolbox): traitement du signal, optimisation, traitement des images, équations aux dérivées partielles, contrôle, Deep Learning, statistique et Machine Learningetc.

-alternative gratuite Octavehttp://www.octave.org

1. Langages de programmation pour le traitement

du signal et des images

Page 6: Outils logiciels pour le traitement du signal et des image

1. Langages de programmation pour le traitement

du signal et des images

-Matlab est un langage de programmation non typé (toute variable est une matrice);

- langage interprété et non-compilé: a besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur et à mesure les instructions du programme;

-un fichier exécutable n’est pas généré;

- la traduction (interprétation) du code a un impact important sur les performances);

-présente des interfaces permettant l’utilisation des fonctions écrites dans d’autres langages (C, C++) –fichiers MEX

Page 7: Outils logiciels pour le traitement du signal et des image

1. Langages de programmation pour le traitement

du signal et des images

▪ 1.2 Python

- langage de programmation orienté objet interprété qui est devenu récemment le langage de programmation des scientifiques;

- grandes possibilités en analyse et modélisation de données scientifiques avec relativement peu de charge de travail en termes d'apprentissage, d'installation ou de temps de développement;

-Python propose les principales fonctionnalités de la programmation (actions conditionnelles, boucles, programmation modulaire) et les mécanismes de classes (héritage, surcharge des méthodes, polymorphisme).

Page 8: Outils logiciels pour le traitement du signal et des image

1. Langages de programmation pour le traitement

du signal et des images

-une distribution Python intègre un grand nombre de librairies;

-de paquetages (packages) développés par des contributeurs indépendants donnent accès à des fonctionnalités spécialisées pour des applications, pratiquement dans tous les domaines;

- langage multiplateforme;

-Python est libre, complètement gratuit.

-exemples de packages numpy, scipy, pandas, scikit-learn

-https://www.python.org/

Page 9: Outils logiciels pour le traitement du signal et des image

▪2.1 Programmation en Python

2. Introduction à la programmation Python

- langage interprète (lent) disponible pour différents OS;

- langage typé (types de données usuels) incluant des instructions pour effectuer des branchements conditionnels, boucles;

- le code peut être structuré en procédures et fonctions, objets et classes ou découpé en modules (fichiers avec extension .py);

- les fichiers script sont transmis ensuite à l’interpréteur

-Python est case sensitive

Page 10: Outils logiciels pour le traitement du signal et des image

▪2.2 Types élémentaires du Python

2. Introduction à la programmation Python

- nombreux types prédéfinis en Python, parmi lesquels les données numériques, chaines de caractères, données booléens (True et False)

Données numériques : 3 types

entier (int)

flottant (float) – le point agit comme séparateur décimal lorsqu'on doit écrire des nombres à virgule

complexe(complex) - la partie imaginaire est collée au charactere j

Page 11: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

- le nom des variables en Python peut-être constitué de lettres minuscules (a à z), de lettres majuscules (A à Z), de chiffres (0 à 9) ou du caractère souligné (_)

- le nom ne doit pas débuter ni par un chiffre, ni par _ et ne peut pas contenir de caractère accentué

Page 12: Outils logiciels pour le traitement du signal et des image

Chaines des caractères (str)

-séquence de caractères, délimitée par des guillemets ( simple ' ou double " ).

-pour utiliser des chaines de caractères contenant à la fois ' et ", il faut utiliser une séquence d'échappement (backslash (\) suivi d'un ou plusieurs caractères – exemples: \n –saut de ligne, \t – tabulation horizontale etc)

- il faut faire attention à distinguer entre les littéraux écrits comme nombres et chaines de caractères

- la fonction prédéfinie type permet de d'obtenir le type d'une expression/variable

2. Introduction à la programmation Python

Page 13: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

-autres fonctions utiles: len (longueur d’une chaine des caractères), + operateur de concaténation (ne fonction pas que avec de chaines de caractères), str (conversion au type chaine de caractères)

Page 14: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.3 Conversion des variables

- possibilité de convertir explicitement un variable d’un type à un autre en utilisant les fonctions int, float, complex et str ;

Page 15: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.4 Fonctions prédéfinies

- fonctions déjà incluses dans le langage Python (len, str, print etc) ou fonctions écrites par d’autres programmeurs;

La function print

-affichage de la valeur d’une variable peut importe le type

La function input

-permet lire une entrée; une fois appelée, arrête l'exécution du programme et attend que l'utilisateur saisisse un texte; la valeur renvoyée est un chaine de caractères; une conversion peut être requise.

Page 16: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.5 Importation de fonctions

- les fonctions peuvent être incluses dans des modules; pour pouvoir les utiliser il est nécessaire de les importer (instruction from… import)

- exemples math, cmath etc.

Page 17: Outils logiciels pour le traitement du signal et des image

- plusieurs modules peuvent avoir les mêmes fonctions. La distinction se fait à travers un operateur d’accès (.); cela revient à précéder le nom de la fonction par le nom du module

2. Introduction à la programmation Python

▪2.6 Mots réservés

-l’utilisation des mots réservés pour les noms des variables est interdite.

Page 18: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

False class finally is return

None continue for lambda try

True def from nonlocal while

and del global not with

as elif if or yield

assert else import pass

break except in raise

Page 19: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.7 Blocs d’instructions

-un bloc Python est défini par une indentation obtenue en décalant le début des instructions vers la droite grâce à des espaces en début de ligne

-toutes les instructions d’un même bloc doivent être indentées exactement au même niveau (c’est-à-dire décalées à droite d’un même nombre d’espaces).

- un bloc peut contenir une ou plusieurs instructions, et notamment des instructions composées (tests, boucles, etc.).

Page 20: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.8 Instructions de branchement et branchement conditionnel

Instruction if

-comme dans les autres langages de programmation est utilisée pour tester une certaine condition. Attention : est essentiel!

Syntaxe:

if condition:

Instruction A (ou bloc d’instructions)

Page 21: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

ICCP 2019 – 5-7 September 2198

Page 22: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

Instruction if…else

Syntaxe:

if condition:

Instruction A (ou bloc d’instructions)

else:

instruction B (ou bloc d’instructions)

Page 23: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

- l’instruction switch… case n’a pas d’équivalent en Python

▪2.9 Instructions répétitives

Instruction for

-elle s’applique seulement sur une sequence de valeurs (énumérations, listes);

- la séquence des valeurs doit exister ou elle doit être crée avant l’utilisation de l’instruction

Syntaxe:

for indice in séquence:

bloc d’instructions

Page 24: Outils logiciels pour le traitement du signal et des image

ICCP 2019 – 5-7 September 2198

2. Introduction à la programmation Python

Page 25: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

- la boucle peut être « quittée » avec break

- des boucles imbriquées sont possibles en Python

- le bloc d’instructions peut contenir des conditions

- une instruction while est également définie

Syntaxe:

while condition:

bloc d’instructions

Page 26: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

Page 27: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

Page 28: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.10 La portée des variables

Portée des variables : quand et comment les variables sont elles accessibles

-2 types: portée locale (variables définies dans une fonction), portée globale (variables définies en dehors de toute fonction)

- l’appel ou la modification d’une variable locale de dehors de la fonction dans laquelle est définie produira une erreur en Python

- les variables globales sont accessibles à l’intérieur des fonctions mais seulement en mode lecture

Page 29: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

-

- la modification d’une variable globale en Python à l’intérieur d’une fonction est possible seulement si le mot clé global est utilisé

Page 30: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

▪2.11 Fonctions Python

- incluent un bloc du code (ensemble d’instructions regroupées ensemble) nommé

-2 types: fonctions prédéfinies (print() et input() par exemple) et fonctions créées par l’utilisateur.

- Python 3.7.4 inclut 70 fonctions https://docs.python.org/3/library/functions.html

- la création d’une fonction se fait à l’aide du mot clé def. Le mot clé doit être suivi par le nom de la fonction et d’une paire de parenthèses qui pourra inclure une liste des paramètres et du caractère :

- les fonctions peuvent ou non renvoyer des valeurs

Page 31: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

Exemples

Fonction avec un paramètre

Fonction avec plusieurs paramètres

Page 32: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

-un nombre arbitraire et variable des paramètres peut être indiqué lors de la définition d’une fonction a l’aide des mots clés *args et **kwargs

- les paramètres sont passées dans des tuplesPython (un tuple =une liste qui ne peut pas être modifiée)

Exemples

Page 33: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

-pour renvoyer/retourner des valeurs l’instruction return est utilisée

- les fonctions peuvent renvoyer une valeur ou de valeurs multiples

Exemple

Une fonction ne peut retournée qu’un seule valeur à la fois. Pour pouvoir retourner plusieurs valeurs des données composites (listes, tuples) Python sont employées.

Page 34: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

- l’exemple précèdent utilise un liste pour stocker plusieurs valeurs dans une variable (i.e. les éléments des vecteurs dans ce cas)

-de manière générale une liste Python qui peut contenir des variables de différentes types, placées entre crochets [ ]

Page 35: Outils logiciels pour le traitement du signal et des image

2. Introduction à la programmation Python

- les listes Python sont par défaut indexées, tout en partant de 0.

-pour récupérer une valeur en particulier dans une liste, on doit préciser le nom de la liste suivi de l’indice de cette valeur entre crochets.