This repository contains a pipeline for segmenting liver from grayscale CT scans.
- PyTorch library for neural network building blocks
- NumPy library for numerical computation
- Pandas library for data manipulation
- Scikit-learn library for train-test split
- TQDM library for progress visualization
- Pillow library for image processing
We use CUDA toolkit for GPU acceleration, thus, make sure to install the version of PyTorch supporting it.
Finally, the dependencies could be installed using pip package manager with the following: pip install -r requirements.txt in the root directory of the project.
- To run model training with train configuration in
configsdirectory, executepython main.py train - To run model testing with test configuration in
configsdirectory, executepython main.py test - To run model prediction with prediction configuration in
configsdirectory, executepython main.py pred
As our main segmentation model, we use U-Net architecture.
As our baseline model, we use a CNN architecture, with a succession of 3x3 convolutional layers (associated with ReLU) and pooling layers. The last layers do upsample, convolution 1x1 and activation function.
The data can be accessed via this URL. They are axial human CT scans. The dataset contains both inputs and also corresponding anotated expected outputs (labels).
Results are presented in report.pdf in great detail.