SyneRBI / PETRIC

PET Image Reconstruction Challenge 2024
https://www.ccpsynerbi.ac.uk/events/petric/
2 stars 2 forks source link

update ISTA step-size #39

Closed KrisThielemans closed 1 week ago

KrisThielemans commented 1 week ago

set to .1 due to preconditioner

KrisThielemans commented 1 week ago

I'm going to merge this. it should work, and we'll see what happens.

casperdcl commented 1 week ago

https://petric.tomography.stfc.ac.uk/leaderboard/#images&regexInput=Casper looks odd.

Generally very concerned about zero-trapping from using initial=OSEM_image.

KrisThielemans commented 1 week ago

https://petric.tomography.stfc.ac.uk/leaderboard/#images&regexInput=Casper looks odd.

  • NEMA ISTA: phantom slowly disappears

my guess is that the step-size for ISTA should decrease over iterations

  • Hoffman ISTA & BSREM: brain rotates

this is very weird. Possibly I generated the OSEM image with a different version, although I cannot imagine how this can happen. Luckily, the image does get sharper over iterations, so it seems a problem with the OSEM, not with the final set-up.

  • Vision BSREM: too slow to even reach 10 iterations before timeout

The default timeout is 300s. I see that on my machine I get about 6s per update. Not sure what's going on therefore. Possibly the start-up takes a bit long (but shouldn't be measured).

  • Vision ISTA: artefacts around FOV

right. if it's not an ISTA problem, it could be a problem with either the Siemens background estimate, or something that I don't know... Could solve presumably solve it by cropping (like I did for the mMR). Would have to be done soon.

Generally very concerned about zero-trapping from using initial=OSEM_image.

No idea what you're talking about.

For discussion tomorrow.

KrisThielemans commented 1 week ago

I see we're using sequential views for the subsets in the example BSREM and ISTA code. That could cause some apparent rotation in the beginning.

KrisThielemans commented 1 week ago

Timings of Vision files

$ ls -rt --full-time /opt/runner/logs/Casper/BSREM/Vision600_thorax/
...
-rw-r--r-- 1 ubuntu runner01        0 2024-07-08 14:02:44.991326383 +0000 warnings.txt
-rw-r--r-- 1 ubuntu runner01        0 2024-07-08 14:02:44.991326383 +0000 info.txt
-rw-r--r-- 1 ubuntu runner01        0 2024-07-08 14:02:44.991326383 +0000 errors.txt
-rw-r--r-- 1 ubuntu runner01 17036800 2024-07-08 14:06:39.464458813 +0000 iter_0000.v
-rw-r--r-- 1 ubuntu runner01      925 2024-07-08 14:06:39.464458813 +0000 iter_0000.hv
-rw-r--r-- 1 ubuntu runner01      581 2024-07-08 14:06:39.464458813 +0000 iter_0000.ahv
-rw-r--r-- 1 ubuntu runner01    18150 2024-07-08 14:08:20.599210813 +0000 events.out.tfevents.1720446732.8eea81c8f9a8
-rw-r--r-- 1 ubuntu runner01       43 2024-07-08 14:08:21.063205075 +0000 objectives.csv

so about 236s start-time (including sensitivity calculation).

for ISTA

$ ls-rt  --full-time /opt/runner/logs/Casper/ISTA/Vision600_thorax/
...
-rw-r--r-- 1 ubuntu runner01        0 2024-07-08 13:46:34.559542499 +0000 warnings.txt
-rw-r--r-- 1 ubuntu runner01        0 2024-07-08 13:46:34.559542499 +0000 info.txt
-rw-r--r-- 1 ubuntu runner01        0 2024-07-08 13:46:34.559542499 +0000 errors.txt
-rw-r--r-- 1 ubuntu runner01 17036800 2024-07-08 13:49:32.061276908 +0000 iter_0000.v
-rw-r--r-- 1 ubuntu runner01      925 2024-07-08 13:49:32.061276908 +0000 iter_0000.hv
-rw-r--r-- 1 ubuntu runner01      580 2024-07-08 13:49:32.061276908 +0000 iter_0000.ahv
-rw-r--r-- 1 ubuntu runner01 17036800 2024-07-08 13:51:02.300126320 +0000 iter_0010.v
-rw-r--r-- 1 ubuntu runner01      925 2024-07-08 13:51:02.300126320 +0000 iter_0010.hv
-rw-r--r-- 1 ubuntu runner01      580 2024-07-08 13:51:02.300126320 +0000 iter_0010.ahv
-rw-r--r-- 1 ubuntu runner01    51375 2024-07-08 13:51:57.815418798 +0000 events.out.tfevents.1720445769.d0c1e6f563a6
-rw-r--r-- 1 ubuntu runner01       98 2024-07-08 13:51:58.243413344 +0000 objectives.csv

so about 180s start-time (including sensitivity calculation) and 90s for 10 updates.

I'm not sure why the BSREM1 start-up time would be so much slower than ISTA. I haven't tested this separately.

In any case, the timeout will have to increase. (Luckily, TOF does converge faster in terms of updates).

KrisThielemans commented 1 week ago
  • Vision ISTA: artefacts around FOV

right. if it's not an ISTA problem, it could be a problem with either the Siemens background estimate, or something that I don't know... Could solve presumably solve it by cropping (like I did for the mMR). Would have to be done soon.

Explained why it's not in BSREM by https://github.com/SyneRBI/PETRIC/issues/44