Dynamic

TomoPhantom

The dynamic phantom model was generated and customized for two spatial variables \(x,y\) by employing the TomoPhantom toolbox [B22]. It contains three types of the particle motion: rotation, shifting, and expansion. In addition to different motion types, we also analyze different motion velocities chosen according to the pixel size and the time spent for measuring projections in the interval of the size \(\pi\).

The movement of the particles is captured in 8 intervals of each consisting by angular views across \(\pi\). The model has sizes \((N,N,N_t)=(256,256,8)\), and the projection data has sizes \((N_\theta,N)=(128\times 8,256)=(1024,256)\), where \(128\) is the number of projections for covering the interval \([0,\pi)\). Reconstructions are also performed by using the standard FBP method for intervals \([0,\pi)\), \([\pi,2\pi)\), and so on, and by the proposed time-domain decomposition + regularization approach [B47] with \(M=16\) Fourier basis functions for decomposition. Motion artifacts in the FBP reconstruction are clearly visible and significantly distort reconstructions with increasing the motion velocity. The method of Time-domain decomposition + regularization in turn suppresses all motion artifacts.

Reconstruction by the method with suppressing motion artifacts requires module rectv that can be installed from https://github.com/math-vrn/rectv_gpu. To perform reconstruction use the rec_phantom_00015.py python script:

python rec_phantom_00015.py phantom_00015_00000.tiff

Projection data, ground truth, and reconstructions: phantom_00015

Time frame

Ground Truth

Gridrec

dec+TV

0

gt00000

rec00000

rectv00000

1

gt00001

rec00001

rectv00001

2

gt00002

rec00002

rectv00002

3 (fast)

gt00003

rec00003

rectv00003

4

gt00004

rec00004

rectv00004

5

gt00005

rec00005

rectv00005

6

gt00006

rec00006

rectv00006

7

gt00007

rec00007

rectv00007

pt4 Phantoms

The following phantoms have been created using pt4 version 1.0.0. pt4 is a phantom description tool which is specialised for generating time-evolving 4D phantoms. More information can be found on the linked code repository or in the software overview

This data has been generated with

pt4.exe -p -v (path to .pt4 without extension)

To load the phantom data sets into Python use pt4_volume.py for volumes as:

pt4_volumes.py (volume file name)

and pt4_projection.py for projections as:

pt4_projection.py (projections directory name)

Spheres Translating

The spheres translating phantom consists of 16 spheres of equal and constant attenuation each moving independently. The phantom is sampled at 10 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.

https://g-a0400.fd635.8443.data.globus.org/phantom_00029/spheres_translating.zip

2D projection of phantom. Blue, \(t = 0\). Orange, \(t = 1\)

sp00000

Bread Baking

The bread baking phantom takes inspiration from a loaf of bread rising during baking. Throughout its evolution it expands while voids appear that also expand. In its final state the phantom has seven voids. To emulate conservation of mass, the phantom reduces in density as it expands. This manifests as phantom’s main ellipsoid decreasing in attenuation proportionally to its volume ( \(\mu(t) = \mu(0) \frac{V(t)}{V(0)}\), where \(\mu(t)\) and \(V(t)\) are the attenuation and volume at time \(t\) ). The phantom is sampled at 10 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.

https://g-a0400.fd635.8443.data.globus.org/phantom_00029/bread_baking.zip

Time

0.0

0.2

0.4

0.6

0.8

1.0

ZX Slice

bb00000

bb00001

bb00002

bb00003

bb00004

bb00005

Tensile Fracture

The tensile failure phantom emulates a sample undergoing a tensile test to failure. This phantom exhibit both motion and fracturing dynamics. In the first half of the test, the sample stretches vertically and contracts in radius such that its volume remains constant. At \(t = 0.5\), the sample fractures and the two halves begin to move away from each other. The phantom is sampled at 20 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.

https://g-a0400.fd635.8443.data.globus.org/phantom_00029/tensile_fracture.zip

Time

0.0

0.2

0.4

0.6

0.8

1.0

ZX Slice

fd00000

fd00001

fd00002

fd00003

fd00004

fd00005

Brazil Crush

The Brazil crush phantom represents a sample undergoing the Brazilian test. In this test a cylindrical sample is placed between two jaws which apply compressive load to the sample. This results in a tensile load on the sample that increases until fracture. In the phantom, multiple fractures appear and close up. For simplicity, the jaws have been modelled nonphysically as they form a contiguous piece of material, however the contact points between the jaws and the sample still close with time. The phantom is sampled at 10 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.

https://g-a0400.fd635.8443.data.globus.org/phantom_00029/brazil_crush.zip

Time

0.0

0.2

0.4

0.6

0.8

1.0

ZX Slice

bc00000

bc00001

bc00002

bc00003

bc00004

bc00005

Fluid Flow

The fluid flow phantom gives an example of fluid flowing through a porous medium. This has been implemented as the fluid level rising uniformly in time inside the porous medium. The phantom is sampled at 5 time steps with volumes of size \(256^3\). The projection data consists of 400 projections with a fixed angle and time step per projection and at size \(256^2\). The projections cover the range \([0,8\pi)\) where successive revolutions capture the interleaving angles.

https://g-a0400.fd635.8443.data.globus.org/phantom_00029/fluid_flow.zip

Time

0.0

0.2

0.4

0.6

0.8

1.0

ZX Slice

ff00000

ff00001

ff00002

ff00003

ff00004

ff00005