Tabla de contenido:
- Suministros
- Paso 1: Motivación
- Paso 2: NVIDIA JetBot y descripción general del proyecto
- Paso 3: compile JetBot y cargue los cuadernos de Jupyter
- Paso 4: recopilar datos de entrenamiento en JetBot
- Paso 5: Entrene la red neuronal en la máquina GPU
- Paso 6: Ejecute la demostración en vivo en JetBot
Video: Transferir aprendizaje con NVIDIA JetBot - Diversión con conos de tráfico: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Por dvillevaldMy GithubSeguir Acerca de: Me gustan las aplicaciones de inteligencia artificial y aprendizaje automático, especialmente en robótica Más acerca de dvillevald »
Enséñele a su robot a encontrar un camino en un laberinto de conos de tráfico utilizando la cámara y el modelo de aprendizaje profundo de última generación.
Suministros
-
NVIDIA JetBot
La página Lista de materiales de NVIDIA JetBot Wiki enumera todo lo que necesita para construir JetBot, junto con enlaces de compra de proveedores populares
- Computadora con GPU NVIDIA
Necesario para entrenar el modelo
- BlueDot Trading 4 "Conos de agilidad de carreras RC, naranja - Juego de 20
Paso 1: Motivación
Cada vez que conduzco en el área de contracción, pienso en lo difícil que sería para un automóvil sin conductor navegar a través de los conos de tráfico. Resulta que no es tan difícil con el nuevo JetBot de NVIDIA: con solo un par de cientos de imágenes, puede entrenar un modelo de aprendizaje profundo de última generación para enseñarle a su robot cómo encontrar un camino en un laberinto de conos de tráfico de juguete. utilizando solo la cámara integrada y ningún otro sensor.
Paso 2: NVIDIA JetBot y descripción general del proyecto
JetBot es un robot de código abierto basado en el kit NVIDIA Jetson Nano. Puede encontrar instrucciones detalladas sobre cómo construirlo y configurarlo aquí.
Este proyecto es un ejemplo de prevención de colisiones modificado de NVIDIA JetBot Wiki. Consta de tres pasos principales, cada uno de los cuales se describe en un cuaderno de Jupyter independiente:
- Recopile datos en JetBot - notebook data_collection_cones.ipynb
- Modelo de tren en otra máquina GPU - notebook train_model_cones.ipynb
- Ejecute la demostración en vivo en JetBot - notebook live_demo_cones.ipynb
Puedes encontrar estos tres cuadernos de Jupyter aquí
Paso 3: compile JetBot y cargue los cuadernos de Jupyter
- Construya y configure JetBot como se explica aquí
- Conéctese a su robot navegando a https://: 8888 Inicie sesión con la contraseña predeterminada jetbot
- Apague todos los demás portátiles en ejecución seleccionando Kernel -> Shutdown All Kernels…
- Navegue a ~ / Notebooks /
- Crear nueva subcarpeta ~ / Notebooks / traffic_cones_driving /
- Sube data_collection_cones.ipynb y live_demo_cones.ipynb a ~ / Notebooks / traffic_cones_driving /
IMPORTANTE: Los cuadernos de Jupyter data_collection_cones.ipynb y live_demo_cones.ipynb a los que se hace referencia en estas instrucciones deben ejecutarse en JetBot mientras que train_model_cones.ipynb - en una computadora con GPU.
Por lo tanto, tenemos que cargar data_collection_cones.ipynb y live_demo_cones.ipynb al JetBot y colocarlos en ~ / Notebooks / traffic_cones_driving /
Paso 4: recopilar datos de entrenamiento en JetBot
Recopilaremos un conjunto de datos de clasificación de imágenes que se utilizará para ayudar a JetBot a operar en un laberinto de conos de tráfico. JetBot aprenderá a estimar probabilidades de cuatro escenarios (clases):
- Gratis: cuando es seguro seguir adelante
- Bloqueado: cuando hay un obstáculo frente al robot
- Izquierda: cuando el robot debe girar hacia la izquierda
- Derecha: cuando el robot debe girar hacia la derecha
Para recopilar los datos de entrenamiento en JetBot usaremos el cuaderno Jupyter data_collection_cones.ipynb que contiene instrucciones detalladas sobre cómo hacerlo. Para ejecutar este portátil en JetBot, siga los siguientes pasos:
- Conéctese a su robot navegando a https://: jetbot-ip-address:: 8888
- Inicie sesión con la contraseña predeterminada jetbot
- Apague todos los demás portátiles en ejecución seleccionando Kernel -> Shutdown All Kernels…
- Vaya a ~ / Notebooks / traffic_cones_driving /
- Abra y siga el cuaderno data_collection_cones.ipynb
Paso 5: Entrene la red neuronal en la máquina GPU
A continuación, utilizaremos los datos recopilados para volver a entrenar el modelo de aprendizaje profundo AlexNet en la máquina GPU (host) ejecutando train_model_cones.ipynb.
Tenga en cuenta que train_model_cones.ipynb es el único cuaderno de Jupyter en este tutorial que NO se ejecuta en JetBot
- Conéctese a una máquina GPU con PyTorch instalado y un servidor Jupyter Lab en ejecución
- Sube el cuaderno train_model_cones.ipynb y a esta máquina
- Suba el archivo dataset_cones.zip que creó en el cuaderno data_collection_cones.ipynb y extraiga este conjunto de datos. (Después de este paso, debería ver una carpeta llamada dataset_cones aparecer en el explorador de archivos).
- Abra y siga el cuaderno train_model_cones.ipynb. Al final de este paso, creará un modelo: el archivo best_model_cones.pth, que luego debe cargarse en el JetBot para ejecutar la demostración en vivo.
Paso 6: Ejecute la demostración en vivo en JetBot
Este último paso es cargar el modelo best_model_cones.pth al JetBot y ejecutarlo.
- Alimente su robot con la batería USB
- Conéctese de nuevo a su robot navegando a https://: jetbot-ip-address:: 8888
- Inicie sesión con la contraseña predeterminada jetbot
- Apague todos los demás portátiles en ejecución seleccionando Kernel -> Shutdown All Kernels…
- Vaya a ~ / Notebooks / traffic_cones_driving
- Abra y siga el cuaderno live_demo_cones.ipynb
Comience con cuidado y dé a JetBot suficiente espacio para moverse. Pruebe diferentes configuraciones de cono y vea qué tan bien se desempeña el robot en diferentes entornos, iluminación, etc. Mientras que el cuaderno live_demo_cones.ipynb explica todos los pasos en detalle, la siguiente tabla muestra la lógica de los movimientos del robot dadas las probabilidades predichas por los modelos.
El cuaderno también explica cómo almacenar el historial de movimientos del robot con probabilidades libres / izquierda / derecha / bloqueadas predichas por el modelo y cómo hacer dos videos FPV (Vista en primera persona) (a velocidades de 1 fps y 15 fps) con telemetría superpuesta y Datos de acciones de JetBot. Son útiles para depurar, ajustar el controlador PID y mejorar el modelo.
¡Diviértete y avísame si tienes preguntas!:-)
El código está disponible en Github
Recomendado:
Transferir contactos usando Bluetooth: 3 pasos
Transfiera contactos usando Bluetooth: Bluetooth es confiable y le ahorra la molestia de buscar el cable apropiado y el software propietario. Los registros de la agenda telefónica se transferirán en formato vCard o * .vcf. Para administrar los registros de vCard, generalmente hay una función de "Importar"
Señal de tráfico con Arduino y sensor ultrasónico: 4 pasos
Señal de tráfico que utiliza Arduino y sensor ultrasónico: con la era de las tecnologías inteligentes, todo se está volviendo más inteligente y el sistema de transporte inteligente es uno de los campos que va a tener un gran impacto en nuestras vidas. Publicado originalmente en: https://highvoltages.co/tutorial/arduino-tutorial/traffic-sig
Verificación de informes de tráfico (NL) con felpudo: 6 pasos
Verificación de informes de tráfico (NL) con felpudo: en este instructivo, describiré cómo construir un felpudo que verifique los informes de tráfico de las carreteras holandesas. Una vez que salga en su felpudo y haya un atasco en su ruta, el tapete cambiará a un color rojo. Cuando no hay tráfico
SMART MAKE HATC - Control de tráfico aéreo casero con 4x RTL-SDR (50 $): 7 pasos
SMART MAKE HATC - Control de tráfico aéreo casero con 4x RTL-SDR (50 $): Prueba del concepto de HATC de bajo costo - Control de tráfico aéreo casero A continuación se muestra una simple recopilación de información sobre la recepción del tráfico aéreo, un enlace de algún software para ser utilizado y una propuesta de sistema de hardware de prueba de concepto
Analizador de patrones de tráfico con detección de objetos en vivo: 11 pasos (con imágenes)
Analizador de patrones de tráfico con detección de objetos en vivo: en el mundo actual, los semáforos son esenciales para una carretera segura. Sin embargo, muchas veces, los semáforos pueden ser molestos en situaciones en las que alguien se acerca al semáforo justo cuando se pone en rojo. Esto es una pérdida de tiempo, especialmente si la luz es pr