رمز للتدريب/توليد GAN ، وهذا هو لتصميم الخط.
الخطوط التي تم إنشاؤها ، لديهم أنماط مختلفة ويمكن قراءتها كشخصية. 
المشي العشوائي في مساحة المدخلات النمط. يمكنك مشاهدة الخطوط التي تحولت تدريجيا.


























قام المؤلف بفحص رموز التشغيل في البيئة التالية فقط:
إذا كنت ترغب في تشغيل أحدث بيئة ، فقم بمراجعة بعض الملفات حسب الضرورة.
أولا استنساخ هذا المستودع. إضافة --recursive لأن هذا المستودع يحتوي على وحدة فرعية (FONT2IMG)
git clone --recursive https://github.com/uchidalab/fontdesign_gan
cd fontdesign_gan
إذا كنت تستخدم GPU و Docker ، فمن السهل إعداد بيئتك. المكتبات المتطلبات مكتوبة في Dockerfile.
قم بتثبيت برنامج تشغيل GPU/nvidia docker وقم بتشغيل الأوامر التالية:
docker build -t fontdesign_gan .
docker run --runtime=nvidia -it --rm -p 6006:6006 --volume `pwd`:/workdir -w /workdir/ fontdesign_gan
مع GPU: تثبيت برنامج تشغيل GPU/CUDA/CUDNN وقم بتشغيل الأمر التالي:
pip install -r requirements_gpu.txt
مع وحدة المعالجة المركزية: تشغيل الأمر التالي:
pip install -r requirements_cpu.txt
تحويل ملفات الخط (.ttf) إلى ملفات الصور (.png) ، وحزمها في ملف HDF5 (.h5)
قم بعمل دليل (على سبيل المثال ./ttfs ) ونسخ ملفات الخط. تعيين مسار الوجهة (على سبيل المثال ./src/myfonts.h5 ) وتشغيل.
python main.py --ttf2png --png2h5 --font_ttfs ./ttfs --font_h5 ./src/myfonts.h5
--ttf2png هو الخيار للتحويل ، يتم حفظ ملفات الصور في ./src/pngs/{YYYY-MM-DD_HHmmss} . إذا كنت تستخدم خيار --font_pngs ، يمكنك تعيين المسار بنفسك.
--png2h5 هو خيار التعبئة ، يتم حفظ الملف المعبأ في المسار الذي تقوم بتعيينه مع- --font_h5 .
اضبط مسار الملف المعبأ وتشغيله.
python main.py --train --font_h5 ./src/myfonts.h5
يتم حفظ النتائج في ./result/{YYYY-MM-DD_HHmmss} . يمكنك تعيين الوجهة مع --gan_dir .
في دليل log ، تم حفظ نفس الملفات: سجل Flags ، أحدث/تم الاحتفاظ به من Dumps (.ckpt*) ، سجل Tensorboard.
في دليل sample ، يتم حفظ الخطوط التي ولدت مؤقتة.
أثناء التدريب ، يعمل Tensorboard أيضًا. الوصول إلى عنوان URL الذي سيظهر في سطر الأوامر.
اضبط مسارًا لدليل إخراج GAN المدرب وملف JSON.
يجب أن يكون ملف JSON مكتوبًا معرفات النمط/الحرف. معرف النمط يتوافق مع مصفوفة عشوائية. معرف الحرف يتوافق مع حرف.
يتم تحميل المعرفات بالترتيب ، ويمكنك استخدام بعض المعاملات. على سبيل المثال ، إذا كان ملف JSON يتبع:
{
"style_ids": [
"0", "5", "21", "37", "17..39:4"
],
"char_ids": [
"0-3", "6*4"
],
"col_n": 4
}
معرفات الإدخال ستكون هكذا:
style_ids = [0, 5, 21, 37, (between 17 and 39 with 4 steps)]
char_ids = [0, 1, 2, 3, 6, 6, 6, 6]
و # من أعمدة النتائج هو 4. تحقق أيضًا من ملفات العينة ( ./jsons/sample*.json ).
بعد إعداد ملف JSON ، قم بتشغيل مثل هذا:
python main.py --generate --gan_dir ./result/{trained} --ids ./jsons/sample01.json
يتم حفظ الخطوط التي تم إنشاؤها في ./result/{trained}/generated/{YYYY-MM-DD_HHmmss}.png {trecrained )/generated/ {yyyy-mm-dd_hhmmss ).png. يمكنك تعيين اسم ملف الإخراج باستخدام --gen_name .
الصورة المولدة مثل هذا: 
إذا كنت تريد خطوط المشي العشوائية ، فاستخدم --generate_walk . ملف JSON لا داعي له.
python main.py --generate_walk --gan_dir ./result/{YYYY-MM-DD_HHmmss} --char_img_n 256
سيتم إنشاء 256 خطوط الأنماط ، ويتم تحويلها تدريجياً.
هناك العديد من الخيارات. تحقق من الجدول التالي.
| ل | خيار | وصف | تقصير |
|---|---|---|---|
| التحضير ، القطار | --img_width | عرض الصور. | 64 |
| التحضير ، القطار | --img_height | ارتفاع الصور. | 64 |
| التحضير ، القطار | --img_dim | بُعد الصور. | 3 |
| التحضير ، القطار | --chars_type | يمكنك اختيار نوع الأحرف أو "Caps" أو "Hiragana" أو "Caps ، Hiragana" | "قبعات" |
| تدريب ، توليد | --gpu_ids | معرفات GPU التي تستخدمها. هذا النوع هو سلسلة (على سبيل المثال. "0 ، 1") | (تعيين تلقائيا) |
| تدريب ، توليد | --batch_size | حجم الدُفعة لجان | 256 |
| يدرب | --arch | هندسة نماذج GAN. اختر "DCGAN" أو "Resnet" | "dcgan" |
| يدرب | --style_ids_n | # من معرفات النمط | 256 |
| يدرب | --style_z_size | حجم style_z | 100 |
| يدرب | --gan_epoch_n | # من تكرارات الحقبة | 10000 |
| يدرب | --critic_n | # من التكرارات الناقدة | 5 |
| يدرب | --sample_imgs_interval | الفاصل الزمني لتوفير صور عينة | 10 |
| يدرب | --sample_col_n | # من أعمدة نموذج الصورة | 26 |
| يدرب | --keep_ckpt_interval | فاصل من الحفاظ على مقالب Tensorflow | 250 |
| يدرب | --run_tensorboard | قم بتشغيل Tensorboard أم لا | حقيقي |
| يدرب | --tensorboard_port | Port for Tensorboard | 6006 |