This repository contains the official code of the research paper Privacy Preserving Image Registration pusblished at MICCAI2022.
NEWS 05-2024: This repository contains part of the code published in the Medical Image Analysis Journal. The other privacy-preserving image registration algorithms are available in the following repository:
Image registration is a key task in medical imaging applications, allowing to represent medical images in a common spatial reference frame. Current literature on image registration is generally based on the assumption that images are usually accessible to the researcher, from which the spatial transformation is subsequently estimated. This common assumption may not be met in current practical applications, since the sensitive nature of medical images may ultimately require their analysis under privacy constraints, preventing to share the image content in clear form. In this work, we formulate the problem of image registration under a privacy preserving regime, where images are assumed to be confidential and cannot be disclosed in clear. We derive our privacy preserving image registration framework by extending classical registration paradigms to account for advanced cryptographic tools, such as secure multi-party computation and homomorphic encryption, that enable the execution of operations without leaking the underlying data. To overcome the problem of performance and scalability of cryptographic tools in high dimensions, we first propose to optimize the underlying image registration operations using gradient approximations. We further revisit the use of homomorphic encryption and use a packing method to allow the encryption and multiplication of large matrices more efficiently. We demonstrate our privacy preserving framework in linear and non-linear registration problems, evaluating its accuracy and scalability with respect to standard image registration. Our results show that privacy preserving image registration is feasible and can be adopted in sensitive medical imaging applications.
You'll need a working Python environment to run the code.
The recommended way to set up your environment is through the Anaconda Python distribution
which provides the conda
package manager.
Anaconda can be installed in your user directory and does not interfere with the system Python installation.
- Download the repository:
git clone https://github.com/rtaiello/PP_Image_Registration
- Create the environment:
conda create -n pp_img_regr python=3.7
- Activate the environment:
conda activate pp_img_regr
- Install the dependencies:
pip install -r requirements.txt
Launch an Affine Registration, using Base (no sampling) with SPDZ (MPC protocol):
- moving image is
data/linear/moving.png
- template image is
data/linear/template.png
PYTHONPATH=. python3 src/run_linear.py -m joint_computation=clear,spdz data=linear register=base model=affine
- The SPDZ result is reported in
data/linear/spdz/base/warped_affine.png
, and the clear one indata/linear/clear/base/warped_affine.png
. - CKKS coming soon!
- Linear Transformation - wandb.ai
- Non-Linear Transformation - wandb.ai
- Supplementary Material - wandb.ai
- Riccardo Taiello - github - website
- Melek Önen - website
- Olivier Humbert - LinkedIn
- Marco Lorenzi - website
@InProceedings{10.1007/978-3-031-16446-0_13,
author="Taiello, Riccardo
and {\"O}nen, Melek
and Humbert, Olivier
and Lorenzi, Marco",
title="Privacy Preserving Image Registration",
booktitle="Medical Image Computing and Computer Assisted Intervention -- MICCAI 2022",
year="2022",
publisher="Springer Nature Switzerland",
address="Cham",
pages="130--140",
isbn="978-3-031-16446-0"
}
Slides are available here