استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر

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

این مقاله بر اساس این کار کردن فرض بر این است که شما با شبکه های عصبی و مفاهیم آن آشنایی دارید. پیچیدگی и عملکرد از دست دادن.

فشرده سازی تصویر چیست و چگونه کار می کند؟

فشرده سازی تصویر فرآیند تبدیل یک تصویر به گونه ای است که فضای کمتری را اشغال می کند. ذخیره سازی ساده تصاویر فضای زیادی را اشغال می کند، به همین دلیل است که کدک هایی مانند JPEG و PNG وجود دارند که هدف آنها کاهش اندازه تصویر اصلی است.

همانطور که می دانید دو نوع فشرده سازی تصویر وجود دارد: بدون از دست دادن и با ضرر و زیان. همانطور که از نام ها پیداست، فشرده سازی بدون تلفات می تواند داده های تصویر اصلی را حفظ کند، در حالی که فشرده سازی با اتلاف برخی از داده ها را در طول فشرده سازی از دست می دهد. برای مثال، JPG الگوریتم‌هایی با اتلاف هستند [تقریباً. ترجمه - اساساً JPEG بدون اتلاف را نیز فراموش نکنیم، و PNG یک الگوریتم بدون اتلاف است.

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
مقایسه فشرده سازی بدون تلفات و اتلاف

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

ورودی شبکه عصبی کانولوشنال

اگر چیزی نیاز به محاسبه دارد و محاسبات می تواند تقریبی باشد، اضافه کنید شبکه عصبی. نویسندگان از یک شبکه عصبی کانولوشنال نسبتاً استاندارد برای بهبود فشرده سازی تصویر استفاده کردند. روش ارائه شده نه تنها با بهترین راه حل ها (اگر نه بهتر) عمل می کند، بلکه می تواند از محاسبات موازی نیز استفاده کند که منجر به افزایش چشمگیر سرعت می شود. دلیل آن این است که شبکه‌های عصبی کانولوشنال (CNN) در استخراج اطلاعات مکانی از تصاویر بسیار خوب عمل می‌کنند، که سپس به شکل فشرده‌تری ارائه می‌شوند (به عنوان مثال، فقط بیت‌های "مهم" تصویر حفظ می‌شوند). نویسندگان می خواستند از این قابلیت CNN برای نمایش بهتر تصاویر استفاده کنند.

معماری

نویسندگان یک شبکه دوگانه را پیشنهاد کردند. اولین شبکه یک تصویر را به عنوان ورودی می گیرد و یک نمایش فشرده (ComCNN) ایجاد می کند. سپس خروجی این شبکه توسط یک کدک استاندارد (مانند JPEG) پردازش می شود. پس از پردازش توسط کدک، تصویر به شبکه دوم ارسال می شود، که در تلاش برای بازگرداندن تصویر اصلی، تصویر را از کدک "تثبیت" می کند. نویسندگان این شبکه را CNN بازسازی کننده (RecCNN) نامیدند. مانند GAN ها، هر دو شبکه به صورت مکرر آموزش داده می شوند.

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
نمایش فشرده ComCNN به کدک استاندارد منتقل می شود

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
RecCNN. خروجی ComCNN بزرگ شده و به RecCNN تغذیه می‌شود، که سعی می‌کند بقیه را یاد بگیرد

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

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
چارچوب فشرده‌سازی تصویر از انتها به پایان. Co(.) یک الگوریتم فشرده سازی تصویر است. نویسندگان از JPEG، JPEG2000 و BPG استفاده کردند

باقی مانده چیست؟

باقی مانده را می توان به عنوان یک مرحله پس از پردازش برای "بهبود" تصویر در حال رمزگشایی توسط کدک در نظر گرفت. با داشتن "اطلاعات" زیادی در مورد جهان، یک شبکه عصبی می تواند تصمیمات شناختی در مورد اینکه چه چیزی را اصلاح کند، بگیرد. این ایده بر اساس یادگیری باقی مانده، جزئیاتی را که می توانید در مورد آن بخوانید اینجا.

توابع از دست دادن

دو تابع از دست دادن استفاده می شود زیرا ما دو شبکه عصبی داریم. اولین مورد از اینها، ComCNN، دارای برچسب L1 است و به شرح زیر تعریف می شود:

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
عملکرد از دست دادن برای ComCNN

توضیح

این معادله ممکن است پیچیده به نظر برسد، اما در واقع استاندارد است (ریشه میانگین مربعات خطا) MSE. ||² به معنای هنجار برداری است که آنها در بر می گیرند.

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
معادله 1.1

Cr نشان دهنده خروجی ComCNN است. θ بیانگر قابلیت یادگیری پارامترهای ComCNN است، XK تصویر ورودی است

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
معادله 1.2

Re() مخفف RecCNN است. این معادله به سادگی معنای معادله 1.1 را به RecCNN می رساند. θ پارامترهای قابل آموزش RecCNN را نشان می دهد (یک کلاه در بالا به این معنی است که پارامترها ثابت هستند).

تعریف شهودی

معادله 1.0 باعث می شود ComCNN وزن خود را تغییر دهد به طوری که وقتی با RecCNN بازسازی می شود، تصویر نهایی تا حد امکان شبیه به تصویر ورودی باشد. دومین تابع از دست دادن RecCNN به صورت زیر تعریف می شود:

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
معادله 2.0

توضیح

باز هم، این تابع ممکن است پیچیده به نظر برسد، اما این در اکثر موارد یک تابع استاندارد از دست دادن شبکه عصبی (MSE) است.

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
معادله 2.1

Co() به معنای خروجی کدک، x با کلاه در بالا به معنای خروجی ComCNN است. θ2 پارامترهای قابل آموزش RecCNN هستند، res() فقط خروجی باقیمانده RecCNN است. شایان ذکر است که RecCNN در مورد تفاوت بین Co() و تصویر ورودی آموزش دیده است، اما در تصویر ورودی آموزش داده نشده است.

تعریف شهودی

معادله 2.0 باعث می شود که RecCNN وزن خود را تغییر دهد تا خروجی تا حد ممکن شبیه به تصویر ورودی باشد.

طرح آموزشی

مدل ها به صورت تکراری آموزش داده می شوند، مانند گان. وزن‌های مدل اول در حالی که وزنه‌های مدل دوم در حال به‌روزرسانی هستند ثابت می‌شوند، سپس وزن‌های مدل دوم در حالی که مدل اول در حال آموزش است ثابت می‌شوند.

تستها

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

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر
مقایسه شاخص تشابه ساختاری (SSIM). مقادیر بالا نشان دهنده شباهت بهتر به نسخه اصلی است. تایپ پررنگ نشان دهنده نتیجه کار نویسندگان است

نتیجه

ما به روش جدیدی برای اعمال یادگیری عمیق در فشرده سازی تصویر نگاه کردیم و در مورد امکان استفاده از شبکه های عصبی در کارهایی فراتر از وظایف "عمومی" مانند طبقه بندی تصویر و پردازش زبان صحبت کردیم. این روش نه تنها کمتر از نیازهای مدرن نیست، بلکه به شما امکان می دهد تصاویر را بسیار سریعتر پردازش کنید.

یادگیری شبکه های عصبی آسان تر شده است، زیرا ما یک کد تبلیغاتی مخصوص هابراوچان ساخته ایم HABR10% تخفیف اضافی به تخفیف درج شده روی بنر می دهد.

استفاده از هوش مصنوعی برای فشرده سازی بیش از حد تصاویر

دوره های بیشتر

مقالات پیشنهادی

منبع: www.habr.com

اضافه کردن نظر