Traitement d’image avec OpenCV
Pour connaitre les prochaines sessions de formation sur l’Intelligence Artificielle, cliquez ici
L’objectif de cette formation est  de savoir utiliser OpenCV pour le traitement d’image et comprendre les concepts et algorithmes sous-jacents. Pour ce faire, la formation alternera présentations théoriques et travaux pratiques où les participants pourront mettre en oeuvre immédiatement les algorithmes abordés sur des exemples concrets.
 
			
OpenCV est la librairie de référence pour le traitement d’image. Avec cette librairie de licence open source, vous avez la possibilité d’effectuer des opérations simples sur les images (contraste, rotations, etc.) et les vidéos (estimation de mouvement) mais aussi des opérations complexes comme la détection de formes géométriques, d’objets et de visages, la reconstruction d’une scène en 3 dimensions, et de nombreuses autres fonctions.
PROGRAMME
JOUR 1 : 9h-18h
1- Introduction à OpenCV  
Durant cette première partie, vous allez pouvoir vous familiariser avec les fonctions essentielles d’OpenCV pour traiter des images ou des vidéos.
 Types de base : Images (matrices), points, rectangles
 Types de base : Images (matrices), points, rectangles
 Entrées / sorties : Lecture / Ecriture d’images / de fichiers vidéo
 Entrées / sorties : Lecture / Ecriture d’images / de fichiers vidéo
 Interface utilisateur : Affichage d’images / de vidéos, gestion clavier/souris, boutons
 Interface utilisateur : Affichage d’images / de vidéos, gestion clavier/souris, boutons
 Opérations élémentaires sur les images :
 Opérations élémentaires sur les images :
 Conversion d’espaces de couleur, zone d’intérêt, redimensionnement, normalisation
 Conversion d’espaces de couleur, zone d’intérêt, redimensionnement, normalisation
 Fonctions de dessin : cercles, texte, lignes, etc.
 Fonctions de dessin : cercles, texte, lignes, etc.
 Travaux pratiques : utilisation de la classe Mat, détection d’objets d’après leur teinte, manipulation de zones d’intérêt et de masques
 Travaux pratiques : utilisation de la classe Mat, détection d’objets d’après leur teinte, manipulation de zones d’intérêt et de masques
2- Traitement d’images
Durant cette deuxième partie, nous allons voir comment utiliser les techniques classiques de traitement d’image avec OpenCV.
 Filtrage : Notion de filtre séparable, filtres à moyenne mobile, gaussiens (pyramide gaussienne),  filtres bilatéraux, médians
 Filtrage : Notion de filtre séparable, filtres à moyenne mobile, gaussiens (pyramide gaussienne),  filtres bilatéraux, médians
 Dérivation : Calcul du gradient (Sobel, Scharr) / Laplacien
 Dérivation : Calcul du gradient (Sobel, Scharr) / Laplacien
 Opérations morphologiques : Dilatation, érosion.
 Opérations morphologiques : Dilatation, érosion.
 Exemples d’applications : Recherche de contours : détecteur de Canny, séparation des contours (segmentation)
 Exemples d’applications : Recherche de contours : détecteur de Canny, séparation des contours (segmentation)
Recherche de formes géométriques : Transformée de Hough (lignes, cercles)
3- Détections d’objets
Dans cette partie, nous verrons dans un premier temps quelques techniques pour identifier des objets génériques (visages, voitures, personnes, etc.), et dans un deuxième temps nous verrons quelques méthodes permettant de mettre en correspondance des éléments spécifiques d’une image à l’autre (et ce indépendamment de l’orientation et de l’échelle).
 Détection d’objets génériques : Détecteurs en cascade de Viola / Jones, détection de visages
 Détection d’objets génériques : Détecteurs en cascade de Viola / Jones, détection de visages
 Mise en correspondance d’éléments spécifiques API générique OpenCV
 Mise en correspondance d’éléments spécifiques API générique OpenCV 
 Utilisation des classes FeatureDetector, KeyPoint, etc.
 Utilisation des classes FeatureDetector, KeyPoint, etc.
 Description des différents algorithmes, avantages et inconvénients : SIFT (Scale Invariant Feature Transform), SURF, FAST, ORB, etc.
 Description des différents algorithmes, avantages et inconvénients : SIFT (Scale Invariant Feature Transform), SURF, FAST, ORB, etc.
 Exemple d’application Réalisation de panoramas (« stitching »)
 Exemple d’application Réalisation de panoramas (« stitching »)
 Classification BOW (Bag of visual words)
 Classification BOW (Bag of visual words)
JOUR 2 et 3 : 9h-18h
4- Traitement Vidéo  
Dans cette partie, nous verrons quelques algorithmes spécifiques aux flux.
 Soustraction d’arrière-plan
 Soustraction d’arrière-plan
 Segmentation d’image d’après les mouvements
 Segmentation d’image d’après les mouvements
 Flux optique : Problématique et présentation de différents algorithmes (Lucas-Kanade, Gunnar Farneback’s, « simple-ow », « dual TV L1 » implémentation avec OpenCV.
 Flux optique : Problématique et présentation de différents algorithmes (Lucas-Kanade, Gunnar Farneback’s, « simple-ow », « dual TV L1 » implémentation avec OpenCV.
5- Reconstruction 3D
Ici, nous étudierons différents algorithmes relatifs à la mise en correspondance des images acquises (en 2 dimensions) avec l’environnement réel (en 3 dimensions).
Modèles de caméra modèle pin-hole, représentation matricielle
Calibration automatique de caméra, Calcul d’homographie, Vision stéréo
6-Aperçu des autres fonctionnalités d’OpenCV
Enfin nous ferons un petit tour d’horizon de quelques autres fonctions utiles incluses dans OpenCV.
 OpenCV 3.0 : Aperçu sur les nouvelles fonctions et changements d’API
 OpenCV 3.0 : Aperçu sur les nouvelles fonctions et changements d’API
 Apprentissage automatique.
 Apprentissage automatique.
 Modules spécialisées : amélioration de la résolution
 Modules spécialisées : amélioration de la résolution 
 Accélération des calculs avec le GPU (API transparente)
 Accélération des calculs avec le GPU (API transparente)
TRAVAUX PRATIQUES : tout au long de l’atelier, l’ensemble des points abordés seront illustrés par des exemples.
Objectifs
Savoir utiliser Open CV pour le traitement d’image
Comprendre les concepts et algorithmes sous-jacents
Public visé :
Tout public avec des notions en langage C++
Prérequis :
Notions en traitement d’image, notions de base en C++
Installation :
Chaque participant apportera un PC portable, sous Windows ou Linux, avec une chaine de compilation C++ fonctionnelle et avec OpenCV (version >= 3.0) installé et fonctionnel. L’environnement de développement est au choix du participant (Eclipse, Visual Studio, etc.), pourvu qu’OpenCV marche bien. Un tutoriel d’installation est fourni pour les configurations suivantes (lien : http://www.tsdconseil.fr/tutos/tuto-opencv-install.pdf) :
 Windows + MINGW + Eclipse
 Windows + MINGW + Eclipse
 Linux + Makefile (ou Linux + Eclipse)
 Linux + Makefile (ou Linux + Eclipse)
En cas de doute, l’environnement recommandé est "Windows + Mingw + Eclipse" (page 4, section 2.1 du tutoriel). Pour l’installation des différents outils, il suffit de suivre toutes les étapes jusqu’à l’étape 4-(h) page 6 du tutoriel.
INFORMATIONS PRATIQUES
Lieu : 
Maison de la Salle 
78 Rue de Sèvres
75006 Paris
Participation aux frais :
 Prix préférentiel pour les PME adhérentes CAP’TRONIC : 1350 € HT
 Prix préférentiel pour les PME adhérentes CAP’TRONIC : 1350 € HT
 Pour les grandes entreprises et les PME qui ne souhaitent pas adhérer : 1800 € HT.
 Pour les grandes entreprises et les PME qui ne souhaitent pas adhérer : 1800 € HT.
Si vous êtes une PME non adhérente :  
Vous pouvez adhérer à l’association JESSICA France. Pour cela contacter Florence CAGNARD
Modalités d’adhésion
Remarque :  Jessica France est titulaire d’un numéro d’agrément de formation continue et est référencé DATADOCK depuis le 1er juillet 2017. Cette formation est éligible au financement par votre Opérateur de Compétences (OPCO) hors CPF.

 
                    