هوش مصنوعی -تکنیک Kernel Convolution- ابراهیم خلیلی

هوش مصنوعی -تکنیک Kernel Convolution- ابراهیم خلیلی هوش مصنوعی -تکنیک Kernel Convolution- ابراهیم خلیلی

هوش مصنوعی -تکنیک Kernel Convolution- ابراهیم خلیلی

هوش مصنوعی -تکنیک Kernel Convolution- ابراهیم خلیلی


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


 این هفته میخواییم در مورد یه تکنیک فیلتر تصویر در یادگیری ماشین صحبت کنیم. 

همه ما با فیلترهای موجود در اینستاگرام و فیسبوک و ... آشنایی داریم و برای تدوین عکس‌هامون از اونها استفاده می‌کنیم. اما همه این فیلترها مجموعه‌ای از پردازش‌های درجه پایین هستن، مثل بلورها (Blurs)، تغییرات کانترست(Contrast changes) یا تغییر رنگ (Color change). همه اینا فیلترهایی هستن که یه تصویر رو میگیرن، پردازش میکنن و یک خروجی بهمون میدن. تو این مطلب میخواییم یه نگاهی به تکنیک kernel convolution بندازیم. Convolution یعنی چیزی که جزئیات و شاخ و برگ زیادی داره. Kernel هم به یه سری ماتریس‌ها (Matrix) مثل تصویر پایین میگن:

تکنیک Kernel Convolution یه جورایی هسته مرکزی Gaussian blurs و Edge detection و ... است. با اینکه کِرنل کانولوشن تکنیک نسبتاً ساده‌ایه، دانشمندای حوزه پردازش تصویر خیلی ازش بهره می‌برن. در این تکنیک یه شبکه کوچک از اعداد انتخاب میشه، بعد روی یه تصویر اعمال میشه، و تصویر مورد نظر با توجه به اعداد تغییر شکل میده. حالا با استفاده از اعداد متفاوت تو کرنل، میتونیم به تصویر بلور بیشتری اضافه کنیم، گوشه‌های تصویر رو دستکاری کنیم و ... . 

فرض کنید جدول زیر یه تصویره اما به صورت پیکسل:

این یه تصویر آزمایشی 5 در 5 است. یه کرنل هم داریم که 3 در 3 است:

یادتون باشه که کرنل همیشه از تصویرمون کوچکتر خواهد بود. کاری که میکنیم اینه که کرنل‌مون رو روی هر یک از پیکسل‌های عکس قرار میدیم، جوری که پیکسل مورد نظر در مربع وسط کرنل قرار بگیره. پیکسل 64 رو روی تصویر پیدا کنید و کرنل رو روی اون قرار بدید. خب ما یه جدول سه در سه داریم که مرکزش 64 و اطرافش هم اعداد اطراف 64 هست. هر عددی رو که رو کرنل افتاده (چون کرنل خالیه پس عدد هر خونه 1 است) ضربدر 1 مکنیم بعد داخل کرنل قرار میدیم. مثلاً عدد 17 رو از جدول برمیداریم، ضربدر 1میکنیم و در خونه اول از سمت چپ می‌نویسیم ، 14 رو ور میداریم و ضربدر 1 میکنیم و در خونه دوم قرار میدیم و ... .


 


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

بعد میانگین کرنلمون رو به جای پیکس 64 در جدول تصویرمون قرار میدیم:

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

 

 

واژگان تخصصی


منابع

2: A 'valid' convolution of a 5x5 image with a 3x3 kernel. The kernel... | Download Scientific Diagram (researchgate.net)

Analysis of "Data Scientist: the sexiest job of 21st century - Thomas… (slideshare.net)

(7881) How Blurs & Filters Work - Computerphile - YouTube

 

 

  مقاله سی ام هوش مصنوعی  

دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را  دنبال کنید.

همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.


فایل های ضمیمه

Menu