This script analyses how the quality of CT reconstruction is affected by the number of cone beam projections.
The data used here is the cone beam of a walnut, which was built in paper. Each walnut was scanned with a laboratory X-Ray by rotating it with an angular increment of 3'.
However, this scanning geometry typically leads to high-cone artefact. To reduce this, scans of three different orbits at different height--low, middle, high--were taken. For a walnut, the corresponding directory contains three sub directory of different orbits, each consisting of 1201 images.
Python and MATLAB code for reconstruction of walnuts scans were also provided here. Feldkamp-Davis-Kress (FDK) algorithm, a widely used method in cone beam CT (CBCT) reconstruction, was deployed based on the ASTRA Toolbox, which is a MATLAB and Python toolbox of high-performance GPU primitives for 2D and 3D tomography.
-
Install ASTRA Toolbox
guide could be found here. It could be troublesome to install packages for CUDA. Here using conda may be a good choice, and remember to include the installation directory of the toolbox to
PYTHONPATH
export PYTHONPATH=<path-where-the-toolbox-is-installed>
-
Download walnut dataset
Complete data set can be found via the following links: 1-8, 9-16, 17-24, 25-32, 33-37, 38-42
-
Set up configurations
Set configurations in
fdk.py
, such aswalnut_id
,orbit_id
, and path to the dataset. To analyse the performance of FDK method on sparse scans, increaseangluar_sub_sampling
with value of 1, such as every scan is used.angluar_sub_sampling
actually defines the step size of subsampling, so increasing it would induce the number of scans used for reconstruction. -
Run and analyse the result
Through visualisation we could find out that the accuracy decreased with the number of used scans. While by 120 scans the effect of cone angle artefacts was quite high, by 12 scans we could only discern the shape of the walnut. Thus, FDK is insufficient in reconstructing CBCT from sparse scans, more data efficient algorithm is needed for this task. In clinical use, such data efficient method could decrease both the radiation exposure and instrument cost.