Code für das Training/Generieren von GAN, dh für Schriftart Design.
Erzeugte Schriftarten haben verschiedene Stile und sie sind als Charakter lesbar.
Zufälliger Spaziergang im Style-Input-Raum. Sie können allmählich veränderte Schriftarten beobachten.


























Der Auther überprüft die Auslaufcodes in nur folgender Umgebung:
Wenn Sie mit der neuesten Umgebung ausführen möchten, überarbeiten Sie einige Dateien nach Bedarf.
Klonen Sie zunächst dieses Repository. Hinzufügen --recursive , da dieses Repository Submodul (FONT2IMG) enthält
git clone --recursive https://github.com/uchidalab/fontdesign_gan
cd fontdesign_gan
Wenn Sie GPU und Docker verwenden, ist es einfach, Ihre Umgebung einzurichten. Bedarfsbibliotheken sind in DockerFile geschrieben.
Installieren Sie GPU -Treiber/Nvidia Docker und führen Sie die folgenden Befehle aus:
docker build -t fontdesign_gan .
docker run --runtime=nvidia -it --rm -p 6006:6006 --volume `pwd`:/workdir -w /workdir/ fontdesign_gan
Mit GPU: Installieren Sie GPU -Treiber/CUDA/CUDNN und führen Sie den folgenden Befehl aus:
pip install -r requirements_gpu.txt
Mit CPU: Ausführen folgender Befehl:
pip install -r requirements_cpu.txt
Umwandeln Sie Schriftdateien (.ttf) in Bilddateien (.png) und packen Sie sie in eine HDF5 -Datei (.h5) ein, um sie in eine HDF5 -Datei zu packen.
Erstellen Sie ein Verzeichnis (Ex ./ttfs ) und kopieren Sie Schriftdateien. Setzen Sie den Zielpfad (ex ./src/myfonts.h5 ) und führen Sie aus.
python main.py --ttf2png --png2h5 --font_ttfs ./ttfs --font_h5 ./src/myfonts.h5
--ttf2png ist die Option zum Konvertieren, Bilddateien werden in ./src/pngs/{YYYY-MM-DD_HHmmss} gespeichert. Wenn Sie --font_pngs Option verwenden, können Sie den Pfad selbst festlegen.
--png2h5 ist die Option für das Packen, die verpackte Datei wird in dem Pfad gespeichert, den Sie mit --font_h5 Option festgelegt haben.
Setzen Sie den Pfad der gepackten Datei und laufen Sie aus.
python main.py --train --font_h5 ./src/myfonts.h5
Die Ergebnisse werden in ./result/{YYYY-MM-DD_HHmmss} gespeichert. Sie können das Ziel mit --gan_dir festlegen.
Im log , gespeicherte Dateien: Flags -Protokoll, neueste/LESTED TensorFlows Dumps (.ckpt*), Tensorboard -Protokoll.
Im sample werden Schriftarten, die vorübergehend erzeugt werden, gespeichert.
Während des Trainings läuft auch Tensorboard. Zugriff auf URL, die in der Befehlszeile angezeigt wird.
Legen Sie einen Pfad des ausgebildeten GAN -Ausgangsverzeichnisses und einer JSON -Datei fest.
Die JSON -Datei muss stil-/charakteristische IDs geschrieben werden. Eine Stil -ID entspricht einer zufälligen Matrix. Eine Zeichen -ID entspricht einem Zeichen.
Die IDs werden in Ordnung geladen und Sie können einige Operanden verwenden. Zum Beispiel, wenn die JSON -Datei folgt:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
Eingabe -IDs sind wie folgt:
style_ids = [0, 5, 21, 37, (between 17 and 39 with 4 steps)]
char_ids = [0, 1, 2, 3, 6, 6, 6, 6]
und # # der Ergebnisspalten lautet 4. Auch Beispieldateien ( ./jsons/sample*.json ) überprüfen.
Führen Sie nach der Vorbereitung der JSON -Datei wie folgt aus:
python main.py --generate --gan_dir ./result/{trained} --ids ./jsons/sample01.json
Generierte Schriftarten werden in ./result/{trained}/generated/{YYYY-MM-DD_HHmmss}.png <yyyy-mm-dd_hhmmss}.png gespeichert. Sie können den Ausgabedateinamen mit --gen_name festlegen.
Erzeugtes Bild ist wie folgt: 
Wenn Sie zufällige Wanderschriften möchten, verwenden Sie --generate_walk . Eine JSON -Datei ist unnötig.
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
256 Styles -Schriftarten werden erzeugt und werden schrittweise verwandelt.
Es gibt viele Optionen. Überprüfen Sie die folgende Tabelle.
| Für | Option | Beschreibung | Standard |
|---|---|---|---|
| Vorbereiten, trainieren | --img_width | Breite der Bilder. | 64 |
| Vorbereiten, trainieren | --img_height | Höhe der Bilder. | 64 |
| Vorbereiten, trainieren | --img_dim | Dimension von Bildern. | 3 |
| Vorbereiten, trainieren | --chars_type | Sie können Zeichentypen, "Caps", "Hiragana" oder "Caps, Hiragana" auswählen. | "Kappen" |
| Trainieren, erzeugen | --gpu_ids | GPU -IDs, die Sie verwenden. Dieser Typ ist String (z. B. "0, 1") | (automatisch einstellen) |
| Trainieren, erzeugen | --batch_size | Chargengröße für Gan | 256 |
| Zug | --arch | Architektur von GaN -Modellen. Wählen Sie "dcgan" oder "resnet" | "Dcgan" |
| Zug | --style_ids_n | Anzahl der Stil -IDs | 256 |
| Zug | --style_z_size | Größe von style_z | 100 |
| Zug | --gan_epoch_n | Anzahl der Epochen -Iterationen | 10000 |
| Zug | --critic_n | Anzahl der kritischen Iterationen | 5 |
| Zug | --sample_imgs_interval | Intervall zum Speichern von Beispielbildern | 10 |
| Zug | --sample_col_n | Anzahl der Spalten des Beispielbildes | 26 |
| Zug | --keep_ckpt_interval | Intervall, TensorFlows Müllkippe zu halten | 250 |
| Zug | --run_tensorboard | Tensorboard ausführen oder nicht | WAHR |
| Zug | --tensorboard_port | Port für Tensorboard -Seite | 6006 |