ATELIER : Apprentissage automatique et Machine Learning pour le traitement d’image avec OpenCV
Pour connaitre les prochaines sessions de formation en Logiciel embarque et programmation 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.
Objectifs : Pouvoir utiliser les techniques d’apprentissage automatiques fournies avec OpenCV
Programme
Première partie (4H) : Apprentissage automatique - Concepts fondamentaux
Nous allons commencer par voir quelques types de problèmes qui peuvent être traités avec les techniques d’apprentissage automatique supervisé, comment on peut formuler ces problèmes, et ce qu’on attend d’un système d’apprentissage.
- Notions de classification, régression. Exemples : régression linéaire, régression logistique.
- Évaluation d’un classifieur : Comment quantifier les performance d’un classifieur ? Notions de sensibilité (recall), spécificité, précision, matrice de confusion. Méthodologie de mesure (jeux d’apprentissage, validation, 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.
- Pré-traitements : Exemple de calcul de traits avec l’Analyse en Composantes Principales (ACP). API OpenCV.
- Travaux pratiques (1) : Classification sur une petite base de données (iris).
- Un classifieur plus complexe : SVM / machines à vecteurs de supports (avec noyaux RBF).
- Travaux pratiques (2) : Décodage de chiffres manuscrits (base de donnée MNIST, 60000 exemples).
Deuxième partie (3H) : Apprentissage profond - Généralités
Dans cette partie, nous allons faire un tour d’horizon de la technique appelée apprentissage profond (deep learning).
- Réseaux de neurones : structures classiquesCouche complétement connectée (affine), non linéarité (ReLU), normalisation, couches de sorties (logistique, softmax), fonctions de coûts (régression / MSE, distribution / Entropie croisée).
- Techniques d’apprentissage : Descente de gradient, propagation arrière, descente aléatoire (SGD).
- Travaux pratiques : Apprentissage sur l’exemple MNIST (avec traits ACP en entrée). 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.
Troisième partie (7H) : OpenCV & apprentissage profond pour le traitement d’images
Dans cette partie, nous appliquerons l’apprentissage profond 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 classiques pour la classification : Historique et évolution des réseaux : LeNet, AlexNet, VGG16, GoogleNet, ResNet, etc.
- Mise en œuvre avec OpenCV : API, exemples. Chargement de réseaux pré-entrainés.
- Travaux pratiques (1) : Classification avec un réseau pré-entrainé sur ImageNet.
- Détection (multi-classes) : Présentation des principaux algorithmes RCNN, SSD, YoLO. Exemple avec OpenCV.
- Détection avec pose : Algorithme OpenPose, exemples avec OpenCV (détection de personnes, mains).
- Apprentissage par transfert : Adaptation d’un réseau pré-entraine sur une nouvelle tâche.
- Quelques autres applications : Segmentation d’image (pixel par pixel), détection de contours, colorisation automatique, transfert de style, etc.
- Travaux pratiques (2) : Classification / apprentissage par transfert sur une petite base de données a partir d’un réseau pré-entrainé VGG19.
INFORMATIONS PRATIQUES
Public concerne : Ingénieurs en traitement du signal, informatique
Prérequis : Notions de base en traitement d’image, notions de C++
Matériel nécessaire pour suivre la formation : PC portable (Linux ou
Windows), avec un compilateur C++ (compatible C++14) et OpenCV installé (version minimum : 4.0.1). Un tutoriel d’installation Windows / Linux sera fourni aux participants préalablement a la formation.
Lieu :
CCI Nord Isère Parc Technologique
5 rue Condorcet
38 VILLEFONTAINE