Tabla de contenido:
- Paso 1: Partes
- Paso 2: Piezas impresas en 3D
- Paso 3: Código
- Paso 4: obtener los datos
- Paso 5: etiquetar las imágenes
- Paso 6: Entrenamiento
- Paso 7: compilación del modelo entrenado
- Paso 8: Reciclar el modelo de detección
- Paso 9: implementar el modelo
- Paso 10: construya el brazo robótico
- Paso 11: Conexión del RPI y el brazo robótico
- Paso 12: Toques finales
- Paso 13: Ejecutando
- Paso 14: Trabajo futuro
- Paso 15: ¿Preguntas?
Video: Reciclar el robot de clasificación: 15 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
¿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
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
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
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
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
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
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:
Sistema de clasificación de color: sistema basado en Arduino con dos cinturones: 8 pasos
Sistema de clasificación por color: Sistema basado en Arduino con dos correas: El transporte y / o empaque de productos y artículos en el campo industrial se realiza mediante líneas fabricadas con correas transportadoras. Esos cinturones ayudan a mover el artículo de un punto a otro con una velocidad específica. Algunas tareas de procesamiento o identificación pueden ser
Sistema de clasificación de productos simple con Raspberry Pi y Arduino: 5 pasos
Sistema de clasificación de productos simple con Raspberry Pi y Arduino: Soy un FAN de la ingeniería, me encanta programar y hacer proyectos relacionados con la electrónica en mi tiempo libre, en este proyecto compartiría con ustedes un sistema de clasificación de productos simple que hice recientemente. este sistema, por favor prepare los componentes a
Exposición a los rayos UV de PCB al reciclar un escáner antiguo: 6 pasos (con imágenes)
Exposición UV a PCB al reciclar un escáner viejo: Hola, así es como hice mi exposición UV a PCB al reciclar un escáner viejo
Clasificación robótica de cuentas: 3 pasos (con imágenes)
Clasificación robótica de cuentas: en este proyecto, construiremos un robot para clasificar las cuentas de Perler por color. Siempre he querido construir un robot de clasificación de colores, así que cuando mi hija se interesó en la elaboración de cuentas de Perler, vi esto como una oportunidad perfecta .Las perlas de Perler se utilizan para
MESH: Sistema de clasificación con botones conectados a Internet: 5 pasos (con imágenes)
MESH: Sistema de clasificación con botones conectados a Internet: ¿Qué pasaría si los restaurantes u otras empresas pudieran recopilar los comentarios de los clientes en el acto y sincronizarlos instantáneamente con una hoja de cálculo? Esta receta es una forma rápida y sencilla de crear su propio sistema de clasificación interactivo. Solo toma un conjunto de b