Lea nuestro artículo sobre

class="img-responsive

.

En Artefact nos preocupamos por influir positivamente en las personas, el medio ambiente y la comunidad. Por eso nos comprometemos a asociarnos con organizaciones sin ánimo de lucro que hacen de estos valores los pilares básicos de su visión.
Por ello, colaboramos con Smart Parks, una web holandesa Compañia que ofrece soluciones avanzadas de sensores para conservar la fauna en peligro de extinción y gestionar eficazmente las zonas de parques mediante tecnología punta.

En esta serie de entradas, relatamos nuestro viaje en el diseño y la construcción de un sistema de ML para utilizar los medios de comunicación de las cámaras trampa de Smart Parks. En concreto, el objetivo del proyecto es utilizar un enfoque ML para ingerir los data procedentes de las cámaras trampa y, a continuación, proporcionar información, como la presencia de personas o tipos específicos de animales en las imágenes o vídeos capturados por las cámaras. Los guardas del parque utilizarán esta información para proteger mejor la fauna y detectar antes posibles peligros, como los cazadores furtivos.

Introducción

Smart Parks necesitaba un sistema de vigilancia de la fauna capaz de realizar las siguientes tareas:

  • Ingesta de los medios (imágenes y/o vídeos) procedentes de cámaras trampa en un único lugar
  • Detectar automáticamente la presencia de personas y animales en el medio

  • Accede a las predicciones en Earth Rangers, una aplicación utilizada para gestionar los parques y su fauna salvaje

  • Supervisar los medios procedentes de las cámaras trampa

Nuestro principio rector era la rapidez. Así que, cuando empezamos, nuestra prioridad era desplegar lo antes posible un producto básico pero totalmente operativo.

Este será el primer artículo de muchos y se centrará en el contexto del proyecto, la vista de alto nivel del sistema diseñado y las ventajas de nuestra solución basada en la nube. En los próximos, profundizaremos en cómo conectar las cámaras trampa a Google Cloud Platform y a puntos finales externos mediante una herramienta llamada Node-RED y en cómo diseñar una sencilla aplicación web con Streamlit para gestionar las cámaras trampa colocadas en los parques.

Empecemos.

Cámaras trampa

Antes de entrar en materia, repasemos rápidamente qué son las cámaras trampa y cómo pueden utilizarse para apoyar la protección y conservación de los animales.

Las cámaras trampa son dispositivos que llevan sensores incorporados para que, cuando se detecte actividad delante de ellas, se tome inmediatamente una foto o un vídeo. Permiten a los guardas de los parques y a los biólogos de la fauna salvaje ver a nuestras congéneres sin interferir en su comportamiento normal.

Recorrer los parques y recopilar información es una técnica válida, pero es un proceso caro, que requiere mucho trabajo y muchas personas. Además, también existe el riesgo de toparse con fauna peligrosa o, peor aún, con cazadores furtivos.

Aunque las distintas técnicas para recopilar data presentan diferentes ventajas y desventajas, las cámaras trampa son una fuente excelente. La gran ventaja de las cámaras trampa es que funcionan de forma continua y silenciosa y pueden registrar data muy precisas sin molestar al sujeto fotografiado. Pueden ser útiles tanto para vigilar subrepticiamente posibles actividades ilícitas como para cuantificar el número de especies diferentes en una zona y determinar sus pautas de comportamiento y actividad.

Plataforma Google Cloud

Para el almacenamiento y la gestión de los soportes de las trampas de cámara, optamos por utilizar una solución basada en la nube, más concretamente, Google Cloud Platform.

Google Servicios Soluciones de almacenamiento como Google Cloud Storage, almacenamiento de objetos con almacenamiento en caché integrado para almacenar datos no estructurados data, soluciones informáticas como Cloud Functions, Functions as a Service para ejecutar código basado en eventos y también Servicios útiles APIs AI por ejemplo:

Disponer de todos estos componentes en un único entorno unificado era la solución ideal para nosotros y nos ayudó a ofrecer una solución operativa en poco tiempo.

El flujo de trabajo

En primer lugar, los archivos multimedia se suben a un bucket de Google Cloud Storage. En el segundo artículo de esta serie explicaremos cómo se hace esto exactamente. El bucket se organiza en carpetas, una para cada cámara trampa. Una vez que se carga un archivo, se activa inmediatamente una función de Google Cloud, que se encarga de las siguientes tareas:

  • Leer los medios cargados
  • Llame a la API de Cloud Vision o de Cloud Video Intelligence para recuperar las predicciones

  • Archivar las respuestas de la API en otro Cloud Storage Bucket

  • Enviar las predicciones a un punto final fuera de GCP

class="img-responsive

Esta arquitectura ofrece múltiples ventajas:

  • Escalabilidad: Gracias al uso de Cloud Functions, la solución es capaz de escalar automáticamente en función del número de solicitudes (es decir, el número de medios cargados en el bucket de Cloud Storage de entrada al mismo tiempo)

  • Almacenamiento barato y duradero: El almacenamiento no estructurado de data en Google Cloud Storage es bastante económico (sólo 0,026 dólares por GB al mes para el nivel de almacenamiento estándar) y, además, Servicios ofrece la mejor durabilidad de objetos de su clase a lo largo de un año.

  • Automatización: El uso conjunto de todos estos servicios nos permite disponer de un proceso totalmente automatizado, sin necesidad de intervención humana. Desde la ingesta de data hasta la recuperación de predicciones, todo se ejecuta automáticamente en cuanto se carga un nuevo medio.

API de Cloud Vision y Cloud Video Intelligence

El uso del aprendizaje automático, en concreto de la visión por ordenador, para identificar automáticamente personas y animales en imágenes o vídeos ha experimentado avances significativos en los últimos años y hoy en día los investigadores de la vida salvaje lo consideran un "cambio de juego". Centrémonos más en las API utilizadas.

Vision API y Video Intelligence API ofrecen potentes modelos de aprendizaje automático preformados a través de las API REST y RPC. La primera está pensada para trabajar con imágenes, mientras que la segunda, como su nombre indica, con vídeos. Ambas son capaces de reconocer automáticamente un gran número de objetos, lugares y acciones.

Para este proyecto nos hemos centrado principalmente en estas 3 funciones que ofrecen las API:

  • Detección de etiquetas: Para tener una idea de las entidades (por ejemplo, animales, personas, vehículos) presentes en los medios. A partir de ahí, sería posible crear reglas que activen una alarma en presencia de un conjunto específico de entidades.

  • Detección/seguimiento de objetos: Para tener una idea más precisa de la ubicación de los animales/personas detectados en el medio. Al contrario que en el caso de la detección de etiquetas, aquí obtenemos también las anotaciones de las cajas de las detecciones

  • Detección de rostros/personas: Disponer de más información sobre las personas detectadas, por ejemplo, para entender sus emociones o extraer su vestimenta. Esta información adicional podría utilizarse después para distinguir a los cazadores furtivos de las personas normales

Puedes jugar con la API de Vision cargando tu imagen aquí.

class="img-responsive

El camino por delante

El camino recorrido hasta ahora es una base para el emocionante e impactante viaje que tenemos por delante. Con las herramientas básicas disponibles en un futuro próximo, podremos crear mucho valor no solo para Smart Parks, sino también para la conservación de la vida salvaje y mucho más.

Los próximos pasos implicarán estas amplias áreas de trabajo:

  • Experimentación con modelos: Hasta ahora hemos experimentado sólo con APIs o modelos pre-entrenados, pero en el futuro sería interesante construir un conjunto de datos de imágenes/vídeos recogidos por las cámaras trampa. Etiquetarlas, ya sea manualmente o utilizando el sistema que acabamos de presentar, y luego utilizarlas para entrenar modelos de Visión por Computador personalizados para lograr una mayor precisión.

  • Implementación de casos de uso: Tener ya una solución totalmente automatizada nos permitirá centrarnos más en el desarrollo de casos de uso específicos, por lo que realmente pensar en cómo explotar la información recuperada para hacer un impacto y ayudar a los guardaparques y todos los voluntarios en la protección de la vida silvestre de los parques.

  • Edge AI: Por el momento, la velocidad de ejecución de nuestro bucle de predicción es satisfactoria para nuestro caso de uso (unos minutos). Aún tenemos áreas de mejora para acercarnos a una solución en tiempo real. Edge AI, con un modelo desplegado y ejecutándose más cerca del hardware real de la cámara trampa, es una opción que ayudaría a evitar los viajes de ida y vuelta a la nube.

En este primer artículo, explicamos cómo construimos nuestro pipeline escalable totalmente automatizado en Google Cloud, que nos permite ingerir medios y utilizar las API de aprendizaje automático para extraer información de ellos. Proporciona una base sólida, fácil y rápida de implementar para cualquier tipo de proyecto que implique el consumo de medios y el uso de aprendizaje automático para extraer información de ellos.

Gracias por leer y nos vemos en los próximos artículos de la serie donde explicaremos con más detalle cómo se conecta efectivamente la arquitectura presentada con las cámaras trampa, y donde recorreremos la aplicación web diseñada para gestionarlas, así que ¡permaneced atentos!

Un agradecimiento especial a Maël Deschamps por su ayuda en la revisión del contenido de este post, y a Tim van Dam, de Smart Parks, por su apoyo durante el proyecto. ¡Sois geniales!

class="img-responsive

Blog de Medium por Artefact.

Este artículo fue publicado inicialmente en Medium.com.
¡Síganos en nuestro blog de Medium!