Tabla de contenido:

Reciclar el robot de clasificación: 15 pasos (con imágenes)
Reciclar el robot de clasificación: 15 pasos (con imágenes)

Video: Reciclar el robot de clasificación: 15 pasos (con imágenes)

Video: Reciclar el robot de clasificación: 15 pasos (con imágenes)
Video: Como hacer un robot de plástico [ideas creativas] 2024, Noviembre
Anonim
Image
Image
Obteniendo los datos
Obteniendo los datos

¿Sabía que la tasa de contaminación promedio en comunidades y empresas llega hasta el 25%? Eso significa que una de cada cuatro piezas de reciclaje que tira no se recicla. Esto se debe a un error humano en los centros de reciclaje. Tradicionalmente, los trabajadores clasifican la basura en diferentes contenedores según el material. Los seres humanos están destinados a cometer errores y terminar no clasificando la basura correctamente, lo que lleva a la contaminación. A medida que la contaminación y el cambio climático se vuelven aún más importantes en la sociedad actual, el reciclaje desempeña un papel fundamental en la protección de nuestro planeta. Al usar robots para clasificar la basura, las tasas de contaminación disminuirán drásticamente, sin mencionar que son mucho más baratas y sostenibles. Para resolver esto, creé un robot de clasificación de reciclaje que utiliza el aprendizaje automático para clasificar entre diferentes materiales de reciclaje.

Paso 1: Partes

Asegúrese de tener las siguientes partes para seguir junto con este tutorial:

Piezas impresas en 3D (consulte el paso a continuación)

Raspberry Pi RPI 4 4 GB

Acelerador USB Google Coral

Arduino Uno R3

Módulo de cámara Raspberry Pi V2

Fuente de alimentación de pared de 5 V 2 A CC

Fuente de alimentación DC 12V

SG90 9g Micro Servos 4 piezas.

Tuerca hexagonal de nailon autobloqueante de acero inoxidable M3 x 0,5 mm 100 piezas.

Tornillos de titanio con cabeza de botón M3x20 10 uds.

Servomotor analógico de par de engranajes metálicos MG996R 4 piezas.

Tarjeta de memoria Samsung 32GB Select

Cable flexible Adafruit para cámara Raspberry Pi - 1 metro

M2 Macho Hembra Latón Espaciador Separador Tornillo Tuercas Surtido Kit

Ventilador de 60 mm y 12 V

Caja de proyecto de 6.69 "x 5.12" x 2.95"

Paso 2: Piezas impresas en 3D

Deberá imprimir en 3D todas las piezas del brazo robótico. Puedes encontrar todos los archivos aquí.

Paso 3: Código

Clone mi repositorio de GitHub para seguir este tutorial.

Paso 4: obtener los datos

Para entrenar el modelo de detección de objetos que puede detectar y reconocer diferentes materiales de reciclaje, utilicé el conjunto de datos trashnet que incluye 2527 imágenes:

  • 501 vidrio
  • 594 papel
  • 403 cartón
  • 482 plástico
  • 410 de metal
  • 137 basura

La imagen de arriba es un ejemplo de una de las imágenes del conjunto de datos.

Este conjunto de datos es muy pequeño para entrenar un modelo de detección de objetos. Solo hay alrededor de 100 imágenes de basura que son demasiado pequeñas para entrenar un modelo preciso, por lo que decidí omitirlas.

Puede utilizar esta carpeta de Google Drive para descargar el conjunto de datos. Asegúrese de descargar el archivo dataset-resized.zip. Contiene el conjunto de imágenes cuyo tamaño ya se ha cambiado a un tamaño más pequeño para permitir un entrenamiento más rápido. Si desea cambiar el tamaño de las imágenes sin procesar a su gusto, no dude en descargar el archivo dataset-original.zip.

Paso 5: etiquetar las imágenes

Etiquetar las imágenes
Etiquetar las imágenes

A continuación, necesitamos etiquetar varias imágenes de diferentes materiales de reciclaje para poder entrenar el modelo de detección de objetos. Para hacer esto, utilicé labelImg, un software gratuito que te permite etiquetar cuadros delimitadores de objetos en imágenes.

Etiquete cada imagen con la etiqueta adecuada. Este tutorial te muestra como. Asegúrese de que cada cuadro delimitador esté lo más cerca posible del borde de cada objeto para garantizar que el modelo de detección sea lo más preciso posible. Guarde todos los archivos.xml en una carpeta.

La foto de arriba muestra cómo etiquetar sus imágenes.

Esta es una experiencia muy tediosa y paralizante. Afortunadamente para ti, ¡ya etiqueté todas las imágenes para ti! Lo puedes encontrar aquí.

Paso 6: Entrenamiento

En términos de entrenamiento, decidí usar el aprendizaje por transferencia usando Tensorflow. Esto nos permite entrenar un modelo decentemente preciso sin una gran cantidad de datos.

Hay un par de formas en las que podemos hacer esto. Podemos hacerlo en nuestra máquina de escritorio local en la nube. La capacitación en nuestra máquina local llevará mucho tiempo dependiendo de qué tan poderosa sea su computadora y si tiene una GPU poderosa. Esta es probablemente la forma más fácil en mi opinión, pero nuevamente con la desventaja de la velocidad.

Hay algunas cosas clave a tener en cuenta sobre el aprendizaje por transferencia. Debes asegurarte de que el modelo previamente entrenado que usas para entrenar sea compatible con Coral Edge TPU. Puede encontrar modelos compatibles aquí. Usé el modelo MobileNet SSD v2 (COCO). Siéntase libre de experimentar con otros también.

Para entrenar en su máquina local, recomendaría seguir el tutorial de Google o el tutorial de EdjeElectronics si se ejecuta en Windows 10. Personalmente, probé el tutorial de EdjeElectroncs y logré el éxito en mi escritorio. No puedo confirmar si el tutorial de Google funcionará, pero me sorprendería que no funcione.

Para entrenar en la nube, puede usar AWS o GCP. Encontré este tutorial que puedes probar. Utiliza las TPU en la nube de Google que pueden entrenar su modelo de detección de objetos súper rápido. No dude en utilizar AWS también.

Ya sea que entrene en su máquina local o en la nube, debería terminar con un modelo de flujo tensor entrenado.

Paso 7: compilación del modelo entrenado

Compilar el modelo entrenado
Compilar el modelo entrenado

Para que su modelo entrenado funcione con Coral Edge TPU, debe compilarlo.

Arriba hay un diagrama del flujo de trabajo.

Después del entrenamiento, debe guardarlo como un gráfico congelado (archivo.pb). Luego, debe convertirlo en un modelo de Tensorflow Lite. Observe cómo dice "Cuantización posterior al entrenamiento". Si usó los modelos previamente entrenados compatibles cuando usa el aprendizaje por transferencia, no es necesario que haga esto. Eche un vistazo a la documentación completa sobre compatibilidad aquí.

Con el modelo de Tensorflow Lite, debe compilarlo en un modelo de Edge TPU. Vea los detalles sobre cómo hacer esto aquí.

Paso 8: Reciclar el modelo de detección

Si no desea repasar la molestia de entrenar, convertir y compilar el modelo de detección de objetos, consulte mi modelo de detección de reciclaje aquí.

Paso 9: implementar el modelo

Implementar el modelo
Implementar el modelo

El siguiente paso es configurar Raspberry Pi (RPI) y Edge TPU para ejecutar el modelo de detección de objetos entrenados.

Primero, configure el RPI usando este tutorial.

A continuación, configure Edge TPU siguiendo este tutorial.

Finalmente, conecte el módulo de la cámara RPI a la raspberry pi.

¡Ahora está listo para probar su modelo de detección de objetos!

Si ya clonó mi repositorio, querrá navegar al directorio RPI y ejecutar el archivo test_detection.py:

python test_detection.py --model recycling_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 / detect_edgetpu.tflite --labels recycling_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 / labels.txt

Debería aparecer una pequeña ventana y si pones una botella de agua de plástico u otro material reciclado, debería detectarlo como en la imagen de arriba.

Presione la letra "q" en su teclado para finalizar el programa.

Paso 10: construya el brazo robótico

Construye el brazo robótico
Construye el brazo robótico

El brazo robótico es un brazo impreso en 3D que encontré aquí. Simplemente siga el tutorial sobre cómo configurarlo.

La imagen de arriba muestra cómo resultó mi brazo robótico.

Asegúrese de conectar los pines del servo a los pines de E / S de Arduino en mi código. Conecte los servos de la parte inferior a la parte superior del brazo en este orden: 3, 11, 10, 9, 6, 5. ¡No conectarlos en este orden hará que el brazo mueva el servo incorrecto!

Pruebe para verlo funcionando navegando al directorio de Arduino y ejecutando el archivo basicMovement.ino. Esto simplemente agarrará un objeto que coloque frente al brazo y lo dejará caer detrás.

Paso 11: Conexión del RPI y el brazo robótico

Conexión del brazo robótico y RPI
Conexión del brazo robótico y RPI

Primero necesitamos montar el módulo de la cámara en la parte inferior de la garra. La imagen de arriba muestra cómo debería verse.

Intente alinear la cámara lo más recta posible para minimizar los errores al agarrar el material reciclado reconocido. Deberá utilizar el cable plano largo del módulo de la cámara como se ve en la lista de materiales.

A continuación, debe cargar el archivo roboticArm.ino en la placa Arduino.

Finalmente, solo tenemos que conectar un cable USB entre el puerto USB del RPI y el puerto USB del Arduino. Esto les permitirá comunicarse vía serial. Siga este tutorial sobre cómo configurar esto.

Paso 12: Toques finales

Toques finales
Toques finales
Toques finales
Toques finales

Este paso es completamente opcional, pero me gusta poner todos mis componentes en una bonita caja de proyecto.

Las imágenes de arriba muestran cómo se ve.

Puede encontrar el cuadro del proyecto en la lista de materiales. Acabo de perforar algunos agujeros y utilicé separadores de latón para montar los componentes electrónicos. También monté 4 ventiladores de enfriamiento para mantener un flujo de aire constante a través del RPI y TPU cuando hace calor.

Paso 13: Ejecutando

¡Ahora está listo para encender tanto el brazo robótico como el RPI! En el RPI, simplemente puede ejecutar el archivo recycling_detection.py. ¡Esto abrirá una ventana y el brazo robótico comenzará a funcionar como en el video de demostración! Presione la letra "q" en su teclado para finalizar el programa.

¡Siéntete libre de jugar con el código y divertirte!

Paso 14: Trabajo futuro

Espero usar R. O. S. para controlar el brazo robótico con movimientos más precisos. Esto permitirá una recogida más precisa de objetos.

Paso 15: ¿Preguntas?

¡No dude en dejar un comentario a continuación si tiene alguna pregunta!

Recomendado: