RTK/ImageQuality: Difference between revisions

From Openrtk
Jump to navigation Jump to search
(Created page with "This page summarizes the existing and the future solutions in RTK for improving image quality of cone-beam (CB) CT images. = X-ray source imperfections = * Geometric blurrin...")
 
 
(35 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page summarizes the existing and the future solutions in RTK for improving image quality of cone-beam (CB) CT images.
This page summarizes the existing and the future solutions in RTK for improving image quality of cone-beam (CB) CT images. It is based on discussions at the [[RTK/Meetings/OnImageQualityInStaticCBCT|RTK meeting on image quality]].


= X-ray source imperfections =
= X-ray source imperfections =


* Geometric blurring can be corrected by the scatter glare correction detailed in the detector imperfections section.
* Geometric blurring can be corrected by the scatter glare correction detailed in the detector imperfections section.
* Exposure fluctuations from projection to projection are common. They can be corrected by [http://www.openrtk.org/Doxygen/classrtk_1_1I0EstimationProjectionFilter.html rtk::I0EstimationProjectionFilter] which automatically estimates a weighting constant per projection using an histogram analysis. This filter only works if there are pixels in each projections that measure x-rays that traversed air only (except maybe a few projections using a revursive least-square . The filter does not have any parameter except the bitshift template value for the reduction of the histogram size. It is implemented for integer pixel types only.
* Exposure fluctuations from projection to projection are common. They can be corrected by [http://www.openrtk.org/Doxygen/classrtk_1_1I0EstimationProjectionFilter.html rtk::I0EstimationProjectionFilter] which automatically estimates a constant I0 (intensity without object) per projection using an histogram analysis. This filter only works if there are pixels in each projections that measure x-rays without object (except maybe a few projections using a revursive least-square (RLS) algorithm). The filter does not have any parameter except the bitshift template value for the reduction of the histogram size. It is implemented for integer pixel types only.
* Focal spot motion cannot be corrected currently. It would require geometric calibration for each acquisition.
* Focal spot motion cannot be corrected currently. It would require geometric calibration for each acquired projection using auto calibration.


= Detector imperfections =
= Detector imperfections =


* Lag: the [ rtk::] filter implements correction implements
* Variations of the flat field image and the dark field image is known (due to temperature changes or ghosting, see, e.g., [http://dx.doi.org/10.1118/1.598657|<nowiki>[Siewerdsen and Jaffray, Med Phys, 1999]</nowiki>]). Acquisition of these two images before and after the acquisition is the best solution when it is possible. There is no other solution in RTK except for the automatic detection of the constant I0 value (see fluctations of the source exposure).
 
* Lag corresponds to a short term temporal effect of the detector (a few projections). The [https://stacks.stanford.edu/file/druid:dj434tf8306/Starman_Jared_thesis_withTitlePage-augmented.pdf| thesis of Starman] (2010) gives a good overview of the problem and solutions he proposed. [http://www.openrtk.org/Doxygen/classrtk_1_1LagCorrectionImageFilter.html rtk::LagCorrectionImageFilter] implements equation 2.1 of his PhD thesis. The a and b parameters must be calibrated for a given system, some RTK users have done this and could share their scripts upon request via the RTK user mailing list. A CUDA version of this filter is being implemented in Louvain-La-Neuve (Belgium). The solution in chapter 3 of Starman's thesis might also be investigated in future works.
, see [http://dx.doi.org/10.1088/0031-9155/56/6/019 [Poludniowski et al, PMB, 2011]] implemetend in [rtk::]
* Scatter glare is the point spread function (PSF) of the detector. The solution described in [http://dx.doi.org/10.1088/0031-9155/56/6/019|<nowiki>[Poludniowski et al, PMB, 2011]</nowiki>] is implemetend in [http://www.openrtk.org/Doxygen/classrtk_1_1ScatterGlareCorrectionImageFilter.html rtk::ScatterGlareCorrectionImageFilter]. The a and b parameters must be calibrated for a given system, some RTK users have done this and could share their scripts upon request via the RTK user mailing list.


= Beam hardening =
= Beam hardening =


* The acquired data may be linearized for a given material using [http://www.openrtk.org/Doxygen/classrtk_1_1LookupTableImageFilter.html rtk::LookupTableImageFilter]. There are several solutions to compute the lookup table:
* The acquired data may be linearized for a given material using [http://www.openrtk.org/Doxygen/classrtk_1_1LookupTableImageFilter.html rtk::LookupTableImageFilter] as explained, e.g., in Fig. 1 of [http://iopscience.iop.org/0031-9155/21/3/004 <nowiki>[Brooks and Di Chiro, PMB, 1976]</nowiki>]. There are several solutions to compute the lookup table:
** Compute it from the knowledge of the spectrum of the x-ray source and the detector response,
** Compute it from the knowledge of the spectrum of the x-ray source and the detector response,
** Measure the attenuation for several thicknesses of the material of interest,
** Measure the attenuation for several thicknesses of the material of interest,
** Do a tomography of a homogenous object (e.g., a cylinder), fix the lookup table the [http://www.openrtk.org/Doxygen/classrtk_1_1WaterPrecorrectionImageFilter.html rtk::WaterPrecorrectionImageFilter]] which implements [http://dx.doi.org/10.1118/1.2188076 Kachelriess et al, Med Phys, 2006].
** Do a tomography of a homogeneous object (e.g., a cylinder) and find the lookup table using the [http://www.openrtk.org/Doxygen/classrtk_1_1WaterPrecorrectionImageFilter.html rtk::WaterPrecorrectionImageFilter] which implements [http://dx.doi.org/10.1118/1.2188076 <nowiki>[Kachelriess et al, Med Phys, 2006]</nowiki>].
** Estimate the p and a parameters of equation 1 in [http://dx.doi.org/10.1007/s003300050710 Ohnesorge et al, Eur Radiol, 1999]
** Estimate the p and q parameters of Equation 1 in [http://dx.doi.org/10.1007/s003300050710 <nowiki>[Ohnesorge et al, Eur Radiol, 1999]</nowiki>] which comes down to a two-parameters beam-hardening correction and convert it to a lookup table.
* The algorithm of [http://dx.doi.org/10.1118/1.3477088 Kyriakou et al, Med Phys, 1010] may easily be implemented from the existing code in RTK.
* The algorithm of [http://dx.doi.org/10.1118/1.3477088 <nowiki>[Kyriakou et al, Med Phys, 2010]</nowiki>] may easily be implemented from the existing code in RTK.
 
= Scatter =
 
* The patient may be approximated by a constant per projection in a first order approximation. This is done using [http://dx.doi.org/10.1118/1.598066 <nowiki>[Boellaard et al, Med Phys, 1997]</nowiki>] in [http://www.openrtk.org/Doxygen/classrtk_1_1BoellaardScatterCorrectionImageFilter.html in rtk::BoellaardScatterCorrectionImageFilter].
* The [http://dx.doi.org/10.1007/s003300050710 <nowiki>[Ohnesorge et al, Eur Radiol, 1999]</nowiki>] algorithm is being implemented in Louvain-La-Neuve (Belgium).
* The adaptive scatter kernel superposition [http://dx.doi.org/10.1088/0031-9155/55/22/007 <nowiki>[Sun and Star-Lack, PMB, 2010]</nowiki>] will be implemented in Louvain-La-Neuve (Belgium).
* Two solutions using a prior scatter-free CT have been investigated by RTK users:
** [http://dx.doi.org/10.1118/1.4923179 <nowiki>[Park et al, Med Phys, 2015]</nowiki>] have implemented the algorithm of [http://dx.doi.org/10.1118/1.3483260 <nowiki>[Niu et al, Med Phys, 2010]</nowiki>]. This solution will be studied in Lyon (France) as well.
** Monte Carlo based scatter correction is investigated in Lyon (France).
 
= Statistical noise =
 
* RTK has a fast 2D median filter for projection images for a few kernel dimensiosn, see [http://www.openrtk.org/Doxygen/classrtk_1_1MedianImageFilter.html rtk::MedianImageFilter]. A GPU version of the median filter will be developed in Salzburg (Austria).
* Median filters do not preserve edges (see [http://arxiv.org/abs/math/0612422 <nowiki>[Arias-Castro and Donoho, Annals of Statistics, 2009]</nowiki>]). A multi-pass median filter is required which might be investigated in Louvain-La-Neuve (Belgium) in the future.
* The [http://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter Savitzky–Golay filter] is a promising solution that will be investigated in Louvain-La-Neuve (Belgium) in the future. This solution also provides derivatives of the image.


= Truncated projection images =
= Truncated projection images =


* The [http://www.openrtk.org/Doxygen/classrtk_1_1FFTRampImageFilter.html rtk::FFTRampImageFilter] implements the heuristic solution of [http://dx.doi.org/10.1118/1.598855 Ohnesorge et al, Med Phys, 2000]. The parameter TruncationCorrection must be set.
* The [http://www.openrtk.org/Doxygen/classrtk_1_1FFTRampImageFilter.html rtk::FFTRampImageFilter] implements the heuristic solution of [http://dx.doi.org/10.1118/1.598855 <nowiki>[Ohnesorge et al, Med Phys, 2000]</nowiki>]. The parameter TruncationCorrection must be adjusted.
* Exact reconstruction based differentiated backprojection and inverse Hilbert filtering (see, e.g., [http://dx.doi.org/10.1088/0031-9155/49/17/006 Noo et al, PMB, 2004] is investigated in Lyon.
* Exact reconstruction based differentiated backprojection and inverse Hilbert filtering (see, e.g., [http://dx.doi.org/10.1088/0031-9155/49/17/006 <nowiki>[Noo et al, PMB, 2004]</nowiki>]) is investigated in Lyon (France).
 
= Geometric calibration =
 
* RTK allows the description of the CBCT geometry using all 9 degrees-of-freedom (DOF).
* The 9 DOF are not accounted for in all filters, e.g., the ramp filter does not account for the in plane rotation.
* Several users have developed 9 DOF calibration.

Latest revision as of 03:22, 6 August 2015

This page summarizes the existing and the future solutions in RTK for improving image quality of cone-beam (CB) CT images. It is based on discussions at the RTK meeting on image quality.

X-ray source imperfections

  • Geometric blurring can be corrected by the scatter glare correction detailed in the detector imperfections section.
  • Exposure fluctuations from projection to projection are common. They can be corrected by rtk::I0EstimationProjectionFilter which automatically estimates a constant I0 (intensity without object) per projection using an histogram analysis. This filter only works if there are pixels in each projections that measure x-rays without object (except maybe a few projections using a revursive least-square (RLS) algorithm). The filter does not have any parameter except the bitshift template value for the reduction of the histogram size. It is implemented for integer pixel types only.
  • Focal spot motion cannot be corrected currently. It would require geometric calibration for each acquired projection using auto calibration.

Detector imperfections

  • Variations of the flat field image and the dark field image is known (due to temperature changes or ghosting, see, e.g., [Siewerdsen and Jaffray, Med Phys, 1999]). Acquisition of these two images before and after the acquisition is the best solution when it is possible. There is no other solution in RTK except for the automatic detection of the constant I0 value (see fluctations of the source exposure).
  • Lag corresponds to a short term temporal effect of the detector (a few projections). The thesis of Starman (2010) gives a good overview of the problem and solutions he proposed. rtk::LagCorrectionImageFilter implements equation 2.1 of his PhD thesis. The a and b parameters must be calibrated for a given system, some RTK users have done this and could share their scripts upon request via the RTK user mailing list. A CUDA version of this filter is being implemented in Louvain-La-Neuve (Belgium). The solution in chapter 3 of Starman's thesis might also be investigated in future works.
  • Scatter glare is the point spread function (PSF) of the detector. The solution described in [Poludniowski et al, PMB, 2011] is implemetend in rtk::ScatterGlareCorrectionImageFilter. The a and b parameters must be calibrated for a given system, some RTK users have done this and could share their scripts upon request via the RTK user mailing list.

Beam hardening

Scatter

Statistical noise

  • RTK has a fast 2D median filter for projection images for a few kernel dimensiosn, see rtk::MedianImageFilter. A GPU version of the median filter will be developed in Salzburg (Austria).
  • Median filters do not preserve edges (see [Arias-Castro and Donoho, Annals of Statistics, 2009]). A multi-pass median filter is required which might be investigated in Louvain-La-Neuve (Belgium) in the future.
  • The Savitzky–Golay filter is a promising solution that will be investigated in Louvain-La-Neuve (Belgium) in the future. This solution also provides derivatives of the image.

Truncated projection images

Geometric calibration

  • RTK allows the description of the CBCT geometry using all 9 degrees-of-freedom (DOF).
  • The 9 DOF are not accounted for in all filters, e.g., the ramp filter does not account for the in plane rotation.
  • Several users have developed 9 DOF calibration.