فهرست مطالب:

عصای هری پاتر در حال کار واقعی با استفاده از دید رایانه: 8 مرحله (همراه با تصاویر)
عصای هری پاتر در حال کار واقعی با استفاده از دید رایانه: 8 مرحله (همراه با تصاویر)

تصویری: عصای هری پاتر در حال کار واقعی با استفاده از دید رایانه: 8 مرحله (همراه با تصاویر)

تصویری: عصای هری پاتر در حال کار واقعی با استفاده از دید رایانه: 8 مرحله (همراه با تصاویر)
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
Image
Image
عصای هری پاتر در حال کار واقعی با استفاده از بینایی رایانه ای
عصای هری پاتر در حال کار واقعی با استفاده از بینایی رایانه ای
عصای هری پاتر در حال کار واقعی با استفاده از بینایی رایانه ای
عصای هری پاتر در حال کار واقعی با استفاده از بینایی رایانه ای
عصای هری پاتر در حال کار واقعی با استفاده از بینایی رایانه ای
عصای هری پاتر در حال کار واقعی با استفاده از بینایی رایانه ای

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

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

در دنیای جادوگری هری پاتر در یونیورسال استودیو ، گردشگران می توانند "جادوی واقعی" را در مکانهای خاصی (جایی که سیستم ضبط حرکات نصب شده است) با استفاده از گرزهای مخصوص ساخته شده با مهره های بازتاب کننده عقب در نوک اجرا کنند. چوب دستی ها را می توان از یک مغازه Ollivander's واقعی خریداری کرد که دقیقاً شبیه آنچه در فیلم های هری پاتر نشان داده شده است اما به یاد داشته باشید: "این چوب است که جادوگر را انتخاب می کند": P

در آن مکانهای خاص اگر شخص یک حرکت خاص را با چوب انجام دهد ، سیستم ضبط حرکت ژست را تشخیص می دهد و همه حرکات مربوط به یک طلسم خاص است که باعث فعالیتهای خاصی در منطقه اطراف مانند روشن کردن چشمه و غیره می شود.

بنابراین ، در این دستورالعمل نشان خواهم داد که چگونه می توانید یک سیستم ضبط حرکتی ارزان و م atثر در خانه ایجاد کنید تا "جادوی واقعی" را با باز کردن یک جعبه با تکان چوب دستی خود انجام دهید: D با استفاده از یک دوربین دید در شب معمولی ، برخی وسایل الکترونیکی ، و مقداری کد پایتون با استفاده از کتابخانه OpenCV Computer Vision و یادگیری ماشین !!!

مرحله 1: ایده اصلی و بخشهای مورد نیاز

ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز
ایده اصلی و قسمتهای مورد نیاز

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

یک دوربین ساده از دید در شب می تواند به عنوان دوربین ما برای ضبط حرکت استفاده شود زیرا آنها همچنین نور مادون قرمز را که برای انسان قابل مشاهده نیست منفجر می کند اما با دوربینی که فیلتر مادون قرمز ندارد به وضوح قابل مشاهده است. بنابراین ، جریان ویدئویی از دوربین با یک تمشک pi تغذیه می شود که دارای برنامه پایتون OpenCV است که برای تشخیص ، جداسازی و ردیابی نوک چوب استفاده می شود. سپس از الگوریتم یادگیری ماشین SVM (ماشین بردار ساده) برای تشخیص الگوی ترسیم شده و بر این اساس GPIOs تمشک pi را برای انجام برخی فعالیتها کنترل می کنیم.

مواد مورد نیاز:

1) رزبری پای 3 مدل B و لوازم جانبی مورد نیاز مانند صفحه کلید و ماوس

2) ماژول دوربین رزبری پای NoIR (بدون مادون قرمز)

3) گره هری پاتر با بازتابنده در انتها: اگر آن را ندارید نگران نباشید. از هر چیزی که دارای بازتابنده مجدد باشد می توان استفاده کرد. بنابراین ، می توانید از هر چوب شبیه به چوبدستی استفاده کنید و نوار بازتابنده ، رنگ یا مهره ها را در نوک آن بمالید و باید همانطور که در ویدیو توسط ویلیام عثمان نشان داده شده عمل کند:

4) 10 LED مادون قرمز

5) چاپگر سه بعدی و رشته PLA به انتخاب شما

6) آداپتور دیواری 12V - 1A و جک DC

7) موتور سروو

8) یک جعبه قدیمی و یک حرف از چرخ یک چرخه

9) تفنگ چسب حرارتی

10) چاپ برخی از لوگوها و تصاویر مربوط به هری پاتر روی ورق براق

11) ملحفه مخمل سبز و زرد.

توجه: من همچنین سعی کردم از یک وب کم معمولی قدیمی برای دید در شب با حذف فیلتر مادون قرمز استفاده کنم ، اما در نهایت باعث آسیب/جابجایی لنز آن شدم که کیفیت فیلم را بسیار تحت تأثیر قرار داد و من نتوانستم از آن استفاده کنم. اما اگر می خواهید به آن ضربه بزنید ، می توانید از طریق این دستورالعمل عالی اینجا را کلیک کنید

مرحله 2: ماژول OpenCV را نصب کنید

اکنون زمان اولین و احتمالاً طولانی ترین مرحله کل این پروژه است: نصب و ساخت ماژول OpenCV در رزبری پای شما.

نصب وابستگی ها برای ماژول OpenCV زمان زیادی نمی برد اما مراحل ساخت آن می تواند 2 تا 3 ساعت طول بکشد !! بنابراین ، دست و پنجه نرم کنید !!:پ

بسیاری از آموزش های آنلاین وجود دارد که می توانید برای نصب ماژول OpenCV 4.1.0 اقدام کنید. این پیوندی است که من دنبال کردم: اینجا را کلیک کنید

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

مرحله 3: چاپ Camera Mount

چاپ محل نصب دوربین
چاپ محل نصب دوربین
چاپ محل نصب دوربین
چاپ محل نصب دوربین
چاپ محل نصب دوربین
چاپ محل نصب دوربین

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

بنابراین ، ما اساساً به منبع نور مادون قرمز و چیزی برای نصب دوربین نیاز داریم. برای این منظور من یک مدل سه بعدی ساده از یک شی طراحی کردم که بر روی آن می توانیم دوربین را سوار کنیم که توسط 10 LED مادون قرمز در یک دایره احاطه شده است. این مدل با SketchUp ایجاد شد و با Black PLA در حدود 40 دقیقه چاپ شد.

مرحله 4: اتمام نصب دوربین

اتمام نصب دوربین
اتمام نصب دوربین
اتمام نصب دوربین
اتمام نصب دوربین
اتمام نصب دوربین
اتمام نصب دوربین

پس از چاپ مدل ، ابتدا آن را با یک کاغذ ماسه ای 80 تکه ای سنباده زدم و سپس مطابق نمودار داده شده در بالا ، لامپ های IR را در سوراخ های آنها قرار دادم.

من led ها را در محل آنها با مقداری چسب حرارتی محکم کردم و سپس سربی مثبت و منفی دو led متوالی را به هم پیوند دادم و سپس آنها را لحیم کردم تا یک سری سری از led ها ایجاد شود.

سربی مثبت یک لامپ و سربی منفی سرسری کنار آن در قسمت پایین بدون لحیم کاری باقی می مانند تا انتهای مثبت و منفی آداپتور دیواری 12 ولت را به هم وصل کنید.

مرحله 5: مدل یادگیری ماشین آموزش دیده

به منظور شناخت حروف ترسیم شده توسط یک شخص ، من یک مدل یادگیری ماشین را بر اساس الگوریتم ماشین بردار پشتیبان (SVM) با استفاده از مجموعه داده ای از الفبای دست نویس انگلیسی که در اینجا پیدا کردم ، آموزش دادم. SVM ها الگوریتم های یادگیری ماشین بسیار کارآمدی هستند که می توانند دقت بالایی در حدود 99.2٪ در این مورد ارائه دهند !! در مورد SVM ها بیشتر بخوانید

مجموعه داده ها به صورت فایل.csv است که شامل 785 ستون و بیش از 300000 ردیف است که در آن هر سطر یک تصویر 28 در 28 را نشان می دهد و هر ستون در آن سطر حاوی مقدار آن پیکسل برای آن تصویر با یک ستون اضافی در ابتدا شامل برچسب ، یک عدد از 0 تا 25 ، هر کدام مربوط به یک حرف انگلیسی است. از طریق یک کد ساده پایتون ، داده ها را برش دادم تا همه تصاویر را فقط برای 2 حرف (A و C) مورد نظرم بدست آورم و یک مدل برای آنها آموزش دادم.

من مدل آموزش داده شده (alphabet_classifier.pkl) را ضمیمه کرده ام و همچنین کد آموزشی با خیال راحت آن را مرور کرده یا هرگونه تغییری را در آموزش مدل با حروف مختلف ایجاد کنید یا الگوریتم های مختلف را امتحان کنید. پس از اجرای برنامه ، به طور خودکار مدل آموزش دیده را در همان دایرکتوری که کد شما ذخیره شده است ذخیره می کند.

مرحله ششم: کدی که باعث می شود همه اتفاق بیفتد

کدی که باعث می شود همه اتفاق بیفتد !!
کدی که باعث می شود همه اتفاق بیفتد !!

پس از ایجاد مدل آموزش دیده ، آخرین مرحله نوشتن یک برنامه پایتون برای رزبری پای است که به ما اجازه می دهد موارد زیر را انجام دهیم:

  • به صورت ویدئویی از دوربین در زمان واقعی دسترسی پیدا کنید
  • در ویدیو لکه های سفید (در این مورد نوک عصا که در دید در شب روشن می شود) را تشخیص داده و ردیابی کنید
  • شروع به دنبال کردن مسیر حباب متحرک در ویدیو پس از برخی از رویدادهای ماشه ای (در زیر توضیح داده شده است)
  • متوقف کردن ردیابی پس از یک رویداد ماشه دیگر (در زیر توضیح داده شده است)
  • آخرین فریم را با الگوی ترسیم شده توسط کاربر برگردانید
  • پیش پردازش را روی قاب مانند آستانه ، حذف نویز ، تغییر اندازه و غیره انجام دهید.
  • برای پیش بینی از آخرین فریم پردازش شده استفاده کنید.
  • مطابق پیش بینی با کنترل GPIO های رزبری پای نوعی جادو را انجام دهید

برای این پروژه من یک جعبه با موضوع هری پاتر ایجاد کردم که می توانم آن را با استفاده از یک موتور سروو که توسط GPIO رزبری پای کنترل می شود باز و بسته کنم. از آنجا که حرف "A" مخفف "Alohamora" است (یکی از مشهورترین طلسم های فیلم های هری پاتر که به جادوگر اجازه می دهد هر قفلی را باز کند !!) ، اگر فردی حرف A را با چوب بکشد ، pi به سروو دستور می دهد جعبه را باز نمایید. اگر شخص حرف "C" را که مخفف close است بکشد (چون من نمی توانم از طلسم مناسب برای بستن یا قفل کردن استفاده کنم: P) ، پی به سروو دستور می دهد تا جعبه را ببندد.

تمام کارهای مربوط به پردازش تصویر/ویدئو ، مانند تشخیص لکه ، ردیابی مسیر حباب ، پیش پردازش آخرین فریم و غیره ، از طریق ماژول OpenCV انجام می شود.

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

فایل های کد را در این مرحله ضمیمه کرده ام. با خیال راحت آن را مرور کنید و هر گونه تغییری را که می خواهید ایجاد کنید.

توجه: من مجبور شدم دو فایل پایتون جداگانه ایجاد کنم که با نسخه های مختلف پایتون کار می کنند ، یکی که ماژول OpenCV (پایتون 2.7) را وارد می کند و دیگری که پس از بارگیری مدل آموزش داده شده ، ماژول sklearn (پایتون 3.5) را برای پیش بینی وارد می کند ، زیرا OpenCV من برای آن نصب شده است. نسخه پایتون 2.7 در حالی که sklearn برای پایتون 3.5 نصب شده بود. بنابراین ، من از ماژول فرایند برای اجرای فایل HarryPotterWandsklearn.py (برای پیش بینی) از HarryPotterWandcv.py (برای همه کارهای opencv و ضبط ویدئوهای بیدرنگ) و خروجی آن استفاده کردم. به این ترتیب من فقط باید فایل HarryPotterWandcv.py را اجرا کنم.

مرحله 7: مکانیزم باز کردن جعبه

مکانیزم باز کردن جعبه
مکانیزم باز کردن جعبه
مکانیزم باز کردن جعبه
مکانیزم باز کردن جعبه
مکانیزم باز کردن جعبه
مکانیزم باز کردن جعبه

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

برای مکانیزم باز کردن جعبه:

  1. من سروو را در انتهای پشتی جعبه روی یک تکه مقوا نزدیک لبه جعبه چسباندم.
  2. سپس از چرخ یک چرخه اسپیکر برداشتم و آن را داغ به بازوی سروو چسباندم.
  3. انتهای دیگر پره با استفاده از یک سیم به درب جعبه وصل شد.
  4. سروو مثبت به +5V پین 2 در رزبری پای متصل شد.
  5. سروو منفی به GND Pin 39 متصل شد.
  6. سیگنال سروو به پین 12 متصل شد

مرحله 8: ساخت جعبه با موضوع هری پاتر

ساخت جعبه تم هری پاتر
ساخت جعبه تم هری پاتر
ساخت جعبه با موضوع هری پاتر
ساخت جعبه با موضوع هری پاتر
ساخت جعبه تم هری پاتر
ساخت جعبه تم هری پاتر

برای ساخت جعبه با موضوع هری پاتر ، برخی از تصاویر رنگی از چیزهای مختلف مانند لوگوی هری پاتر ، کرست هاگوارتز ، تاج هر یک از چهار خانه و غیره را در ورق براق A4 چاپ کردم و آنها را در جعبه های مختلف چسباندم. مکان ها

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

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

توصیه شده: