You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+6-4
Original file line number
Diff line number
Diff line change
@@ -8,17 +8,19 @@ On retrouve une implémentation de l'algorithme ART dans `src/resolution.py`. To
8
8
Le coeur du projet consiste à étudier l'influence de différents paramètres de l'algorithme ART, qu'ils concernent la préparation des données de projection ou l'exécution de l'algorithme. Pour ce faire, j'ai successivement fait varié les paramètres ci-dessous, sur deux images : le "Shepp Logan phantom" (SLP), une image de test standard en tomographie, ainsi qu'une photo de mon lapin. Les images cibles sont disponibles dans `exemples/slp/` et `exemples/lapin/`, et les résultats des simulations se trouvent dans `simulations/`.
9
9
10
10
### Nombre de rayons
11
-
Le nombre `N_R` de rayons tracés pour reconstituer une image de taille `N_P` doit être de préférence tel que `N_R` > 0.2 * `N_P`. Ce n'est cependant pas forcément possible du fait de la mémoire vive limitée.
11
+
Le nombre `N_R` de rayons tracés pour reconstituer une image de taille `N_P` doit être de préférence tel que `N_R` > 0.2 * `N_P`. Ce n'est cependant pas forcément possible du fait de la mémoire vive limitée.
12
+
13
+
En pratique, de fortes contraintes physiques, notamment la radioactivité des rayons et leur largeur (non nulle), limitent fortement ce nombre de rayons.
12
14
13
15
### Image initiale utilisée
14
16
J'ai considéré quatre images initiales possibles : trois uniformes - une noire, une grise, une blanche - et une "approchée" disponible avec les images cibles (concrètement, l'image initiale est ici l'image cible fortement floutée avec Pillow).
15
17
16
18
Initialiser l'algorithme avec une image approchée de ce que l'on attend permet d'améliorer la précision de l'image reconstituée.
17
19
18
20
### Schéma d'accès des rayons
19
-
Le schéma d'accès des rayons est l'ordre dans lequel on considère les rayons. J'ai exploré deux options : soit on prend les rayons successivement dans l'ordre dans lequel ils ont été tracés, soit on les prend aléatoirement.
21
+
Le schéma d'accès des rayons est l'ordre dans lequel on considère les rayons. J'ai exploré trois options : soit on prend les rayons successivement dans l'ordre dans lequel ils ont été tracés, soit on les prend aléatoirement uniformémement, soit on les prend aléatoirement de manière pondérée (avec une probabilité égale à la norme de la ligne au carré sur la norme de la matrice au carré).
20
22
21
-
La première simulation, `simu_schema_acces` étudie le comportement asymptotique, après un grand nombre d'itérations de l'algorithme. La deuxième simulation, `simu_vitesse_cv_schema_acces` étudie l'influence du nombre d'itérations en fonction du schéma d'accès : le schéma aléatoire est théoriquement censé converger plus vite que le schéma successif, mais l'on n'observe pas ce phénomène ici.
23
+
La première simulation, `simu_schema_acces` étudie le comportement asymptotique, après un grand nombre d'itérations de l'algorithme. La deuxième simulation, `simu_vitesse_cv_schema_acces` étudie l'influence du nombre d'itérations en fonction du schéma d'accès : les schémas aléatoires convergent légèrement plus vite que le schéma successif, mais l'on n'observe aucune différence notable entre le schéma aléatoire et celui aléatoire pondéré (théoriquement meilleur).
22
24
23
25
### Nombre d'itérations
24
-
Il semble qu'itérer l'algorithme continue d'améliorer la précision de l'image reconstituée, même après un grand nombre de cycles réalisés (un cycle = `N_R` itérations de l'algorithme, où `N_R` est le nombre de rayons tracés). Il semblerait qu'il soit très rentable de réaliser au moins 40 cycles.
0 commit comments