ATELIER : Apprentissage automatique et Machine Learning pour le traitement d’image avec OpenCV
Pour connaitre les prochaines sessions de formation sur l’Intelligence Artificielle, cliquez ici
Durant cette formation, nous verrons comment associer les fonctions de traitement d’images fournies par la librairie OpenCV avec des techniques d’apprentissage automatique (- machine learning -) dans le but de réaliser des algorithmes de détection / classi-cation fonctionnant pour des objets complexes.
PROGRAMME
PREMIÈRE DEMI-JOURNÉE : Concepts fondamentaux de l’apprentissage automatique (M.L.)
Nous allons commencer par voir quelques types de problèmes qui peuvent être traités avec les techniques de M.L., comment on peut formuler ces problèmes, et ce qu’on attend d’un système d’apprentissage.
Notions de classi-cation, régression
Exemples : régression linéaire, régression logistique.
Evaluation d’un classifieur :
Comment quantifier les performances d’un classifieur ? Notions de sensibilité / spécificité, matrice de confusion, MSE.
Méthodologie de mesure (jeux d’apprentissage / jeux de test).
Exemple de classifieur trivial :
K plus proche voisins.
Problèmes de sous / sur-apprentissage :
Pouvoir de représentation d’un modèle, capacité de généralisation.
Un classifieur plus complexe :
SVM / machines à vecteurs de supports (avec noyaux RBF).
Apprentissage non supervisé :
Segmentation K-means. Modèle GMM (Gaussian Mixture Model) et algorithme EM (Expectation Maximization).
Méthodes d’apprentissages hybrides.
Travaux pratiques :
Exemples simples [ADU], à traiter avec le module ML d’OpenCV.
DEUXIÈME DEMI-JOURNÉE : M.L. & Traitement d’image
Durant cette après-midi, nous allons nous essayer de mettre en pratique les concepts génériques de ML vu le matin sur un problème classique de traitement d’image.
Approche traditionnelle :
Calculs de traits + ML
Exemples de traits :
ACP (Analyse en Composantes Principales), HOG (Histogram of Oriented
Gradient), LBP (Local Binary Patterns), etc.
Travaux pratiques :
Décodage de chiffres manuscrits (base de données MNIST), avec différentes techniques. L’objectif est d’avoir une bonne intuition des avantages / inconvénients de chacune (temps d’apprentissage, temps d’exécution, capacité de généralisation, etc.).
TROISIÈME DEMI-JOURNÉE : Apprentissage profond (D.L.) - Généralités
Durant cette matinée, nous allons faire un tour d’horizon de la technologie appelée Deep Learning.
Réseaux de neurones classiques :
Définition du perceptron, les fonctions d’activation classiques (sigmoide, ReLu, etc.). Apprentissage MSE par descente de gradient.
Fonctions de coûts :
Les différentes fonctions de coût suivant l’objectif (régression / MSE, classi-cation / softmax), etc.
Appr. sur des grandes bases de données :
Descente de gradient aléatoire (SGD / Stochastic Gradient Descent), batchs, inertie, etc.
Techniques de régularisation :
Régularition L2, dropout, augmentation de la base d’entraînement.
Travaux pratiques :
Apprentissage sur des exemples simples [ADU]. Visualisation de l’évolution des coefficients / de l’erreur. Réglages des paramètres. Le but est d’en retirer une bonne intuition sur les différents concepts et paramètres.
QUATRIÈME DEMI-JOURNÉE : Apprentissage profond - Mise en pratique avec OpenCV
Durant cet après-midi, nous allons essayer d’appliquer le D.L. au traitement d’image, en utilisant OpenCV.
Réseaux convolutifs :
Rappel sur le produit de convolution, spécificités dans le cadre des réseaux de neurones.
Réseaux pré-entrainés sous OpenCV :
Blob detector, etc [ADU].
Apprentissage par transfert :
Adaptation d’un réseau pré entrainé sur une nouvelle tâche.
Présentation de la librairie TinyDNN (librairie très facile d’utilisation pour le DL en C++ :
Aucune installation requise, aucune dépendance, code très lisible).
Travaux pratiques :
Détecteur générique de [ADU] sur des photos (exemple pré-traitements avec OpenCV, premières couches d’un réseau pré-entrainé (ex. AlexNet), apprentissage par transfert (ex. tinyDNN).
Perspective :
Limites des réseaux profonds classiques pour le traitement d’image et présentation d’un domaine prometteur, les réseaux de capsules.
INFORMATIONS PRATIQUES
Public visé et prérequis :
- Ingénieurs en traitement du signal, informatique
- Notions de base en traitement d’image, notions de C++
Date et lieu :
- Du 16 et 17 octobre 2019 de 09h00 à 12h30 et de 13h30 à 17h00
- LAAS/CNRS - 7 avenue Colonel Roche - 31000 TOULOUSE