bids-standard / bids-specification

Brain Imaging Data Structure (BIDS) Specification
https://bids-specification.readthedocs.io/
Creative Commons Attribution 4.0 International
277 stars 162 forks source link

Deep Learning and Compressed Sensing #1407

Open neurolabusc opened 1 year ago

neurolabusc commented 1 year ago

I am happy to write a definition of new BIDS tags forDeepLearningFactor and CompressedSensingFactor. However, I thought it might be worth starting a discussion of how we want to do this. BIDS fields like MultibandAccelerationFactor have relatively similar implementation between manufacturers, and fields like ParallelReductionFactorInPlane have subtle distinctions between implementations (e.g. SENSE vs GRAPPA). However, the latest generation scanners are applying a lot of proprietary algorithms, and these may evolve over time. So it is hard to work out an equivalence for GE's medium Recon DL and Siemens Deep Resolve Gain of 2. So if we want to define new BIDS fields to describe these, how would we report them beyond on or off. For example, on a GE system one has one degree of aggressiveness (off, low, medium, high) while on Siemens one can independently adjust aggressiveness of gain, boost and sharpness. So do we resort to the manufacturer's terms rather than a unified value? While we might want to ignore this as it is hard to come up with a unified term for all vendors, studies have shown that these methods do reliably influence the performance of tools like FreeSurfer, so they clearly impact the data.

I am happy to share sample data. Here are how two manufacturers report these parameters using private DICOM tags:

GE 30\LX\SIGNA

HyperSense compressed sensing is reported with private tag (0043,10b7):

(0043,10b7) LO [1.24\1\10\0]

AIR Recon DL deep learning can be set to off, low, medium and high. If on, the value is reported with private tag (0043,10b7):

(0043,10ca) LO [0.75\High]
(0043,10ca) LO [0.5\Medium]
(0043,10ca) LO [0.3\Low]

Siemens XA51

Compressed Sensing reported in PATModeText (0021,1156). For example:

(0021,1156) LO [p4.0]

There are several forms of deep learning, using the deep resolve branding. I have seen three of these reported by XA51 in private tag (0021,1175): Deep Resolve Gain (DRG), Deep Resolve Boost (DRB), Deep Resolve Sharp (DRS)

For example, an image with Gain=4 and Sharp=2 will report:

(0021,1175) CS [ORIGINAL\PRIMARY\M\DRG\NORM\DRS\DIS2D]
(0021,1176) LO [ChannelMixing:ND=true_CMM=1_CDM=1\ACCAlgo:9\IterativeDenoising:RelStrength=0.850_MeanRelRisk=1.489\NormalizeAlgo:PreScan\EdgeEnhancement_2]

In contrast, an image with Gain=2 and Sharp=5 will report:

(0021,1175) CS [ORIGINAL\PRIMARY\M\DRG\NORM\DRS\DIS2D]
(0021,1176) LO [ChannelMixing:ND=true_CMM=1_CDM=1\ACCAlgo:9\IterativeDenoising:RelStrength=0.750_MeanRelRisk=1.323\NormalizeAlgo:PreScan\EdgeEnhancement_5]
mharms commented 1 year ago

Is "Compressed Sensing" a generic term that could fairly be applied to all vendors? If so, maybe to get started, there could be a CompressedSensingFactor field (or maybe DeepLearningCompressionFactor?), containing the "headline" value of the compression, and a related field CompressedSensingDetails (or DeepLearningCompressionDetails), where you would dump the information in (0043,10ca) for GE, or (0021,1176) for Siemens?

neurolabusc commented 1 year ago

@mharms this seems like a reasonable approach. Based on your comments, I wonder if we should have the BIDS boolean fields CompressedSensing and DeepLearning (both are either true or false), with the corresponding text fields CompressedSensingDetails and DeepLearningDetails. The issue with a term like Factor is that it suggests a single value, where Siemens allows the user to tweak several parameters independently (gain, boost, sharp). I would not use the term Compression for Deep Learning, these algorithms influence the reconstruction and resampling/interpolation of the images (Gibbs ringing and truncation artifacts).

Compressed Sensing is a generic term, which GE brands as HyperSense, Philips refers to as Compressed SENSE, Siemens uses the generic Compressed Sensing.

For the Deep Learning methods, GE refers to AIR Recon DL, Philips uses the term SmartSpeed and Siemens has the Deep Resolve family of tools.

mharms commented 1 year ago

Sharp is a filter setting in Siemens lingo, and I assume the same applies here. Are Gain and Boost not "compression factors" of some sort (albeit maybe different algorithms)? Relatedly, in your examples from (0021,1176), I don't see how Gain maps in any obvious way to the other parameters. Or, is that precisely the point -- that the Gain and Boost factors don't map to the underlying parameters in a clear way? It would be nice if your XA51 source could provide the "Help" text that Siemens uses to describe the Gain and Boost factors, to provide a little more context.

neurolabusc commented 1 year ago

I have created a new repository dcm_qa_cs_dl for Compressed Sensing and Deep Learning DICOMs and my suggestion for BIDS conversion. The samples come from GE (MR30.1) and Siemens (XA51).

For example, a GE image that included both CS and DL yield BIDS tags:

"CompressedSensingFactor": 1.24,
"DeepLearning": true,
"DeepLearningDetails": "0.75\\High",

You can think of Compressed Sensing as a form of acquisition acceleration. With Siemens the acceleration options are mutually exclusive: a pull-down menu allows the user to select CS, GRAPPA or SENSE (though I suspect the scalar Siemens CS acceleration combines a mixture of CS as well as GRAPPA). With GE, you can set CS and GRAPPA acceleration independently. The CS is applied in 3D (both in-plane and between-plane).

You can think of the Deep Learning as an image filter. For example, it can be applied in k-space to remove Gibbs artifacts and interpolate the image.

I do not have examples from other manufacturers. I would be grateful if any one can provide examples (@captainnova?):

@xiangruili the repository includes BIDS sidecars for the development release of dcm2niix. Feel free to clone dcm2niix's behavior or suggest an alternative.

neurolabusc commented 1 year ago

I have added Philips Compressed SENSE to dcm_qa_cs_dl. Curiously, it uses the same DICOM public tags for SENSE and CSENSE. Therefore, from the Philips perspective, CSENSE is just another ParallelAcquisitionTechnique, and the SENSE and CSENSE accelerations are mutually exclusive. IN contrast, with GE compressed sense is independent of GRAPPA: one can use either or both. Again, it is unclear how we unify this for BIDS.