Table des matières:
- Fournitures
- Étape 1: Motivation
- Étape 2: NVIDIA JetBot et aperçu du projet
- Étape 3: Construisez JetBot et téléchargez les notebooks Jupyter
- Étape 4: Collecte des données d'entraînement sur JetBot
- Étape 5: Former le réseau neuronal sur la machine GPU
- Étape 6: Exécutez la démo en direct sur JetBot
Vidéo: Transfert d'apprentissage avec NVIDIA JetBot - Amusez-vous avec les cônes de circulation : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Par dvillevaldMon GithubSuivez à propos de: J'aime les applications d'IA et d'apprentissage automatique, en particulier en robotique En savoir plus sur dvillevald »
Apprenez à votre robot à trouver un chemin dans un labyrinthe de cônes de circulation à l'aide de la caméra et du modèle d'apprentissage en profondeur à la pointe de la technologie.
Fournitures
-
NVIDIA JetBot
La page Bill of Materials de NVIDIA JetBot Wiki répertorie tout ce dont vous avez besoin pour créer JetBot, ainsi que des liens d'achat auprès de fournisseurs populaires
- Ordinateur avec GPU NVIDIA
Nécessaire pour entraîner le modèle
- BlueDot Trading 4" RC Racing Agility Cones, Orange - Lot de 20
Étape 1: Motivation
Chaque fois que je conduis dans la zone de contraction, je pense à quel point il serait difficile pour une voiture autonome de naviguer à travers les cônes de circulation. Il s'avère que ce n'est pas si difficile avec le nouveau JetBot de NVIDIA - avec seulement quelques centaines d'images, vous pouvez former un modèle d'apprentissage en profondeur à la pointe de la technologie pour apprendre à votre robot à trouver un chemin dans un labyrinthe de cônes de signalisation. en utilisant uniquement la caméra embarquée et aucun autre capteur.
Étape 2: NVIDIA JetBot et aperçu du projet
JetBot est un robot open source basé sur le kit NVIDIA Jetson Nano. Vous pouvez trouver des instructions détaillées sur la façon de le construire et de le configurer ici.
Ce projet est un exemple d'évitement de collision modifié de NVIDIA JetBot Wiki. Il se compose de trois étapes principales, chacune décrite dans un cahier Jupyter distinct:
- Collecter des données sur JetBot - notebook data_collection_cones.ipynb
- Entraîner le modèle sur une autre machine GPU - notebook train_model_cones.ipynb
- Exécutez une démonstration en direct sur JetBot - notebook live_demo_cones.ipynb
Vous pouvez trouver ces trois carnets Jupyter ici
Étape 3: Construisez JetBot et téléchargez les notebooks Jupyter
- Construisez et configurez JetBot comme expliqué ici
- Connectez-vous à votre robot en accédant à https://:8888Connectez-vous avec le mot de passe par défaut jetbot
- Arrêtez tous les autres notebooks en cours d'exécution en sélectionnant Kernel -> Arrêter tous les noyaux…
- Accédez à ~/Notebooks/
- Créer un nouveau sous-dossier ~/Notebooks/traffic_cones_driving/
- Téléchargez data_collection_cones.ipynb et live_demo_cones.ipynb dans ~/Notebooks/traffic_cones_driving/
IMPORTANT: les notebooks Jupyter data_collection_cones.ipynb et live_demo_cones.ipynb référencés dans ces instructions doivent être exécutés sur JetBot tandis que train_model_cones.ipynb - sur un ordinateur avec GPU.
Par conséquent, nous devons télécharger data_collection_cones.ipynb et live_demo_cones.ipynb sur le JetBot et les placer dans ~/Notebooks/traffic_cones_driving/
Étape 4: Collecte des données d'entraînement sur JetBot
Nous collecterons un ensemble de données de classification d'images qui sera utilisé pour aider JetBot à fonctionner dans un labyrinthe de cônes de circulation. JetBot apprendra à estimer les probabilités de quatre scénarios (classes):
- Gratuit - quand il est sûr d'avancer
- Bloqué - lorsqu'il y a un obstacle devant le robot
- Gauche - quand le robot doit tourner vers la gauche
- Droite - quand le robot doit tourner vers la droite
Pour collecter les données d'entraînement sur JetBot, nous utiliserons le bloc-notes Jupyter data_collection_cones.ipynb qui contient des instructions détaillées sur la façon de le faire. Pour exécuter ce bloc-notes sur JetBot, suivez les étapes suivantes:
- Connectez-vous à votre robot en accédant à
- Connectez-vous avec le mot de passe par défaut jetbot
- Arrêtez tous les autres notebooks en cours d'exécution en sélectionnant Kernel -> Arrêter tous les noyaux…
- Accédez à ~/Notebooks/traffic_cones_driving/
- Ouvrez et suivez le bloc-notes data_collection_cones.ipynb
Étape 5: Former le réseau neuronal sur la machine GPU
Ensuite, nous utiliserons les données collectées pour réentraîner le modèle d'apprentissage en profondeur AlexNet sur la machine GPU (hôte) en exécutant train_model_cones.ipynb.
Notez que train_model_cones.ipynb est le seul bloc-notes Jupyter de ce didacticiel qui n'est PAS exécuté sur le JetBot
- Connectez-vous à une machine GPU avec PyTorch installé et un serveur Jupyter Lab en cours d'exécution
- Téléchargez le bloc-notes train_model_cones.ipynb et sur cette machine
- Téléchargez le fichier dataset_cones.zip que vous avez créé dans le bloc-notes data_collection_cones.ipynb et extrayez cet ensemble de données. (Après cette étape, vous devriez voir un dossier nommé dataset_cones apparaître dans le navigateur de fichiers.)
- Ouvrez et suivez le bloc-notes train_model_cones.ipynb. À la fin de cette étape, vous créerez un modèle - le fichier best_model_cones.pth qui doit ensuite être téléchargé sur le JetBot pour exécuter la démonstration en direct.
Étape 6: Exécutez la démo en direct sur JetBot
Cette dernière étape consiste à télécharger le modèle best_model_cones.pth sur le JetBot et à l'exécuter.
- Alimentez votre robot à partir de la batterie USB
- Reconnectez-vous à votre robot en accédant à
- Connectez-vous avec le mot de passe par défaut jetbot
- Arrêtez tous les autres notebooks en cours d'exécution en sélectionnant Kernel -> Arrêter tous les noyaux…
- Accédez à ~/Notebooks/traffic_cones_driving
- Ouvrez et suivez le bloc-notes live_demo_cones.ipynb
Commencez prudemment et donnez à JetBot suffisamment d'espace pour se déplacer. Essayez différentes configurations de cône et voyez les performances du robot dans différents environnements, éclairages, etc. Alors que le cahier live_demo_cones.ipynb explique toutes les étapes en détail, le tableau suivant montre la logique des mouvements du robot en fonction des probabilités prédites par les modèles.
Le cahier explique également comment stocker l'historique des mouvements du robot avec des probabilités libres/gauche/droite/bloquées prédites par le modèle et comment faire deux vidéos FPV (First Person View) (à 1 fps et 15 fps) avec télémétrie superposée et Données d'action JetBot. Ceux-ci sont utiles pour le débogage, le réglage du contrôleur PID et l'amélioration du modèle.
Amusez-vous et laissez-moi savoir si vous avez des questions!:-)
Le code est disponible sur Github
Conseillé:
Jeu d'apprentissage des feux de circulation : 5 étapes
Jeu d'apprentissage des feux de circulation : dans ce didacticiel, vous apprendrez à créer un jeu d'apprentissage des feux de circulation Arduino. En jouant au jeu, les enfants peuvent vérifier s'ils ont la bonne connaissance des feux de circulation. Le jeu est séparé en deux sections, si le joueur suit
Comment détecter les maladies des plantes à l'aide de l'apprentissage automatique : 6 étapes
Comment détecter les maladies des plantes à l'aide de l'apprentissage automatique : Le processus de détection et de reconnaissance des plantes malades a toujours été un processus manuel et fastidieux qui oblige les humains à inspecter visuellement le corps de la plante, ce qui peut souvent conduire à un diagnostic incorrect. Il a également été prédit qu'en tant que w
Gérez 100 appareils dans les applications, les organisations, les rôles et les utilisateurs Ubidots : 11 étapes
Gérer 100 appareils dans les applications, les organisations, les rôles et les utilisateurs d'Ubidots : à cette occasion, j'ai décidé de tester la fonctionnalité de la plate-forme IoT Ubidots pour la gestion des utilisateurs dans le cas où elle aurait de nombreux appareils pour plusieurs organisations ou entreprises sous la même Plateforme Ubidots. Information du maire : vous
Transfert d'énergie avec deux bobines Tesla : 7 étapes (avec photos)
Transfert d'énergie avec deux bobines Tesla : Avec ces bobines Tesla, vous pouvez allumer une led connectée à un seul fil. L'énergie est transférée vers la droite depuis l'antenne gauche. Le générateur de signal est branché sur la bobine droite noire (antenne droite). Sur les 2 antennes, l'énergie est transférée par induction
Bandeaux lumineux de couronne de fleurs pour les festivals de musique d'été, les mariages, les occasions spéciales : 8 étapes (avec photos)
Bandeaux lumineux à couronne de fleurs pour les festivals de musique d'été, les mariages et les occasions spéciales : illuminez la nuit avec un magnifique bandeau à fleurs LED ! Parfait pour tous les mariages, festivals de musique, bals de finissants, costumes et occasions spéciales ! Kits avec tout ce dont vous avez besoin pour créer le vôtre bandeau lumineux sont maintenant disponibles dans le magasin Wearables Workshop