這是Skfont的TensorFlow實現:骨架驅動的韓國字體綜合與有條件的深層對抗網絡。
紙
在我們的研究中,我們使用端到端的有條件深層對抗網絡研究字體合成的問題,該網絡具有少量韓國字符(Hangul)。 Hangul由11,172個字符組成,並通過以多種位置模式編寫組成。傳統上,字體設計需要重載的人工勞動力,很容易花一年的時間才能完成一套樣式。即使在可編程方法的幫助下,它仍然需要很長時間,並且無法避免圍繞更改參數的自由的限制。在深處的神經網絡領域嘗試了許多試驗,以在沒有任何人為乾預的情況下產生角色。我們的研究重點是端到端的深度學習模型,即骨架驅動的字體生成器(SKFONT):當給出114個樣本時,系統會自動以相同給定的字體樣式生成其餘字符。 Skfont涉及三個步驟:首先,它通過觀察114個目標字符來生成完整的目標字體字符。然後,它提取從第一步獲得的合成字符的骨骼(結構)。這個過程驅動系統在整個一代過程中維持角色的主要結構。最後,它將目標字體的樣式轉移到這些學到的結構上。我們的研究可以通過使用“骨架驅動的”條件深層對抗網絡,解決了長期逾期的短缺,例如模糊,破裂和缺乏精緻的形狀和样式。與最新方法的定性和定量比較證明了擬議的Skfont方法的優越性。




conda create --name tutorial-TF python=3.6.8
conda activate tutorial-TF or activate tutorial-TF
conda install -c anaconda tensorflow-gpu=1.13.1
conda env update --file tools.yml
我們的模型由三個子模型,即F2F-F2S-S2F。對於每個模型,我們必須準備一個配對的數據集。即一個源用於目標字體配對的數據集,與骨架數據集相關的目標字體以及目標骨架與相應的字體數據集。要在SRC_FONT目錄中執行任何韓語字體和TRG_FONT目錄中的n個目標字體數。然後運行以下命令進行數據預處理。
生成源字體圖像
python ./tools/src-font-image-generator.py
生成目標字體圖像
python ./tools/trg-font-image-generator.py
生成目標字體骨骼圖像
python ./tools/trg-skeleton-image-generator.py
結合源,目標和目標骨骼
python ./tools/combine_images.py --input_dir src-image-data/images --b_dir trg-image-data/images --c_dir skel-image-data/images --operation combine
將圖像轉換為tfrecords
python ./tools/images-to-tfrecords.py
python main.py --mode train --output_dir trained_model --max_epochs 25
要學習一種看不見的字體樣式,您可以使用以下命令微調已經預先訓練的模型。如果要生成已經學習的字體樣式,只需跳過以下命令即可。
python main.py --mode train --output_dir finetuned_model --max_epochs 500 --checkpoint trained_model/
像以前一樣生成圖像,但是這次使用不同的模塊使用以下提到的命令來創建測試Tfrecord。
python ./tools/test-images-to-tfrecords.py
python main.py --mode test --output_dir testing_results --checkpoint finetuned_model
該代碼靈感來自PIX2PIX TensorFlow項目。
特別感謝以下工程共享其代碼和數據集。
如果您喜歡的話,請引用我們的工作。
KO,DH,Hassan,Au,Suk,J。等。 Skfont:帶有條件深層對抗網絡的骨骼驅動的韓國字體生成器。 IJDAR(2021)。 https://doi.org/10.1007/s10032-021-00374-4
代碼和其他幫助模塊僅允許個人和學術用法。