شبکه عصبی SRCNN
آموزش‌های پایه‌ای هوش مصنوعییادگیری با نظارت

افزایش وضوح تصاویر کلاسیک با شبکه عصبی SRCNN

0
زمان مطالعه: ۵ دقیقه

مقاله حاضر به مرور و بررسیِ یک روش افزایش وضوح تصاویر کلاسیک تحت عنوان شبکه عصبی SRCNN (شبکه عصبی پیچشی سوپر رزولوشن Super-Resolution Convolutional Neural Network (SRCNN)) می‌پردازد. معمولاً در یادگیری عمیق یا  شبکه عصبی پیچشی Convolutional Neural Network از CNN برای طبقه‌بندی تصاویر استفاده می‌شود. CNN در شبکه عصبی پیچشی سوپر رزولوشن برای سوپر رزولوشن تک تصویری مورد استفاده قرار می‌گیرد و مسئله‌ای کلاسیک در بینایی رایانه به شمار می‌آید. در صورت وجود سوپر رزولوشن تک تصویری، کیفیت بهتری در تصاویر بزرگ به دست می‌آید.

شبکه عصبی SRCNN

شبکه عصبی پیچشی سوپر رزولوشن (SRCNN)

با توجه به شکل فوق، شبکه عصبی پیچشی سوپر رزولوشن زمینه را برای بدست آوردن PSNR با مقدار ۲۷.۵۸ دسی‌بل فراهم می‌کند و این بسیار بهتر از Bicubic و کدگذاری پراکنده Sparse Coding (SC) است. محققان بسیاری به این موضوع علاقمند هستند و تحقیقات بسیاری در این زمینه انجام شده است. موضوع شبکه عصبی پیچشی سوپر رزولوشن در مقاله‌های ۲۰۱۴ ECCV و ۲۰۱۶ TPAMI به طور جامع مورد بررسی قرار گرفته و تاکنون بیش از هزار بار به آن مقاله ارجاع داده شده است.

چه موضوعاتی پوشش داده شده است؟

  • شبکه SRCNN
  • تابع زبان Loss function
  • رابطه با کدگذاری پراکنده
  • مقایسه با جدیدترین روش‌ها
  • مطالعه Ablation
تأثیر اندازه بسته شبکه بر آموزش شبکه عصبی

۱. شبکه SRCNN

شبکه در SRCNN عمیق نیست. فقط سه بخش به نام استخراج و نمایش وصله‌ها
Patch extraction and representation
، نگاشت غیر خطی Non-Linear Mapping  و بازسازی Reconstruction وجود دارد. جزئیات این بخش‌ها را در شکل زیر مشاهده می‌کنید.

شبکه عصبی پیچشی سوپر رزولوشن (SRCNN)

۱.۱ نمایش و استخراج وصله‌ها

باید به این نکته توجه داشت که اندازۀ ورودیِ با رزولوشن پایین در ابتدا با استفاده از فرایند bicubic interpolation  تغییر داده می‌شود و این کار باید پیش از ارسال ورودی به شبکه SRCNN به انجام برسد.

X: تصویر برچسب خورده رزولوشن بالا Ground truth high-resolution image

Y: نمونه تصویر کم وضوح بهبود وضوح داده شده با الگوریتم Bicubic upsampled version of low-resolution image

لایه اول فرایند کانولوشن استاندارد را برای بدست آوردن (F1(Y انجام می‌دهد.

لایه اول

لایه اول

اندازه W1: c×f1×f1×n1
اندازه B1: n1

بر طبق معادله فوق، c، f1 و n1 به ترتیب نشان‌دهندۀ تعداد کانال‌های تصاویر، اندازه فیلتر و تعداد فیلترها هستند. B1 است و برای افزایش درجه آزادی تا میزان ۱ استفاده می‌شود.

در این مورد داریم:  c=1, f1=9, n1=64.

۱.۲ نگاشت غیر خطی Non-Linear Mapping

در اقدام بعدی، نگاشت غیرخطی به انجام می‌رسد

لایه دوم

اندازه W2: n1×۱×۱×n2
اندازه B2: n2

بردار n1 بُعدی در بردار n2 بعدی ترسیم می‌شود. در صورتی که n1>n2 باشد، چیزی شبیه PCA Principal component analysis  به دست می‌آید، اما به صورت غیرخطی خواهد بود.

در این مورد داریم: n2=32.

این ۱×۱ به کانولوشن ۱×۱ اشاره دارد که در شبکه NIN پیشنهاد شد. در شبکه NIN، کانولوشن ۱×۱ برای ارائه خاصیت غیرخطیِ بیشتر جهت افزایش دقت پیشنهاد می‌شود. این کانولوشن در GoogLeNet نیز برای کاهش تعداد پیوست‌ها پیشنهاد شده است. اگر به این موضوع علاقمند هستید، مقاله مروری مرا در خصوص «کانولوشن ۱×۱ در GoogLeNet» مطالعه کنید.

۱.۳ بازسازی

پس از پایان نگاشت، باید به بازسازی تصویر پرداخت؛ بنابراین، عمل کانولوشن دوباره باید انجام شود.

بازسازی-لایه سوم

لایه سوم

اندازه W3: n2×f3 ×f3×c
اندازه B3: c

۲. تابع زیان

تابع زیان

تابع زیان

در سوپر رزولوشن، تابع زیان L عبارت است از خطای جذر میانگین مربعات Average of mean square error (MSE)
 در نمونه‌های آموزش (n).

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

۳. رابطه با کدگذاری پراکنده

کدگذاری پراکنده

در کدگذاری پراکنده، از منظر کانولوشن، تصویر ورودی عبارت است از conv با f1 و n1=n2 معمولاً در مورد کدگذاری پراکنده (SC) دیده می‌شود. نگاشت n1 در n2 با همان ابعاد و بدون کاهش انجام می‌شود. این کار تا حد زیادی به نگاشت بردار رزولوشن پایین در بردار رزولوشن بالا شباهت دارد. سپس هر وصله با f3 بازسازی می‌شود. وصله‌های هم‌پوشانی به جای اینکه با وزن‌های مختلف توسط کانولوشن با یکدیگر جمع بسته شود، میانگین گرفته می‌شوند.

۴. مقایسه با جدیدترین روش‌ها

از روی ۹۱ تصویر موجود، برای آموزش تقریباً ۲۴.۸۰۰ تصویر با روش محوی گائوسی  Gaussian Blurring    ارائه می‌شود. عملِ آموزش روی GTX 770 GPU با ۸×۱۰⁸  پس‌انتشار ۳ روز به طول می‌انجامد. مقیاس‌های مختلف از ۲ تا ۴ آزمایش می‌شوند.

PSNR برای مجموعه‌دادۀ Set15

PSNR برای مجموعه‌دادۀ Set15

PSNR برای مجموعه‌دادۀ Set14

PSNR برای مجموعه‌دادۀ Set14

شبکه SRCNN بالاترین میانگین PSNR  Peak signal to noise ratio را به دست می‌آورد.

PSNR و زمان

PSNR و زمان

هر قدر به سمت راست تمایل داشته باشد، سرعت بالاتر است. هر چقدر بالاتر باشد، کیفیت بالاتر خواهد بود. SRCNN در سمت بالا گوشه سمت راست است و بهترین عملکرد را دارد.

تصویری از فیلترهای لایه اول

تصویری از فیلترهای لایه اول

چند ویژگی بصری:

ویژگی بصری

ویژگی بصری2

ویژگی بصری4

ویژگی بصری5

۵. مطالعه Ablation

Ablation

آموزش از طریق ImageNet و آموزش از طریق ۹۱ تصویر

اگر شبکه SRCNN با استفاده از ۳۹۵.۹۰۹ تصویر اقدام به آموزش کرده باشد، نتیجه‌ای که به دست می‌آید بهتر از آموزش با ۹۱ تصویر است.

شبکه SRCNN

هر قدر n1 و n2 بزرگتر باشند، PSNR بالاتر خواهد بود. عادی است که در صورت وجود فیلترهای بیشتر، عملکرد بهتری حاصل آید. اگر اندازه فیلتر بزرگتر باشد، کیفیت نتایج قدری بهتر می‌شود. (اما در واقع فقط ۳ لایه وجود دارد و این تعداد لایه برای اثبات مورد فوق کافی نیست. باید تعداد لایه‌ها نیز افزایش پیدا کند. اگر لایه‌های بیشتری وجود داشته باشد، چند فیلتر کوچک جای فیلترهای بزرگتر را می‌گیرند.) SRCNN فقط سه لایه دارد.

این مطلب چه میزان برای شما مفید بوده است؟
[کل: ۰ میانگین: ۰]

تست تورینگ؛ آزمونی برای سنجش هوشمندی ماشین

مقاله قبلی

یک مدل یادگیری ماشین که می‌تواند کارهای روزمره ما را انجام دهد

مقاله بعدی

شما همچنین ممکن است دوست داشته باشید

نظرات

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.