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 Application temps réel de filtres sur cartes 3D évoluées.

Présentations similaires


Présentation au sujet: "Traitement d’images sur carte 3D Application temps réel de filtres sur cartes 3D évoluées."— Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20 Xavier LEMAITRE 20DESS RSI - Traitement d'Images III - Applications Filtre de Kuwahara Filtre de Kuwahara Algorithme: 2 ème passe 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

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

22 Xavier LEMAITRE 22DESS RSI - Traitement d'Images III - Applications Filtre de diffusion anisotrope Filtre de diffusion anisotrope Algorithme : 1 ère passe 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

23 Xavier LEMAITRE 23DESS RSI - Traitement d'Images III - Applications Filtre de diffusion anisotrope Filtre de diffusion anisotrope Algorithme : 2 ème passe 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

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

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

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

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

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


Télécharger ppt "Traitement d’images sur carte 3D Application temps réel de filtres sur cartes 3D évoluées."

Présentations similaires


Annonces Google