Pytorch-Code für das Papier "Medizinischer Transformator: Gated Axial-Tention für medizinische Bildsegmentierung", MICCAI 2021
Papier | Poster
: Checkout Unsere neueste Arbeit Unext, eine schnellere und effizientere Segmentierungsarchitektur, die auch einfach zu trainieren und implementieren zu können! Der Code ist hier verfügbar.
Dieses Repo hostet den Code für die folgenden Netzwerke:
Die Mehrheit der vorhandenen transformatorbasierten Netzwerkarchitekturen, die für Vision-Anwendungen vorgeschlagen wurden, müssen große Datensätze ordnungsgemäß trainieren. Im Vergleich zu den Datensätzen für Sehanwendungen ist die Anzahl der Datenproben jedoch relativ niedrig, was es schwierig macht, Transformatoren für medizinische Anwendungen effizient zu trainieren. Zu diesem Zweck schlagen wir ein Gated Axial-Dehy-Modell vor, das die vorhandenen Architekturen durch Einführung eines zusätzlichen Kontrollmechanismus im Selbstbekämpfungsmodul erweitert. Um das Modell effektiv auf medizinischen Bildern effektiv auszubilden, schlagen wir eine lokale Schulungsschicht (Logo) vor, die die Leistung weiter verbessert. Insbesondere wirken wir das gesamte Bild und die Patches ein, um globale bzw. lokale Merkmale zu lernen. Der vorgeschlagene medizinische Transformator (MEDT) verwendet die Logo-Trainingsstrategie zur axialen Aufmerksamkeit U-NET.

git clone https://github.com/jeya-maria-jose/Medical-Transformer
cd Medical-TransformerDer Code ist stabil unter Verwendung von Python 3.6.10, Pytorch 1.4.0
So installieren Sie alle Abhängigkeiten mit Conda:
conda env create -f environment.yml
conda activate medtSo installieren Sie alle Abhängigkeiten mit PIP:
pip install -r requirements.txtBereiten Sie den Datensatz im folgenden Format vor, um den Code leicht zu verwenden. Die Zug- und Testordner sollten jeweils zwei Unterordner enthalten: IMG und Etikett. Stellen Sie sicher, dass die Bilder ihre entsprechenden Segmentierungsmasken unter diesen Ordnern platziert werden und denselben Namen für eine einfache Korrespondenz haben. Bitte ändern Sie die Datenlader auf Ihr Bedarf, wenn Sie es vorziehen, den Datensatz in diesem Format nicht vorzubereiten.
Train Folder-----
img----
0001.png
0002.png
.......
labelcol---
0001.png
0002.png
.......
Validation Folder-----
img----
0001.png
0002.png
.......
labelcol---
0001.png
0002.png
.......
Test Folder-----
img----
0001.png
0002.png
.......
labelcol---
0001.png
0002.png
.......
python train.py --train_dataset " enter train directory " --val_dataset " enter validation directory " --direc ' path for results to be saved ' --batch_size 4 --epoch 400 --save_freq 10 --modelname " gatedaxialunet " --learning_rate 0.001 --imgsize 128 --gray " no " Change modelname to MedT or logo to train thempython test.py --loaddirec " ./saved_model_path/model_name.pth " --val_dataset " test dataset directory " --direc ' path for results to be saved ' --batch_size 1 --modelname " gatedaxialunet " --imgsize 128 --gray " no "Die Ergebnisse einschließlich vorhergesagter Segmentierungen werden zusammen mit den Modellgewichten in den Ergebnisordner platziert. Führen Sie den Code für Leistungsmetriken in MATLAB für die Berechnung der F1 -Punktzahl und Miou aus.
1) Beachten Sie, dass diese Experimente in Nvidia Quadro 8000 mit 48 GB Speicher durchgeführt wurden. 2) Google Colab Code ist eine inoffizielle Implementierung für Quick Train/Test. Bitte befolgen Sie den ursprünglichen Code für ordnungsgemäße Schulungen.
Der Dataloader-Code ist von Pytorch-Unet inspiriert. Der axiale Aufmerksamkeitscode wird aus Axial-Deeplab entwickelt.
@InProceedings{jose2021medical,
author= " Valanarasu, Jeya Maria Jose
and Oza, Poojan
and Hacihaliloglu, Ilker
and Patel, Vishal M. " ,
title= " Medical Transformer: Gated Axial-Attention for Medical Image Segmentation " ,
booktitle= " Medical Image Computing and Computer Assisted Intervention -- MICCAI 2021 " ,
year= " 2021 " ,
publisher= " Springer International Publishing " ,
address= " Cham " ,
pages= " 36--46 " ,
isbn= " 978-3-030-87193-2 "
}
Öffnen Sie ein Problem oder mailen Sie mir direkt bei Fragen oder Vorschlägen.