Skip to content

Transformations Meeting 1

mjorgecardoso edited this page May 25, 2020 · 2 revisions

Minutes of meeting 1

Date: 28th April 2020 Membership: M. Jorge Cardoso (Lead), 
Michael Baumgartner, Tom Varsavsky, 
Fernando Perez-Garcia, Richard Shaw, Mark Graham, Mauricio Arteaga, Stephen Aylward, 
Rahul Choudhury, Wenqi Li 


Define the scope of the group

Focus on imaging “tensors” as inputs and outputs Input-to-output transformation and data types

  • Segmentation: Images/Labels as joint pieces of information
  • Classification: Images/classes
  • Semantic Regression: Image/image pairs
  • Object Detection: Image/Object-descriptor
  • Registration: Image/transformation
  • AutoML: Requirements regarding differentiability
  • Including post-processing?

Cache intermediate representations

  • Performance
  • Algorithmic purposes

Differentiability


Types of Transformations

Voxel/physical-coordinates consideration

  • All transformation should have a mm equivalent
  • Different orientations
  • Different images of the same subject with different orientation
  • Should allow the user to bypass all of this

Spatial Transforms

  • Rotation,
  • Translation,
  • Scale
    • Scale factor
    • Target resolution
  • Affine,
  • Flips,
  • Non-linear transformations
    • B-splines
    • Velocity fields
      • Shooting
      • Integration
      • Exponentiation
  • Composability of transformations
  • Interpolation (linked with data type)
    • Nearest neighbor, linear, b-spline, sinc
  • Crop
    • Centre crop
    • Localised Crop
  • Padding

Intensity transforms

  • Noise
  • Whitening (zero=mean, std=1)
  • Min-max
  • Robust Min-Max
  • Outlier removal
  • Log
  • Equalisation
  • Histogram matching
    • Learned?
  • Gamma
  • Window-Level
  • Clipping
  • Quantisation
  • Filters: CLAHE / AHE / VCD / Curvature / ...
  • Blurring
    • Voxel
    • Physical Spaces
  • Represent NANs

Acquisition Physics transforms

  • MRI
    • Bias-field correction
    • K-space artefacts
    • Motion
  • Ultrasound
    • Speckle
    • Occlusions/shadows
    • Poor acoustic coupling
    • Motion
  • CT
    • Simulating changes in acquisition (keV)
    • Metal artifacts
    • Motion
  • Projections
    • CT -> XRAY
    • CT -> tomosynthesis
  • Simulating other modalities
  • Simulating image artefacts
  • Simulating results from different scanners/manufacturers

Segmentation specific

  • Categorical to probabilistic (vice versa)
  • Categorical-mapping (forward and backwards)
  • Temperature scaling

Patient transforms

  • Simulating body habitus variations
  • Simulating aging
  • Simulation in general and what an API would look like

Sampling strategies

  • Sampling 2D images from a 3D volume (maybe part of the “normal” 3d patch pathway)
  • Sampling multiple contiguous 2d images (pseudo3d) from 3d volume
  • Sampling 2D images with multiple orientations (2.5D)
  • Patches from a Volume/Subject from dataset
    • Random
    • Segmentation-aware
    • Masked sampling (only in a subregion)
    • Hard-negative mining
    • Grid sampling
    • Grid-sampling with overlap
    • Aggregation of grid sampling
      • Mapping values
      • Weighted aggregation

Interaction with other packages?

  • BatchGenerator - numpy/SimpleITK
  • TorchIO - Torch/numpy/SimpleITK/nibabel
  • Phoenix Rising - torch
  • ITK - itk
  • Nvidia DALI - 2d, separate ecosystem
  • Kornia - torch

.Considerations

  • Torch Tensor? => CPU/GPU
  • Manage Batches?


Points of discussion for the next meeting

  • Differentiability
  • Data type transformation and performance
  • Looking into Transformation (code) API
    • 1 slide per method
  • Geometric transforms and composability
  • Linear vs DAG execution
  • Export/import augmentation (random sample) parameters
Clone this wiki locally