Skip to content

AnatomyNet: Deep 3D Squeeze-and-excitation U-Nets for fast and fully automated whole-volume anatomical segmentation

License

Notifications You must be signed in to change notification settings

hheavenknowss/AnatomyNet-for-anatomical-segmentation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AnatomyNet-for-anatomical-segmentation

Please first read the paper Zhu, Wentao, Yufang Huang, Liang Zeng, Xuming Chen, Yong Liu, Zhen Qian, Nan Du, Wei Fan, and Xiaohui Xie. "AnatomyNet: Deep Learning for Fast and Fully Automated Whole‐volume Segmentation of Head and Neck Anatomy." Medical physics (2018).

Use PDDCA18 (MICCAI) training + HNPETCT + HNCetuximab as training set. Use PDDCA18 test as test.

The data spliting is in https://www.google.com/search?q=PDDCA+dataset&oq=PDDCA+dataset&aqs=chrome..69i57j0l5.3910j0j7&sourceid=chrome&ie=UTF-8

./data/*.csv files are used to remove non-head and neck regions. Processed PDDCA, PETCT and CET datasets can be downloaded from https://drive.google.com/open?id=1yTarwj5_rp7eX2gCm5k8R0RsZVGzdYlc https://drive.google.com/file/d/17SUj2Si3eD8BHQ7nGpPSO_6wSLlk0TEg/view?usp=sharing https://drive.google.com/file/d/1XbsHVVtap72qp11Pv2cUzbV3dosOjBos/view?usp=sharing

The numpy and cropping information in .csv are from original .nrrd data. It is recommended you extract spacing from .nrrd and resample the numpy (z, y, x) to data of spacing 0.76 (x), 0.76 (y), and 1.25 (z) which are the smallest spacing of the dataset if you want to resample to a fixed spacing.

For the files in ./src/, please read the paper for details.

Depedencies: pytorch 0.3/0.4, simpleitk 1.1.0, tqdm 4.11.2, cv2 3.4.0. I recommend to use Anaconda to configure the environment.

preprocee_crop.ipynb can be used for cropping.

baseline.py is the U-Net with only one downsample layer.

baseline2Pool.py is the U-Net with two downsampling layer.

baseline3Pool.py is the U-Net with two downsampling layer.

baseline4Pool.py is the U-Net with two downsampling layer.

baselineDiceCrossEntropy.py is the hybrid loss with dice loss and cross entropy loss.

baselineDiceFocalLoss.py is the hybrid loss with dice loss and focal loss.

baselineExpLogLoss.py is the exponential log loss. It does not work well both theoretically and experimentally. You can read the paper for detail.

baselineRes18Conc.py uses Res18 as the encoder and concatenation in the skip connection.

baselineRes18Sum.py uses Res18 as the encoder and summation in the skip connection.

baselineSERes18Conc.py uses Squeeze and Excitation Res18 as the encoder and concatenation in the skip connection.

baselineSERes18sum.py uses Squeeze and Excitation Res18 as the encoder and summation in the skip connection.

AnatomyNet.py is used for the proposed method with the initialization of baselineSERes18Conc.py

Segmentation for the first 4 test CT images on MICCAI 2015 challenge: left is the ground truth; right is the prediction.

Test 0

Test 1

Test 2

Test 3

About

AnatomyNet: Deep 3D Squeeze-and-excitation U-Nets for fast and fully automated whole-volume anatomical segmentation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.2%
  • Jupyter Notebook 6.8%