هسته (پردازش تصویر) کیست؟ توضیح بده.
در پردازش تصویر، یک هسته, ماتریس کانولوشن, یا پوشش یک ماتریس کوچک است که روی تصویر اعمال می‌شود.(تصویر، یک ماتریس است که در هریک از درایه‌های آن مقادیر رنگ مربوط به آن درایه بسته به سیستم رنگی استفاده شده، قرارگرفته اند). هسته یا کرنال، یک ماتریس formula_1 است که با ضرب هر آرایه آن در آرایه معادل‌اش در هر بلوک formula_1 از تصویر اصلی، عددی حاصل می‌شود که در تصویر نهایی جایگزین formula_3 پیکسل تصویر اصلی است.از هسته برای ایجاد فیلترهای مختلف روی عکس استفاده می‌کنند، از دیگر کاربردهای آن در یادگیری ماشین است.هر هسته برای یک کار خاص مفید است مثل مات کردن، تیز کردن، برجسته سازی، تشخیص لبه، و کارهای دیگر.این تغییرات روی تصویر با عبور دادن ماتریس هسته (که از ماتریس تصویر اندازهٔ کوچکتری دارد) از تصویر یا میانگین‌گیری کانولوشن بین هسته و تصویر صورت می‌گیرد.جزئیات.بسته به مقادیر عنصر، یک هسته می‌تواند محدوده گسترده‌ای از تأثیرات را داشته باشد.در بالا تنها مثال‌های کمی از تأثیراتی که با استفاده از کانولوشن بین کرنل‌ها و تصاویر قابل انجام است نمایش داده شده‌است.منشأ.منشأ موقعیت یک خانه از هسته است که بالاتر از پیکسل خروجی فعلی است.منشأ می‌تواند خارج از هسته باشد، اگرچه معمولاً یکی از عناصر هسته است.در مورد هستهٔ متقارن منشأ معمولاً عنصر مرکزی است، در این صورت هسته باید ماتریسی فرد-فرد باشد.کانولوشن.کانولوشن عمل اضافه کردن هر خانه (پیکسل) از عکس به خانه‌های اطرافش (پیکسل‌های همسایهٔ محلی) است که توسط هسته وزن دهی شده‌اند.این عمل مربوط به حالتی از کانولوشن در ریاضیات است.باید به این نکته توجه شود که عمل ضرب ماتریس‌ها که در کانولوشن انجام می‌شود همان عمل ضرب تعریف شده روی ماتریس‌ها نیست، گرچه مشابهاْ آن را با * نشان می‌دهیم.برای مثال، فرض کنید دو ماتریس ۳ – مربعی K و M را داشته باشیم که K ماتریس هسته و M قسمتی از تصویر مورد نظر ما باشد، کانولوشن، عملیات وارون کردن ماتریس هسته به صورت افقی و عمودی و سپس ضرب نظیر به نظیر درایه‌های دو ماتریس و در نهایت جمع همهٔ آنهاست.البته اگر ماتریس هسته متقارن باشد نیازی به وارون کردن افقی و عمودی ماتریس نیست زیرا در این حالت هستهٔ وارون شده با هستهٔ اصلی برابر است.ماتریس‌های K و M را به شکل زیر داریم:formula_4ماتریس K را به صورت عمودی و افقی وارون می‌کنیم، هستهٔ جدید به شکل روبروست:formula_5گام بعدی ضرب نظیر به نظیر درایه‌های دو ماتریس و جمع همهٔ آنهاست:formula_6عنصر قرار گرفته در مختصات (۲٬۲) از تصویر حاصل (یعنی عنصر مرکزی)، یک ترکیب وزن دار از تمام درایه‌های ماتریس تصویر است، که توسط هسته وزن دهی شده‌اند:formula_7درایه‌های دیگر هم به‌طور مشابه مقدار دهی می‌شوند، به این صورت که مرکز هسته را روی نقاط مرزی تصویر قرار می‌دهیم و یک حاصل جمع وزن دار را محاسبه می‌کنیم.مقادیر یک پیکسل داده شده از تصویر حاصل، با ضرب هر مقدار از ماتریس هسته در مقادیر پیکسل‌های متناظر آن در ماتریس تصویر اولیه محاسبه می‌شوند.این عمل می‌تواند توسط شبه کد زیر به صورت یک الگوریتم نشان داده شود:for each image row in input image: for each pixel in image row: set accumulator to zero for each kernel row in kernel: for each element in kernel row: if element position corresponding* to pixel position then multiply element value corresponding* to pixel value add result to accumulator endif set output image pixel to accumulatorاگر هسته متقارن بود منشأ هسته را روی پیکسل فعلی قرار دهید، بنابراین هسته توسط پیکسل‌های مجاور هم پوشانی خواهد داشت.حال هر یک از عناصر هسته را با پیکسلی از تصویر که متناظر ان است ضرب کرده و همهٔ مقادیر بدست آمده را باهم جمع کنید.اگر هسته متقارن نباشد باید قبل از محاسبهٔ کانولوشن همانند قسمت بالا، ماتریس هسته به صورت افقی و عمودی برعکس شود.مدیریت حاشیهٔ تصویر.در انجام کانولوشن روی تصویر ممکن است گاهی به پیکسل‌هایی در خارج از مرز تصویر نیاز داشته باشیم؛ بنابراین، دو راه برای مدیریت حاشیهٔ تصاویر داریم:کانولوشن بدون حاشیه گذاری.از هر پیکسلی در تصویر حاصل که نیاز به مقادیری در بیرون از حاشیه‌ها داشته باشد صرف نظر می‌شود، در واقع عبور هسته از تصویر به صورتی خواهد بود که درایهٔ اول ماتریس هسته در موقعیت (۱٬۱) بر روی درایهٔ اول ماتریس تصویر بیافتد و هسته از تصویر بیرون نزند.این روش می‌تواند باعث شود که تصویر خروجی کمی کوچکتر شود و لبه‌های آن بریده شوند.کانولوشن با حاشیه گذاری.در این روش هسته را به صورتی از ماتریس تصویر عبور می‌دهیم که درایهٔ مرکزی هسته (منشأ) بر روی درایهٔ اول ماتریس تصویر بیافتد.در این حالت هسته می‌تواند از ماتریس تصویر بیرون بزند که مقادیر خارج از تصویر می‌توانند به انواع زیر مدیریت بشوند:مقادیر خارج از تصویر در این حالت برابر با صفر قرار داده می‌شوند.می‌توانیم در این روش به جای صفر از هر مقدار ثابت و دلخواه دیگر هم استفاده کنیم.نزدیک‌ترین پیکسل‌ها به لبه‌های تصویر به اندازهٔ لازم گسترش داده می‌شوند تا مقادیر مورد نیاز برای کانولوشن را فراهم کنند.پیکسل‌های کنج را در ابعاد یک گوهٔ ۹۰ درجه گسترش می‌دهیم، بقیهٔ پیکسل‌ها به صورت خطی گسترش داده می‌شوند.در این روش در واقع حاشیه‌های تصویر را تکرار می‌کنیم.تصویر در حاشیه‌هایش اینه وار منعکس می‌شود. برای مثال، بجای خواندن پیکسلی که سه واحد خارج از لبه است پیکسلی که سه واحد داخل لبه است خوانده می‌شودتصویر در واقع پوشانده می‌شود (تکرار تصویر به صورت یکپارچه و بدون مرز) و برای این کار از مقادیری که در حاشیه یا کنج مخالف هستند استفاده می‌شود.در این روش دور تصویر اصلی را با تکرار خود تصویر پر می‌کنیم.نمونه‌هایی از انواع کانولوشن با حاشیه گذاری:نرمال سازی.نرمال سازی به عنوان تقسیم هر عنصر در هسته بر جمع همهٔ عناصر هسته تعریف می‌شود که در نتیجه، جمع عناصر یک هستهٔ نرمال شده برابر با یک می‌شود، این کار باعث می‌شود که روشنایی تصویراصلاح شده به اندازه روشنایی تصویر اصلی باشد.برای مثال ماتریس هستهٔ استفاده شده در Box Blur را در نظر بگیرید:formula_8اگر همهٔ عناصر آن را جمع کنیم عدد ۹ بدست می‌آید، بنابراین هسته نرمال شده نیست و برای اصلاح آن باید همهٔ درایه‌های ماتریس را بر ۹ تقسیم کرد:formula_9حال جمع عناصر برابر ۱ می‌شود پس ماتریس هسته نرمال شده‌است.