LLNL / LEAP

comprehensive library of 3D transmission Computed Tomography (CT) algorithms with Python and C++ APIs, a PyQt GUI, and fully integrated with PyTorch
https://leapct.readthedocs.io
MIT License
118 stars 12 forks source link

Can you provide some guidance on the spectrum modeling? #109

Open kylechampley opened 1 month ago

kylechampley commented 1 month ago
          Thanks for the excellent modern approach to CT reconstruction. I notice that most of your solutions, such as BH and scatter, are based on spectrum modeling of the system. However, I'm new to this field. Can you provide some guidance on the modeling?

Originally posted by @lc82111 in https://github.com/LLNL/LEAP/issues/71#issuecomment-2380564686

kylechampley commented 1 month ago

@lc82111, I assume you've seen the demo scripts here, here, and here.

Modeling the spectra involves three major components: 1) x-ray source spectra 2) filtering of the source spectra 3) detector response.

The XrayPhysics library provides models for all three of these. The hardest one to get right is the detector response because vendors don't always disclose details about how the x-ray detector is constructed. For example, the materials used in the front face of the detector (which is usually plastic and/ or aluminum) must be included in item (2) above, the x-ray filters. The best way to model the detector response is with a Monte Carlo simulation, but this is very difficult to do. So here are the main components you will need to model each of the items above

X-ray Source Spectra kV setting, anode take-off angle, and the anode material type. Most x-ray tubes use a Tungsten (W) anode and a take-off angle between 11 and 30 degrees.

X-ray Filters the chemical formula, density, and thickness of all materials the x-ray passes through include the materials in the front face of the detector (but do not include anything in the object you are scanning)

Detector Response We use just a simple model of the product of stopping power of the scintillator material and a linear conversion of x-ray energy to photodiode response. For this you need the chemical formula, density, and thickness of the scintillator. The XrayPhysics library has many of the detector types in its material library which you can use. This includes: GOS, CsI, LSO, LYSO, NaI, BGO, GSO, and CZT.

If you get all of these specified accurately and you employ all the correction algorithms, you should be able to remove most of the artifacts. If you goal is absolute quantitative accuracy, then you will want to calibrate your spectra by scanning well-known references and tuning the spectra model until the model matches the measurement. I will add spectral calibration algorithms to LEAP sometime in the future.

hws203 commented 1 month ago

I am on the work to convert BHC example into native c++ with xrayphysics library. And comments are helpful for me too.

kylechampley commented 1 month ago

What questions do you guys have?