مسیر یادگیری بینایی کامپیوتر و بینایی ماشین

مسیر یادگیری computer vision(بینایی کامپیوتر)

بینایی کامپیوتر، یکی از زیر شاخه های هوش مصنوعی است. همان‌گونه که چشم‌ها فقط دریافت کننده تصاویر محیط پیرامون هستند و این مغز است که فرایند دیدن به معنای درک اشیاء، محیط و افراد پیرامون را انجام می‌دهد، یک دوربین یا وبکم فقط تصاویر را در قالب پیکسل‌هایی ذخیره می‌کنند و ما به با الگوریتم‌های بینایی کامپیوتری به درک از این تصاویر می‌رسیم. به همین دلیل است که بینایی کامپیوتر را زیرشاخه‌ی هوش مصنوعی می‌دانیم. حال ممکن است که این درک تصاویر برای کاربردهای صنعتی و با برخی از سنسورهای دیگر باشد که در اینجا عبارت بینایی ماشین نیز به کار برده می‌شود (تفاوت بینایی کامپیوتر با بینایی ماشین).

 

حال برای ورود به فیلد پژوهشی و یا کاربردی و عملی بینایی کامپیوتر فراگیری زبان پایتون توصیه میگردد. اگر چه با متلب هم میتوان وارد این رشته شد، اما معمولا کاربردهای صنعتی و بازارکار این رشته با زبان پایتون است. علاوه بر این با توجه به ابزارهای موجود متن‌باز هوش مصنوعی نظیر فریم‌ورک ها‌ و کتابخانه‌های برنامه نویسی مختلف برای یادگیری‌ماشین، یادگیری عمیق و بینایی کامپیوتر دانشگاه های برتر دنیا برای تدریس این مباحث و چاپ مقالات اکنون پایتون را انتخاب می‌کنند.  اگر چه کتاب‌ها و کورس‌های قدیمی بینایی کامپیوتر و پردازش تصویر ممکن است هنوز به زبان متلب باشند. البته باید توجه کنید که پایتون زبانی چندمنظوره است و نباید در اقیانوس عظیم کتابخانه‌های آن گم شوید. اگر شما مفاهیم پایه‌ی یک زبان برنامه‌نویسی (نظیر سی یا سی پلاس پلاس یا …) نظیر متغیرها، حلقه های تکرار، توابع را می‌دانید، می‎توانید در چند روز با سینتکس پایتون آشنا شده و سپس کتابخانه‌ی Numpy که برای نگه‌داری و عملیات وکتوری سریع روی ماتریس‌ها است را یاد بگیرید. اگر قبلا با یک زبان برنامه‌نویسی کار کرده‌اید برای شروع کورس رایگان و خلاصه‌ی پایتون برای هوش مصنوعی برای رفتن به مرحله‌ی بعدی این مسیر یادگیری کفایت می‌کند.

در ادامه، فراگیری کتابخانه محبوب و معروف OpenCV توصیه می‌گردد. OpenCV انواع توابع و الگوریتم‌های پردازش تصویر و بینایی کامپیوتر را پیاده سازی کرده است که به راحتی برای کاربردهای مختلف ابزارهای مورد نیاز برای برنامه نویسی برای مسائل این حوزه را در اختیارتان قرار می‌دهد. اما این کتابخانه برای توسعه الگوریتم‌های کلاسیک و غیر دیپ لرنینگی(یادگیری عمیق) مناسب است. اگر چه در OpenCV امکان لود مدلهای قبلا آموزش دیده شده در فریم‌ورک‌های محبوب یادگیری عمیق نظیر تنسرفلو، پای‌تورچ و … وجود دارد، اما با ان ابزار نمی‌توان یک مدل یادگیری عمیق را آموزش داد.

برای تکمیل مهارت، پس از فراگیری زبان پایتون و کتابخانه OpenCV تسلط بر روی مباحث یادگیری عمیق نظیر شبکه‌های  عصبی کانولوشنالی و تسلط بر روی پیاده‌سازی با یک فریم‌ورک نظیر تنسرفلو توصیه میگردد. خیلی از مسائل دنیای امروز باظهور یادگیری عمیق(بعد از سال 2012) خیلی راحت‌تر و با دقت خیلی بهتر حل می‌شوند. اگر چه دانستن تنهای یادگیری عمیق بدون درک مقدمات کار با تصویر و بینایی کامپیوتر برای کارهای صنعتی مطلوب نیست و ممکن است انتخاب مسیر سخت و غیر بهینه را به دنبال داشته باشد.

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

برنامه نویسی پایتون
  • زمان تخمینی: 10 ساعت
  • زبان دوره: فارسی
  • قیمت: رایگان

شما برای کار در این فیلد نیاز داری با زبان پایتون (Python) و کتابخانه هایی نظیر Numpy، Matplotlib آشنا باشید. منابع و ویدیوهای رایگان زیادی در این زمینه وجود دارد.

اگر با این موارد آشنایی ندارید توصیه میکنم کورس  رایگان زیر را ببینید.

لینک دوره:

آموزش زبان Python برای هوش مصنوعی

گام 1
مفاهیم بینایی کامپیوتر و OpenCV
  • زمان تخمینی با مطالعه و انجام تمرین: 50ساعت
  • زبان دوره: فارسی
  • قیمت محتوا بدون تخفیف: 719 هزار تومان

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

لینک دوره + تخفیف:

دوره‌ی آموزشی بینایی کامپیوتر با OpenCV

گام 2
آشنایی مقدماتی با یادگیری عمیق
  • زمان تخمینی با مطالعه و انجام تمرین: ۲۴ ساعت
  • زبان دوره: فارسی

در گام بعدی توصیه میکنم با یک فریم ورک سطح بالا چند پروژه عملی انجام داده و به صورت abstract و  بدون درگیری با جزئیات قضیه یادگیری عمیق را فرابگیرید.

بدین منظور یک دوره ۱۲ ساعته با موضوع یادگیری عمیق در فریم ورک تنسرفلو – keras آماده شده است.

لینک دوره:

دوره آموزشی Deep Learning با Keras

گام 3
فراگیری Object detection

در گام 2 و در کورسی که معرفی شد با OpenCV قادر هستیم برخی از مسائل تشخیص اشیاء را انجام دهیم، اما در این گام منظورمان رویکرد یادگیری عمیق و دانش جمع آوری و آموزش دادن یک مدل دیپ‌لرنینگی برای یک مجموعه‌داده دلخواه است.

یکی از مسائلی که به عنوان یک متخصص بینایی کامپیوتر زیاد با آن مواجه می‌شوید تشخیص اشیاء است. تشخیص اشیاء به معنای بازشناسی و همچنین تشخیص ناحیه‌ی یک شئ است. برای مثال وقتی شما میخواهید یک پلاک خودرو را بخوانید ابتدا باید ناحیه‌ی پلاک را تشخیص دهید و سپس پلاک را بخوانید. مقالات و شبکه‌های معروف زیادی نظیر SSD، YOLO، RetinaNet و ... معرفی شده و شما می‌توتنید با فریم ورک‌های مختلفی به آموزش این مدلها بپردازید.

 

این دوره به زودی توسط مجموعه ما ضبط خواهد شد.

 

گام 4
تسلط به مباحث بینایی کامپیوتر
  • زمان تخمینی : 150 ساعت
  • زبان دوره: انگلیسی
  • قیمت: رایگان

یکی از سایت‌های خیلی معتبر که دوره‌های کاربردی و با کیفیت منتشر می‌کند سایت Udacity است. یکی از آموزش های رایگان این سایت "Introduction to Computer Vision" است که به شدت توصیه می‌گردد. این کورس یکی از جامع ترین آمورش های موجود برای پردازش تصویر بوده و خوشبختانه کاملا رایگان است!

این دوره می‌تواند نقش مرور مباحث گذشته (گامهای قبلی) و همچنین مطالعه موارد متعدد جدیدی را برای ادامه‌ی آموزش‌ها داشته باشد.

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

 

لینک دوره:

Introduction to Computer Vision

گام 5