Merge tag 'v1.8.7' into plan/main-presets
Browse filesv1.8.7
# -----BEGIN PGP SIGNATURE-----
#
# iHUEABYKAB0WIQRnPuW9t7psxtNBRlaXoT3cgaKwWwUCasKW2QAKCRCXoT3cgaKw
# W9ioAQCmMaYrKqG3QwWEUvGcPyUlQ5H0AXVO0bKt/LTY72SOEgD8CTzncbtw0iWo
# NptgsfLU5Qzo+2gl+vBsAAQ6pUTUqgY=
# =U/Wo
# -----END PGP SIGNATURE-----
# gpg: Signature made Sun 04 Oct 2026 08:11:37 PM CEST
# gpg: using EDDSA key 673EE5BDB7BA6CC6D341465697A13DDC81A2B05B
# gpg: Good signature from "vboussot <valentin@fideus.io>" [ultimate]
This view is limited to 50 files because it contains too many changes. See raw diff
- ConvexAdam_Coarse/Prediction.yml +8 -15
- ConvexAdam_Coarse/app.json +13 -1
- ConvexAdam_Coarse/requirements.txt +1 -1
- ConvexAdam_Composite/Prediction.yml +10 -10
- ConvexAdam_Composite/Prediction_tile.yml +115 -0
- ConvexAdam_Composite/app.json +17 -2
- ConvexAdam_Composite/requirements.txt +1 -1
- ConvexAdam_IMPACT_CBCT/Evaluation_with_fid.yml +22 -0
- ConvexAdam_IMPACT_CBCT/Evaluation_with_images.yml +35 -0
- ConvexAdam_IMPACT_CBCT/Evaluation_with_seg.yml +29 -0
- ConvexAdam_IMPACT_CBCT/Prediction.yml +123 -0
- ConvexAdam_IMPACT_CBCT/Prediction_tile.yml +122 -0
- ConvexAdam_IMPACT_CBCT/Uncertainty.yml +24 -0
- ConvexAdam_IMPACT_CBCT/app.json +109 -0
- ConvexAdam_IMPACT_CBCT/icon.png +0 -0
- ConvexAdam_IMPACT_CBCT/requirements.txt +2 -0
- ConvexAdam_IMPACT_MRCT/Evaluation_with_fid.yml +22 -0
- ConvexAdam_IMPACT_MRCT/Evaluation_with_images.yml +35 -0
- ConvexAdam_IMPACT_MRCT/Evaluation_with_seg.yml +29 -0
- ConvexAdam_IMPACT_MRCT/Prediction.yml +122 -0
- ConvexAdam_IMPACT_MRCT/Uncertainty.yml +24 -0
- ConvexAdam_IMPACT_MRCT/app.json +106 -0
- ConvexAdam_IMPACT_MRCT/icon.png +0 -0
- ConvexAdam_IMPACT_MRCT/requirements.txt +2 -0
- Elastix_IMPACT_Jacobian/ParameterMap_Jacobian.txt +1 -0
- Elastix_IMPACT_Jacobian/Parameters_Rigid.txt +147 -0
- Elastix_IMPACT_Jacobian/Prediction.yml +8 -5
- Elastix_IMPACT_Jacobian/app.json +16 -4
- Elastix_IMPACT_Static/ParameterMap_Static.txt +1 -0
- Elastix_IMPACT_Static/Parameters_Rigid.txt +147 -0
- Elastix_IMPACT_Static/Prediction.yml +11 -8
- Elastix_IMPACT_Static/app.json +21 -4
- FireANTs_Anatomix/Prediction.yml +14 -11
- FireANTs_Anatomix/Prediction_tile.yml +141 -0
- FireANTs_Anatomix/app.json +25 -2
- FireANTs_Anatomix/requirements.txt +4 -0
- FireANTs_IMPACT/Prediction.yml +11 -4
- FireANTs_IMPACT/Prediction_tile.yml +126 -0
- FireANTs_IMPACT/app.json +20 -2
- FireANTs_IMPACT/requirements.txt +4 -0
- FireANTs_IMPACT_MRCT/Evaluation_with_fid.yml +22 -0
- FireANTs_IMPACT_MRCT/Evaluation_with_images.yml +35 -0
- FireANTs_IMPACT_MRCT/Evaluation_with_seg.yml +29 -0
- FireANTs_IMPACT_MRCT/NOTICE +40 -0
- FireANTs_IMPACT_MRCT/Prediction.yml +137 -0
- FireANTs_IMPACT_MRCT/Prediction_tile.yml +138 -0
- FireANTs_IMPACT_MRCT/Uncertainty.yml +24 -0
- FireANTs_IMPACT_MRCT/app.json +112 -0
- FireANTs_IMPACT_MRCT/icon.png +0 -0
- 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:
|
| 14 |
-
|
| 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:
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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:
|
|
|
|
| 14 |
pca: 0
|
| 15 |
-
distance:
|
| 16 |
-
overlap: 2
|
| 17 |
mixed_precision: false
|
| 18 |
grid_spacing: 6
|
| 19 |
displacement_half_width: 4
|
| 20 |
iterations: 80
|
| 21 |
-
learning_rate:
|
| 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:
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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
|
| 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 |
-
|
| 15 |
'0':
|
| 16 |
max_iterations: 300
|
| 17 |
models:
|
| 18 |
'0':
|
| 19 |
ref: VBoussot/impact-torchscript-models:TS/M730.pt
|
| 20 |
voxel_size:
|
| 21 |
-
-
|
| 22 |
-
-
|
| 23 |
-
-
|
| 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:
|
| 11 |
-
subset_features: 0
|
| 12 |
spatial_samples: 2000
|
| 13 |
parameter_overrides: []
|
| 14 |
-
|
| 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 |
-
-
|
| 34 |
-
-
|
| 35 |
-
-
|
| 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: '
|
| 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: '
|
| 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
|
| 4 |
-
"description": "elastix B-spline driven by IMPACT on TotalSegmentator M730
|
| 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.
|
| 23 |
deformable_method: syn
|
| 24 |
deformable_metric: impact
|
| 25 |
-
deformable_lr:
|
| 26 |
-
|
| 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:
|
|
|
|
| 35 |
pca: 8
|
| 36 |
-
distance:
|
|
|
|
| 37 |
'1':
|
| 38 |
ref: VBoussot/impact-torchscript-models:MIND/R1D2_3D.pt
|
| 39 |
layers_mask: '1'
|
| 40 |
-
layers_weight:
|
|
|
|
| 41 |
pca: 6
|
| 42 |
-
distance:
|
|
|
|
| 43 |
outputs_criterions: None
|
| 44 |
mode: Static
|
| 45 |
feature_patch: 0
|
| 46 |
feature_chunk: 0
|
| 47 |
feature_overlap: 0.25
|
| 48 |
-
|
| 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.
|
| 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:
|
|
|
|
| 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:
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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
|