Chapter 6: Cone-Beam CT and Feldkamp (FDK) Reconstruction
Run the 3D FDK reconstruction in your browser and observe cone artifacts.
The fan beam of the previous chapter images one slice with a one-dimensional detector. Extending the detector to a two-dimensional flat panel makes the X-ray beam spread as a cone instead of a fan, and a single rotation of the source captures projection data covering the entire object at once. This is cone-beam CT, widely used in dental CT, angiography systems (C-arms), and industrial CT. The geometry is the -extension of the fan beam: the source travels the circle of radius in the plane, parameterized by the source angle , and the detector becomes two-dimensional with an in-plane coordinate (unit vector ) and a rotation-axis coordinate (unit vector ). As before, computations use a virtual detector scaled down to pass through the isocenter (origin).
A fundamental limit of circular-orbit data
A single circular orbit of cone-beam data has a fundamental limitation, however. The condition for exact 3D reconstruction is Tuy's condition: every plane through the point to be reconstructed must intersect the source trajectory at least once. Points in the central plane () satisfy it. For any point with , though, planes parallel to the plane never intersect the orbit. The circular trajectory therefore inherently lacks data away from the central plane, and no algorithm can recover an exact solution. This missing data causes the cone artifacts, which grow with the cone angle (that is, with ).
Tuy's condition. A horizontal plane through a point at z ≠ 0 never intersects the circular orbit, so circular-orbit data are fundamentally incomplete.
The circular orbit is nevertheless mechanically simple, and most practical scanners use it. Its de-facto standard reconstruction is the Feldkamp–Davis–Kress (FDK, 1984) algorithm, the natural 3D extension of fan-beam FBP. It has three steps. (1) Weight each detector pixel by the cosine factor , which compensates for the path obliquity of tilted rays. (2) Convolve each detector row (the 1D data along at fixed ) with the ramp filter. (3) Backproject in 3D with the distance weight . Here is the depth from the source along the central-ray direction, and is where the ray through voxel hits the virtual detector; the backprojection bilinearly interpolates the value there and sums over all .
The FDK geometry. The cosine weight compensates the path obliquity, the distance weight (D_SO/L)² the backprojection depth, and the ramp filter runs along each detector row (u direction).
In the central plane we get , and the cosine weight, the filter, and the backprojection all reduce exactly to the fan-beam FBP formulas. The central slice of FDK therefore agrees exactly with 2D fan-beam FBP. Away from the plane, the rays tilt more and more, and the data missing under Tuy's condition takes its toll. The top and bottom edges of structures that vary quickly along become blurred and their values sink (intensity drops). That is the typical cone artifact, and the simulations below let you verify it directly.
Simulation: cone-beam geometry in 3D
The cone-beam acquisition geometry is shown in 3D. Rotate the viewpoint by left-dragging and zoom with the mouse wheel. Move the source along its orbit with the slider or the play button, and change the source distance with the slider to see the cone half-angle respond. What is displayed is the physical detector on the far side of the source (source–detector distance , magnification 2); the reconstruction math uses the virtual detector scaled down to the isocenter (half-width 1.4). Both represent the same ray bundle.
Simulation: running the FDK reconstruction
A 3D Shepp-Logan phantom is rasterized, forward-projected with a cone beam, and reconstructed with FDK, all inside your browser. Choose the resolution (the volume has voxels), the number of projections, and the reconstruction filter, then press Run. The computation uses WebGPU when available and falls back to the CPU (Web Worker) otherwise. The result appears in the three-plane viewer below.
Rough guide: N=64 takes on the order of ten seconds even on the CPU, but N=128 on the CPU (Worker) can take several minutes (a few seconds with WebGPU). A running job can be cancelled (work already submitted to the GPU may not be interruptible).
Simulation: orthogonal three-plane viewer
The reconstructed volume is displayed in three orthogonal planes: axial (fixed ), coronal (fixed ), and sagittal (fixed ). In each column the top image is the FDK reconstruction and the bottom one is the true phantom; the slider moves the slice position. The slice RMSE compares against the truth inside the FOV cylinder (, ).
The quickest way to see cone artifacts is to move the axial slider away from the center (). Near the center the RMSE is smallest and the slice matches the truth almost perfectly. Within the extent of the object, the RMSE grows monotonically with as the tops and bottoms of the ellipsoids blur and sink in value (beyond the top of the phantom, , the slice is nearly empty and the RMSE drops again). The coronal and sagittal views show it at a glance: the upper and lower edges of the structures (edges along ) are blurred and darkened, while in-plane edges (along and ) stay sharp even in the outer slices. That contrast is worth a close look.
Orthogonal three-plane view of the FDK reconstruction (top) and the true phantom (bottom).
The limit of a circular orbit
Cone-beam CT collects projections of a whole volume in a single rotation thanks to its 2D detector, but the circular orbit violates Tuy's condition everywhere except the central plane, so the data is inherently incomplete. The FDK algorithm is the approximate reconstruction that extends fan-beam FBP to 3D in three steps: cosine weighting, row-wise ramp filtering, and distance-weighted backprojection. Its central slice agrees exactly with 2D fan-beam FBP, and quality degrades with through cone artifacts. Everything so far has been analytic, one-pass reconstruction. The next chapter changes perspective and solves reconstruction as an optimization problem.
Voxels and partial-volume effects
Each value in a 3D image is an average over a voxel with finite width and height. If one voxel contains more than one material, as at a bone–soft-tissue boundary, its CT number falls between the component values. This is the partial-volume effect. Thinner sections and smaller in-plane pixels separate finer structures, but fewer photons contribute to each voxel and noise rises. In-plane pixel size depends on the field of view and matrix; longitudinal resolution also depends on detector collimation, helical pitch, reconstruction method, and section thickness.
References
- Feldkamp LA, Davis LC, Kress JW. Practical cone-beam algorithm. Journal of the Optical Society of America A 1, 612–619 (1984).
- Tuy HK. An inversion formula for cone-beam reconstruction. SIAM Journal on Applied Mathematics 43, 546–552 (1983).