رنگ آمیزی عکس با یادگیری عمیق چگونه انجام می‌شود؟ رنگ‌آمیزی عکس به‌معنای دریافت یک عکس سیاه‌وسفید در ورودی و تولید عکس رنگی در خروجی است؛ البته در اینجا منظور رنگی‌کردن عکس به‌شکل دستی یا استفاده از نرم‌افزاری مانند فتوشاپ نیست، بلکه منظور استفاده از یادگیری عمیق برای رنگی‌کردن عکس است. در این مطلب به سراغ یکی از کاربردهای معمول یادگیری عمیق رفته‌ایم و توضیح داده‌ایم رنگ‌آمیزی عکس چگونه با یادگیری عمیق انجام می‌شود و کیفیت عملکرد آن را بررسی کرده‌ایم.

رنگ آمیزی عکس با یادگیری عمیق

مقدمه

آیا تابه‌حال یک عکس تاریخی دیده‌اید که دستی رنگ شده باشد؟ این‌ها آثار هنری هستند که فردی ماهر با زحمت زیاد هر قسمت از آن عکس سیاه‌وسفید را رنگ‌آمیزی کرده، رنگ پوست، زمینه و موارد دیگر را به آن اضافه کرده باشد. این کار از زمان آغاز عکاسی محبوب بوده و امروزه نیز بسیار پرطرفدار است. تنها تفاوت این است که هنرمند امروزی، به‌جای قلم‌مو، از فتوشاپ استفاده می‌کند.

عکس‌هایی که دستی رنگی می‌شوند زیبا هستند، اما ساخت آن‌ها به‌کندی انجام می‌شود. هنرمند باید درمورد رنگ‌هایی که باید اضافه کند تصمیم بگیرد و مهارت نقاشی را برای قراردادن آن‌ها در عکس اصلی داشته باشد. حتی با استفاده از ابزار مدرن، استخدام یک هنرمند برای رنگ‌آمیزی یک عکس تاریخی بسیار پرهزینه است.

رنگ‌آمیزی عکس (Image Coloring) با یادگیری عمیق به چه معناست؟

رنگ‌آمیزی عکس یکی از شاخه‌های بینایی ماشین (Computer Vision) و پردازش تصویر (Image Processing) است. در این شاخه شبکه با دریافت یک عکس سیاه‌وسفید آن را رنگ‌آمیزی می‌کند و در خروجی تحویل می‌دهد. رنگ‌هایی که شبکه برای رنگ‌آمیزی عکس انتخاب می‌کند درواقع رنگ‌هایی است که به‌طور معمول در دنیای واقعی می‌بینیم؛ برای مثال، دریا در یک روز آفتابی آبی است یا آسمان آبی است؛ پس شبکه قرار نیست رنگ صورتی یا زرد را انتخاب کند.

رویکرد یادگیری عمیق

حالا شبکه‌های عصبی کانولوشنی (Convolutional Neural Networks / CNN) وارد میدان شده‌اند. در بسیاری از موارد‌ رنگ‌های منحصربه‌فرد موجود در تصویر، مانند رنگ لباس یک شخص، رنگ ماشینی که سوارش بوده‌اند یا رنگ خانه‌ای که در عکس وجود دارد، در لحظه‌ای که عکس سیاه‌وسفید گرفته می‌شود برای همیشه از میان می‌روند. موارد دیگری هم وجود دارد که در آن رنگ‌ها پیش‌بینی‌شدنی هستند؛ برای مثال، آسمان معمولاً آبی است، درختان و طبیعت سبز هستند، پوست افراد رنگ پوست است، آب مایل به آبی است و خیلی موارد مشابه دیگر.

از آنجا که رنگ‌ها بیش از آنچه فکر می‌کنیم پیش‌بینی‌شدنی هستند، پس استفاده از یادگیری ماشین (Machine Learning) برای رنگ‌آمیزی عکس به‌راحتی کاربردی است؛ این یعنی می‌توانیم از یک شبکه‌ی عصبی کانولوشنی (CNN) برای رنگ‌آمیزی عکس‌های سیاه‌وسفید تاریخی استفاده کنیم.

Colorful Image Colorization الگوریتمی است که از CNN برای تجزیه‌وتحلیل رنگ‌ها در دیتاستی از تصاویر رنگی و نسخه‌های سیاه‌وسفید آن‌ها استفاده می‌کند. داده‌های آموزشی برای این کار هم به‌راحتی جمع‌آوری‌شدنی است؛ چون هر تصویر رنگی را می‌توان به سیاه‌وسفید تبدیل کرد و سپس با نسخه‌ی رنگی آن جفت کرد تا یک نمونه آموزشی ایجاد شود؛ به همین راحتی!

تصویری که الگوریتم Colorful Image Colorization رنگ‌آمیزی کرده است.

این الگوریتم، به‌گفته‌ی سازندگان آن، Richard Zhang، Phillip Isola و Alexei A. Efros، یک عکس سیاه‌وسفید را در ورودی دریافت می‌کند و در خروجی عکس را رنگی تحویل می‌دهد؛ البته رنگ‌ها لزوماً درست نیستند و فقط رنگ‌هایی احتمالی برای تصویر در نظر گرفته می‌شود.

الگوریتم Colorful Image Colorization روی بیش از یک‌میلیون عکس آموزش داده شده است. سازندگان آن این‌طور گزارش کرده‌اند که وقتی نتایج در یک آزمایش رنگ‌آمیزی تورینگ (colorization Turing test) به انسان‌ها نشان داده شد، مردم معتقد بودند که رنگ‌ها ۳۲ درصد مواقع واقعی به نظر می‌رسند. شاید این رقم خیلی زیاد به نظر نرسد، اما به یاد داشته باشید این کار برای یک ماشین آن‌قدرها هم آسان نیست.

افرادی که در آزمون تورینگ حضور داشتند تصور نمی‌کردند تصویری که می‌بینند به‌این خوبی به‌صورت دستی رنگ‌آمیزی شده است، بلکه حتی معتقد بودند این تصویر از اول یک تصویر رنگی بوده است. انجام‌دادن این کار با یک ماشین، حتی اگر در ۳۲ درصد مواقع این‌طور به نظر برسد، دستاورد مهم است.

علاوه‌براین، ویژگی‌های بسیار چشمگیری نیز در نتایج الگوریتم وجود دارد؛ برای مثال، وقتی یک عکس تاریخی با لوگوی کوکاکولا (Coca Cola) دریافت می‌کند، لوگوی کوکاکولا را به‌درستی قرمزرنگ می‌کند. احتمالاً از دیدن هزاران تصویر آموزشی با لوگوی کوکاکولای قرمز این‌طور عمل می‌کند. نکته‌ی مهم این است که این الگوریتم هرگز یاد نگرفته است که نشان کوکاکولا چیست و با جادوی شبکه‌ی CNN، با دیدن تصاویر کوکاکولا در داده‌های آموزشی آن را یاد گرفته است.

عکسی تاریخی که در آن لوگوی کوکاکولا را الگوریتم Colorful Image Colorization قرمز رنگ کرده است.

آیا دیگر می‌توان رنگی‌کردن عکس را به ماشین‌ها سپرد؟

می‌توان این سؤال را پرسید که اگر رنگ‌های تصاویر پیش‌بینی‌شدنی هستند و از این به‌بعد الگوریتم‌هایی مانند Colorful Image Colorization عکس‌های سیاه‌وسفید را رنگی می‌کنند، دیگر نیازی نیست که دوربین‌های عکاسی لزوماً عکس‌های رنگی بگیرند؟

در پاسخ باید بگوییم نه، این‌طور نیست. مانند هر الگوریتم دیگری، این الگوریتم هم مشکلات خودش را دارد. درست است که در تصاویری که اجسامی با رنگ‌های پیش‌بینی‌شدنی وجود دارند خوب عمل می‌کند، اما اگر در عکس اجسامی جدید با رنگ‌های نامتعارف داشته باشیم، دیگر خروجی الگوریتم به‌آن خوبی نخواهد بود.

برای مثال، به دو عکس زیر توجه کنید: در عکس سمت اول آسمان، ابرها، درختان و زمین هستند که رنگ آن‌ها پیش‌بینی‌شدنی است الگوریتم به‌خوبی آن را رنگ‌آمیزی کرده است، اما در عکس بعدی که کمی متفاوت‌تر است و عکسی خلاقانه‌تر محسوب می‌شود، الگوریتم به‌خوبی عمل نکرده است.

رنگ آمیزی عکس با یادگیری عمیق
رنگ آمیزی عکس با یادگیری عمیق

پس در مواردی هم الگوریتم سورپرایز شده و نتوانسته است رنگ اجسام را به‌درستی تشخیص دهد و این کاملاً به‌نوع عکس مربوط می‌شود؛ درواقع این‌طور نیست که همیشه هم الگوریتم رنگ‌هایی که حدس می‌زند درست باشد؛ برای مثال، درمورد این عکس تاریخی لوگوی Pan Am روی هواپیما در اصل آبی بوده است، اما الگوریتم آن را قرمز رنگ کرده است.

عکسی تاریخی که در آن الگوریتم، لوگوی Pan Am را به اشتباه قرمز رنگ‌آمیزی کرده است.

جمع‌بندی مطالب درباره‌ی رنگ آمیزی عکس با یادگیری عمیق

همان‌طور که می‌دانیم، یادگیری ماشین یکی از تکنولوژی‌های بسیار پرطرفدار این روزهاست و به‌سرعت در حال تأثیرگذاری روی حوزه‌های مختلف است. یکی از این حوزه‌ها که در این مقاله بررسی شد هنر است؛ بااین‌حال دیدیم که الگوریتم یادگیری ماشین به‌تنهایی نمی‌تواند در این زمینه رشد کند و به دیدگاه هنرمندان نیز نیاز دارد؛ بااین‌حال یادگیری ماشین نیز می‌تواند راه‌های جدید و نوآورانه‌ای برای نگاه به آثار هنری و حتی خلق آن‌ها در اختیار هنرمندان قرار دهد. سیستم‌هایی مانند Colorful Image Colorization نشان می‌دهند که وقتی صحبت از ترکیب یادگیری ماشین و هنر می‌کنیم، هر دوطرف به‌نوعی سود می‌برند.

ورود به دنیای ماشین لرنینگ با کلاس‌های آنلاین آموزش علم داده کافه‌تدریس

کافه‌تدریس کلاس‌های جامع آموزش علم داده را در قالب کلاس‌های آنلاین و ویدئوهای آموزشی برگزار می‌کند. این کلاس‌ها در دوره‌های مقدماتی و پیشرفته برگزار می‌شود و مبتنی بر کار روی پروژه‌های واقعی دیتا ساینس و ماشین لرنینگ است.

شرکت در این کلاس‌های آنلاین به شما امکان می‌دهد از هر نقطه‌ی جغرافیایی به جامع‌ترین آموزش علم داده و یادگیری ماشین دسترسی داشته باشید.

برای آشنایی بیشتر با کلاس‌های آنلاین آموزش علم داده کافه‌تدریس و مشاوره‌ی رایگان برای شروع یادگیری دیتا ساینس و ماشین لرنینگ روی این لینک کلیک کنید:

کلاس‌های آنلاین علم داده کافه‌تدریس