Oppdag populasjonsvariasjon for truede arter ved hjelp av Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Oppdag populasjonsvariasjon av truede arter ved hjelp av Amazon Rekognition

Planeten vår står overfor en global utryddelseskrise. FN-rapport viser et svimlende antall mer enn en million arter som fryktes å være på vei til utryddelse. De vanligste årsakene til utryddelse inkluderer tap av habitat, krypskyting og invasive arter. Flere stiftelser for naturvern, forskere, frivillige og rangers mot krypskyting har jobbet utrettelig for å møte denne krisen. Å ha nøyaktig og regelmessig informasjon om truede dyr i naturen vil forbedre naturvernernes evne til å studere og bevare truede arter. Naturforskere og feltpersonale bruker kameraer utstyrt med infrarøde triggere, kalt kamerafeller, og plasser dem på de mest effektive stedene i skoger for å ta bilder av dyrelivet. Disse bildene blir deretter gjennomgått manuelt, noe som er en svært tidkrevende prosess.

I dette innlegget demonstrerer vi en løsning ved hjelp av Amazon Rekognition Egendefinerte etiketter sammen med bevegelsessensor kamerafeller for å automatisere denne prosessen for å gjenkjenne fremkalte arter og studere dem. Rekognition Custom Labels er en fullstendig administrert datasynstjeneste som lar utviklere bygge tilpassede modeller for å klassifisere og identifisere objekter i bilder som er spesifikke og unike for deres brukstilfelle. Vi beskriver hvordan man gjenkjenner truede dyrearter fra bilder samlet inn fra kamerafeller, får innsikt om populasjonstellingen deres og oppdager mennesker rundt dem. Denne informasjonen vil være nyttig for naturvernere, som kan ta proaktive beslutninger for å redde dem.

Løsningsoversikt

Følgende diagram illustrerer løsningenes arkitektur.

Denne løsningen bruker følgende AI-tjenester, serverløse teknologier og administrerte tjenester for å implementere en skalerbar og kostnadseffektiv arkitektur:

  • Amazonas Athena – En serverløs interaktiv spørringstjeneste som gjør det enkelt å analysere data i Amazon S3 ved hjelp av standard SQL
  • Amazon CloudWatch – En overvåkings- og observerbarhetstjeneste som samler inn overvåkings- og driftsdata i form av logger, beregninger og hendelser
  • Amazon DynamoDB – En nøkkelverdi- og dokumentdatabase som leverer ensifrede millisekundytelse i alle skalaer
  • AWS Lambda – En serverløs databehandlingstjeneste som lar deg kjøre kode som svar på utløsere som endringer i data, endringer i systemtilstand eller brukerhandlinger
  • Amazon QuickSight – En serverløs, maskinlæringsdrevet (ML) business intelligence-tjeneste som gir innsikt, interaktive instrumentbord og rik analyse
  • Amazon-anerkjennelse – Bruker ML til å identifisere objekter, personer, tekst, scener og aktiviteter i bilder og videoer, samt oppdage upassende innhold
  • Amazon Rekognition Egendefinerte etiketter – Bruker AutoML for å hjelpe med å trene tilpassede modeller for å identifisere objekter og scener i bilder som er spesifikke for bedriftens behov
  • Amazon Simple Queue Service (Amazon SQS) – En fullstendig administrert meldingskøtjeneste som lar deg koble fra og skalere mikrotjenester, distribuerte systemer og serverløse applikasjoner
  • Amazon Simple Storage Service (Amazon S3) – Fungerer som objektlager for dokumenter og gir mulighet for sentral styring med finjusterte tilgangskontroller.

Trinnene på høyt nivå i denne løsningen er som følger:

  1. Tren og bygg en tilpasset modell ved å bruke egendefinerte etiketter for anerkjennelse for å gjenkjenne truede arter i området. For dette innlegget trener vi på bilder av neshorn.
  2. Bilder som er tatt gjennom bevegelsessensorens kamerafeller, lastes opp til en S3-bøtte, som publiserer en hendelse for hvert opplastede bilde.
  3. En Lambda-funksjon utløses for hver hendelse som publiseres, som henter bildet fra S3-bøtta og sender det til den tilpassede modellen for å oppdage det truede dyret.
  4. Lambda-funksjonen bruker Amazon Rekognition API for å identifisere dyrene i bildet.
  5. Hvis bildet har noen truede arter av neshorn, oppdaterer funksjonen DynamoDB-databasen med tellingen av dyret, datoen for bildet tatt og andre nyttige metadata som kan trekkes ut fra bildet EXIF Overskrift.
  6. QuickSight brukes til å visualisere dyretall og lokaliseringsdata som er samlet inn i DynamoDB-databasen for å forstå variansen til dyrepopulasjonen over tid. Ved å se på dashbordene regelmessig, kan bevaringsgrupper identifisere mønstre og isolere sannsynlige årsaker som sykdommer, klima eller krypskyting som kan forårsake denne variasjonen og proaktivt ta skritt for å løse problemet.

Forutsetninger

Et godt treningssett kreves for å bygge en effektiv modell ved bruk av egendefinerte etiketter for anerkjennelse. Vi har brukt bildene fra AWS Marketplace (Datasett for dyr og dyreliv fra Shutterstock) Og kaggle å bygge modellen.

Implementer løsningen

Arbeidsflyten vår inkluderer følgende trinn:

  1. Tren en tilpasset modell for å klassifisere den truede arten (neshorn i vårt eksempel) ved å bruke AutoML-funksjonen til Rekognition Custom Labels.

Du kan også utføre disse trinnene fra Rekognition Custom Labels-konsollen. For instruksjoner, se Opprette et prosjekt, Opprette opplærings- og testdatasettog Opplæring av en Amazon Rekognition Custom Labels-modell.

I dette eksemplet bruker vi datasettet fra Kaggle. Tabellen nedenfor oppsummerer datasettinnholdet.

Etiketten Treningssett Testsett
Lion 625 156
Rhino 608 152
Afrikansk_elefant 368 92
  1. Last opp bildene tatt fra kamerafellene til en bestemt S3-bøtte.
  2. Definer hendelsesvarslene i Tillatelser delen av S3-bøtten for å sende et varsel til en definert SQS-kø når et objekt legges til bøtten.

Definer hendelsesvarsling

Opplastingshandlingen utløser en hendelse som er i kø i Amazon SQS ved hjelp av Amazon S3-hendelsesvarsel.

  1. Legg til de riktige tillatelsene via tilgangspolicyen til SQS-køen for å la S3-bøtten sende varselet til køen.

ML-9942-event-not

  1. Konfigurer en Lambda-utløser for SQS-køen slik at Lambda-funksjonen aktiveres når en ny melding mottas.

Lambda trigger

  1. Endre tilgangspolicyen for å la Lambda-funksjonen få tilgang til SQS-køen.

Tilgangspolicy for Lambda-funksjoner

Lambda-funksjonen skal nå ha de rette tillatelsene for å få tilgang til SQS-køen.

Lambdafunksjonstillatelser

  1. Sett opp miljøvariablene slik at de kan nås i koden.

Miljøvariabler

Lambdafunksjonskode

Lambda-funksjonen utfører følgende oppgaver ved å motta et varsel fra SNS-køen:

  1. Foreta et API-kall til Amazon Rekognition for å oppdage etiketter fra den tilpassede modellen som identifiserer den truede arten:
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. Hent EXIF-taggene fra bildet for å få datoen da bildet ble tatt og andre relevante EXIF-data. Følgende kode bruker avhengighetene (pakke – versjon) 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);
}

Løsningen som er skissert her er asynkron; bildene er fanget av kamerafellene og deretter på et senere tidspunkt lastet opp til en S3-bøtte for behandling. Hvis kamerafellebildene lastes opp oftere, kan du utvide løsningen for å oppdage mennesker i det overvåkede området og sende varsler til bekymrede aktivister for å indikere mulig krypskyting i nærheten av disse truede dyrene. Dette er implementert gjennom Lambda-funksjonen som kaller Amazon Rekognition API for å oppdage etiketter for tilstedeværelsen av et menneske. Hvis et menneske oppdages, logges en feilmelding til CloudWatch-logger. En filtrert beregning på feilloggen utløser en CloudWatch-alarm som sender en e-post til bevaringsaktivistene, som deretter kan iverksette ytterligere tiltak.

  1. Utvid løsningen med følgende kode:
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. Hvis noen truede arter oppdages, oppdaterer Lambda-funksjonen DynamoDB med tellingen, datoen og andre valgfrie metadata som er hentet fra bilde-EXIF-taggene:
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();

Spør og visualiser dataene

Du kan nå bruke Athena og QuickSight til å visualisere dataene.

  1. Sett DynamoDB-tabellen som datakilde for Athena.DynamoDB-datakilde
  1. Legg til datakildedetaljene.

Det neste viktige trinnet er å definere en Lambda-funksjon som kobles til datakilden.

  1. Velg Lag Lambda-funksjon.

Lambda funksjon

  1. Skriv inn navn for AthenaCatalogName og SpillBucket; resten kan være standardinnstillinger.
  2. Distribuer koblingsfunksjonen.

Lambdakontakt

Etter at alle bildene er behandlet, kan du bruke QuickSight til å visualisere dataene for populasjonsvariasjonen over tid fra Athena.

  1. Velg en datakilde på Athena-konsollen og skriv inn detaljene.
  2. Velg Lag Lambda-funksjon for å gi en kobling til DynamoDB.

Lag Lambda-funksjon

  1. Velg på QuickSight-dashbordet Ny analyse og Nytt datasett.
  2. Velg Athena som datakilde.

Athena som datakilde

  1. Skriv inn katalogen, databasen og tabellen du vil koble til og velge Plukke ut.

Katalog

  1. Fullfør datasettoppretting.

Katalog

Følgende diagram viser antall truede arter fanget på en gitt dag.

QuickSight-diagram

GPS-data presenteres som en del av EXIF-taggene til et tatt bilde. På grunn av følsomheten til plasseringen til disse truede dyrene, hadde ikke datasettet vårt GPS-posisjonen. Imidlertid har vi laget et geospatialt kart ved hjelp av simulerte data for å vise hvordan du kan visualisere posisjoner når GPS-data er tilgjengelig.

Geospatialt diagram

Rydd opp

For å unngå å pådra seg uventede kostnader, sørg for å slå av AWS-tjenestene du brukte som en del av denne demonstrasjonen – S3-bøttene, DynamoDB-bordet, QuickSight, Athena og den trente Rekognition Custom Labels-modellen. Du bør slette disse ressursene direkte via deres respektive tjenestekonsoller hvis du ikke lenger trenger dem. Referere til Sletter en Amazon Rekognition Custom Labels-modell for mer informasjon om sletting av modellen.

konklusjonen

I dette innlegget presenterte vi et automatisert system som identifiserer truede arter, registrerer bestandstallene deres og gir innsikt om variasjon i bestand over tid. Du kan også utvide løsningen for å varsle myndighetene når mennesker (mulige krypskyttere) er i nærheten av disse truede artene. Med AI/ML-funksjonene til Amazon Rekognition kan vi støtte innsatsen til bevaringsgrupper for å beskytte truede arter og deres økosystemer.

For mer informasjon om egendefinerte etiketter for anerkjennelse, se Komme i gang med tilpassede etiketter for Amazon Rekognition og Moderere innhold. Hvis du er ny på Rekognition Custom Labels, kan du bruke vårt gratis nivå, som varer i 3 måneder og inkluderer 10 gratis treningstimer per måned og 4 gratis slutningstimer per måned. Amazon Rekognition Free Tier inkluderer behandling av 5,000 bilder per måned i 12 måneder.


Om forfatterne

forfatter-jyothiJyothi Goudar er Partner Solutions Architect Manager i AWS. Hun jobber tett med en global systemintegratorpartner for å muliggjøre og støtte kunder ved å flytte arbeidsmengdene sine til AWS.

Oppdag populasjonsvariasjon for truede arter ved hjelp av Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Jay Rao er en hovedløsningsarkitekt ved AWS. Han liker å gi teknisk og strategisk veiledning til kunder og hjelpe dem med å designe og implementere løsninger på AWS.

Tidstempel:

Mer fra AWS maskinlæring