Теоретико-пучковая перспектива для устойчивой сегментации
Это репозиторий нашей работы над A-Sheaf-Theoretic-Perspective for Robust-Segmentation.
Описание
Этот репозиторий содержит код для обучения надежных моделей сегментации путем обеспечения эквивалентности формы в дискретном скрытом пространстве и использования теории клеточных пучков для моделирования композиционности топологии выходной карты сегментации и обеспечения композиционных потерь (более подробную информацию см. в статье). Эта база кода содержит обучающий и модельный код для наших моделей. У нас есть разные типы моделей. У нас есть модели, которые обеспечивают эквивариантность с использованием контрастных потерь, как описано в нашей статье. Мы обеспечиваем эквивалентность группы диэдра (D4), используя контрастирующую потерю основания. Мы также обеспечиваем эквивариантность, ограничивая сверточные ядра в нашей модели либо регулярным, либо неприводимым групповым представлением.
Начиная
Зависимости
- Подготовьте среду с python=3.7, а затем используйте команду «pip install -r require.txt» для зависимостей.
Наборы данных
- Вам нужно будет создать 3 файла CSV (train.csv, validation.csv, test.csv). В файле train.csv должно быть три столбца («t2image», «adcimage», «t2label»), содержащих пути к изображениям и соответствующие сегментации. Файлы validation.csv и test.csv должны иметь два столбца («t2image», «t2label»), содержащие пути к изображениям и соответствующие сегментации. Мы поддерживаем формат nifti. Мы предоставляем пример данных о простате в data/Prostate.
- Вы можете обучаться на выбранном вами наборе данных, предварительно обработанном по вашему желанию. Мы предоставляем загрузчики данных для наборов данных простаты.
- Простата: набор данных о простате получен из набора данных NCI-ISBI13 Challenge и Decathalon.
Обучение/Тестирование.
- Вы можете запустить сценарий обучения/тестирования вместе с main.py. Вы должны ввести пути к обучающим, проверочным и тестовым CSV-файлам, а также к выходному каталогу для сохранения результатов и изображений. Вам нужно будет настроить другие гиперпараметры в соответствии с вашим набором данных, которые можно увидеть в main.py. У нас есть 4 модели: «ShapeVQUnet», «HybridShapeVQUnet», «HybridSE3VQUnet», «3DSE3VQUnet». Модель «ShapeVQUnet» и «HybridShapeVQUnet» ограничивает скрытое пространство до эквивалентного пространства форм группе D4, используя контрастные потери. Вам следует выбрать аргумент --contrastive True, если вы выбираете модель «ShapeVQUnet» или «HybridShapeVQUnet», и выбрать --contrastive False в противном случае. «ShapeVQUnet» — это 3D-модель, а «HybridShapeVQUnet» — это 2D/3D-модель. Модели «HybridSE3VQUnet» и «3DSE3VQUnet» ограничивают сверточные ядра группой SE3. Если вы выберете «HybridSE3VQUnet» и «3DSE3VQUnet», вам придется выбрать, хотите ли вы обычное («Regular») или неприводимое («Irreducible») представление группы (--repr) . Если вы выберете обычное («Обычное») представление группы, вам придется выбрать группу (--group), например, --group 4 является эквивалентностью группы D4. Вы также должны выбрать кратность (--multiplicity) каждого элемента в группе, если вы выбираете модель «HybridSE3VQUnet» и «3DSE3VQUnet». Для всех моделей вы также должны выбрать, через сколько эпох вы хотите включить потери на основе связки ячеек (--topo_epoch). Ниже приведен пример данных простаты.
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/'
Авторы
Имена авторов и контактная информация
Айнкаран Сантирасекарам ([email protected])
Ссылки
- escnn
- Постоянная потеря сегментации гомологии