« Discussion utilisateur:Fdufaure » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
(Page blanchie) |
||
Ligne 1 : | Ligne 1 : | ||
== 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 [[https://www.lama.univ-savoie.fr/mediawiki/index.php/Transport_optimal_par_coupe_1D_et_transfert_de_couleurs_entre_images 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.<br/> |
|||
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.<br/> |
|||
=== Quelques statistiques sur les temps de calculs de l'ancien programme === |
|||
{| class="wikitable" |
|||
| ''' Taille de l'image ''' <br/>(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.<br/> |
|||
C'est une bonne valeur de référence pour avoir assez de tests pour trouver un bon vecteur pour le transfert de couleur<br/><br/> |
|||
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.<br/> |
|||
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) |