مدل TextStyleBrush از فیسبوک!
فیسبوک یک مدل جدیدا به اسم TextStyleBrush داده که یک متن ورودی و یه تصویر حاوی متن دستخطی یا غیردستخطی (حتی فقط با یک کلمه) میگیره و استایل متن داخل تصویر رو (رنگ و فونت و…) به اون متن ورودی اعمال میکنه؛ یعنی متن داخل یه تصویر رو میتونه عوض کنه (گیف ضمیمه شده رو ببینید).
این مدل اولین مدل self-supervised است که این کار رو با فقط یک تصویر به صورت one-shot انجام میده. البته واضحه که کل مدل self-supervised نیست چون از مدلهای از پیش آمادهی OCR و طبقهبندی فونت هم استفاده کردند. برای آموزشش به عنوان ورودی اینا رو به مدل دادند: اول. عکسی که حاوی استایل مورد نظره و دور اون تیکه از عکس که متن داره یه مستطیل کشیدند. دوم. متن واقعی که داخل اون عکس هست. سوم. متن ورودی. مدل در وهلهی اول از RESNET استفاده میکنه تا به صورت جدا جدا، استایل رو تبدیل به یک بردار کنه و از طرفی اون دو تا متن رو هم تبدیل به تنسور بکنه. بعد بردار استایل رو میده به یک مدل StyleGAN2 ادیت شده تا بتونه اینجوری این مدل رو به بردار استایل مشروط کنه و استایل مورد نظر رو تولید کنه. و بعد از طرفی خروجی این قسمت رو به یک شبکه دیگه میده که قراره متن ورودی رو به صورت دلخواه تبدیل کنه و اون هم از این استایل برای تولید یک ماسک روی این متن استفاده میکنه که استایل رو به این متن اعمال کنه و خروجی رو یک بار با این softmax mask و یکبار بدون اون تولید کنه و چون دو تا متن ورودی داشت در مجموع چهار تا خروجی میده. بعد این عکسها را به سه تا شبکه دادند تا به عنوان توابع loss عمل کنند. دوتا از این سه تا شبکه از قبل آموزش دیدند: اول. شبکهی VGG19 که روی دیتاست فونت خودشون (که طبیعتا کل فونتهای دنیا نیست) آموزش دادند و اینجا به این دلیل استفاده شده که عکس ورودی و عکسی رو که از روی متن عکس تولید کردند از نظر استایل و فونت مقایسه کنه. دوم. یک مدل OCR آماده که دو متن ورودی و متن داخل این چهار عکس تولیدی رو مقایسه کنه. سوم. طبیعتا شبکهی سوم هم قسمت discriminator از GAN باید باشه تا سعی کنه عکس تولیدی از متن داخل عکس ورودی رو از عکس اصلی تشخیص بده. اگر فکر میکنید خیلی پیچیده و گیجکنندهست، باید بگیم همینطوره! ویدیوی توضیح مقاله (لینکش رو اون پایین آوردیم) رو ببینید که اوضاع بهتر بشه.
البته فیسبوک مدلش رو به دلیل جلوگیری از سواستفاده (بنا بر ادعای خودشون) منتشر نمیکنه، ولی دیتاست و مقالهاش رو منتشر کردند (که در ادامه لینکشون رو آوردیم) که اونا که میخوان، مدل خودشونو بسازند.
با روشهای کاملا supervised خیلی سخت میشه مدلهای اینجوری با توانایی عمومی تولید کرد و کلی دیتای لیبل خورده لازم دارند و باز هم ممکنه کلی از انواع دیتا را ندیده باشند چون کلی مدل مختلف دست خط هست.
روشهای self-supervised قسمت لیبل زدن داده رو به صورت خودکار انجام میده و نقش انسان رو از این وسط حذف میکنه؛ یعنی میاد از خود دیتا استفاده میکنه و سعی میکنه با بخشی از دیتا، بخشی دیگه رو پیش بینی کنه و با این حرکت مسئله unsupervised تبدیل به مسئله supervised میشه. مثالش در متن، همین برته. در تصویر هم مثلا یک جایی از تصویر رو حذف میکنه و سعی میکنه بازسازیش کنه. این موضوع تحقیقاتی داغ داغ یا بهتر بگیم توی اوج خودشه. یه لینک توضیح بیشتر ازش اون پایین هست.
لینک مقاله (طبیعتا فیسبوک فیلتره دیگه):
https://ai.facebook.com/research/publications/textstylebrush-transfer-of-text-aesthetics-from-a-single-example/
لینک ویدیوی توضیح مقاله (یوتیوب هم که فیلتره):
https://www.youtube.com/watch?v=OC0oe1EzQxo
لینک بلاگ توضیح (این یکی انگار تحریمه 😄! با تحریمشکن قدرتمند باید برید):
https://ai.facebook.com/blog/ai-can-now-emulate-text-style-in-images-in-one-shot-using-just-a-single-word
لینک دیتاست عکسهای دستخط:
https://github.com/facebookresearch/IMGUR5K-Handwriting-Dataset
لینک توضیح یادگیری self-supervised:
https://research.aimultiple.com/self-supervised-learning/
پ.ن. لطفا کانال رو به بقیه هم معرفی کنید!
#read
#watch
#paper
#blog
@nlp_stuff
Post #187
2.15K