--- license: apache-2.0 tags: - medical-imaging - image-registration - torchscript - impact - pretrained - segmentation --- # 🧠 TorchScript Models for the IMPACT Semantic Similarity Metric This repository provides a collection of **TorchScript-exported pretrained models** designed for use with the **IMPACT** similarity metric, enabling semantic medical image registration through feature-level comparison. The IMPACT metric is introduced in the following preprint, currently under review: > **IMPACT: A Generic Semantic Loss for Multimodal Medical Image Registration** > *V. Boussot, C. Hémon, J.-C. Nunes, J. Dowling, S. Rouzé, C. Lafond, A. Barateau, J.-L. Dillenseger* > [arXiv:2503.24121 [cs.CV]](https://arxiv.org/abs/2503.24121) 🔧 The full implementation of IMPACT, along with its integration into the **Elastix** framework, is available in the repository: ➡️ [github.com/vboussot/ImpactLoss](https://github.com/vboussot/ImpactLoss) This repository also includes example parameter maps, TorchScript model handling utilities, and a ready-to-use Docker environment for quick experimentation and reproducibility. --- ## Anatomix variants Two exports of the [anatomix](https://github.com/neel-dey/anatomix) encoders: | File | Network | Feature channels | Input size | |---|---|---|---| | `Anatomix/Anatomix.pt` | U-Net, 4 levels (`anatomix.pth`) | 16 | any (multiple of 16 per axis) | | `Anatomix/AnatomixDevViT.pt` | PrimusV2 ViT, 27.1 M parameters (`anatomix-dev-vit.pth`) | 32 | **128 x 128 x 128 only** | The ViT's positional embedding is sized for a 128-voxel cube, so it has to be scored patch by patch at that size: `PatchSize 128 128 128` for Elastix, `feature_patch: 128` for the KonfAI FireANTs engine. Both are traced with their network in **evaluation mode**, so their normalisation layers use the learnt statistics, and wrapped in a scripted module, so `nb_layers`, `stats` and `direction` keep their default values and a caller may pass only the image. `Anatomix.pt` was previously traced with the network in training mode, where its BatchNorms read each batch's own statistics: its features spanned roughly +-109 against +-5 now, and the two correlate at 0.21 on random input. Pin the revision before 2026-09-23 to reproduce a result obtained with it: ```python ImpactModelConfiguration("VBoussot/impact-torchscript-models:Anatomix/Anatomix.pt", revision="") ``` `Dino/DinoV2_Small.pt` is exported the same way, for the same reason: traced with an empty `stats` argument, its normalisation branch was frozen on the image's own min and max, so the statistics IMPACT passes were ignored. Scored with statistics, the two exports differ by about 7e-3; without them they agree to 9e-6. `NOTICE` names, for every model here, where its weights come from and under which terms, and `LICENSES/` carries those licenses in full. Two of them bound what may be added to this repository: TotalSegmentator publishes part of its tasks under Apache 2.0 and the rest behind a license number, of which only the open ones are exported here; and DINOv3's checkpoints are covered by the DINOv3 License Agreement, so they are built locally rather than redistributed. The export scripts live in [ImpactLoss/Data/Models/builds/Anatomix](https://github.com/vboussot/ImpactLoss/tree/main/Data/Models/builds/Anatomix). --- ## 📚 Pretrained Model The TorchScript models provided in this repository were exported from publicly available pretrained networks. These include: - **TotalSegmentator (TS)** — U-Net models trained for full-body anatomical segmentation - **MRSegmentator (MRSeg)** — U-Net models trained for full-body anatomical segmentation in MRI and CT - **Segment Anything 2.1 (SAM2.1)** — Foundation model for segmentation on natural images - **DINOv2** — Self-supervised vision transformer trained on diverse datasets - **Anatomix** — Transformer-based model with anatomical priors for medical images Each model provides multiple feature extraction layers. This can be configured through the LayerMask parameter in the IMPACT configuration. In addition, the repository also includes: - **MIND** — A handcrafted descriptor, wrapped in TorchScript | Model | Specialization | Paper / Reference | Field of View | License | Preprocessing | |----------------|---------------------------------------|-------------------------------------------------------------|------------------------|--------------|---------------| | **MIND** | Handcrafted descriptor | [Heinrich et al., 2012](https://doi.org/10.1016/j.media.2012.05.008) | `2*r*d + 1` (r: radius, d: dilation) | Apache 2.0 | Normalize intensities to [0, 1] | | **SAM2.1** | General segmentation (natural images) | [Ravi et al., 2023](https://arxiv.org/abs/2408.00714) | 29 | Apache 2.0 | Normalize intensities to [0, 1], then standardize with mean 0.485 and std 0.229 | | **TS Models** | CT/MRI segmentation | [Wasserthal et al., 2022](https://arxiv.org/abs/2208.05868) | `2^l + 3` (l: layer number) | Apache 2.0 (open tasks only, see `NOTICE`) | Canonical orientation for all models. For MRI models (e.g., TS/M730–M733-M850–M853), standardize intensities to zero mean and unit variance. For CT models (e.g., TS/M258, TS/M291), clip intensities + normalize model dependant | | **MRSegmentator** | CT/MRI segmentation | [Häntze et al., 2024](https://arxiv.org/abs/2405.06463) | `2^l + 3` (l: layer number) | Apache 2.0 | Standardize intensities to zero mean and unit variance.| | **Anatomix** | Anatomy-aware encoder (U-Net, 16 features) | [Dey et al., 2024](https://arxiv.org/abs/2411.02372) | Global(Static mode) | MIT | Normalize intensities to [0, 1] | | **AnatomixDevViT** | Anatomy-aware encoder (ViT, 32 features) | [Dey et al., 2024](https://arxiv.org/abs/2411.02372) | 128 (fixed input) | MIT + Apache 2.0 | Normalize intensities to [0, 1] | | **DINOv2** | Self-supervised vision transformer | [Oquab et al., 2023](https://arxiv.org/abs/2304.07193) | 14 | Apache 2.0 | Normalize intensities to [0, 1], then standardize with mean 0.485 and std 0.229 | ---