El proyecto Camera Tracker es un sistema de seguimiento de objetos que utiliza una cámara ESP32-CAM montada en una torreta. El sistema es capaz de reconocer y seguir objetos utilizando un modelo de aprendizaje automático optimizado, implementado en la plataforma Edge Impulse.
Consulta la documentación del proyecto para obtener una visión más detallada de los objetivos, implementación y resultados del sistema.
- Seguimiento de objetos.
- Integración de hardware utilizando ESP32-CAM y servomotores.
- Modelo de reconocimiento de objetos entrenado con Edge Impulse.
- Interfaz web para monitoreo y configuración.
El hardware del proyecto se basa en las siguientes etapas:
- Medición de Componentes: Se realizan mediciones detalladas de los componentes.
- Diseño Inicial: Se elabora un boceto preliminar a mano alzada.
- Diseño 3D: Se utiliza Autodesk Fusion 360 para diseñar las piezas y exportarlas en formato
.stl
para impresión 3D. - Prototipado: Se desarrollan varias versiones del prototipo para optimizar el equilibrio y funcionalidad del sistema.
El reconocimiento de objetos se realiza mediante el uso de Edge Impulse, donde se entrena un modelo para identificar diferentes elementos. El proceso incluye:
- Captura de Imágenes: Se toman aproximadamente 700 fotos de cada objeto con buena iluminación y fondo uniforme.
- Etiquetado: Las imágenes se etiquetan manualmente en la plataforma Edge Impulse.
- Generación de Features: Se especifica el "color depth" (escala de grises o RGB).
- Entrenamiento del Modelo: Se ajusta el modelo y se realiza el entrenamiento.
- Evaluación: Se utiliza la matriz de confusión para analizar el rendimiento del modelo y determinar posibles mejoras.
- Abre el IDE de Arduino.
- Ve a Archivo > Preferencias y añade la URL para el ESP32 en "Gestor de URLs Adicionales":
https://dl.espressif.com/dl/package_esp32_index.json
- Dirígete a Herramientas > Placa > Gestor de Placas y busca e instala las siguientes versiones:
- Arduino AVR Boards: Versión 1.8.6.
- ESP32 by Espressif Systems: Versión 2.0.5.
- Selecciona AI-Thinker ESP32-CAM en el menú de placas.
- Configura el puerto correspondiente al dispositivo conectado.
- Abre el Library Manager desde el IDE de Arduino.
- Instala las siguientes bibliotecas:
- ESP32Servo: Versión 3.0.5.
- FreeRTOS (incluida por defecto):
#include <freertos/FreeRTOS.h> #include <freertos/semphr.h>
- WiFi y esp_http_server (incluidas por defecto):
#include <WiFi.h> #include "esp_http_server.h"
- Arduino Core (incluida por defecto):
#include "Arduino.h"
- Importa manualmente la biblioteca de inferencia generada por Edge Impulse:
- Descarga el archivo
.zip
desde Edge Impulse. - Usa la opción Sketch > Incluir Biblioteca > Añadir biblioteca .ZIP.
- Incluye los siguientes archivos en tu proyecto:
#include <lapor-project-1_inferencing.h> #include "edge-impulse-sdk/dsp/image/image.hpp"
- Descarga el archivo
- Asegúrate de tener las bibliotecas para dibujado de bounding boxes:
#include "img_converters.h" #include "fb_gfx.h"
Clona el repositorio del proyecto para acceder a todo el código fuente y configuración:
git clone https://github.com/tpII/2024-J2-CameraTracker.git
Este proyecto está bajo la Licencia GPL 3.0. Consulta el archivo LICENSE
para más detalles.