Upptäck populationsvarians för hotade arter med hjälp av Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Upptäck populationsvarians för hotade arter med hjälp av Amazon Rekognition

Vår planet står inför en global utrotningskris. FN-rapport visar ett svindlande antal av mer än en miljon arter som befaras vara på väg att dö ut. De vanligaste orsakerna till utrotning inkluderar förlust av livsmiljöer, tjuvjakt och invasiva arter. Flera viltvårdsstiftelser, forskare, volontärer och skyddsvakter mot tjuvjakt har arbetat outtröttligt för att ta itu med denna kris. Att ha korrekt och regelbunden information om utrotningshotade djur i naturen kommer att förbättra naturvårdares förmåga att studera och bevara hotade arter. Viltforskare och fältpersonal använder kameror utrustade med infraröda triggers, så kallade kamerafällor, och placera dem på de mest effektiva platserna i skogarna för att fånga bilder av vilda djur. Dessa bilder granskas sedan manuellt, vilket är en mycket tidskrävande process.

I det här inlägget visar vi en lösning med hjälp av Amazon Rekognition anpassade etiketter tillsammans med rörelsesensorkamerafällor för att automatisera denna process för att känna igen framkallade arter och studera dem. Rekognition Custom Labels är en fullständigt hanterad datorseendetjänst som låter utvecklare bygga anpassade modeller för att klassificera och identifiera objekt i bilder som är specifika och unika för deras användningsfall. Vi beskriver hur man känner igen hotade djurarter från bilder som samlats in från kamerafällor, drar insikter om deras befolkningsantal och upptäcker människor runt dem. Denna information kommer att vara till hjälp för naturvårdare, som kan fatta proaktiva beslut för att rädda dem.

Lösningsöversikt

Följande diagram illustrerar lösningens arkitektur.

Denna lösning använder följande AI-tjänster, serverlösa tekniker och hanterade tjänster för att implementera en skalbar och kostnadseffektiv arkitektur:

  • Amazonas Athena – En serverlös interaktiv frågetjänst som gör det enkelt att analysera data i Amazon S3 med standard SQL
  • amazoncloudwatch – En övervaknings- och observerbarhetstjänst som samlar in övervaknings- och driftsdata i form av loggar, mätvärden och händelser
  • Amazon DynamoDB – En nyckel-värde och dokumentdatabas som levererar ensiffrig millisekundprestanda i alla skala
  • AWS Lambda – En serverlös beräkningstjänst som låter dig köra kod som svar på triggers som förändringar i data, förändringar i systemtillstånd eller användaråtgärder
  • Amazon QuickSight – En serverlös, maskininlärning (ML)-driven business intelligence-tjänst som ger insikter, interaktiva instrumentpaneler och rik analys
  • Amazon-erkännande – Använder ML för att identifiera objekt, personer, text, scener och aktiviteter i bilder och videor, samt upptäcka olämpligt innehåll
  • Amazon Rekognition anpassade etiketter – Använder AutoML för att träna anpassade modeller för att identifiera objekt och scener i bilder som är specifika för ditt företags behov
  • Amazon Simple Queue Service (Amazon SQS) – En fullständigt hanterad meddelandekötjänst som gör att du kan koppla bort och skala mikrotjänster, distribuerade system och serverlösa applikationer
  • Amazon Simple Storage Service (Amazon S3) – Fungerar som objektlager för dokument och möjliggör central hantering med finjusterade åtkomstkontroller.

Högnivåstegen i denna lösning är följande:

  1. Träna och bygg en anpassad modell med hjälp av Rekognition Custom Labels för att känna igen hotade arter i området. Till det här inlägget tränar vi på bilder av noshörning.
  2. Bilder som är tagna genom rörelsesensorns kamerafällor laddas upp till en S3-hink, som publicerar en händelse för varje uppladdad bild.
  3. En Lambda-funktion utlöses för varje publicerad händelse, som hämtar bilden från S3-hinken och skickar den till den anpassade modellen för att upptäcka det hotade djuret.
  4. Lambdafunktionen använder Amazon Rekognition API för att identifiera djuren i bilden.
  5. Om bilden har någon utrotningshotad art av noshörning, uppdaterar funktionen DynamoDB-databasen med antalet djur, datum för tagen bild och annan användbar metadata som kan extraheras från bilden EXIF rubrik.
  6. QuickSight används för att visualisera djurantalet och platsdata som samlats in i DynamoDB-databasen för att förstå variansen i djurpopulationen över tid. Genom att titta på instrumentpanelerna regelbundet kan naturvårdsgrupper identifiera mönster och isolera troliga orsaker som sjukdomar, klimat eller tjuvjakt som kan orsaka denna skillnad och proaktivt vidta åtgärder för att ta itu med problemet.

Förutsättningar

En bra utbildningsuppsättning krävs för att bygga en effektiv modell med hjälp av Rekognition Custom Labels. Vi har använt bilderna från AWS Marketplace (Dataset för djur och vilda djur från Shutterstock) Och Kaggle att bygga modellen.

Implementera lösningen

Vårt arbetsflöde innehåller följande steg:

  1. Träna en anpassad modell för att klassificera den utrotningshotade arten (noshörning i vårt exempel) med hjälp av AutoML-kapaciteten för Rekognition Custom Labels.

Du kan också utföra dessa steg från Rekognition Custom Labels-konsolen. För instruktioner, se Skapa ett projekt, Skapa utbildnings- och testdatauppsättningaroch Utbildning av en Amazon Rekognition Custom Labels-modell.

I det här exemplet använder vi datasetet från Kaggle. Följande tabell sammanfattar datauppsättningens innehåll.

etikett Träningsset Testuppsättning
Lion 625 156
Rhino 608 152
Afrikansk elefant 368 92
  1. Ladda upp bilderna som tagits från kamerafällorna till en avsedd S3-hink.
  2. Definiera händelseaviseringarna i behörigheter sektionen av S3-hinken för att skicka ett meddelande till en definierad SQS-kö när ett objekt läggs till i hinken.

Definiera händelseavisering

Uppladdningsåtgärden utlöser en händelse som är köad i Amazon SQS med hjälp av Amazon S3-händelsemeddelandet.

  1. Lägg till lämpliga behörigheter via åtkomstpolicyn för SQS-kön för att tillåta S3-hinken att skicka meddelandet till kön.

ML-9942-event-ej

  1. Konfigurera en Lambdatrigger för SQS-kön så att Lambdafunktionen anropas när ett nytt meddelande tas emot.

Lambda trigger

  1. Ändra åtkomstpolicyn så att Lambda-funktionen får åtkomst till SQS-kön.

Åtkomstpolicy för Lambdafunktion

Lambdafunktionen bör nu ha rätt behörigheter för att komma åt SQS-kön.

Lambdafunktionsbehörigheter

  1. Ställ in miljövariablerna så att de kan nås i koden.

Miljövariabler

Lambdafunktionskod

Lambdafunktionen utför följande uppgifter för att ta emot ett meddelande från SNS-kön:

  1. Gör ett API-anrop till Amazon Rekognition för att upptäcka etiketter från den anpassade modellen som identifierar den hotade 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. Hämta EXIF-taggarna från bilden för att få datumet när bilden togs och annan relevant EXIF-data. Följande kod använder beroenden (paket – version) 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 beskrivs här är asynkron; bilderna fångas av kamerafällorna och laddas sedan vid ett senare tillfälle upp till en S3-hink för bearbetning. Om kamerafällbilderna laddas upp oftare kan du utöka lösningen för att upptäcka människor i det övervakade området och skicka meddelanden till berörda aktivister för att indikera eventuell tjuvjakt i närheten av dessa hotade djur. Detta implementeras genom Lambda-funktionen som anropar Amazon Rekognition API för att upptäcka etiketter för närvaron av en människa. Om en människa upptäcks loggas ett felmeddelande till CloudWatch Logs. Ett filtrerat mått i felloggen utlöser ett CloudWatch-larm som skickar ett e-postmeddelande till naturvårdsaktivisterna, som sedan kan vidta ytterligare åtgärder.

  1. Expandera lösningen med följande kod:
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. Om någon hotad art upptäcks uppdaterar Lambda-funktionen DynamoDB med antalet, datum och andra valfria metadata som erhålls från bildens EXIF-taggar:
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();

Fråga och visualisera data

Du kan nu använda Athena och QuickSight för att visualisera data.

  1. Ställ in DynamoDB-tabellen som datakälla för Athena.DynamoDB-datakälla
  1. Lägg till information om datakällan.

Nästa viktiga steg är att definiera en Lambda-funktion som ansluter till datakällan.

  1. Välj Skapa Lambda-funktion.

Lambdafunktion

  1. Ange namn för AthenaCatalogName och SpillBucket; resten kan vara standardinställningar.
  2. Distribuera anslutningsfunktionen.

Lambdakontakt

När alla bilder har bearbetats kan du använda QuickSight för att visualisera data för populationsvariansen över tid från Athena.

  1. På Athena-konsolen väljer du en datakälla och anger detaljerna.
  2. Välja Skapa Lambda-funktion för att tillhandahålla en anslutning till DynamoDB.

Skapa Lambda-funktion

  1. Välj på QuickSights instrumentpanel Ny analys och Nytt dataset.
  2. Välj Athena som datakälla.

Athena som datakälla

  1. Ange katalogen, databasen och tabellen att ansluta till och välja Välja.

Sortiment

  1. Komplett datauppsättning skapas.

Sortiment

Följande diagram visar antalet utrotningshotade arter som fångats en viss dag.

QuickSight-diagram

GPS-data presenteras som en del av EXIF-taggarna för en taggen bild. På grund av känsligheten för platsen för dessa utrotningshotade djur hade vår datauppsättning inte GPS-platsen. Däremot skapade vi ett geospatialt diagram med hjälp av simulerad data för att visa hur du kan visualisera platser när GPS-data är tillgänglig.

Geospatialt diagram

Städa upp

För att undvika att ådra sig oväntade kostnader, se till att stänga av AWS-tjänsterna du använde som en del av den här demonstrationen – S3-hinkarna, DynamoDB-bordet, QuickSight, Athena och den utbildade Rekognition Custom Labels-modellen. Du bör ta bort dessa resurser direkt via deras respektive tjänstekonsoler om du inte längre behöver dem. Hänvisa till Ta bort en Amazon Rekognition Custom Labels-modell för mer information om att ta bort modellen.

Slutsats

I det här inlägget presenterade vi ett automatiserat system som identifierar hotade arter, registrerar deras populationsantal och ger insikter om variansen i populationen över tid. Du kan också utöka lösningen för att varna myndigheterna när människor (eventuella tjuvskyttar) befinner sig i närheten av dessa hotade arter. Med AI/ML-kapaciteten hos Amazon Rekognition kan vi stödja bevarandegruppers ansträngningar för att skydda hotade arter och deras ekosystem.

För mer information om Rekognition Custom Labels, se Komma igång med Amazon Rekognition Custom Labels och Moderera innehåll. Om du är ny på Rekognition Custom Labels kan du använda vår Free Tier, som varar i 3 månader och inkluderar 10 gratis träningstimmar per månad och 4 gratis slutledningstimmar per månad. Amazon Rekognition Free Tier inkluderar bearbetning av 5,000 12 bilder per månad i XNUMX månader.


Om författarna

författare-jyothiJyothi Goudar är Partner Solutions Architect Manager på AWS. Hon arbetar nära med global systemintegratörspartner för att möjliggöra och stödja kunder som flyttar sina arbetsbelastningar till AWS.

Upptäck populationsvarians för hotade arter med hjälp av Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jay Rao är en Principal Solutions Architect på AWS. Han tycker om att ge teknisk och strategisk vägledning till kunder och hjälpa dem att designa och implementera lösningar på AWS.

Tidsstämpel:

Mer från AWS maskininlärning