شبکه عصبی 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

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

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

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

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

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

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

    شبکه عصبی SRCNN

    لایه اول

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

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

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

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

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

    شبکه عصبی SRCNN

    لایه دوم

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

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

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

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

    ۱.۳ بازسازی

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

    شبکه عصبی SRCNN

    لایه سوم

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

    ۲. تابع زیان

    شبکه عصبی SRCNN

    تابع زیان

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

     

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

    شبکه عصبی SRCNN

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

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

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

    شبکه عصبی SRCNN

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

    شبکه عصبی SRCNN

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

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

    شبکه عصبی SRCNN

    PSNR و زمان

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

    شبکه عصبی SRCNN

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

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

    شبکه عصبی SRCNN

    شبکه عصبی SRCNN

    شبکه عصبی SRCNN

    شبکه عصبی SRCNN

    ۵. مطالعه Ablation

    شبکه عصبی SRCNN

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

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

    شبکه عصبی SRCNN

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

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

    مقاله قبلی

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

    مقاله بعدی

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

    نظرات

    پاسخ دهید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *