Pancreas Segmentation in Abdominal CT Scans
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore upload Apr 5, 2018
data.py upload Apr 5, 2018
pipeline upload Apr 5, 2018
readme.md Update readme.md Apr 9, 2018
slice.py upload Apr 5, 2018
testvis.py remove unused lines Apr 6, 2018
unet.py upload Apr 5, 2018
utils.py upload Apr 5, 2018

readme.md

Pancreas Segmentation in Abdominal CT Scans

Introduction


This is the code repository for the abstract Pancreas Segmentation in Abdominal CT Scans presented at IEEE International Symposium on Biomedical Imaging (ISBI) 2018. The code for data preparation, test and utilities is largely from OrganSegC2F. Please follow their requirements if you want to use the code in your work. There are no restrictions other than this.

We propose a U-Net based approach for pancreas segmentation. Under the same setting where bounding boxes are provided, this method outperforms previously reported results with a mean Dice Coefficient of 86.70 for the NIH dataset with 4-fold cross validation. Results show that a network designed specifically for and trained from scratch with biomedical images can achieve a better performance with much less training time compared to fine-tuning the models that are designed for and pre-trained on natural images.

Main Dependencies


  • python (2.7)

  • tensorflow-gpu (1.3.0)

  • Keras (2.0.8)

  • numpy (1.13.1)

  • pandas (0.20.3)

  • matplotlib (used for test output visualization)

To run the experiment


Step 1. Navigate to your project root directory, download the pancreas segmentation dataset, use the code to convert the images and annotations to numpy arrays.

Step 2. Clone this repo in your project root directory.

Step 3. Modify the path variables in pipeline to fit your own settings.

Step 4. Execute script

chmod +x pipeline
./pipeline

Step 5. Modify the cur_fold variable in script pipeline to run in different fold.

After each round, there should be

  1. A test_stats.csv in /project-root-dir/data/test-records/ which records DSC mean and standard deviation for each fold
  2. A /project-root-dir/data/test-records/{test_model_name}.csv which records DSC for each test case
  3. Output prediction segmentation in /project-root-dir/data/test-records/pred-{current_fold} for each test case

Note: since the code is not well tested after clean-up, there may be some caveats when running the code. Issues and PRs are welcome.

References


[1] Y. Zhou, L. Xie, W. Shen, Y. Wang, E. Fishman and A. Yuille, "A Fixed-Point Model for Pancreas Segmentation in Abdominal CT Scans", Proc. MICCAI, 2017

[2] H. Roth, L. Lu, A Farag, H-C Shin, J Liu, E. Turkbey, and R. M. Summers, "DeepOrgan: Multi-level deep convolutional networks for automated pancreas segmentation", Proc. MICCAI, 2015.

[3] O. Ronneberger, P. Fischer, and T. Brox, "U-Net: Convolutional Networks for Biomedical Image Segmentation", Proc. MICCAI, 2015.