For this submission, we developed a postprocessing UNet for EIT segmentation. The postprocessing network is trained on a dataset of synthetic phantoms and simulated measurements.
We provide the enviroment.yml
file to restore the conda enviroment used for the submission. You can create the environment using the following command:
conda env create -f environment.yml
The network weights are stored here and have to be stored in postprocessing_model, such that the full path is postprocessing_model/version_01/model.pt. We precomputed the Jacobian for an empty water tank, as well as some other matrices (smoothness regulariser, node coordinates). This eliminates the need to install FEniCS in the environment. All of these matrices are available here and have to be stored in data/. The script main.py
can be used to reconstruct phantoms:
python main.py /path_to_input_folder /path_to_ouput_folder difficulty_level
Our goal is to train a postprocessing UNet,
to predict the segmentation of the conductivity
Note that the backbone of our approach used exactly the same network architecture as in our other repository.
We use linearised time-difference reconstructions for the conditional input. Computing this linearised time-difference reconstruction amounts to solving a regularised least squares problem
where
We use a combination of three different priors, where
In total, we use five different combinations of
To deal with the different difficulty levels of the challenge, we added the level
Additionally, for each level we used different hyperparameters
For simulation, we used the forward operator provided by the organisers with the dense mesh. For the reconstruction process, we used a customized mesh. Further, we implemented the complete electrode model in FEniCS. This allows us to directly compute the Jacobian for the linearised reconstruction with FEniCS. Here, we use continuous piece-wise linear functions for the potential and piece-wise constant functions for the reconstruction of the conductivity. We create synthetic conductivity images to train the conditional diffusion model. For this, we simulate a random number (1 to 4) of objects inside the water tank. In this context, we use circles, random polygons, and hand-drawn objects. We ensure that these elements do not intersect or overlap. Each object is then randomly assigned to be either conductive or resistive. Using this method, we create ~15.000 images per challenge level.
We evaluate the postprocessing UNet w.r.t. the score function used in the challenge. In the following we present the mean score over the four challenge phantoms:
Level | Score |
---|---|
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 |
- Alexander Denker1, Tom Freudenberg1, Željko Kereta2, Imraj RD Singh2, Tobias Kluth1, Peter Maass1, Simon Arridge 2
1Center of Industrial Mathematics (ZeTeM), University of Bremen, Bibliothekstr. 5, 28359 Bremen, Germany.
2Department of Computer Science, University College London, 66-72 Gower St, WC1E 6EA, London, United Kingdom.