Giter VIP home page Giter VIP logo

distancedrivenfdk's Introduction

Distance-Driven FDK

A Fast Reconstruction Algorithm Research For CBCT

This repo is used as a record of a research on 3d reconstruction algorithm (Distance-Driven Back Projection of FDK Algorithm) in 2018

In the field of cone-beam CT reconstruction, FDK type reconstruction algorithm is widely used. For this kind of algorithm, the image back-projection step is the most time-consuming one. In this research, a variety of back-projection methods are compared, and a version that uses spatial geometry properties, engineering skills, and derived algorithms is introduced for the Distance Driven back-projection algorithm. Both the algorithm and the optimized version are implemented using the CPU and the CUDA parallel computing platform.

Techniques:

  • Algorithms/Models: Three-dimensional reconstruction, back-projection reconstruction, FDK, Distance-driven, Voxel-driven, Pixel-driven
  • Frameworks/Libraries: RTK, ITK
  • Languages: C++, CUDA C

Highlights:

  • The Distance driven method with no open source code is implemented using C++ based on which improvement is made in the selection of voxels' boundary points using CPU.
  • An optimized version is implemented using texture memory, hardware interpolation, and integral images on the CUDA parallel computing platform.

Important References:


Part of the codes for CPU and GPU versions of Distance-driven FDK algorithm is shown in this repo.
You are welcome to contact me and ask any questions about this project.

Further explanation

Abstract


Cone beam computed tomography (or CBCT) projects cone-shape X rays onto the objects and reconstructs the object using projected images. This imaging technique plays an important role in the position verification of tumor radiotherapy. Studying the rapid imaging method of cone beam CT is of great significance for promoting its applications. The common algorithms for 3D reconstruction of cone beam CT include iterative reconstruction algorithm and back projection reconstruction algorithm. Iterative reconstruction algorithm is high in accuracy, but the reconstruction is slow while the reconstruction accuracy of back projection reconstruction algorithm can meet the needs of use while having a moderate reconstruction speed. How to improve the back projection speed is the focus of fast algorithm research.

This research analyzes the mathematical principle of CT reconstruction based on the introduction of parallel beam, fan beam, and cone beam reconstruction. The principle of cone beam CT reconstruction and the FDK algorithm are emphatically analyzed. Then three back-projection methods of FDK algorithm are discussed which are Voxel driven method, Pixel driven method, and Distance driven method. The Distance-driven method with no open source code is implemented using C++ based on which improvement is made in the selection of voxels' boundary points using CPU. Then, an optimized version is implemented using texture memory, hardware interpolation, and integral images on the CUDA parallel computing platform. The result shows that the reconstruction speed of optimized Distance driven algorithm is improved while the image quality remains unchanged.

Key words

Three-dimensional reconstruction, CBCT, back-projection reconstruction, FDK, Distance-driven

Background Knowledge

What we meanly need to know before implementing codes is the pipeline of FDK algorithms and different Projection/BackProjection(P/BP) models

FDK algorithms

  • weighting
  • filtering
  • back projection - Voxel-driven - Pixel-driven - Distance-driven

Voxel-driven


BP Path: connection between the source and the center of each voxel of the phantom
BP value: the interpolation result at the intersection of the ray and the detector - Works well for forward projection. - Tends to introduce Moiré pattern artefacts in backprojection - Difficult to be parallelized because they access memory in a non-sequential pattern

Pixel-driven

Pixel-driven P/BP methods work by tracing rays through the image, essentially discretizing the line integral directly, and thus approximating each line integral as a weighted sum of all image pixels that lie close to the ideal line.


BP Path: connection between the source and the center of each pixel unit of the detector
BP value: the weighted sum of attenuation coefficients of all voxels that lie close to the ray

  • Suitable for hardware implementation with specialized circuit .
  • Tends to introduce Moiré pattern artefacts in backprojection
  • Not straightforward to parallelize.

Distance-driven(Ray-driven)


BP Path: This method projects the boundary of each voxel and the boundary of each pixel unit of the detector onto a common plane(if 3d reconstruction)/common axis(if 2d reconstruction).
BP value: The distance driven kernel uses the length of overlap between each source and each destination to perform a weighted sum of the source values.

  • Distance-driven is a novel projection and backprojection approach that has a low arithmetic complexity, a highly sequential (and thus predictable) memory access pattern, and that avoids the artefact characteristics of voxel-driven backprojection and pixel-driven projection.

  • RTK doesn’t have open source code for distance-driven methods

Programming references:

ITK
RTK
CUDA
My designation for CUDA GPUs is shown below:


My cute dd fdk reconstruction algorithm was tested on a medical software product and won an outstanding graduation thesis award in 2018.


copyright
xiaoma1002

distancedrivenfdk's People

Contributors

xiaoma1002 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

distancedrivenfdk's Issues

The small matter for readme file

  1. In Voxel-driven , statement - Tends to introduce Moiré pattern artefacts in backprojection should be - Tends to introduce Moiré pattern artefacts in projection .
  2. In Pixel-driven title should be Ray-driven because all the paper usually adopt this name mode.

At last, Thank you for your generous contribution.Let us to be effort to work for our motherland

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.