Logo Zephyrnet

Rileva la varianza della popolazione delle specie in via di estinzione utilizzando Amazon Recognition

Data:

Il nostro pianeta affronta una crisi di estinzione globale. Rapporto delle Nazioni Unite mostra un numero impressionante di oltre un milione di specie che si teme siano sulla via dell'estinzione. I motivi più comuni di estinzione includono la perdita di habitat, il bracconaggio e le specie invasive. Parecchi fondazioni per la conservazione della fauna selvatica, ricercatori, volontari e ranger antibracconaggio hanno lavorato instancabilmente per affrontare questa crisi. Avere informazioni accurate e regolari sugli animali in via di estinzione in natura migliorerà la capacità degli ambientalisti di studiare e conservare le specie in via di estinzione. Gli scienziati della fauna selvatica e il personale sul campo utilizzano telecamere dotate di trigger a infrarossi, chiamate trappole fotografichee posizionarli nei luoghi più efficaci nelle foreste per acquisire immagini di animali selvatici. Queste immagini vengono quindi riviste manualmente, il che è un processo che richiede molto tempo.

In questo post, mostriamo una soluzione usando Etichette personalizzate Amazon Rekognition insieme a trappole fotografiche con sensore di movimento per automatizzare questo processo per riconoscere le specie generate e studiarle. Rekognition Custom Labels è un servizio di visione artificiale completamente gestito che consente agli sviluppatori di creare modelli personalizzati per classificare e identificare oggetti in immagini che sono specifici e unici per il loro caso d'uso. Descriviamo in dettaglio come riconoscere le specie animali in via di estinzione dalle immagini raccolte dalle trappole fotografiche, trarre informazioni sul conteggio della loro popolazione e rilevare gli esseri umani intorno a loro. Queste informazioni saranno utili per gli ambientalisti, che possono prendere decisioni proattive per salvarli.

Panoramica della soluzione

Il diagramma seguente illustra l'architettura della soluzione.

Questa soluzione utilizza i seguenti servizi di intelligenza artificiale, tecnologie senza server e servizi gestiti per implementare un'architettura scalabile ed economica:

  • Amazzone Atena – Un servizio di query interattivo serverless che semplifica l'analisi dei dati in Amazon S3 utilizzando SQL standard
  • Amazon Cloud Watch – Un servizio di monitoraggio e osservabilità che raccoglie dati operativi e di monitoraggio sotto forma di log, metriche ed eventi
  • Amazon DynamoDB – Un database di valori-chiave e documenti che offre prestazioni in millisecondi a una cifra su qualsiasi scala
  • AWS Lambda – Un servizio di elaborazione serverless che consente di eseguire codice in risposta a trigger quali modifiche ai dati, cambiamenti nello stato del sistema o azioni dell'utente
  • Amazon QuickSight – Un servizio di business intelligence basato su machine learning (ML) serverless che fornisce approfondimenti, dashboard interattivi e analisi avanzate
  • Rekognition di Amazon – Utilizza il ML per identificare oggetti, persone, testo, scene e attività in immagini e video, nonché per rilevare qualsiasi contenuto inappropriato
  • Etichette personalizzate Amazon Rekognition – Utilizza AutoML per addestrare modelli personalizzati per identificare gli oggetti e le scene nelle immagini che sono specifiche per le tue esigenze aziendali
  • Servizio Amazon Simple Queue (Amazon SQS) – Un servizio di accodamento messaggi completamente gestito che consente di disaccoppiare e ridimensionare microservizi, sistemi distribuiti e applicazioni serverless
  • Servizio di archiviazione semplice Amazon (Amazon S3) – Funge da archivio oggetti per i documenti e consente la gestione centralizzata con controlli di accesso ottimizzati.

I passaggi di alto livello in questa soluzione sono i seguenti:

  1. Addestra e costruisci un modello personalizzato utilizzando le etichette personalizzate Rekognition per riconoscere le specie in via di estinzione nell'area. Per questo post, ci alleniamo sulle immagini del rinoceronte.
  2. Le immagini acquisite tramite le trappole fotografiche del sensore di movimento vengono caricate in un bucket S3, che pubblica un evento per ogni immagine caricata.
  3. Per ogni evento pubblicato viene attivata una funzione Lambda, che recupera l'immagine dal bucket S3 e la passa al modello personalizzato per rilevare l'animale in via di estinzione.
  4. La funzione Lambda utilizza l'API Amazon Rekognition per identificare gli animali nell'immagine.
  5. Se l'immagine contiene specie di rinoceronte in via di estinzione, la funzione aggiorna il database DynamoDB con il conteggio dell'animale, la data dell'immagine acquisita e altri utili metadati che possono essere estratti dall'immagine EXIF intestazione.
  6. QuickSight viene utilizzato per visualizzare il conteggio degli animali e i dati sulla posizione raccolti nel database DynamoDB per comprendere la varianza della popolazione animale nel tempo. Esaminando regolarmente i dashboard, i gruppi di conservazione possono identificare modelli e isolare probabili cause come malattie, clima o bracconaggio che potrebbero causare questa variazione e adottare misure proattive per affrontare il problema.

Prerequisiti

È necessario un buon set di formazione per creare un modello efficace utilizzando le etichette personalizzate di Rekognition. Abbiamo utilizzato le immagini di AWS Marketplace (Set di dati su animali e fauna selvatica di Shutterstock) e Kaggle per costruire il modello.

Implementa la soluzione

Il nostro flusso di lavoro include i seguenti passaggi:

  1. Addestra un modello personalizzato per classificare le specie in via di estinzione (rinoceronte nel nostro esempio) utilizzando la funzionalità AutoML di Rekognition Custom Labels.

Puoi anche eseguire questi passaggi dalla console delle etichette personalizzate di Rekognition. Per istruzioni, fare riferimento a Creare un progetto, Creazione di set di dati di addestramento e teste Addestramento di un modello di etichette personalizzate Amazon Rekognition.

In questo esempio, utilizziamo il set di dati di Kaggle. La tabella seguente riassume il contenuto del set di dati.

Discografica Set di allenamento Set di test
Leone 625 156
Rinoceronte 608 152
Elefante africano 368 92
  1. Carica le immagini catturate dalle trappole fotografiche in un bucket S3 designato.
  2. Definisci le notifiche degli eventi nel file Permessi sezione del bucket S3 per inviare una notifica a una coda SQS definita quando un oggetto viene aggiunto al bucket.

Definisci la notifica degli eventi

L'operazione di caricamento attiva un evento che viene accodato in Amazon SQS utilizzando la notifica dell'evento Amazon S3.

  1. Aggiungi le autorizzazioni appropriate tramite la policy di accesso della coda SQS per consentire al bucket S3 di inviare la notifica alla coda.

ML-9942-evento-non

  1. Configura un trigger Lambda per la coda SQS in modo che la funzione Lambda venga richiamata quando viene ricevuto un nuovo messaggio.

Grilletto Lambda

  1. Modifica la policy di accesso per consentire alla funzione Lambda di accedere alla coda SQS.

Criterio di accesso alla funzione Lambda

La funzione Lambda ora dovrebbe disporre delle autorizzazioni corrette per accedere alla coda SQS.

Autorizzazioni della funzione Lambda

  1. Impostare le variabili di ambiente in modo che sia possibile accedervi nel codice.

Variabili ambientali

Codice funzione Lambda

La funzione Lambda esegue le seguenti attività alla ricezione di una notifica dalla coda SNS:

  1. Effettua una chiamata API ad Amazon Rekognition per rilevare le etichette dal modello personalizzato che identificano le specie in via di estinzione:
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. Recupera i tag EXIF ​​dall'immagine per ottenere la data in cui è stata scattata la foto e altri dati EXIF ​​rilevanti. Il codice seguente usa le dipendenze (pacchetto – versione) 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 soluzione qui delineata è asincrona; le immagini vengono catturate dalle trappole fotografiche e quindi caricate in un secondo momento in un bucket S3 per l'elaborazione. Se le immagini delle trappole fotografiche vengono caricate più frequentemente, è possibile estendere la soluzione per rilevare gli esseri umani nell'area monitorata e inviare notifiche agli attivisti interessati per indicare un possibile bracconaggio in prossimità di questi animali in via di estinzione. Ciò viene implementato tramite la funzione Lambda che chiama l'API Amazon Rekognition per rilevare le etichette per la presenza di un essere umano. Se viene rilevato un essere umano, viene registrato un messaggio di errore in CloudWatch Logs. Un parametro filtrato nel log degli errori attiva un allarme CloudWatch che invia un'e-mail agli attivisti per la conservazione, che possono quindi intraprendere ulteriori azioni.

  1. Espandi la soluzione con il codice seguente:
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. Se viene rilevata una specie in via di estinzione, la funzione Lambda aggiorna DynamoDB con il conteggio, la data e altri metadati opzionali ottenuti dai tag EXIF ​​dell'immagine:
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();

Interroga e visualizza i dati

Ora puoi utilizzare Athena e QuickSight per visualizzare i dati.

  1. Imposta la tabella DynamoDB come origine dati per Athena.Sorgente dati DynamoDB
  1. Aggiungi i dettagli dell'origine dati.

Il passaggio successivo importante è definire una funzione Lambda che si connetta all'origine dati.

  1. Ha scelto Crea la funzione Lambda.

Funzione Lambda

  1. Inserisci i nomi per Nome catalogo Athena ed Spill Bucket; il resto possono essere impostazioni predefinite.
  2. Distribuire la funzione del connettore.

Connettore lambda

Dopo che tutte le immagini sono state elaborate, puoi utilizzare QuickSight per visualizzare i dati per la varianza della popolazione nel tempo da Athena.

  1. Sulla console Athena, scegli un'origine dati e inserisci i dettagli.
  2. Scegli Crea la funzione Lambda per fornire un connettore a DynamoDB.

Crea la funzione Lambda

  1. Nella dashboard QuickSight, scegli Nuova analisi ed Nuovo set di dati.
  2. Scegli Athena come origine dati.

Atena come fonte di dati

  1. Immettere il catalogo, il database e la tabella a cui connettersi e scegliere Seleziona.

Catalogo

  1. Creazione completa del set di dati.

Catalogo

La tabella seguente mostra il numero di specie in via di estinzione catturate in un determinato giorno.

Grafico QuickSight

I dati GPS vengono presentati come parte dei tag EXIF ​​di un'immagine acquisita. A causa della sensibilità della posizione di questi animali in via di estinzione, il nostro set di dati non aveva la posizione GPS. Tuttavia, abbiamo creato una carta geospaziale utilizzando dati simulati per mostrare come visualizzare le posizioni quando i dati GPS sono disponibili.

Carta geospaziale

ripulire

Per evitare costi imprevisti, assicurati di disattivare i servizi AWS che hai utilizzato come parte di questa dimostrazione: i bucket S3, la tabella DynamoDB, QuickSight, Athena e il modello Rekognition Custom Labels addestrato. Dovresti eliminare queste risorse direttamente tramite le rispettive console di servizio se non ne hai più bisogno. Fare riferimento a Eliminazione di un modello di etichette personalizzate Amazon Rekognition per ulteriori informazioni sull'eliminazione del modello.

Conclusione

In questo post, abbiamo presentato un sistema automatizzato che identifica le specie in via di estinzione, registra il conteggio della popolazione e fornisce approfondimenti sulla varianza della popolazione nel tempo. Puoi anche estendere la soluzione per avvisare le autorità quando gli esseri umani (possibili bracconieri) si trovano nelle vicinanze di queste specie in via di estinzione. Con le capacità AI/ML di Amazon Rekognition, possiamo supportare gli sforzi dei gruppi di conservazione per proteggere le specie in via di estinzione e i loro ecosistemi.

Per ulteriori informazioni sulle etichette personalizzate di Recognition, fare riferimento a Introduzione alle etichette personalizzate di Amazon Rekognition ed Contenuti moderati. Se non conosci Rekognition Custom Labels, puoi utilizzare il nostro piano gratuito, che dura 3 mesi e include 10 ore di formazione gratuite al mese e 4 ore di inferenza gratuite al mese. Il piano gratuito di Amazon Rekognition include l'elaborazione di 5,000 immagini al mese per 12 mesi.


Informazioni sugli autori

autore-jyothiJyothi Goudar è Partner Solutions Architect Manager presso AWS. Lavora a stretto contatto con il partner globale di integratori di sistemi per consentire e supportare i clienti che spostano i loro carichi di lavoro su AWS.

Jay Rao è Principal Solutions Architect presso AWS. Gli piace fornire una guida tecnica e strategica ai clienti e aiutarli a progettare e implementare soluzioni su AWS.

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?