ivanpanshin / segment-vasculature-5th-place

3D segmentation of blood vessels based on Hierarchical Phase-Contrast Tomography (HiP-CT)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Segment Vasculature 5th place solution

Gold solution for the Hacking the Human Vasculature in 3D competition.

The trained weights could be found in weights dir.

The proposed solution could be trained in about a week on a single RTX A6000 Ada.

  1. Install packages
pip install --upgrade pip
pip install -r requirements.dev.txt
pip install -r requirements.txt
  1. Download Kaggle data and place it into data/kaggle/.

  2. Download external kidney data + spleen data in 50um resolution, and place them into data/external

  3. Preprocess Kaggle + external data.

python segment_vasculature/preprocessing/create_3d_tensors.py
  1. Run MLFlow server
bash bash_scripts/run_mlflow_server.sh
  1. Export the project dir to enable relative imports
export PYTHONPATH="${PYTHONPATH}:${ABSOLUTE_PROJECT_PATH}"
  1. Export number of GPUs that are going to be used for training
export N_GPUS=1
  1. Train effnet_v2_m model for kidney1
bash bash_scripts/train_effnet_v2_m_kidney1.sh
  1. Calculate pseudo labels for kidney_2
bash bash_scripts/pseudo_label_kidney2.sh

Note: don't forget to insert correct path to weights in configs/callbacks/test.yaml

  1. Train effnet_v2_m model for kidney1 + kidney2
bash bash_scripts/train_effnet_v2_m_kidney1_2.sh
  1. Calculate pseudo labels for kidney_external
bash bash_scripts/pseudo_label_kidney_external.sh

Note: don't forget to insert correct path to weights in configs/callbacks/test.yaml

  1. Train effnet_v2_m model for kidney1 + kidney2 + kidney_external
bash bash_scripts/train_effnet_v2_m_kidney1_2_external.sh
  1. Calculate pseudo labels for spleen_external
bash bash_scripts/pseudo_label_spleen_external.sh

Note: don't forget to insert correct path to weights in configs/callbacks/test.yaml

  1. Create boundaries masks for all training data
python segment_vasculature/preprocessing/create_boundaries.py
  1. Train effnet_v2_m model for kidney1 + kidney2 + kidney_external + spleen_external
bash bash_scripts/train_effnet_v2_m_kidney1_2_external_spleen.sh
  1. Train dpn model for kidney1 + kidney2 + kidney_external + spleen_external
bash bash_scripts/train_dpn_kidney1_2_external_spleen.sh
  1. Train maxvit model for kidney1 + kidney2 + kidney_external + spleen_external
bash bash_scripts/train_maxvit_kidney1_2_external_spleen.sh

About

3D segmentation of blood vessels based on Hierarchical Phase-Contrast Tomography (HiP-CT)


Languages

Language:Python 97.7%Language:Shell 2.3%