ebsynth
هي أداة متعددة الاستخدامات لتركيب الصور على سبيل المثال. ويمكن استخدامه لمجموعة متنوعة من مهام تركيب الصور، بما في ذلك تركيب النسيج الموجه، ونقل الأسلوب الفني، والرسم المدرك للمحتوى، والدقة الفائقة.
ينصب تركيز ebsynth
على الحفاظ على دقة المادة المصدر. على عكس الأساليب الحديثة الأخرى، لا يعتمد ebsynth
على الشبكات العصبية. بدلاً من ذلك، فإنه يستخدم تطبيقًا متطورًا لخوارزميات تركيب النسيج غير البارامترية. بفضل طبيعته القائمة على التصحيح، ينتج ebsynth
نتائج واضحة، والتي تحافظ على جميع التفاصيل الدقيقة الموجودة في الصورة الأصلية.
ebsynth -style -guide -output
-style
-guide
-weight
-uniformity
-patchsize
-pyramidlevels
-searchvoteiters
-patchmatchiters
-extrapass3x3
-backend [cpu|cuda]
يمكن تنزيل برنامج Windows الثنائي المُعد مسبقًا من هنا: http://jamriska.cz/ebsynth/ebsynth-win64.zip.
يوضح المثال الأول كيفية إجراء تركيب أساسي للنسيج باستخدام ebsynth
. تم اقتراح حالة الاستخدام هذه لأول مرة في الورقة الأصلية لـ Image Analogies [1]، حيث أطلقوا عليها اسم "texture-by-numbers". نبدأ بصورة لمشهد طبيعي مع تجزئته (على سبيل المثال، صخرة مطلية باللون الأخضر، والسماء باللون الأزرق):
ebsynth -style source_photo.png -guide source_segment.png target_segment.png -output output.png
بعد ذلك، نرسم تجزئة الهدف يدويًا، ونطلب من ebsynth
إنتاج "صورة" جديدة تتطابق معها. في لغة نقل النمط: نريد نقل نمط الصورة المصدر إلى التجزئة المستهدفة بطريقة تحترم الأجزاء الفردية. يعمل التجزئة كدليل للتوليف.
يوضح هذا المثال كيفية تحقيق عرض غير واقعي باستخدام ebsynth
. ويستند إلى عمل فيشر وآخرون. [7]. الهدف هو تقديم نموذج ثلاثي الأبعاد كما يفعل الفنان. على وجه التحديد، نريد التقاط الطريقة التي ينقل بها الفنان تأثيرات الإضاءة المختلفة، مثل الإبرازات وظلال الاتصال والارتدادات غير المباشرة. ولتحقيق هذه الغاية، قمنا بإعداد مشهد مرجعي بسيط باستخدام كرة مضيئة، وتركنا الفنان يرسمها بأسلوبه الخاص. نحن نستخدم أداة تتبع المسار الجاهزة لإنتاج تمريرات عرض منفصلة، على سبيل المثال، الإضاءة الشاملة الكاملة، ومكون الانتشار المباشر فقط، والارتداد غير المباشر فقط، وما إلى ذلك. بعد ذلك، نقوم بعرض نفس مجموعة التمريرات للنموذج ثلاثي الأبعاد المستهدف واستخدامها كأدلة لـ ebsynth
.
ebsynth -style source_style.png
-guide source_fullgi.png target_fullgi.png -weight 0.66
-guide source_dirdif.png target_dirdif.png -weight 0.66
-guide source_indirb.png target_indirb.png -weight 0.66
-output output.png
بالمقارنة مع الملمس حسب الأرقام، فإن الاختلاف الرئيسي هنا هو أن لدينا الآن قنوات توجيه متعددة . لاحظ أن الأدلة تأتي دائمًا في أزواج: دليل المصدر أولاً، ودليل الهدف ثانيًا. للحصول على نتائج أفضل، قد نرغب في تعزيز مساهمة الأدلة المتعلقة بالنمط. في المثال أعلاه، يكون للنمط وزن افتراضي قدره 1.0، بينما يبلغ وزن كل قناة من القنوات الإرشادية 0.66. باختصار، إجمالي وزن الدليل هو 2.0، مما يؤدي إلى نسبة 2:1 من الدليل إلى النمط.
يوضح هذا المثال كيف يمكن للمرء استخدام ebsynth
لنقل نمط اللوحة الشخصية إلى صورة شخص آخر. ويستند إلى عمل فيشر وآخرون. [8]. الهدف هو إعادة إنتاج الفروق الدقيقة في اللوحة المصدر، مع الحفاظ على هوية الشخص المستهدف. أي أننا نريد أن يظل من الممكن التعرف على الشخص بعد عملية التوليف.
على عكس StyLit، في هذا الإعداد ليس لدينا الهندسة المرجعية ثلاثية الأبعاد لاستخدامها كدليل. ومع ذلك، يمكننا استغلال حقيقة أن كلاً من اللوحة المصدر والصورة المستهدفة تحتوي على وجه بشري، له بنية محددة جيدًا. سوف نستخدم هذا الهيكل لاستنتاج المعلومات التوجيهية اللازمة.
ebsynth -style source_painting.png
-guide source_Gapp.png target_Gapp.png -weight 2.0
-guide source_Gseg.png target_Gseg.png -weight 1.5
-guide source_Gpos.png target_Gpos.png -weight 1.5
-output output.png
على وجه التحديد، نكتشف معالم الوجه في كل من الصورة المستهدفة والمصدر، ونستخدمها لإنتاج دليل تجزئة ناعم Gseg
ودليل موضعي Gpos
، وهو في الأساس حقل التفاف كثيف يقوم بتعيين كل بكسل مستهدف إلى موضعه المقابل في المصدر . للحفاظ على هوية الشخص، نستخدم دليل المظهر Gapp
، وهو نسخة ذات تدرج رمادي من الصورة المستهدفة التي تمت معادلتها لتتناسب مع نصوع اللوحة المصدر.
يتم إصدار الكود في المجال العام. يمكنك أن تفعل أي شيء تريده معها.
ومع ذلك، يجب أن تدرك أن الكود ينفذ خوارزمية PatchMatch، الحاصلة على براءة اختراع لشركة Adobe (براءة الاختراع الأمريكية رقم 8,861,869). قد تكون هناك براءة اختراع لتقنيات أخرى أيضًا. تقع على عاتقك مسؤولية التأكد من أنك لا تنتهك أي حقوق لأصحاب براءات الاختراع باستخدام هذا الرمز.
إذا وجدت هذا الكود مفيدًا لبحثك، يرجى ذكر:
@misc{Jamriska2018,
author = {Jamriska, Ondrej},
title = {Ebsynth: Fast Example-based Image Synthesis and Style Transfer},
year = {2018},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/jamriska/ebsynth}},
}