Perspective théorique d'une gerbe pour une segmentation robuste
Ceci est un référentiel pour notre travail sur A-Sheaf-Theoretic-Perspective-for-Robust-Segmentation
Description
Ce référentiel contient le code permettant de former des modèles de segmentation robustes en appliquant l'équivariance de forme dans un espace latent discret et en utilisant la théorie des gerbes cellulaires pour modéliser la compositionnalité de la topologie de la carte de segmentation de sortie et appliquer une perte basée sur la composition (voir l'article pour plus de détails). Cette base de code contient du code de formation et de modèle pour nos modèles. Nous avons différents types de modèles. Nous disposons de modèles qui imposent l'équivariance en utilisant une perte contrastive comme décrit dans notre article. Nous appliquons l'équivariance au groupe dièdre (D4) en utilisant notre perte de base contrastive. Nous appliquons également l'équivariance en contraignant les noyaux convolutifs de notre modèle à une représentation de groupe régulière ou irréductible.
Commencer
Dépendances
- Veuillez préparer un environnement avec python=3.7, puis utilisez la commande "pip install -r Requirements.txt" pour les dépendances.
Ensembles de données
- Vous devrez créer 3 fichiers csv (train.csv, validation.csv, test.csv). Le train.csv doit avoir trois colonnes (« t2image », « adcimage », « t2label ») contenant les chemins d'accès aux images et les segmentations correspondantes. Les fichiers validation.csv et test.csv doivent avoir deux colonnes (« t2image », « t2label ») contenant les chemins d'accès aux images et les segmentations correspondantes. Nous prenons en charge le format nifti. Nous fournissons un exemple de données sur la prostate dans data/Prostate.
- Vous êtes libre de choisir de vous entraîner sur le jeu de données de votre choix, prétraité à votre guise. Nous fournissons des chargeurs de données pour les ensembles de données sur la prostate.
- Prostate : l'ensemble de données sur la prostate est acquis à partir de l'ensemble de données NCI-ISBI13 Challenge et décathalon.
Formation/Tests.
- Vous pouvez exécuter le script de formation/test avec main.py. Vous devez saisir les chemins d'accès aux fichiers csv d'entraînement, de validation et de test ainsi que le répertoire de sortie pour enregistrer les résultats et les images. Vous devrez ajuster d'autres hyper-paramètres en fonction de votre ensemble de données visible dans main.py. Nous avons 4 modèles : 'ShapeVQUnet', 'HybridShapeVQUnet', 'HybridSE3VQUnet', '3DSE3VQUnet'. Les modèles « ShapeVQUnet » et « HybridShapeVQUnet » contraignent l'espace latent à un espace de forme équivariant pour le groupe D4 en utilisant une perte basée sur le contraste. Vous devez choisir l'argument --contrastive True si vous choisissez le modèle 'ShapeVQUnet' ou 'HybridShapeVQUnet' et choisir --contrastive False sinon. Le 'ShapeVQUnet' est un modèle 3D tandis que le 'HybridShapeVQUnet' est un modèle 2D/3D. Les modèles « HybridSE3VQUnet » et « 3DSE3VQUnet » contraignent les noyaux convolutifs au groupe SE3. Si vous choisissez l'un des 'HybridSE3VQUnet' et '3DSE3VQUnet', vous devrez choisir si vous souhaitez une représentation de groupe régulière (« Regular ») ou irréductible (« Irréductible ») (--repr) . Si vous choisissez une représentation de groupe régulière (« Regular »), vous devrez alors choisir le groupe (--group), par exemple --group 4 est l'équivariance du groupe D4. Vous devez également choisir la multiplicité (--multiplicity) de chaque élément du groupe si l'on choisit le modèle 'HybridSE3VQUnet' et '3DSE3VQUnet'. Pour tous les modèles, vous devez également choisir après combien d'époques vous souhaitez inclure la perte basée sur la gerbe cellulaire (--topo_epoch). Vous trouverez ci-dessous un exemple de données sur la prostate.
python main.py --modeltype 'HybridShapeVQUnet' --contrastive True --topo_epoch 25 --training_data '.../Sheaves_for_Segmentation/data/Prostate/train.csv' --validation_data '.../Sheaves_for_Segmentation/data/Prostate/validation.csv' --test_data '.../Sheaves_for_Segmentation/data/Prostate/test.csv', --output_directory '.../Sheaves_for_Segmentation/data/Prostate/output/'
Auteurs
Noms et coordonnées des contributeurs
Ainkaran Santhirasekaram ([email protected])
Références
- escnn
- Perte persistante de segmentation d'homologie