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

مدت :

۳ ساعت

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

درباره مدرس 

اطلاعات دوره

توضیحات

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

 

واقعیت افزوده چیست ؟

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

بر این اساس واقعیت افزوده به دو دسته تقسیم می‌شود. دسته اول واقعیت افزوده مختصات مبنا یا Location-based AR است. دسته دوم واقعیت افزوده تشخیص مبنا یا Recognition-based AR است.

واقعیت افزوده تشخیص-مبنا خود به دو دسته تقسیم می‌شود. واقعیت افزوده مبتنی بر نشانه گذاری یا Marker-based AR و واقعیت افزوده بدون نشانه گذاری یا Markerless AR .

دقت کنید که واقعیت افزوده با واقعیت مجازی (به انگلیسی Virtual Reality)‌ متفاوت است. فرق AR با VR این است که واقعیت افزوده شامل افزودن پدیده‌های مجازی به دنیای واقعی در خروجی دوربین است. اما واقعیت مجازی شامل تعامل با دنیای مجازی به واسطه یک عینک و دسته‌های مخصوص است.

برای شناخت بیشتر و دیدن مثال، این مقاله تفاوت واقعیت افزوده و واقعیت مجازی  و همچنین این مقاله بهترین اپلیکیشن های واقعیت افزوده را بخوانید.

 

این آموزش در یک نگاه

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

در درس 2 به تعریف پروژه و راه اندازی محیط کدنویسی می‌پردازیم. در درس 3 با مفهوم ویژگی یا feature در تصویر آشنا می‌شویم. سپس دستورات لازم را برای واکشی ویژگی‌های تصویر مرجع یا QUERY در پروژه خود می‌نویسیم.

درس 4 به مفهوم مهم matching اختصاص دارد. ویژگی‌های استخراج شده در تصویر مرجع و تصویر ورودی وبکم باید با هم مقایسه شوند. در صورت انطباق یا match بودن ویژگی‌ها می‌توان نتیجه گرفت که تصویر مرجع در دوربین دیده شده است.

در درس‌های 5 و 6 ابتدا به بیان مفهوم هم نگاری می‌پردازیم. این که Homography چیست و ماتریس هم نگاری چه نقشی دارد. سپس به کدنویسی و استخراج ماتریس هم‌نگاری می‌پردازیم.

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

درس 9 بسیار مهم است. اینجا به جمع بندی می‌پردازیم. چه یاد گرفتیم و چرا؟ سپس اندیشه پردازی می‌کنیم. ذهن باید دست را به تلاش ترغیب کند. طوفان فکری یک روش عالی برای انگیزه بخشی و دست به عمل زدن است.

 

نگاه این دوره

در سراسر این دوره ضمن کدنویسی همواره از مستندات OpenCV استفاده می‌شود. همچنین با اسلایدهای متنوع و یا دیباگ کردن کدها سعی می‌شود که مفاهیم درک شوند.

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

در این دوره سعی شده به جای کدنویسی تنها، نگاه عمیقی به امکانات OpenCV در بحث واقعیت افزوده پیدا کنید.

 

آموزه‌های اصلی
  • آشنایی با توابع واقعیت افزوده در OpenCV
  • درک عمیق واقعیت افزوده بدون نشانه گذاری
  • آموختن روش صحیح استفاده از مستندات OpenCV
  • درک فرق واقعیت افزوده و واقعیت مجازی
  • شناخت بسیاری از توابع OpenCV و Numpy با کاربرد عملی
  • درک مفهوم Homography و مفهوم Matching
  • درک تفاوت Brute force Matcher و FLANN Matcher

 

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

 

پیشنیاز

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

 

کلیدواژه‌ها

آموش واقعیت افزوده با پایتون – آموزش واقعیت افزوده با OpenCV – واقعیت افزوده چیست – فرق واقعیت افزوده با واقعیت مجازی – آموزش پروژه محور واقعیت افزوده – واقعیت افزوده در پایتون – Augmented Reality با OpenCV

سرفصل مطالب

سرفصل مطالب

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

درس یکم: واقعیت افزوده چیست؟
– واقعیت افزوده یا 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 فراتر از یک زبان
– اندیشه پردازی برای ادامه کار
– جمع بندی و توصیه‌های پایانی

نظرات (12)

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

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

    فرزانه همدانچی
    سلام مجدد. استاد با توجه به نمونه کدی که فرستادید ویدعو وصدا سینک میشن. ولی وقتی در کد این آموزش واقعیت افزوده جایگزاری میکنم از همون ابتدای روشن شدن وب کم صدا پخش میشه بدون توجه به اینکه آیا تصویر خاص مدنظر رویت شده که ویدعو پخش بشه یا نه . میشه راهنمایی کنید کجای کد واقعیت افزوده بخش مربوط به صدا را جانمایی کنم . من در بخش if objDetected == True: قرار میدم . ولی بدون توجه به این شرط صدا پخش میشه .

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

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

    • مصطفی آصفی

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

  3. تقی جعفری

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

    • مصطفی آصفی

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

  4. mehrab

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

    • مصطفی آصفی

      سلام و سپاس. می‌دونید موضوع خیلی مهمی که باید توجه کنید اینه که آموزش‌های فارسی فقط سکوی پرتاب اولیه هستن. عادت کنید که بعد از درک اصول یه موضوعی مثل این برای ایده‌های بعدی گوگل کنید. من می تونستم الان چند گام رو براتون این جا بنویسم ولی ترجیح می دم همین براتون تمرین باشه. عبارت پایین رو گوگل کنید و در بین مقاله‌ها و فیلم‌ها کدهای مفید رو پیدا و جایگزین کنید:
      3d model augmented reality python opencv

  5. طاهرزاده (خریدار محصول)

    سلام وقتتون بخیر
    ببخشید لینک دانلود آموزشتون برای من باز نمیشه، اصلا نمیشه دانلود کرد

    • مصطفی آصفی

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

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

    ببخشید من وقتی می خوام از DroidCamApp استفاده کنم نمیشه

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

    ممنون میشم راهنمایی بفرمایید.

    • مصطفی آصفی

      سلام به شما. لطفا ۱- مقاله استفاده از موبایل به عنوان وب کم (+) رو برای راه اندازی بخونید و مطمئن بشید که ورودی موبایل رو روی لپ تاپ دارید. ۲- ممکنه در دستور cv2.VideoCapture(1) نیاز باشه شماره دیگه ای رو بزنید تا سورس دیگه ورودی ویدیو رو بتونید به اوپن سی وی بدین.

  7. مجتبی حبیبی (خریدار محصول)

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

    • مصطفی آصفی

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

  8. وحید

    سلام استاد ، سپاسگذارم بابت دوره های خوبتون
    من در پایان قسمت 6 این درس با قطعه کد زیر مشکل دارم
    src_pts=np.float32([kp[[m].queryIdx].pt for m in good]).reshape(-1,1,2)
    در واقع پایچرم میگه منی منبعی برای ” queryIdx ” پیدا نکردم
    و بعد از اجرا این ارور رو دارم :
    AttributeError: ‘list’ object has no attribute ‘queryIdx’
    اگر راهنمایی کنید ممنون میشم.
    البته از stackFlow هم جستجو کردم ولی بی نتیجه بود(سعی کردم از منابع opencv هم استفاده کنم)

    • مصطفی آصفی

      سلام به شما. لطفا به کد دقت کنید:
      src_pts = np.float32([kp[m.queryIdx].pt for [m] in good]).reshape(-1, 1, 2)
      شما اشتباه ریزی دارید: [kp[m.queryIdx] این درسته.
      در چنین مواقعی کار خوب اینه که نوع متغیر رو برای خودتون پرینت کنید.

  9. zein tiz (خریدار محصول)

    سلام استاد . ممنونم از پاسخگویی تون . من از ژوپیتر استفاده می کنم. آناکوندا رو آپدیت کردم. پایتون و اوپن سی وی هم بروز کردم. اول که خود اوپن سی وی به مشکل برخورد cv2 رو نمی تونست ایمپورت کنه با اینکه تو خود env پوشه اش بود. رفتم داخل محیط مجازی تو پوشه اناکوندا دیدم نصب بود ولی نمی تونست بخونه . بعد از کلی کلانجار از یک محیط از جای دیگر که می خوند کلون کردم درست شد. بعد این متد siftرو دوتا متد detectandcompute رو باهم نمیتونست اجرا کنه و کرنل ریستارت میشد. آخرش رفتم جدا جدا زدم. یکبار detect زدم و اجرا کردم و بعدش هم compute را زدم . یعنی دوتا رو روهم اجرا نمی کرد. ولی تک تک اجرا می کرد. برای خودم هم عجیب بود . البته رمم 8 گیگ هست .

  10. zein tiz (خریدار محصول)

    سلام استاد
    آموزش خیلی عالی بود. من اجرا می گیرم. ولی موقعی که توابع انطباقی مثل sift رو detect and compute اجرا میگیرم کرنل ریستارت میزنه و میگه
    The kernel appears to have died. It will restart automatically.
    میتونین راهنمایی کنین. 2 روزه علاف کرده درست نمیشه نمیدونم چکار کنم. لطفا راهنمایی بفرمایید؟

    • مصطفی آصفی

      سلام به شما. این مشکل معمولا در ژوپیتر هست. معمولا با conda update mkl حل میشه.
      اگه از پایچارم استفاده می کنید و این خطا رو دارید سه تا احتمال هست:
      1- یک جایی فرآیند کار رو با دقت انجام ندادید و تو ترتیب ایمپورت ها یا کدها یک جایی ایراد دارید.
      2- ممکنه از پکیج هایی که استفاده کردیم یک مورد به روز شده و ناسازگار هست. سعی کنید تا حد ممکن موقع نصب ابزارها از همون نسخه بنده استفاده کنید.
      3- بدترین حالت ممکنه این باشه که واقعا Ram کم میاره.

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

  11. Ashkan

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

    • مصطفی آصفی

      سلام به شما. پاسخ قبلی رو با توجه به دوره تازه به‌روز می‌کنم:
      در آغاز راه شما زیاد سخت نگیرید. با یک سیستم ساده هم می تونید شروع کنید. یک رم 8 و حتی بدون GPU.
      وقتی وارد یادگیری عمیق شدید و به جایی رسیدید که خواستید مدل ها رو واقعا تعلیم بدید بهتره سیستمی داشته باشید که GPU با کیفیت مناسب داشته باشه.
      اما اگر چنین سیستمی ندارید یا امکان تهیه نیست، می‌تونید از سرویس کولب گوگل استفاده کنید که در این آموزش یولو (+) برای نمونه از اون در تعلیم یولو برای تشخیص اشیا استفاده کردیم.
      سرویس Colab امکان اتصال به GPU های رایگان گوگل رو به شما میده که می تونید برای پروژ های یادگیری عمیق و کلان داده استفاده کنید.

  12. آرش رضایی

    واقعیت های افزوده روی سیستم عامل کاربرد زیادی ندارن بیشتر روی گوشی ها و عینک ها و… استغاده میشود بهتر بود این آموزش سمت اندروید بود

    • مصطفی آصفی

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

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

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

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

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

    فرزانه همدانچی
    سلام مجدد. استاد با توجه به نمونه کدی که فرستادید ویدعو وصدا سینک میشن. ولی وقتی در کد این آموزش واقعیت افزوده جایگزاری میکنم از همون ابتدای روشن شدن وب کم صدا پخش میشه بدون توجه به اینکه آیا تصویر خاص مدنظر رویت شده که ویدعو پخش بشه یا نه . میشه راهنمایی کنید کجای کد واقعیت افزوده بخش مربوط به صدا را جانمایی کنم . من در بخش if objDetected == True: قرار میدم . ولی بدون توجه به این شرط صدا پخش میشه .

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

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

    • مصطفی آصفی

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

  3. تقی جعفری

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

    • مصطفی آصفی

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

  4. mehrab

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

    • مصطفی آصفی

      سلام و سپاس. می‌دونید موضوع خیلی مهمی که باید توجه کنید اینه که آموزش‌های فارسی فقط سکوی پرتاب اولیه هستن. عادت کنید که بعد از درک اصول یه موضوعی مثل این برای ایده‌های بعدی گوگل کنید. من می تونستم الان چند گام رو براتون این جا بنویسم ولی ترجیح می دم همین براتون تمرین باشه. عبارت پایین رو گوگل کنید و در بین مقاله‌ها و فیلم‌ها کدهای مفید رو پیدا و جایگزین کنید:
      3d model augmented reality python opencv

  5. طاهرزاده (خریدار محصول)

    سلام وقتتون بخیر
    ببخشید لینک دانلود آموزشتون برای من باز نمیشه، اصلا نمیشه دانلود کرد

    • مصطفی آصفی

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

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

    ببخشید من وقتی می خوام از DroidCamApp استفاده کنم نمیشه

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

    ممنون میشم راهنمایی بفرمایید.

    • مصطفی آصفی

      سلام به شما. لطفا ۱- مقاله استفاده از موبایل به عنوان وب کم (+) رو برای راه اندازی بخونید و مطمئن بشید که ورودی موبایل رو روی لپ تاپ دارید. ۲- ممکنه در دستور cv2.VideoCapture(1) نیاز باشه شماره دیگه ای رو بزنید تا سورس دیگه ورودی ویدیو رو بتونید به اوپن سی وی بدین.

  7. مجتبی حبیبی (خریدار محصول)

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

    • مصطفی آصفی

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

  8. وحید

    سلام استاد ، سپاسگذارم بابت دوره های خوبتون
    من در پایان قسمت 6 این درس با قطعه کد زیر مشکل دارم
    src_pts=np.float32([kp[[m].queryIdx].pt for m in good]).reshape(-1,1,2)
    در واقع پایچرم میگه منی منبعی برای ” queryIdx ” پیدا نکردم
    و بعد از اجرا این ارور رو دارم :
    AttributeError: ‘list’ object has no attribute ‘queryIdx’
    اگر راهنمایی کنید ممنون میشم.
    البته از stackFlow هم جستجو کردم ولی بی نتیجه بود(سعی کردم از منابع opencv هم استفاده کنم)

    • مصطفی آصفی

      سلام به شما. لطفا به کد دقت کنید:
      src_pts = np.float32([kp[m.queryIdx].pt for [m] in good]).reshape(-1, 1, 2)
      شما اشتباه ریزی دارید: [kp[m.queryIdx] این درسته.
      در چنین مواقعی کار خوب اینه که نوع متغیر رو برای خودتون پرینت کنید.

  9. zein tiz (خریدار محصول)

    سلام استاد . ممنونم از پاسخگویی تون . من از ژوپیتر استفاده می کنم. آناکوندا رو آپدیت کردم. پایتون و اوپن سی وی هم بروز کردم. اول که خود اوپن سی وی به مشکل برخورد cv2 رو نمی تونست ایمپورت کنه با اینکه تو خود env پوشه اش بود. رفتم داخل محیط مجازی تو پوشه اناکوندا دیدم نصب بود ولی نمی تونست بخونه . بعد از کلی کلانجار از یک محیط از جای دیگر که می خوند کلون کردم درست شد. بعد این متد siftرو دوتا متد detectandcompute رو باهم نمیتونست اجرا کنه و کرنل ریستارت میشد. آخرش رفتم جدا جدا زدم. یکبار detect زدم و اجرا کردم و بعدش هم compute را زدم . یعنی دوتا رو روهم اجرا نمی کرد. ولی تک تک اجرا می کرد. برای خودم هم عجیب بود . البته رمم 8 گیگ هست .

  10. zein tiz (خریدار محصول)

    سلام استاد
    آموزش خیلی عالی بود. من اجرا می گیرم. ولی موقعی که توابع انطباقی مثل sift رو detect and compute اجرا میگیرم کرنل ریستارت میزنه و میگه
    The kernel appears to have died. It will restart automatically.
    میتونین راهنمایی کنین. 2 روزه علاف کرده درست نمیشه نمیدونم چکار کنم. لطفا راهنمایی بفرمایید؟

    • مصطفی آصفی

      سلام به شما. این مشکل معمولا در ژوپیتر هست. معمولا با conda update mkl حل میشه.
      اگه از پایچارم استفاده می کنید و این خطا رو دارید سه تا احتمال هست:
      1- یک جایی فرآیند کار رو با دقت انجام ندادید و تو ترتیب ایمپورت ها یا کدها یک جایی ایراد دارید.
      2- ممکنه از پکیج هایی که استفاده کردیم یک مورد به روز شده و ناسازگار هست. سعی کنید تا حد ممکن موقع نصب ابزارها از همون نسخه بنده استفاده کنید.
      3- بدترین حالت ممکنه این باشه که واقعا Ram کم میاره.

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

  11. Ashkan

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

    • مصطفی آصفی

      سلام به شما. پاسخ قبلی رو با توجه به دوره تازه به‌روز می‌کنم:
      در آغاز راه شما زیاد سخت نگیرید. با یک سیستم ساده هم می تونید شروع کنید. یک رم 8 و حتی بدون GPU.
      وقتی وارد یادگیری عمیق شدید و به جایی رسیدید که خواستید مدل ها رو واقعا تعلیم بدید بهتره سیستمی داشته باشید که GPU با کیفیت مناسب داشته باشه.
      اما اگر چنین سیستمی ندارید یا امکان تهیه نیست، می‌تونید از سرویس کولب گوگل استفاده کنید که در این آموزش یولو (+) برای نمونه از اون در تعلیم یولو برای تشخیص اشیا استفاده کردیم.
      سرویس Colab امکان اتصال به GPU های رایگان گوگل رو به شما میده که می تونید برای پروژ های یادگیری عمیق و کلان داده استفاده کنید.

  12. آرش رضایی

    واقعیت های افزوده روی سیستم عامل کاربرد زیادی ندارن بیشتر روی گوشی ها و عینک ها و… استغاده میشود بهتر بود این آموزش سمت اندروید بود

    • مصطفی آصفی

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

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