Una-perspectiva-teórica-de-gavilla-para-una-segmentación-robusta
Este es un repositorio de nuestro trabajo en A-Sheaf-Theoretic-Perspective-for-Robust-Segmentation
Descripción
Este repositorio contiene el código para entrenar modelos de segmentación robustos aplicando la equivarianza de forma en un espacio latente discreto y utilizando la teoría de haz celular para modelar la composicionalidad de la topología del mapa de segmentación de salida y aplicar una pérdida basada en la composición (consulte el artículo para obtener más detalles). Esta base de código contiene código de entrenamiento y modelo para nuestros modelos. Disponemos de diferentes tipos de modelos. Tenemos modelos que imponen la equivarianza utilizando una pérdida basada en contraste como se describe en nuestro artículo. Aplicamos la equivarianza al grupo diédrico (D4) utilizando nuestra pérdida de base contrastiva. También aplicamos la equivarianza restringiendo los núcleos convolucionales de nuestro modelo a una representación de grupo regular o irreducible.
Empezando
Dependencias
- Prepare un entorno con python=3.7 y luego use el comando "pip install -r requisitos.txt" para las dependencias.
Conjuntos de datos
- Deberá crear 3 archivos csv (train.csv, validation.csv, test.csv). El train.csv debe tener tres columnas ('t2image','adcimage','t2label') que contengan las rutas a las imágenes y las segmentaciones correspondientes. Validation.csv y test.csv deben tener dos columnas ('t2image','t2label') que contengan las rutas a las imágenes y las segmentaciones correspondientes. Admitimos el formato nifti. Proporcionamos un ejemplo de datos de próstata en data/Prostate.
- Eres libre de elegir entrenar con el conjunto de datos de tu elección, preprocesado como desees. Proporcionamos cargadores de datos para los conjuntos de datos de próstata.
- Próstata: el conjunto de datos de próstata se adquiere del conjunto de datos decathalon y NCI-ISBI13 Challenge.
Entrenamiento/Pruebas.
- Puede ejecutar el script de entrenamiento/prueba junto con main.py. Debe ingresar las rutas a los archivos csv de entrenamiento, validación y prueba y el directorio de salida para guardar resultados e imágenes. Deberá ajustar otros hiperparámetros de acuerdo con su conjunto de datos, que se puede ver en main.py. Disponemos de 4 modelos: 'ShapeVQUnet', 'HybridShapeVQUnet', 'HybridSE3VQUnet', '3DSE3VQUnet'. El modelo 'ShapeVQUnet' y 'HybridShapeVQUnet' restringe el espacio latente a un espacio de forma equivariante para el grupo D4 utilizando una pérdida basada en contraste. Debe elegir el argumento --contrastive True si elige el modelo 'ShapeVQUnet' o 'HybridShapeVQUnet' y elegir --contrastive False en caso contrario. El 'ShapeVQUnet' es un modelo 3D mientras que el 'HybridShapeVQUnet' es un modelo 2D/3D. Los modelos 'HybridSE3VQUnet' y '3DSE3VQUnet' restringen los núcleos convolucionales al grupo SE3. Si elige uno de los 'HybridSE3VQUnet' y '3DSE3VQUnet', tendrá que elegir si desea una representación de grupo regular ('Regular') o irreducible ('Irreducible') (--repr). Si elige una representación de grupo regular ("Regular"), tendrá que elegir el grupo (--group), por ejemplo, --group 4 es una equivarianza con el grupo D4. También se debe elegir la multiplicidad (--multiplicidad) de cada elemento del grupo si se elige el modelo 'HybridSE3VQUnet' y '3DSE3VQUnet'. Para todos los modelos, también debe elegir después de cuántas épocas desea incluir la pérdida basada en el haz celular (--topo_epoch). A continuación se muestra un ejemplo de datos de próstata.
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/'
Autores
Nombres de los contribuyentes e información de contacto.
Ainkaran Santhirasekaram ([email protected])
Referencias
- escnn
- Pérdida persistente de segmentación de homología