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.
- Install packages
pip install --upgrade pip
pip install -r requirements.dev.txt
pip install -r requirements.txt
-
Download Kaggle data and place it into
data/kaggle/
. -
Download external kidney data + spleen data in 50um resolution, and place them into
data/external
-
Preprocess Kaggle + external data.
python segment_vasculature/preprocessing/create_3d_tensors.py
- Run MLFlow server
bash bash_scripts/run_mlflow_server.sh
- Export the project dir to enable relative imports
export PYTHONPATH="${PYTHONPATH}:${ABSOLUTE_PROJECT_PATH}"
- Export number of GPUs that are going to be used for training
export N_GPUS=1
- Train effnet_v2_m model for kidney1
bash bash_scripts/train_effnet_v2_m_kidney1.sh
- 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
- Train effnet_v2_m model for kidney1 + kidney2
bash bash_scripts/train_effnet_v2_m_kidney1_2.sh
- 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
- Train effnet_v2_m model for kidney1 + kidney2 + kidney_external
bash bash_scripts/train_effnet_v2_m_kidney1_2_external.sh
- 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
- Create boundaries masks for all training data
python segment_vasculature/preprocessing/create_boundaries.py
- Train effnet_v2_m model for kidney1 + kidney2 + kidney_external + spleen_external
bash bash_scripts/train_effnet_v2_m_kidney1_2_external_spleen.sh
- Train dpn model for kidney1 + kidney2 + kidney_external + spleen_external
bash bash_scripts/train_dpn_kidney1_2_external_spleen.sh
- Train maxvit model for kidney1 + kidney2 + kidney_external + spleen_external
bash bash_scripts/train_maxvit_kidney1_2_external_spleen.sh