תוכן עניינים:

שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב: 8 שלבים (עם תמונות)
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב: 8 שלבים (עם תמונות)

וִידֵאוֹ: שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב: 8 שלבים (עם תמונות)

וִידֵאוֹ: שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב: 8 שלבים (עם תמונות)
וִידֵאוֹ: Behind the Scenes at Universal Orlando Resort Destination America (2015) 2024, יולי
Anonim
Image
Image
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב
שרביט הארי פוטר עובד אמיתי באמצעות ראיית מחשב

"כל טכנולוגיה מתקדמת מספיק אינה ניתנת להבחנה ממג'יק" - ארתור סי קלארק

לפני כמה חודשים אחי ביקר ביפן והיה לו ניסיון קוסם אמיתי בעולם הקוסמים של הארי פוטר באולפני יוניברסל שהתאפשר באמצעות הטכנולוגיה של ראיית מחשב.

בעולם הקוסמים של הארי פוטר באולפני יוניברסל התיירים יכולים לבצע "קסם אמיתי" במקומות מסוימים (בהם מותקנת מערכת לכידת התנועה) באמצעות שרביטים המיוצרים במיוחד עם חרוזים רטרו-רפלקטיביים בקצה. ניתן לרכוש את השרביטים מחנות אוליבנדר אמיתית שהם בדיוק כמו זו שמוצגת בסרטים של הארי פוטר אך כן זוכרים: "זה שרביט שבוחר באשף": P

באותם מיקומים מסוימים אם האדם מבצע מחווה מסוימת באמצעות שרביט, מערכת לכידת התנועה מזהה את המחווה וכל המחוות מתאימות לקסם מסוים שגורם לפעילויות מסוימות באזור שמסביב כמו הפעלת המזרקה וכו '.

אז במדריך זה אראה כיצד תוכלו ליצור מערכת לכידת תנועה זולה ויעילה בבית לביצוע "קסם אמיתי" על ידי פתיחת קופסה בהינף שרביטכם: D באמצעות מצלמת ראיית לילה רגילה, קצת אלקטרוניקה, וכמה קוד פייתון באמצעות ספריית OpenCV Computer Vision ו- Machine Learning !!!

שלב 1: הרעיון הבסיסי והחלקים הנדרשים

הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים
הרעיון הבסיסי והחלקים הנדרשים

לשרביטים שנרכשים מעולם הקוסמים של הארי פוטר באולפני יוניברסל יש חרוז רפלקטיבי בקצהם. החרוזים ההפנפלים האלה משקפים כמות אדירה של אור אינפרא אדום שנמסר על ידי המצלמה במערכת לכידת התנועה. אז מה שאנו בני האדם תופסים כקצה לא כל כך ייחודי של שרביט הנע באוויר, מערכת לכידת התנועה תופסת. ככתם בהירה הניתנת לבידוד בקלות בזרם הווידאו ולעקוב אחריה כדי לזהות את התבנית שצייר האדם ולבצע את הפעולה הנדרשת. כל העיבוד מתרחש בזמן אמת ועושה שימוש בחזון מחשב ולמידת מכונה.

מצלמת ראיית לילה פשוטה יכולה לשמש כמצלמה שלנו ללכידת תנועה מכיוון שהם גם מפוצצים אור אינפרא אדום שאינו נראה לבני אדם אך ניתן לראות אותו בבירור במצלמה ללא מסנן אינפרא אדום. אז, זרם הווידיאו מהמצלמה מוזנת לתוך פטל פאי שיש בו תוכנית פייתון שמריצה OpenCV המשמשת לאיתור, בידוד ומעקב אחר קצה השרביט. לאחר מכן אנו משתמשים באלגוריתם SVM (Simple Vector Machine) של Machine Learning כדי לזהות את התבנית המצוירת ובהתאם לכך לשלוט ב- GPIOs של פטל הפאי כדי לבצע כמה פעילויות.

החומרים הדרושים:

1) Raspberry Pi 3 דגם B והאביזרים הנדרשים כמו מקלדת ועכבר

2) מודול מצלמה מ- Raspberry Pi NoIR (ללא אינפרא אדום)

3) שרביט הארי פוטר עם רפלורטור בקצה: אל תדאג אם אין לך. ניתן להשתמש בכל דבר עם רפלקטור. אז, אתה יכול להשתמש בכל מקל דמוי שרביט ולמרוח קלטת רפלקטור, צבע או חרוזים בקצה וזה אמור לעבוד כפי שמוצג בסרטון מאת וויליאם אוסמן: צפה בסרטון

4) 10 נוריות אינפרא אדום

5) מדפסת תלת מימד ונימת PLA לבחירתך

6) מתאם קיר 12V - 1A ושקע DC

7) מנוע סרוו

8) קופסה ישנה ודיבור מגלגל המחזור

9) אקדח דבק חם

10) הדפסים של לוגו ותמונות הקשורים להארי פוטר על גיליון נייר מבריק

11) יריעות קטיפה ירוקות וצהובות.

הערה: ניסיתי גם להשתמש במצלמת אינטרנט רגילה ישנה לראיית לילה על ידי הסרת מסנן האינפרא אדום שלה אך בסופו של דבר פגעתי/עקרה את העדשה שלו שהשפיעה מאוד על איכות הווידאו ולא יכולתי להשתמש בה. אבל אם אתה רוצה לתת לזה זריקה, אתה יכול לעבור את זה נהדר להוראה לחץ כאן

שלב 2: התקן את מודול OpenCV

עכשיו הגיע הזמן לשלב הראשון וכנראה הארוך ביותר של כל הפרויקט הזה: התקנה ובנייה של מודול OpenCV ב- Raspberry Pi שלך.

התקנת התלות של מודול OpenCV אינה לוקחת הרבה זמן אך תהליך הבנייה יכול להימשך עד 2 עד 3 שעות !! אז, תתכופף !!: פ

יש הרבה הדרכות מקוונות שתוכל לעקוב אחריהן להתקנת מודול OpenCV 4.1.0. להלן הקישור של זה שעקבתי אחריו: לחץ כאן

הערה: אני ממליץ בחום להתקין את מודול OpenCV בסביבה וירטואלית כפי שמוצג במדריך מכיוון שהוא ימנע התנגשויות מסוגים שונים שיכולים לקרות עקב התקנת תלות של מודולים שונים או בעת עבודה עם גרסאות שונות של פייתון.

שלב 3: הדפסת הר המצלמה

הדפסת הר המצלמה
הדפסת הר המצלמה
הדפסת הר המצלמה
הדפסת הר המצלמה
הדפסת הר המצלמה
הדפסת הר המצלמה

למצלמת NoIR אין מסנן אינפרא אדום, ולכן היא יכולה לשמש כמצלמת ראיית לילה אך עדיין אין לה מקור אור אינפרא אדום. לכל מצלמות ראיית הלילה יש מקור אור אינפרא אדום משלהן אשר מפוצץ קרני IR בחושך שאינן נראות לעין בלתי מזוינת אך ניתן לראות את הקרניים על ידי המצלמה ללא מסנן אינפרא אדום לאחר ההשתקפות מאובייקט כלשהו.

אז, אנחנו בעצם צריכים מקור אור אינפרא אדום ומשהו להרכבת המצלמה. לשם כך עיצבתי דגם תלת מימד פשוט של אובייקט שעליו נוכל להרכיב את המצלמה שאותה נקיף 10 נוריות IR במעגל. הדגם נוצר עם SketchUp והודפס עם PLA שחור תוך כ -40 דקות.

שלב 4: סיום הר המצלמה

סיום הר המצלמה
סיום הר המצלמה
סיום הר המצלמה
סיום הר המצלמה
סיום הר המצלמה
סיום הר המצלמה

לאחר הדפסת הדגם שיפשפתי אותו לראשונה בנייר חול 80 גרגרי ולאחר מכן התחלתי להניח את תאי ה- IR בחורים שלהם על פי התרשים שניתן למעלה.

אבטחתי את הלדים במקומם בעזרת קצת דבק חם ואז הצטרפתי לידים החיוביים והשליליים של שני נוריות רצופות ואז הלחמתי אותם ליצירת חיבור סדרתי של הנורות.

ההובלה החיובית של לד אחד וההובלה השלילית של הלייד שלצדה בתחתית נותרו ללא הלחמה על מנת לחבר את הקצוות החיוביים והשליליים ממתאם הקיר 12 וולט.

שלב 5: מודל למידת מכונה מאומנת

לצורך זיהוי האות שצייר אדם, הכשרתי מודל למידת מכונה המבוסס על אלגוריתם תמיכת וקטור התמיכה (SVM) באמצעות מערך נתונים של אלפבית בכתב יד שמצאתי כאן. SVM הם אלגוריתמים למידת מכונה יעילים מאוד שיכולים לתת דיוק גבוה, בסביבות 99.2% במקרה זה !! קרא עוד אודות SVM

מערך הנתונים הוא בצורת קובץ.csv המכיל 785 עמודות ויותר מ 300, 000 שורות כאשר כל שורה מייצגת תמונה של 28 x 28 וכל עמודה בשורה זו מכילה את הערך של אותה פיקסל עבור אותה תמונה עם עמודה נוספת ב- ההתחלה המכילה את התווית, מספר בין 0 ל -25, כל אחד מתאים לאות באנגלית. באמצעות קוד פיתון פשוט, חתכתי את הנתונים כדי לקבל את כל התמונות רק עבור 2 האותיות (A ו- C) שרציתי והכשרתי להן מודל.

צירפתי את המודל המאומן (alphabet_classifier.pkl) וגם את קוד האימון אתה מוזמן לעבור עליו או לבצע כל שינוי לאימון המודל באותיות שונות או לנסות אלגוריתמים שונים. לאחר הפעלת התוכנית, היא שומרת באופן אוטומטי את הדגם המאומן באותה ספרייה שבה הקוד שלך נשמר.

שלב 6: הקוד שגורם לכל לקרות

הקוד שגורם להכל לקרות !!
הקוד שגורם להכל לקרות !!

לאחר יצירת המודל המאומן, השלב האחרון הוא לכתוב תוכנית פייתון עבור Raspberry Pi שלנו המאפשרת לנו לבצע את הפעולות הבאות:

  • גישה לסרטון מהמצלמה בזמן אמת
  • איתור ועקוב אחר כתמים לבנים (במקרה זה קצה השרביט אשר נדלק בראיית לילה) בסרטון
  • התחל להתחקות אחר נתיב הבלוק הנע בסרטון לאחר אירוע טריגר כלשהו (הסבר בהמשך)
  • הפסק להתחקות אחרי אירוע טריגר נוסף (הסבר בהמשך)
  • החזר את המסגרת האחרונה עם התבנית שצייר המשתמש
  • בצע עיבוד מראש על המסגרת כמו סף, הסרת רעש, שינוי גודל וכו '.
  • השתמש במסגרת האחרונה שעובדה לחיזוי.
  • בצע קסם כלשהו על ידי שליטה ב- GPIO של ה- Raspberry Pi בהתאם לתחזית

עבור פרויקט זה יצרתי קופסא בנושא הארי פוטר אותה אוכל לפתוח ולסגור באמצעות מנוע סרוו הנשלט על ידי ה- GPIO של ה- Raspberry Pi. מאחר ואות 'א' מייצגת 'אלוהמורה' (אחד הלחשים המפורסמים ביותר מסרטי הארי פוטר המאפשרים לקוסם לפתוח כל מנעול !!), אם אדם מצייר את האות א 'עם השרביט, הפיקוד מצווה על הסרוו פתח את הקופסה. אם האדם מצייר את האות 'C' המייצגת קרוב (מכיוון שלא יכולתי לחשוב על כישוף מתאים המשמש לסגירה או לנעילה: P), ה- pi מצווה על הסרוו לסגור את התיבה.

כל העבודות הקשורות לעיבוד תמונה/וידאו, כמו זיהוי כתמים, מעקב אחר נתיב הבלוב, עיבוד מוקדם של המסגרת האחרונה וכו ', נעשית באמצעות מודול OpenCV.

לאירועי ההדק שהוזכרו לעיל, שני מעגלים נוצרים בסרטון בזמן אמת, עיגול ירוק ואדום. כאשר הכתם נכנסת לאזור בתוך המעגל הירוק, התוכנית מתחילה להתחקות אחר הנתיב שהנחיתה אותו לאחר אותו רגע ומאפשרת לאדם להתחיל ליצור את האות. כאשר הכתם מגיעה לעיגול האדום, הסרטון נעצר והמסגרת האחרונה מועברת לפונקציה המבצעת את העיבוד מראש על המסגרת כדי להפוך אותה מוכנה לניבוי.

צירפתי את קבצי הקוד בשלב זה. אתה מוזמן לעבור על זה ולבצע שינויים כרצונך.

הערה: הייתי צריך ליצור שני קבצי פייתון נפרדים שעובדים עם גרסאות פייתון שונות, אחד שמייבא מודול OpenCV (Python 2.7) ואחר שמייבא את מודול sklearn (Python 3.5) לחיזוי לאחר טעינת הדגם המאומן, כפי שהותקן OpenCV שלי את גרסת Python 2.7 בזמן שה- sklearn הותקן עבור python 3.5. לכן, השתמשתי במודול תהליך התהליך כדי להריץ את הקובץ HarryPotterWandsklearn.py (לחיזוי) מה- HarryPotterWandcv.py (לכל עבודות opencv והקלטת וידאו בזמן אמת) ולקבל את הפלט שלו. בדרך זו אני רק צריך להריץ את הקובץ HarryPotterWandcv.py.

שלב 7: מנגנון פתיחת הקופסה

מנגנון פתיחת הקופסה
מנגנון פתיחת הקופסה
מנגנון פתיחת הקופסה
מנגנון פתיחת הקופסה
מנגנון פתיחת הקופסה
מנגנון פתיחת הקופסה

הייתה לי קופסה ישנה בצבע אדום ישנה בה השתמשתי לפרויקט הזה.

עבור מנגנון פתיחת התיבה:

  1. הדבקתי חם סרוו ליד הקצה האחורי של הקופסה על פיסת קרטון ליד שוליים של הקופסה.
  2. אחר כך לקחתי דיבור מהגלגל של מחזור והדבקתי אותו בזרוע הסרוו.
  3. הקצה השני של הדיבור היה מחובר למכסה הקופסה בעזרת חוט.
  4. חיובי של סרוו היה מחובר ל- +5V Pin 2 ב- Raspberry Pi.
  5. שלילי של סרוו היה מחובר ל- GND Pin 39.
  6. אות סרוו חובר לסיכה 12

שלב 8: הכנת הקופסה לנושא הארי פוטר

הכנת הקופסה לנושא הארי פוטר
הכנת הקופסה לנושא הארי פוטר
הכנת הקופסה לנושא הארי פוטר
הכנת הקופסה לנושא הארי פוטר
הכנת הקופסה לנושא הארי פוטר
הכנת הקופסה לנושא הארי פוטר

להכנת תיבת הארי פוטר, הדפסתי כמה תמונות צבעוניות של דברים שונים כמו הלוגו של הארי פוטר, סמל ההוגוורטס, הסמל של כל אחד מארבעת הבתים וכו 'על גיליון בגודל A4 מבריק והדבקתי אותם על הקופסה במגוון סוגים מקומות.

השתמשתי גם בדף קטיפה בצבע צהוב כדי לחתוך רצועות והדבקתי אותן על המכסה כדי לתת לקופסה את אותו צבע כמו של בית גריפינדור. כיסיתי את החלק הפנימי של המכסה ואת הקרטון לסרוו עם יריעת קטיפה ירוקה. בחלק הפנימי של המכסה הדבקתי עוד סמלים וסמל המראה את בעלי החיים המייצגים כל בית של בית הספר להוגוורטס.

ואז לבסוף מילאתי את כל הדברים הקשורים לארי פוטר שלי בקופסה שכללה מצמד גריפינדור, יומן עם מדי הוגוורטס ושרביט הבכור המשמש בפרויקט זה: D

מוּמלָץ: