VBoussot commited on
Commit
efdeefe
·
verified ·
1 Parent(s): 06efc39

feat: presets for impact-reg-konfai 1.8.7, without integrator_n and with their model files

Browse files

The 1.8.7 presets of 7fc77d1 again, on top of the 1.8.6 restore: the
FireANTs configs no longer pass integrator_n, which RegistrationNet
dropped, each app.json declares the model files it downloads
(model_files, at the models revision KonfAI pins), and the ConvexAdam
presets ask for itk-impact 0.1.6, whose shared IMPACT loss they call.

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 +13 -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 +17 -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 +109 -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 +106 -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 +16 -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 +21 -4
  33. FireANTs_Anatomix/Prediction.yml +14 -11
  34. FireANTs_Anatomix/Prediction_tile.yml +141 -0
  35. FireANTs_Anatomix/app.json +25 -2
  36. FireANTs_Anatomix/requirements.txt +4 -0
  37. FireANTs_IMPACT/Prediction.yml +11 -4
  38. FireANTs_IMPACT/Prediction_tile.yml +126 -0
  39. FireANTs_IMPACT/app.json +20 -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 +137 -0
  46. FireANTs_IMPACT_MRCT/Prediction_tile.yml +138 -0
  47. FireANTs_IMPACT_MRCT/Uncertainty.yml +24 -0
  48. FireANTs_IMPACT_MRCT/app.json +112 -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,17 @@
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
+ "model_files": [
95
+ {
96
+ "repo_id": "VBoussot/impact-torchscript-models",
97
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
98
+ "filename": "MIND/R1D2_3D.pt"
99
+ }
100
+ ]
101
  }
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.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,20 @@
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
+ "model_files": [
98
+ {
99
+ "repo_id": "VBoussot/impact-torchscript-models",
100
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
101
+ "filename": "MIND/R1D2_3D.pt"
102
+ }
103
+ ]
104
  }
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.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,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "model_files": [
98
+ {
99
+ "repo_id": "VBoussot/impact-torchscript-models",
100
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
101
+ "filename": "MIND/R1D2_3D.pt"
102
+ },
103
+ {
104
+ "repo_id": "VBoussot/impact-torchscript-models",
105
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
106
+ "filename": "TS/M730.pt"
107
+ }
108
+ ]
109
+ }
ConvexAdam_IMPACT_CBCT/icon.png ADDED
ConvexAdam_IMPACT_CBCT/requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ itk-impact>=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,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "model_files": [
95
+ {
96
+ "repo_id": "VBoussot/impact-torchscript-models",
97
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
98
+ "filename": "MIND/R1D2_3D.pt"
99
+ },
100
+ {
101
+ "repo_id": "VBoussot/impact-torchscript-models",
102
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
103
+ "filename": "TS/M730.pt"
104
+ }
105
+ ]
106
+ }
ConvexAdam_IMPACT_MRCT/icon.png ADDED
ConvexAdam_IMPACT_MRCT/requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ itk-impact>=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,17 @@
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
+ "model_files": [
95
+ {
96
+ "repo_id": "VBoussot/impact-torchscript-models",
97
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
98
+ "filename": "TS/M730.pt"
99
+ }
100
+ ]
101
+ }
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,22 @@
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
+ "model_files": [
95
+ {
96
+ "repo_id": "VBoussot/impact-torchscript-models",
97
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
98
+ "filename": "MIND/R1D2_3D.pt"
99
+ },
100
+ {
101
+ "repo_id": "VBoussot/impact-torchscript-models",
102
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
103
+ "filename": "TS/M730.pt"
104
+ }
105
+ ]
106
+ }
FireANTs_Anatomix/Prediction.yml CHANGED
@@ -19,35 +19,36 @@ 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 +106,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
+ smooth_warp_sigma: 1.0
 
27
  smooth_grad_sigma: 1.0
28
  seed: 42
29
  models:
30
  '0':
31
  ref: VBoussot/impact-torchscript-models:Anatomix/Anatomix.pt
32
  layers_mask: '1'
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
  outputs_criterions: None
47
  mode: Static
48
  feature_patch: 0
49
  feature_chunk: 0
50
  feature_overlap: 0.25
51
+ lncc_kernel: 5
 
 
52
  Dataset:
53
  groups_src:
54
  Volume_0:
 
106
  overlap: 20%
107
  pad_value: None
108
  extend_slice: 0
109
+ mode: resample
110
+ max_voxels: None
111
  subset: None
112
  dataset_filenames:
113
  - ./Dataset/:mha
FireANTs_Anatomix/Prediction_tile.yml ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ smooth_warp_sigma: 1.0
27
+ smooth_grad_sigma: 1.0
28
+ seed: 42
29
+ models:
30
+ '0':
31
+ ref: VBoussot/impact-torchscript-models:Anatomix/Anatomix.pt
32
+ layers_mask: '1'
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
+ outputs_criterions: None
47
+ mode: Static
48
+ feature_patch: 0
49
+ feature_chunk: 0
50
+ feature_overlap: 0.25
51
+ linear_method: none
52
+ lncc_kernel: 5
53
+ Dataset:
54
+ groups_src:
55
+ Volume_0:
56
+ groups_dest:
57
+ Fixed:
58
+ transforms:
59
+ TensorCast:
60
+ dtype: float32
61
+ inverse: false
62
+ patch_transforms: None
63
+ is_input: true
64
+ Volume_1:
65
+ groups_dest:
66
+ Moving:
67
+ transforms:
68
+ TensorCast:
69
+ dtype: float32
70
+ inverse: false
71
+ patch_transforms: None
72
+ is_input: true
73
+ Volume_2:
74
+ groups_dest:
75
+ FixedMask:
76
+ transforms:
77
+ TensorCast:
78
+ dtype: float32
79
+ inverse: false
80
+ patch_transforms: None
81
+ is_input: true
82
+ Volume_3:
83
+ groups_dest:
84
+ MovingMask:
85
+ transforms:
86
+ TensorCast:
87
+ dtype: float32
88
+ inverse: false
89
+ patch_transforms: None
90
+ is_input: true
91
+ augmentations:
92
+ DataAugmentation_0:
93
+ data_augmentations:
94
+ Flip:
95
+ f_prob:
96
+ - 0
97
+ - 0.5
98
+ - 0.5
99
+ vector_field: true
100
+ prob: 1
101
+ nb: 2
102
+ Patch:
103
+ patch_size:
104
+ - 0
105
+ - 0
106
+ - 0
107
+ overlap: 20%
108
+ pad_value: None
109
+ extend_slice: 0
110
+ mode: tile
111
+ max_voxels: None
112
+ subset: None
113
+ dataset_filenames:
114
+ - ./Dataset/:mha
115
+ batch_size: 1
116
+ num_workers: None
117
+ pin_memory: false
118
+ prefetch_factor: None
119
+ persistent_workers: None
120
+ outputs_dataset:
121
+ DisplacementField:
122
+ OutputDataset:
123
+ name_class: OutputDataset
124
+ before_reduction_transforms: None
125
+ after_reduction_transforms: None
126
+ final_transforms:
127
+ TensorCast:
128
+ dtype: float32
129
+ inverse: false
130
+ dataset_filename: Transform:itktransform
131
+ group: Transform
132
+ same_as_group: Volume_0:Fixed
133
+ patch_combine: Cosinus
134
+ reduction: Mean
135
+ Mean: {}
136
+ train_name: ImpactReg-FireANTs-Anatomix
137
+ manual_seed: 42
138
+ gpu_checkpoints: None
139
+ combine: Mean
140
+ autocast: false
141
+ data_log: None
FireANTs_Anatomix/app.json CHANGED
@@ -85,5 +85,28 @@
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
+ "model_files": [
101
+ {
102
+ "repo_id": "VBoussot/impact-torchscript-models",
103
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
104
+ "filename": "Anatomix/Anatomix.pt"
105
+ },
106
+ {
107
+ "repo_id": "VBoussot/impact-torchscript-models",
108
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
109
+ "filename": "MIND/R1D2_3D.pt"
110
+ }
111
+ ]
112
+ }
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,11 +16,10 @@ 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
23
- integrator_n: 10
24
  smooth_warp_sigma: 0.5
25
  smooth_grad_sigma: 1.0
26
  seed: 42
@@ -28,9 +27,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 +84,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
 
23
  smooth_warp_sigma: 0.5
24
  smooth_grad_sigma: 1.0
25
  seed: 42
 
27
  '0':
28
  ref: VBoussot/impact-torchscript-models:TS/M291.pt
29
  layers_mask: '01'
30
+ layers_weight:
31
+ - 1.0
32
  pca: 0
33
  distance: L1
34
+ feature_normalization: none
35
+ mode: Jacobian
36
  outputs_criterions: None
37
  Dataset:
38
  groups_src:
 
84
  prob: 1
85
  nb: 2
86
  Patch:
87
+ patch_size:
88
+ - 0
89
+ - 0
90
+ - 0
91
  overlap: 20%
92
  pad_value: None
93
  extend_slice: 0
94
+ mode: resample
95
+ max_voxels: None
96
  subset: None
97
  dataset_filenames:
98
  - ./Dataset/:mha
FireANTs_IMPACT/Prediction_tile.yml ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ smooth_warp_sigma: 0.5
24
+ smooth_grad_sigma: 1.0
25
+ seed: 42
26
+ models:
27
+ '0':
28
+ ref: VBoussot/impact-torchscript-models:TS/M291.pt
29
+ layers_mask: '01'
30
+ layers_weight:
31
+ - 1.0
32
+ pca: 0
33
+ distance: L1
34
+ feature_normalization: none
35
+ mode: Jacobian
36
+ outputs_criterions: None
37
+ linear_method: none
38
+ Dataset:
39
+ groups_src:
40
+ Volume_0:
41
+ groups_dest:
42
+ Fixed:
43
+ transforms:
44
+ TensorCast:
45
+ dtype: float32
46
+ inverse: false
47
+ patch_transforms: None
48
+ is_input: true
49
+ Volume_1:
50
+ groups_dest:
51
+ Moving:
52
+ transforms:
53
+ TensorCast:
54
+ dtype: float32
55
+ inverse: false
56
+ patch_transforms: None
57
+ is_input: true
58
+ Volume_2:
59
+ groups_dest:
60
+ FixedMask:
61
+ transforms:
62
+ TensorCast:
63
+ dtype: float32
64
+ inverse: false
65
+ patch_transforms: None
66
+ is_input: true
67
+ Volume_3:
68
+ groups_dest:
69
+ MovingMask:
70
+ transforms:
71
+ TensorCast:
72
+ dtype: float32
73
+ inverse: false
74
+ patch_transforms: None
75
+ is_input: true
76
+ augmentations:
77
+ DataAugmentation_0:
78
+ data_augmentations:
79
+ Flip:
80
+ f_prob:
81
+ - 0
82
+ - 0.5
83
+ - 0.5
84
+ vector_field: true
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: tile
96
+ max_voxels: None
97
+ subset: None
98
+ dataset_filenames:
99
+ - ./Dataset/:mha
100
+ batch_size: 1
101
+ num_workers: None
102
+ pin_memory: false
103
+ prefetch_factor: None
104
+ persistent_workers: None
105
+ outputs_dataset:
106
+ DisplacementField:
107
+ OutputDataset:
108
+ name_class: OutputDataset
109
+ before_reduction_transforms: None
110
+ after_reduction_transforms: None
111
+ final_transforms:
112
+ TensorCast:
113
+ dtype: float32
114
+ inverse: false
115
+ dataset_filename: Transform:itktransform
116
+ group: Transform
117
+ same_as_group: Volume_0:Fixed
118
+ patch_combine: Cosinus
119
+ reduction: Mean
120
+ Mean: {}
121
+ train_name: ImpactReg-FireANTs-IMPACT
122
+ manual_seed: 42
123
+ gpu_checkpoints: None
124
+ combine: Mean
125
+ autocast: false
126
+ 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,23 @@
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
+ "model_files": [
101
+ {
102
+ "repo_id": "VBoussot/impact-torchscript-models",
103
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
104
+ "filename": "TS/M291.pt"
105
+ }
106
+ ]
107
  }
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,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ smooth_warp_sigma: 0.5
24
+ smooth_grad_sigma: 1.0
25
+ seed: 42
26
+ outputs_criterions: None
27
+ models:
28
+ '0':
29
+ ref: VBoussot/impact-torchscript-models:TS/M730.pt
30
+ layers_mask: '0000001'
31
+ layers_weight:
32
+ - 1.0
33
+ pca: 8
34
+ distance: LNCC
35
+ feature_normalization: l2
36
+ '1':
37
+ ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
38
+ layers_mask: '1'
39
+ layers_weight:
40
+ - 1.0
41
+ pca: 6
42
+ distance: LNCC
43
+ feature_normalization: l2
44
+ mode: Static
45
+ feature_patch: 0
46
+ feature_chunk: 0
47
+ feature_overlap: 0.25
48
+ lncc_kernel: 5
49
+ Dataset:
50
+ groups_src:
51
+ Volume_0:
52
+ groups_dest:
53
+ Fixed:
54
+ transforms:
55
+ TensorCast:
56
+ dtype: float32
57
+ inverse: false
58
+ patch_transforms: None
59
+ is_input: true
60
+ Volume_1:
61
+ groups_dest:
62
+ Moving:
63
+ transforms:
64
+ TensorCast:
65
+ dtype: float32
66
+ inverse: false
67
+ patch_transforms: None
68
+ is_input: true
69
+ Volume_2:
70
+ groups_dest:
71
+ FixedMask:
72
+ transforms:
73
+ TensorCast:
74
+ dtype: float32
75
+ inverse: false
76
+ patch_transforms: None
77
+ is_input: true
78
+ Volume_3:
79
+ groups_dest:
80
+ MovingMask:
81
+ transforms:
82
+ TensorCast:
83
+ dtype: float32
84
+ inverse: false
85
+ patch_transforms: None
86
+ is_input: true
87
+ augmentations:
88
+ DataAugmentation_0:
89
+ data_augmentations:
90
+ Flip:
91
+ f_prob:
92
+ - 0
93
+ - 0.5
94
+ - 0.5
95
+ vector_field: true
96
+ prob: 1
97
+ nb: 2
98
+ Patch:
99
+ patch_size:
100
+ - 0
101
+ - 0
102
+ - 0
103
+ overlap: 20%
104
+ pad_value: None
105
+ extend_slice: 0
106
+ mode: resample
107
+ max_voxels: None
108
+ subset: None
109
+ dataset_filenames:
110
+ - ./Dataset/:mha
111
+ batch_size: 1
112
+ num_workers: None
113
+ pin_memory: false
114
+ prefetch_factor: None
115
+ persistent_workers: None
116
+ outputs_dataset:
117
+ DisplacementField:
118
+ OutputDataset:
119
+ name_class: OutputDataset
120
+ before_reduction_transforms: None
121
+ after_reduction_transforms: None
122
+ final_transforms:
123
+ TensorCast:
124
+ dtype: float32
125
+ inverse: false
126
+ dataset_filename: Transform:itktransform
127
+ group: Transform
128
+ same_as_group: Volume_0:Fixed
129
+ patch_combine: Cosinus
130
+ reduction: Mean
131
+ Mean: {}
132
+ train_name: ImpactReg-FireANTs-IMPACT-MRCT
133
+ manual_seed: 42
134
+ gpu_checkpoints: None
135
+ combine: Mean
136
+ autocast: false
137
+ data_log: None
FireANTs_IMPACT_MRCT/Prediction_tile.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
+ smooth_warp_sigma: 0.5
24
+ smooth_grad_sigma: 1.0
25
+ seed: 42
26
+ outputs_criterions: None
27
+ linear_method: 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: tile
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/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,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ "model_files": [
101
+ {
102
+ "repo_id": "VBoussot/impact-torchscript-models",
103
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
104
+ "filename": "TS/M730.pt"
105
+ },
106
+ {
107
+ "repo_id": "VBoussot/impact-torchscript-models",
108
+ "revision": "47ffad660e67cebbac8d74aecf0fa181c5dac042",
109
+ "filename": "MIND/R1D2_3D.pt"
110
+ }
111
+ ]
112
+ }
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