Πίνακας περιεχομένων:

Μεταφορά εκμάθησης με το NVIDIA JetBot - Διασκέδαση με κώνους κυκλοφορίας: 6 βήματα
Μεταφορά εκμάθησης με το NVIDIA JetBot - Διασκέδαση με κώνους κυκλοφορίας: 6 βήματα

Βίντεο: Μεταφορά εκμάθησης με το NVIDIA JetBot - Διασκέδαση με κώνους κυκλοφορίας: 6 βήματα

Βίντεο: Μεταφορά εκμάθησης με το NVIDIA JetBot - Διασκέδαση με κώνους κυκλοφορίας: 6 βήματα
Βίντεο: Μεταφορά στίγματος από συσκευή / εφαρμογή πλοήγησης στον έντυπο χάρτη | Εκπαίδευση Ιστιοπλοΐας 2024, Ιούλιος
Anonim

Από dvillevaldMy GithubFollow Σχετικά με: Μου αρέσουν οι εφαρμογές τεχνητής νοημοσύνης και μηχανικής μάθησης, ειδικά στη ρομποτική Περισσότερα για το dvillevald »

Διδάξτε το ρομπότ σας να βρίσκει μια διαδρομή σε έναν λαβύρινθο από κώνους κυκλοφορίας χρησιμοποιώντας την κάμερα και το μοντέρνο βαθιάς εκμάθησης τελευταίας τεχνολογίας.

Προμήθειες

  • NVIDIA JetBot

    Η σελίδα Bill of Materials του NVIDIA JetBot Wiki παραθέτει όλα όσα χρειάζεστε για να δημιουργήσετε το JetBot, μαζί με συνδέσμους αγοράς από δημοφιλείς προμηθευτές

  • Υπολογιστής με GPU NVIDIA

    Απαιτείται να εκπαιδεύσει το μοντέλο

  • BlueDot Trading 4”RC Racing Agility Cones, Orange - Σετ 20

Βήμα 1: Κίνητρο

Image
Image

Κάθε φορά που οδηγώ στην περιοχή συστολής σκέφτομαι πόσο δύσκολο θα ήταν για ένα αυτόνομο αυτοκίνητο να περιηγηθεί στους κώνους κυκλοφορίας. Αποδεικνύεται ότι δεν είναι τόσο δύσκολο με το νέο JetBot της NVIDIA-με μόνο εκατοντάδες εικόνες, μπορείτε να εκπαιδεύσετε ένα μοντέρνο μοντέρνο βαθιάς εκμάθησης για να διδάξετε στο ρομπότ σας πώς να βρίσκει μια διαδρομή σε έναν λαβύρινθο από κώνους κυκλοφορίας παιχνιδιών χρησιμοποιώντας μόνο την ενσωματωμένη κάμερα και χωρίς άλλους αισθητήρες.

Βήμα 2: Επισκόπηση NVIDIA JetBot & Project

NVIDIA JetBot & Επισκόπηση έργου
NVIDIA JetBot & Επισκόπηση έργου

Το JetBot είναι ένα ρομπότ ανοιχτού κώδικα που βασίζεται στο κιτ NVIDIA Jetson Nano. Μπορείτε να βρείτε αναλυτικές οδηγίες για τον τρόπο κατασκευής και ρύθμισής του εδώ.

Αυτό το έργο είναι ένα τροποποιημένο παράδειγμα αποφυγής σύγκρουσης από το NVIDIA JetBot Wiki. Αποτελείται από τρία σημαντικά βήματα, καθένα από τα οποία περιγράφεται σε ξεχωριστό τετράδιο Jupyter:

  • Συλλέξτε δεδομένα στο JetBot - notebook data_collection_cones.ipynb
  • Μοντέλο τρένου σε άλλο μηχάνημα GPU - notebook train_model_cones.ipynb
  • Εκτελέστε ζωντανή επίδειξη στο JetBot - notebook live_demo_cones.ipynb

Μπορείτε να βρείτε αυτά τα τρία σημειωματάρια Jupyter εδώ

Βήμα 3: Δημιουργήστε JetBot και ανεβάστε σημειωματάρια Jupyter

  1. Δημιουργήστε και ρυθμίστε το JetBot όπως εξηγείται εδώ
  2. Συνδεθείτε στο ρομπότ σας μεταβαίνοντας στο https://: 8888 Συνδεθείτε με τον προεπιλεγμένο κωδικό πρόσβασης jetbot
  3. Απενεργοποιήστε όλα τα άλλα σημειωματάρια που λειτουργούν επιλέγοντας Kernel -> Shutdown All Kernels…
  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. Απενεργοποιήστε όλα τα άλλα σημειωματάρια που λειτουργούν επιλέγοντας Kernel -> Shutdown All Kernels…
  4. Μεταβείτε στο ~/Notebooks/traffic_cones_driving/
  5. Ανοίξτε και ακολουθήστε το σημειωματάριο data_collection_cones.ipynb

Βήμα 5: Εκπαιδεύστε το νευρωνικό δίκτυο στο GPU Machine

Στη συνέχεια, θα χρησιμοποιήσουμε τα συλλεγμένα δεδομένα για να εκπαιδεύσουμε εκ νέου το μοντέλο βαθιάς εκμάθησης 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: Εκτελέστε Live Demo στο JetBot

Εκτελέστε Live Demo στο JetBot
Εκτελέστε Live Demo στο JetBot

Αυτό το τελευταίο βήμα είναι να ανεβάσετε το μοντέλο best_model_cones.pth στο JetBot και να το εκτελέσετε.

  1. Τροφοδοτήστε το ρομπότ σας από τη μπαταρία USB
  2. Συνδεθείτε ξανά στο ρομπότ σας μεταβαίνοντας στο https://: jetbot-ip-address:: 8888
  3. Συνδεθείτε με τον προεπιλεγμένο κωδικό πρόσβασης jetbot
  4. Απενεργοποιήστε όλα τα άλλα σημειωματάρια που λειτουργούν επιλέγοντας Kernel -> Shutdown All Kernels…
  5. Μεταβείτε στο ~/Notebooks/traffic_cones_driving
  6. Ανοίξτε και ακολουθήστε το σημειωματάριο live_demo_cones.ipynb

Ξεκινήστε προσεκτικά και δώστε στο JetBot αρκετό χώρο για να μετακινηθείτε. Δοκιμάστε διαφορετική διαμόρφωση κώνου και δείτε πόσο καλά αποδίδει το ρομπότ σε διαφορετικά περιβάλλοντα, φωτισμό κλπ. Ενώ το σημειωματάριο live_demo_cones.ipynb εξηγεί λεπτομερώς όλα τα βήματα, το παρακάτω γράφημα δείχνει τη λογική των κινήσεων του ρομπότ με δεδομένες τις πιθανότητες που προβλέπουν τα μοντέλα.

Το σημειωματάριο εξηγεί επίσης τον τρόπο αποθήκευσης του ιστορικού των κινήσεων ρομπότ με πιθανότητες ελεύθερης/αριστερής/δεξιάς/αποκλεισμένης πρόβλεψης από το μοντέλο και πώς να δημιουργήσετε δύο βίντεο FPV (First Person View) (με ρυθμούς 1 fps και 15 fps) με υπερτιθέμενη τηλεμετρία και Δεδομένα ενεργειών JetBot. Αυτά είναι χρήσιμα για τον εντοπισμό σφαλμάτων, τη ρύθμιση του ελεγκτή PID και τη βελτίωση του μοντέλου.

Διασκεδάστε και ενημερώστε με αν έχετε απορίες!:-)

Ο κωδικός είναι διαθέσιμος στο Github

Συνιστάται: