Detecteer populatievariantie van bedreigde diersoorten met behulp van Amazon Rekognition PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Detecteer populatievariantie van bedreigde diersoorten met behulp van Amazon Rekognition

Onze planeet wordt geconfronteerd met een wereldwijde uitstervingscrisis. VN-rapport toont een duizelingwekkend aantal van meer dan een miljoen soorten waarvan wordt gevreesd dat ze op het pad van uitsterven staan. De meest voorkomende redenen voor uitsterven zijn verlies van leefgebied, stroperij en invasieve soorten. Meerdere stichtingen voor natuurbehoud, onderzoekers, vrijwilligers en anti-stroperij rangers hebben onvermoeibaar gewerkt om deze crisis het hoofd te bieden. Het hebben van nauwkeurige en regelmatige informatie over bedreigde dieren in het wild zal het vermogen van natuurbeschermers om bedreigde diersoorten te bestuderen en te behouden verbeteren. Natuurwetenschappers en veldmedewerkers gebruiken camera's die zijn uitgerust met infraroodtriggers, genaamd cameravallenen plaats ze op de meest effectieve locaties in bossen om beelden van dieren in het wild vast te leggen. Deze afbeeldingen worden vervolgens handmatig beoordeeld, wat een zeer tijdrovend proces is.

In dit bericht demonstreren we een oplossing met behulp van Aangepaste labels voor Amazon-herkenning samen met cameravallen met bewegingssensoren om dit proces te automatiseren om voortgebrachte soorten te herkennen en te bestuderen. Rekognition Custom Labels is een volledig beheerde computer vision-service waarmee ontwikkelaars aangepaste modellen kunnen bouwen om objecten in afbeeldingen te classificeren en te identificeren die specifiek en uniek zijn voor hun gebruik. We beschrijven hoe bedreigde diersoorten te herkennen aan de hand van afbeeldingen die zijn verzameld met cameravallen, krijgen inzicht in hun populatietelling en detecteren mensen om hen heen. Deze informatie is nuttig voor natuurbeschermers, die proactieve beslissingen kunnen nemen om ze te redden.

Overzicht oplossingen

Het volgende diagram illustreert de architectuur van de oplossing.

Deze oplossing gebruikt de volgende AI-services, serverloze technologieรซn en beheerde services om een โ€‹โ€‹schaalbare en kosteneffectieve architectuur te implementeren:

  • Amazone Athene โ€“ Een serverloze interactieve queryservice die het eenvoudig maakt om gegevens in Amazon S3 te analyseren met behulp van standaard SQL
  • Amazon Cloud Watch โ€“ Een bewakings- en observatieservice die bewakings- en operationele gegevens verzamelt in de vorm van logboeken, statistieken en gebeurtenissen
  • Amazon DynamoDB โ€“ Een database met sleutelwaarden en documenten die op elke schaal prestaties van รฉรฉn cijfer in milliseconden levert
  • AWS Lambda - Een serverloze rekenservice waarmee u code kunt uitvoeren als reactie op triggers zoals wijzigingen in gegevens, verschuivingen in systeemstatus of gebruikersacties
  • Amazon QuickSight โ€“ Een serverloze, machine learning (ML)-aangedreven business intelligence-service die inzichten, interactieve dashboards en uitgebreide analyses biedt
  • Amazon Rekognition - Gebruikt ML om objecten, mensen, tekst, scรจnes en activiteiten in afbeeldingen en video's te identificeren en om ongepaste inhoud te detecteren
  • Aangepaste labels voor Amazon-herkenning โ€“ Gebruikt AutoML om aangepaste modellen te trainen om de objecten en scรจnes in afbeeldingen te identificeren die specifiek zijn voor uw zakelijke behoeften
  • Amazon Simple Queue-service (Amazon SQS) โ€“ Een volledig beheerde message queuing-service waarmee u microservices, gedistribueerde systemen en serverloze toepassingen kunt ontkoppelen en schalen
  • Eenvoudige opslagservice van Amazon (Amazon S3) โ€“ Dient als objectopslag voor documenten en zorgt voor centraal beheer met verfijnde toegangscontroles.

De stappen op hoog niveau in deze oplossing zijn als volgt:

  1. Train en bouw een aangepast model met behulp van Rekognition Custom Labels om bedreigde diersoorten in het gebied te herkennen. Voor deze post trainen we op afbeeldingen van neushoorns.
  2. Afbeeldingen die zijn vastgelegd via de cameravallen met bewegingssensoren, worden geรผpload naar een S3-bucket, die een evenement publiceert voor elke geรผploade afbeelding.
  3. Voor elke gepubliceerde gebeurtenis wordt een Lambda-functie geactiveerd, die de afbeelding uit de S3-bucket haalt en doorgeeft aan het aangepaste model om het bedreigde dier te detecteren.
  4. De Lambda-functie gebruikt de Amazon Rekognition API om de dieren in de afbeelding te identificeren.
  5. Als de afbeelding een bedreigde neushoornsoort bevat, werkt de functie de DynamoDB-database bij met de telling van het dier, de datum van de opname en andere nuttige metadata die uit de afbeelding kunnen worden gehaald EXIF header.
  6. QuickSight wordt gebruikt om het aantal dieren en de locatiegegevens te visualiseren die zijn verzameld in de DynamoDB-database om inzicht te krijgen in de variantie van de dierenpopulatie in de loop van de tijd. Door regelmatig naar de dashboards te kijken, kunnen natuurbeschermingsgroepen patronen identificeren en mogelijke oorzaken isoleren, zoals ziekten, klimaat of stroperij die deze afwijking kunnen veroorzaken, en proactief stappen ondernemen om het probleem aan te pakken.

Voorwaarden

Een goede trainingsset is vereist om een โ€‹โ€‹effectief model te bouwen met Rekognition Custom Labels. We hebben de afbeeldingen van AWS Marketplace gebruikt (Dieren- en natuurgegevensset van Shutterstock) en Kaggle om het model te bouwen.

Implementeer de oplossing

Onze workflow omvat de volgende stappen:

  1. Train een aangepast model om de bedreigde diersoorten te classificeren (neushoorn in ons voorbeeld) met behulp van de AutoML-mogelijkheid van Rekognition Custom Labels.

U kunt deze stappen ook uitvoeren vanuit de Rekognition Custom Labels-console. Raadpleeg voor instructies: Een project aanmaken, Trainings- en testdatasets maken en Een Amazon Recognition Custom Labels-model trainen.

In dit voorbeeld gebruiken we de dataset van Kaggle. De volgende tabel geeft een overzicht van de inhoud van de dataset.

label Trainingsset Testset
leeuw 625 156
Neushoorn 608 152
Afrikaanse olifant 368 92
  1. Upload de foto's die zijn gemaakt met de cameravallen naar een aangewezen S3-emmer.
  2. Definieer de gebeurtenismeldingen in de machtigingen sectie van de S3-bucket om een โ€‹โ€‹melding naar een gedefinieerde SQS-wachtrij te sturen wanneer een object aan de bucket wordt toegevoegd.

Gebeurtenismelding definiรซren

De uploadactie activeert een gebeurtenis die in de wachtrij staat in Amazon SQS met behulp van de Amazon S3-gebeurtenismelding.

  1. Voeg de juiste machtigingen toe via het toegangsbeleid van de SQS-wachtrij zodat de S3-bucket de melding naar de wachtrij kan verzenden.

ML-9942-gebeurtenis-niet

  1. Configureer een Lambda-trigger voor de SQS-wachtrij, zodat de Lambda-functie wordt aangeroepen wanneer een nieuw bericht wordt ontvangen.

Lambda-trigger

  1. Wijzig het toegangsbeleid om de Lambda-functie toegang te geven tot de SQS-wachtrij.

Toegangsbeleid voor Lambda-functie

De Lambda-functie zou nu de juiste machtigingen moeten hebben om toegang te krijgen tot de SQS-wachtrij.

Lambda functie permissies

  1. Stel de omgevingsvariabelen zo in dat ze toegankelijk zijn in de code.

Omgevingsvariabelen

Lambda-functiecode

De Lambda-functie voert de volgende taken uit bij het ontvangen van een melding van de SNS-wachtrij:

  1. Voer een API-aanroep uit naar Amazon Rekognition om labels van het aangepaste model te detecteren die de bedreigde diersoorten identificeren:
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. Haal de EXIF-tags uit de afbeelding om de datum te krijgen waarop de foto is gemaakt en andere relevante EXIF-gegevens. De volgende code gebruikt de afhankelijkheden (pakket โ€“ versie) exif-reader โ€“ ^1.0.3, scherp โ€“ ^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);
}

De hier geschetste oplossing is asynchroon; de beelden worden vastgelegd door de cameravallen en op een later tijdstip geรผpload naar een S3-bucket voor verwerking. Als de beelden van de cameraval vaker worden geรผpload, kun je de oplossing uitbreiden om mensen in het bewaakte gebied te detecteren en meldingen naar bezorgde activisten te sturen om mogelijke stroperij in de buurt van deze bedreigde dieren aan te geven. Dit wordt geรฏmplementeerd via de Lambda-functie die de Amazon Rekognition API aanroept om labels voor de aanwezigheid van een mens te detecteren. Als er een mens wordt gedetecteerd, wordt een foutbericht vastgelegd in CloudWatch-logboeken. Een gefilterde metriek in het foutenlogboek activeert een CloudWatch-alarm dat een e-mail stuurt naar de natuurbeschermingsactivisten, die vervolgens verdere actie kunnen ondernemen.

  1. Vouw de oplossing uit met de volgende code:
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. Als een bedreigde diersoort wordt gedetecteerd, werkt de Lambda-functie DynamoDB bij met de telling, datum en andere optionele metadata die worden verkregen uit de EXIF-tags van de afbeelding:
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();

De gegevens opvragen en visualiseren

U kunt nu Athena en QuickSight gebruiken om de gegevens te visualiseren.

  1. Stel de DynamoDB-tabel in als de gegevensbron voor Athena.DynamoDB-gegevensbron
  1. Voeg de gegevensbrondetails toe.

De volgende belangrijke stap is het definiรซren van een Lambda-functie die verbinding maakt met de gegevensbron.

  1. Chose Lambda-functie maken.

Lambda-functie

  1. Voer namen in voor AthenaCatalogusnaam en Gemorste emmer; de rest kunnen standaardinstellingen zijn.
  2. Implementeer de connectorfunctie.

Lambda-connector

Nadat alle afbeeldingen zijn verwerkt, kunt u QuickSight gebruiken om de gegevens voor de populatievariantie in de tijd van Athena te visualiseren.

  1. Kies op de Athena-console een gegevensbron en voer de details in.
  2. Kies Lambda-functie maken om een โ€‹โ€‹connector voor DynamoDB te leveren.

Lambda-functie maken

  1. Kies op het QuickSight-dashboard Nieuwe analyse en Nieuwe dataset.
  2. Kies Athena als de gegevensbron.

Athene als gegevensbron

  1. Voer de catalogus, database en tabel in om verbinding mee te maken en kies kies.

Catalogus

  1. Aanmaak van datasets voltooien.

Catalogus

De volgende grafiek toont het aantal bedreigde diersoorten dat op een bepaalde dag is gevangen.

QuickSight-grafiek

GPS-gegevens worden gepresenteerd als onderdeel van de EXIF-tags van een vastgelegde afbeelding. Vanwege de gevoeligheid van de locatie van deze bedreigde dieren, beschikte onze dataset niet over de GPS-locatie. We hebben echter een geospatiale kaart gemaakt met gesimuleerde gegevens om te laten zien hoe u locaties kunt visualiseren wanneer GPS-gegevens beschikbaar zijn.

Geospatiale grafiek

Opruimen

Om onverwachte kosten te voorkomen, moet u ervoor zorgen dat u de AWS-services uitschakelt die u tijdens deze demonstratie hebt gebruikt: de S3-buckets, DynamoDB-tabel, QuickSight, Athena en het getrainde Rekognition Custom Labels-model. U moet deze bronnen rechtstreeks verwijderen via hun respectieve serviceconsoles als u ze niet langer nodig hebt. Verwijzen naar Een Amazon Rekognition Custom Labels-model verwijderen voor meer informatie over het verwijderen van het model.

Conclusie

In dit bericht hebben we een geautomatiseerd systeem gepresenteerd dat bedreigde soorten identificeert, hun populatietelling registreert en inzichten geeft over de variatie in populatie in de loop van de tijd. Je kunt de oplossing ook uitbreiden om de autoriteiten te waarschuwen wanneer mensen (mogelijke stropers) zich in de buurt van deze bedreigde diersoorten bevinden. Met de AI/ML-mogelijkheden van Amazon Rekognition kunnen we de inspanningen van natuurbeschermingsgroepen ondersteunen om bedreigde soorten en hun ecosystemen te beschermen.

Voor meer informatie over Rekognition Custom Labels, zie: Aan de slag met aangepaste Amazon Rekognition-labels en Inhoud modereren. Als Rekognition Custom Labels nieuw voor u is, kunt u onze gratis laag gebruiken, die 3 maanden duurt en 10 gratis trainingsuren per maand en 4 gratis inferentie-uren per maand omvat. De Amazon Rekognition Free Tier omvat het verwerken van 5,000 afbeeldingen per maand gedurende 12 maanden.


Over de auteurs

auteur-jyothiJyothi Goudar is Partner Solutions Architect Manager bij AWS. Ze werkt nauw samen met de wereldwijde systeemintegratorpartner om klanten in staat te stellen en te ondersteunen bij het verplaatsen van hun workloads naar AWS.

Detecteer populatievariantie van bedreigde diersoorten met behulp van Amazon Rekognition PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Jay Rao is Principal Solutions Architect bij AWS. Hij geeft graag technische en strategische begeleiding aan klanten en helpt hen bij het ontwerpen en implementeren van oplossingen op AWS.

Tijdstempel:

Meer van AWS-machine learning