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

למידת העברה עם NVIDIA JetBot - כיף עם קונוסי תנועה: 6 שלבים
למידת העברה עם NVIDIA JetBot - כיף עם קונוסי תנועה: 6 שלבים

וִידֵאוֹ: למידת העברה עם NVIDIA JetBot - כיף עם קונוסי תנועה: 6 שלבים

וִידֵאוֹ: למידת העברה עם NVIDIA JetBot - כיף עם קונוסי תנועה: 6 שלבים
וִידֵאוֹ: The Ultimate Flick Shot Guide (100%) 2024, נוֹבֶמבֶּר
Anonim

מאת dvillevald שלי Github עקוב אחר: אני אוהב יישומי AI ולמידת מכונה, במיוחד ברובוטיקה עוד על dvillevald »

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

אספקה

  • NVIDIA JetBot

    דף כתב החומרים של NVIDIA JetBot Wiki מפרט את כל מה שאתה צריך לבניית JetBot, יחד עם רכישת קישורים מספקים פופולריים

  • מחשב עם NVIDIA GPU

    צריך להכשיר את הדגם

  • BlueDot Trading 4”RC Racing Agility קונוסים, כתום - סט של 20

שלב 1: מוטיבציה

Image
Image

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

שלב 2: סקירה כללית של NVIDIA JetBot ופרויקט

סקירה כללית של NVIDIA JetBot ופרויקט
סקירה כללית של NVIDIA JetBot ופרויקט

JetBot הוא רובוט קוד פתוח המבוסס על ערכת NVIDIA Jetson Nano. תוכל למצוא כאן הוראות מפורטות כיצד לבנות ולהגדיר אותו.

פרויקט זה הוא דוגמה שונה למניעת התנגשות מ- NVIDIA JetBot Wiki. הוא מורכב משלושה שלבים עיקריים, כל אחד מתואר במחברת נפרדת של Jupyter:

  • איסוף נתונים על JetBot - מחברת data_collection_cones.ipynb
  • דגם רכבת במכשיר GPU אחר - מחברת train_model_cones.ipynb
  • הפעל הדגמה חיה ב- JetBot - מחברת live_demo_cones.ipynb

אתה יכול למצוא את שלוש המחברות האלה של Jupyter כאן

שלב 3: בנה JetBot והעלה מחברות Jupyter

  1. בנה והתקן את JetBot כפי שהוסבר כאן
  2. התחבר לרובוט שלך על ידי ניווט אל https://: 8888 היכנס באמצעות סיסמת ברירת המחדל jetbot
  3. כיבוי כל שאר המחברות הפועלות על ידי בחירת ליבה -> כיבוי כל הקרנלים …
  4. נווט אל ~/מחברות/
  5. צור תיקיית משנה חדשה ~/Notebooks/traffic_cones_driving/
  6. העלה data_collection_cones.ipynb ו- live_demo_cones.ipynb ל- ~/Notebooks/traffic_cones_driving/

חשוב: יש להפעיל את מחברות Jupyter data_collection_cones.ipynb ו- live_demo_cones.ipynb המפורטות בהוראות אלה ב- JetBot בעוד train_model_cones.ipynb - במחשב עם GPU.

לכן עלינו להעלות data_collection_cones.ipynb ו- live_demo_cones.ipynb ל- JetBot ולמקם אותם ב- ~/Notebooks/traffic_cones_driving/

שלב 4: איסוף נתוני הכשרה ב- JetBot

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

  • חינם - כאשר בטוח להתקדם
  • חסום - כאשר יש מכשול מול הרובוט
  • שמאל - כשהרובוט אמור להסתובב שמאלה
  • ימין - כשהרובוט צריך להסתובב ימינה

כדי לאסוף את נתוני האימון ב- JetBot נשתמש ב- Jupyter notebook data_collection_cones.ipynb המכיל הוראות פירוט כיצד לעשות זאת. כדי להפעיל מחברת זו ב- JetBot, בצע את השלבים הבאים:

  1. התחבר לרובוט שלך על ידי ניווט אל https://: jetbot-ip-address:: 8888
  2. היכנס באמצעות סיסמת ברירת המחדל jetbot
  3. כיבוי כל שאר המחברות הפועלות על ידי בחירת ליבה -> כיבוי כל הקרנלים …
  4. נווט אל ~/Notebooks/traffic_cones_driving/
  5. פתח ופעל אחר המחברת data_collection_cones.ipynb

שלב 5: הרכבת רשת עצבית במכשיר GPU

לאחר מכן, נשתמש בנתונים שנאספו כדי לאמן מחדש את מודל הלמידה העמוקה AlexNet במכונת GPU (מארח) על ידי הפעלת train_model_cones.ipynb.

שים לב כי train_model_cones.ipynb היא המחברת היחידה של Jupyter במדריך זה אשר פועלת לא ב- JetBot

  1. התחבר למכשיר GPU עם PyTorch מותקן ושרת Jupyter Lab פועל
  2. העלה מחברת train_model_cones.ipynb ולמכונה זו
  3. העלה קובץ dataset_cones.zip שיצרת במחברת data_collection_cones.ipynb וחלץ את מערך הנתונים הזה. (לאחר שלב זה אתה אמור לראות תיקייה בשם dataset_cones המופיעה בדפדפן הקבצים.)
  4. פתח ועקוב אחר המחברת train_model_cones.ipynb. בסוף שלב זה, תיצור מודל - הקובץ best_model_cones.pth שאחר כך יש להעלות אותו ל- JetBot כדי להריץ את ההדגמה החיה.

שלב 6: הפעל הדגמה חיה ב- JetBot

הפעל הדגמה חיה ב- JetBot
הפעל הדגמה חיה ב- JetBot

השלב האחרון הוא להעלות את המודל best_model_cones.pth ל- JetBot ולהריץ אותו.

  1. הפעל את הרובוט שלך מסוללת ה- USB
  2. התחבר חזרה לרובוט שלך על ידי ניווט אל https://: jetbot-ip-address:: 8888
  3. היכנס באמצעות סיסמת ברירת המחדל jetbot
  4. כיבוי כל שאר המחברות הפועלות על ידי בחירת ליבה -> כיבוי כל הקרנלים …
  5. נווט אל ~/Notebooks/traffic_cones_driving
  6. פתח ועקוב אחר המחברת live_demo_cones.ipynb

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

המחברת גם מסבירה כיצד לאחסן את ההיסטוריה של מהלכי רובוטים עם הסתברות חופשית/שמאל/ימין/חסומה שהדגם חזה וכיצד ניתן להכין שני סרטוני FPV (תצוגת גוף ראשון) (בקצב של 1 fps ו- 15 fps) עם טלמטריה על גבי נתוני פעולות JetBot. אלה שימושיים לאיתור באגים, כוונון בקר PID ושיפור דגמים.

תהנה וספר לי אם יש לך שאלות!:-)

הקוד זמין ב- Github

מוּמלָץ: