تشخیص اشیا در متلب با یادگیری عمیق (شبکه عصبی عمیق)

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

برای تشخیص اشیا در متلب از دیتاستی شامل ۳۰۰۰ نمونه استفاده کرده ایم، ۲۵۰۰ نمونه را برای آموزش و ۵۰۰ نمونه را نیز برای تست بکار برده ایم. در این پروژه ۵ کلاس وجود دارند که عبارتند از:

۱- کلاس اول مربوط به تصاویر هواپیما است

۲- کلاس دوم مربوط به تصاویر خودرو است

۳- کلاس سوم مربوط به تصاویر صورت انسان است

۴- کلاس چهارم مربوط به تصاویر برگ درخت است

۵- کلاس پنجم مربوط به تصاویر موتور سیکلت است

در این پروژه از دسته بند شبکه عصبی عمیق مدل CNN برای تشخیص استفاده کرده ایم.

شبکه های عصبی کانولوشن (CNN)

شبکه های عصبی کانولوشن (CNN) را می توان یکی از مهمترین روش های یادگیری عمیق دانست که در آنها چندین لایه با روشی قدرتمند آموزش میبینند. این روش بسیار کارآمد بوده و یکی از رایجترین روشها در کاربردهای مختلف یادگیری ماشین (machine learning) و بینایی کامپیوتر است.

بطور کلی, یک شبکه CNN از سه لایه اصلی تشکیل می شود که عبارتند از : لایه کانولوشن, لایه Pooling و لایه تماما متصل (Fully connected layer). لایه های مختلف وظایف مختلفی را انجام میدهد. در هر شبکه عصبی کانولوشن دو مرحله برای آموزش وجود دارد.

مرحله feed forward و مرحله back propagation یا پس انتشار. در مرحله اول  تصویر ورودی به شبکه تغذیه می شود و این عمل چیزی جز ضرب نقطه ای بین ورودی و پارامترهای هر نورون و نهایتا اعمال عملیات کانولوشن در هر لایه نیست.سپس خروجی شبکه محاسبه می شود.

در این جا به منظور تنظیم پارامترهای شبکه و یا به عبارت دیگر همان آموزش شبکه, از نتیجه خروجی جهت محاسبه میزان خطای شبکه استفاده میشود. برای اینکار خروجی شبکه را با استفاده از یک تابع خطا (loss function) با پاسخ صحیح مقایسه کرده و اینطور میزان خطا محاسبه میشود.

در مرحله بعدی بر اساس میزان خطای محاسبه شده مرحله back propagation آغاز میشود. در این مرحله گرادیانت هر پارامتر با توجه به قائده chain rule محاسبه میشود و تمامی پارامترها با توجه به تاثیری که بر خطای ایجاد شده در شبکه دارند تغییر پیدا میکنند. بعد از بروز آوری شدن پارامترها مرحله بعدی feed-forward شروع میشود. بعد از تکرار تعداد مناسبی از این مراحل آموزش شبکه پایان میابد.

فایل های برنامه

  1. DeepTrain: در این تابع مدل شبکه عمیق را طراحی کرده و سپس تصاویر را از دیتاست خوانده و به شبکه می دهیم، نوع شبکه، تعداد و نوع لایه ها و … در این تابع انجام می شود. با اجرای این تابع، منابع سیستم مانند رم و سی پی یو به شدت درگیر می شوند و روند آموزش ممکن است تا ۱ ساعت ادامه داشته یاشد.
  2. DeepTest: این تابع وظیفه تست شبکه عصبی عمیق را بر عهده دارد، بعد از عملیات تست، دقت تشخیص محاسبه شده و نمایش داده می شود.

 

ویژگی های پروژه تشخیص اشیا در متلب عبارتند از:

  • برنامه نویسی با زبان متلب
  • استفاده از کتابخانه یادگیری ماشین
  • تشخیص با استفاده از شبکه عصبی عمیق (deep neural network)
  • توضیح کامل برنامه در یک فایل جدا

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

تشخیص اشیا در متلب

مراحل خرید فایل دانلودی
اگر محصول را می پسندید لطفا آنرا به اشتراک بگذارید.

دیدگاهی بنویسید

0