1 Estimation temps réel du flot optique Julien MARZAT 3A – ISA CPDS Tuteur ENSEM:Didier WOLF Tuteur INRIA :André DUCROT
2 Plan de la présentation Cadre du stage L'INRIA, IMARA Contexte de l'étude Cahier des charges Le Flot optique Définitions Équation de conservation de la luminance Approches retenues Horn & Schunck Lucas & Kanade Block Matching
3 Plan de la présentation Tests Affichage du flot optique Résultats pour les approches retenues Description de l'algorithme final Implémentation parallèle CUDA Parallélisation de l'algorithme Optimisations Résultats finaux Conclusion
4 Cadre du stage INRIA : 8 centres de recherche, budget 186 M€. 600 personnes à Rocquencourt IMARA : équipe-projet pluridisciplinaire pour l'amélioration du transport routier CyCab
5 Contexte de l'étude Processus de détection d'obstacles en vision monoculaire Plan de la route et obstacles
6 Cahier des charges Flot dense Deux images successives Estimation précise subpixelique Minimum de filtrage et de paramètres à régler Algorithme parallélisable Implémentation temps réel 10 Hz minimum
7 Le Flot optique : définitions Mouvement image : projection du mouvement 3D réel dans le plan 2D de l'image. Flot optique : champ des vitesses mesuré à partir des variations de la luminance. Exemple simple : rotation pure Notations : - (x,y) coordonnées d'un pixel dans l'image - (vx,vy) vitesse dans le plan de l'image. -
8 Equation de conservation de la luminance L'intensité lumineuse se conserve entre deux images successives : Soit l'équation du flot optique : puis Cela s'écrit sous forme différentielle : 1 équation, 2 inconnues : problème inverse, mal posé
9 Améliorations applicables à toute méthode Raffinement itératif : rééxecution du calcul à la même échelle Implémentation pyramidale : rééxecution du calcul à une échelle différente
10 Méthode de Horn & Schunck Méthode variationnelle globale Minimisation sur toute l'image de la fonctionnelle : 2 termes : Equation du flot optiquecontrainte sur le gradient des vitesses Poids de la contrainte de continuité Résultats attendus:- Flot dense - Résultat lisse et sensible au bruit - difficulté de réglage de α Parallélisation : - estimation pour chaque pixel calculée séparément - résolution itérative de la minimisation
11 Méthode de Lucas & Kanade Méthode variationnelle locale Minimisation sur un patch Ω de la fonctionnelle : Résultats attendus:- Flot dense - Réglage de la taille du patch - implémentation pyramidale Parallélisation : - estimation pour chaque pixel calculée séparément Résolution par moindres carrés : +
12 Block Matching Critères de corrélation : Patch et zone de recherche Résultats attendus:- Flot dense (si calcul pour chaque pixel) - Réglage de la taille du patch et de la zone de recherche - résultat non subpixelique Parallélisation : - estimation pour chaque pixel calculée séparément
13 Tests : affichage du flot optique Affichage des résultats : Colormap Champ de vecteurs (un point sur dix) Retour sur l'exemple : Séquence Flot vecteur Flot colormap
14 Tests : images tests et référence Séquence test réelle : résolution : 640x480 Séquence synthétique de référence: (Yosemite) Référence : Résultats OpenCV sur les deux séquences Séquence réelle Yosemite
15 Tests : résultats sur la séquence réelle Horn & Schunck Lucas & Kanade Block Matching Rappel : référence
16 Tests : résultats sur Yosemite Horn & Schunck AAE = 2,61° Lucas & Kanade AAE = 2,13° Block Matching AAE = 4,50° Rappel : référence AAE = 0,00°
17 Tests : tableau récapitulatif Approche finalement retenue : Lucas & Kanade avec implémentation pyramidale et raffinement itératif
18 Description de l'algorithme final Implémentation pyramidale de Lucas & Kanade :
19 Réglages des paramètres Paramètres retenus : Taille de patch = 10 x 10 Nombre d'itérations de raffinement = 3 à 4 Nombre de niveaux de pyramide = 3 à 4
20 GPU Performances des GPUs et des CPUs pour les calculs en virgule flottante GPU : Graphics Processing Unit : architecture SIMD Tesla 8 multiprocesseurs 128 processeurs
21 CUDA Compute Unified Device Architecture Contraintes mémoire :
22 Parallélisation de l'algorithme PARALLELISABLE
23 Optimisations Le profiler permet de vérifier l'enchaînement des kernels et les temps d'exécution Occupation : Exemple kernel smem = 36 registres = 13
24 Résultat final Temps d'exécution = 67 millisecondes, soit 14,9 estimations par seconde Sur la séquence route : Rappel affichage des vitesses : colormap et équivalent vecteurs
25 Démo temps réel
26 Conclusion État de l'art du flot optique Comparatif des méthodes d'estimation Apprentissage d'une nouvelle architecture Programmation C/CUDA Projet de recherche complet CUDA Zone Merci de votre attention