مدت :

۱۴ ساعت و ۳۰ دقیقه

قیمت : ۲۹۸,۰۰۰ تومان
LinkedIn
Twitter
Facebook
Telegram

درباره مدرس 

اطلاعات دوره

توضیحات

بینایی ماشین چیست ؟ بینایی کامپیوتر چیست ؟ پردازش تصویر چیست ؟ تفاوت بینایی ماشین و بینایی کامپیوتر چیست ؟ تفاوت بینایی ماشین با پردازش تصویر چیست ؟ برای فهمیدن پاسخ این پرسش‌ها‌ هیچ چیز بهتر از درک عملی نیست. همان طور که بهترین پاسخ به سوال «فوتبال چیست؟» ، بازی کردن فوتبال است. این آموزش پروژه محور بینایی کامپیوتر با پایتون و OpenCV هم چنین نگاهی دارد.

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

آموزش پردازش تصویر با پایتون و OpenCV

پروژه اول – آموزش شناسایی چهره با پایتون و OpenCV

پروژه دوم – آموزش واقعیت افزوده با پایتون و OpenCV

پروژه سوم – آموزش تشخیص اشیا با یولو در OpenCV

پروژه چهارم – تعلیم شبکه عصبی یولو و تشخیص اشیای اختصاصی

 

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

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

 

آموزش-بینایی-کامپیوتر-با-تنسورفلو-آموزش-شبکه-عصبی-با-کراس-بینایی-ماشین-با-تنسورفلو-دوره-بینایی-کامپیوتر-هم-رویش
آموزش-بینایی-کامپیوتر-با-تنسورفلو-ساخت-شبکه-عصبی-با-کراس-بینایی-ماشین-با-تنسورفلو-هم-رویش

 

بینایی ماشین چیست ؟

بیایید اول به تعریف بینایی ماشین به انگلیسی Machine Vision یا به اختصار MV بپردازیم. بینایی ماشین در واقع حوز‌ه‌ای شامل چندین فناوری و تکنیک است. هدف بینایی ماشین این است که بتوان امکان پایش و تحلیل محیط مبتنی بر تصاویر گردآوری شده را به یک ماشین داد. بینایی ماشین معمولا در صنعت کاربرد دارد. مواردی مانند نظارت خودکار ، کنترل فرآیند و سیستم راهبر ربات از کاربردهای بینایی ماشین هستند.

 

بینایی کامپیوتر چیست ؟

حال بیایید به تعریف بینایی کامپیوتر به انگلیسی Computer Vision یا CV بپردازیم که بینایی رایانه‌ای نیز ترجمه شده است.  بینایی کامپیوتر یک شاخه از علم کامپیوتر است که روی تقلید سیستم بینایی انسان تمرکز دارد. هدف بینایی کامپیوتر این است که کامپیوتر بتواند اشیا را مثل انسان در یک تصویر یا فیلم، درک و تحلیل کند. با پیشرفت‌های اخیر هوش مصنوعی به تازگی گام‌های بزرگی به سمت این خواسته برداشته شده است. نمونه‌هایی را در این آموزش بینایی کامپیوتر با هم تجربه می‌کنیم.

 

پردازش تصویر چیست ؟

سرانجام به تعریف پردازش تصویر به انگلیسی Image Processing بپردازیم. پرداش تصاویر دیجیتال یعنی تحلیل و دستکاری عکس های دیجیتال توسط رایانه های دیجیتال! یعنی در پرداش تصویر به کمک روش‌ها و الگوریتم‌های گوناگون به تحلیل پیکسل‌های یک عکس و نیز ایجاد تغییراتی مانند تغییر رنگ ، حذف نویز ، اعمال انواع تبدیل‌ها و مانند آنها می‌پردازیم. کاربرد پرداش تصویر از تحلیل تصاویر پزشکی تا زمین شناسی تا پراکنده است. اما امروزه یکی از پرمخاطب‌ترین حوزه‌های پردازش تصویر استفاده از آن در بینایی کامپیوتر است.

 

فرق بینایی ماشین با بینایی کامپیوتر چیست ؟

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

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

 

فرق بینایی کامپیوتر و پردازش تصویر چیست ؟

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

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

اگر این مفاهیم هنوز برای شما واضح نیستند ،‌ نگران نباشید. در این آموزش به صورت عملی آن‌ها را درک خواهید کرد.

 

این بسته در یک نگاه

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

ریز سرفصل‌ این آموزش بینایی ماشین با پایتون و OpenCV در پایان این متن آمده است.

 

آموزه‌های اصلی
  • آموزش کتابخانه OpenCV
  • آموزش OpenCV با پایتون
  • پردازش فیلم و عکس
  • تبدیل تصویر و درج متن روی آن
  • آموزش شناسایی چهره یا Face Recognition
  • آشنایی با OpenFace و dlib
  • آموزش واقعیت افزوده AR یا Augmented Reality
  • فرق واقعیت افزوده با واقعیت مجازی 
  • مفهوم ویژگی یا Feature در یک عکس
  • تفاوت BF و FLANN در تطبیق ویژگی
  • مفهوم Homography و محاسبه ماتریس هم‌نگاری
  • مفهوم تشخیص اشیا یا Object Detection
  • مفهوم الگوریتم YOLO و نسخه های آن
  • آموزش تشخیص اشیا با یولو در OpenCV
  • آشنایی با دیتاست COCO و Open Images Dataset
  • مفهوم IoU و mAP در تشخیص اشیا
  • آشنایی با دارک نت DarkNet
  • آشنایی با PyCharm و نیز دفترچه Jupyter
  • آشنایی با Google Colab
  • تعلیم یک شبکه عصبی عمیق
  • تشخیص اشیای سفارسی با یولو و OpenCV

 

این آموزش بی‌نظیر است زیرا
  • هم آموزش پردازش تصویر و هم آموزش بینایی کامپیوتر است!
  • بینایی کامپیوتر با پایتون را فرامی‌گیرید که زبانی پرکاربرد است!
  • در تمام آموزش همواره اول مفاهیم نظری و بعد اجرا را می‌آموزید!
  • کتابخانه OpenCV را می‌آموزید که هم با پایتون و هم سی پلاس پلاس قابل استفاده است!
  • تعلیم شبکه برای تشخیص اشیای خاص را در یک عکس می‌آموزید!
  • تعلیم شبکه عصبی با GPU رایگان و آنلاین گوگل را می‌آموزید!
  • همه چیز پروژه محور است و سورس کد پروژه ها را نیز خواهید داشت!

 

پیشنیاز

برای ورود به این بسته کافی است که با برنامه‌نویسی پایتون آشنا باشید:

آموزش برنامه نویسی پایتون (+) 

و پس از دیدن این بسته پیشنهاد می‌کنیم سراغ کدنویسی بینایی کامپیوتر و ساخت شبکه‌های عصبی (به جای استفاده از شبکه‌های آماده چنان که در این بسته دیدیم) بروید:

آموزش بینایی کامپیوتر با تنسورفلو (+)

 

کلیدواژگان

بینایی ماشین چیست – بینایی کامپیوتر چیست – بینایی رایانه ای چیست – پردازش تصویر چیست – آموزش بینایی کامپیوتر با پایتون – آموزش بینایی کامپیوتر با OpenCV – آموزش پردازش تصویر با پایتون و OpenCV – فرق بینایی ماشین و بینایی کامپیوتر چیست – فرق پردازش تصویر و بینایی کامپیوتر چیست – شناسایی چهره – واقعیت افزوده – الگوریتم YOLO چیست – تشخیص اشیا چیست – تشخیص اشیا با یولو – تشخیص اشیای سفارشی – گوگل کولب – دفترچه ژوپیتر – PyCharm IDE – تعلیم شبکه عصبی – یادگیری عمیق – DarkNet – تفاوت بینایی ماشین با پردازش تصویر

سرفصل‌ها

سرفصل‌ها

گام اول – آموزش پردازش تصویر

درس اول: آشنایی با پردازش تصویر و OpenCV
– بینایی کامپیوتر (رایانه) چیست؟
– جایگاه پردازش تصویر در هوش مصنوعی
– کتابخانه OpenCV در یک نگاه
– نمایش تصویر به صورت یک ماتریس
– ماشین چطور یک تصویر را می‌بیند
– منظور از کانال Channel و تعداد آن چیست
– معرفی کتابخانه Numpy

درس دوم: نصب Python و OpenCV
– دریافت فایل نصب مناسب پایتون از وبسایت Python.org
– نصب شخصی‌سازی شده پایتون (Customized installation)
– آزمایش نصب و نسخه پایتون
– pip چیست؟ (Package installer for Python)
– نصب OpenCV متناسب پایتون با دستور pip install opencv-python
– آزمایش نصب و نسخه OpenCv

درس سوم: سلام به OpenCV
– معرفی IDLE برای کدنویسی ماژول‌های پایتون
– آشنایی با متد imread در cv2 برای خواندن عکس
– چاپ محتویات یک عکس به صورت یک ماتریس
– نمایش یک عکس با متد imshow در ماژول cv2
– آشنایی با نمایش Colored و Grayscale (رنگی و سیاه/سفید)

درس چهارم: نصب و راه اندازی Pycharm
– چه وقت از IDE استفاده کنیم؟
– معرفی مختصر گروه JET Brains
– معرفی Pycharm و فرق نسخه‌های Community و Professional
– گزینه‌های ویژه دریافت رایگان Pycharm
– دریافت و نصب Pycharm روی ویندوز
– تعریف اولین پروژه و اولین کلاس پایتون در Pycharm

درس پنجم: خواندن و ذخیره عکس در OpenCV
– ایجاد پروژه برای فایل‌های دوره
– ایجاد venv برای پروژه و مفهوم آن
– نصب opencv-python در Pycharm
– خواندن یک عکس با متد imread
– نمایش یک عکس با متد imshow
– باز نگه داشتن پنجره در OpenCV با متد WaitKey
– آشنایی با متد DestroyWindow
– ذخیره یک عکس در OpenCV با متد imwrite

درس ششم: خواندن و نمایش ویدیو یا ورودی دوربین در OpenCV
– آشنایی با کلاس VideoCapture در OpenCV
– آشنایی با متد read و خروجی آن برای خواندن کپچر
– استفاده از متد imshow و نمایش فریم به فریم در حلقه While
– نقش & 0xFF برای تصحیح عدد کارکتر در سیستم‌های 64 بیتی
– آشنایی با نقش متد release از کلاس VideoCapture
– خواندن و نمایش یک فایل ویدئو از روی سیستم
– باز کردن دوربین سیستم و خواندن و نمایش دوربین لپ تاپ با OpenCV

درس هفتم: ذخیره ویدئو یا ورودی دوربین در OpenCV
– آشنایی با کلاس VideoWrite در OpenCV
– آشنایی با مفهوم fourcc و فرمت فایل و کدک
– مفهوم fps و تاثیر آن در سرعت ذخیره و پخش فیلم
– آشنابی با وب سایت docs.opencv.org برای یافتن متدها و فلگ‌ها
– ویژگی CAP_PROP_FRAME_WIDTH
– ویژگی CAP_PROP_FRAME_HEIGHT
– استفاده از متد write کلاس VideoWriter برای ذخیره فریم

درس هشتم: ترسیم خط و شکل
– آشنایی با متد line برای ترسیم خط با cv2
– آشنایی با آرگومان های متد line مانند مختصات و رنگ خط
– RGB چیست؟ BGR چیست؟ مفهوم تعیین رنگ با پروتکل rgb
– آشنایی با متد arrowdLine برای ترسیم پیکان
– آشنایی با متد rectangle و ترسیم مستطیل در OpenCV
– آشنایی با متد circle و ترسیم دایره در OpenCV
– آشنایی با متد shape برای گرفتن ابعاد عکس در OpenCV
– نحوه مختصات دهی نسبی در حین ترسیم شکل در OpenCV

درس نهم: نوشتن و درج متن در OpenCV
– آشنایی با متد puttext در ماژول cv2
– آشنایی با فونت Hershey و ویژگی‌های آن
– تعریف فونت در OpenCV و cv2
– تنظیم origin و رنگ متن
– استفاده از فونت فارسی در OpenCV
– استفاده از کاراکترهای utf در OpenCV
– آشنایی با کتابخانه PILasOPENCV
– آشنایی با freetype و harfbuzz

درس دهم: ایجاد تصویر با NumPy و مفهوم تصویر یک و سه کانالی
– مفهوم تصویر تک کانالی (One or Single Channel Image)
– مفهوم عکس سیاه سفید یا Gray Scale
– تحلیل قلب آرایه‌ای و ماتریسی یک عکس تک کاناله
– ایجاد تصویر تک کانالی با NumPy و متد Zeros
– مفهوم dType در NumPy و متد Zeros
– مفهوم تصویر سه کانالی (Three Channel Image) یا BGR Image
– تحلیل قلب آرایه‌ای و درایه‌ای و ماتریسی یک عکس سه کاناله
– تمرین برای ایجاد عکس با رنگ‌های تصادفی با تابع rand
– تمرین برای تحقیق در مورد امکان دریافت بخشی از یک عکس
– تمرین برای کار با متد ones از NumPy و امکان تعریف Float

درس یازدهم: نوشتن متن روی ویدیو
– ویدیو از تعدادی عکس پشت هم ساخته شده است
– استفاده از putText برای درج متن روی هر Frame
– نمایش یک متن ساده روی فیلم در OpenCV
– نمایش عرض و یا ارتفاع فیلم در OpenCV
– نمایش زمان و تاریخ روی فیلم در OpenCV

درس دوازدهم: پاسخ به رویدادهای موس کاربر
– نمونه‌هایی از جذابیت مدیریت رویداد موس
– نمایش تمام flag های Event در CV2
– استفاده از List Comprehension برای پرینت لیست رویدادها
– آشنایی با متد setMouseCallback
– نوشتن متد Callback برای رویداد کلیک
– مدیریت رویداد EVENT_LBUTTONDOWN
– درج نقطه و مختصات محل کلیک
– ترسیم خط به ازای کلیک بین دو نقطه
– مدیریت رویداد EVENT_RBUTTONDOWN
– گرفتن رنگ پیکسل در نقطه محل راست کلیک
– نمایش رنگ محل کلیک در پنجره جدید

درس سیزدهم: انتخاب یک ناحیه (ROI) از تصویر
– مفهوم Region of Interest یا ROI
– نمونه‌هایی از کاربرد انتخاب ناحیه ROI در پردازش تصویر
– جدا کردن بخشی از تصویر بدون API و تنها بر مبنای آرایه‌ای
– کپی کردن ناحیه ROI و انتقال به یک فضای دیگر از تصویر
– ایده‌هایی برای سپردن کار با ROI به کاربر نهایی

درس چهاردهم: تغییر اندازه و جمع دو تصویر
– مفهوم متد add در opencv و ماژول cv2
– مفهوم متد resize در opencv
– تغییر اندازه عکس در opencv
– تغییر اندازه متقارن و نامتقارن با اعمال fx و fy به عنوان مقیاس
– پارامتر interpolation در متد resize
– آشنایی با متد addWeighted در در opencv و ماژول cv2
– آشنایی با alpha, beta, gamma در blend دو عکس

درس پانزدهم: عملگرهای بیتی روی تصاویر
– نگاه باینری یا صفر و یک به عکس در پردازش تصویر
– شرح عملگر AND بیتی و اعمال آن در تلفیق دو تصویر
– شرح عملگر OR بیتی و اعمال آن در تلفیق دو تصویر
– شرح عملگر XOR بیتی و اعمال آن در تلفیق دو تصویر
– شرح عملگر NOT بیتی و اعمال آن روی پیکسل های یک تصویر

درس شانزدهم: جمع‌بندی
– نکته‌‌های پایانی
– ایده‌هایی برای ادامه راه

 

گام دوم – آموزش تشخیص چهره

درس صفر – معرفی دوره
– نگاهی به پروژه این دوره
– نگاه سریع به مراحل آموزش
– پیشنیاز این آموزش

درس یکم – مبانی نظری
– تشخیص چهره چیست؟
– معنی face recognition یا facial recognition
– مراحل تشخیص چهره توسط کامپیوتر
– بینایی ماشین چگونه است؟
– آشنایی با کتابخانه face_recognition
– نقش کتابخانه OpenFace در تعلیم شبکه‌های عصبی
– نقش تحقیقات و الگوریتم FaceNet
– نقش کتابخانه dlib در یافتن صورت ها
– بررسی چهار گام تشخیص چهره با یادگیری عمیق
– مفهوم HOG یا Histogram of Oriented Gradients
– مفهوم 68 نقطه مرجع یا landmark برای تبدیل چهره
– مفهوم 128 اندازه گیری شبکه عصبی پیچشی
– نقش کلاسیفایر SVM در جریان تشخیص و تطبیق چهره

درس دوم – نصب ابزار – نیمه اول
– نصب ویژوال استودیو نسخه community
– نصب بخش visual C++ for Desktop

درس سوم – نصب ابزار نیمه دوم
– بررسی نسخه پایتون مورد استفاده
– معرفی IDE برای کدنویسی راحت تر
– نصب کتابخانه cmake
– نصب کتابخانه dlib
– مشکل نصب dlib
– نصب numpy
– نصب face_recognitio
– نصب opencv-python

درس چهارم – فراخوانی و تبدیل تصاویر
– بررسی تصویرهای انتخاب شده
– ایجاد directory و انتقال تصاویر به pycharm
– بارگیری تصویر با استفاده از cv2.imread
– بارگیری تصویر با استفاده از load_image_file
– تفاوت کانال بندی در cv2 و face_recognition
– تبدیل RGB به BGR با تابع cv2.cvtColor
– بررسی مستندات OpenCV برای انواع تبدیل رنگ تصویر

درس پنجم: یافتن چهره در تصویر
– معرفی مستندات face_recognition
– تابع face_locations و پارامترهای آن
– یافتن و گزارش یک یا چند چهره در تصویر
– ترسیم مستطیل در موقعیت چهره‌ها به کمک cv2
– نحوه تبدیل سیستم مختصات در هنگام ترسیم rectangle

درس ششم – تشخیص چهره در تصویر
– مرور کد و تمرین درس گذشته
– ثبت ویژگی‌های چهره با تابع face_encodings
– تشخیص چهره با compare_faces
– تشخیص تفاوت چهره‌ها با face_distance
– اندیشه پردازی برای کار بیشتر

درس هفتم – تشخیص چهره از روی فیلم یا دوربین
– ارسال چند تصویر آشنا برای یادگیری
– شروع پروژه تشخیص چهره از روی فیلم
– فراخوانی تصاویر از پوشه با ماژول os
– خواندن آرایه تصویر با imread به صورت خودکار
– خواندن نام تصاویر با متد splittext از ماژول os
– واکشی موقعیت چهره های آشنا
– واکشی encoding چهره های آشنا مبتنی بر یادگیری عمیق
– پردازش هر فریم از VideoCapture و یافتن چهره ها از ورودی وبکم
– جستجوی همزمان کدگذاری و موقعیت چهره ها با حلقه for و تابع zip
– کوچک کردن اندازه فریم برای سرعت پردازش با متد resize
– تعیین چهره های آشنا و محک دو مرحله ای برای یافتن نزدیک ترین چهره
– استفاده از argmin در numpy برای یافتن ایندکس کمترین distance
– درج مستطیل و نام چهره یافته شده در خروجی وبکم با متد imshow

درس هشتم: جمع بندی
– مرور آنچه آموختیم
– مسیری برای آموختن در آینده
– سپاس و پایان دوره

 

گام سوم – آموزش واقعیت افزوده

درس صفر – معرفی دوره
– نگاهی به پروژه این دوره
– نگاه سریع به مراحل آموزش
– پیشنیاز این آموزش

درس یکم: واقعیت افزوده چیست؟
– واقعیت افزوده یا AR چیست؟ معنی Augmented Reality
– واقعیت مجازی چیست؟ معنی Virtual Reality
– واقعیت ترکیبی چیست؟ معنی Mixed Reality
تفاوت واقعیت افزوده و واقعیت مجازی و واقعیت ترکیبی
– انواع واقعیت افزوده یا AR
– مفهوم Location-based AR
– مفهوم Recognition-based AR
– کاربرد Marker-based AR چیست؟
– کاربرد Markerless-based AR چیست؟

درس دوم: آماده‌سازی و راه‌اندازی پروژه
– نحوه تبدیل گوشی اندروید به وبکم
– معرفی فرآیند کار با DroidCam
– تعریف مساله مورد پردازش
– ایجاد پروژه و نصب کتابخانه opencv-python و numpy
– ایجاد اسکریپت پایتونی main
– وارد کردن تصویر و فیلم مورد استفاده
– خواندن وبکم و عکس و فیلم پروژه با OpenCV
– گرفتن اندازه عکس با تابع shape و اعمال آن روی فیلم با تابع resize

درس سوم: یافتن ویژگی‌های تصویر
– مفهوم feature چیست؟
– ویژگی یا feature در بینایی ماشین
– فرآیند یافتن ویژگی یا Feature Detection
– فرآیند توصیف ویژگی یا Feature Description
– الگوریتم های feature detection در OpenCV
– آشنایی با الگوریتم ORB یا Oriented FAST and Rotated BRIEF
– تعریف detector در OpenCV با تابع ORB_create
– تعریف keypoint و descriptions با تابع detectAndCompute
– ترسیم نقاط کلیدی یا ویژگی ها با تابع drawKeyPoints

درس چهارم: تطبیق ویژگی‌ها در دو تصویر
– گام های انطباق یا matching
– انواع matcher در OpenCV
– نحوه عملکرد Brute-Force Matcher یا BF
– نحوه عملکرد Fast Library for Approximate Nearest Neighbors
– تفاوت BF و FLANN در انطباق description ها
– تعریف BF با متد BFMathcer
– مفهوم پارامتر norm و پارامتر crosscheck
– تفاوت NORM_HAMMING با NORM_L1
– مفهوم crosscheck در مقایسه دو descriptor
– مقایسه و انطباق با متد match
– بازچینی فهرست مچ ها با تابع sorted در پایتون
– مفهوم lambda در پایتون و پارامتر key در تابع sorted
– ترسیم 10 انطباق یا match برتر در مقایسه دو تصویر
– انطباق دو تصویر به روش Ratio Test ابداعی D.Low
– انطباق با متد knnMatch و مقدار k=2
– انتخاب match های برتر با مقایسه دو Dmatch
– شی Dmatch و مفهوم distance و trainIdx و queyIdx
– ترسیم انطباق ها با تابع drawMatchesKnn و drawMatches
– رفع خطای size.width>0 && size.height>0 in function ‘cv::imshow’
– رفع خطای terminating async callback
– خطای (type == CV_32F || type == CV_8U) in function ‘cv::batchDistance’

درس پنجم: محاسبه ماتریس هم‌نگاری
– هموگرافی چیست ؟ Homography یا هم نگاری
– شرح مفهوم هموگرافی و Homography Matrix
– کاربردهای هموگرافی در واقعیت افزوده مبتنی بر مارکر و پرسپکتیو و پانوراما
– کاربرد تابع fingHomography در cv2 و OpenCV
– محاسبه مختصات نقاط match و استخراج از لیست keypoint
– کاربرد تابع reshape در numpy و استخراج مختصات نقطه
– کاربرد .pt در پایتون برای تبدیل آبجکت به استرینگ مختصاتی
– حفظ دقت نقاط با مدت float32 در نامپای
– مفهوم mask یا status در OpenCV و یافتن هموگرافی
– استخراج و بررسی ماتریس هموگرافی یا هم نگاری
– تفکیک نقاط outlier و inlier توسط لیست 0 و 1 در mask
– مفهوم الگوریتم RANSAC یا Random Sample Consensus
– مفهوم Projection Error و نقش آن در استخراج Outlier با Threshold

درس ششم: جانمایی تصویر به وسیله ماتریس هم‌نگاری
– استخراج نقاط مرجع مختصاتی تصویر Query
– تغییر شکل آرایه نقاط مرجع با تابع reshape برای ایجاد n بلوک 1 در 2
– تبدیل مختصات نقاط مرجع به نقاط مقصد با تابع perspectiveTransform
– کار با تابع polylines برای ترسیم polygone به دور ناحیه تصویر در مقصد

درس هفتم: افزودن یک تصویر مجازی در موقعیت آبجکت
– استفاده از متد set در cv2 برای انتقال فریم ویدیو به یک نقطه خاص
– ایجاد فریم warp شده با تابع cv2.warpPerspective
– ایجاد یک تصویر سیاه خالی با numpy.zeroes
– پر کردن فضای فریم در تصویر با cv2.fillpoly و ایجاد پنجره ماسک
– معکوس کردن مقادیر پر و خالی تصویر با تابع cv2.bitwise_not
– پر کردن فضای اطراف تصویر با ورودی وبکم و تابع cv2.bitwise_and و ماسک پنجره mask
– پر کردن فضای داخل فریم با فریم warp شده و تابع cv2.bitwise_or
– کپی کردن فریم برای از دست نرفتن فریم اصلی با تابع copy

درس هشتم: افزودن یک فیلم مجازی در موقعیت آبجکت
– ایجاد شمارشگر فریم و افزودن تک واحدی آن در حلقه while
– ایجاد متغیر منظقی شناسایی سوژه در فریم
– ثابت CAP_PROP_POS_FRAMES برای رفتن به موقعیت یک فریم
– ثابت CAP_PROP_FRAME_COUNT برای گرفتن کل فریم های فیلم
– مدیریت شرط ها برای پخش فیلم به محض شناسایی آبجکت

درس نهم: جمع بندی و اندیشه پردازی
– دستاوردهای این دوره
– نگاه به OPENCV فراتر از یک زبان
– اندیشه پردازی برای ادامه کار
– جمع بندی و توصیه‌های پایانی

گام چهارم – آموزش تشخیص اشیا با یولو

درس صفر – معرفی دوره
– نگاهی به پروژه این دوره
– نگاه سریع به مراحل آموزش
– پیشنیاز این آموزش

درس یکم – تشخیص اشیا چیست؟ یولو چیست؟
– تشخیص اشیا چیست؟
– معنی Object Detection در بینایی کامپیوتر
– الگوریتم YOLO چیست؟
– فرق الگوریتم YOLO و R-CNN
– الگوریتم یولو چطور کار می کند؟
– تاریخچه توسعه Yolo
– فرق YOLO v3 و YOLO v4
– کدام ورژن یولو بهتر است؟
– معرفی منابع مطالعاتی بیشتر

درس دوم – ایجاد پروژه و شروع کدنویسی
– معرفی ابزار لازم
– ایجاد پروژه و محیط مجازی
– نصب کتابخانه opencv-python و numpy
– دریافت ورودی وبکم و نمایش توسط cv2.imread
– توضیح پیرامون تبدیل گوشی اندروید به وبکم

درس سوم – معرفی و فراخوانی COCO Dataset
– این که کامپیوتر یاد بگیرد ببیند یعنی چه؟
– آشنایی با مجموعه داده کوکو از مایکروسافت
– فراخوانی نام کلاس های اشیا از دیتاست COCO
– استخراج نام کلاس ها در بلاک with با متدهای rstrip و split
– مفهوم استفاده از n در فراخوانی تابع rstrip و split
– نمایش نام و تعداد دسته‌ها برای اطمینان از تجزیه درست فایل

درس چهارم – فراخوانی معماری یولو
– معماری یولو به زبان ساده
– مفهوم Grid Cell در یولو
– مفهوم ماتریس 13 در 13 خروجی
– یولو چطور تعلیم می بیند؟
– مفهوم سه مقیاس پیش بینی یولو
– مفهوم yolov3-320 و yolov3-608 و yolov3-tiny
– دانلود وزن ها و تنظیمات شبکه های عصبی یولو
– نکته مهم در باره تنظیمات یولو در رزولوشن های مختلف

درس پنجم – متوسط دقت یا mAP چیست؟
– معنی IoU یا Intersection over Union چیست؟
– معنی True Positive و False Positive با یک مثال
– معنی True Negative و False Negative
– محاسبه دقت یا Precision تشخیص اشیا
– محاسبه فراخوانی یا Recall در تشخیص اشیا
– محاسبه Mean Harmonic یا پارامتر F1
– درک محاسبه mAP با یک مثال
– درک مفهوم AP یا Average precision for class
– محاسبه mAP به صورت انتگرالی
– محاسبه mAP بر اساس استاندارد COCO
– مفهوم mAP@0٫5 و مفهوم mAP@[0٫5:0٫95] – مفهوم AP small و AP medium و AP Large

درس ششم – ساخت دارک نت با ماژول شبکه‌های عصبی عمیق OpenCV
– ایجاد مدل دارک نت با تابع readNetFromDarknet
– تنظیم بک اند پردازشی با setPreferableBackend
– تنظیم مقصد پردازشی با setPreferableTarget
– مفهوم DNN_BACKEND_OPENCV و DNN_BACKEND_CUDA
– مفهوم DNN_TARGET_CPU و DNN_TARGET_OPENCL
– معرفی OpenVINO و کارکرد آن از شرکت اینتل (Intel)
– معرفی CUDA و کارکرد آن از شرکت انویدیا (NVIDIA)
– تفاوت پردازش یولو با CPU و GPU

درس هفتم – ورود تصویر به شبکه
– معنی Blob چیست؟
– مفهوم و کاربرد Blob Detection در OpenCV چیست؟
– معرفی تابع‌های استخراج Blob در ماژول dnn
– تفاوت blobFromImage و blobFromImages
– مفهوم scaleFactor در تابع blobFromImage
– مفهوم mean و size در تابع blobFromImage
– کاربرد Mean Subtraction در شبکه های عصبی عمیق مثل imageNet
– مفهوم پارامتر crop و ddepth در تابع blobFromImage
– تحلیل blob به کمک حلقه for و تابع enumerate در پایتون
– وارد کردن بلاب به شبکه دارک نت با تابع setInput

درس هشتم – دریافت خروجی شبکه
– آشنایی با لایه های خروجی‌های یولو
– آشنایی با متد forward در کلاس Net
– آشنایی با متد getUnconnectedOutLayersNames در کلاس Net
– مفهوم خروجی Small scale و Medium Scale و Large Scale در یولو
– اجرای شبکه و دریافت و تحلیل خروجی ها

درس نهم – نمایش اشیا روی تصویر
– رفتن به درون خروجی شبکه
– شناخت ساختار ماتریس خروجی Yolo
– استخراج نتایج پیش بینی ها (Bounding Box)
– انتخاب بهترین Bounding Box با بیشترین احتمال
– حذف باکس های هم‌پوشان به روش NMS
– کار روش Non-Max Suppression چیست؟
– تابع NMSBoxes برای حذف باکس های هم پوشان
– نمایش باکس اشیا با تابع rectangle
– نمایش عنوان کلاس اشیا با putText
– توجیه هندسی Bounding Box ها
– تبدیل مختصات نسبی به مطلق در باکس ها

درس دهم – جمع‌بندی و اندیشه‌پردازی
– راهی که آمدیم
– راهی که پیش رو داریم
– اندیشه‌پردازی برای استفاده از دانسته‌ها

گام پنجم – آموزش تشخیص اشیای اختصاصی

درس صفر: معرفی دوره
– ضرورت این آموزش
– پیشنیاز این آموزش
– نگاهی به مراحل کار
– ویژگی‌های این آموزش

درس یکم – تهیه عکس برای تعلیم YOLO
– یادآوری YOLO v3 تعلیم دیده با دیتاست کوکو
– انتخاب عکس آبجکت مورد نظر از موتور جستجو
– افزونه دریافت همه عکس های یک صفحه در Microsoft Edge
– افزونه دریافت همه عکس های یک صفحه در Google Chrome
– افزونه دریافت همه عکس های یک صفحه در Muzilla Firefox
– آشنایی با بانک تصاویر Open Image Dataset V6
– ایده هایی برای اشیای سفارشی ممکن برای تشخیص یولو
– تشخیص هویت فرد با یا تشخیص چهره با یولو
– تشخیص حیوانات خاص یا اشیای خاص با یولو
– توصیه پیرامون یافتن و دریافت عکس‌های مناسب

درس دوم – برچسب گذاری عکس برای یولو
– معنی Annotation چیست ؟
– آشنایی با مفهوم و انواع برچسب گذاری در بینایی کامپیوتر
– آشنایی با نرم افزار LalelIMG – نرم افزار رایگان و متن باز برچسب گذاری تصویر
– آموزش برچسب گذاری عکس با نرم افزار LabelIMG
– تعریف کلاس ها و مفهوم مختصات و شماره کلاس در فایل متنی برچسب عکس

درس سوم – استفاده از تصویرهای برچسب دار گوگل
– پایگاه تصاویر OID یا Open Images Dataset چیست ؟
– نحوه دانلود عکس از OID به صورت کلی
– آموزش دانلود عکس های یک یا چند دسته از OID
– آشنایی با OIDv4_Toolkit برای دانلود عکس از Open Images Dataset
– تبدیل سیستم برچسب گذاری OID به YOLO با استفاده از کد پایتونی

درس چهارم – ابزارشناسی : آی پایتون Ipython چیست؟
– مقدمه ای به ابزارهای کدنویسی
– رابطه آی پایتون با ژوپیتر نوت بوک با گوگل کولب
– IPython یا آی پایتون چیست ؟
– تاریخچه IPython
– آموزش نصب آی پایتون و شروع کار با آن
– دستور ipython برای دریافت و راه اندازی
– تفاوت IPython با Python در تکمیل کدها
– فرق آی پایتون با شل پایتون در فراخوانی فایل ها
– فرق آی پایتون و پایتون در راهنما یا help دستورات
– چرا shell برای زبان برنامه نویسی لازم است؟
– توضیح پایانی و مقدمه رابطه IPython و Jypyter

درس پنجم – ابزارشناسی: دفترچه ژوپیتر Jupyter چیست؟
– دونالد کنوث کیست؟
– گریزی به این که TeX چیست و LaTeX چیست ؟
– مفهوم Literate Programming چیست ؟
– معنی Notebook چیست و دفترچه محاسباتی مجازی چه می‌کند ؟
– دفترچه ژوپیتر Jupyter چیست ؟
– تاریخچه نوت بوک ژوپیتر
– آشنایی با پروژه و وبسایت Jupyter
– آشنایی با JupyterLab و Voila
– آموزش نصب Jupyter با بسته آناکوندا
– فرق Anaconda و miniconda
– راه اندازی ژوپیتر و نوشتن اولین کد و اجرا
– نوشتن متن با Markdown و نمایش نتیجه

درس ششم – ابزارشناسی: گوگل کولب چیست ؟
– معنی Colab و Google Colaboratory
– سرویس Colab چیست ؟
– انواع پردازشگر قابل استفاده در کولب
– شروع کار با Google Colab
– ایجاد یک نوت بوک ژوپیتر در کولب گوگل
– افزودن کد و متن با نوت بوک Colab
– امکان اشتراک گذاری نوت بوک در گیت هاب و گوگل درایو
– امکان فراخوانی فایل ها از Drive
– محدودیت VM یا ماشین مجازی (Virtual Machine) کولب
– محدودیت منابع پردازشی در کولب گوگل
– همراهی AIHub با Colab
– اتصال Colab به سیستم local با استفاده از وب سوکت
– جمع بندی توانایی های کولب گوگل

درس هفتم – مدیریت GPU با Nvidia-smi
– تولکیت nvidia-smi چیست ؟
– تحلیل خروجی دستور nvidia-smi
– ایجاد نوت بوک در کولب
– معنی تخصیص بار پردازشی GPU در NVIDIA
– تنظیم پردازشگر کولب روی GPU
– معنی GPU و Name و Temp و Pref در خروجی nvidia-smi
– بررسی اتصال به GPU در نوت بوک

درس هشتم – اتصال کولب به درایو گوگل
– آپلود فایل تصویرها در درایو گوگل
– ایجاد یک نوت بوک در کولب
– تنظیم GPU به عنوان پردازنده در Notebook Setting
– بررسی اتصال جی پی یو در لینوکس با دستور !nvidia-smi
– استفاده از API درایو در کولب با فراخوانی drve از google.colab
– اتصال به درایو در لینوکس با دستور mount از ماژول drive
– ساخت لینک نمادین Symbolic Link با دستور ln
– بررسی محتوای پوشه با دستور ls پس اتصال

درس نهم – نصب دارک نت و تنظیم اختصاصی آن
– دارک نت چیست ؟
– فریمورک شبکه عصبی چیست؟
– زبان CUDA چیست ؟
– آموزش نصب دارک نت با کلون کردن گیت هاب
– معرفی دارک نت اصلاح شده یولو 4
– کلون دارک نت با استفاده از مخزن AlexeyAB
– تنظیم دارک نت با فایل Makefile
– استفاده از GPU با تنظیم GPU=1 در فایل دارک نت
– استفاده از OPENCV با تنظیم آن در دارک نت
– شتاب بخشی به پردازش GPU با فعال کردن کتابخانه CUDNN
– ویرایش استریمی فایل با دستور sed و ذخیره در خود فایل با فلگ -i
– کامپایل مخزن با دستور make و معنی آن

درس دهم – تنظیم پارامترهای یادگیری یولو
– نحوه یادگیری YOLO چگونه است؟
– مفهوم Stride پیش فرض 32 یولو
– معنی Batch در یادگیری عمیق و YOLO
– معنی Iteration و ارتباط آن با Batch Size
– تفاوت Number of Batches و Batch Size
– مفهوم Epoch یا دوره یادگیری با طرح مثال
– فرق Iteration و Epoch
– معنی Max_batches در یولو و تاثیر آن روی تعداد دور و تکرار یادگیری
– معنی Subdivision و Mini_batches در یولو
– معنی Filters و Classes و State در یولو
– دستورالعمل یادگیری سفارشی در Yolo V4
– ایجاد یک کپی از فایل تنظیمات یولو نسخه 3
– اعمال تنظیمات شخصی در یولو با دستور sed در لینوکس
– بررسی خروجی و تنظیمات شخصی سازی شده

درس یازدهم – ایجاد فایل‌های Names و Data در دارک نت
– ساخت فایل obj.names و نوشتن نام کلاس ها با دستور echo
– فرق echo و echo -e در خوانش کاراکترهای Escape
– ساخت فایل obj.data و نوشتن مسیر Train و Test با دستور Echo
– نوشتن مسیر خوانش نام کلاس های اشیا از obj.names با دستور اکو
– ایجاد مسیر ذخیره سازی وزن ها پس از تعلیم در درایو گوگل

درس دوازدهم – فراخوانی دیتاست عکس ها در پروژه
– ایجاد یک پوشه با دستور mkdir
– اکسترکت فایل زیپ عکس ها با دستور unzip
– استفاده از ماژول glob برای استخراج مسیر عکس ها
– درج نام عکس ها در فایل train.txt

درس سیزدهم – دانلود وزن های آماده و آغاز فرآیند آموزش شبکه
– مفهوم یادگیری انتقالی یا Transfer Learning
– دریافت فایل وزن های پیش تعلم یافته یولو با دستور wget
– آموزش دارک نت با دستور darknet.exe یا ./darknet در لینوکس
– آشنایی با پارامترهای دستور darknet برای تعلیم یا Training یولو
– ذخیره backup وزن ها پس از 100 و 1000 و پایان تکرارها در درایو گوگل

درس چهاردهم – آزمایش کیفیت یادگیری یولو
– آزمایش وزن تعلیم یافته دیتاست اختصاصی در پایتون و OpenCV
– نکته هایی برای نحوه آگاهی از کافی بودن تکرارها
– پایان دادن به آموزش بر اساس map یا avg
– نکته هایی برای بهبود تشخیص اشیا یا فرآیند آموزش شبکه

درس پانزدهم – جمع بندی و اندیشه پردازی
– دستاوردهای این آموزش
– امکان استفاده از این روش برای YOLO v4
– امکان تشخیص چند آبجکت اختصاصی با این روش
– بهینه سازی و کارهای آینده

نظرات (49)

49 دیدگاه برای آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع

  1. امیر

    سلام
    من یه پروژه ی تشخیص حرکت نوشتم که کوچیک ترین حرکت ها رو هم تشخیص میده ولی من نمیخوام که شب و روز و تاریکی و روشنایی رو تشخیص بده. ممنون میشم راهنمایی کنید 🙂

  2. farxam.kk (خریدار محصول)

    با سلام وقت بخیر من دوتا مشکل دارم
    ۱- همینطوری که فرمودین برای نصب dlib در ویندوز نیاز به ++c بود ولی برای مک و لینوکس همچنان dlib نصب نمیشه و ارور میده. قبل نصب cmake هم نصب کردم
    note: This error originates from a subprocess, and is likely not a problem with pip.
    ERROR: Failed building wheel for dlib
    Failed to build dlib
    ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based projects
    ۲- مشکل بعدی در ران کردن yolo و ساخت دارک نت بود که کد در بخش import کردن کانفیگ ها ارور میده

    • مصطفی آصفی

      سلام وقت بخیر. در مورد مشکل اولتون ممکنه مشکل از نسخه پایتون باشه که مثلا مطابق این لینک (+) شاید بشه حل کرد. باز خود متن خطا رو گوگل کنید و راهکارهای دیگه رو بررسی کنید.
      در مورد مشکل دومتون هم باید متن خطایی که دریافت می کنید رو بفرستین که بهتر بتونیم هم فکری کنیم.

  3. نیلوفر (خریدار محصول)

    سلام اقای مهندس من برای پروژه م دارم با کیت بینایی ماشین oak کار میکنم میخواستم بدونم شما با این کیت دیتا ست سفارشی تعلیم دادین؟ میتونید کمکم کنید؟

    • مصطفی آصفی

      سلام وقت بخیر. نه متاسفانه من تجربه کار با این ابزار رو ندارم.

  4. fscentergerami@gmail.com (خریدار محصول)

    سلام جناب دکتر آصفی خسته نباشید
    دانشجوی دورتون هستم ، کدتون رو کپی کردم
    کامنت قبلی رو اصلاح میکنم به این :
    هم ویرژوال استودیو هم پای چارم ارور زیر را میدهند :
    Traceback (most recent call last):
    File “C:\Users\PMG\PycharmProjects\pythonProject6\first_yolo.py”, line 69, in
    findObjects(output, frame)
    File “C:\Users\PMG\PycharmProjects\pythonProject6\first_yolo.py”, line 46, in findObjects
    i = i[0]
    ~^^^
    IndexError: invalid index to scalar variable.

    چطور میتوانیم درستش کنم ؟

    • مصطفی آصفی

      سلام وقت بخیر. لطفا فایل HB-OpenCv-Yolo-02-Update2.zip (آپدیت درس ۲ از فصل چهارم که بحث یولو هست) رو مطالعه کنید. این خطا مربوط به پای چارم نیست. به دلیل روزآمدی نسخه cv2 هست. داخل اون فایل تو متن پی دی اف و تکست توضیح دادم.

  5. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض سلام و ادب
    ممنونم از توجه هميشگي شما
    ميشه لطف كنيد و بزرگواري بفرماييد و بگيد به نظر شما چرا توي محيط spyder ، هنگام اجراي كد output = net.forward(out_names) ، خطا مي ده و ميگه كه من نميتونم فايل شبكه رو باز كنم؟

    • مصطفی آصفی

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

  6. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض سلام مجدد خدمت جناب آصفي عزيز و همه مخاطبيني كه با علاقه اين مطالب رو دنبال ميكنن
    ضمن تشكر از پاسخگويي شما
    عرض كنم خدمتتون كه من هر دو مشكل رو حل كردم. هم مشكل مربوط به ليبلينگ ديتا ست خودم رو و هم مشكل مربوط به توقف الگوريتم لرنينگ روي تكرار صدم.
    خب با اين فرايند فايل مربوط به آخرين ضرايب يولو، در گوگل درايو من ذخير شد. با اين عناوين:
    1 – yolov3_training_last.weights : كه مربوط به هر 100 تكرار هستش
    2 – yolov3_training_1000.weights : كه مربوط به هر 1000 تكرار هستش
    منتهي براي ادامه مسير دو تا مشكل پيش مياد:
    1 – مشكل اول اينه كه توي محيط spyder وقتي مي خوام براي detect كردن object هاي موجود در تصاوير جديد، از آخرين ورژن ضرايب ذخيره شده در گوگل درايو استفاده كنم، error مي ده و ميگه كه من نميتونم فايل شبكه رو باز كنم با يه چنين مضموني : cv2.dnn.readnetfromdarknet(yolov3.cfg yolov3.weights)
    در واقع اين error مربوط به اين بخش از كد هستش : output = net.forward(out_names)
    كاري كه من كردم اين بود كه فايل yolov3_training_1000.weights رو توي درايو لوكال خودم توي يه فولدري در كنار فايل كد پايتون و ساير فايل هاي جانبي مانند Makefile، obj.data و obj.names قرار دادم. نميدونم چرا ولي حس ميكنم اين مشكل از spyder هست. چونكه وقتي روزگذشته اين فرايند رو انجام ميدادم اون error اي كه بالا بهش اشاره كردم رو نشون ميداد. ولي امروز حتي اين error رو هم نشون نميده و فقط كلمه error رو مي نويسه و فقط به شماره خطي كه output = net.forward(out_names) نوشته شده اشاره مي كنه.
    توي اين مشكل سوال من اين هست كه آيا ممكنه با pycharm اين مشكل حل بشه يا ممكنه اصلا ربطي نداشته باشه؟
    2 – مشكل دوم اينه كه توي محيط google colab، بنا به دلايلي، فرايند training يولو توي مرحله 1002 متوقف شد ولبي خب خوشبختانه همونطور كه اشاره كردم فايل هاي ضرايب 100 و 1000 توي گوگل درايو ذخيره شده. مشكل اينجاست كه وقتي مي خوام براي ادامه training از فايل yolov3_training_1000.weights استفاده كنم بازهم error ميده كه نميتونم اين فايل رو باز كنم. من متن دقيق اين پيام رو اينجا براتون مي ذارم.
    اين متن دستوري هست كه استفاده كردم:
    !./darknet detector train data/obj.data cfg/yolov3_training.cfg/my_yolo_drive/YOLOv3/yolov3_training_1000.weigts -dont_show
    اين متن پياميه كه به من ميده:
    CUDA-version: 11080 (12000), cuDNN: 8.7.0, GPU count: 1
    OpenCV version: 4.2.0
    yolov3_training_1000
    Couldn’t open file: cfg/yolov3_training.cfg/my_yolo_drive/YOLOv3/yolov3_training_1000.weigts
    در انتها اشاره كنم كه ما مي تونيم اگر شما صلاح بدونيد يه دوره آموزشي جامع رو در محل شركت ما برگزار كنيم. اين شماره تماس من هست. ممنون ميشم لطف كنيد اگر صلاح ميدونيد تماس بگيريد.

    • مصطفی آصفی

      سلام به شما. ممنون از بازخورد قبلیتون. به نظر میاد دستور رو اشتباه نوشتین قبل از /my_yolo_drive/ باید فاصله بگذارین. خطا رو دقت کنید. داره میگه من اون فایل با اون نشانی یکجا که نوشتی رو نمی تونم پیدا کنم.

      پی‌نوشت: متاسفانه در حال حاضر امکان برگزاری دوره اختصاصی رو ندارم.

  7. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض درود مجدد
    بسيار سپاسگزارم از پاسخگويي شما
    در خصوص سوالاتي كه مطرح كرديد سعي ميكنم همه را به ترتيب پاسخ دهم:

    من اين مراحل را هم بر روي پروژه خودمون و هم بر روي ديتا ست خودم اجرا كردم. در هر دو حالت، در مرحله 100 متوقف ميشه. منتهي يك تفاوت بين دو تا ديتاست وجود داره. زمانيكه پروژه خودمون (همرويش) رو اجرا ميكنم، توي مرحله 100 متوقف ميشه و پيغامهاي زير رو ميده:
    v3 (mse loss, Normalizer: (iou: 0.75, obj: 1.00, cls: 1.00) Region 106 Avg (IOU: 0.084366), count: 1, class_loss = 1590.769897, iou_loss = 3.971069, total_loss = 1594.740967
    total_bbox = 19679, rewritten_bbox = 0.000000 %

    100: 767.510559, 768.262085 avg loss, 0.000000 rate, 7.046893 seconds, 6400 images, 1065.632488 hours left
    Saving weights to /my_yolo_drive/yolov3/yolov3_training_last.weights
    Couldn’t open file: /my_yolo_drive/yolov3/yolov3_training_last.weights

    يه توضيحي درمورد ديتا ست خودم بدم. در اين پروژه قراره من هم مثل پروژه خودمون، دو نوع شيئ رو توي تصاوير detect كنم. منتهي حدود 120 تا object توي هر تصوير هست(مثل اينكه بگيم 120 نفر ماسك زده و ماسك نزده توي هر تصوير هست). كاري كه من كردم اين بود كه كلا 6 تا تصوير رو بعنوان ورودي به يولو دادم ولي در هر تصوير دور هر object، يك كادر كشيدم. درواقع در هر تصوير من حدود 120 تا object رو مشخص كردم. پس از طي مرحله به مرحله كد شما روي ديتاي خودم، اين پيغام مشاهده مي شه:
    Wrong annotation: class_id = 15. But class_id should be [from 0 to 1], file: data/obj/11-03-2023 06-50-29.txt
    Saving weights to /my_yolo_drive/yolov3/yolov3_training_last.weights
    Couldn’t open file: /my_yolo_drive/yolov3/yolov3_training_last.weights
    درمورد Wrong annotation خب ميدونم كه اين خطا بخاطر اين هست كه من دوتا كلاس رو ليبل زدم منتهي چون نرم افزار labelimage بصورت پيشفرض 15 تا كلاس در خودش داره، بنابراين هر object جديدي كه براش تعريف ميكنيم از ليبل 15 شماره گذاري ميكنه.

    در نهایت اینو امتحان نكردم که هر ۱۰۰ یا ۸۰ دوره رو ذخیره بشه. ميشه لطفا راهنمايي كنيد چطوري اين كارو كنم؟
    ممنونم از همه محبت هاتون

    • مصطفی آصفی

      سلام و ممنون از توضیح کاملتون. خب لیبل رو که خودتون اشاره کردین ایراد از شیوه لیبل گذاریتونه و خیلی ممنون که توضیح دادین و برای دوستان دیگه نظرتون رو می خونن تجربه می شه.
      در مورد مشکل اصلی که بهش برمی خورین با توجه به آخر پیامتون نوشتین ذخیره سازی رو امتحان نکردین من گمانم می کنم مشکل همینه که شما درس ۱۳ رو و بحث ذخیره سازی و ترنسفر لرنینگ رو که در اون درس اشاره شده با دقت ندیدین. چون خطایی هم دارید دریافت می کنید داره میگه «Couldn’t open file» نمی تونم فایل وزن ذخیره شده رو برای ادامه یادگیری پیدا کنم.

      ببینید تو درس ۱۳ تو دقیقه ۰۵:۳۱ تو مستندات و تو دقیقه ۰۷:۵۲ هم در عمل نشون دادیم که هر ۱۰۰ تکرار وزن های با پسوند last تو درایو ذخیره میشن.
      تو فیلم دقیقه ۰۸:۲۵ هم توضیح میدم که بار اول دستور بالایی و بعد دستور پایینی رو بزنید تا اول وزن های اولیه ۱۰۰ تکرار ذخیره بشن و از اون به بعد کار با خوندن وزن ها از درایو ادامه پیدا کنه.
      لطفا این رو با دقت اجرا و نتیجه رو هم اعلام بفرمایید.

  8. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض سلام، ادب و احترام خدمت جناب آصفي عزيز و همه همكاران محترمتون در مجموعه همرويش
    ضمن تشكر بابت همه زحماتتون و ارائه اين آموزش خوب
    اميدوارم خدا بهتون سلامتي و بركت بده . دوره خيلي زيبايي بود و جناب آصفي عزيز هم خيلي با حوصله و شفاف تدريس ميكنن. به همين خاطر به دوستان علاقه مند، توصيه ميكنم اين بسته جامع رو تهيه كنند.
    من بسته جامع آموزشي “آموزش بینایی کامپیوتر با پایتون و OpenCV ” رو ديدم و كدها رو گام به گام زدم. نكته اينجاست كه در مورد تعلیم شبکه عصبی یولو و تشخیص اشیای اختصاصی، اگر اشتباه نكنم شما 6000 epoch رو در نظر گرفتيد به گونه اي كه هر 1000 epoch ، مي بايست فايل مربوط به آخرين ضرايب پارامترهاي يولو، توي گوگل درايو ذخيره بشه. منتهي متاسفانه توي epoch صدم متوقف ميشه و طبيعتا هيچ فايلي هم اونجا توي گوگل درايو ذخيره نميشه كه من بتونم از شبكه تعليم داده شده براي تشخيص اشيائ سفارشي مورد نظر خودم استفاده كنم.
    ميشه خواهش كنم لطف كنيد و منو راهنمايي كنيد. توي مسير پروژه خودم متوقف شدم و اگر اين ايراد حل بشه، ميتونم پروژمو تموم كنم. ممنون ميشم راهنمايي بفرماييد.

    • مصطفی آصفی

      سلام و سپاس برای ابزار لطف و انرژی خوبتون. شما روی اجرای همین پروژه خودمون با همین حجم روی دوره ۱۰۰ متوقف میشین یا دیتاست بزرگ تری دارید؟ اگه دیتاست خودتون رو دارید ممکنه دیتاست شما بزرگ باشه و هر دوره اون زیاد طول بکشه. یادتون باشه که منابع کولب محدود هستن. اگه نه و روی پروژه خودمون مشکل دارین سوال بعدم اینه که خطایی هم دریافت می کنید؟ اگه بله ممنون میشم متن انگلیسی خطا رو اینجا بفرستین. در نهایت آیا اینو امتحان کردین که هر ۱۰۰ یا ۸۰ دوره رو ذخیره کنید؟

  9. seyed reza (خریدار محصول)

    عرض ادب خدمت استاد گرانقدر
    استاد برای نصب dlib مشکل خوردم هر چی سرچ می کنم چیزی نمی تونم پیدا کنم

    note: This error originates from a subprocess, and is likely not a problem with pip.
    error: legacy-install-failure

    Encountered error while trying to install package.

    dlib

    note: This is an issue with the package mentioned above, not pip.
    hint: See above for output from the failure.
    اگر امکان داره کمکم کنید

    • مصطفی آصفی

      سلام وقت بخیر. اگه ممکنه محیط مجازی خودتون رو با نسخه متفاوتی از پایتون بسازید و همین طور پیپ رو هم به نسخه پایین تری ببرید مثلا
      pip install pip==21.3.1
      با نسخه های پایین تر باید مشکلتون حل بشه. اصولا خوبیه محیط مجازی همینه که وقتی کتابخونه ها رشد می کنن و با نسخه های جدید پایتون ناسازگار، بتونید تو یه محیط ایزوله پایتون و پیپ متفاوتی داشته باشین. نتیجه رو لطفا مجدد گزارش کنید.
      برای ساختن محیط مجازی با پایتون متفاوت ساده ترین کار اینه که نسخه متفاوتی از پایتون رو روی سیستم نصب و به عنوان پایتون پیش فرض تنظیم کنید. بعد با اون پایتون یه محیط مجازی بسازین. بعدها چون یه کپی از اون پایتون تو محیط مجازی شما وجود داره، حتی اگه خود اون نسخه از پایتون رو هم از سیستم پاک کنید می تونید وارد محیط مجازی بشین و با همون نسخه پایتون که تو محیط مجازی وجود داره محیط مجازی های دیگه ای جاهای دیگه بسازین. خوب این متنو برای آینده به خاطر بسپارین چون ترفند ساده ولی کارآمدیه.

  10. امینه ایزی (خریدار محصول)

    سلام استاد
    وقت شما بخیر
    یه راهنمایی می خواستم ازتون
    مقاله ای که روش yolo و روش faster Rcnn رو معرفی کرده باشه و جزییات کار رو توضیحات داده باشه
    خیلی ممنون میشم بهم معرفی کنید
    با تشکر از لطف های بی دریغ شما🌹🌹🌹

  11. رحمت اله رسولی (خریدار محصول)

    عرض ادب و احترام خدمت استاد..من در ادامه آموزش opencv برای نصب dlibe در pycharm مشکل بزرگی خوردم و نتونستم تو محیط ویندوز نصب کنم و دو سه روز درگیر شدم اگه ممکنه راهنمایی کنید …

    • مصطفی آصفی

      سلام به شما. لطفا خطایی که دریافت می کنید یا جزيیات مشکلتون رو بیشتر توضیح بدین که بتونم کمک کنم.

  12. امینه ایزی (خریدار محصول)

    اگر بخواهییم این برنامه تشخیص اشیای سفارشی بدون gpu کار کنه، میشه؟
    چه تغییراتی لازم داره؟

    • مصطفی آصفی

      بله کار می کنه مشکلی نیست. سلول اول نیازی نیست. سلول دوم هم به جای اتصال به درایو گوگل به پوشه ای تو سیستم خودتون cd می کنید. باقی خط ها هم اگه تو ترمینال هستید می تونید بدون ! در ابتدای اون ها خط به خط اجرا کنید.

  13. امینه ایزی (خریدار محصول)

    سلام
    و عرض 1وزش به خاطر سوالات زیادم
    استاد اصفی لطف می کنید و در مورد دستور
    from IPython.core.interactiveshell import import_item
    کمی برامون توضیح بدین
    فک می کنم این خط کد قلا در اموزش نبود ولی در برنامه ای که در گیت هاب گذاشته بودین وجود داشت
    برای پروژه تشخیص اشیای سفارشی
    ممنونم از لطف تون

    • مصطفی آصفی

      سلام وقت بخیر. نه خواهش می کنم مشکلی نیست. این کلا بیس آی پایتون هست. منتها این کدی که گفتید ما اصلا نداشتیم. مخزن (+) رو هم برای اطمینان بررسی کردم. لطفا دقیق تر بهم بگید تو کدوم درس و دقیقه هست؟

  14. امینه ایزی (خریدار محصول)

    سلام وسپاس مجدد
    فایل images رو پیدا کردم

    • مصطفی آصفی

      سلام خیلی ممنونم که اطلاع دادین.

  15. امینه ایزی (خریدار محصول)

    سلام استاد آصفی عزیز
    در بسته پنجم فایل دیتای استفاده شده که عکس افراد ماسک دار و بدون ماسک بود رو نمی تونم پیدا کنم
    لینک هایی رو هم به درس ها پیوست کرده بودین رو بررسی کردم ولی متاسفانه نتونستم پیداش کنم
    لطفا راهنمایی بفرمایید
    عمرتان با عزت

  16. رحمت الله رسولی (خریدار محصول)

    با عرض سلام و احترام خدمت استاد…من اموزش خیلی خوب و کاربردی شما رو تهیه کردم…متاسفانه بعد از نصب opencv در pycharm بعد از import cv2 متدهای مریوط به cv2 نمایش داده نمی شود ولی بعد از نایپ صحیح عملکرد خود را دارند

    • مصطفی آصفی

      سلام وقت بخیر و ممنون از محبت شما. ممکنه پای چارم شما محیط مجازیتون رو خوب شناسایی نمی کنه. یه ایراد رایجه. این لینک (+) رو ببینید.

      پی‌نوشت: توصیه می کنم این آموزش رایگان وی اس کد (+) رو ببینید شاید این محیط توسعه براتون بهتر باشه.

  17. رحمت اله رسولی (خریدار محصول)

    عرض ادب و احترام خدمت استاد….من آموزش خوب و کاربردی شما را تهیه کردم .. متاسفانه در هنگام نصب open cv در pycharm بعد از نصب متدها بعد از import cv2 بعد از تایپ اول اسم متدها لیست متدها نمایش داده نمی شود ولی متدها بعد از کد نویسی دستی عملکرد خود را دارند ولی لیست و توضیح متدها به برنامه نویس نمایش داده نمی شود ….ممنون و سپاسگزارم

    • مصطفی آصفی

      سلام وقت بخیر و ممنون از محبت شما. ممکنه پای چارم شما محیط مجازیتون رو خوب شناسایی نمی کنه. یه ایراد رایجه. این لینک (+) رو ببینید.

      پی‌نوشت: توصیه می کنم این آموزش رایگان وی اس کد (+) رو ببینید شاید این محیط توسعه براتون بهتر باشه.

  18. امینه ایزی (خریدار محصول)

    با سلام و احترام
    اوقات تون بخیر
    ان شالله زنده و سلامت باشین و بازهم از این دست اموزش های بی نظیر برامون بزارید

    من در استفاده از برنامه labelImg یه مشکلی دارم
    وقتی یک عکس رو برچسب گذاری می کنم، اعداد و مختصاتی رو که باید برای هرشی در یک فایل txt بنویسه همه رو در یک خط می نویسه و فقط دسته مربوط به شی اول رو می زاره
    مثلا اگه 3 نفر ماسک دار و 1 بدون ماسک هستن فقط عدد 1 و 16 عدد دیگه رو همگی در یک خط نشون نمیده و مختصات هرشی رو در یک خط جدید چاپ نمی کنه
    باید چی کارش کنم
    با تشکر از پاسخگویی و راهنمایی شما

    • مصطفی آصفی

      سلام وقت بخیر و ممنون از انرژی خوبتون. ممکنه به برنامه ای که باهاش فایل رو باز می کنید ربط داشته باشه مثل این ایشیو (+) یا سیستم عامل که مثلا میشه روی لینوکس مجازی امتحان کرد. چون ممکنه از موارد متنوعی باشه توصیه می کنم مثلا با این واژه ها گوگل کنید:
      labels same line labelimg

      پی‌نوشت: در مورد ادامه راه که گفتین توصیه می کنم آموزش بینایی کامپیوتر با تنسورفلو (+) در ادامه این بسته ببینید تا دید عمیق تری پیدا کنید. فصل اولش تو این لحظه کامل شده و فصل بعدی که کانولوشن هست در حال ضبطه.

  19. علی (خریدار محصول)

    خیلی عالی و با حوصله تدریس میکنند. خرید این دوره رو پیشنهاد میکنم

    • مصطفی آصفی

      سلام به شما و خیلی ممنونم از انرژی خوبی که فرستادین. خوشحالم که دوره رو مفید دیدین. سعی کنید در ادامه یکی از پروژه ها رو انتخاب و تا مد پروداکشن روی یک مساله واقعی پیش ببرین و در سطح آموزش نمونید. مثلا سعی کنید یک اپلیکیشن کیوی (+) درست کنید که فریم های ورودی رو از دوربین می گیره و بعد واقعیت افزوده رو اعمال می کنه. مثلا اپلیکیشن آلبوم عروسی که اگه روی عکس خاصی گرفته بشه فیلم خاصی از اون لحظه از سرور فراخوانی و نمایش داده میشه. یک آلبوم پویا.

  20. دانشجو (خریدار محصول)

    سلام ممنون از آموزش خوبتون
    توی گام پنجم – آموزش تشخیص اشیای اختصاصی توی ویدیو سوم گفتید که فایل تبدیل لیبل به فرمت yolo رو پیوست میکنید ولی من پیداش نمیکنم
    ممنون میشم اگه راهنمایی کنید

    • مصطفی آصفی

      سلام سلامت باشید. منظور همون فایل تبدیل کننده و مسیر گیت هاب اون هست که به درس ۲ پیوست شدن و تو فایل زیپ دریافتی اون درس موجود هستن.

  21. یک ایرانی

    سلام خسته نباشید بنده می خوام از این فناوری در پهپاد برای پروژه ای دانشگاهی استفاده کنم.بنظرتون حدود 60ساعت تا قبل از بهمن1401 وقت برای آموزش دوره شما و مطالب بیشتری از این قبیل بینایی کامپیوتر بزارم میتونم خودم برسونم برای استفاده اش در پهپاد یانه؟؟؟(البته قصد دارم حدود 60ساعتم برای یادگیری ماشین بزارم)(پایتون مقداری کار کرده ام و مقداری دوره دیده ام) ممنون میشم راهنمایی ام کنید و اگر نکاتی میدونید بگید .خداخیرتان بده

    • مصطفی آصفی

      سلام به شما. البته نمیشه با این سطح از شناخت دقیق نظر داد ولی گمان نمی کنم با صرف یان مدت زمان شدنی باشه. پیاده سازی این پروژه از یک نگاه کلی این مراحل رو داره:
      ۱- مساله باید خوب تعریف بشه. قراره که تو عکس ها چه پردازشی انجام بشه؟ تشخیص شی؟ تشخیص رنگ؟ سگمنت بندی؟ بر اساس نوع مساله باید آموزش یا آموزش های مورد نظرتون رو انتخاب و تماشا و تمرین کنید.
      ۲- از روی آموزش هایی که دیدید پروژه خودتون رو روی دسکتاپ تعریف و با پایتون کدنویسی کنید. طوری که عکس ها رو تو دسکتاپ بگیره و پردازش کنه و نتیجه رو گزارش کنه.
      ۳- پروتوتایپی که کدنویسی کردین رو بیارید روی سخت افزار پهباد خودتون پیاده سازی کنید. تو این مرحله باید مشخص بشه که پردازش عکس ها قراره به چه شکلی انجام بشه و پروژه چقدر به زمان اجرا حساسه.
      ۳-۱- آیا پردازش عکس ها تو خود پهباد قراره انجام بشه و پهباد بر اساس نتیجه پردازش کاری انجام بده و این باید سریع (مثلا در ۳۰۰ میلی ثانیه) هم اتفاق بیفته؟ در این صورت مهم ترین چالشی که دارید سرعته! کدها باید سریع پردازش بشن. کدهاتون باید به کدهای زبان سریع تری مثل سی تبدیل بشن و سخت افزار مناسبی هم برای پردازش کدها و اجرای الگوریتم در لحظه پرواز (زمان اجرا) انتخاب کنید. چرا پس اول با پایتون کد می زنیم؟ برای ساخت پروتوتایپ در سریع ترین زمان ممکن.
      ۳-۲- آیا سرعت اجرا مهم نیست و فقط پروتوتایپ کافیه؟ یعنی مثلا همین که یه پهباد یا کوادکوپتر بسازید که عکسی بگیره و بعد ازن عکس پردازش بشه (مثلا ظرف ۲۰ ثانیه) و بعد عکس العمل صادر بشه. در این صورت چالش تبدیل کد و سخت افزار ساده تر میشه. احتمالا می تونید با بردهای آردوینو (یا بردهای گرون تر رزبری پای) کوادکوپتر خودتون رو بسازید و بعد هم با اتصال پایتون به آردوینو پروتوتایپ پایتونی که تو گام ۲ ساخته بودین (و مثلا شبکه تعلیم یافته خودتون) رو روی عکس های ماژول دوربین آردوینو پردازش و نتیجه رو گزارش کنید. تو این حالت در واقع شما صرفا ایده خودتون رو نمایش میدین و تا عمل به صورت میدانی اون مراحل ۳-۱ رو پیش رو داره که ممکنه تو مقطع تحصیلی بعدی یا پروژه بعدی روش کار کنید.

      پی‌نوشت: حتی اگه گام ۳ شما اجرای پروتوتایپی با یک برد آردوینو باشه باز هم با ۶۰ ساعت پروزه جمع نمیشه. ۶۰ ساعت یعنی کار فشرده یک هفته. اما اگه هر هفته این زمان رو تا بهمن صرف کنید شاید شدنی باشه. باز به پروژه بستگی داره و دانش و تجربه خودتون که بنده نمی تونم ارزیابی کنم و با توضیحی که دادم باید خودتون بسنجید.

  22. سبحان محمدی (خریدار محصول)

    سلام خواستم ببینم این دوره با کراس ندریس شده؟ شما فرمودین تنسرفلو اما دقیقا به کراس اشاره نکردید

    • مصطفی آصفی

      سلام به شما. خیر ما اینجا با کراس یا تنسورفلو کار نکردیم. از کتابخانه OpenCV و فراخوانی شبکه های تعلیم دیده استفاده کردیم. پیشنهاد می کنم بخش توضیحات رو دقیق تر مطالعه کنید.

      پی‌نوشت: برای آموزش بینایی کامپیوتر با تنسورفلو این دوره (+) در هم رویش آغاز شده.

  23. امینه ایزی (خریدار محصول)

    با سلام و احترام خدمت استاد اصفی گرامی
    واقعا ممنونم بابت این اموزش های دقیق و روان
    واقعا لذت می برم از نحوه تدریس شما

    سوال داشتم…
    شما این اموزش ها رو در pychrm اموزش میدین، ایا میشه در colab هم از همین دستورات استفاده کرد؟؟

    • مصطفی آصفی

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

  24. وبگرد

    سلام
    وقت بخیر

    آیا در این دوره، ناحیه بندی تصاویر (segmentation) آموزش داده شده؟
    مورد بعدی اینکه، من میخوام روی تصاویر هوایی، پوشش گیاهی درختان رو پیدا کنم و دورش چند ضلعی رسم کنم.
    آیا این آموزش مناسب این کار هست؟
    آیا پیشنهاد دیگه ای دارید؟

    تشکر

    • روابط عمومی هم رویش

      با سلام. همراه گرامی دوره ها دارای ریز سرفصل هست و ریز به ریز مسائل گفته شده در بخش سرفصل ها گفته شده. در بسته مورد نظر شما 5 بسته مجزا وجود دارد که روی عنوان هر بسته که در ابتدای توضیحات دوره ذکر شده اند کلیک فرمایید هر یک دارای درس پیشنمایش و ریز سرفصل می باشند. در خصوص سوال تخصصی شما پاسخ اینکه : خیر به صورت مستقیم “segmentation” آموزش داده نشده و این بسته به شکل مستقیم نمی تواند به موضوع مورد اشاره کمک نماید

    • مصطفی آصفی

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

  25. amir.karimi

    سلام خسته نباشید قسم میخورم بهتر از آموزش های شما ندیدم.
    من آموزش شبکه عصبی رو کاملا دیدم و مسلط شدم میخواستم ببینم این بسته جامع برایم مناسبه؟
    هدفم هوش مصنوعی است لطفا راهنمایی کنید.
    گر میشه نظر واقعی خودتون رو بگید و راهنمایی کنید.

  26. علی اشرفی (خریدار محصول)

    جناب آقای آصفی
    عذر میخوام میخواستم بدونم دوره ای در خصوص نحوه ارسال آنلاین خروجی های opencv دارید که من تهیه کنم ؟

    • مصطفی آصفی

      سلام مجدد. دوره مستقیم برای این موضوع نه ولی جداگانه اگه آموزش یه فریمورک وب اپ پایتون مثل جنگو رو تو هم رویش دیده باشید می تونید همین کدهای پردازش تصویر رو تو همون وب اپ تعریف کنید تا مثلا وقتی کاربر عکسی رو آپلود می کنه اشیا در اون تشخیص داده بشن و ذخیره بشن.
      آموزش جنگو از صفر (+)
      اگه با معماری جنگو آشنا بشید می تونید این دو رو ترکیب کنید. برای مثال این پست ترکیب جنگو و یولو ۵ (+) رو ببینید.

  27. علی اشرفی (خریدار محصول)

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

    • مصطفی آصفی

      سلام وقتتون بخیر. متوجه شدم. برای تشخیص چند شی به کمک یولو توصیه می کنم گوگل کنید «multiple object detection yolo». من الان بررسی کردم یوتیوب چند فیلم خوب تو این زمینه بود که چون الان تو این آموزش پیش زمینه لازم رو دارید حتی در صورت ضعف زبانی هم می تونید از اون فیلم ها برای مقصود خودتون کمک بگیرید و تغییرات کد نسبت به نمونه پایه خودمون رو متوجه بشید.

  28. علی

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

    • مصطفی آصفی

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

  29. امیر

    سلام
    من وقتی میخواهم که پکیج opencv-python رو نصب کنم بهم خطا میده و میگه که نسخه pip شما پایینه. من چون از ویندوز 7 استفاده میکنم باید از پایتون 3.5.2 استفاده کنم و pip این نسخه نمیتونه که opencv-python رو نصب کنه

    ممنون میشم که راهنمایی کنید که من چطور بدون اینکه ویندوز رو به 11 یا 10 ارتقا بدم بتونم پکیج opencv-python رو نصب کنم.

    • مصطفی آصفی

      سلام به شما. مواردی مثل این پست (+) یا این فیلم (+) می تونه به شما کمک کنه.
      با این حال ممکنه شرایط سیستم یا نیاز شما طور دیگه ای باشه. گوگل کنید:

      از بین نتایج و فیلم های مختلف بهتر می تونید انتخاب کنید.

      پی‌نوشت: لطفا با ایمیل که ثبت نام کردین و فراگیر این دوره هستین نظرتون رو ارسال کنید.

  30. محراب

    سلام
    پردازش تصویر با هوش مصنوعی و یادگیری عمیق بهتر است یا با opencv و پایتون

    • مصطفی آصفی

      سلام به شما. فیلم معرفی بسته رو با دقت دیدین؟ ببینید ما یک پردازش تصویر داریم یک بینایی کامپیوتر. پردازش تصویر به خودی خود به یادگیری عمیق نیاز نداره. بینایی کامپیوتر هست که مواردی مثل تشخیص اشیا و … رو شامل میشه که نیاز به یادگیری ماشین و یادگیری عمیق هست. پس این از این.

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

      اگه از صفر دوست دارین وارد کدنویسی هوش مصنوعی بشین توصیه می کنم این آموزش شبکه عصبی از صفر (+) و بعد این آموزش ساخت شبکه عصبی از صفر (+) رو ببینید.

  31. محمد (خریدار محصول)

    سلام استاد وقتتون بخیر
    استاد من آموزش کار با کتابخانه pyinstaller شما رو هم دیدم اما وقتی پروژه تشخیص چهره ام رو با این کتابخونه به فایل نصبی تبدیل و اجرا می کنم با این خطا مواجه میشم
    Traceback (most recent call last):
    File “face_1.py”, line 3, in
    File “”, line 991, in _find_and_load
    File “”, line 975, in _find_and_load_unlocked
    File “”, line 671, in _load_unlocked
    File “C:\Python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”, line 495, in exec_module
    exec(bytecode, module.__dict__)
    File “face_recognition\__init__.py”, line 7, in
    File “”, line 991, in _find_and_load
    File “”, line 975, in _find_and_load_unlocked
    File “”, line 671, in _load_unlocked
    File “C:\Python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”, line 495, in exec_module
    exec(bytecode, module.__dict__)
    File “face_recognition\api.py”, line 20, in
    RuntimeError: Unable to open C:\Users\165\AppData\Local\Temp\_MEI117842\face_recognition_models\models\shape_predictor_68_face_landmarks.dat

    که خط سوم کد من ایمپورت کتابخونه ی face-recognition است .
    که راهی برای حل این خطا پیدا نکردم . امکاش هست راهنمایی کنید استاد ؟!
    با تشکر.

    • مصطفی آصفی

      سلام به شما. ظاهرا مشکل با اون فایل predictor_68_face_landmark هست که به دلیل همنامی site_package نمی تونه پیدا کنه.
      این جواب (+) مراحل رفع مشکل رو با دقت اجرا کنید احتمالا حل میشه.

  32. honarvar (خریدار محصول)

    برای نصب ویژوال استودیو 2015 هم مشکل داشتم چون در سایت باید ثبت نام می کردم اما ایران را پشتیبانی نمی کرد

    • مصطفی آصفی

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

  33. Nyr (خریدار محصول)

    با سلام… ویندوز بنده 7 است و می خواستم Download the 7.7GB VM .tar.gz file نصب کنم اما به مشکل برخوردم…در واقع سایت برای من باز نشد ممنون می شوم راهنمایی کنید

    • مصطفی آصفی

      سلام. می بخشین من این خطای شما رو متوجه نشدم. لطفا دقق تر توضیح بفرمایید. چه چیزی رو قصد داشتین نصب کنین؟

  34. elham

    سلام وقتتون بخیر
    اگر در فیلم حرکت موس به جای ماتریسی که ساختید از ساخت مربع استفاده کنیم برای جایگذاری رنگ ها مشکل دارد
    if event==cv2.EVENT_RBUTTONDOWN:
    blue= pic[y,x, 0]
    green= pic[y,x, 1]
    red= pic[y,x, 2]
    print(blue, green, red)
    cv2.rectangle(pic, (x+50,y+50), (x,y), (blue ,green, red), -1)
    cv2.imshow(windowName, pic)

    error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function ‘rectangle’
    > Overload resolution failed:
    > – Scalar value for argument ‘color’ is not numeric
    > – Scalar value for argument ‘color’ is not numeric
    > – Can’t parse ‘rec’. Expected sequence length 4, got 2
    > – Can’t parse ‘rec’. Expected sequence length 4, got 2

    ممنونم می شوم راهنمایی کنید چون با اعداد دستی برای رنگ هیچ خطایی نمی دهم و درست اجرا می شود

    • مصطفی آصفی

      سلام وقت شما هم بخیر. متن خطا میگه که فرمت اعدادتون صحیح نیست. شاید اگه با int اعداد تبدیل کنید مشکلتون حل بشه.
      int(blue)

      پی‌نوشت ۱: شما با این ایمیل فراگیر دوره نیستید. لطفا با با ایمیلی که بسته رو تهیه کردین پیام ارسال کنید.
      پی نوشت ۲: معمولا گوگل کردن متن خطای دریافتی سریع تر شما رو به نتیجه می رسونه و خودکفا می کنه.

  35. elham

    سلام وقتتون بخیر
    یک سوالی داشتم
    در کد زیر اگر داخل image
    ذخیره نکنیم اروری نمی دهد
    image=cv2.putText(image, text, (x, y), font_Face,0.5, (255,255,255))
    و در یکی از فیلم ها که مربوط به حرکت موس بود هم بدون ذخیره برنامه نوشته شد
    همین موضوع برای اشکال هندسی هم هست چون برنامه بدون مشکل ران شد
    مربوط به
    in place
    بودن برخی متد ها هست؟؟؟

    • مصطفی آصفی

      سلام به شما. ببینید شما وقتی با چنین متدهایی متن یا چیزی شبیه این رو اجرا می کنید اونچه که خروجی می بینید یک ترکیبی از تصویر و متن و … هست. تغییر روی خود تصویر اعمال نشده. اگه بخواین خروجی رو همراه متن یا افکت هایی که ایجاد کردین ذخیره کنید می تونید از متدهایی مثل cv2.imwrite استفاده کنید.

  36. هنرور (خریدار محصول)

    من آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع را خریداری کرده ام یک سری تمرین داده اید لطف می کنید بفرمایید پاسخهای آن ها را از کجا می توانم تهیه کنم که ایرادهای حل خودم را متوجه شوم؟

    • مصطفی آصفی

      سلام به شما. تمرین هایی که در طول دوره های هم رویش تعریف می کنیم برای کاوش شماست. حل تمرینی به صورت جداگانه در نظر نمی گیریم.

  37. مهدی علی نوری (خریدار محصول)

    سلام خدمت شما
    متاسفانه بنده نتوانستم کتابخانه dlib را نصب کنم غیر از مواردی که در فیلم آموزشی فرمودید راه حل دیگری وجود ندارد برای نصب؟

    • مصطفی آصفی

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

  38. علی انصاری (خریدار محصول)

    سلام استاد یه سوال اگر از وزن هایی که خودمون درست کردیم که تعداد کلاسش کمتر از ۸۰ تاست مثلا ۲ تا کلاس
    آیا سرعت الگوریتم بیشتر میشه نسبت به استفاده از دیتاست coco

    • مصطفی آصفی

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

  39. پوریا (خریدار محصول)

    باعرض درود خدمت استاد آصفی
    من از شاگردان دوره پردازش تصویر شما هستم
    پس از گذراندن دوره، سوالی ازشما دارم و ان اینکه:

    1-چطور میتونم کارکرد یولو رو بهبود بدم؟
    کدهااجرا میشن ولی کارکردشون در تصاویر تست داده شده معقول نیست،باچه تغییراتی میتونم به بهینگی در برنامه برسم؟
    2-ایا اصلا قدرت مانوور بالایی در بهینه سازی یولو وجودداره؟
    پیشاپیش باتشکرازشما

    • مصطفی آصفی

      سلام به شما. همون طور که در خلال دوره هم عرض کردم دو مورد روی عملکرد یولو تاثیر داره:
      برای بهبود سرعت:
      — اول این که شما تابع‌هایی که با OpenCV توضیح دادیم و فراخوانی کردیم رو می تونید با سی پلاس پلاس فراخوانی کنید که سرعت بهتر بشه.
      — دوم این که شما اجرای یولو رو باید یه جای CPU به GPU بسپری که تو دوره توضیح دادم چند برابر می کنه سرعت رو.

      برای بهبود عملکرد:
      داده های شما و میزان تعلیم تاثیر داره. یولو یک شبکه عصبی عمیقه و ما همون طور که تو آموزش ساخت شبکه عصبی (+) دیدیم میشه با بهبود داده ها عملکرد رو خیلی بهتر کرد. پارامترهای یولو هم که البته بسته شده.
      یولوی ۲۱ هم نسخه تازه ای از یولو هست که اندکی بهبود در سرعت داره که بعدها می تونید بررسی کنید.

  40. حامد

    سلام من تازه میخوام شروع به یادگیری کنم تازه دارم پایتون رو یاد میگیرم میخواستم بدونم بینایی کامپیوتر رو بخوام یاد بگیرم چقدر به ریاضیات نیاز دارم چون زیاد ریاضیم اوکی نیست میخواستم بدونم تاثیر داره در این شاخه از یادگیری یا خیر ممنون میشم اگر راهنماییم کنید و اینکه بفرمایید بعد از پایتون چیو یاد بگیرم…؟

    • مصطفی آصفی

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

  41. nyr.hrn@gmail.com

    سلام من یه آشنایی با تنسورفلو و کراس دارم البته در حوزه پردازش تصویر
    به نظرتون بهتره بینایی ماشین با تنسورفلو را یادبگیرم یا openCV را شروع کنم؟

    • مصطفی آصفی

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

  42. Reza

    سلام و دورد خدمت استاد همه چیز تمام ..چه دانش چه اخلاق

    بنده قصد یادگیری هوش مصنوعی و ماشین لرنینگ رو دارم برای کار در حوزه سایبری و امنیت

    خاستم بدونم این مباحث بینایی ماشین و کامپیوتر و پردازش تصویر و openvc .. هم به کارم میان با توجه به حوزه ای که میخام کار کنم فرا بگیرم یا خیر ؟

    در کل اینا هم جزو هوش مصنوعی و این دست حساب میشن ؟
    سپاس

    • مصطفی آصفی

      سلام و سپاس. شما لطف دارین. بنده در آغاز راه هستم.
      بله دو حوزه اصلی در یادگیری ماشین و هوش مصنوعی امروز بینایی کامپیوتر و پردازش زبان طبیعی هست. خیلی سخته که بگیم از کجا باید کار رو شروع کرد ولی می تونم توصیه کنم که حتما این آموزش رو ببینید. با این که ما در اینجا وارد ریز پیاده سازی الگوریتم ها با کدنویسی نمیشیم اما برای ورود به موضوع مناسبه براتون. همین طور یک دید اصولی از شبکه عصبی نیاز دارید که در این نشانی (+) بنده رایگان و مستمر در حال ضبط بودم که البته به دلیل فشار فراگیران به جمع شدن یکباره اون روال، تا پایان همین هفته به صورت یکجا در وبسایت منتشر میشه.
      این لحظه که این نظر رو می نویسم در حال ضبط فشرده درس های پایانی این بسته هستم. اگه عمری باشه بعد از این بسته یک مسیر رو سعی داریم بسازیم: ۱- پیاده سازی شبکه عصبی ۲- پیاده سازی یادگیری عمیق با پایتون و تنسورفلو ۳- پیاده سازی و کدنویسی بینایی کامپیوتر ۴- کدنویسی پردازش زبان طبیعی. در این مسیر هست که شما با فهم عمیق شیوه کدنویسی می تونید به امنیت الگوریتم ها و سرعت اجرای اون ها وارد بشین. و البته دیدن این آموزش بینایی کامپیوتر برای درک بهتر اون مسیر مهمه. اونجا بیشتر روی پیاده سازی تاکید داریم اینجا یک درک عملی و یک شیرجه اصولی به موضوع.

  43. حسین عسکری (خریدار محصول)

    سلام استاد عزیز
    من توی ویدیو کپچر وقتی کدهارو میدم توی قسمت cv2.imshow
    ارور cvt::cvtcolor میاد هرجا سرچ میکنم در مورد imread توضیح میدن در حالیکه توی باز کردن عکس مشکل نداره فقط توی ویدیو مشکل داره
    ادرس هارو هم دقیق بارها چک کردم
    از cv2.cvtcolor هم استفاده کردم برای ویدیو ولی بازم درست نشد

    لطف میکنید راهنمایی بفرمایید

    • مصطفی آصفی

      سلام به شما. چون گفتین در مورد عکس مشکلی ندارین پس شما هر فریم ویدیو رو هم باید بتونید نمایش بدین مگه این که:
      ۱- یا دارین از وبکم می خونید و وبکم درگیره جای دیگه‌ست پس نمی تونه فریم ها رو بفرسته به OpenCV
      ۲- یا کدتون جایی ایراد داره. مثلا ممکنه cv2.VideoCapture رو به اشتباه دارین داخل حلقه while لود می کنین.
      لطفا این دو رو بررسی کنید و اگه حل نشد متن کامل خطای دریافتی رو اینجا بنویسید شاید بتونیم بهتر هم فکری کنیم.

  44. Mohammad (خریدار محصول)

    سلام استاد آصفی وقت بخیر
    یک سوالی داشتم که ذهن بنده را راجع به ادامه مسیر Computer vision درگیر کرده بود
    زمانی که در گوگل RoadMap بینایی ماشین رو سرچ می کنیم ، طبیعتا گام های زیادی وجود داره تا یک متخصص حرفه ای در این زمینه بشویم.
    اما سوالی که داشتم خدمتتون این بود که به نظر شما کسی که این بسته آموزشی را یاد گرفته است در چه نقطه ای قرار دارد؟
    آیا به صورت موازی باید ماشین لرنینگ رو فرا بگیرد؟

    ممنون میشم راهنمایی کنید
    ارادت

    • مصطفی آصفی

      سلام به شما. بعد از این بسته شما آماده هستید که برید و اونچه یاد گرفتید رو با کتابخونه های پایتونی مثل تنسورفلو از پایه بسازید. انشالله در هم رویش آموزش های یادگیری عمیق با تنسورفلو خواهیم داشت که در اون ها به پردازش تصویر و زبان طبیعی می پردازیم. اما شما منتظر نمونید. شروع کنید به دیدن آموزش یادگیری عمیق با پایتون از منابع خوبی مثل فرادرس.

  45. m.s

    سلام. یک سوال داشتم ازتون. در این دوره دقت کار چقدر هست؟ ایا کسی که به تمامی مطالب گفته شده و یا یکم بیشتر توی این دوره تسلط کامل پیدا کنه میتونه بره سراغ پروژه هایی که نیاز هست در لحظه فریم هارو انالیز کنه؟ مثلااااا یک ماشین خودران کاملا ساده که صرفا قادر به تشخیص خطوط جاده و موقعیت مانع ها و همینطور تشخیص پیچ و علايم راهنمایی و رانندگی باشه (وارد بحث الگوریتم های تصمیم گیری نشدم و منظورم فقط بخش پردازش تصویرش بود)؟

    • مصطفی آصفی

      سلام به شما. دو نکته رو در نظر بگیرید:
      1- همون طور که در بخش های پایانی اشاره میشه اگه در پایان بسته شما برید سراغ اجرای کدها روی GPU سرعت اجرای مناسب برای پروژه های واقعی رو می تونید تجربه کنید.
      2- چون مبنای کارمون OpenCV هست یه موضوع دیگه که بعدها در سرعت اچرای کدها باز هم کمک می کنه اینه که شما تابع هایی که یاد می گیرید رو با زبان سی پلاس پلاس فراخوانی کنید. همون پارامترها و همون مفهوم ها ولی با زبان دیگه ای. این دو نکته کنار هم سرعت مناسب رو ایجاد می کنه و حتی اگه نکته دوم هم میسر نباشه باز هم امکان تجربه کدهای پایتون با سرعت مطلوب پروژه های واقعی هست. هوش مصنوعی لحظه به لحظه یوتیوب اساسش مبتنی بر تنسورفلو و پایتونه.

  46. .

    سلام یک سوال داشتم
    این اموزش بدرد پروژه هایی که سرعت بالا نیاز داره میخوره؟ مثلا این الگوریتمای تشخیص شی که توی این دوره اموزش داده میشه سرعت بالایی دارن ؟

    • مصطفی آصفی

      سلام به شما. در صورتی که اجرا مبتنی بر جی.پی.یو باشه بله

  47. Mohammad (خریدار محصول)

    سلام استاد وقتتون بخیر اول از همه ممنونم بابت کیفیت آموزش ها… تا جایی که من دیدم عالی بوده و از اینجا به بعد هم همینه…نحوه تدریستون عالیه
    یک سوالی داشتم خدمتتون با توجه به این که در این بسته بینایی کامپیوتر تدریس شده آیا بعد از گذراندن این دوره و تسلط به مباحث میتونیم خودمون رو Computer vision developer بنامیم؟ یا باید مباحث و دوره های دیگری هم مشاهده کنیم؟

    ممنون میشم راهنمایی کنید
    ارادتمند

    • مصطفی آصفی

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

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

  48. محمد کشاورز (خریدار محصول)

    با سلام و احترام خدمت جناب آصفی عزیز و تشکر ویژه بایت آموزش های روان و کاربردی شما و سایت هم رویش

    من چندی پیش پکیج جامع بینایی ماشین رو تهیه کردم و در قسمت یادگیری واقعیت افزوده به مشکلی بر خوردم که خواستم اینجا مطرح کنم .

    پس از شناسایی تصویر و انطباق ویدیو روی عکس شناسایی شده (در مبحث واقعیت افزوده) صدا پخش نمیشه من سعی کردم با استفاده از کتابخانه playsound این مشکل رو حل کنم . اما این کتابخانه به صورت مستقل یک فایل صوتی رو پخش میکنه .

    میخواستم راهنمایی بفرمایید که اولا صدا رو چطور به ویدیو مربوطه اضافه کنیم ( در لحظه شناسایی تصویر ) و دم راهنمایی بفرمایید که چطور میشه کد های واقعیت افزوده رو با کد کیوی میکس کرد

    • مصطفی آصفی

      سلام به شما. این نمونه کد و کتابخانه ffpyplayer رو هم بررسی کنید.
      جز این می تونید پخش فیلم رو به صورت مستقل با ابزار دیگه ای انجام بدین. مثلا این نمونه کد برای پخش فیلم با Pyglet رو ببینید.

      در مورد واقعیت افزوده در کیوی این مخزن نمونه کدهای خوبی داره. ضمنا اگه قراره اپ عمومی به دست کاربران گوناگون با گوشی های مختلف (با توان پردازش مختلف) برسه توصیه می کنم توان پردازشی رو بگذارید روی سرور. اما اگه یک طرح پروتوتایپ مثل نمونه ای که قبلا گفتید قراره تحویل یک کارفرما با یک سری دستگاه با پردازش معین بشه می تونید از نمونه مخزنی که گفتم برای ساخت پروتوتایپ استفاده کنید.

  49. رضا

    درود بر شما
    آیا این بسته ی جامع برای کسانی که میخواهد پا به دنیای هوش مصنوعی بگذارند مناسب است و میتوانند به عنوان دوره ی مقدماتی از آن استفاده کنند؟

    • مصطفی آصفی

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

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

نظرات کاربران در خصوص دوره 

49 دیدگاه برای آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع

  1. امیر

    سلام
    من یه پروژه ی تشخیص حرکت نوشتم که کوچیک ترین حرکت ها رو هم تشخیص میده ولی من نمیخوام که شب و روز و تاریکی و روشنایی رو تشخیص بده. ممنون میشم راهنمایی کنید 🙂

  2. farxam.kk (خریدار محصول)

    با سلام وقت بخیر من دوتا مشکل دارم
    ۱- همینطوری که فرمودین برای نصب dlib در ویندوز نیاز به ++c بود ولی برای مک و لینوکس همچنان dlib نصب نمیشه و ارور میده. قبل نصب cmake هم نصب کردم
    note: This error originates from a subprocess, and is likely not a problem with pip.
    ERROR: Failed building wheel for dlib
    Failed to build dlib
    ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based projects
    ۲- مشکل بعدی در ران کردن yolo و ساخت دارک نت بود که کد در بخش import کردن کانفیگ ها ارور میده

    • مصطفی آصفی

      سلام وقت بخیر. در مورد مشکل اولتون ممکنه مشکل از نسخه پایتون باشه که مثلا مطابق این لینک (+) شاید بشه حل کرد. باز خود متن خطا رو گوگل کنید و راهکارهای دیگه رو بررسی کنید.
      در مورد مشکل دومتون هم باید متن خطایی که دریافت می کنید رو بفرستین که بهتر بتونیم هم فکری کنیم.

  3. نیلوفر (خریدار محصول)

    سلام اقای مهندس من برای پروژه م دارم با کیت بینایی ماشین oak کار میکنم میخواستم بدونم شما با این کیت دیتا ست سفارشی تعلیم دادین؟ میتونید کمکم کنید؟

    • مصطفی آصفی

      سلام وقت بخیر. نه متاسفانه من تجربه کار با این ابزار رو ندارم.

  4. fscentergerami@gmail.com (خریدار محصول)

    سلام جناب دکتر آصفی خسته نباشید
    دانشجوی دورتون هستم ، کدتون رو کپی کردم
    کامنت قبلی رو اصلاح میکنم به این :
    هم ویرژوال استودیو هم پای چارم ارور زیر را میدهند :
    Traceback (most recent call last):
    File “C:\Users\PMG\PycharmProjects\pythonProject6\first_yolo.py”, line 69, in
    findObjects(output, frame)
    File “C:\Users\PMG\PycharmProjects\pythonProject6\first_yolo.py”, line 46, in findObjects
    i = i[0]
    ~^^^
    IndexError: invalid index to scalar variable.

    چطور میتوانیم درستش کنم ؟

    • مصطفی آصفی

      سلام وقت بخیر. لطفا فایل HB-OpenCv-Yolo-02-Update2.zip (آپدیت درس ۲ از فصل چهارم که بحث یولو هست) رو مطالعه کنید. این خطا مربوط به پای چارم نیست. به دلیل روزآمدی نسخه cv2 هست. داخل اون فایل تو متن پی دی اف و تکست توضیح دادم.

  5. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض سلام و ادب
    ممنونم از توجه هميشگي شما
    ميشه لطف كنيد و بزرگواري بفرماييد و بگيد به نظر شما چرا توي محيط spyder ، هنگام اجراي كد output = net.forward(out_names) ، خطا مي ده و ميگه كه من نميتونم فايل شبكه رو باز كنم؟

    • مصطفی آصفی

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

  6. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض سلام مجدد خدمت جناب آصفي عزيز و همه مخاطبيني كه با علاقه اين مطالب رو دنبال ميكنن
    ضمن تشكر از پاسخگويي شما
    عرض كنم خدمتتون كه من هر دو مشكل رو حل كردم. هم مشكل مربوط به ليبلينگ ديتا ست خودم رو و هم مشكل مربوط به توقف الگوريتم لرنينگ روي تكرار صدم.
    خب با اين فرايند فايل مربوط به آخرين ضرايب يولو، در گوگل درايو من ذخير شد. با اين عناوين:
    1 – yolov3_training_last.weights : كه مربوط به هر 100 تكرار هستش
    2 – yolov3_training_1000.weights : كه مربوط به هر 1000 تكرار هستش
    منتهي براي ادامه مسير دو تا مشكل پيش مياد:
    1 – مشكل اول اينه كه توي محيط spyder وقتي مي خوام براي detect كردن object هاي موجود در تصاوير جديد، از آخرين ورژن ضرايب ذخيره شده در گوگل درايو استفاده كنم، error مي ده و ميگه كه من نميتونم فايل شبكه رو باز كنم با يه چنين مضموني : cv2.dnn.readnetfromdarknet(yolov3.cfg yolov3.weights)
    در واقع اين error مربوط به اين بخش از كد هستش : output = net.forward(out_names)
    كاري كه من كردم اين بود كه فايل yolov3_training_1000.weights رو توي درايو لوكال خودم توي يه فولدري در كنار فايل كد پايتون و ساير فايل هاي جانبي مانند Makefile، obj.data و obj.names قرار دادم. نميدونم چرا ولي حس ميكنم اين مشكل از spyder هست. چونكه وقتي روزگذشته اين فرايند رو انجام ميدادم اون error اي كه بالا بهش اشاره كردم رو نشون ميداد. ولي امروز حتي اين error رو هم نشون نميده و فقط كلمه error رو مي نويسه و فقط به شماره خطي كه output = net.forward(out_names) نوشته شده اشاره مي كنه.
    توي اين مشكل سوال من اين هست كه آيا ممكنه با pycharm اين مشكل حل بشه يا ممكنه اصلا ربطي نداشته باشه؟
    2 – مشكل دوم اينه كه توي محيط google colab، بنا به دلايلي، فرايند training يولو توي مرحله 1002 متوقف شد ولبي خب خوشبختانه همونطور كه اشاره كردم فايل هاي ضرايب 100 و 1000 توي گوگل درايو ذخيره شده. مشكل اينجاست كه وقتي مي خوام براي ادامه training از فايل yolov3_training_1000.weights استفاده كنم بازهم error ميده كه نميتونم اين فايل رو باز كنم. من متن دقيق اين پيام رو اينجا براتون مي ذارم.
    اين متن دستوري هست كه استفاده كردم:
    !./darknet detector train data/obj.data cfg/yolov3_training.cfg/my_yolo_drive/YOLOv3/yolov3_training_1000.weigts -dont_show
    اين متن پياميه كه به من ميده:
    CUDA-version: 11080 (12000), cuDNN: 8.7.0, GPU count: 1
    OpenCV version: 4.2.0
    yolov3_training_1000
    Couldn’t open file: cfg/yolov3_training.cfg/my_yolo_drive/YOLOv3/yolov3_training_1000.weigts
    در انتها اشاره كنم كه ما مي تونيم اگر شما صلاح بدونيد يه دوره آموزشي جامع رو در محل شركت ما برگزار كنيم. اين شماره تماس من هست. ممنون ميشم لطف كنيد اگر صلاح ميدونيد تماس بگيريد.

    • مصطفی آصفی

      سلام به شما. ممنون از بازخورد قبلیتون. به نظر میاد دستور رو اشتباه نوشتین قبل از /my_yolo_drive/ باید فاصله بگذارین. خطا رو دقت کنید. داره میگه من اون فایل با اون نشانی یکجا که نوشتی رو نمی تونم پیدا کنم.

      پی‌نوشت: متاسفانه در حال حاضر امکان برگزاری دوره اختصاصی رو ندارم.

  7. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض درود مجدد
    بسيار سپاسگزارم از پاسخگويي شما
    در خصوص سوالاتي كه مطرح كرديد سعي ميكنم همه را به ترتيب پاسخ دهم:

    من اين مراحل را هم بر روي پروژه خودمون و هم بر روي ديتا ست خودم اجرا كردم. در هر دو حالت، در مرحله 100 متوقف ميشه. منتهي يك تفاوت بين دو تا ديتاست وجود داره. زمانيكه پروژه خودمون (همرويش) رو اجرا ميكنم، توي مرحله 100 متوقف ميشه و پيغامهاي زير رو ميده:
    v3 (mse loss, Normalizer: (iou: 0.75, obj: 1.00, cls: 1.00) Region 106 Avg (IOU: 0.084366), count: 1, class_loss = 1590.769897, iou_loss = 3.971069, total_loss = 1594.740967
    total_bbox = 19679, rewritten_bbox = 0.000000 %

    100: 767.510559, 768.262085 avg loss, 0.000000 rate, 7.046893 seconds, 6400 images, 1065.632488 hours left
    Saving weights to /my_yolo_drive/yolov3/yolov3_training_last.weights
    Couldn’t open file: /my_yolo_drive/yolov3/yolov3_training_last.weights

    يه توضيحي درمورد ديتا ست خودم بدم. در اين پروژه قراره من هم مثل پروژه خودمون، دو نوع شيئ رو توي تصاوير detect كنم. منتهي حدود 120 تا object توي هر تصوير هست(مثل اينكه بگيم 120 نفر ماسك زده و ماسك نزده توي هر تصوير هست). كاري كه من كردم اين بود كه كلا 6 تا تصوير رو بعنوان ورودي به يولو دادم ولي در هر تصوير دور هر object، يك كادر كشيدم. درواقع در هر تصوير من حدود 120 تا object رو مشخص كردم. پس از طي مرحله به مرحله كد شما روي ديتاي خودم، اين پيغام مشاهده مي شه:
    Wrong annotation: class_id = 15. But class_id should be [from 0 to 1], file: data/obj/11-03-2023 06-50-29.txt
    Saving weights to /my_yolo_drive/yolov3/yolov3_training_last.weights
    Couldn’t open file: /my_yolo_drive/yolov3/yolov3_training_last.weights
    درمورد Wrong annotation خب ميدونم كه اين خطا بخاطر اين هست كه من دوتا كلاس رو ليبل زدم منتهي چون نرم افزار labelimage بصورت پيشفرض 15 تا كلاس در خودش داره، بنابراين هر object جديدي كه براش تعريف ميكنيم از ليبل 15 شماره گذاري ميكنه.

    در نهایت اینو امتحان نكردم که هر ۱۰۰ یا ۸۰ دوره رو ذخیره بشه. ميشه لطفا راهنمايي كنيد چطوري اين كارو كنم؟
    ممنونم از همه محبت هاتون

    • مصطفی آصفی

      سلام و ممنون از توضیح کاملتون. خب لیبل رو که خودتون اشاره کردین ایراد از شیوه لیبل گذاریتونه و خیلی ممنون که توضیح دادین و برای دوستان دیگه نظرتون رو می خونن تجربه می شه.
      در مورد مشکل اصلی که بهش برمی خورین با توجه به آخر پیامتون نوشتین ذخیره سازی رو امتحان نکردین من گمانم می کنم مشکل همینه که شما درس ۱۳ رو و بحث ذخیره سازی و ترنسفر لرنینگ رو که در اون درس اشاره شده با دقت ندیدین. چون خطایی هم دارید دریافت می کنید داره میگه «Couldn’t open file» نمی تونم فایل وزن ذخیره شده رو برای ادامه یادگیری پیدا کنم.

      ببینید تو درس ۱۳ تو دقیقه ۰۵:۳۱ تو مستندات و تو دقیقه ۰۷:۵۲ هم در عمل نشون دادیم که هر ۱۰۰ تکرار وزن های با پسوند last تو درایو ذخیره میشن.
      تو فیلم دقیقه ۰۸:۲۵ هم توضیح میدم که بار اول دستور بالایی و بعد دستور پایینی رو بزنید تا اول وزن های اولیه ۱۰۰ تکرار ذخیره بشن و از اون به بعد کار با خوندن وزن ها از درایو ادامه پیدا کنه.
      لطفا این رو با دقت اجرا و نتیجه رو هم اعلام بفرمایید.

  8. سيد ابوالفضل ياسيني (خریدار محصول)

    با عرض سلام، ادب و احترام خدمت جناب آصفي عزيز و همه همكاران محترمتون در مجموعه همرويش
    ضمن تشكر بابت همه زحماتتون و ارائه اين آموزش خوب
    اميدوارم خدا بهتون سلامتي و بركت بده . دوره خيلي زيبايي بود و جناب آصفي عزيز هم خيلي با حوصله و شفاف تدريس ميكنن. به همين خاطر به دوستان علاقه مند، توصيه ميكنم اين بسته جامع رو تهيه كنند.
    من بسته جامع آموزشي “آموزش بینایی کامپیوتر با پایتون و OpenCV ” رو ديدم و كدها رو گام به گام زدم. نكته اينجاست كه در مورد تعلیم شبکه عصبی یولو و تشخیص اشیای اختصاصی، اگر اشتباه نكنم شما 6000 epoch رو در نظر گرفتيد به گونه اي كه هر 1000 epoch ، مي بايست فايل مربوط به آخرين ضرايب پارامترهاي يولو، توي گوگل درايو ذخيره بشه. منتهي متاسفانه توي epoch صدم متوقف ميشه و طبيعتا هيچ فايلي هم اونجا توي گوگل درايو ذخيره نميشه كه من بتونم از شبكه تعليم داده شده براي تشخيص اشيائ سفارشي مورد نظر خودم استفاده كنم.
    ميشه خواهش كنم لطف كنيد و منو راهنمايي كنيد. توي مسير پروژه خودم متوقف شدم و اگر اين ايراد حل بشه، ميتونم پروژمو تموم كنم. ممنون ميشم راهنمايي بفرماييد.

    • مصطفی آصفی

      سلام و سپاس برای ابزار لطف و انرژی خوبتون. شما روی اجرای همین پروژه خودمون با همین حجم روی دوره ۱۰۰ متوقف میشین یا دیتاست بزرگ تری دارید؟ اگه دیتاست خودتون رو دارید ممکنه دیتاست شما بزرگ باشه و هر دوره اون زیاد طول بکشه. یادتون باشه که منابع کولب محدود هستن. اگه نه و روی پروژه خودمون مشکل دارین سوال بعدم اینه که خطایی هم دریافت می کنید؟ اگه بله ممنون میشم متن انگلیسی خطا رو اینجا بفرستین. در نهایت آیا اینو امتحان کردین که هر ۱۰۰ یا ۸۰ دوره رو ذخیره کنید؟

  9. seyed reza (خریدار محصول)

    عرض ادب خدمت استاد گرانقدر
    استاد برای نصب dlib مشکل خوردم هر چی سرچ می کنم چیزی نمی تونم پیدا کنم

    note: This error originates from a subprocess, and is likely not a problem with pip.
    error: legacy-install-failure

    Encountered error while trying to install package.

    dlib

    note: This is an issue with the package mentioned above, not pip.
    hint: See above for output from the failure.
    اگر امکان داره کمکم کنید

    • مصطفی آصفی

      سلام وقت بخیر. اگه ممکنه محیط مجازی خودتون رو با نسخه متفاوتی از پایتون بسازید و همین طور پیپ رو هم به نسخه پایین تری ببرید مثلا
      pip install pip==21.3.1
      با نسخه های پایین تر باید مشکلتون حل بشه. اصولا خوبیه محیط مجازی همینه که وقتی کتابخونه ها رشد می کنن و با نسخه های جدید پایتون ناسازگار، بتونید تو یه محیط ایزوله پایتون و پیپ متفاوتی داشته باشین. نتیجه رو لطفا مجدد گزارش کنید.
      برای ساختن محیط مجازی با پایتون متفاوت ساده ترین کار اینه که نسخه متفاوتی از پایتون رو روی سیستم نصب و به عنوان پایتون پیش فرض تنظیم کنید. بعد با اون پایتون یه محیط مجازی بسازین. بعدها چون یه کپی از اون پایتون تو محیط مجازی شما وجود داره، حتی اگه خود اون نسخه از پایتون رو هم از سیستم پاک کنید می تونید وارد محیط مجازی بشین و با همون نسخه پایتون که تو محیط مجازی وجود داره محیط مجازی های دیگه ای جاهای دیگه بسازین. خوب این متنو برای آینده به خاطر بسپارین چون ترفند ساده ولی کارآمدیه.

  10. امینه ایزی (خریدار محصول)

    سلام استاد
    وقت شما بخیر
    یه راهنمایی می خواستم ازتون
    مقاله ای که روش yolo و روش faster Rcnn رو معرفی کرده باشه و جزییات کار رو توضیحات داده باشه
    خیلی ممنون میشم بهم معرفی کنید
    با تشکر از لطف های بی دریغ شما🌹🌹🌹

  11. رحمت اله رسولی (خریدار محصول)

    عرض ادب و احترام خدمت استاد..من در ادامه آموزش opencv برای نصب dlibe در pycharm مشکل بزرگی خوردم و نتونستم تو محیط ویندوز نصب کنم و دو سه روز درگیر شدم اگه ممکنه راهنمایی کنید …

    • مصطفی آصفی

      سلام به شما. لطفا خطایی که دریافت می کنید یا جزيیات مشکلتون رو بیشتر توضیح بدین که بتونم کمک کنم.

  12. امینه ایزی (خریدار محصول)

    اگر بخواهییم این برنامه تشخیص اشیای سفارشی بدون gpu کار کنه، میشه؟
    چه تغییراتی لازم داره؟

    • مصطفی آصفی

      بله کار می کنه مشکلی نیست. سلول اول نیازی نیست. سلول دوم هم به جای اتصال به درایو گوگل به پوشه ای تو سیستم خودتون cd می کنید. باقی خط ها هم اگه تو ترمینال هستید می تونید بدون ! در ابتدای اون ها خط به خط اجرا کنید.

  13. امینه ایزی (خریدار محصول)

    سلام
    و عرض 1وزش به خاطر سوالات زیادم
    استاد اصفی لطف می کنید و در مورد دستور
    from IPython.core.interactiveshell import import_item
    کمی برامون توضیح بدین
    فک می کنم این خط کد قلا در اموزش نبود ولی در برنامه ای که در گیت هاب گذاشته بودین وجود داشت
    برای پروژه تشخیص اشیای سفارشی
    ممنونم از لطف تون

    • مصطفی آصفی

      سلام وقت بخیر. نه خواهش می کنم مشکلی نیست. این کلا بیس آی پایتون هست. منتها این کدی که گفتید ما اصلا نداشتیم. مخزن (+) رو هم برای اطمینان بررسی کردم. لطفا دقیق تر بهم بگید تو کدوم درس و دقیقه هست؟

  14. امینه ایزی (خریدار محصول)

    سلام وسپاس مجدد
    فایل images رو پیدا کردم

    • مصطفی آصفی

      سلام خیلی ممنونم که اطلاع دادین.

  15. امینه ایزی (خریدار محصول)

    سلام استاد آصفی عزیز
    در بسته پنجم فایل دیتای استفاده شده که عکس افراد ماسک دار و بدون ماسک بود رو نمی تونم پیدا کنم
    لینک هایی رو هم به درس ها پیوست کرده بودین رو بررسی کردم ولی متاسفانه نتونستم پیداش کنم
    لطفا راهنمایی بفرمایید
    عمرتان با عزت

  16. رحمت الله رسولی (خریدار محصول)

    با عرض سلام و احترام خدمت استاد…من اموزش خیلی خوب و کاربردی شما رو تهیه کردم…متاسفانه بعد از نصب opencv در pycharm بعد از import cv2 متدهای مریوط به cv2 نمایش داده نمی شود ولی بعد از نایپ صحیح عملکرد خود را دارند

    • مصطفی آصفی

      سلام وقت بخیر و ممنون از محبت شما. ممکنه پای چارم شما محیط مجازیتون رو خوب شناسایی نمی کنه. یه ایراد رایجه. این لینک (+) رو ببینید.

      پی‌نوشت: توصیه می کنم این آموزش رایگان وی اس کد (+) رو ببینید شاید این محیط توسعه براتون بهتر باشه.

  17. رحمت اله رسولی (خریدار محصول)

    عرض ادب و احترام خدمت استاد….من آموزش خوب و کاربردی شما را تهیه کردم .. متاسفانه در هنگام نصب open cv در pycharm بعد از نصب متدها بعد از import cv2 بعد از تایپ اول اسم متدها لیست متدها نمایش داده نمی شود ولی متدها بعد از کد نویسی دستی عملکرد خود را دارند ولی لیست و توضیح متدها به برنامه نویس نمایش داده نمی شود ….ممنون و سپاسگزارم

    • مصطفی آصفی

      سلام وقت بخیر و ممنون از محبت شما. ممکنه پای چارم شما محیط مجازیتون رو خوب شناسایی نمی کنه. یه ایراد رایجه. این لینک (+) رو ببینید.

      پی‌نوشت: توصیه می کنم این آموزش رایگان وی اس کد (+) رو ببینید شاید این محیط توسعه براتون بهتر باشه.

  18. امینه ایزی (خریدار محصول)

    با سلام و احترام
    اوقات تون بخیر
    ان شالله زنده و سلامت باشین و بازهم از این دست اموزش های بی نظیر برامون بزارید

    من در استفاده از برنامه labelImg یه مشکلی دارم
    وقتی یک عکس رو برچسب گذاری می کنم، اعداد و مختصاتی رو که باید برای هرشی در یک فایل txt بنویسه همه رو در یک خط می نویسه و فقط دسته مربوط به شی اول رو می زاره
    مثلا اگه 3 نفر ماسک دار و 1 بدون ماسک هستن فقط عدد 1 و 16 عدد دیگه رو همگی در یک خط نشون نمیده و مختصات هرشی رو در یک خط جدید چاپ نمی کنه
    باید چی کارش کنم
    با تشکر از پاسخگویی و راهنمایی شما

    • مصطفی آصفی

      سلام وقت بخیر و ممنون از انرژی خوبتون. ممکنه به برنامه ای که باهاش فایل رو باز می کنید ربط داشته باشه مثل این ایشیو (+) یا سیستم عامل که مثلا میشه روی لینوکس مجازی امتحان کرد. چون ممکنه از موارد متنوعی باشه توصیه می کنم مثلا با این واژه ها گوگل کنید:
      labels same line labelimg

      پی‌نوشت: در مورد ادامه راه که گفتین توصیه می کنم آموزش بینایی کامپیوتر با تنسورفلو (+) در ادامه این بسته ببینید تا دید عمیق تری پیدا کنید. فصل اولش تو این لحظه کامل شده و فصل بعدی که کانولوشن هست در حال ضبطه.

  19. علی (خریدار محصول)

    خیلی عالی و با حوصله تدریس میکنند. خرید این دوره رو پیشنهاد میکنم

    • مصطفی آصفی

      سلام به شما و خیلی ممنونم از انرژی خوبی که فرستادین. خوشحالم که دوره رو مفید دیدین. سعی کنید در ادامه یکی از پروژه ها رو انتخاب و تا مد پروداکشن روی یک مساله واقعی پیش ببرین و در سطح آموزش نمونید. مثلا سعی کنید یک اپلیکیشن کیوی (+) درست کنید که فریم های ورودی رو از دوربین می گیره و بعد واقعیت افزوده رو اعمال می کنه. مثلا اپلیکیشن آلبوم عروسی که اگه روی عکس خاصی گرفته بشه فیلم خاصی از اون لحظه از سرور فراخوانی و نمایش داده میشه. یک آلبوم پویا.

  20. دانشجو (خریدار محصول)

    سلام ممنون از آموزش خوبتون
    توی گام پنجم – آموزش تشخیص اشیای اختصاصی توی ویدیو سوم گفتید که فایل تبدیل لیبل به فرمت yolo رو پیوست میکنید ولی من پیداش نمیکنم
    ممنون میشم اگه راهنمایی کنید

    • مصطفی آصفی

      سلام سلامت باشید. منظور همون فایل تبدیل کننده و مسیر گیت هاب اون هست که به درس ۲ پیوست شدن و تو فایل زیپ دریافتی اون درس موجود هستن.

  21. یک ایرانی

    سلام خسته نباشید بنده می خوام از این فناوری در پهپاد برای پروژه ای دانشگاهی استفاده کنم.بنظرتون حدود 60ساعت تا قبل از بهمن1401 وقت برای آموزش دوره شما و مطالب بیشتری از این قبیل بینایی کامپیوتر بزارم میتونم خودم برسونم برای استفاده اش در پهپاد یانه؟؟؟(البته قصد دارم حدود 60ساعتم برای یادگیری ماشین بزارم)(پایتون مقداری کار کرده ام و مقداری دوره دیده ام) ممنون میشم راهنمایی ام کنید و اگر نکاتی میدونید بگید .خداخیرتان بده

    • مصطفی آصفی

      سلام به شما. البته نمیشه با این سطح از شناخت دقیق نظر داد ولی گمان نمی کنم با صرف یان مدت زمان شدنی باشه. پیاده سازی این پروژه از یک نگاه کلی این مراحل رو داره:
      ۱- مساله باید خوب تعریف بشه. قراره که تو عکس ها چه پردازشی انجام بشه؟ تشخیص شی؟ تشخیص رنگ؟ سگمنت بندی؟ بر اساس نوع مساله باید آموزش یا آموزش های مورد نظرتون رو انتخاب و تماشا و تمرین کنید.
      ۲- از روی آموزش هایی که دیدید پروژه خودتون رو روی دسکتاپ تعریف و با پایتون کدنویسی کنید. طوری که عکس ها رو تو دسکتاپ بگیره و پردازش کنه و نتیجه رو گزارش کنه.
      ۳- پروتوتایپی که کدنویسی کردین رو بیارید روی سخت افزار پهباد خودتون پیاده سازی کنید. تو این مرحله باید مشخص بشه که پردازش عکس ها قراره به چه شکلی انجام بشه و پروژه چقدر به زمان اجرا حساسه.
      ۳-۱- آیا پردازش عکس ها تو خود پهباد قراره انجام بشه و پهباد بر اساس نتیجه پردازش کاری انجام بده و این باید سریع (مثلا در ۳۰۰ میلی ثانیه) هم اتفاق بیفته؟ در این صورت مهم ترین چالشی که دارید سرعته! کدها باید سریع پردازش بشن. کدهاتون باید به کدهای زبان سریع تری مثل سی تبدیل بشن و سخت افزار مناسبی هم برای پردازش کدها و اجرای الگوریتم در لحظه پرواز (زمان اجرا) انتخاب کنید. چرا پس اول با پایتون کد می زنیم؟ برای ساخت پروتوتایپ در سریع ترین زمان ممکن.
      ۳-۲- آیا سرعت اجرا مهم نیست و فقط پروتوتایپ کافیه؟ یعنی مثلا همین که یه پهباد یا کوادکوپتر بسازید که عکسی بگیره و بعد ازن عکس پردازش بشه (مثلا ظرف ۲۰ ثانیه) و بعد عکس العمل صادر بشه. در این صورت چالش تبدیل کد و سخت افزار ساده تر میشه. احتمالا می تونید با بردهای آردوینو (یا بردهای گرون تر رزبری پای) کوادکوپتر خودتون رو بسازید و بعد هم با اتصال پایتون به آردوینو پروتوتایپ پایتونی که تو گام ۲ ساخته بودین (و مثلا شبکه تعلیم یافته خودتون) رو روی عکس های ماژول دوربین آردوینو پردازش و نتیجه رو گزارش کنید. تو این حالت در واقع شما صرفا ایده خودتون رو نمایش میدین و تا عمل به صورت میدانی اون مراحل ۳-۱ رو پیش رو داره که ممکنه تو مقطع تحصیلی بعدی یا پروژه بعدی روش کار کنید.

      پی‌نوشت: حتی اگه گام ۳ شما اجرای پروتوتایپی با یک برد آردوینو باشه باز هم با ۶۰ ساعت پروزه جمع نمیشه. ۶۰ ساعت یعنی کار فشرده یک هفته. اما اگه هر هفته این زمان رو تا بهمن صرف کنید شاید شدنی باشه. باز به پروژه بستگی داره و دانش و تجربه خودتون که بنده نمی تونم ارزیابی کنم و با توضیحی که دادم باید خودتون بسنجید.

  22. سبحان محمدی (خریدار محصول)

    سلام خواستم ببینم این دوره با کراس ندریس شده؟ شما فرمودین تنسرفلو اما دقیقا به کراس اشاره نکردید

    • مصطفی آصفی

      سلام به شما. خیر ما اینجا با کراس یا تنسورفلو کار نکردیم. از کتابخانه OpenCV و فراخوانی شبکه های تعلیم دیده استفاده کردیم. پیشنهاد می کنم بخش توضیحات رو دقیق تر مطالعه کنید.

      پی‌نوشت: برای آموزش بینایی کامپیوتر با تنسورفلو این دوره (+) در هم رویش آغاز شده.

  23. امینه ایزی (خریدار محصول)

    با سلام و احترام خدمت استاد اصفی گرامی
    واقعا ممنونم بابت این اموزش های دقیق و روان
    واقعا لذت می برم از نحوه تدریس شما

    سوال داشتم…
    شما این اموزش ها رو در pychrm اموزش میدین، ایا میشه در colab هم از همین دستورات استفاده کرد؟؟

    • مصطفی آصفی

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

  24. وبگرد

    سلام
    وقت بخیر

    آیا در این دوره، ناحیه بندی تصاویر (segmentation) آموزش داده شده؟
    مورد بعدی اینکه، من میخوام روی تصاویر هوایی، پوشش گیاهی درختان رو پیدا کنم و دورش چند ضلعی رسم کنم.
    آیا این آموزش مناسب این کار هست؟
    آیا پیشنهاد دیگه ای دارید؟

    تشکر

    • روابط عمومی هم رویش

      با سلام. همراه گرامی دوره ها دارای ریز سرفصل هست و ریز به ریز مسائل گفته شده در بخش سرفصل ها گفته شده. در بسته مورد نظر شما 5 بسته مجزا وجود دارد که روی عنوان هر بسته که در ابتدای توضیحات دوره ذکر شده اند کلیک فرمایید هر یک دارای درس پیشنمایش و ریز سرفصل می باشند. در خصوص سوال تخصصی شما پاسخ اینکه : خیر به صورت مستقیم “segmentation” آموزش داده نشده و این بسته به شکل مستقیم نمی تواند به موضوع مورد اشاره کمک نماید

    • مصطفی آصفی

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

  25. amir.karimi

    سلام خسته نباشید قسم میخورم بهتر از آموزش های شما ندیدم.
    من آموزش شبکه عصبی رو کاملا دیدم و مسلط شدم میخواستم ببینم این بسته جامع برایم مناسبه؟
    هدفم هوش مصنوعی است لطفا راهنمایی کنید.
    گر میشه نظر واقعی خودتون رو بگید و راهنمایی کنید.

  26. علی اشرفی (خریدار محصول)

    جناب آقای آصفی
    عذر میخوام میخواستم بدونم دوره ای در خصوص نحوه ارسال آنلاین خروجی های opencv دارید که من تهیه کنم ؟

    • مصطفی آصفی

      سلام مجدد. دوره مستقیم برای این موضوع نه ولی جداگانه اگه آموزش یه فریمورک وب اپ پایتون مثل جنگو رو تو هم رویش دیده باشید می تونید همین کدهای پردازش تصویر رو تو همون وب اپ تعریف کنید تا مثلا وقتی کاربر عکسی رو آپلود می کنه اشیا در اون تشخیص داده بشن و ذخیره بشن.
      آموزش جنگو از صفر (+)
      اگه با معماری جنگو آشنا بشید می تونید این دو رو ترکیب کنید. برای مثال این پست ترکیب جنگو و یولو ۵ (+) رو ببینید.

  27. علی اشرفی (خریدار محصول)

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

    • مصطفی آصفی

      سلام وقتتون بخیر. متوجه شدم. برای تشخیص چند شی به کمک یولو توصیه می کنم گوگل کنید «multiple object detection yolo». من الان بررسی کردم یوتیوب چند فیلم خوب تو این زمینه بود که چون الان تو این آموزش پیش زمینه لازم رو دارید حتی در صورت ضعف زبانی هم می تونید از اون فیلم ها برای مقصود خودتون کمک بگیرید و تغییرات کد نسبت به نمونه پایه خودمون رو متوجه بشید.

  28. علی

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

    • مصطفی آصفی

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

  29. امیر

    سلام
    من وقتی میخواهم که پکیج opencv-python رو نصب کنم بهم خطا میده و میگه که نسخه pip شما پایینه. من چون از ویندوز 7 استفاده میکنم باید از پایتون 3.5.2 استفاده کنم و pip این نسخه نمیتونه که opencv-python رو نصب کنه

    ممنون میشم که راهنمایی کنید که من چطور بدون اینکه ویندوز رو به 11 یا 10 ارتقا بدم بتونم پکیج opencv-python رو نصب کنم.

    • مصطفی آصفی

      سلام به شما. مواردی مثل این پست (+) یا این فیلم (+) می تونه به شما کمک کنه.
      با این حال ممکنه شرایط سیستم یا نیاز شما طور دیگه ای باشه. گوگل کنید:

      از بین نتایج و فیلم های مختلف بهتر می تونید انتخاب کنید.

      پی‌نوشت: لطفا با ایمیل که ثبت نام کردین و فراگیر این دوره هستین نظرتون رو ارسال کنید.

  30. محراب

    سلام
    پردازش تصویر با هوش مصنوعی و یادگیری عمیق بهتر است یا با opencv و پایتون

    • مصطفی آصفی

      سلام به شما. فیلم معرفی بسته رو با دقت دیدین؟ ببینید ما یک پردازش تصویر داریم یک بینایی کامپیوتر. پردازش تصویر به خودی خود به یادگیری عمیق نیاز نداره. بینایی کامپیوتر هست که مواردی مثل تشخیص اشیا و … رو شامل میشه که نیاز به یادگیری ماشین و یادگیری عمیق هست. پس این از این.

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

      اگه از صفر دوست دارین وارد کدنویسی هوش مصنوعی بشین توصیه می کنم این آموزش شبکه عصبی از صفر (+) و بعد این آموزش ساخت شبکه عصبی از صفر (+) رو ببینید.

  31. محمد (خریدار محصول)

    سلام استاد وقتتون بخیر
    استاد من آموزش کار با کتابخانه pyinstaller شما رو هم دیدم اما وقتی پروژه تشخیص چهره ام رو با این کتابخونه به فایل نصبی تبدیل و اجرا می کنم با این خطا مواجه میشم
    Traceback (most recent call last):
    File “face_1.py”, line 3, in
    File “”, line 991, in _find_and_load
    File “”, line 975, in _find_and_load_unlocked
    File “”, line 671, in _load_unlocked
    File “C:\Python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”, line 495, in exec_module
    exec(bytecode, module.__dict__)
    File “face_recognition\__init__.py”, line 7, in
    File “”, line 991, in _find_and_load
    File “”, line 975, in _find_and_load_unlocked
    File “”, line 671, in _load_unlocked
    File “C:\Python38\lib\site-packages\PyInstaller\loader\pyimod03_importers.py”, line 495, in exec_module
    exec(bytecode, module.__dict__)
    File “face_recognition\api.py”, line 20, in
    RuntimeError: Unable to open C:\Users\165\AppData\Local\Temp\_MEI117842\face_recognition_models\models\shape_predictor_68_face_landmarks.dat

    که خط سوم کد من ایمپورت کتابخونه ی face-recognition است .
    که راهی برای حل این خطا پیدا نکردم . امکاش هست راهنمایی کنید استاد ؟!
    با تشکر.

    • مصطفی آصفی

      سلام به شما. ظاهرا مشکل با اون فایل predictor_68_face_landmark هست که به دلیل همنامی site_package نمی تونه پیدا کنه.
      این جواب (+) مراحل رفع مشکل رو با دقت اجرا کنید احتمالا حل میشه.

  32. honarvar (خریدار محصول)

    برای نصب ویژوال استودیو 2015 هم مشکل داشتم چون در سایت باید ثبت نام می کردم اما ایران را پشتیبانی نمی کرد

    • مصطفی آصفی

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

  33. Nyr (خریدار محصول)

    با سلام… ویندوز بنده 7 است و می خواستم Download the 7.7GB VM .tar.gz file نصب کنم اما به مشکل برخوردم…در واقع سایت برای من باز نشد ممنون می شوم راهنمایی کنید

    • مصطفی آصفی

      سلام. می بخشین من این خطای شما رو متوجه نشدم. لطفا دقق تر توضیح بفرمایید. چه چیزی رو قصد داشتین نصب کنین؟

  34. elham

    سلام وقتتون بخیر
    اگر در فیلم حرکت موس به جای ماتریسی که ساختید از ساخت مربع استفاده کنیم برای جایگذاری رنگ ها مشکل دارد
    if event==cv2.EVENT_RBUTTONDOWN:
    blue= pic[y,x, 0]
    green= pic[y,x, 1]
    red= pic[y,x, 2]
    print(blue, green, red)
    cv2.rectangle(pic, (x+50,y+50), (x,y), (blue ,green, red), -1)
    cv2.imshow(windowName, pic)

    error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function ‘rectangle’
    > Overload resolution failed:
    > – Scalar value for argument ‘color’ is not numeric
    > – Scalar value for argument ‘color’ is not numeric
    > – Can’t parse ‘rec’. Expected sequence length 4, got 2
    > – Can’t parse ‘rec’. Expected sequence length 4, got 2

    ممنونم می شوم راهنمایی کنید چون با اعداد دستی برای رنگ هیچ خطایی نمی دهم و درست اجرا می شود

    • مصطفی آصفی

      سلام وقت شما هم بخیر. متن خطا میگه که فرمت اعدادتون صحیح نیست. شاید اگه با int اعداد تبدیل کنید مشکلتون حل بشه.
      int(blue)

      پی‌نوشت ۱: شما با این ایمیل فراگیر دوره نیستید. لطفا با با ایمیلی که بسته رو تهیه کردین پیام ارسال کنید.
      پی نوشت ۲: معمولا گوگل کردن متن خطای دریافتی سریع تر شما رو به نتیجه می رسونه و خودکفا می کنه.

  35. elham

    سلام وقتتون بخیر
    یک سوالی داشتم
    در کد زیر اگر داخل image
    ذخیره نکنیم اروری نمی دهد
    image=cv2.putText(image, text, (x, y), font_Face,0.5, (255,255,255))
    و در یکی از فیلم ها که مربوط به حرکت موس بود هم بدون ذخیره برنامه نوشته شد
    همین موضوع برای اشکال هندسی هم هست چون برنامه بدون مشکل ران شد
    مربوط به
    in place
    بودن برخی متد ها هست؟؟؟

    • مصطفی آصفی

      سلام به شما. ببینید شما وقتی با چنین متدهایی متن یا چیزی شبیه این رو اجرا می کنید اونچه که خروجی می بینید یک ترکیبی از تصویر و متن و … هست. تغییر روی خود تصویر اعمال نشده. اگه بخواین خروجی رو همراه متن یا افکت هایی که ایجاد کردین ذخیره کنید می تونید از متدهایی مثل cv2.imwrite استفاده کنید.

  36. هنرور (خریدار محصول)

    من آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع را خریداری کرده ام یک سری تمرین داده اید لطف می کنید بفرمایید پاسخهای آن ها را از کجا می توانم تهیه کنم که ایرادهای حل خودم را متوجه شوم؟

    • مصطفی آصفی

      سلام به شما. تمرین هایی که در طول دوره های هم رویش تعریف می کنیم برای کاوش شماست. حل تمرینی به صورت جداگانه در نظر نمی گیریم.

  37. مهدی علی نوری (خریدار محصول)

    سلام خدمت شما
    متاسفانه بنده نتوانستم کتابخانه dlib را نصب کنم غیر از مواردی که در فیلم آموزشی فرمودید راه حل دیگری وجود ندارد برای نصب؟

    • مصطفی آصفی

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

  38. علی انصاری (خریدار محصول)

    سلام استاد یه سوال اگر از وزن هایی که خودمون درست کردیم که تعداد کلاسش کمتر از ۸۰ تاست مثلا ۲ تا کلاس
    آیا سرعت الگوریتم بیشتر میشه نسبت به استفاده از دیتاست coco

    • مصطفی آصفی

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

  39. پوریا (خریدار محصول)

    باعرض درود خدمت استاد آصفی
    من از شاگردان دوره پردازش تصویر شما هستم
    پس از گذراندن دوره، سوالی ازشما دارم و ان اینکه:

    1-چطور میتونم کارکرد یولو رو بهبود بدم؟
    کدهااجرا میشن ولی کارکردشون در تصاویر تست داده شده معقول نیست،باچه تغییراتی میتونم به بهینگی در برنامه برسم؟
    2-ایا اصلا قدرت مانوور بالایی در بهینه سازی یولو وجودداره؟
    پیشاپیش باتشکرازشما

    • مصطفی آصفی

      سلام به شما. همون طور که در خلال دوره هم عرض کردم دو مورد روی عملکرد یولو تاثیر داره:
      برای بهبود سرعت:
      — اول این که شما تابع‌هایی که با OpenCV توضیح دادیم و فراخوانی کردیم رو می تونید با سی پلاس پلاس فراخوانی کنید که سرعت بهتر بشه.
      — دوم این که شما اجرای یولو رو باید یه جای CPU به GPU بسپری که تو دوره توضیح دادم چند برابر می کنه سرعت رو.

      برای بهبود عملکرد:
      داده های شما و میزان تعلیم تاثیر داره. یولو یک شبکه عصبی عمیقه و ما همون طور که تو آموزش ساخت شبکه عصبی (+) دیدیم میشه با بهبود داده ها عملکرد رو خیلی بهتر کرد. پارامترهای یولو هم که البته بسته شده.
      یولوی ۲۱ هم نسخه تازه ای از یولو هست که اندکی بهبود در سرعت داره که بعدها می تونید بررسی کنید.

  40. حامد

    سلام من تازه میخوام شروع به یادگیری کنم تازه دارم پایتون رو یاد میگیرم میخواستم بدونم بینایی کامپیوتر رو بخوام یاد بگیرم چقدر به ریاضیات نیاز دارم چون زیاد ریاضیم اوکی نیست میخواستم بدونم تاثیر داره در این شاخه از یادگیری یا خیر ممنون میشم اگر راهنماییم کنید و اینکه بفرمایید بعد از پایتون چیو یاد بگیرم…؟

    • مصطفی آصفی

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

  41. nyr.hrn@gmail.com

    سلام من یه آشنایی با تنسورفلو و کراس دارم البته در حوزه پردازش تصویر
    به نظرتون بهتره بینایی ماشین با تنسورفلو را یادبگیرم یا openCV را شروع کنم؟

    • مصطفی آصفی

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

  42. Reza

    سلام و دورد خدمت استاد همه چیز تمام ..چه دانش چه اخلاق

    بنده قصد یادگیری هوش مصنوعی و ماشین لرنینگ رو دارم برای کار در حوزه سایبری و امنیت

    خاستم بدونم این مباحث بینایی ماشین و کامپیوتر و پردازش تصویر و openvc .. هم به کارم میان با توجه به حوزه ای که میخام کار کنم فرا بگیرم یا خیر ؟

    در کل اینا هم جزو هوش مصنوعی و این دست حساب میشن ؟
    سپاس

    • مصطفی آصفی

      سلام و سپاس. شما لطف دارین. بنده در آغاز راه هستم.
      بله دو حوزه اصلی در یادگیری ماشین و هوش مصنوعی امروز بینایی کامپیوتر و پردازش زبان طبیعی هست. خیلی سخته که بگیم از کجا باید کار رو شروع کرد ولی می تونم توصیه کنم که حتما این آموزش رو ببینید. با این که ما در اینجا وارد ریز پیاده سازی الگوریتم ها با کدنویسی نمیشیم اما برای ورود به موضوع مناسبه براتون. همین طور یک دید اصولی از شبکه عصبی نیاز دارید که در این نشانی (+) بنده رایگان و مستمر در حال ضبط بودم که البته به دلیل فشار فراگیران به جمع شدن یکباره اون روال، تا پایان همین هفته به صورت یکجا در وبسایت منتشر میشه.
      این لحظه که این نظر رو می نویسم در حال ضبط فشرده درس های پایانی این بسته هستم. اگه عمری باشه بعد از این بسته یک مسیر رو سعی داریم بسازیم: ۱- پیاده سازی شبکه عصبی ۲- پیاده سازی یادگیری عمیق با پایتون و تنسورفلو ۳- پیاده سازی و کدنویسی بینایی کامپیوتر ۴- کدنویسی پردازش زبان طبیعی. در این مسیر هست که شما با فهم عمیق شیوه کدنویسی می تونید به امنیت الگوریتم ها و سرعت اجرای اون ها وارد بشین. و البته دیدن این آموزش بینایی کامپیوتر برای درک بهتر اون مسیر مهمه. اونجا بیشتر روی پیاده سازی تاکید داریم اینجا یک درک عملی و یک شیرجه اصولی به موضوع.

  43. حسین عسکری (خریدار محصول)

    سلام استاد عزیز
    من توی ویدیو کپچر وقتی کدهارو میدم توی قسمت cv2.imshow
    ارور cvt::cvtcolor میاد هرجا سرچ میکنم در مورد imread توضیح میدن در حالیکه توی باز کردن عکس مشکل نداره فقط توی ویدیو مشکل داره
    ادرس هارو هم دقیق بارها چک کردم
    از cv2.cvtcolor هم استفاده کردم برای ویدیو ولی بازم درست نشد

    لطف میکنید راهنمایی بفرمایید

    • مصطفی آصفی

      سلام به شما. چون گفتین در مورد عکس مشکلی ندارین پس شما هر فریم ویدیو رو هم باید بتونید نمایش بدین مگه این که:
      ۱- یا دارین از وبکم می خونید و وبکم درگیره جای دیگه‌ست پس نمی تونه فریم ها رو بفرسته به OpenCV
      ۲- یا کدتون جایی ایراد داره. مثلا ممکنه cv2.VideoCapture رو به اشتباه دارین داخل حلقه while لود می کنین.
      لطفا این دو رو بررسی کنید و اگه حل نشد متن کامل خطای دریافتی رو اینجا بنویسید شاید بتونیم بهتر هم فکری کنیم.

  44. Mohammad (خریدار محصول)

    سلام استاد آصفی وقت بخیر
    یک سوالی داشتم که ذهن بنده را راجع به ادامه مسیر Computer vision درگیر کرده بود
    زمانی که در گوگل RoadMap بینایی ماشین رو سرچ می کنیم ، طبیعتا گام های زیادی وجود داره تا یک متخصص حرفه ای در این زمینه بشویم.
    اما سوالی که داشتم خدمتتون این بود که به نظر شما کسی که این بسته آموزشی را یاد گرفته است در چه نقطه ای قرار دارد؟
    آیا به صورت موازی باید ماشین لرنینگ رو فرا بگیرد؟

    ممنون میشم راهنمایی کنید
    ارادت

    • مصطفی آصفی

      سلام به شما. بعد از این بسته شما آماده هستید که برید و اونچه یاد گرفتید رو با کتابخونه های پایتونی مثل تنسورفلو از پایه بسازید. انشالله در هم رویش آموزش های یادگیری عمیق با تنسورفلو خواهیم داشت که در اون ها به پردازش تصویر و زبان طبیعی می پردازیم. اما شما منتظر نمونید. شروع کنید به دیدن آموزش یادگیری عمیق با پایتون از منابع خوبی مثل فرادرس.

  45. m.s

    سلام. یک سوال داشتم ازتون. در این دوره دقت کار چقدر هست؟ ایا کسی که به تمامی مطالب گفته شده و یا یکم بیشتر توی این دوره تسلط کامل پیدا کنه میتونه بره سراغ پروژه هایی که نیاز هست در لحظه فریم هارو انالیز کنه؟ مثلااااا یک ماشین خودران کاملا ساده که صرفا قادر به تشخیص خطوط جاده و موقعیت مانع ها و همینطور تشخیص پیچ و علايم راهنمایی و رانندگی باشه (وارد بحث الگوریتم های تصمیم گیری نشدم و منظورم فقط بخش پردازش تصویرش بود)؟

    • مصطفی آصفی

      سلام به شما. دو نکته رو در نظر بگیرید:
      1- همون طور که در بخش های پایانی اشاره میشه اگه در پایان بسته شما برید سراغ اجرای کدها روی GPU سرعت اجرای مناسب برای پروژه های واقعی رو می تونید تجربه کنید.
      2- چون مبنای کارمون OpenCV هست یه موضوع دیگه که بعدها در سرعت اچرای کدها باز هم کمک می کنه اینه که شما تابع هایی که یاد می گیرید رو با زبان سی پلاس پلاس فراخوانی کنید. همون پارامترها و همون مفهوم ها ولی با زبان دیگه ای. این دو نکته کنار هم سرعت مناسب رو ایجاد می کنه و حتی اگه نکته دوم هم میسر نباشه باز هم امکان تجربه کدهای پایتون با سرعت مطلوب پروژه های واقعی هست. هوش مصنوعی لحظه به لحظه یوتیوب اساسش مبتنی بر تنسورفلو و پایتونه.

  46. .

    سلام یک سوال داشتم
    این اموزش بدرد پروژه هایی که سرعت بالا نیاز داره میخوره؟ مثلا این الگوریتمای تشخیص شی که توی این دوره اموزش داده میشه سرعت بالایی دارن ؟

    • مصطفی آصفی

      سلام به شما. در صورتی که اجرا مبتنی بر جی.پی.یو باشه بله

  47. Mohammad (خریدار محصول)

    سلام استاد وقتتون بخیر اول از همه ممنونم بابت کیفیت آموزش ها… تا جایی که من دیدم عالی بوده و از اینجا به بعد هم همینه…نحوه تدریستون عالیه
    یک سوالی داشتم خدمتتون با توجه به این که در این بسته بینایی کامپیوتر تدریس شده آیا بعد از گذراندن این دوره و تسلط به مباحث میتونیم خودمون رو Computer vision developer بنامیم؟ یا باید مباحث و دوره های دیگری هم مشاهده کنیم؟

    ممنون میشم راهنمایی کنید
    ارادتمند

    • مصطفی آصفی

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

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

  48. محمد کشاورز (خریدار محصول)

    با سلام و احترام خدمت جناب آصفی عزیز و تشکر ویژه بایت آموزش های روان و کاربردی شما و سایت هم رویش

    من چندی پیش پکیج جامع بینایی ماشین رو تهیه کردم و در قسمت یادگیری واقعیت افزوده به مشکلی بر خوردم که خواستم اینجا مطرح کنم .

    پس از شناسایی تصویر و انطباق ویدیو روی عکس شناسایی شده (در مبحث واقعیت افزوده) صدا پخش نمیشه من سعی کردم با استفاده از کتابخانه playsound این مشکل رو حل کنم . اما این کتابخانه به صورت مستقل یک فایل صوتی رو پخش میکنه .

    میخواستم راهنمایی بفرمایید که اولا صدا رو چطور به ویدیو مربوطه اضافه کنیم ( در لحظه شناسایی تصویر ) و دم راهنمایی بفرمایید که چطور میشه کد های واقعیت افزوده رو با کد کیوی میکس کرد

    • مصطفی آصفی

      سلام به شما. این نمونه کد و کتابخانه ffpyplayer رو هم بررسی کنید.
      جز این می تونید پخش فیلم رو به صورت مستقل با ابزار دیگه ای انجام بدین. مثلا این نمونه کد برای پخش فیلم با Pyglet رو ببینید.

      در مورد واقعیت افزوده در کیوی این مخزن نمونه کدهای خوبی داره. ضمنا اگه قراره اپ عمومی به دست کاربران گوناگون با گوشی های مختلف (با توان پردازش مختلف) برسه توصیه می کنم توان پردازشی رو بگذارید روی سرور. اما اگه یک طرح پروتوتایپ مثل نمونه ای که قبلا گفتید قراره تحویل یک کارفرما با یک سری دستگاه با پردازش معین بشه می تونید از نمونه مخزنی که گفتم برای ساخت پروتوتایپ استفاده کنید.

  49. رضا

    درود بر شما
    آیا این بسته ی جامع برای کسانی که میخواهد پا به دنیای هوش مصنوعی بگذارند مناسب است و میتوانند به عنوان دوره ی مقدماتی از آن استفاده کنند؟

    • مصطفی آصفی

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

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

SKU HT-CV-OpenCV-Python Category Tags , , ,