Discussion utilisateur:Fdufaure

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche

Modification de Transport optimal par coupe 1D et transfert de couleurs entre images avec numpy

Le but de ce projet est une amélioration de la version proposé par [Lucas Chardonnet] en ajoutant des fonctionnalitées. La plus importante étant la bibliothèque numpy afin d'accélérer la vitesse d'exécution du programme.
Afin de comprendre correctement cette page je vous invite tout d'abord à vous rendre sur la page de la première version de ce sujet (le lien précédant) et bien comprendre le fonctionnement du programme et son but.

Quelles était les limites de l'ancien programme

Le programme précédant fonctionner très bien et donnait de bon rendu, néanmoins il mettait un temps relativement long pour effectuer les calculs, ce qui devient problématique si on veut faire un transfert de couleurs entre 2 images avec un grand nombres de pixels.

Quelques statistiques sur les temps de calculs de l'ancien programme

Taille de l'image
(en pixel)
720x576 1280x720 1920x1080 3840x2160
Temps d’exécution du programme ~48sec ~2min25 ~5min30 ~20min25

A noter que ces tests ont été réalisé avec un nombre de répétition de 20 dans le programme.
C'est une bonne valeur de référence pour avoir assez de tests pour trouver un bon vecteur pour le transfert de couleur

On remarque par ces chiffre que lorsqu'on transfert des images de petites résolution, le temps de transfert reste tout à fait correct, ,néanmoins dès que l'on va vouloir prendre des images des résolution plus importante (HD ou même 4K) le temps d'exécution devient bien plus important.

En effet l'ancien programme comporte bon nombre de boucle for , la machine doit donc faire quelques centaines de milliers de boucle. Cela semble très simple pour nos processeurs qui sont capables d'en faire un milliard de calculs par seconde mais python est un langage interprété, ce qui rajoute un temps de calcul non négligeable (comme on peut le voir par les valeurs dans le tableau)