برنامه درسی و سرفصلها (ترم زمستان 96 – 97)
درس مباحث ویژه مقطع کارشناسی دانشگاه تربیت دبیر شهید رجایی با موضوع مقدمه ای بر بینایی کامپیوتر.
در بخش نخست این درس به مباحث مقدماتی پردازش تصویر پرداخته خواهد شد و دانشجویان چارچوب OpenCV در زبان برنامه نویسی Python را برای کار با تصویر فرامیگیرند.
بخش دوم این درس به بیان مقدماتی الگوریتم های یادگیری و شبکه های عصبی اختصاص خواهد یافت.
در نهایت در بخش آخر مباحث شبکههای عصبی عمیق مطرح شده پس از سال 2012 مورد بحث قرار خواهد گرفت و با استفاده از چارچوب یادگیری ماشین و یادگیری عمیق Keras مدلهای شبکه عصبی عمیق پیاده سازی خواهند شد.
رویداد | تاریخ | توضیح | محتوا |
---|---|---|---|
جلسه ۱ | سه شنبه، ۱۷ بهمن ۱۳۹۶ ۱۳۹۶/۱۱/۱۷ |
مقدمات درس Computer vision overview |
Introduction slides [pdf] |
جلسه ۲ | چهارشنبه، ۱۸ بهمن ۱۳۹۶ ۱۳۹۶/۱۱/۱۸ |
مقدمات OpenCV در پایتون خواندن تصاویر فضاهای رنگی نمایش تصاویر ذخیره کردن تصاویر |
نوتبوکهای
01-Reading, writing and displaying images.ipynb یادداشت:مقدمات OpenCV، خواندن و نمایش تصاویر، فضاهای رنگی |
جلسه ۳ | سه شنبه، ۲۴ بهمن ۱۳۹۶ ۱۳۹۶/۱۱/۲۴ |
دستکاری تصویر (1) مقدمه ای بر جبر خطی ماتریسهای تبدیل روشهای درون یابی |
Image manipulations(1) [pdf] Image manipulations(1) [ppt] |
جلسه ۴ | چهارشنبه، ۲۵ بهمن ۱۳۹۶ ۱۳۹۶/۱۱/۲۵ |
توابع دستکاری تصویر در OpenCV کشیدن اشکال هندسی ماتریس های تبدیل جابه جایی چرخش تغییر اندازه هرم تصاویر بریدن و crop تصاویر |
[Video]
یادداشت: دستکاری تصویر (1) – ماتریسهای تبدیل نوتبوکهای 04-Drawing Images.ipynb |
HW1 | جمعه – ۴ اسفند ۱۳۹۶ | تمرین 1# – مقدمات | تمرین سری ۱ |
جلسه ۵ | سهشنبه، ۸ اسفند۱۳۹۶ ۱۳۹۶/۱۲/۸ |
دستکاری تصویر (2) عملیات منطقی و ریاضی در OpenCV ماسک تصاویر در OpenCV فیلترها convolution و Correlation Moving Average Sharpening فیلترها در OpenCV |
[Video] Image manipulations(2) [pdf] Image manipulations(2) [ppt] یادداشت:دستکاری تصاویر (۴) – عملیات ریاضی و ترکیب تصاویر رنگی در OpenCV نوتبوکهای 10-Arithmetic Operations.ipynb |
جلسه ۶ | چهارشنبه، ۹ اسفند۱۳۹۶ ۱۳۹۶/۱۲/۹ |
تصاویر باینری، حد آستانه و عملیات مورفولوژی انواع تصاویر تصاویر دودویی (باینری) حد آستانه و کاربرد باینری سازی روش ها – روش oustu آستانه گذاری در OpenCV مورفولوژی (Dilation،Erosion Closing و Opening) عملیات مورفولوژی در OpenCV |
[Video] Binary Images and Morphology [pdf] Binary Images and Morphology [ppt] یادداشت:تصاویر دودویی و حد آستانه نوتبوکهای 14-Thresholding, Binarization & Adaptive Thresholding.ipynb |
جلسه ۷ | سهشنبه، ۱۵ اسفند۱۳۹۶ ۱۳۹۶/۱۲/۱۵ |
لبهیابی مشتق و گرادیان تصویر آشکارسازی لبه Sobel & Canny لبهیابی در OpenCV تبدیل perspective در OpenCV استفاده از وبکم در OpenCV |
[Video] Edge Detection [pdf] Edge Detection [pptx] یادداشت:آشکارسازی لبه(1) نوتبوکهای 16-EdgeDetection&ImageGradients.ipynb |
HW2 | جمعه – ۴ اسفند ۱۳۹۶ | تمرین 2# – تصاویر باینری و مورفولوژی | تمرین سری ۲ |
جلسه ۸ | چهارشنبه، ۱۶ اسفند۱۳۹۶ ۱۳۹۶/۱۲/۱۶ |
مقدمه ای بر یادگیری ماشین Machine Learning چیست؟ یادگیری باناظر (Supervised learning) یادگیری بدون ناظر (Unsupervised learning) یادگیری تقویتی (Reinforcement learning) مراحل یک پروژه یادگیری ماشین Train Test Split ارزیابی مدل |
Introduction to Machine Learning [pdf] Introduction to Machine Learning [pptx] یادداشت:مقدمه ای بر یادگیری ماشین (Machine Learning) |
HW3 | جمعه – ۲۵ اسفند ۱۳۹۶ | تمرین ۳# – لبه یابی – تبدیل Prespective و کار با وبکم | تمرین سری ۳ |
جلسه ۹ | سهشنبه، ۲۲ اسفند۱۳۹۶ ۱۳۹۶/۱۲/۲۲ |
طبقهبند نزدیکترین همسایه و k-نزدیکترین همسایه و پیاده سازی در scikit learn
مقدمه ای بر شبکههای عصبی(1) |
[Video] Simple Classifier (KNN) [pdf] Simple Classifier (KNN)[pptx]Introduction to Neural Networks [pdf] Introduction to Neural Networks[pptx] یادداشت:طبقه بند K نزدیکترین همسایه در scikit-learn |
جلسه ۱۰ | چهارشنبه، ۲۳ اسفند۱۳۹۶ ۱۳۹۶/۱۲/۲۳ |
مقدمه ای بر شبکههای عصبی(2) تابع هزینه (Cost Functions یا Loss Function) Gradient Descentand Backpropagation مشاهده تاثیر تابع فعالیت و تعداد لایه ها و نورونها در طبقه بندی به صورت بصری در سایت playground.tensorflow.org |
[Video] سایت playground.tensorflow.org |
HW4 | چهارشنبه– ۸ فروردین ۱۳۹۷ | تمرین ۴# -طبقهبند k-نزدیکترین همسایه – آشنایی با شبکههای عصبی در دیتاکمپ) |
تمرین سری ۴ |
جلسه غیر آموزشی | سهشنبه، ۲۱ فروردین ۱۳۹۷ ۱۳۹۷/۱/۲۱ |
بیان نقاط ضعف و نقاط قوت کلاس و دعوت از رئیس دانشکده در این جلسه نقاط ضعف و نقاط قوت کلاس توسط دانشجویان مطرح شد و برای بهبود کلاس بحث و گفتگو شد. در ادامهی این جلسه میزبان دکتر رضا ابراهیم پور ریاست محترم دانشکده مهندسی کامپیوتر دانشگاه تربیت دبیر شهید رجایی بودیم و در مورد اهمیت یادگیری عمیق و یادگیری ماشین در کسب و کار و همچنین تحصیلات تکمیلی بحث شد. |
|
جلسه ۱۱ | چهارشنبه، ۲۲ فروردین ۱۳۹۷ ۱۳۹۷/۱/۲۲ |
مقدمهای بر پیاده سازی شبکههای عصبی ترتیبی در Keras استفاده از یک شبکه ترتیبی تمام متصل چندلایه در Keras تعریف معماری مدل انتخاب تابع هزینه و بهینه ساز و Compile کردن مدل آموش مدل و فراخوانی متد fit ارزیابی مدل روی داده های آزمون پیشبینی دادههای آموزشی |
[Video]
یادداشت:مقدمهای بر پیاده سازی شبکههای عصبی ترتیبی در کراس نوتبوک
|
HW5 | جمعه – ۳۱ فروردین ۱۳۹۷ | تمرین ۵# – مقدمات شبکهعصبی در Keras |
تمرین سری ۵ |
جلسه ۱۲ | سهشنبه، ۲۸ فروردین ۱۳۹۷ ۱۳۹۷/۱/۲۸ |
مقدمهای شبکههای عصبی عمیق مروری بر مساله طبقهبندی و چالشهای طبقهبندی تصاویر در دنیای واقعی (آشنایی با invariant object recognition) چرا طبقهبند KNN برای تصاویر واقعی مناسب نیستند؟ مقدمهای بر یادگیری عمیق مروری بر شبکه عصبی سلسله مراتبی پیاده سازی شده در Keras جلسات پیشین مشکل حفظ کردن دادهها و Overfitting یا بیشبرازش دادهها معرفی Dropout و استفاده در Keras مقدمهای بر شبکههای کانولوشنالی و کاربردهای آن مقایسهی کارایی مدلهای کلاسیک در مقابل مدلهای عمیق کانولوشنالی در بازشناسی اشیاء چالش ImageNet |
[Video] Introduction to Deep Learning & Convolutional Neural Networks [pdf] Introduction to Deep Learning & Convolutional Neural Networks[pptx] یادداشت:مشکل بیش برازش دادهها و معرفی Dropout نوتبوک |
جلسه ۱۳ | چهارشنبه، ۲۹ فروردین ۱۳۹۷ ۱۳۹۷/۱/۲۹ |
مقدمه ای بر شبکههای کانولوشنالی معرفی و آشنایی با رویکرد آموزش کرنل یا فیلترهای کانولوشنال به جای طراحی فیلتر مروری بر کانولوشن Same و Valid مشکلات کانولوشن valid در طراحی شبکههای کانولوشنالی و فرمول اندازه خروجی پس از کانولوشن فرمول محاسبه مقدار padding برای کانولوشن same معرفی strided convolution فرمول خروجی کانولوشن با padding و stride مشخص و اندازه فیلتر خاص کانولوشن روی کانالهای تصویر (کانولوشن سه بعدی) چند فیلتر در کانولوشن و خروجی چند کاناله محاسبه تعداد پارامترها در هر لایه کانولوشن معرفی واحدهای pooling و ادغام بیشینه بررسی LeNet |
[Video]
Convolutional Neural Networks [pdf]
|
quiz1 | جمعه – ۳۱ فروردین ۱۳۹۷ | کوئیز۱# – مقدمات شبکههای کانولوشنالی | کوئیز و تمرین تستی 1 |
جلسه ۱۴ | سهشنبه، ۴ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۴ |
پیاده سازی یک شبکهعصبی کانولوشنالی در Keras برای مجموعه داده ارقام دستنویس فارسی هدی مروری بر لایه های کانولوشنی مزیت لایه های کانولوشنالی پیاده سازی شبکه عصبی کانولوشنالی در کراس و آشنایی با لایههای Conv2D و MaxPooling2D آشنایی با متد Flatten برای لایه ماقبل Dense بررسی ابعاد activation هر لایه: حساب دستی و آشنایی با متد summary() |
[Video]
نوتبوک |
جلسه ۱۵ | چهارشنبه، ۵ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۵ |
تعریف شبکه کانولوشنالی برای مجموعه داده واقعی و کنترلنشدهی چالش سال 2013 Kaggle برای طبقه بند باینری سگ/گربه
استفاده از پایتون برای جدا کردن تصاویر آموزشی/آزمایشی/ارزیابی |
[Video]
یادداشت:آموزش یک شبکه عصبی کانولوشنالی از ابتدا در Kears نوتبوک |
HW6 | جمعه – ۱۴ اردیبهشت ۱۳۹۷ | تمرین ۶# – تعریف وآموزش طبقه بند دو و سه کلاسه – استفاده از GPU Server آنلاین یا Google Colab |
تمرین سری ۶ |
جلسه ۱۶ | چهارشنبه، ۱۱ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۱۱ |
بررسی معماریهای حائز رتبه در طبقه بندی تصاویر در ابتدا نگاهی گذرا به شواهد زیستی سلسله مراتبی مغز پرداخته شد و سپس نخستین شبکه کانولوشنالی یانلیکان معرفی شد. در ادامه معماری های معروف حائز رتبه در بازشناسی اشیاء و ایده های آن ها مورد بررسی قرار گرفت. |
[Video]
Case Studies [pdf] یادداشت:معرفی تعدادی از معماریهای شبکه های کانولوشنالی معروف |
جلسه ۱۷ | سهشنبه، ۱۸ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۱۸ |
Data Augmentation در این جلسه به راهکارهای افزایش دادگان به عنوان روشی برای جلوگیری از بیشبرازش یا overfitting اشاره شد. همچنین استفاده از Data Augmentation در چارچوب Keras مورد بررسی قرار گرفت. |
Data Augmentation &Transfer Learning [pdf] نوتبوک |
جلسه ۱۸ | چهارشنبه، ۱۹ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۱۹ |
Transfer Learning
در ابتدا و قبل از شروع مبحث Transfer Learning لود کردن شبکه هایی که قبلا درKeras آموزش داده ایم را بررسی کردیم. در ادامه در این جلسه مبانی Transfer Learning برای مجموعه داده های کوچکتر بر روی اوزان شبکه ی از قبل آموزش دیده شده بیان شد. همچنین مبانی استفاده از Transfer Learning در Keras بیان شد. |
Data Augmentation &Transfer Learning [pdf] Data Augmentation &Transfer Learning[pptx]
یادداشت:نگاهی به فرآیند بینایی در مغز نوتبوک |
جلسه ۱۹ | چهارشنبه، ۲۵ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۲۵ |
Transfer Learning(2) در این جلسه مدل pre-trained با معماری VGG16 روی داده های Imagenet در Keras به عنوان مثال لود شد و یک تصویر را با اوزان اصلی 1000 کلاسه طبقه بندی کردیم.در ادامه مبحث Transfer learning جلسه قبل را ادامه دادیم.دو رویکرد اصلی در این مبحث مورد بررسی قرار گرفت. رویکرد نسخت استفاده از لایه های کانولوشنالی از قبل آموزش داده شده به عنوان یک Feature extraction برای مسائل جدید بود. این رویکرد به صورت ذخیره سازی activation ها و بدون ذخیره سازی در فریم ورک Keras پیاده سازی شد و به مزایا و معایت هر کدام از دو روش پرداخته شده. |
نوتبوک 27-using-a-pretrained-convnet.ipynb |
جلسه ۲۰ | سهشنبه، ۲۶ اردیبهشت ۱۳۹۷ ۱۳۹۷/۲/۲۶ |
Face Verification & Identification(1) در این جلسه با مساله one-shot learning آشنا شدیم.در ادامه با رویکرد شبکه های Siamese برای تطبیق چهره مورد بررسی قرار گرفت.برای آموزش شبکه برای این منظور تابع خطا یا loss function ارائه شده در مقاله FaceNet به نام Triplet loss مورد بررسی قرار گرفت. |
Face [pdf] Face[pptx] |
HW7 | جمعه – ۴ خرداد ۱۳۹۷ | تمرین ۷# – بازشناسی اشیاء با وبکم |
تمرین سری ۷ |
dataset1 | جمعه – ۴ خرداد ۱۳۹۷ | گام 1 جمع آوری مجموعه داده |
گام 1 – جمع آوری مجموعه داده |
جلسه ۲۱ | سهشنبه، ۱ خرداد ۱۳۹۷ ۱۳۹۷/۳/۱ |
Face Verification & Identification(2) مرور مباحث جلسه قبل |
Face [pdf] Face[pptx] نوتبوک مقاله A Discriminative Feature Learning Approach
for Deep Face Recognition[pdf]
SphereFace: Deep Hypersphere Embedding for Face Recognition[pdf]
|
جلسه ۲۲ | چهارشنبه، ۲ خرداد ۱۳۹۷ ۱۳۹۷/۳/۲ |
Face Detection مبحث face detection بررسی اجمالی haar-cascade بررسی چالش Wider بررسی MTCNN تکمیل سلسله مراتب یک پروژه کامل شناسایی چهره |
نوتبوک و سورس کد مقاله و لینک چالش Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks (MTCNN)[pdf]
|
لینکهای درس:
- کانال آپارات: https://www.aparat.com/cvision
- کانال تلگرام: https://t.me/class_vision
- گیتهاب: https://github.com/Alireza-Akhavan/class.vision
- وبلاگ: blog.class.vision
با تشکر
علیرضا اخوان پور
شبکه های اجتماعی