Opdag populationsvarians af truede arter ved hjælp af Amazon Rekognition PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Opdag populationsvarians for truede arter ved hjælp af Amazon Rekognition

Vores planet står over for en global udryddelseskrise. FN-rapport viser et svimlende antal på mere end en million arter, der frygtes at være på vej mod udryddelse. De mest almindelige årsager til udryddelse omfatter tab af levesteder, krybskytteri og invasive arter. Flere vildtbevaringsfonde, forskere, frivillige og rangers mod krybskytte har arbejdet utrætteligt for at løse denne krise. At have nøjagtige og regelmæssige oplysninger om truede dyr i naturen vil forbedre dyrelivsbevarernes evne til at studere og bevare truede arter. Naturforskere og feltpersonale bruger kameraer udstyret med infrarøde triggere, kaldet kamerafælder, og placer dem på de mest effektive steder i skovene for at tage billeder af dyrelivet. Disse billeder gennemgås derefter manuelt, hvilket er en meget tidskrævende proces.

I dette indlæg demonstrerer vi en løsning vha Tilpassede etiketter til Amazon-genkendelse sammen med bevægelsessensor kamerafælder for at automatisere denne proces for at genkende frembragte arter og studere dem. Rekognition Custom Labels er en fuldt administreret computervisionstjeneste, der giver udviklere mulighed for at bygge brugerdefinerede modeller til at klassificere og identificere objekter i billeder, der er specifikke og unikke for deres anvendelsestilfælde. Vi detaljerer, hvordan man genkender truede dyrearter fra billeder indsamlet fra kamerafælder, får indsigt i deres befolkningstal og opdager mennesker omkring dem. Disse oplysninger vil være nyttige for naturbeskyttelsesfolk, som kan træffe proaktive beslutninger for at redde dem.

Løsningsoversigt

Følgende diagram illustrerer løsningens arkitektur.

Denne løsning bruger følgende AI-tjenester, serverløse teknologier og administrerede tjenester til at implementere en skalerbar og omkostningseffektiv arkitektur:

  • Amazonas Athena – En serverløs interaktiv forespørgselstjeneste, der gør det nemt at analysere data i Amazon S3 ved hjælp af standard SQL
  • amazoncloudwatch – En overvågnings- og observerbarhedstjeneste, der indsamler overvågnings- og driftsdata i form af logfiler, metrikker og hændelser
  • Amazon DynamoDB – En nøgleværdi- og dokumentdatabase, der leverer encifret millisekundydelse i enhver skala
  • AWS Lambda – En serverløs beregningstjeneste, der lader dig køre kode som svar på triggere såsom ændringer i data, skift i systemtilstand eller brugerhandlinger
  • Amazon QuickSight – En serverløs, maskinlæringsdrevet (ML) business intelligence-tjeneste, der giver indsigt, interaktive dashboards og omfattende analyser
  • Amazon-anerkendelse – Bruger ML til at identificere objekter, personer, tekst, scener og aktiviteter i billeder og videoer, samt opdage upassende indhold
  • Tilpassede etiketter til Amazon-genkendelse – Bruger AutoML til at hjælpe med at træne tilpassede modeller til at identificere objekter og scener i billeder, der er specifikke for din virksomheds behov
  • Amazon Simple Queue Service (Amazon SQS) – En fuldt administreret beskedkø-tjeneste, der giver dig mulighed for at afkoble og skalere mikrotjenester, distribuerede systemer og serverløse applikationer
  • Amazon Simple Storage Service (Amazon S3) – Fungerer som objektlager for dokumenter og giver mulighed for central styring med finjusteret adgangskontrol.

Trinene på højt niveau i denne løsning er som følger:

  1. Træn og byg en tilpasset model ved hjælp af Rekognition Custom Labels til at genkende truede arter i området. Til dette indlæg træner vi på billeder af næsehorn.
  2. Billeder, der er optaget gennem bevægelsessensorens kamerafælder, uploades til en S3-bøtte, som udgiver en begivenhed for hvert uploadet billede.
  3. En Lambda-funktion udløses for hver publiceret hændelse, som henter billedet fra S3-spanden og sender det til den brugerdefinerede model for at opdage det truede dyr.
  4. Lambda-funktionen bruger Amazon Rekognition API til at identificere dyrene på billedet.
  5. Hvis billedet har nogen truede arter af næsehorn, opdaterer funktionen DynamoDB-databasen med antallet af dyret, datoen for billedet, der blev taget og andre nyttige metadata, der kan udtrækkes fra billedet EXIF header.
  6. QuickSight bruges til at visualisere dyretal og lokalitetsdata indsamlet i DynamoDB-databasen for at forstå variansen af ​​dyrepopulationen over tid. Ved at se på dashboards regelmæssigt kan bevaringsgrupper identificere mønstre og isolere mulige årsager som sygdomme, klima eller krybskytteri, der kan forårsage denne afvigelse, og proaktivt tage skridt til at løse problemet.

Forudsætninger

Et godt træningssæt er påkrævet for at opbygge en effektiv model ved hjælp af Rekognition Custom Labels. Vi har brugt billederne fra AWS Marketplace (Datasæt om dyr og vilde dyr fra Shutterstock) og Kaggle at bygge modellen.

Implementer løsningen

Vores arbejdsgang omfatter følgende trin:

  1. Træn en brugerdefineret model til at klassificere de truede arter (næsehorn i vores eksempel) ved hjælp af AutoML-kapaciteten i Rekognition Custom Labels.

Du kan også udføre disse trin fra Rekognition Custom Labels-konsollen. For instruktioner, se Oprettelse af et projekt, Oprettelse af trænings- og testdatasætog Træning af en Amazon Rekognition Custom Labels-model.

I dette eksempel bruger vi datasættet fra Kaggle. Følgende tabel opsummerer datasættets indhold.

etiket Træningssæt Test sæt
Lion 625 156
Rhino 608 152
Afrikansk_elefant 368 92
  1. Upload billederne taget fra kamerafælderne til en udpeget S3-spand.
  2. Definer begivenhedsmeddelelserne i Tilladelser sektion af S3-bøtten for at sende en meddelelse til en defineret SQS-kø, når et objekt føjes til bøtten.

Definer begivenhedsmeddelelse

Uploadhandlingen udløser en hændelse, der er i kø i Amazon SQS ved hjælp af Amazon S3-begivenhedsmeddelelsen.

  1. Tilføj de relevante tilladelser via adgangspolitikken for SQS-køen for at tillade S3-bøtten at sende meddelelsen til køen.

ML-9942-event-not

  1. Konfigurer en Lambda-trigger for SQS-køen, så Lambda-funktionen aktiveres, når en ny besked modtages.

Lambda trigger

  1. Rediger adgangspolitikken for at tillade Lambda-funktionen at få adgang til SQS-køen.

Adgangspolitik for lambdafunktioner

Lambda-funktionen skulle nu have de rigtige tilladelser til at få adgang til SQS-køen.

Lambdafunktionstilladelser

  1. Opsæt miljøvariablerne, så de kan tilgås i koden.

Miljøvariabler

Lambda funktionskode

Lambdafunktionen udfører følgende opgaver ved modtagelse af en notifikation fra SNS-køen:

  1. Foretag et API-kald til Amazon Rekognition for at opdage etiketter fra den tilpassede model, der identificerer de truede arter:
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-tags fra billedet for at få datoen for, hvornår billedet blev taget, og andre relevante EXIF-data. Følgende kode bruger afhængigheder (pakke – version) exif-reader – ^1.0.3, skarp – ^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);
}

Den her skitserede løsning er asynkron; billederne fanges af kamerafælderne og uploades på et senere tidspunkt til en S3-bøtte til behandling. Hvis kamerafældebillederne uploades hyppigere, kan du udvide løsningen til at opdage mennesker i det overvågede område og sende meddelelser til bekymrede aktivister for at indikere mulig krybskytteri i nærheden af ​​disse truede dyr. Dette er implementeret gennem Lambda-funktionen, der kalder Amazon Rekognition API for at detektere etiketter for tilstedeværelsen af ​​et menneske. Hvis et menneske opdages, logges en fejlmeddelelse til CloudWatch-logfiler. En filtreret metrik på fejlloggen udløser en CloudWatch-alarm, der sender en e-mail til bevaringsaktivisterne, som derefter kan tage yderligere skridt.

  1. Udvid 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 der opdages en truet art, opdaterer Lambda-funktionen DynamoDB med tælling, dato og andre valgfrie metadata, der er opnået fra billed-EXIF-tags:
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();

Forespørg og visualiser dataene

Du kan nu bruge Athena og QuickSight til at visualisere dataene.

  1. Indstil DynamoDB-tabellen som datakilde for Athena.DynamoDB datakilde
  1. Tilføj datakildedetaljerne.

Det næste vigtige trin er at definere en Lambda-funktion, der forbinder til datakilden.

  1. valgte Opret Lambda-funktion.

Lambda funktion

  1. Indtast navne for AthenaCatalogName , Spildspand; resten kan være standardindstillinger.
  2. Implementer forbindelsesfunktionen.

Lambda stik

Når alle billederne er behandlet, kan du bruge QuickSight til at visualisere dataene for populationsvariansen over tid fra Athena.

  1. På Athena-konsollen skal du vælge en datakilde og indtaste detaljerne.
  2. Vælg Opret Lambda-funktion at give et stik til DynamoDB.

Opret Lambda-funktion

  1. Vælg på QuickSight-dashboardet Ny Analyse , Nyt datasæt.
  2. Vælg Athena som datakilde.

Athena som datakilde

  1. Indtast kataloget, databasen og tabellen for at oprette forbindelse til og vælge Type.

Katalog

  1. Fuldstændig oprettelse af datasæt.

Katalog

Følgende diagram viser antallet af truede arter fanget på en given dag.

QuickSight-diagram

GPS-data præsenteres som en del af EXIF-tags af et optaget billede. På grund af følsomheden af ​​placeringen af ​​disse truede dyr havde vores datasæt ikke GPS-placeringen. Vi har dog oprettet et geospatialt diagram ved hjælp af simulerede data for at vise, hvordan du kan visualisere placeringer, når GPS-data er tilgængelige.

Geospatial diagram

Ryd op

For at undgå at pådrage sig uventede omkostninger, skal du sørge for at slukke for de AWS-tjenester, du brugte som en del af denne demonstration – S3-bøtterne, DynamoDB-bordet, QuickSight, Athena og den trænede Rekognition Custom Labels-model. Du bør slette disse ressourcer direkte via deres respektive servicekonsoller, hvis du ikke længere har brug for dem. Henvise til Sletning af en Amazon Rekognition Custom Labels-model for mere information om sletning af modellen.

Konklusion

I dette indlæg præsenterede vi et automatiseret system, der identificerer truede arter, registrerer deres befolkningstal og giver indsigt om varians i population over tid. Du kan også udvide løsningen til at advare myndighederne, når mennesker (mulige krybskytter) er i nærheden af ​​disse truede arter. Med Amazon Rekognitions AI/ML-kapacitet kan vi støtte bevaringsgruppers indsats for at beskytte truede arter og deres økosystemer.

For mere information om Rekognition Custom Labels, se Kom godt i gang med Amazon Rekognition Custom Labels , Moderere indhold. Hvis du er ny til Rekognition Custom Labels, kan du bruge vores gratis niveau, som varer 3 måneder og inkluderer 10 gratis træningstimer om måneden og 4 gratis inferenstimer om måneden. Amazon Rekognition Free Tier inkluderer behandling af 5,000 billeder om måneden i 12 måneder.


Om forfatterne

forfatter-jyothiJyothi Goudar er Partner Solutions Architect Manager hos AWS. Hun arbejder tæt sammen med en global systemintegratorpartner for at gøre det muligt og støtte kunder, der flytter deres arbejdsbelastninger til AWS.

Opdag populationsvarians af truede arter ved hjælp af Amazon Rekognition PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Jay Rao er Principal Solutions Architect hos AWS. Han nyder at yde teknisk og strategisk vejledning til kunder og hjælpe dem med at designe og implementere løsninger på AWS.

Tidsstempel:

Mere fra AWS maskinindlæring