Lea nuestro artículo sobre

.

Como 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 empresa holandesa que proporciona soluciones avanzadas de sensores para conservar la fauna en peligro y gestionar eficazmente las zonas de parques mediante tecnología punta.

En esta serie de posts, hacemos una crónica de nuestro viaje en el diseño y la construcción de un sistema ML para utilizar los medios de las cámaras trampa de Smart Parks. En concreto, el objetivo del proyecto es utilizar un enfoque de ML para ingerir el data procedente de las cámaras trampa y, a continuación, proporcionar percepciones, como la presencia de personas o tipos específicos de animales en las imágenes o vídeos captados por las cámaras. Esta información es utilizada después por los guardas del parque para proteger mejor la fauna y detectar antes posibles peligros como los cazadores furtivos.

Introducción

Parques inteligentes necesitaba un sistema de seguimiento de la fauna capaz de realizar las siguientes tareas:

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

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

  • Supervise los medios procedentes de las cámaras trampa

Nuestro principio rector aquí era uno que favorecía la velocidad. Así que, cuando empezamos, nuestra única prioridad era desplegar lo antes posible un producto de extremo a extremo básico pero plenamente operativo.

Este será el primer artículo de muchos y se centrará en el contexto del proyecto, la visión de alto nivel del sistema diseñado y las ventajas de nuestra solución basada en el cloud. En los próximos profundizaremos en cómo conectar las cámaras trampa al Plataforma en la nube de Google y puntos finales externos utilizando una herramienta llamada Nodo-RED y cómo diseñar una aplicación web sencilla utilizando 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 de modo que cuando se detecta actividad delante de ellas, se toma inmediatamente una fotografía o un vídeo. Permiten a los guardas de los parques y a los biólogos especializados en fauna salvaje ver a nuestros 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 mucha mano de obra y personal. 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 recoger data conllevan 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 precisos 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 en la nube de Google

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

Google ofrece soluciones de almacenamiento como Almacenamiento en la nube de Google, almacenamiento de objetos con caché de borde integrada para almacenar data no estructurados, soluciones informáticas como Funciones en la nube, Funciones como servicio para ejecutar código basado en eventos y también ofrece útiles API de IA, 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 medios se suben a un cubo de almacenamiento en la nube de Google; cómo sucede esto exactamente se tratará en el segundo artículo de esta serie. El cubo se organiza en carpetas, una para cada cámara trampa. Una vez subido un archivo, se activa inmediatamente una función de Google Cloud, esta función 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

  • Archive las respuestas de la API en otro Cubo de almacenamiento en la nube

  • Enviar las predicciones a un punto final fuera de GCP

Esta arquitectura ofrece múltiples ventajas:

  • Escalabilidad: Gracias al uso de funciones en la nube, 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 cubo de almacenamiento en la nube de entrada al mismo tiempo).

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

  • Automatización: El uso conjunto de todos estos servicios nos permite disponer de un pipeline 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 de comunicación

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 es considerado un “cambio de juego” por los investigadores de la vida salvaje. Centrémonos más en las API utilizadas.

API de visión y API de inteligencia de vídeo ofrecen potentes modelos de aprendizaje automático preentrenados 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 características proporcionadas por las API:

  • Detección de etiquetas: Tener una idea de las entidades (por ejemplo, animales, personas, vehículos) presentes en el medio. 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. A diferencia del 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 comprender 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

Puede jugar con la API de Vision simplemente cargando su imagen sobre aquí.

El camino por delante

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

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

  • Experimentación con modelos: Hasta ahora hemos experimentado sólo con API o modelos preentrenados, pero en el futuro sería interesante construir un dataset de imágenes/vídeos recogidos por las cámaras trampa. Etiquetarlas, ya sea manualmente o mediante el sistema que acabamos de presentar, y utilizarlas después para entrenar modelos de visión por ordenador personalizados con el fin de lograr una mayor precisión.

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

  • Inteligencia Artificial Edge: 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. La IA de borde, con un modelo desplegado y funcionando 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 al cloud

En este primer artículo, hablábamos de cómo construimos nuestra canalización escalable totalmente automatizada en Google Cloud, que nos permite ingerir medios y utilizar las API de aprendizaje automático para extraer perspectivas de ellos. Proporciona una línea de base sólida, fácil y rápida de implementar para cualquier tipo de proyecto que implique el consumo de medios y el uso del aprendizaje automático para extraer perspectivas de ellos.

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

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!

Medio Blog por Artefact.

Este artículo se publicó inicialmente en Medium.com.
¡Síganos en nuestro Medium Blog !