SubUnet is a Deep Learning Architecture based on U-Net used for a challenge at École de technologie supérieure during Jose Dolz' class. The trained model we submitted ended up in first place.
The purpose of this challenge was to segment the right ventricle (blue), the left ventricle (orange), and the left ventricle myocardial (green), as you can see in the image above. The tricky part of this challenge is that the given dataset only contains 1208 images for the training and 90 images for evaluation.
The architecture of our model is based on Unet, but the lowest layer is replaced by a Pyramidal Pooling Module (presented by PSPNet). This modification and some modifications ported to UNet aimed to increase the receptive field of the model. The schema below presents the whole architecture of our model. The paper we submitted to our professor (FR) is available here and its english translation is available here
The dataset used for our project is not available under this repository due to the patients' privacy rights.
If you want to use our code to train a model, the following steps will get you started:
- Ensure to have the following file structure for the data folder:
Then put images in the respective folders.
Data/ ├── train/ │ ├── GT/ │ └── Img/ └── val/ ├── GT/ └── Img/
- Install the needed python packages
$ pip install -r requirements.txt
- Run the training:
python './Source Code/main.py' --root-dir=./path/to/dataset --num-classes=X
The -h
flag can also be used to get all the arguments available.
It is distributed under the MIT License. See LICENSE.md
for more information.
- Michele Bona - MicheleBona
- Clémence Gaillotte
- Tristan Michel - QuartoTR
- Damien Djomby - nowtryz
- Enzo Masson - enzomasson25