Traitement d'image avec OpenCV

Découvrez OpenCV, le logiciel libre de référence pour le traitement d'image. Avec cette librairie, 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.

Objectif de la formation

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 pratique immédiatement les algorithmes abordés sur des exemple concrets.

Durée de la formation

Deux jours

Date et lieu de la formation

Lieu : Toulouse, date : sur demande.

Inscription

Formulaire d'inscription disponible ici.

Contenu

I - INTRODUCTION A 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)
  • Entrées / sorties (lecture / écriture d'images, de fichiers vidéo, accès à une webcam)
  • Interface utilisateur (affichage d'images, de vidéos)
  • Espaces de couleur (BVR, TSV, etc)
  • Opérations élémentaires sur les images (extraction de zones d'intérêt, normalisation, redimensionnement, seuillage, ...)
  • 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

II - TRAITEMENTS D'IMAGE
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, gaussien, filtres bilatéraux, médian, etc.)
  • Dérivation (calcul du gradient / Laplacien)
  • Opérations morphologiques (dilation, érosion) et applications (segmentation simple, ...)
  • Détection de contours
  • Recherche de formes géométriques (transformée de Hough lignes / cercles)

III - DETECTION D'OBJETS
Cette partie sera consacrée à quelques techniques modernes pour la détections des objets : détecteurs à base de cascade, et calcul de points d'intérêt.

  • Détection d'objets génériques (détecteur en cascade / algorithme de Viola-Jones), détection de visages
  • Mise en correspondance d'éléments spécifiques (description et avantages / inconvénients de quelques algorithmes : SIFT, SURF, ORB, etc.), exemple d'application : réalisation de panoramas
  • Classification d'images (algorithme BOW)

IV - TRAITEMENTS VIDEO
Nous aborderons dans cette partie quelques techniques classiques pour le traitement de flux vidéo, afin de détecter des objets en premier-plan, et de calculer leur vitesse.

  • Soustraction d'arrière-plan
  • Segmentation et suivi des objets en mouvement
  • Calcul de flux optique (Luca-Kanade, simple flow, etc.)

V - VISION 3D
Dans cette partie, nous verrons comment corriger facilement les distortions d'une caméra avec OpenCV, et comment faire le lien entre une représentation à 2 dimensions (écran) et le monde en 3 dimension.

  • Modèle de caméra (pinhole) et représentation matricielle
  • Calibration automatique de caméra
  • Calcul d'homographie
  • Vision stéréo

VI - QUELQUES AUTRES FONCTIONS (APERCU)
Enfin, nous ferons un petit tour d'horizon de quelques autres fonctions utiles incluses dans OpenCV.

  • Aperçu des fonctions OpenCV 3.0
  • Apprentissage automatique
  • Modules spécialisés : amélioration de la résolution (d'après le flux optique), réalisation de panoramas, traitement de photos
  • Accélération des calculs avec le GPU (API transparente)


Travaux pratiques

Tout au long de l'atelier l'ensemble des points abordés sera illustré par des exemples et de petits exercices en C++ / OpenCV qui vous permettront de mettre en oeuvre directement les notions abordées.