VBoussot commited on
Commit
7fc77d1
·
verified ·
1 Parent(s): 8acfab5

Presets for impact-reg-konfai 1.8.7: one IMPACT loss, sized from their declared cost

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. ConvexAdam_Coarse/Prediction.yml +8 -15
  2. ConvexAdam_Coarse/app.json +6 -1
  3. ConvexAdam_Coarse/requirements.txt +1 -1
  4. ConvexAdam_Composite/Prediction.yml +10 -10
  5. ConvexAdam_Composite/Prediction_tile.yml +115 -0
  6. ConvexAdam_Composite/app.json +10 -2
  7. ConvexAdam_Composite/requirements.txt +1 -1
  8. ConvexAdam_IMPACT_CBCT/Evaluation_with_fid.yml +22 -0
  9. ConvexAdam_IMPACT_CBCT/Evaluation_with_images.yml +35 -0
  10. ConvexAdam_IMPACT_CBCT/Evaluation_with_seg.yml +29 -0
  11. ConvexAdam_IMPACT_CBCT/Prediction.yml +123 -0
  12. ConvexAdam_IMPACT_CBCT/Prediction_tile.yml +122 -0
  13. ConvexAdam_IMPACT_CBCT/Uncertainty.yml +24 -0
  14. ConvexAdam_IMPACT_CBCT/app.json +97 -0
  15. ConvexAdam_IMPACT_CBCT/icon.png +0 -0
  16. ConvexAdam_IMPACT_CBCT/requirements.txt +2 -0
  17. ConvexAdam_IMPACT_MRCT/Evaluation_with_fid.yml +22 -0
  18. ConvexAdam_IMPACT_MRCT/Evaluation_with_images.yml +35 -0
  19. ConvexAdam_IMPACT_MRCT/Evaluation_with_seg.yml +29 -0
  20. ConvexAdam_IMPACT_MRCT/Prediction.yml +122 -0
  21. ConvexAdam_IMPACT_MRCT/Uncertainty.yml +24 -0
  22. ConvexAdam_IMPACT_MRCT/app.json +94 -0
  23. ConvexAdam_IMPACT_MRCT/icon.png +0 -0
  24. ConvexAdam_IMPACT_MRCT/requirements.txt +2 -0
  25. Elastix_IMPACT_Jacobian/ParameterMap_Jacobian.txt +1 -0
  26. Elastix_IMPACT_Jacobian/Parameters_Rigid.txt +147 -0
  27. Elastix_IMPACT_Jacobian/Prediction.yml +8 -5
  28. Elastix_IMPACT_Jacobian/app.json +9 -4
  29. Elastix_IMPACT_Static/ParameterMap_Static.txt +1 -0
  30. Elastix_IMPACT_Static/Parameters_Rigid.txt +147 -0
  31. Elastix_IMPACT_Static/Prediction.yml +11 -8
  32. Elastix_IMPACT_Static/app.json +9 -4
  33. FireANTs_Anatomix/Prediction.yml +14 -10
  34. FireANTs_Anatomix/Prediction_tile.yml +142 -0
  35. FireANTs_Anatomix/app.json +13 -2
  36. FireANTs_Anatomix/requirements.txt +4 -0
  37. FireANTs_IMPACT/Prediction.yml +11 -3
  38. FireANTs_IMPACT/Prediction_tile.yml +127 -0
  39. FireANTs_IMPACT/app.json +13 -2
  40. FireANTs_IMPACT/requirements.txt +4 -0
  41. FireANTs_IMPACT_MRCT/Evaluation_with_fid.yml +22 -0
  42. FireANTs_IMPACT_MRCT/Evaluation_with_images.yml +35 -0
  43. FireANTs_IMPACT_MRCT/Evaluation_with_seg.yml +29 -0
  44. FireANTs_IMPACT_MRCT/NOTICE +40 -0
  45. FireANTs_IMPACT_MRCT/Prediction.yml +138 -0
  46. FireANTs_IMPACT_MRCT/Prediction_tile.yml +139 -0
  47. FireANTs_IMPACT_MRCT/Uncertainty.yml +24 -0
  48. FireANTs_IMPACT_MRCT/app.json +100 -0
  49. FireANTs_IMPACT_MRCT/icon.png +0 -0
  50. FireANTs_IMPACT_MRCT/requirements.txt +8 -0
ConvexAdam_Coarse/Prediction.yml CHANGED
@@ -5,24 +5,12 @@ Predictor:
5
  models:
6
  '0':
7
  ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
8
- voxel_size:
9
- - 3.0
10
- - 3.0
11
- - 3.0
12
  layers_mask: '1'
13
- layers_weight: 1.0
14
- pca: 0
15
- distance: L1
16
- overlap: 2
17
  mixed_precision: false
18
  grid_spacing: 6
19
  displacement_half_width: 4
20
- iterations: 80
21
- learning_rate: 1.0
22
- regularization_weight: 1.25
23
- grid_shrink: 2
24
- control_grid_smoothing: 3
25
- subset_features: []
26
  linear: true
27
  linear_iterations: 200
28
  seed: 42
@@ -79,10 +67,15 @@ Predictor:
79
  prob: 1
80
  nb: 2
81
  Patch:
82
- patch_size: [0, 0, 0]
 
 
 
83
  overlap: 20%
84
  pad_value: None
85
  extend_slice: 0
 
 
86
  subset: None
87
  dataset_filenames:
88
  - ./Dataset/:mha
 
5
  models:
6
  '0':
7
  ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
 
 
 
 
8
  layers_mask: '1'
9
+ layers_weight:
10
+ - 1.0
 
 
11
  mixed_precision: false
12
  grid_spacing: 6
13
  displacement_half_width: 4
 
 
 
 
 
 
14
  linear: true
15
  linear_iterations: 200
16
  seed: 42
 
67
  prob: 1
68
  nb: 2
69
  Patch:
70
+ patch_size:
71
+ - 0
72
+ - 0
73
+ - 0
74
  overlap: 20%
75
  pad_value: None
76
  extend_slice: 0
77
+ mode: resample
78
+ max_voxels: None
79
  subset: None
80
  dataset_filenames:
81
  - ./Dataset/:mha
ConvexAdam_Coarse/app.json CHANGED
@@ -85,5 +85,10 @@
85
  }
86
  }
87
  }
88
- }
 
 
 
 
 
89
  }
 
85
  }
86
  }
87
  }
88
+ },
89
+ "vram_bytes_per_voxel": 350,
90
+ "tiling": {
91
+ "global": "Prediction.yml"
92
+ },
93
+ "ram_bytes_per_voxel": 800
94
  }
ConvexAdam_Coarse/requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
- itk-impact>=0.1.1
2
  impact_reg_konfai>=1.7.0
 
1
+ itk-impact>=0.1.1,<0.1.6
2
  impact_reg_konfai>=1.7.0
ConvexAdam_Composite/Prediction.yml CHANGED
@@ -5,24 +5,19 @@ Predictor:
5
  models:
6
  '0':
7
  ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
8
- voxel_size:
9
- - 3.0
10
- - 3.0
11
- - 3.0
12
  layers_mask: '1'
13
- layers_weight: 1.0
 
14
  pca: 0
15
- distance: L1
16
- overlap: 2
17
  mixed_precision: false
18
  grid_spacing: 6
19
  displacement_half_width: 4
20
  iterations: 80
21
- learning_rate: 1.0
22
  regularization_weight: 1.25
23
  grid_shrink: 2
24
  control_grid_smoothing: 3
25
- subset_features: []
26
  linear: true
27
  linear_iterations: 200
28
  seed: 42
@@ -80,10 +75,15 @@ Predictor:
80
  prob: 1
81
  nb: 2
82
  Patch:
83
- patch_size: [0, 0, 0]
 
 
 
84
  overlap: 20%
85
  pad_value: None
86
  extend_slice: 0
 
 
87
  subset: None
88
  dataset_filenames:
89
  - ./Dataset/:mha
 
5
  models:
6
  '0':
7
  ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
 
 
 
 
8
  layers_mask: '1'
9
+ layers_weight:
10
+ - 1.0
11
  pca: 0
12
+ distance: L2
 
13
  mixed_precision: false
14
  grid_spacing: 6
15
  displacement_half_width: 4
16
  iterations: 80
17
+ learning_rate: 2.0
18
  regularization_weight: 1.25
19
  grid_shrink: 2
20
  control_grid_smoothing: 3
 
21
  linear: true
22
  linear_iterations: 200
23
  seed: 42
 
75
  prob: 1
76
  nb: 2
77
  Patch:
78
+ patch_size:
79
+ - 0
80
+ - 0
81
+ - 0
82
  overlap: 20%
83
  pad_value: None
84
  extend_slice: 0
85
+ mode: resample
86
+ max_voxels: None
87
  subset: None
88
  dataset_filenames:
89
  - ./Dataset/:mha
ConvexAdam_Composite/Prediction_tile.yml ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.convexadam:RegistrationNet
4
+ RegistrationNet:
5
+ models:
6
+ '0':
7
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
8
+ layers_mask: '1'
9
+ layers_weight:
10
+ - 1.0
11
+ pca: 0
12
+ distance: L2
13
+ mixed_precision: false
14
+ grid_spacing: 6
15
+ displacement_half_width: 4
16
+ iterations: 80
17
+ learning_rate: 2.0
18
+ regularization_weight: 1.25
19
+ grid_shrink: 2
20
+ control_grid_smoothing: 3
21
+ linear: false
22
+ linear_iterations: 200
23
+ seed: 42
24
+ outputs_criterions: None
25
+ stages:
26
+ - fine
27
+ Dataset:
28
+ groups_src:
29
+ Volume_0:
30
+ groups_dest:
31
+ Fixed:
32
+ transforms:
33
+ TensorCast:
34
+ dtype: float32
35
+ inverse: false
36
+ patch_transforms: None
37
+ is_input: true
38
+ Volume_1:
39
+ groups_dest:
40
+ Moving:
41
+ transforms:
42
+ TensorCast:
43
+ dtype: float32
44
+ inverse: false
45
+ patch_transforms: None
46
+ is_input: true
47
+ Volume_2:
48
+ groups_dest:
49
+ FixedMask:
50
+ transforms:
51
+ TensorCast:
52
+ dtype: float32
53
+ inverse: false
54
+ patch_transforms: None
55
+ is_input: true
56
+ Volume_3:
57
+ groups_dest:
58
+ MovingMask:
59
+ transforms:
60
+ TensorCast:
61
+ dtype: float32
62
+ inverse: false
63
+ patch_transforms: None
64
+ is_input: true
65
+ augmentations:
66
+ DataAugmentation_0:
67
+ data_augmentations:
68
+ Flip:
69
+ f_prob:
70
+ - 0
71
+ - 0.5
72
+ - 0.5
73
+ vector_field: true
74
+ prob: 1
75
+ nb: 2
76
+ Patch:
77
+ patch_size:
78
+ - 0
79
+ - 0
80
+ - 0
81
+ overlap: 20%
82
+ pad_value: None
83
+ extend_slice: 0
84
+ mode: tile
85
+ max_voxels: None
86
+ subset: None
87
+ dataset_filenames:
88
+ - ./Dataset/:mha
89
+ batch_size: 1
90
+ num_workers: None
91
+ pin_memory: false
92
+ prefetch_factor: None
93
+ persistent_workers: None
94
+ outputs_dataset:
95
+ DisplacementField:
96
+ OutputDataset:
97
+ name_class: OutputDataset
98
+ before_reduction_transforms: None
99
+ after_reduction_transforms: None
100
+ final_transforms:
101
+ TensorCast:
102
+ dtype: float32
103
+ inverse: false
104
+ dataset_filename: Transform:itktransform
105
+ group: Transform
106
+ same_as_group: Volume_0:Fixed
107
+ patch_combine: Cosinus
108
+ reduction: Mean
109
+ Mean: {}
110
+ train_name: ImpactReg-ConvexAdam-Composite
111
+ manual_seed: 42
112
+ gpu_checkpoints: None
113
+ combine: Mean
114
+ autocast: false
115
+ data_log: None
ConvexAdam_Composite/app.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "display_name": "ConvexAdam (MIND)",
3
  "short_description": "Coarse + fine ConvexAdam registration in one app (IMPACT/MIND features).",
4
- "description": "The full ConvexAdam pipeline chained in one app: optional moments+affine linear pre-align, then a ConvexAdam coarse coupled-convex initialization, then an Adam instance-optimisation refinement, all driven by the IMPACT metric on MIND features. Produces the moved image and the displacement field on the fixed grid.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
@@ -85,5 +85,13 @@
85
  }
86
  }
87
  }
88
- }
 
 
 
 
 
 
 
 
89
  }
 
1
  {
2
  "display_name": "ConvexAdam (MIND)",
3
  "short_description": "Coarse + fine ConvexAdam registration in one app (IMPACT/MIND features).",
4
+ "description": "The full ConvexAdam pipeline chained in one app: optional moments+affine linear pre-align, then a ConvexAdam coarse coupled-convex initialization, then an Adam instance-optimisation refinement, all driven by the IMPACT metric on MIND features. Produces the displacement field on the fixed grid, from which impact-reg-konfai derives the moved image.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
 
85
  }
86
  }
87
  }
88
+ },
89
+ "vram_bytes_per_voxel": 350,
90
+ "tiling": {
91
+ "global": "Prediction.yml",
92
+ "tile": "Prediction_tile.yml",
93
+ "tile_vram_bytes_per_voxel": 350,
94
+ "tile_ram_bytes_per_voxel": 800
95
+ },
96
+ "ram_bytes_per_voxel": 800
97
  }
ConvexAdam_Composite/requirements.txt CHANGED
@@ -1,2 +1,2 @@
1
- itk-impact>=0.1.1
2
  impact_reg_konfai>=1.7.0
 
1
+ itk-impact>=0.1.1,<0.1.6
2
  impact_reg_konfai>=1.7.0
ConvexAdam_IMPACT_CBCT/Evaluation_with_fid.yml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedFid:
4
+ targets_criterions:
5
+ MovingFid:
6
+ criterions_loader:
7
+ TRE: {}
8
+ Dataset:
9
+ groups_src:
10
+ Volume_0:
11
+ groups_dest:
12
+ FixedFid:
13
+ transforms: None
14
+ Reference_0:
15
+ groups_dest:
16
+ MovingFid:
17
+ transforms: None
18
+ subset: None
19
+ dataset_filenames:
20
+ - ./Dataset:mha
21
+ validation: None
22
+ train_name: ImpactReg
ConvexAdam_IMPACT_CBCT/Evaluation_with_images.yml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedImage:
4
+ targets_criterions:
5
+ MovingImage;Mask:
6
+ criterions_loader:
7
+ MAESaveMap:
8
+ reduction: mean
9
+ dataset: ./Evaluations/ImpactReg/Output:mha
10
+ group: MAE_map
11
+ Dataset:
12
+ groups_src:
13
+ Volume_0:
14
+ groups_dest:
15
+ FixedImage:
16
+ transforms:
17
+ TensorCast:
18
+ dtype: float32
19
+ Reference_0:
20
+ groups_dest:
21
+ MovingImage:
22
+ transforms:
23
+ TensorCast:
24
+ dtype: float32
25
+ Mask_0:
26
+ groups_dest:
27
+ Mask:
28
+ transforms:
29
+ TensorCast:
30
+ dtype: uint8
31
+ subset: None
32
+ dataset_filenames:
33
+ - ./Dataset:mha
34
+ validation: None
35
+ train_name: ImpactReg
ConvexAdam_IMPACT_CBCT/Evaluation_with_seg.yml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedSeg:
4
+ targets_criterions:
5
+ MovingSeg:
6
+ criterions_loader:
7
+ DiceSaveMap:
8
+ labels: None
9
+ dataset: ./Evaluations/ImpactReg/Output:mha
10
+ group: Seg_MAE_map
11
+ Dataset:
12
+ groups_src:
13
+ Volume_0:
14
+ groups_dest:
15
+ FixedSeg:
16
+ transforms:
17
+ TensorCast:
18
+ dtype: uint8
19
+ Reference_0:
20
+ groups_dest:
21
+ MovingSeg:
22
+ transforms:
23
+ TensorCast:
24
+ dtype: uint8
25
+ subset: None
26
+ dataset_filenames:
27
+ - ./Dataset:mha
28
+ validation: None
29
+ train_name: ImpactReg
ConvexAdam_IMPACT_CBCT/Prediction.yml ADDED
@@ -0,0 +1,123 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.convexadam:RegistrationNet
4
+ RegistrationNet:
5
+ models:
6
+ '0':
7
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
8
+ layers_mask: '1'
9
+ layers_weight:
10
+ - 1.0
11
+ pca: 0
12
+ distance: L2
13
+ '1':
14
+ ref: VBoussot/impact-torchscript-models:TS/M730.pt
15
+ layers_mask: '01'
16
+ layers_weight:
17
+ - 1.0
18
+ pca: 0
19
+ distance: L2
20
+ mixed_precision: false
21
+ grid_spacing: 6
22
+ displacement_half_width: 4
23
+ iterations: 80
24
+ learning_rate: 2.0
25
+ regularization_weight: 5.0
26
+ grid_shrink: 2
27
+ control_grid_smoothing: 3
28
+ linear: true
29
+ linear_iterations: 200
30
+ seed: 42
31
+ outputs_criterions: None
32
+ stages:
33
+ - coarse
34
+ - fine
35
+ Dataset:
36
+ groups_src:
37
+ Volume_0:
38
+ groups_dest:
39
+ Fixed:
40
+ transforms:
41
+ TensorCast:
42
+ dtype: float32
43
+ inverse: false
44
+ patch_transforms: None
45
+ is_input: true
46
+ Volume_1:
47
+ groups_dest:
48
+ Moving:
49
+ transforms:
50
+ TensorCast:
51
+ dtype: float32
52
+ inverse: false
53
+ patch_transforms: None
54
+ is_input: true
55
+ Volume_2:
56
+ groups_dest:
57
+ FixedMask:
58
+ transforms:
59
+ TensorCast:
60
+ dtype: float32
61
+ inverse: false
62
+ patch_transforms: None
63
+ is_input: true
64
+ Volume_3:
65
+ groups_dest:
66
+ MovingMask:
67
+ transforms:
68
+ TensorCast:
69
+ dtype: float32
70
+ inverse: false
71
+ patch_transforms: None
72
+ is_input: true
73
+ augmentations:
74
+ DataAugmentation_0:
75
+ data_augmentations:
76
+ Flip:
77
+ f_prob:
78
+ - 0
79
+ - 0.5
80
+ - 0.5
81
+ vector_field: true
82
+ prob: 1
83
+ nb: 2
84
+ Patch:
85
+ patch_size:
86
+ - 0
87
+ - 0
88
+ - 0
89
+ overlap: 20%
90
+ pad_value: None
91
+ extend_slice: 0
92
+ mode: resample
93
+ max_voxels: None
94
+ subset: None
95
+ dataset_filenames:
96
+ - ./Dataset/:mha
97
+ batch_size: 1
98
+ num_workers: None
99
+ pin_memory: false
100
+ prefetch_factor: None
101
+ persistent_workers: None
102
+ outputs_dataset:
103
+ DisplacementField:
104
+ OutputDataset:
105
+ name_class: OutputDataset
106
+ before_reduction_transforms: None
107
+ after_reduction_transforms: None
108
+ final_transforms:
109
+ TensorCast:
110
+ dtype: float32
111
+ inverse: false
112
+ dataset_filename: Transform:itktransform
113
+ group: Transform
114
+ same_as_group: Volume_0:Fixed
115
+ patch_combine: Cosinus
116
+ reduction: Mean
117
+ Mean: {}
118
+ train_name: ImpactReg-ConvexAdam-IMPACT-CBCT
119
+ manual_seed: 42
120
+ gpu_checkpoints: None
121
+ combine: Mean
122
+ autocast: false
123
+ data_log: None
ConvexAdam_IMPACT_CBCT/Prediction_tile.yml ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.convexadam:RegistrationNet
4
+ RegistrationNet:
5
+ models:
6
+ '0':
7
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
8
+ layers_mask: '1'
9
+ layers_weight:
10
+ - 1.0
11
+ pca: 0
12
+ distance: L2
13
+ '1':
14
+ ref: VBoussot/impact-torchscript-models:TS/M730.pt
15
+ layers_mask: '01'
16
+ layers_weight:
17
+ - 1.0
18
+ pca: 0
19
+ distance: L2
20
+ mixed_precision: false
21
+ grid_spacing: 6
22
+ displacement_half_width: 4
23
+ iterations: 80
24
+ learning_rate: 2.0
25
+ regularization_weight: 5.0
26
+ grid_shrink: 2
27
+ control_grid_smoothing: 3
28
+ linear: false
29
+ linear_iterations: 200
30
+ seed: 42
31
+ outputs_criterions: None
32
+ stages:
33
+ - fine
34
+ Dataset:
35
+ groups_src:
36
+ Volume_0:
37
+ groups_dest:
38
+ Fixed:
39
+ transforms:
40
+ TensorCast:
41
+ dtype: float32
42
+ inverse: false
43
+ patch_transforms: None
44
+ is_input: true
45
+ Volume_1:
46
+ groups_dest:
47
+ Moving:
48
+ transforms:
49
+ TensorCast:
50
+ dtype: float32
51
+ inverse: false
52
+ patch_transforms: None
53
+ is_input: true
54
+ Volume_2:
55
+ groups_dest:
56
+ FixedMask:
57
+ transforms:
58
+ TensorCast:
59
+ dtype: float32
60
+ inverse: false
61
+ patch_transforms: None
62
+ is_input: true
63
+ Volume_3:
64
+ groups_dest:
65
+ MovingMask:
66
+ transforms:
67
+ TensorCast:
68
+ dtype: float32
69
+ inverse: false
70
+ patch_transforms: None
71
+ is_input: true
72
+ augmentations:
73
+ DataAugmentation_0:
74
+ data_augmentations:
75
+ Flip:
76
+ f_prob:
77
+ - 0
78
+ - 0.5
79
+ - 0.5
80
+ vector_field: true
81
+ prob: 1
82
+ nb: 2
83
+ Patch:
84
+ patch_size:
85
+ - 0
86
+ - 0
87
+ - 0
88
+ overlap: 20%
89
+ pad_value: None
90
+ extend_slice: 0
91
+ mode: tile
92
+ max_voxels: None
93
+ subset: None
94
+ dataset_filenames:
95
+ - ./Dataset/:mha
96
+ batch_size: 1
97
+ num_workers: None
98
+ pin_memory: false
99
+ prefetch_factor: None
100
+ persistent_workers: None
101
+ outputs_dataset:
102
+ DisplacementField:
103
+ OutputDataset:
104
+ name_class: OutputDataset
105
+ before_reduction_transforms: None
106
+ after_reduction_transforms: None
107
+ final_transforms:
108
+ TensorCast:
109
+ dtype: float32
110
+ inverse: false
111
+ dataset_filename: Transform:itktransform
112
+ group: Transform
113
+ same_as_group: Volume_0:Fixed
114
+ patch_combine: Cosinus
115
+ reduction: Mean
116
+ Mean: {}
117
+ train_name: ImpactReg-ConvexAdam-IMPACT-CBCT
118
+ manual_seed: 42
119
+ gpu_checkpoints: None
120
+ combine: Mean
121
+ autocast: false
122
+ data_log: None
ConvexAdam_IMPACT_CBCT/Uncertainty.yml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ Uncertainty:
4
+ targets_criterions:
5
+ None:
6
+ criterions_loader:
7
+ Mean:
8
+ name: Uncertainty
9
+ Dataset:
10
+ groups_src:
11
+ Volume_0:
12
+ groups_dest:
13
+ Uncertainty:
14
+ transforms:
15
+ Norm: {}
16
+ StandardDeviation: {}
17
+ Save:
18
+ dataset: ./Uncertainties/ImpactReg/Output:mha
19
+ group: None
20
+ subset: None
21
+ dataset_filenames:
22
+ - ./Dataset:mha
23
+ validation: None
24
+ train_name: ImpactReg
ConvexAdam_IMPACT_CBCT/app.json ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "display_name": "ConvexAdam, MIND + TotalSegmentator MR early layer",
3
+ "short_description": "ConvexAdam_Composite (MIND) with the second layer of TotalSegmentator MR (TS/M730) added, for CT/CBCT.",
4
+ "description": "ConvexAdam_Composite (MIND) with the second layer of TotalSegmentator MR (TS/M730) added, for CT/CBCT. Everything else is ConvexAdam_Composite's (the affine pre-alignment on mutual information, the coupled-convex coarse search, then the Adam refinement, on both feature models) except the refinement's regularisation, raised to 5: with the refinement's IMPACT loss normalised (every feature layer starts at 1), thorax CBCT folded 2.0 % of the body at 2.5 and 0.3 % at 5 (Dice 0.496 and 0.498), OASIS 0.9 % and 0.1 %, AbdomenCTCT 0.75 % and 0.01 %.",
5
+ "task": "registration",
6
+ "tta": 0,
7
+ "mc_dropout": 0,
8
+ "models": [],
9
+ "inputs": {
10
+ "Fixed": {
11
+ "display_name": "Fixed image",
12
+ "volume_type": "VOLUME",
13
+ "required": true
14
+ },
15
+ "Moving": {
16
+ "display_name": "Moving image",
17
+ "volume_type": "VOLUME",
18
+ "required": true
19
+ },
20
+ "FixedMask": {
21
+ "display_name": "Fixed mask (optional)",
22
+ "volume_type": "SEGMENTATION",
23
+ "required": false,
24
+ "default": "ones"
25
+ },
26
+ "MovingMask": {
27
+ "display_name": "Moving mask (optional)",
28
+ "volume_type": "SEGMENTATION",
29
+ "required": false,
30
+ "default": "ones"
31
+ }
32
+ },
33
+ "outputs": {
34
+ "DisplacementField": {
35
+ "display_name": "Displacement field",
36
+ "volume_type": "VOLUME",
37
+ "required": true
38
+ }
39
+ },
40
+ "inputs_evaluations": {
41
+ "Image": {
42
+ "Evaluation_with_images.yml": {
43
+ "FixedImage": {
44
+ "display_name": "Fixed image",
45
+ "volume_type": "VOLUME",
46
+ "required": true
47
+ },
48
+ "MovingImage": {
49
+ "display_name": "Moving image",
50
+ "volume_type": "VOLUME",
51
+ "required": true
52
+ },
53
+ "Mask": {
54
+ "display_name": "Evaluation mask",
55
+ "volume_type": "SEGMENTATION",
56
+ "required": false
57
+ }
58
+ }
59
+ },
60
+ "Segmentation": {
61
+ "Evaluation_with_seg.yml": {
62
+ "FixedSeg": {
63
+ "display_name": "Fixed segmentation",
64
+ "volume_type": "SEGMENTATION",
65
+ "required": true
66
+ },
67
+ "MovingSeg": {
68
+ "display_name": "Moving segmentation",
69
+ "volume_type": "SEGMENTATION",
70
+ "required": true
71
+ }
72
+ }
73
+ },
74
+ "Landmarks": {
75
+ "Evaluation_with_fid.yml": {
76
+ "FixedFid": {
77
+ "display_name": "Fixed landmarks",
78
+ "volume_type": "FIDUCIALS",
79
+ "required": true
80
+ },
81
+ "MovingFid": {
82
+ "display_name": "Moving landmarks",
83
+ "volume_type": "FIDUCIALS",
84
+ "required": true
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "vram_bytes_per_voxel": 650,
90
+ "tiling": {
91
+ "global": "Prediction.yml",
92
+ "tile": "Prediction_tile.yml",
93
+ "tile_vram_bytes_per_voxel": 650,
94
+ "tile_ram_bytes_per_voxel": 1200
95
+ },
96
+ "ram_bytes_per_voxel": 1200
97
+ }
ConvexAdam_IMPACT_CBCT/icon.png ADDED
ConvexAdam_IMPACT_CBCT/requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ itk-impact>=0.1.1,<0.1.6
2
+ impact_reg_konfai>=1.7.0
ConvexAdam_IMPACT_MRCT/Evaluation_with_fid.yml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedFid:
4
+ targets_criterions:
5
+ MovingFid:
6
+ criterions_loader:
7
+ TRE: {}
8
+ Dataset:
9
+ groups_src:
10
+ Volume_0:
11
+ groups_dest:
12
+ FixedFid:
13
+ transforms: None
14
+ Reference_0:
15
+ groups_dest:
16
+ MovingFid:
17
+ transforms: None
18
+ subset: None
19
+ dataset_filenames:
20
+ - ./Dataset:mha
21
+ validation: None
22
+ train_name: ImpactReg
ConvexAdam_IMPACT_MRCT/Evaluation_with_images.yml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedImage:
4
+ targets_criterions:
5
+ MovingImage;Mask:
6
+ criterions_loader:
7
+ MAESaveMap:
8
+ reduction: mean
9
+ dataset: ./Evaluations/ImpactReg/Output:mha
10
+ group: MAE_map
11
+ Dataset:
12
+ groups_src:
13
+ Volume_0:
14
+ groups_dest:
15
+ FixedImage:
16
+ transforms:
17
+ TensorCast:
18
+ dtype: float32
19
+ Reference_0:
20
+ groups_dest:
21
+ MovingImage:
22
+ transforms:
23
+ TensorCast:
24
+ dtype: float32
25
+ Mask_0:
26
+ groups_dest:
27
+ Mask:
28
+ transforms:
29
+ TensorCast:
30
+ dtype: uint8
31
+ subset: None
32
+ dataset_filenames:
33
+ - ./Dataset:mha
34
+ validation: None
35
+ train_name: ImpactReg
ConvexAdam_IMPACT_MRCT/Evaluation_with_seg.yml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedSeg:
4
+ targets_criterions:
5
+ MovingSeg:
6
+ criterions_loader:
7
+ DiceSaveMap:
8
+ labels: None
9
+ dataset: ./Evaluations/ImpactReg/Output:mha
10
+ group: Seg_MAE_map
11
+ Dataset:
12
+ groups_src:
13
+ Volume_0:
14
+ groups_dest:
15
+ FixedSeg:
16
+ transforms:
17
+ TensorCast:
18
+ dtype: uint8
19
+ Reference_0:
20
+ groups_dest:
21
+ MovingSeg:
22
+ transforms:
23
+ TensorCast:
24
+ dtype: uint8
25
+ subset: None
26
+ dataset_filenames:
27
+ - ./Dataset:mha
28
+ validation: None
29
+ train_name: ImpactReg
ConvexAdam_IMPACT_MRCT/Prediction.yml ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.convexadam:RegistrationNet
4
+ RegistrationNet:
5
+ models:
6
+ '0':
7
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
8
+ layers_mask: '1'
9
+ layers_weight:
10
+ - 1.0
11
+ pca: 0
12
+ distance: L2
13
+ '1':
14
+ ref: VBoussot/impact-torchscript-models:TS/M730.pt
15
+ layers_mask: '00000001'
16
+ layers_weight:
17
+ - 1.0
18
+ pca: 0
19
+ distance: L2
20
+ mixed_precision: false
21
+ grid_spacing: 6
22
+ displacement_half_width: 4
23
+ iterations: 80
24
+ learning_rate: 2.0
25
+ regularization_weight: 2.5
26
+ grid_shrink: 2
27
+ control_grid_smoothing: 3
28
+ linear: true
29
+ linear_iterations: 200
30
+ seed: 42
31
+ outputs_criterions: None
32
+ stages:
33
+ - coarse
34
+ Dataset:
35
+ groups_src:
36
+ Volume_0:
37
+ groups_dest:
38
+ Fixed:
39
+ transforms:
40
+ TensorCast:
41
+ dtype: float32
42
+ inverse: false
43
+ patch_transforms: None
44
+ is_input: true
45
+ Volume_1:
46
+ groups_dest:
47
+ Moving:
48
+ transforms:
49
+ TensorCast:
50
+ dtype: float32
51
+ inverse: false
52
+ patch_transforms: None
53
+ is_input: true
54
+ Volume_2:
55
+ groups_dest:
56
+ FixedMask:
57
+ transforms:
58
+ TensorCast:
59
+ dtype: float32
60
+ inverse: false
61
+ patch_transforms: None
62
+ is_input: true
63
+ Volume_3:
64
+ groups_dest:
65
+ MovingMask:
66
+ transforms:
67
+ TensorCast:
68
+ dtype: float32
69
+ inverse: false
70
+ patch_transforms: None
71
+ is_input: true
72
+ augmentations:
73
+ DataAugmentation_0:
74
+ data_augmentations:
75
+ Flip:
76
+ f_prob:
77
+ - 0
78
+ - 0.5
79
+ - 0.5
80
+ vector_field: true
81
+ prob: 1
82
+ nb: 2
83
+ Patch:
84
+ patch_size:
85
+ - 0
86
+ - 0
87
+ - 0
88
+ overlap: 20%
89
+ pad_value: None
90
+ extend_slice: 0
91
+ mode: resample
92
+ max_voxels: None
93
+ subset: None
94
+ dataset_filenames:
95
+ - ./Dataset/:mha
96
+ batch_size: 1
97
+ num_workers: None
98
+ pin_memory: false
99
+ prefetch_factor: None
100
+ persistent_workers: None
101
+ outputs_dataset:
102
+ DisplacementField:
103
+ OutputDataset:
104
+ name_class: OutputDataset
105
+ before_reduction_transforms: None
106
+ after_reduction_transforms: None
107
+ final_transforms:
108
+ TensorCast:
109
+ dtype: float32
110
+ inverse: false
111
+ dataset_filename: Transform:itktransform
112
+ group: Transform
113
+ same_as_group: Volume_0:Fixed
114
+ patch_combine: Cosinus
115
+ reduction: Mean
116
+ Mean: {}
117
+ train_name: ImpactReg-ConvexAdam-IMPACT-MRCT
118
+ manual_seed: 42
119
+ gpu_checkpoints: None
120
+ combine: Mean
121
+ autocast: false
122
+ data_log: None
ConvexAdam_IMPACT_MRCT/Uncertainty.yml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ Uncertainty:
4
+ targets_criterions:
5
+ None:
6
+ criterions_loader:
7
+ Mean:
8
+ name: Uncertainty
9
+ Dataset:
10
+ groups_src:
11
+ Volume_0:
12
+ groups_dest:
13
+ Uncertainty:
14
+ transforms:
15
+ Norm: {}
16
+ StandardDeviation: {}
17
+ Save:
18
+ dataset: ./Uncertainties/ImpactReg/Output:mha
19
+ group: None
20
+ subset: None
21
+ dataset_filenames:
22
+ - ./Dataset:mha
23
+ validation: None
24
+ train_name: ImpactReg
ConvexAdam_IMPACT_MRCT/app.json ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "display_name": "ConvexAdam, MIND + TotalSegmentator MR segmentation",
3
+ "short_description": "ConvexAdam's coarse search on MIND and the segmentation head of TotalSegmentator MR (TS/M730), for MR/CT.",
4
+ "description": "ConvexAdam's coupled-convex coarse search on MIND and the segmentation head of TotalSegmentator MR (TS/M730), for MR/CT: the one-hot map of its 30 structures, compared by squared differences like MIND, after the affine pre-alignment on mutual information. No Adam refinement: on MR/CT pairs the refinement folded 1 to 2 % of the body and cost the head-and-neck pair about 0.2 of Dice, where the coarse field alone reached a Dice of 0.665, 0.599 and 0.686 on the Learn2Reg abdomen, SynthRAD abdomen and SynthRAD head-and-neck MR/CT pairs, with no fold.",
5
+ "task": "registration",
6
+ "tta": 0,
7
+ "mc_dropout": 0,
8
+ "models": [],
9
+ "inputs": {
10
+ "Fixed": {
11
+ "display_name": "Fixed image",
12
+ "volume_type": "VOLUME",
13
+ "required": true
14
+ },
15
+ "Moving": {
16
+ "display_name": "Moving image",
17
+ "volume_type": "VOLUME",
18
+ "required": true
19
+ },
20
+ "FixedMask": {
21
+ "display_name": "Fixed mask (optional)",
22
+ "volume_type": "SEGMENTATION",
23
+ "required": false,
24
+ "default": "ones"
25
+ },
26
+ "MovingMask": {
27
+ "display_name": "Moving mask (optional)",
28
+ "volume_type": "SEGMENTATION",
29
+ "required": false,
30
+ "default": "ones"
31
+ }
32
+ },
33
+ "outputs": {
34
+ "DisplacementField": {
35
+ "display_name": "Displacement field",
36
+ "volume_type": "VOLUME",
37
+ "required": true
38
+ }
39
+ },
40
+ "inputs_evaluations": {
41
+ "Image": {
42
+ "Evaluation_with_images.yml": {
43
+ "FixedImage": {
44
+ "display_name": "Fixed image",
45
+ "volume_type": "VOLUME",
46
+ "required": true
47
+ },
48
+ "MovingImage": {
49
+ "display_name": "Moving image",
50
+ "volume_type": "VOLUME",
51
+ "required": true
52
+ },
53
+ "Mask": {
54
+ "display_name": "Evaluation mask",
55
+ "volume_type": "SEGMENTATION",
56
+ "required": false
57
+ }
58
+ }
59
+ },
60
+ "Segmentation": {
61
+ "Evaluation_with_seg.yml": {
62
+ "FixedSeg": {
63
+ "display_name": "Fixed segmentation",
64
+ "volume_type": "SEGMENTATION",
65
+ "required": true
66
+ },
67
+ "MovingSeg": {
68
+ "display_name": "Moving segmentation",
69
+ "volume_type": "SEGMENTATION",
70
+ "required": true
71
+ }
72
+ }
73
+ },
74
+ "Landmarks": {
75
+ "Evaluation_with_fid.yml": {
76
+ "FixedFid": {
77
+ "display_name": "Fixed landmarks",
78
+ "volume_type": "FIDUCIALS",
79
+ "required": true
80
+ },
81
+ "MovingFid": {
82
+ "display_name": "Moving landmarks",
83
+ "volume_type": "FIDUCIALS",
84
+ "required": true
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "vram_bytes_per_voxel": 1150,
90
+ "tiling": {
91
+ "global": "Prediction.yml"
92
+ },
93
+ "ram_bytes_per_voxel": 2050
94
+ }
ConvexAdam_IMPACT_MRCT/icon.png ADDED
ConvexAdam_IMPACT_MRCT/requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ itk-impact>=0.1.1,<0.1.6
2
+ impact_reg_konfai>=1.7.0
Elastix_IMPACT_Jacobian/ParameterMap_Jacobian.txt CHANGED
@@ -5,6 +5,7 @@
5
  (FinalGridSpacingInPhysicalUnits 10)
6
  (FixedImagePyramid "FixedGenericImagePyramid")
7
  (MovingImagePyramid "MovingGenericImagePyramid")
 
8
  (FixedImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
9
  (MovingImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
10
  // (GridSpacingSchedule 10.000000 5.000000 2.000000 1.000000)
 
5
  (FinalGridSpacingInPhysicalUnits 10)
6
  (FixedImagePyramid "FixedGenericImagePyramid")
7
  (MovingImagePyramid "MovingGenericImagePyramid")
8
+ (ComputePyramidImagesPerResolution "true")
9
  (FixedImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
10
  (MovingImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1)
11
  // (GridSpacingSchedule 10.000000 5.000000 2.000000 1.000000)
Elastix_IMPACT_Jacobian/Parameters_Rigid.txt ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Example parameter file for rotation registration
2
+ // C-style comments: //
3
+
4
+ // The internal pixel type, used for internal computations
5
+ // Leave to float in general.
6
+ // NB: this is not the type of the input images! The pixel
7
+ // type of the input images is automatically read from the
8
+ // images themselves.
9
+ // This setting can be changed to "short" to save some memory
10
+ // in case of very large 3D images.
11
+ (FixedInternalImagePixelType "float")
12
+ (MovingInternalImagePixelType "float")
13
+
14
+ // **************** Main Components **************************
15
+
16
+ // The following components should usually be left as they are:
17
+ (Registration "MultiResolutionRegistration")
18
+ (Interpolator "BSplineInterpolator")
19
+ (ResampleInterpolator "FinalBSplineInterpolator")
20
+ (Resampler "DefaultResampler")
21
+
22
+ // These may be changed to Fixed/MovingSmoothingImagePyramid.
23
+ // See the manual.
24
+ (FixedImagePyramid "FixedRecursiveImagePyramid")
25
+ (MovingImagePyramid "MovingRecursiveImagePyramid")
26
+
27
+ // The following components are most important:
28
+ // The optimizer AdaptiveStochasticGradientDescent (ASGD) works
29
+ // quite ok in general. The Transform and Metric are important
30
+ // and need to be chosen careful for each application. See manual.
31
+ (Optimizer "AdaptiveStochasticGradientDescent")
32
+ (Transform "EulerTransform")
33
+ (Metric "AdvancedMattesMutualInformation")
34
+
35
+ // ***************** Transformation **************************
36
+
37
+ // Scales the rotations compared to the translations, to make
38
+ // sure they are in the same range. In general, it's best to
39
+ // use automatic scales estimation:
40
+ (AutomaticScalesEstimation "true")
41
+
42
+ // Automatically guess an initial translation by aligning the
43
+ // geometric centers of the fixed and moving.
44
+ (AutomaticTransformInitialization "true")
45
+
46
+ // Whether transforms are combined by composition or by addition.
47
+ // In generally, Compose is the best option in most cases.
48
+ // It does not influence the results very much.
49
+ (HowToCombineTransforms "Compose")
50
+
51
+ //Save composite ITK transform
52
+ (ITKTransformOutputFileNameExtension "itk.txt")
53
+ (WriteITKCompositeTransform "true")
54
+
55
+ // ******************* Similarity measure *********************
56
+
57
+ // Number of grey level bins in each resolution level,
58
+ // for the mutual information. 16 or 32 usually works fine.
59
+ // You could also employ a hierarchical strategy:
60
+ //(NumberOfHistogramBins 16 32 64)
61
+ (NumberOfHistogramBins 32)
62
+
63
+ // If you use a mask, this option is important.
64
+ // If the mask serves as region of interest, set it to false.
65
+ // If the mask indicates which pixels are valid, then set it to true.
66
+ // If you do not use a mask, the option doesn't matter.
67
+ (ErodeMask "false")
68
+
69
+ // ******************** Multiresolution **********************
70
+
71
+ // The number of resolutions. 1 Is only enough if the expected
72
+ // deformations are small. 3 or 4 mostly works fine. For large
73
+ // images and large deformations, 5 or 6 may even be useful.
74
+ (NumberOfResolutions 4)
75
+
76
+ // The downsampling/blurring factors for the image pyramids.
77
+ // By default, the images are downsampled by a factor of 2
78
+ // compared to the next resolution.
79
+ // So, in 2D, with 4 resolutions, the following schedule is used:
80
+ //(ImagePyramidSchedule 8 8 4 4 2 2 1 1 )
81
+ // And in 3D:
82
+ //(ImagePyramidSchedule 8 8 8 4 4 4 2 2 2 1 1 1 )
83
+ // You can specify any schedule, for example:
84
+ //(ImagePyramidSchedule 4 4 4 3 2 1 1 1 )
85
+ // Make sure that the number of elements equals the number
86
+ // of resolutions times the image dimension.
87
+
88
+ // ******************* Optimizer ****************************
89
+
90
+ // Maximum number of iterations in each resolution level:
91
+ // 200-500 works usually fine for rigid registration.
92
+ // For more robustness, you may increase this to 1000-2000.
93
+ (MaximumNumberOfIterations 250)
94
+
95
+ // The step size of the optimizer, in mm. By default the voxel size is used.
96
+ // which usually works well. In case of unusual high-resolution images
97
+ // (eg histology) it is necessary to increase this value a bit, to the size
98
+ // of the "smallest visible structure" in the image:
99
+ //(MaximumStepLength 1.0)
100
+
101
+ // **************** Image sampling **********************
102
+
103
+ // Number of spatial samples used to compute the mutual
104
+ // information (and its derivative) in each iteration.
105
+ // With an AdaptiveStochasticGradientDescent optimizer,
106
+ // in combination with the two options below, around 2000
107
+ // samples may already suffice.
108
+ (NumberOfSpatialSamples 2048)
109
+
110
+ // Refresh these spatial samples in every iteration, and select
111
+ // them randomly. See the manual for information on other sampling
112
+ // strategies.
113
+ (NewSamplesEveryIteration "true")
114
+ (ImageSampler "Random")
115
+
116
+ // ************* Interpolation and Resampling ****************
117
+
118
+ // Order of B-Spline interpolation used during registration/optimisation.
119
+ // It may improve accuracy if you set this to 3. Never use 0.
120
+ // An order of 1 gives linear interpolation. This is in most
121
+ // applications a good choice.
122
+ (BSplineInterpolationOrder 1)
123
+
124
+ // Order of B-Spline interpolation used for applying the final
125
+ // deformation.
126
+ // 3 gives good accuracy; recommended in most cases.
127
+ // 1 gives worse accuracy (linear interpolation)
128
+ // 0 gives worst accuracy, but is appropriate for binary images
129
+ // (masks, segmentations); equivalent to nearest neighbor interpolation.
130
+ (FinalBSplineInterpolationOrder 3)
131
+
132
+ //Default pixel value for pixels that come from outside the picture:
133
+ (DefaultPixelValue 0)
134
+
135
+ // Choose whether to generate the deformed moving image.
136
+ // You can save some time by setting this to false, if you are
137
+ // only interested in the final (nonrigidly) deformed moving image
138
+ // for example.
139
+ (WriteResultImage "false")
140
+
141
+ // The pixel type and format of the resulting deformed moving image
142
+ (ResultImagePixelType "short")
143
+ (ResultImageFormat "mha")
144
+ (WriteTransformParametersEachIteration "false")
145
+ (WriteTransformParametersEachResolution "false")
146
+ (WriteIterationInfo "false")
147
+
Elastix_IMPACT_Jacobian/Prediction.yml CHANGED
@@ -4,23 +4,23 @@ Predictor:
4
  RegistrationNet:
5
  engine: elastix
6
  parameter_maps:
 
7
  - ParameterMap_Jacobian.txt
8
  outputs_criterions: None
9
  max_iterations: 0
10
  final_grid_spacing: 10.0
11
- subset_features: 0
12
  spatial_samples: 2000
13
  parameter_overrides: []
14
- resolutions:
15
  '0':
16
  max_iterations: 300
17
  models:
18
  '0':
19
  ref: VBoussot/impact-torchscript-models:TS/M730.pt
20
  voxel_size:
21
- - 6.0
22
- - 6.0
23
- - 6.0
24
  layers_mask: '01'
25
  layers_weight:
26
  - 1.0
@@ -88,6 +88,7 @@ Predictor:
88
  pca: 0
89
  distance: L1
90
  mode: Jacobian
 
91
  Dataset:
92
  groups_src:
93
  Volume_0:
@@ -145,6 +146,8 @@ Predictor:
145
  overlap: 20%
146
  pad_value: None
147
  extend_slice: 0
 
 
148
  subset: None
149
  dataset_filenames:
150
  - ./Dataset/:mha
 
4
  RegistrationNet:
5
  engine: elastix
6
  parameter_maps:
7
+ - Parameters_Rigid.txt
8
  - ParameterMap_Jacobian.txt
9
  outputs_criterions: None
10
  max_iterations: 0
11
  final_grid_spacing: 10.0
 
12
  spatial_samples: 2000
13
  parameter_overrides: []
14
+ levels:
15
  '0':
16
  max_iterations: 300
17
  models:
18
  '0':
19
  ref: VBoussot/impact-torchscript-models:TS/M730.pt
20
  voxel_size:
21
+ - 3.0
22
+ - 3.0
23
+ - 3.0
24
  layers_mask: '01'
25
  layers_weight:
26
  - 1.0
 
88
  pca: 0
89
  distance: L1
90
  mode: Jacobian
91
+ mixed_precision: true
92
  Dataset:
93
  groups_src:
94
  Volume_0:
 
146
  overlap: 20%
147
  pad_value: None
148
  extend_slice: 0
149
+ mode: resample
150
+ max_voxels: None
151
  subset: None
152
  dataset_filenames:
153
  - ./Dataset/:mha
Elastix_IMPACT_Jacobian/app.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "display_name": "elastix + IMPACT (Jacobian), TotalSegmentator M730",
3
- "short_description": "elastix B-spline driven by IMPACT on TotalSegmentator M730, early layers, Jacobian mode: the loss is differentiated through the network on a patch sized to the layers' field of view. The pairing that suits CT and CBCT, where texture carries the alignment.",
4
- "description": "elastix B-spline driven by IMPACT on TotalSegmentator M730, early layers, Jacobian mode: the loss is differentiated through the network on a patch sized to the layers' field of view. The pairing that suits CT and CBCT, where texture carries the alignment.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
@@ -85,5 +85,10 @@
85
  }
86
  }
87
  }
88
- }
89
- }
 
 
 
 
 
 
1
  {
2
  "display_name": "elastix + IMPACT (Jacobian), TotalSegmentator M730",
3
+ "short_description": "A rigid alignment on mutual information, then an elastix B-spline driven by IMPACT on TotalSegmentator M730, early layers, Jacobian mode: the loss is differentiated through the network on a patch sized to the layers' field of view. The pairing that suits CT and CBCT, where texture carries the alignment.",
4
+ "description": "A rigid alignment on mutual information, then an elastix B-spline driven by IMPACT on TotalSegmentator M730, early layers, Jacobian mode: the loss is differentiated through the network on a patch sized to the layers' field of view. The pairing that suits CT and CBCT, where texture carries the alignment.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
 
85
  }
86
  }
87
  }
88
+ },
89
+ "vram_bytes_per_voxel": 350,
90
+ "tiling": {
91
+ "global": "Prediction.yml"
92
+ },
93
+ "ram_bytes_per_voxel": 1150
94
+ }
Elastix_IMPACT_Static/ParameterMap_Static.txt CHANGED
@@ -5,6 +5,7 @@
5
  (FinalGridSpacingInPhysicalUnits 14)
6
  (FixedImagePyramid "FixedGenericImagePyramid")
7
  (MovingImagePyramid "MovingGenericImagePyramid")
 
8
  (FixedImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1)
9
  (MovingImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1)
10
  // (GridSpacingSchedule 10.000000 5.000000 2.000000 1.000000)
 
5
  (FinalGridSpacingInPhysicalUnits 14)
6
  (FixedImagePyramid "FixedGenericImagePyramid")
7
  (MovingImagePyramid "MovingGenericImagePyramid")
8
+ (ComputePyramidImagesPerResolution "true")
9
  (FixedImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1)
10
  (MovingImagePyramidRescaleSchedule 1 1 1 1 1 1 1 1 1 1 1 1)
11
  // (GridSpacingSchedule 10.000000 5.000000 2.000000 1.000000)
Elastix_IMPACT_Static/Parameters_Rigid.txt ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Example parameter file for rotation registration
2
+ // C-style comments: //
3
+
4
+ // The internal pixel type, used for internal computations
5
+ // Leave to float in general.
6
+ // NB: this is not the type of the input images! The pixel
7
+ // type of the input images is automatically read from the
8
+ // images themselves.
9
+ // This setting can be changed to "short" to save some memory
10
+ // in case of very large 3D images.
11
+ (FixedInternalImagePixelType "float")
12
+ (MovingInternalImagePixelType "float")
13
+
14
+ // **************** Main Components **************************
15
+
16
+ // The following components should usually be left as they are:
17
+ (Registration "MultiResolutionRegistration")
18
+ (Interpolator "BSplineInterpolator")
19
+ (ResampleInterpolator "FinalBSplineInterpolator")
20
+ (Resampler "DefaultResampler")
21
+
22
+ // These may be changed to Fixed/MovingSmoothingImagePyramid.
23
+ // See the manual.
24
+ (FixedImagePyramid "FixedRecursiveImagePyramid")
25
+ (MovingImagePyramid "MovingRecursiveImagePyramid")
26
+
27
+ // The following components are most important:
28
+ // The optimizer AdaptiveStochasticGradientDescent (ASGD) works
29
+ // quite ok in general. The Transform and Metric are important
30
+ // and need to be chosen careful for each application. See manual.
31
+ (Optimizer "AdaptiveStochasticGradientDescent")
32
+ (Transform "EulerTransform")
33
+ (Metric "AdvancedMattesMutualInformation")
34
+
35
+ // ***************** Transformation **************************
36
+
37
+ // Scales the rotations compared to the translations, to make
38
+ // sure they are in the same range. In general, it's best to
39
+ // use automatic scales estimation:
40
+ (AutomaticScalesEstimation "true")
41
+
42
+ // Automatically guess an initial translation by aligning the
43
+ // geometric centers of the fixed and moving.
44
+ (AutomaticTransformInitialization "true")
45
+
46
+ // Whether transforms are combined by composition or by addition.
47
+ // In generally, Compose is the best option in most cases.
48
+ // It does not influence the results very much.
49
+ (HowToCombineTransforms "Compose")
50
+
51
+ //Save composite ITK transform
52
+ (ITKTransformOutputFileNameExtension "itk.txt")
53
+ (WriteITKCompositeTransform "true")
54
+
55
+ // ******************* Similarity measure *********************
56
+
57
+ // Number of grey level bins in each resolution level,
58
+ // for the mutual information. 16 or 32 usually works fine.
59
+ // You could also employ a hierarchical strategy:
60
+ //(NumberOfHistogramBins 16 32 64)
61
+ (NumberOfHistogramBins 32)
62
+
63
+ // If you use a mask, this option is important.
64
+ // If the mask serves as region of interest, set it to false.
65
+ // If the mask indicates which pixels are valid, then set it to true.
66
+ // If you do not use a mask, the option doesn't matter.
67
+ (ErodeMask "false")
68
+
69
+ // ******************** Multiresolution **********************
70
+
71
+ // The number of resolutions. 1 Is only enough if the expected
72
+ // deformations are small. 3 or 4 mostly works fine. For large
73
+ // images and large deformations, 5 or 6 may even be useful.
74
+ (NumberOfResolutions 4)
75
+
76
+ // The downsampling/blurring factors for the image pyramids.
77
+ // By default, the images are downsampled by a factor of 2
78
+ // compared to the next resolution.
79
+ // So, in 2D, with 4 resolutions, the following schedule is used:
80
+ //(ImagePyramidSchedule 8 8 4 4 2 2 1 1 )
81
+ // And in 3D:
82
+ //(ImagePyramidSchedule 8 8 8 4 4 4 2 2 2 1 1 1 )
83
+ // You can specify any schedule, for example:
84
+ //(ImagePyramidSchedule 4 4 4 3 2 1 1 1 )
85
+ // Make sure that the number of elements equals the number
86
+ // of resolutions times the image dimension.
87
+
88
+ // ******************* Optimizer ****************************
89
+
90
+ // Maximum number of iterations in each resolution level:
91
+ // 200-500 works usually fine for rigid registration.
92
+ // For more robustness, you may increase this to 1000-2000.
93
+ (MaximumNumberOfIterations 250)
94
+
95
+ // The step size of the optimizer, in mm. By default the voxel size is used.
96
+ // which usually works well. In case of unusual high-resolution images
97
+ // (eg histology) it is necessary to increase this value a bit, to the size
98
+ // of the "smallest visible structure" in the image:
99
+ //(MaximumStepLength 1.0)
100
+
101
+ // **************** Image sampling **********************
102
+
103
+ // Number of spatial samples used to compute the mutual
104
+ // information (and its derivative) in each iteration.
105
+ // With an AdaptiveStochasticGradientDescent optimizer,
106
+ // in combination with the two options below, around 2000
107
+ // samples may already suffice.
108
+ (NumberOfSpatialSamples 2048)
109
+
110
+ // Refresh these spatial samples in every iteration, and select
111
+ // them randomly. See the manual for information on other sampling
112
+ // strategies.
113
+ (NewSamplesEveryIteration "true")
114
+ (ImageSampler "Random")
115
+
116
+ // ************* Interpolation and Resampling ****************
117
+
118
+ // Order of B-Spline interpolation used during registration/optimisation.
119
+ // It may improve accuracy if you set this to 3. Never use 0.
120
+ // An order of 1 gives linear interpolation. This is in most
121
+ // applications a good choice.
122
+ (BSplineInterpolationOrder 1)
123
+
124
+ // Order of B-Spline interpolation used for applying the final
125
+ // deformation.
126
+ // 3 gives good accuracy; recommended in most cases.
127
+ // 1 gives worse accuracy (linear interpolation)
128
+ // 0 gives worst accuracy, but is appropriate for binary images
129
+ // (masks, segmentations); equivalent to nearest neighbor interpolation.
130
+ (FinalBSplineInterpolationOrder 3)
131
+
132
+ //Default pixel value for pixels that come from outside the picture:
133
+ (DefaultPixelValue 0)
134
+
135
+ // Choose whether to generate the deformed moving image.
136
+ // You can save some time by setting this to false, if you are
137
+ // only interested in the final (nonrigidly) deformed moving image
138
+ // for example.
139
+ (WriteResultImage "false")
140
+
141
+ // The pixel type and format of the resulting deformed moving image
142
+ (ResultImagePixelType "short")
143
+ (ResultImageFormat "mha")
144
+ (WriteTransformParametersEachIteration "false")
145
+ (WriteTransformParametersEachResolution "false")
146
+ (WriteIterationInfo "false")
147
+
Elastix_IMPACT_Static/Prediction.yml CHANGED
@@ -4,14 +4,14 @@ Predictor:
4
  RegistrationNet:
5
  engine: elastix
6
  parameter_maps:
 
7
  - ParameterMap_Static.txt
8
  outputs_criterions: None
9
  max_iterations: 0
10
- final_grid_spacing: 14.0
11
- subset_features: 0
12
  spatial_samples: 2000
13
  parameter_overrides: []
14
- resolutions:
15
  '0':
16
  max_iterations: 400
17
  models:
@@ -30,9 +30,9 @@ Predictor:
30
  '1':
31
  ref: VBoussot/impact-torchscript-models:TS/M730.pt
32
  voxel_size:
33
- - 6.0
34
- - 6.0
35
- - 6.0
36
  layers_mask: '0000001'
37
  layers_weight:
38
  - 0.8
@@ -87,7 +87,7 @@ Predictor:
87
  - 2.0
88
  - 2.0
89
  - 2.0
90
- layers_mask: '0000001'
91
  layers_weight:
92
  - 0.4
93
  subset_features: 64
@@ -114,13 +114,14 @@ Predictor:
114
  - 2.0
115
  - 2.0
116
  - 2.0
117
- layers_mask: '0000001'
118
  layers_weight:
119
  - 0.3
120
  subset_features: 64
121
  pca: 0
122
  distance: Dice
123
  mode: Static
 
124
  Dataset:
125
  groups_src:
126
  Volume_0:
@@ -178,6 +179,8 @@ Predictor:
178
  overlap: 20%
179
  pad_value: None
180
  extend_slice: 0
 
 
181
  subset: None
182
  dataset_filenames:
183
  - ./Dataset/:mha
 
4
  RegistrationNet:
5
  engine: elastix
6
  parameter_maps:
7
+ - Parameters_Rigid.txt
8
  - ParameterMap_Static.txt
9
  outputs_criterions: None
10
  max_iterations: 0
11
+ final_grid_spacing: 20.0
 
12
  spatial_samples: 2000
13
  parameter_overrides: []
14
+ levels:
15
  '0':
16
  max_iterations: 400
17
  models:
 
30
  '1':
31
  ref: VBoussot/impact-torchscript-models:TS/M730.pt
32
  voxel_size:
33
+ - 3.0
34
+ - 3.0
35
+ - 3.0
36
  layers_mask: '0000001'
37
  layers_weight:
38
  - 0.8
 
87
  - 2.0
88
  - 2.0
89
  - 2.0
90
+ layers_mask: '00000001'
91
  layers_weight:
92
  - 0.4
93
  subset_features: 64
 
114
  - 2.0
115
  - 2.0
116
  - 2.0
117
+ layers_mask: '00000001'
118
  layers_weight:
119
  - 0.3
120
  subset_features: 64
121
  pca: 0
122
  distance: Dice
123
  mode: Static
124
+ mixed_precision: true
125
  Dataset:
126
  groups_src:
127
  Volume_0:
 
179
  overlap: 20%
180
  pad_value: None
181
  extend_slice: 0
182
+ mode: resample
183
+ max_voxels: None
184
  subset: None
185
  dataset_filenames:
186
  - ./Dataset/:mha
Elastix_IMPACT_Static/app.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "display_name": "elastix + IMPACT (Static), TotalSegmentator M730",
3
- "short_description": "elastix B-spline driven by IMPACT on TotalSegmentator M730, last layer, Static mode: the features are extracted once on the whole image. The pairing that suits MR and CT, where the contours and the segmentation-level features carry the alignment across modalities.",
4
- "description": "elastix B-spline driven by IMPACT on TotalSegmentator M730, last layer, Static mode: the features are extracted once on the whole image. The pairing that suits MR and CT, where the contours and the segmentation-level features carry the alignment across modalities.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
@@ -85,5 +85,10 @@
85
  }
86
  }
87
  }
88
- }
89
- }
 
 
 
 
 
 
1
  {
2
  "display_name": "elastix + IMPACT (Static), TotalSegmentator M730",
3
+ "short_description": "A rigid alignment on mutual information, then an elastix B-spline driven by IMPACT on TotalSegmentator M730 (its last decoder layer at the two coarse levels, its segmentation head at the two fine ones) and MIND, Static mode: the features are extracted once on the whole image. The pairing that suits MR and CT, where the contours and the segmentation-level features carry the alignment across modalities.",
4
+ "description": "A rigid alignment on mutual information, then an elastix B-spline driven by IMPACT on TotalSegmentator M730 (its last decoder layer at the two coarse levels, its segmentation head at the two fine ones) and MIND, Static mode: the features are extracted once on the whole image. The pairing that suits MR and CT, where the contours and the segmentation-level features carry the alignment across modalities.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
 
85
  }
86
  }
87
  }
88
+ },
89
+ "vram_bytes_per_voxel": 150,
90
+ "tiling": {
91
+ "global": "Prediction.yml"
92
+ },
93
+ "ram_bytes_per_voxel": 950
94
+ }
FireANTs_Anatomix/Prediction.yml CHANGED
@@ -19,35 +19,37 @@ Predictor:
19
  - 100
20
  cc_kernel: 5
21
  affine_metric: mi
22
- affine_lr: 0.003
23
  deformable_method: syn
24
  deformable_metric: impact
25
- deformable_lr: 1.0
26
  integrator_n: 10
27
- smooth_warp_sigma: 0.5
28
  smooth_grad_sigma: 1.0
29
  seed: 42
30
  models:
31
  '0':
32
  ref: VBoussot/impact-torchscript-models:Anatomix/Anatomix.pt
33
  layers_mask: '1'
34
- layers_weight: 1.0
 
35
  pca: 8
36
- distance: L2
 
37
  '1':
38
  ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
39
  layers_mask: '1'
40
- layers_weight: 1.0
 
41
  pca: 6
42
- distance: L1
 
43
  outputs_criterions: None
44
  mode: Static
45
  feature_patch: 0
46
  feature_chunk: 0
47
  feature_overlap: 0.25
48
- feature_multiple: 16
49
- feature_normalization: l2
50
- feature_metric: cc
51
  Dataset:
52
  groups_src:
53
  Volume_0:
@@ -105,6 +107,8 @@ Predictor:
105
  overlap: 20%
106
  pad_value: None
107
  extend_slice: 0
 
 
108
  subset: None
109
  dataset_filenames:
110
  - ./Dataset/:mha
 
19
  - 100
20
  cc_kernel: 5
21
  affine_metric: mi
22
+ affine_lr: 0.03
23
  deformable_method: syn
24
  deformable_metric: impact
25
+ deformable_lr: 0.5
26
  integrator_n: 10
27
+ smooth_warp_sigma: 1.0
28
  smooth_grad_sigma: 1.0
29
  seed: 42
30
  models:
31
  '0':
32
  ref: VBoussot/impact-torchscript-models:Anatomix/Anatomix.pt
33
  layers_mask: '1'
34
+ layers_weight:
35
+ - 1.0
36
  pca: 8
37
+ distance: LNCC
38
+ feature_normalization: l2
39
  '1':
40
  ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
41
  layers_mask: '1'
42
+ layers_weight:
43
+ - 1.0
44
  pca: 6
45
+ distance: LNCC
46
+ feature_normalization: l2
47
  outputs_criterions: None
48
  mode: Static
49
  feature_patch: 0
50
  feature_chunk: 0
51
  feature_overlap: 0.25
52
+ lncc_kernel: 5
 
 
53
  Dataset:
54
  groups_src:
55
  Volume_0:
 
107
  overlap: 20%
108
  pad_value: None
109
  extend_slice: 0
110
+ mode: resample
111
+ max_voxels: None
112
  subset: None
113
  dataset_filenames:
114
  - ./Dataset/:mha
FireANTs_Anatomix/Prediction_tile.yml ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.fireants:RegistrationNet
4
+ RegistrationNet:
5
+ scales:
6
+ - 6
7
+ - 4
8
+ - 2
9
+ - 1
10
+ affine_iterations:
11
+ - 100
12
+ - 100
13
+ - 100
14
+ - 100
15
+ deformable_iterations:
16
+ - 100
17
+ - 100
18
+ - 100
19
+ - 100
20
+ cc_kernel: 5
21
+ affine_metric: mi
22
+ affine_lr: 0.03
23
+ deformable_method: syn
24
+ deformable_metric: impact
25
+ deformable_lr: 0.5
26
+ integrator_n: 10
27
+ smooth_warp_sigma: 1.0
28
+ smooth_grad_sigma: 1.0
29
+ seed: 42
30
+ models:
31
+ '0':
32
+ ref: VBoussot/impact-torchscript-models:Anatomix/Anatomix.pt
33
+ layers_mask: '1'
34
+ layers_weight:
35
+ - 1.0
36
+ pca: 8
37
+ distance: LNCC
38
+ feature_normalization: l2
39
+ '1':
40
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
41
+ layers_mask: '1'
42
+ layers_weight:
43
+ - 1.0
44
+ pca: 6
45
+ distance: LNCC
46
+ feature_normalization: l2
47
+ outputs_criterions: None
48
+ mode: Static
49
+ feature_patch: 0
50
+ feature_chunk: 0
51
+ feature_overlap: 0.25
52
+ linear_method: none
53
+ lncc_kernel: 5
54
+ Dataset:
55
+ groups_src:
56
+ Volume_0:
57
+ groups_dest:
58
+ Fixed:
59
+ transforms:
60
+ TensorCast:
61
+ dtype: float32
62
+ inverse: false
63
+ patch_transforms: None
64
+ is_input: true
65
+ Volume_1:
66
+ groups_dest:
67
+ Moving:
68
+ transforms:
69
+ TensorCast:
70
+ dtype: float32
71
+ inverse: false
72
+ patch_transforms: None
73
+ is_input: true
74
+ Volume_2:
75
+ groups_dest:
76
+ FixedMask:
77
+ transforms:
78
+ TensorCast:
79
+ dtype: float32
80
+ inverse: false
81
+ patch_transforms: None
82
+ is_input: true
83
+ Volume_3:
84
+ groups_dest:
85
+ MovingMask:
86
+ transforms:
87
+ TensorCast:
88
+ dtype: float32
89
+ inverse: false
90
+ patch_transforms: None
91
+ is_input: true
92
+ augmentations:
93
+ DataAugmentation_0:
94
+ data_augmentations:
95
+ Flip:
96
+ f_prob:
97
+ - 0
98
+ - 0.5
99
+ - 0.5
100
+ vector_field: true
101
+ prob: 1
102
+ nb: 2
103
+ Patch:
104
+ patch_size:
105
+ - 0
106
+ - 0
107
+ - 0
108
+ overlap: 20%
109
+ pad_value: None
110
+ extend_slice: 0
111
+ mode: tile
112
+ max_voxels: None
113
+ subset: None
114
+ dataset_filenames:
115
+ - ./Dataset/:mha
116
+ batch_size: 1
117
+ num_workers: None
118
+ pin_memory: false
119
+ prefetch_factor: None
120
+ persistent_workers: None
121
+ outputs_dataset:
122
+ DisplacementField:
123
+ OutputDataset:
124
+ name_class: OutputDataset
125
+ before_reduction_transforms: None
126
+ after_reduction_transforms: None
127
+ final_transforms:
128
+ TensorCast:
129
+ dtype: float32
130
+ inverse: false
131
+ dataset_filename: Transform:itktransform
132
+ group: Transform
133
+ same_as_group: Volume_0:Fixed
134
+ patch_combine: Cosinus
135
+ reduction: Mean
136
+ Mean: {}
137
+ train_name: ImpactReg-FireANTs-Anatomix
138
+ manual_seed: 42
139
+ gpu_checkpoints: None
140
+ combine: Mean
141
+ autocast: false
142
+ data_log: None
FireANTs_Anatomix/app.json CHANGED
@@ -85,5 +85,16 @@
85
  }
86
  }
87
  }
88
- }
89
- }
 
 
 
 
 
 
 
 
 
 
 
 
85
  }
86
  }
87
  }
88
+ },
89
+ "vram_bytes_per_voxel": 1950,
90
+ "tiling": {
91
+ "global": "Prediction.yml",
92
+ "tile": "Prediction_tile.yml",
93
+ "tile_vram_bytes_per_voxel": 1950,
94
+ "tile_ram_bytes_per_voxel": 1400
95
+ },
96
+ "requirements_no_deps": [
97
+ "fireants>=1.5,<1.6"
98
+ ],
99
+ "ram_bytes_per_voxel": 1500
100
+ }
FireANTs_Anatomix/requirements.txt CHANGED
@@ -1,4 +1,8 @@
1
  hydra-core
2
  nibabel
3
  pandas
 
4
  impact_reg_konfai>=1.7.0
 
 
 
 
1
  hydra-core
2
  nibabel
3
  pandas
4
+ scipy
5
  impact_reg_konfai>=1.7.0
6
+ matplotlib
7
+ scikit-image
8
+ tqdm
FireANTs_IMPACT/Prediction.yml CHANGED
@@ -16,7 +16,7 @@ Predictor:
16
  - 50
17
  cc_kernel: 5
18
  affine_metric: mi
19
- affine_lr: 0.003
20
  deformable_method: syn
21
  deformable_metric: impact
22
  deformable_lr: 0.25
@@ -28,9 +28,12 @@ Predictor:
28
  '0':
29
  ref: VBoussot/impact-torchscript-models:TS/M291.pt
30
  layers_mask: '01'
31
- layers_weight: 1.0
 
32
  pca: 0
33
  distance: L1
 
 
34
  outputs_criterions: None
35
  Dataset:
36
  groups_src:
@@ -82,10 +85,15 @@ Predictor:
82
  prob: 1
83
  nb: 2
84
  Patch:
85
- patch_size: [0, 0, 0]
 
 
 
86
  overlap: 20%
87
  pad_value: None
88
  extend_slice: 0
 
 
89
  subset: None
90
  dataset_filenames:
91
  - ./Dataset/:mha
 
16
  - 50
17
  cc_kernel: 5
18
  affine_metric: mi
19
+ affine_lr: 0.03
20
  deformable_method: syn
21
  deformable_metric: impact
22
  deformable_lr: 0.25
 
28
  '0':
29
  ref: VBoussot/impact-torchscript-models:TS/M291.pt
30
  layers_mask: '01'
31
+ layers_weight:
32
+ - 1.0
33
  pca: 0
34
  distance: L1
35
+ feature_normalization: none
36
+ mode: Jacobian
37
  outputs_criterions: None
38
  Dataset:
39
  groups_src:
 
85
  prob: 1
86
  nb: 2
87
  Patch:
88
+ patch_size:
89
+ - 0
90
+ - 0
91
+ - 0
92
  overlap: 20%
93
  pad_value: None
94
  extend_slice: 0
95
+ mode: resample
96
+ max_voxels: None
97
  subset: None
98
  dataset_filenames:
99
  - ./Dataset/:mha
FireANTs_IMPACT/Prediction_tile.yml ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.fireants:RegistrationNet
4
+ RegistrationNet:
5
+ scales:
6
+ - 4
7
+ - 2
8
+ - 1
9
+ affine_iterations:
10
+ - 200
11
+ - 100
12
+ - 50
13
+ deformable_iterations:
14
+ - 200
15
+ - 100
16
+ - 50
17
+ cc_kernel: 5
18
+ affine_metric: mi
19
+ affine_lr: 0.03
20
+ deformable_method: syn
21
+ deformable_metric: impact
22
+ deformable_lr: 0.25
23
+ integrator_n: 10
24
+ smooth_warp_sigma: 0.5
25
+ smooth_grad_sigma: 1.0
26
+ seed: 42
27
+ models:
28
+ '0':
29
+ ref: VBoussot/impact-torchscript-models:TS/M291.pt
30
+ layers_mask: '01'
31
+ layers_weight:
32
+ - 1.0
33
+ pca: 0
34
+ distance: L1
35
+ feature_normalization: none
36
+ mode: Jacobian
37
+ outputs_criterions: None
38
+ linear_method: none
39
+ Dataset:
40
+ groups_src:
41
+ Volume_0:
42
+ groups_dest:
43
+ Fixed:
44
+ transforms:
45
+ TensorCast:
46
+ dtype: float32
47
+ inverse: false
48
+ patch_transforms: None
49
+ is_input: true
50
+ Volume_1:
51
+ groups_dest:
52
+ Moving:
53
+ transforms:
54
+ TensorCast:
55
+ dtype: float32
56
+ inverse: false
57
+ patch_transforms: None
58
+ is_input: true
59
+ Volume_2:
60
+ groups_dest:
61
+ FixedMask:
62
+ transforms:
63
+ TensorCast:
64
+ dtype: float32
65
+ inverse: false
66
+ patch_transforms: None
67
+ is_input: true
68
+ Volume_3:
69
+ groups_dest:
70
+ MovingMask:
71
+ transforms:
72
+ TensorCast:
73
+ dtype: float32
74
+ inverse: false
75
+ patch_transforms: None
76
+ is_input: true
77
+ augmentations:
78
+ DataAugmentation_0:
79
+ data_augmentations:
80
+ Flip:
81
+ f_prob:
82
+ - 0
83
+ - 0.5
84
+ - 0.5
85
+ vector_field: true
86
+ prob: 1
87
+ nb: 2
88
+ Patch:
89
+ patch_size:
90
+ - 0
91
+ - 0
92
+ - 0
93
+ overlap: 20%
94
+ pad_value: None
95
+ extend_slice: 0
96
+ mode: tile
97
+ max_voxels: None
98
+ subset: None
99
+ dataset_filenames:
100
+ - ./Dataset/:mha
101
+ batch_size: 1
102
+ num_workers: None
103
+ pin_memory: false
104
+ prefetch_factor: None
105
+ persistent_workers: None
106
+ outputs_dataset:
107
+ DisplacementField:
108
+ OutputDataset:
109
+ name_class: OutputDataset
110
+ before_reduction_transforms: None
111
+ after_reduction_transforms: None
112
+ final_transforms:
113
+ TensorCast:
114
+ dtype: float32
115
+ inverse: false
116
+ dataset_filename: Transform:itktransform
117
+ group: Transform
118
+ same_as_group: Volume_0:Fixed
119
+ patch_combine: Cosinus
120
+ reduction: Mean
121
+ Mean: {}
122
+ train_name: ImpactReg-FireANTs-IMPACT
123
+ manual_seed: 42
124
+ gpu_checkpoints: None
125
+ combine: Mean
126
+ autocast: false
127
+ data_log: None
FireANTs_IMPACT/app.json CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "display_name": "FireANTs (IMPACT)",
3
  "short_description": "Rigid + Affine + SyN driven by the IMPACT deep-feature metric on GPU (FireANTs).",
4
- "description": "GPU deformable registration with FireANTs where the SyN stage is driven by the KonfAI IMPACT metric \u2014 deep features from one or more pretrained TorchScript models \u2014 instead of an intensity metric. A Rigid (MI) + Affine (MI) linear pre-align seeds a symmetric diffeomorphic SyN optimised with Riemannian Adam against a weighted multi-model feature distance. Produces the moved image and the total displacement field on the fixed grid. FireANTs is an external dependency under the FireANTs License v1.0 (see NOTICE); the feature models are fetched from VBoussot/impact-torchscript-models.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
@@ -85,5 +85,16 @@
85
  }
86
  }
87
  }
88
- }
 
 
 
 
 
 
 
 
 
 
 
89
  }
 
1
  {
2
  "display_name": "FireANTs (IMPACT)",
3
  "short_description": "Rigid + Affine + SyN driven by the IMPACT deep-feature metric on GPU (FireANTs).",
4
+ "description": "GPU deformable registration with FireANTs where the SyN stage is driven by the KonfAI IMPACT metric — deep features from one or more pretrained TorchScript models — instead of an intensity metric. A Rigid (MI) + Affine (MI) linear pre-align seeds a symmetric diffeomorphic SyN optimised with Riemannian Adam against a weighted multi-model feature distance. Produces the displacement field on the fixed grid, from which impact-reg-konfai derives the moved image. FireANTs is an external dependency under the FireANTs License v1.0 (see NOTICE); the feature models are fetched from VBoussot/impact-torchscript-models.",
5
  "task": "registration",
6
  "tta": 0,
7
  "mc_dropout": 0,
 
85
  }
86
  }
87
  }
88
+ },
89
+ "vram_bytes_per_voxel": 1150,
90
+ "tiling": {
91
+ "global": "Prediction.yml",
92
+ "tile": "Prediction_tile.yml",
93
+ "tile_vram_bytes_per_voxel": 1150,
94
+ "tile_ram_bytes_per_voxel": 3050
95
+ },
96
+ "requirements_no_deps": [
97
+ "fireants>=1.5,<1.6"
98
+ ],
99
+ "ram_bytes_per_voxel": 3150
100
  }
FireANTs_IMPACT/requirements.txt CHANGED
@@ -1,4 +1,8 @@
1
  hydra-core
2
  nibabel
3
  pandas
 
4
  impact_reg_konfai>=1.7.0
 
 
 
 
1
  hydra-core
2
  nibabel
3
  pandas
4
+ scipy
5
  impact_reg_konfai>=1.7.0
6
+ matplotlib
7
+ scikit-image
8
+ tqdm
FireANTs_IMPACT_MRCT/Evaluation_with_fid.yml ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedFid:
4
+ targets_criterions:
5
+ MovingFid:
6
+ criterions_loader:
7
+ TRE: {}
8
+ Dataset:
9
+ groups_src:
10
+ Volume_0:
11
+ groups_dest:
12
+ FixedFid:
13
+ transforms: None
14
+ Reference_0:
15
+ groups_dest:
16
+ MovingFid:
17
+ transforms: None
18
+ subset: None
19
+ dataset_filenames:
20
+ - ./Dataset:mha
21
+ validation: None
22
+ train_name: ImpactReg
FireANTs_IMPACT_MRCT/Evaluation_with_images.yml ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedImage:
4
+ targets_criterions:
5
+ MovingImage;Mask:
6
+ criterions_loader:
7
+ MAESaveMap:
8
+ reduction: mean
9
+ dataset: ./Evaluations/ImpactReg/Output:mha
10
+ group: MAE_map
11
+ Dataset:
12
+ groups_src:
13
+ Volume_0:
14
+ groups_dest:
15
+ FixedImage:
16
+ transforms:
17
+ TensorCast:
18
+ dtype: float32
19
+ Reference_0:
20
+ groups_dest:
21
+ MovingImage:
22
+ transforms:
23
+ TensorCast:
24
+ dtype: float32
25
+ Mask_0:
26
+ groups_dest:
27
+ Mask:
28
+ transforms:
29
+ TensorCast:
30
+ dtype: uint8
31
+ subset: None
32
+ dataset_filenames:
33
+ - ./Dataset:mha
34
+ validation: None
35
+ train_name: ImpactReg
FireANTs_IMPACT_MRCT/Evaluation_with_seg.yml ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ FixedSeg:
4
+ targets_criterions:
5
+ MovingSeg:
6
+ criterions_loader:
7
+ DiceSaveMap:
8
+ labels: None
9
+ dataset: ./Evaluations/ImpactReg/Output:mha
10
+ group: Seg_MAE_map
11
+ Dataset:
12
+ groups_src:
13
+ Volume_0:
14
+ groups_dest:
15
+ FixedSeg:
16
+ transforms:
17
+ TensorCast:
18
+ dtype: uint8
19
+ Reference_0:
20
+ groups_dest:
21
+ MovingSeg:
22
+ transforms:
23
+ TensorCast:
24
+ dtype: uint8
25
+ subset: None
26
+ dataset_filenames:
27
+ - ./Dataset:mha
28
+ validation: None
29
+ train_name: ImpactReg
FireANTs_IMPACT_MRCT/NOTICE ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FireANTs_SyN — third-party attribution
2
+ ======================================
3
+
4
+ This KonfAI app drives FireANTs, an external registration library. FireANTs is NOT
5
+ redistributed here as source: the app depends on the official `fireants` wheel
6
+ (https://pypi.org/project/fireants/), which is installed at resolve time (see
7
+ requirements.txt) and called through its public Python API only. No FireANTs source
8
+ code (functions, classes, or modules) is copied into this app.
9
+
10
+ FireANTs is distributed under the **FireANTs License, Version 1.0 (July 2025)**, a
11
+ custom license modified from Apache 2.0. Its redistribution clause requires that, when
12
+ FireANTs is incorporated as a dependency in other projects, all license terms —
13
+ including attribution and the bibliography below — be maintained.
14
+
15
+ Project : FireANTs
16
+ Source : https://github.com/rohitrango/FireANTs
17
+ License : https://github.com/rohitrango/FireANTs/blob/main/LICENSE
18
+ Copyright (c) 2026 Rohit Jena. All rights reserved.
19
+
20
+ Bibliography (as required by the FireANTs License — cite if you use this app)
21
+ ----------------------------------------------------------------------------
22
+
23
+ @article{jena2024fireants,
24
+ title={FireANTs: Adaptive Riemannian Optimization for Multi-Scale Diffeomorphic Registration},
25
+ author={Jena, Rohit and Chaudhari, Pratik and Gee, James C},
26
+ journal={Nature Communications},
27
+ year={2024}
28
+ }
29
+
30
+ @inproceedings{jena2025scalable,
31
+ title={A Scalable Distributed Framework for Multimodal {GigaVoxel} Image Registration},
32
+ author={Jena, Rohit and Zope, Vedant and Chaudhari, Pratik and Gee, James C},
33
+ booktitle={The Fourteenth International Conference on Learning Representations},
34
+ year={2026},
35
+ url={https://openreview.net/forum?id=8dLexnao2h}
36
+ }
37
+
38
+ The wrapper code in this directory (Model.py, the KonfAI app configuration) is original
39
+ work © 2025 Valentin Boussot, licensed under Apache-2.0, and is a separate work that
40
+ merely links to the FireANTs interfaces.
FireANTs_IMPACT_MRCT/Prediction.yml ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.fireants:RegistrationNet
4
+ RegistrationNet:
5
+ scales:
6
+ - 4
7
+ - 2
8
+ - 1
9
+ affine_iterations:
10
+ - 200
11
+ - 100
12
+ - 50
13
+ deformable_iterations:
14
+ - 200
15
+ - 100
16
+ - 50
17
+ cc_kernel: 5
18
+ affine_metric: mi
19
+ affine_lr: 0.03
20
+ deformable_method: syn
21
+ deformable_metric: impact
22
+ deformable_lr: 0.25
23
+ integrator_n: 10
24
+ smooth_warp_sigma: 0.5
25
+ smooth_grad_sigma: 1.0
26
+ seed: 42
27
+ outputs_criterions: None
28
+ models:
29
+ '0':
30
+ ref: VBoussot/impact-torchscript-models:TS/M730.pt
31
+ layers_mask: '0000001'
32
+ layers_weight:
33
+ - 1.0
34
+ pca: 8
35
+ distance: LNCC
36
+ feature_normalization: l2
37
+ '1':
38
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
39
+ layers_mask: '1'
40
+ layers_weight:
41
+ - 1.0
42
+ pca: 6
43
+ distance: LNCC
44
+ feature_normalization: l2
45
+ mode: Static
46
+ feature_patch: 0
47
+ feature_chunk: 0
48
+ feature_overlap: 0.25
49
+ lncc_kernel: 5
50
+ Dataset:
51
+ groups_src:
52
+ Volume_0:
53
+ groups_dest:
54
+ Fixed:
55
+ transforms:
56
+ TensorCast:
57
+ dtype: float32
58
+ inverse: false
59
+ patch_transforms: None
60
+ is_input: true
61
+ Volume_1:
62
+ groups_dest:
63
+ Moving:
64
+ transforms:
65
+ TensorCast:
66
+ dtype: float32
67
+ inverse: false
68
+ patch_transforms: None
69
+ is_input: true
70
+ Volume_2:
71
+ groups_dest:
72
+ FixedMask:
73
+ transforms:
74
+ TensorCast:
75
+ dtype: float32
76
+ inverse: false
77
+ patch_transforms: None
78
+ is_input: true
79
+ Volume_3:
80
+ groups_dest:
81
+ MovingMask:
82
+ transforms:
83
+ TensorCast:
84
+ dtype: float32
85
+ inverse: false
86
+ patch_transforms: None
87
+ is_input: true
88
+ augmentations:
89
+ DataAugmentation_0:
90
+ data_augmentations:
91
+ Flip:
92
+ f_prob:
93
+ - 0
94
+ - 0.5
95
+ - 0.5
96
+ vector_field: true
97
+ prob: 1
98
+ nb: 2
99
+ Patch:
100
+ patch_size:
101
+ - 0
102
+ - 0
103
+ - 0
104
+ overlap: 20%
105
+ pad_value: None
106
+ extend_slice: 0
107
+ mode: resample
108
+ max_voxels: None
109
+ subset: None
110
+ dataset_filenames:
111
+ - ./Dataset/:mha
112
+ batch_size: 1
113
+ num_workers: None
114
+ pin_memory: false
115
+ prefetch_factor: None
116
+ persistent_workers: None
117
+ outputs_dataset:
118
+ DisplacementField:
119
+ OutputDataset:
120
+ name_class: OutputDataset
121
+ before_reduction_transforms: None
122
+ after_reduction_transforms: None
123
+ final_transforms:
124
+ TensorCast:
125
+ dtype: float32
126
+ inverse: false
127
+ dataset_filename: Transform:itktransform
128
+ group: Transform
129
+ same_as_group: Volume_0:Fixed
130
+ patch_combine: Cosinus
131
+ reduction: Mean
132
+ Mean: {}
133
+ train_name: ImpactReg-FireANTs-IMPACT-MRCT
134
+ manual_seed: 42
135
+ gpu_checkpoints: None
136
+ combine: Mean
137
+ autocast: false
138
+ data_log: None
FireANTs_IMPACT_MRCT/Prediction_tile.yml ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Predictor:
2
+ Model:
3
+ classpath: impact_reg_konfai.models.fireants:RegistrationNet
4
+ RegistrationNet:
5
+ scales:
6
+ - 4
7
+ - 2
8
+ - 1
9
+ affine_iterations:
10
+ - 200
11
+ - 100
12
+ - 50
13
+ deformable_iterations:
14
+ - 200
15
+ - 100
16
+ - 50
17
+ cc_kernel: 5
18
+ affine_metric: mi
19
+ affine_lr: 0.03
20
+ deformable_method: syn
21
+ deformable_metric: impact
22
+ deformable_lr: 0.25
23
+ integrator_n: 10
24
+ smooth_warp_sigma: 0.5
25
+ smooth_grad_sigma: 1.0
26
+ seed: 42
27
+ outputs_criterions: None
28
+ linear_method: none
29
+ models:
30
+ '0':
31
+ ref: VBoussot/impact-torchscript-models:TS/M730.pt
32
+ layers_mask: '0000001'
33
+ layers_weight:
34
+ - 1.0
35
+ pca: 8
36
+ distance: LNCC
37
+ feature_normalization: l2
38
+ '1':
39
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
40
+ layers_mask: '1'
41
+ layers_weight:
42
+ - 1.0
43
+ pca: 6
44
+ distance: LNCC
45
+ feature_normalization: l2
46
+ mode: Static
47
+ feature_patch: 0
48
+ feature_chunk: 0
49
+ feature_overlap: 0.25
50
+ lncc_kernel: 5
51
+ Dataset:
52
+ groups_src:
53
+ Volume_0:
54
+ groups_dest:
55
+ Fixed:
56
+ transforms:
57
+ TensorCast:
58
+ dtype: float32
59
+ inverse: false
60
+ patch_transforms: None
61
+ is_input: true
62
+ Volume_1:
63
+ groups_dest:
64
+ Moving:
65
+ transforms:
66
+ TensorCast:
67
+ dtype: float32
68
+ inverse: false
69
+ patch_transforms: None
70
+ is_input: true
71
+ Volume_2:
72
+ groups_dest:
73
+ FixedMask:
74
+ transforms:
75
+ TensorCast:
76
+ dtype: float32
77
+ inverse: false
78
+ patch_transforms: None
79
+ is_input: true
80
+ Volume_3:
81
+ groups_dest:
82
+ MovingMask:
83
+ transforms:
84
+ TensorCast:
85
+ dtype: float32
86
+ inverse: false
87
+ patch_transforms: None
88
+ is_input: true
89
+ augmentations:
90
+ DataAugmentation_0:
91
+ data_augmentations:
92
+ Flip:
93
+ f_prob:
94
+ - 0
95
+ - 0.5
96
+ - 0.5
97
+ vector_field: true
98
+ prob: 1
99
+ nb: 2
100
+ Patch:
101
+ patch_size:
102
+ - 0
103
+ - 0
104
+ - 0
105
+ overlap: 20%
106
+ pad_value: None
107
+ extend_slice: 0
108
+ mode: tile
109
+ max_voxels: None
110
+ subset: None
111
+ dataset_filenames:
112
+ - ./Dataset/:mha
113
+ batch_size: 1
114
+ num_workers: None
115
+ pin_memory: false
116
+ prefetch_factor: None
117
+ persistent_workers: None
118
+ outputs_dataset:
119
+ DisplacementField:
120
+ OutputDataset:
121
+ name_class: OutputDataset
122
+ before_reduction_transforms: None
123
+ after_reduction_transforms: None
124
+ final_transforms:
125
+ TensorCast:
126
+ dtype: float32
127
+ inverse: false
128
+ dataset_filename: Transform:itktransform
129
+ group: Transform
130
+ same_as_group: Volume_0:Fixed
131
+ patch_combine: Cosinus
132
+ reduction: Mean
133
+ Mean: {}
134
+ train_name: ImpactReg-FireANTs-IMPACT-MRCT
135
+ manual_seed: 42
136
+ gpu_checkpoints: None
137
+ combine: Mean
138
+ autocast: false
139
+ data_log: None
FireANTs_IMPACT_MRCT/Uncertainty.yml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Evaluator:
2
+ metrics:
3
+ Uncertainty:
4
+ targets_criterions:
5
+ None:
6
+ criterions_loader:
7
+ Mean:
8
+ name: Uncertainty
9
+ Dataset:
10
+ groups_src:
11
+ Volume_0:
12
+ groups_dest:
13
+ Uncertainty:
14
+ transforms:
15
+ Norm: {}
16
+ StandardDeviation: {}
17
+ Save:
18
+ dataset: ./Uncertainties/ImpactReg/Output:mha
19
+ group: None
20
+ subset: None
21
+ dataset_filenames:
22
+ - ./Dataset:mha
23
+ validation: None
24
+ train_name: ImpactReg
FireANTs_IMPACT_MRCT/app.json ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "display_name": "FireANTs SyN, TotalSegmentator MR decoder + MIND",
3
+ "short_description": "FireANTs_SyN with IMPACT on the last decoder layer of TotalSegmentator MR (TS/M730) and MIND, extracted once per image (Static), in place of the cross-correlation, for MR/CT.",
4
+ "description": "FireANTs_SyN with IMPACT on the last decoder layer of TotalSegmentator MR (TS/M730) and MIND, extracted once per image (Static), in place of the cross-correlation, for MR/CT. Everything else is FireANTs_SyN's: the rigid and affine stages on mutual information and SyN's schedule (4x2x1, 200/100/50 iterations).",
5
+ "task": "registration",
6
+ "tta": 0,
7
+ "mc_dropout": 0,
8
+ "models": [],
9
+ "inputs": {
10
+ "Fixed": {
11
+ "display_name": "Fixed image",
12
+ "volume_type": "VOLUME",
13
+ "required": true
14
+ },
15
+ "Moving": {
16
+ "display_name": "Moving image",
17
+ "volume_type": "VOLUME",
18
+ "required": true
19
+ },
20
+ "FixedMask": {
21
+ "display_name": "Fixed mask (optional)",
22
+ "volume_type": "SEGMENTATION",
23
+ "required": false,
24
+ "default": "ones"
25
+ },
26
+ "MovingMask": {
27
+ "display_name": "Moving mask (optional)",
28
+ "volume_type": "SEGMENTATION",
29
+ "required": false,
30
+ "default": "ones"
31
+ }
32
+ },
33
+ "outputs": {
34
+ "DisplacementField": {
35
+ "display_name": "Displacement field",
36
+ "volume_type": "VOLUME",
37
+ "required": true
38
+ }
39
+ },
40
+ "inputs_evaluations": {
41
+ "Image": {
42
+ "Evaluation_with_images.yml": {
43
+ "FixedImage": {
44
+ "display_name": "Fixed image",
45
+ "volume_type": "VOLUME",
46
+ "required": true
47
+ },
48
+ "MovingImage": {
49
+ "display_name": "Moving image",
50
+ "volume_type": "VOLUME",
51
+ "required": true
52
+ },
53
+ "Mask": {
54
+ "display_name": "Evaluation mask",
55
+ "volume_type": "SEGMENTATION",
56
+ "required": false
57
+ }
58
+ }
59
+ },
60
+ "Segmentation": {
61
+ "Evaluation_with_seg.yml": {
62
+ "FixedSeg": {
63
+ "display_name": "Fixed segmentation",
64
+ "volume_type": "SEGMENTATION",
65
+ "required": true
66
+ },
67
+ "MovingSeg": {
68
+ "display_name": "Moving segmentation",
69
+ "volume_type": "SEGMENTATION",
70
+ "required": true
71
+ }
72
+ }
73
+ },
74
+ "Landmarks": {
75
+ "Evaluation_with_fid.yml": {
76
+ "FixedFid": {
77
+ "display_name": "Fixed landmarks",
78
+ "volume_type": "FIDUCIALS",
79
+ "required": true
80
+ },
81
+ "MovingFid": {
82
+ "display_name": "Moving landmarks",
83
+ "volume_type": "FIDUCIALS",
84
+ "required": true
85
+ }
86
+ }
87
+ }
88
+ },
89
+ "vram_bytes_per_voxel": 1950,
90
+ "tiling": {
91
+ "global": "Prediction.yml",
92
+ "tile": "Prediction_tile.yml",
93
+ "tile_vram_bytes_per_voxel": 1950,
94
+ "tile_ram_bytes_per_voxel": 1600
95
+ },
96
+ "requirements_no_deps": [
97
+ "fireants>=1.5,<1.6"
98
+ ],
99
+ "ram_bytes_per_voxel": 1700
100
+ }
FireANTs_IMPACT_MRCT/icon.png ADDED
FireANTs_IMPACT_MRCT/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ hydra-core
2
+ nibabel
3
+ pandas
4
+ scipy
5
+ impact_reg_konfai>=1.7.0
6
+ matplotlib
7
+ scikit-image
8
+ tqdm