Dieses Repository enthält einen Pytorch-Quellcode für AAAI2020-Oralpapier: Grapy-ML: Graph Pyramid gegenseitiges Lernen für Cross-Dataset Human Parsing von Haoyu HE, Jing Zhang, Qiming Zhang und Dacheng Tao.
Pytorch = 1.1.0
Torchvision
Scipy
Tensorboardx
Numpy
opencv-python
Matplotlib
Sie müssen die drei Datensätze herunterladen. Der CIHP -Datensatz und der ATR -Datensatz finden Sie in diesem Repository und unser Code wird auch stark davon geliehen.
Anschließend sollten die Datensätze im folgenden Ordner angeordnet werden, und die Bilder sollten mit der bereitgestellten Dateistruktur neu angeordnet werden.
/data/dataset/
Die Vorbereitungsmodelle und einige geschulte Modelle werden hier zum Testen und Training bereitgestellt.
Modellname | Beschreibung | Abgeleitet von |
---|---|---|
Deeplab_v3plus_V3.pth | Die Vorgebräuelgewichte des Deeptlab V3+ | |
CIHP_PRETRAIN.PTH | Das auf CIHP -Datensatz trainierte reproduzierte Deeptlab V3+ -Modell | Deeplab_v3plus_V3.pth |
CIHP_TRAINEL.PTH | GPM -Modell, das auf dem CIHP -Datensatz trainiert wurde | CIHP_PRETRAIN.PTH |
Deeplab_multi-dataset.PTH | Das reproduzierte Multi-Task-Lernen Deeptlab V3+ Modell, das auf CIHP, Pascal-Person-Part und ATR-Datensatz trainiert wurde | Deeplab_v3plus_V3.pth |
GPM-ML_MULTI-DATASET.PTH | Grapy-ML-Modell, das auf CIHP, Pascal-Person-Teil und ATR-Datensatz ausgebildet ist | Deeplab_multi-dataset.PTH |
Gpm-ml_finetune_pascal.pth | Grapy-ML-Modell, das auf dem Datensatz von Pascal-Person-Parts abgeschlossen ist | GPM-ML_MULTI-DATASET.PTH |
Führen Sie zum Testen die folgenden zwei Skripte aus:
bash eval_gpm.sh
bash eval_gpm_ml.sh
Während des Trainings müssen Sie zunächst das Deeptlab Pretrain -Modell (z. B. CIHP_DLAB.PTH) auf jedem Datensatz erhalten. Ein solches Gesetz zielt darauf ab, ein vertrauenswürdiges erstes Rohgebnis für den GSA -Betrieb in GPM zu liefern.
bash train_dlab.sh
Das ImageNet Pretrain -Modell ist in der folgenden Tabelle bereitgestellt, und Sie sollten den Datensatznamen- und Zielklassen zum gewünschten Datensatz im Skript schwingen. (CIHP: 20 Klassen, Pascal: 7 Klassen und ATR: 18 Klassen)
Im nächsten Schritt sollten Sie das Deeptlab -Vorab -Modell verwenden, um das GPM -Modell weiter zu trainieren.
bash train_gpm.sh
Es wird empfohlen, die Trainingseinstellungen in unserem Artikel zu befolgen, um die Ergebnisse zu reproduzieren.
Zunächst können Sie den Deeptlab -Vorab -Prozess durch das folgende Skript durchführen:
bash train_dlab_ml.sh
Der Multi-Datenet Deeplab V3+ wird als einfache Multi-Task-Aufgabe transformiert.
Anschließend können Sie das GPM-ML-Modell mit dem Trainingssatz aus allen drei Datensätzen trainieren nach:
bash train_gpm_ml_all.sh
Nach dieser Phase wären die ersten beiden Ebenen des GPM-ML-Modells robuster und verallgemeinerender.
Schließlich können Sie versuchen, jeden Datensatz durch das Unified Pretrain -Modell zu finatunen.
bash train_gpm_ml_pascal.sh
@inproceedings{he2020grapy,
title={Grapy-ML: Graph Pyramid Mutual Learning for Cross-dataset Human Parsing},
author={He, Haoyu and Zhang, Jing and Zhang, Qiming and Tao, Dacheng},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
year={2020}
}