Detecte la variación poblacional de especies en peligro de extinción utilizando Amazon Rekognition PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Detecte la variación de la población de especies en peligro de extinción con Amazon Rekognition

Nuestro planeta enfrenta una crisis de extinción global. Informe de la ONU muestra un número asombroso de más de un millón de especies que se teme que estén en vías de extinción. Las razones más comunes para la extinción incluyen la pérdida de hábitat, la caza furtiva y las especies invasoras. Varios fundaciones para la conservación de la vida silvestre, investigadores científicos, voluntarios y guardabosques contra la caza furtiva han estado trabajando incansablemente para hacer frente a esta crisis. Tener información precisa y regular sobre animales en peligro de extinción en la naturaleza mejorará la capacidad de los conservacionistas de vida silvestre para estudiar y conservar especies en peligro de extinción. Los científicos de vida silvestre y el personal de campo usan cámaras equipadas con disparadores infrarrojos, llamados cámaras trampay colóquelos en los lugares más efectivos de los bosques para capturar imágenes de la vida silvestre. Luego, estas imágenes se revisan manualmente, lo cual es un proceso que consume mucho tiempo.

En esta publicación, demostramos una solución usando Etiquetas personalizadas de Amazon Rekognition junto con cámaras trampa con sensor de movimiento para automatizar este proceso para reconocer especies engendradas y estudiarlas. Rekognition Custom Labels es un servicio de visión por computadora totalmente administrado que permite a los desarrolladores crear modelos personalizados para clasificar e identificar objetos en imágenes que son específicos y únicos para su caso de uso. Detallamos cómo reconocer especies de animales en peligro de extinción a partir de imágenes recopiladas con cámaras trampa, obtener información sobre el recuento de su población y detectar humanos a su alrededor. Esta información será útil para los conservacionistas, quienes pueden tomar decisiones proactivas para salvarlos.

Resumen de la solución

El siguiente diagrama ilustra la arquitectura de la solución.

Esta solución utiliza los siguientes servicios de IA, tecnologías sin servidor y servicios administrados para implementar una arquitectura escalable y rentable:

  • Atenea amazónica – Un servicio de consulta interactivo sin servidor que facilita el análisis de datos en Amazon S3 utilizando SQL estándar
  • Reloj en la nube de Amazon – Un servicio de monitoreo y observabilidad que recopila datos operativos y de monitoreo en forma de registros, métricas y eventos.
  • Amazon DynamoDB – Una base de datos de valores clave y documentos que ofrece un rendimiento de milisegundos de un solo dígito a cualquier escala
  • AWS Lambda – Un servicio de cómputo sin servidor que le permite ejecutar código en respuesta a disparadores como cambios en los datos, cambios en el estado del sistema o acciones del usuario
  • Amazon QuickSight – Un servicio de inteligencia empresarial basado en aprendizaje automático (ML) sin servidor que proporciona información, paneles interactivos y análisis enriquecidos
  • Reconocimiento de amazonas – Utiliza ML para identificar objetos, personas, texto, escenas y actividades en imágenes y videos, así como para detectar cualquier contenido inapropiado
  • Etiquetas personalizadas de Amazon Rekognition – Utiliza AutoML para ayudar a entrenar modelos personalizados para identificar los objetos y escenas en imágenes que son específicas para sus necesidades comerciales
  • Servicio de cola simple de Amazon (Amazon SQS) – Un servicio de cola de mensajes completamente administrado que le permite desacoplar y escalar microservicios, sistemas distribuidos y aplicaciones sin servidor
  • Servicio de almacenamiento simple de Amazon (Amazon S3) – Sirve como un almacén de objetos para documentos y permite una gestión central con controles de acceso ajustados.

Los pasos de alto nivel en esta solución son los siguientes:

  1. Entrene y construya un modelo personalizado utilizando etiquetas personalizadas de Rekognition para reconocer especies en peligro de extinción en el área. Para este post, nos entrenamos en imágenes de rinoceronte.
  2. Las imágenes que se capturan a través de las cámaras trampa del sensor de movimiento se cargan en un depósito S3, que publica un evento para cada imagen cargada.
  3. Se activa una función Lambda para cada evento publicado, que recupera la imagen del depósito S3 y la pasa al modelo personalizado para detectar el animal en peligro de extinción.
  4. La función Lambda utiliza la API de Amazon Rekognition para identificar los animales en la imagen.
  5. Si la imagen tiene alguna especie de rinoceronte en peligro de extinción, la función actualiza la base de datos de DynamoDB con el recuento del animal, la fecha de captura de la imagen y otros metadatos útiles que se pueden extraer de la imagen. EXIF cabecera.
  6. QuickSight se utiliza para visualizar el recuento de animales y los datos de ubicación recopilados en la base de datos de DynamoDB para comprender la variación de la población animal a lo largo del tiempo. Al mirar los tableros regularmente, los grupos de conservación pueden identificar patrones y aislar causas probables como enfermedades, clima o caza furtiva que podrían estar causando esta variación y tomar medidas de manera proactiva para abordar el problema.

Requisitos previos

Se requiere un buen conjunto de entrenamiento para construir un modelo efectivo utilizando las etiquetas personalizadas de Rekognition. Hemos utilizado las imágenes de AWS Marketplace (Conjunto de datos de animales y vida silvestre de Shutterstock) y Kaggle para construir el modelo.

Implementar la solución

Nuestro flujo de trabajo incluye los siguientes pasos:

  1. Entrene un modelo personalizado para clasificar las especies en peligro de extinción (el rinoceronte en nuestro ejemplo) utilizando la capacidad AutoML de las etiquetas personalizadas de Rekognition.

También puede realizar estos pasos desde la consola de etiquetas personalizadas de Rekognition. Para obtener instrucciones, consulte Creando un proyecto, Creación de conjuntos de datos de prueba y entrenamientoy Entrenamiento de un modelo de etiquetas personalizadas de Amazon Rekognition.

En este ejemplo, usamos el conjunto de datos de Kaggle. La siguiente tabla resume el contenido del conjunto de datos.

Label Conjunto de entrenamiento Equipo de prueba
León 625 156
Rinoceronte 608 152
Elefante africano 368 92
  1. Cargue las imágenes capturadas de las cámaras trampa en un depósito S3 designado.
  2. Defina las notificaciones de eventos en el Permisos del depósito de S3 para enviar una notificación a una cola de SQS definida cuando se agrega un objeto al depósito.

Definir notificación de eventos

La acción de carga desencadena un evento que se pone en cola en Amazon SQS mediante la notificación de eventos de Amazon S3.

  1. Agregue los permisos apropiados a través de la política de acceso de la cola de SQS para permitir que el depósito de S3 envíe la notificación a la cola.

ML-9942-evento-no

  1. Configure un activador de Lambda para la cola de SQS de modo que se invoque la función de Lambda cuando se reciba un nuevo mensaje.

disparador lambda

  1. Modifique la política de acceso para permitir que la función de Lambda acceda a la cola de SQS.

Política de acceso a la función Lambda

La función de Lambda ahora debería tener los permisos correctos para acceder a la cola de SQS.

Permisos de la función Lambda

  1. Configure las variables de entorno para que se pueda acceder a ellas en el código.

Variables de entorno

código de función lambda

La función Lambda realiza las siguientes tareas al recibir una notificación de la cola de SNS:

  1. Realice una llamada API a Amazon Rekognition para detectar etiquetas del modelo personalizado que identifican las especies en peligro de extinción:
exports.handler = async (event) => {
const id = AWS.util.uuid.v4();
const bucket = event.Records[0].s3.bucket.name;
const photo = decodeURIComponent(event.Records[0].s3.object.key.replace(/+/g, ' '));
const client = new AWS.Rekognition({ region: REGION });
const paramsCustomLabel = {
Image: {
S3Object: {
Bucket: bucket,
Name: photo
},
},
ProjectVersionArn: REK_CUSTOMMODEL,
MinConfidence: MIN_CONFIDENCE
}
let response = await client.detectCustomLabels(paramsCustomLabel).promise();
console.log("Rekognition customLabels response = ",response);

  1. Obtenga las etiquetas EXIF ​​de la imagen para obtener la fecha en que se tomó la imagen y otros datos EXIF ​​relevantes. El siguiente código usa las dependencias (paquete – versión) exif-reader – ^1.0.3, sharp – ^0.30.7:
const getExifMetaData = async (bucket,key)=>{
return new Promise((resolve) => {
const s3 = new AWS.S3({ region: REGION });
const param = {
Bucket: bucket,
Key : key
};

s3.getObject(param, (error, data) => {
if (error) {
console.log("Error getting S3 file",error);
resolve({status:false,errorText: error.message});
} else {
sharp(data.Body)
.metadata()
.then(({ exif }) => {
const exifProperties = exifReader(exif);
resolve({status:true,exifProp: exifProperties});
}).catch(err => {console.log("Error Processing Exif ");resolve({status:false});})
}
});
});
}

var gpsData = "";
var createDate = "";
const imageS3 = await getExifMetaData(bucket, photo);
if(imageS3.status){
gpsData = imageS3.exifProp.gps;
createDate = imageS3.exifProp.image.CreateDate;
}else{
createDate = event.Records[0].eventTime;
console.log("No exif found in image, setting createDate as the date of event", createDate);
}

La solución descrita aquí es asincrónica; las imágenes son capturadas por las cámaras trampa y luego se cargan en un depósito S3 para su procesamiento. Si las imágenes de las cámaras trampa se cargan con más frecuencia, puede extender la solución para detectar humanos en el área monitoreada y enviar notificaciones a los activistas interesados ​​para indicar una posible caza furtiva en las cercanías de estos animales en peligro de extinción. Esto se implementa a través de la función Lambda que llama a la API de Amazon Rekognition para detectar etiquetas para la presencia de un ser humano. Si se detecta una persona, se registra un mensaje de error en CloudWatch Logs. Una métrica filtrada en el registro de errores activa una alarma de CloudWatch que envía un correo electrónico a los activistas de la conservación, quienes pueden tomar medidas adicionales.

  1. Expanda la solución con el siguiente código:
const paramHumanLabel = {
Image: {
S3Object: {
Bucket: bucket,
Name: photo
},
},
MinConfidence: MIN_CONFIDENCE
}

let humanLabel = await client.detectLabels(paramHumanLabel).promise();
let humanFound = humanLabel.Labels.filter(obj => obj.Name === HUMAN);
var humanDetected = false;
if(humanFound.length > 0){
console.error("Human Face Detected");
humanDetected = true;
}

  1. Si se detecta alguna especie en peligro de extinción, la función Lambda actualiza DynamoDB con el recuento, la fecha y otros metadatos opcionales que se obtienen de las etiquetas EXIF ​​de la imagen:
let dbresponse = await dynamo.putItem({
Item: {
id: { S: id },
type: { S: response.CustomLabels[0].Name },
image: {S : photo},
createDate: {S: createDate.toString()},
confidence: {S: response.CustomLabels[0].Confidence.toString()},
gps: {S: gpsData.toString()},
humanDetected: {BOOL: humanDetected}
},

TableName: ANIMAL_TABLENAME,
}).promise();

Consultar y visualizar los datos

Ahora puede usar Athena y QuickSight para visualizar los datos.

  1. Establezca la tabla de DynamoDB como fuente de datos para Athena.Origen de datos de DynamoDB
  1. Agregue los detalles de la fuente de datos.

El siguiente paso importante es definir una función Lambda que se conecte a la fuente de datos.

  1. Elija Crear función Lambda.

función lambda

  1. Ingrese nombres para AthenaNombre del catálogo y DerrameCubo; el resto pueden ser configuraciones predeterminadas.
  2. Implemente la función de conector.

conector lambda

Una vez procesadas todas las imágenes, puede usar QuickSight para visualizar los datos de la variación de la población a lo largo del tiempo de Athena.

  1. En la consola de Athena, elija una fuente de datos e ingrese los detalles.
  2. Elige Crear función Lambda para proporcionar un conector a DynamoDB.

Crear función Lambda

  1. En el tablero de QuickSight, elija Nuevo análisis y Nuevo conjunto de datos.
  2. Elija Athena como fuente de datos.

Athena como fuente de datos

  1. Ingrese el catálogo, la base de datos y la tabla para conectarse y elija Seleccione.

Catálogo

  1. Creación completa del conjunto de datos.

Catálogo

El siguiente gráfico muestra el número de especies en peligro de extinción capturadas en un día determinado.

Gráfico QuickSight

Los datos GPS se presentan como parte de las etiquetas EXIF ​​de una imagen capturada. Debido a la sensibilidad de la ubicación de estos animales en peligro de extinción, nuestro conjunto de datos no tenía la ubicación GPS. Sin embargo, creamos un gráfico geoespacial utilizando datos simulados para mostrar cómo puede visualizar ubicaciones cuando los datos de GPS están disponibles.

carta geoespacial

Limpiar

Para evitar incurrir en costos inesperados, asegúrese de desactivar los servicios de AWS que utilizó como parte de esta demostración: los depósitos S3, la tabla de DynamoDB, QuickSight, Athena y el modelo de etiquetas personalizadas de Rekognition capacitado. Debe eliminar estos recursos directamente a través de sus respectivas consolas de servicio si ya no los necesita. Referirse a Eliminación de un modelo de etiquetas personalizadas de Amazon Rekognition para obtener más información sobre cómo eliminar el modelo.

Conclusión

En esta publicación, presentamos un sistema automatizado que identifica especies en peligro de extinción, registra el recuento de su población y proporciona información sobre la variación de la población a lo largo del tiempo. También puede extender la solución para alertar a las autoridades cuando los humanos (posibles cazadores furtivos) estén cerca de estas especies en peligro de extinción. Con las capacidades de IA/ML de Amazon Rekognition, podemos apoyar los esfuerzos de los grupos conservacionistas para proteger las especies en peligro de extinción y sus ecosistemas.

Para obtener más información acerca de las etiquetas personalizadas de Rekognition, consulte Introducción a las etiquetas personalizadas de Amazon Rekognition y Moderación de contenido. Si es nuevo en las etiquetas personalizadas de Rekognition, puede usar nuestra capa gratuita, que dura 3 meses e incluye 10 horas de capacitación gratuitas al mes y 4 horas de inferencia gratuitas al mes. La capa gratuita de Amazon Rekognition incluye el procesamiento de 5,000 imágenes al mes durante 12 meses.


Acerca de los autores

autor-jyothiJyothi Goudar es Partner Solutions Architect Manager en AWS. Trabaja en estrecha colaboración con un socio integrador de sistemas global para permitir y ayudar a los clientes a trasladar sus cargas de trabajo a AWS.

Detecte la variación poblacional de especies en peligro de extinción utilizando Amazon Rekognition PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.jay rao es Arquitecto Principal de Soluciones en AWS. Disfruta brindando orientación técnica y estratégica a los clientes y ayudándolos a diseñar e implementar soluciones en AWS.

Sello de tiempo:

Mas de Aprendizaje automático de AWS