Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Motivation
- Schritt 2: NVIDIA JetBot & Projektübersicht
- Schritt 3: JetBot erstellen und Jupyter-Notebooks hochladen
- Schritt 4: Sammeln von Trainingsdaten auf JetBot
- Schritt 5: Trainieren des neuronalen Netzwerks auf der GPU-Maschine
- Schritt 6: Live-Demo auf JetBot ausführen
Video: Lerntransfer mit NVIDIA JetBot - Spaß mit Verkehrskegeln - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Von dvillevaldMy GithubFolgen Über: Ich mag KI- und maschinelle Lernanwendungen, insbesondere in der Robotik Mehr über dvillevald »
Bringen Sie Ihrem Roboter mit der Kamera und dem hochmodernen Deep-Learning-Modell bei, einen Weg in einem Labyrinth aus Verkehrskegeln zu finden.
Lieferungen
-
NVIDIA JetBot
Die Seite mit der Materialliste von NVIDIA JetBot Wiki listet alles auf, was Sie zum Erstellen von JetBot benötigen, zusammen mit Kauflinks von beliebten Anbietern
-
Computer mit NVIDIA-GPU
Wird benötigt, um das Modell zu trainieren
- BlueDot Trading 4” RC Racing Agility Cones, Orange – Set mit 20
Schritt 1: Motivation
Jedes Mal, wenn ich im Engpassbereich fahre, denke ich daran, wie herausfordernd es für ein selbstfahrendes Auto wäre, durch die Leitkegel zu navigieren. Es stellt sich heraus, dass es mit dem neuen JetBot von NVIDIA nicht so schwierig ist - mit nur ein paar hundert Bildern können Sie ein hochmodernes Deep-Learning-Modell trainieren, um Ihrem Roboter beizubringen, einen Weg in einem Labyrinth aus Spielzeugverkehrskegeln zu finden Verwenden Sie nur die Onboard-Kamera und keine anderen Sensoren.
Schritt 2: NVIDIA JetBot & Projektübersicht
JetBot ist ein Open-Source-Roboter, der auf dem NVIDIA Jetson Nano-Kit basiert. Eine ausführliche Anleitung zum Aufbau und zur Einrichtung finden Sie hier.
Dieses Projekt ist ein modifiziertes Beispiel zur Kollisionsvermeidung aus dem NVIDIA JetBot Wiki. Es besteht aus drei Hauptschritten, die jeweils in einem separaten Jupyter-Notebook beschrieben werden:
- Sammeln Sie Daten auf JetBot - Notebook data_collection_cones.ipynb
- Trainieren Sie das Modell auf einem anderen GPU-Computer - Notebook train_model_cones.ipynb
- Live-Demo auf JetBot ausführen - Notebook live_demo_cones.ipynb
Diese drei Jupyter-Notizbücher findet ihr hier
Schritt 3: JetBot erstellen und Jupyter-Notebooks hochladen
- Bauen und konfigurieren Sie JetBot wie hier beschrieben
- Verbinden Sie sich mit Ihrem Roboter, indem Sie zu https://:8888 navigierenMit dem Standardpasswort jetbot anmelden
- Fahren Sie alle anderen laufenden Notebooks herunter, indem Sie Kernel -> Shutdown All Kernels… auswählen.
- Navigieren Sie zu ~/Notizbücher/
- Neuen Unterordner erstellen ~/Notebooks/traffic_cones_driving/
- Laden Sie data_collection_cones.ipynb und live_demo_cones.ipynb in ~/Notebooks/traffic_cones_driving/ hoch.
WICHTIG: Die in dieser Anleitung erwähnten Jupyter-Notebooks data_collection_cones.ipynb und live_demo_cones.ipynb sollten auf JetBot ausgeführt werden, während train_model_cones.ipynb auf einem Computer mit GPU ausgeführt wird.
Dazu müssen wir data_collection_cones.ipynb und live_demo_cones.ipynb auf den JetBot hochladen und in ~/Notebooks/traffic_cones_driving/ ablegen.
Schritt 4: Sammeln von Trainingsdaten auf JetBot
Wir werden einen Bildklassifizierungsdatensatz sammeln, der verwendet wird, um JetBot dabei zu helfen, in einem Labyrinth aus Verkehrskegeln zu operieren. JetBot lernt, Wahrscheinlichkeiten von vier Szenarien (Klassen) zu schätzen:
- Kostenlos - wenn es sicher ist, vorwärts zu kommen
- Blockiert – wenn sich ein Hindernis vor dem Roboter befindet
- Links - wenn der Roboter nach links drehen soll
- Rechts – wenn der Roboter nach rechts drehen soll
Um die Trainingsdaten auf JetBot zu sammeln, verwenden wir das Jupyter-Notebook data_collection_cones.ipynb, das detaillierte Anweisungen dazu enthält. Führen Sie die nächsten Schritte aus, um dieses Notebook auf JetBot auszuführen:
- Verbinden Sie sich mit Ihrem Roboter, indem Sie zu https://:jetbot-ip-address::8888. navigieren
- Melden Sie sich mit dem Standardpasswort jetbot an
- Fahren Sie alle anderen laufenden Notebooks herunter, indem Sie Kernel -> Shutdown All Kernels… auswählen.
- Navigieren Sie zu ~/Notebooks/traffic_cones_driving/
- Öffnen und folgen Sie dem Notizbuch data_collection_cones.ipynb
Schritt 5: Trainieren des neuronalen Netzwerks auf der GPU-Maschine
Als Nächstes verwenden wir die gesammelten Daten, um das Deep-Learning-Modell AlexNet auf dem GPU-Rechner (Host) neu zu trainieren, indem wir train_model_cones.ipynb ausführen.
Beachten Sie, dass train_model_cones.ipynb das einzige Jupyter-Notebook in diesem Tutorial ist, das NICHT auf dem JetBot ausgeführt wird
- Stellen Sie eine Verbindung zu einem GPU-Computer her, auf dem PyTorch installiert ist und ein Jupyter Lab-Server ausgeführt wird
- Laden Sie das Notebook train_model_cones.ipynb und auf diese Maschine hoch
- Laden Sie die Datei dataset_cones.zip hoch, die Sie im Notebook data_collection_cones.ipynb erstellt haben, und extrahieren Sie dieses Dataset. (Nach diesem Schritt sollten Sie einen Ordner namens dataset_cones im Dateibrowser sehen.)
- Öffnen und folgen Sie dem Notizbuch train_model_cones.ipynb. Am Ende dieses Schrittes erstellen Sie ein Modell - die Datei best_model_cones.pth, die dann auf den JetBot hochgeladen werden muss, um die Live-Demo auszuführen.
Schritt 6: Live-Demo auf JetBot ausführen
Dieser letzte Schritt besteht darin, das Modell best_model_cones.pth auf den JetBot hochzuladen und auszuführen.
- Versorgen Sie Ihren Roboter über den USB-Akku
- Verbinden Sie sich wieder mit Ihrem Roboter, indem Sie zu https://:jetbot-ip-address::8888. navigieren
- Melden Sie sich mit dem Standardpasswort jetbot an
- Fahren Sie alle anderen laufenden Notebooks herunter, indem Sie Kernel -> Shutdown All Kernels… auswählen.
- Navigieren Sie zu ~/Notebooks/traffic_cones_driving
- Öffnen und folgen Sie dem Notizbuch live_demo_cones.ipynb
Beginnen Sie vorsichtig und geben Sie JetBot genügend Platz, um sich zu bewegen. Probieren Sie verschiedene Konuskonfigurationen aus und sehen Sie, wie gut der Roboter in verschiedenen Umgebungen, Beleuchtung usw. funktioniert. Während das Notebook live_demo_cones.ipynb alle Schritte detailliert erklärt, zeigt das folgende Diagramm die Logik der Roboterbewegungen unter Berücksichtigung der von den Modellen vorhergesagten Wahrscheinlichkeiten.
Das Notebook erklärt auch, wie man den Verlauf von Roboterbewegungen mit freien/links/rechts/blockierten Wahrscheinlichkeiten speichert, die vom Modell vorhergesagt werden, und wie man zwei FPV-Videos (First Person View) (mit 1 fps und 15 fps) mit überlagerter Telemetrie erstellt und JetBot-Aktionsdaten. Diese sind nützlich für Debugging, PID-Regler-Tuning und Modellverbesserung.
Viel Spaß und lass es mich wissen, wenn du Fragen hast!:-)
Code ist auf Github verfügbar
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
Beginnen Sie mit Light Painting (kein Photoshop): 5 Schritte (mit Bildern)
Beginnend mit Light Painting (kein Photoshop): Ich habe vor kurzem eine neue Kamera gekauft und einige ihrer Funktionen untersucht, als ich im Internet auf Light Painting oder Langzeitbelichtung gestoßen bin. Die meisten von uns werden die Grundform des Lightpaintings mit einem Foto in einer Stadt mit einer Straße gesehen haben