La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Traitement d’images sur carte 3D

Présentations similaires


Présentation au sujet: "Traitement d’images sur carte 3D"— Transcription de la présentation:

1 Traitement d’images sur carte 3D
Application temps réel de filtres sur cartes 3D évoluées

2 Traitement d’images sur carte 3D
Introduction I - Calculs sur cartes 3D II - Réalisation III - Applications Conclusion Xavier LEMAITRE DESS RSI - Traitement d'Images

3 DESS RSI - Traitement d'Images
Introduction Traitement numérique d’images calculs sur nombreux pixels Cartes 3D performantes pour calculs sur textures, buffers Augmentation de leur puissance de calcul > loi de Moore Xavier LEMAITRE DESS RSI - Traitement d'Images

4 DESS RSI - Traitement d'Images
I – Calculs sur cartes 3D Carte graphique = machine de calculs parallèles Xavier LEMAITRE DESS RSI - Traitement d'Images

5 DESS RSI - Traitement d'Images
I – Calculs sur cartes 3D Flexibilité d’utilisation du GPU pour calculs sur cartes graphiques récentes (depuis 2001) 2 unités de traitement à notre disposition Vertex Shader Pixel Shader Xavier LEMAITRE DESS RSI - Traitement d'Images

6 DESS RSI - Traitement d'Images
I – Calculs sur cartes 3D Pour traitement d’images: Utilisation du Pixel Shader TEXTURE Figure - Les unités de traitement avec leur paramètres d’entrée Xavier LEMAITRE DESS RSI - Traitement d'Images

7 DESS RSI - Traitement d'Images
I – Calculs sur cartes 3D Exploitation de la carte 3D par API 3D: Direct3D de Microsoft OpenGL Exploitation des Shader Units par langages: Shading Assembler Cg « C for graphics » de nVidia HLSL « High Level Shading Language » Microsoft GLSL « OpenGL Shading Language » Xavier LEMAITRE DESS RSI - Traitement d'Images

8 DESS RSI - Traitement d'Images
II - Réalisation Création de deux bibliothèques xlGraphics: Encapsulation des API 3D (Direct3D 9) xlImage: Basé sur xlGraphics Fournit des classes et fonctions pour T.I. Permet le traitement numérique d’images sur carte 3D Xavier LEMAITRE DESS RSI - Traitement d'Images

9 DESS RSI - Traitement d'Images
II - Réalisation xlGraphics Création d’une fenêtre de rendu xlImage Gestion des images Définition d’un pipeline des opérations à effectuer sur une image Xavier LEMAITRE DESS RSI - Traitement d'Images

10 DESS RSI - Traitement d'Images
II - Réalisation xlImage : classes d’opération SourceOperator D3D9LoadImage FilterOperator D3D9Filter D3D9SeparableFilter D3D9IterativeFilter OutputOperator D3D9View Xavier LEMAITRE DESS RSI - Traitement d'Images

11 DESS RSI - Traitement d'Images
II - Réalisation xlImage : diagramme des classes Xavier LEMAITRE DESS RSI - Traitement d'Images

12 DESS RSI - Traitement d'Images
III - Applications Ecriture des filtres en HLSL Un filtre = une ou plusieurs passes de rendu Pour chaque passe de rendu : 1 « Pixel Shader » Xavier LEMAITRE DESS RSI - Traitement d'Images

13 DESS RSI - Traitement d'Images
III - Application Filtres classiques Uniforme Médian Gaussienne Filtre moyenne 3x3 Image bruitée Image originale Xavier LEMAITRE DESS RSI - Traitement d'Images

14 DESS RSI - Traitement d'Images
III - Applications Filtre d’approximation médian (3x3) Explications Valeur milieu sur chaque ligne Valeur milieu sur la colonne obtenue Xavier LEMAITRE DESS RSI - Traitement d'Images

15 DESS RSI - Traitement d'Images
III - Applications Filtre d’approximation médian Algorithme : 1ère passe Pass1Median () Debut Si Pixel ( x-1 ) < Pixel ( x ) Alors Si Pixel ( x ) < Pixel ( x+1 ) Retourner Pixel ( x ) ; Sinon Retourner max ( Pixel ( x-1 ), Pixel ( x+1 ) ) ; FinSi Si Pixel ( x-1 ) < Pixel ( x+1 ) Retourner Pixel ( x-1 ) ; Retourner max ( Pixel ( x ), Pixel ( x+1 ) ) ; Fin Xavier LEMAITRE DESS RSI - Traitement d'Images

16 DESS RSI - Traitement d'Images
III - Applications Filtre d’approximation médian Algorithme : 2ème passe Pass2Median () Debut Si Pixel ( y-1 ) < Pixel ( y ) Alors Si Pixel ( y ) < Pixel ( y+1 ) Retourner Pixel ( y ) ; Sinon Retourner max ( Pixel ( y-1 ), Pixel ( y+1 ) ) ; FinSi Si Pixel ( y-1 ) < Pixel ( y+1 ) Retourner Pixel ( y-1 ) ; Retourner max ( Pixel ( y ), Pixel ( y+1 ) ) ; Fin Xavier LEMAITRE DESS RSI - Traitement d'Images

17 DESS RSI - Traitement d'Images
III - Applications Filtre d’approximation médian (3x3) Résultats Image bruitée Filtre d’approximation médian 3x3 Xavier LEMAITRE DESS RSI - Traitement d'Images

18 DESS RSI - Traitement d'Images
III - Applications Filtre de Kuwahara (5x5) Explications Calcul moyenne et variance dans sous-région La moyenne avec variance min est choisie Xavier LEMAITRE DESS RSI - Traitement d'Images

19 DESS RSI - Traitement d'Images
III - Applications Filtre de Kuwahara Algorithme : 1ère passe Debut Pour i de -1 à 1 Faire Pour j de -1 à 1 Cumul += Pixel ( x+i, y+j ) ; FinPour Moyenne = Cumul * Poids ; Cumul += Pixel ( x+i, y+j )  - Moyenne; Variance = dot_product (Cumul, Poids.xxx); Retourner flottant4( Moyenne, Variance ); Fin Pass1Kuwahara () Initialisation Moyenne : flottant3 = 0.0 ; Cumul : flottant3 = 0.0 ; Variance : flottant = 0.0 ; Poids : flottant = 1.0 / 9.0 ; FinInitialisation Xavier LEMAITRE DESS RSI - Traitement d'Images

20 DESS RSI - Traitement d'Images
III - Applications Filtre de Kuwahara Algorithme: 2ème passe Pass2Kuwahara () Debut Retourner TrouveMoyennePourMinVariance ( Pixel ( x-1, y-1 ), Pixel ( x+1, y-1), Pixel ( x-1, y+1 ), Pixel ( x+1, y+1 ) ) ; Fin Xavier LEMAITRE DESS RSI - Traitement d'Images

21 DESS RSI - Traitement d'Images
III - Applications Filtre de Kuwahara 5x5 Résultats 1 itération 3 itérations 5 itérations Xavier LEMAITRE DESS RSI - Traitement d'Images

22 DESS RSI - Traitement d'Images
III - Applications Filtre de diffusion anisotrope Algorithme : 1ère passe Pass1Krissian98v2 () Initialisation Sortie : flottant4 ; Gradient : flottant2 ; FinInitialisation Begin Gradient.x = Pixel ( x+1, y ) – Pixel ( x-1, y ) ; Gradient.y = Pixel ( x, y+1 ) – Pixel ( x, y-1 ) ; Sortie.r = Pixel ( x, y ) ; // luminance Sortie.g = Gradient.x ; // gradient en x Sortie.b = Gradient.y ; // gradient en y Gradient /= 2.0 ; Sortie.a = PeronaMalik1 ( Gradient.x * Gradient.x + Gradient.y * Gradient.y ) ; Retourner Sortie ; End Xavier LEMAITRE DESS RSI - Traitement d'Images

23 DESS RSI - Traitement d'Images
III - Applications Filtre de diffusion anisotrope Algorithme : 2ème passe Pass2Krissian98v2 () Initialisation DT : flottant = 0.25 ; DeltaX : flottant ; DeltaY : flottant ; DeltaImage : flottant ; FinInitialisation Begin DeltaX = Pixel ( x+1, y ).a * Pixel ( x+1, y).g  – Pixel ( x-1, y ).a * Pixel ( x-1, y ).g ; DeltaY = Pixel ( x, y+1 ).a * Pixel ( x, y+1).b  – Pixel ( x, y-1 ).a * Pixel ( x, y-1 ).b ; DeltaImage = DeltaX + DeltaY ; Retourner flottant4 ( ( Pixel ( x, y ).r + DT * DeltaImage ).xxx, 0.0 ) ; End Xavier LEMAITRE DESS RSI - Traitement d'Images

24 DESS RSI - Traitement d'Images
III - Applications Filtre de diffusion anisotrope Résultats: fonction de diffusion de Perona-Malik 1 dt = 0.25 et K = 0.05 50 itérations 100 itérations 150 itérations Xavier LEMAITRE DESS RSI - Traitement d'Images

25 DESS RSI - Traitement d'Images
III - Applications Filtre de diffusion anisotrope Résultats: fonction de diffusion de Perona-Malik 2 dt = 0.25 et K = 0.022 50 itérations 100 itérations 150 itérations Xavier LEMAITRE DESS RSI - Traitement d'Images

26 DESS RSI - Traitement d'Images
III - Applications Filtre de diffusion anisotrope Résultats: fonction de diffusion de Weickert dt = 0.25 et K = 0.04 50 itérations 100 itérations 150 itérations Xavier LEMAITRE DESS RSI - Traitement d'Images

27 DESS RSI - Traitement d'Images
III - Applications Filtre de diffusion anisotrope Résultats: fonction de diffusion de Geman-Reynolds dt = 0.25 et K = 5 50 itérations 100 itérations 150 itérations Xavier LEMAITRE DESS RSI - Traitement d'Images

28 DESS RSI - Traitement d'Images
Conclusion Le traitement numérique d’images sur carte 3D c’est possible Comparer les mêmes algorithmes sur CPU Xavier LEMAITRE DESS RSI - Traitement d'Images


Télécharger ppt "Traitement d’images sur carte 3D"

Présentations similaires


Annonces Google