Sistema de detección de palomas
Identifica palomas y defiende tu jardín contra estas aves que nunca dejan de comer.
Objetivos del Sistema de detección de palomas
El objetivo principal era desarrollar un sistema que detecte palomas y se ejecute en una Raspberry Pi. Debería poder activar una salida para ahuyentar a las palomas.
¿Por qué queremos ahuyentar a las palomas?
Principalmente hay dos razones para esto: En primer lugar, imagínate durmiendo en un domingo soleado. Tuviste una semana difícil y quieres dormir hasta tarde. Todo va bien hasta que de repente te despierta el molesto sonido de una paloma. El sueño se ha ido y también tu buen humor.
En segundo lugar, si desea ayudar a las aves más pequeñas a sobrevivir alimentándolas, es posible que haya reconocido que las palomas no están muy lejos. Puedes llenar el comedero, y después de un día está vacío porque alguna paloma hambrienta no pudo retener.
Para resolver este problema sin asustar a las aves «buscadas», desarrollamos este genial proyecto.
Idea básica
Después de decidir qué sistema básico queríamos desarrollar, pensamos en qué hardware queríamos usar y qué hardware podría usarse al aire libre sin un enchufe. El hardware que elegimos usar se encontró rápidamente: una Raspberry Pi 3 B+ con un Intel Neural Compute Stick.
Queríamos distinguir entre palomas y todas las demás especies de aves. Por lo tanto, fue necesario entrenar un modelo de TensorFlow que detecte solo palomas.
Introducción
Este proyecto fue creado como el contenido de la conferencia «Inteligencia artificial aplicada», supervisada por Dionysios Satikidis y Jan Seyler en la Universidad de Ciencias Aplicadas de Esslingen. Todo el hardware fue proporcionado por los profesores. Este texto cubre los aspectos de diseño, implementación y prueba de aplicaciones y modelos de IA en el contexto de una encuesta completa.
Los siguientes pasos le darán una breve descripción de los pasos necesarios. Para obtener más detalles, consulte README.md en nuestra página de Github.
I. Recolectando los datos para entrenar nuestro propio detector de objetos
En primer lugar recopilamos imágenes de palomas de Google. Debido a que el resultado no fue lo suficientemente satisfactorio, usamos una cámara que se activa con el movimiento para tomar imágenes de palomas en su entorno «real».
Después de recopilar suficientes imágenes, llegó el momento de la parte más divertida del proyecto: etiquetar las imágenes para que el detector de objetos sepa cómo se ve una paloma.
Después de horas de trabajo logramos pasar las imágenes y pudimos comenzar a entrenar nuestro propio detector de objetos.
II. Entrenamiento del detector de objetos con la API de detección de objetos de TensorFlow
El entrenamiento real se realizó en una computadora portátil con una GPU. El proceso de formación tomó aproximadamente 5-6 horas. El resultado de esta parte fue un detector de objetos entrenado personalizado, basado en un modelo previamente entrenado.
El modelo preentrenado, que forma la base de nuestro detector de palomas, se llama «ssd_inception_v2_coco». Elegimos este porque es un modelo muy liviano y, por lo tanto, rápido, que brinda una precisión suficiente para nuestro caso de uso.
Después de probar nuestro modelo en la máquina de entrenamiento, tuvimos que convertirlo para usarlo con Intel Neural Compute Stick en Raspberry Pi.
tercero Convirtiendo el modelo para usarlo en una Raspberry con el NCS2
Neural Compute Stick no puede ejecutar modelos de TensorFlow directamente. Primero debe convertirlos a un formato que el NCS2 entienda. Intel proporciona un programa llamado «Model Optimizer» para esto. Básicamente toma el modelo TF y lo convierte para la arquitectura del NCS2.
IV. Momento de la verdad
Finalmente había llegado el momento. Tomamos nuestro modelo entrenado y lo copiamos en la Raspberry Pi. Aquí puedes ver el resultado:
Materia uitlizado para el Sistema de detección de palomas
Material usado en este proyecto
Componentes de hardware
Raspberry Pi 3 Modelo B+
Raspberry Pi 3 Modelo B+
× 1
Módulo de cámara
Módulo de cámara Raspberry Pi
× 1
Palo de cálculo neuronal 2
Intel Neural Compute Stick 2
× 1Computadora con GPU
Instalado Openvino con modelo optimizador Tensorflow
× 1
Arduino UNO
Arduino UNO
× 1
Zumbador, piezoeléctrico
Zumbador, piezoeléctrico
× 1
LED de 5 mm: amarillo
LED de 5 mm: amarillo
× 1
Aplicaciones de software y servicios en línea
TensorFlow
TensorFlowOpenCV
OpenCVKit de herramientas OpenVINO
Kit de herramientas Intel OpenVINO