Erkennen Sie Populationsvarianzen gefährdeter Arten mit Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erkennen Sie Populationsvarianzen gefährdeter Arten mit Amazon Rekognition

Unser Planet steht vor einer globalen Aussterbekrise. UN-Bericht zeigt eine erstaunliche Zahl von mehr als einer Million Arten, von denen befürchtet wird, dass sie vom Aussterben bedroht sind. Die häufigsten Gründe für das Aussterben sind Lebensraumverlust, Wilderei und invasive Arten. Mehrere Stiftungen für den Artenschutz, Forscher, Freiwillige und Ranger gegen Wilderei haben unermüdlich daran gearbeitet, diese Krise zu bewältigen. Genaue und regelmäßige Informationen über gefährdete Tiere in freier Wildbahn werden die Fähigkeit von Naturschützern verbessern, gefährdete Arten zu untersuchen und zu erhalten. Wildtierwissenschaftler und Außendienstmitarbeiter verwenden Kameras, die mit Infrarotauslösern ausgestattet sind, genannt Kamerafallen, und platzieren Sie sie an den effektivsten Orten in Wäldern, um Bilder von Wildtieren aufzunehmen. Diese Bilder werden dann manuell überprüft, was ein sehr zeitaufwändiger Prozess ist.

In diesem Beitrag demonstrieren wir eine Lösung mit Benutzerdefinierte Etiketten von Amazon Rekognition zusammen mit Bewegungssensor-Kamerafallen, um diesen Prozess zu automatisieren, um erzeugte Arten zu erkennen und zu untersuchen. Rekognition Custom Labels ist ein vollständig verwalteter Computer-Vision-Service, der es Entwicklern ermöglicht, benutzerdefinierte Modelle zu erstellen, um Objekte in Bildern zu klassifizieren und zu identifizieren, die spezifisch und einzigartig für ihren Anwendungsfall sind. Wir erläutern, wie man gefährdete Tierarten anhand von Kamerafallenbildern erkennt, Erkenntnisse über ihre Populationszahl gewinnt und Menschen in ihrer Umgebung erkennt. Diese Informationen sind für Naturschützer hilfreich, die proaktive Entscheidungen treffen können, um sie zu retten.

Lösungsüberblick

Das folgende Diagramm zeigt die Architektur der Lösung.

Diese Lösung verwendet die folgenden KI-Dienste, serverlosen Technologien und verwalteten Dienste, um eine skalierbare und kostengünstige Architektur zu implementieren:

  • Amazonas Athena – Ein serverloser interaktiver Abfragedienst, der die Analyse von Daten in Amazon S3 mit Standard-SQL erleichtert
  • Amazon CloudWatch – Ein Überwachungs- und Beobachtbarkeitsdienst, der Überwachungs- und Betriebsdaten in Form von Protokollen, Metriken und Ereignissen sammelt
  • Amazon DynamoDB – Eine Schlüsselwert- und Dokumentendatenbank, die in jeder Größenordnung eine Leistung im einstelligen Millisekundenbereich liefert
  • AWS Lambda – Ein Serverless-Computing-Dienst, mit dem Sie Code als Reaktion auf Auslöser wie Datenänderungen, Änderungen des Systemstatus oder Benutzeraktionen ausführen können
  • Amazon QuickSight – Ein serverloser, auf maschinellem Lernen (ML) basierender Business-Intelligence-Service, der Einblicke, interaktive Dashboards und umfassende Analysen bietet
  • Amazon-Anerkennung – Verwendet ML, um Objekte, Personen, Texte, Szenen und Aktivitäten in Bildern und Videos zu identifizieren sowie unangemessene Inhalte zu erkennen
  • Benutzerdefinierte Etiketten von Amazon Rekognition – Verwendet AutoML, um benutzerdefinierte Modelle zu trainieren, um die Objekte und Szenen in Bildern zu identifizieren, die für Ihre Geschäftsanforderungen spezifisch sind
  • Amazon Simple Queue Service (Amazon SQS) – Ein vollständig verwalteter Nachrichtenwarteschlangendienst, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln und skalieren können
  • Einfacher Amazon-Speicherdienst (Amazon S3) – Dient als Objektspeicher für Dokumente und ermöglicht eine zentrale Verwaltung mit fein abgestimmten Zugriffskontrollen.

Die allgemeinen Schritte in dieser Lösung sind wie folgt:

  1. Trainieren und erstellen Sie ein benutzerdefiniertes Modell mit Rekognition Custom Labels, um gefährdete Arten in der Region zu erkennen. Für diesen Beitrag trainieren wir mit Bildern von Nashörnern.
  2. Bilder, die durch die Kamerafallen des Bewegungssensors erfasst werden, werden in einen S3-Bucket hochgeladen, der ein Ereignis für jedes hochgeladene Bild veröffentlicht.
  3. Für jedes veröffentlichte Ereignis wird eine Lambda-Funktion ausgelöst, die das Bild aus dem S3-Bucket abruft und an das benutzerdefinierte Modell übergibt, um das gefährdete Tier zu erkennen.
  4. Die Lambda-Funktion verwendet die Amazon Rekognition-API, um die Tiere im Bild zu identifizieren.
  5. Wenn das Bild eine gefährdete Nashornart enthält, aktualisiert die Funktion die DynamoDB-Datenbank mit der Anzahl der Tiere, dem Datum der Bildaufnahme und anderen nützlichen Metadaten, die aus dem Bild extrahiert werden können EXIF Header.
  6. QuickSight wird verwendet, um die in der DynamoDB-Datenbank gesammelten Tierzahl- und Standortdaten zu visualisieren, um die Varianz der Tierpopulation im Laufe der Zeit zu verstehen. Durch regelmäßiges Betrachten der Dashboards können Naturschutzgruppen Muster identifizieren und mögliche Ursachen wie Krankheiten, Klima oder Wilderei isolieren, die diese Abweichung verursachen könnten, und proaktiv Maßnahmen ergreifen, um das Problem anzugehen.

Voraussetzungen:

Ein gutes Trainingsset ist erforderlich, um ein effektives Modell mit Rekognition Custom Labels zu erstellen. Wir haben die Bilder von AWS Marketplace (Tier- und Wildtierdatensatz von Shutterstock) und Kaggle um das Modell zu bauen.

Implementieren Sie die Lösung

Unser Workflow umfasst die folgenden Schritte:

  1. Trainieren Sie ein benutzerdefiniertes Modell, um die gefährdete Art (in unserem Beispiel Nashorn) mit der AutoML-Funktion von Rekognition Custom Labels zu klassifizieren.

Sie können diese Schritte auch über die Rekognition Custom Labels-Konsole ausführen. Anweisungen finden Sie unter Ein Projekt erstellen, Erstellen von Trainings- und Testdatensätzen und Trainieren eines Amazon Rekognition Custom Labels-Modells.

In diesem Beispiel verwenden wir den Datensatz von Kaggle. Die folgende Tabelle fasst den Datensatzinhalt zusammen.

Label Trainingsset Testset
Löwe 625 156
Nashorn 608 152
Afrikanischer Elefant 368 92
  1. Laden Sie die von den Kamerafallen aufgenommenen Bilder in einen bestimmten S3-Bucket hoch.
  2. Definieren Sie die Ereignisbenachrichtigungen in der Berechtigungen Abschnitt des S3-Buckets, um eine Benachrichtigung an eine definierte SQS-Warteschlange zu senden, wenn ein Objekt zum Bucket hinzugefügt wird.

Ereignisbenachrichtigung definieren

Die Upload-Aktion löst ein Ereignis aus, das in Amazon SQS mithilfe der Amazon S3-Ereignisbenachrichtigung in die Warteschlange gestellt wird.

  1. Fügen Sie die entsprechenden Berechtigungen über die Zugriffsrichtlinie der SQS-Warteschlange hinzu, damit der S3-Bucket die Benachrichtigung an die Warteschlange senden kann.

ML-9942-Ereignis-nicht

  1. Konfigurieren Sie einen Lambda-Trigger für die SQS-Warteschlange, damit die Lambda-Funktion aufgerufen wird, wenn eine neue Nachricht empfangen wird.

Lambda-Trigger

  1. Ändern Sie die Zugriffsrichtlinie, damit die Lambda-Funktion auf die SQS-Warteschlange zugreifen kann.

Lambda-Funktionszugriffsrichtlinie

Die Lambda-Funktion sollte jetzt über die richtigen Berechtigungen für den Zugriff auf die SQS-Warteschlange verfügen.

Lambda-Funktionsberechtigungen

  1. Richten Sie die Umgebungsvariablen so ein, dass im Code auf sie zugegriffen werden kann.

Umgebungsvariablen

Lambda-Funktionscode

Die Lambda-Funktion führt beim Empfang einer Benachrichtigung von der SNS-Warteschlange die folgenden Aufgaben aus:

  1. Führen Sie einen API-Aufruf an Amazon Rekognition durch, um Etiketten aus dem benutzerdefinierten Modell zu erkennen, die die gefährdeten Arten identifizieren:
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. Rufen Sie die EXIF-Tags aus dem Bild ab, um das Aufnahmedatum des Bildes und andere relevante EXIF-Daten zu erhalten. Der folgende Code verwendet die Abhängigkeiten (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);
}

Die hier skizzierte Lösung ist asynchron; Die Bilder werden von den Kamerafallen erfasst und zu einem späteren Zeitpunkt zur Verarbeitung in einen S3-Bucket hochgeladen. Wenn die Kamerafallenbilder häufiger hochgeladen werden, können Sie die Lösung erweitern, um Menschen im überwachten Bereich zu erkennen und Benachrichtigungen an betroffene Aktivisten zu senden, um auf mögliche Wilderei in der Nähe dieser gefährdeten Tiere hinzuweisen. Dies wird durch die Lambda-Funktion implementiert, die die Amazon Rekognition-API aufruft, um Labels für die Anwesenheit eines Menschen zu erkennen. Wenn ein Mensch erkannt wird, wird eine Fehlermeldung in CloudWatch Logs protokolliert. Eine gefilterte Metrik im Fehlerprotokoll löst einen CloudWatch-Alarm aus, der eine E-Mail an die Naturschützer sendet, die dann weitere Maßnahmen ergreifen können.

  1. Erweitern Sie die Lösung mit dem folgenden 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. Wenn eine gefährdete Art erkannt wird, aktualisiert die Lambda-Funktion DynamoDB mit der Anzahl, dem Datum und anderen optionalen Metadaten, die aus den EXIF-Tags des Bildes abgerufen werden:
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();

Daten abfragen und visualisieren

Sie können jetzt Athena und QuickSight verwenden, um die Daten zu visualisieren.

  1. Legen Sie die DynamoDB-Tabelle als Datenquelle für Athena fest.DynamoDB-Datenquelle
  1. Fügen Sie die Datenquellendetails hinzu.

Der nächste wichtige Schritt besteht darin, eine Lambda-Funktion zu definieren, die eine Verbindung zur Datenquelle herstellt.

  1. Wählen Lambda-Funktion erstellen.

Lambda-Funktion

  1. Namen eingeben für AthenaCatalogName und SpillEimer; der Rest können Standardeinstellungen sein.
  2. Stellen Sie die Connector-Funktion bereit.

Lambda-Anschluss

Nachdem alle Bilder verarbeitet wurden, können Sie QuickSight verwenden, um die Daten für die Bevölkerungsvarianz im Laufe der Zeit von Athena zu visualisieren.

  1. Wählen Sie in der Athena-Konsole eine Datenquelle aus und geben Sie die Details ein.
  2. Auswählen Lambda-Funktion erstellen um einen Connector für DynamoDB bereitzustellen.

Lambda-Funktion erstellen

  1. Wählen Sie im QuickSight-Dashboard aus Neue Analyse und Neuer Datensatz.
  2. Wählen Sie Athena als Datenquelle.

Athena als Datenquelle

  1. Geben Sie den Katalog, die Datenbank und die Tabelle ein, zu denen eine Verbindung hergestellt werden soll, und wählen Sie sie aus Auswählen.

Katalog

  1. Komplette Datensatzerstellung.

Katalog

Die folgende Grafik zeigt die Anzahl der an einem bestimmten Tag gefangenen gefährdeten Arten.

QuickSight-Diagramm

GPS-Daten werden als Teil der EXIF-Tags eines aufgenommenen Bildes dargestellt. Aufgrund der Sensibilität des Standorts dieser gefährdeten Tiere enthielt unser Datensatz keinen GPS-Standort. Wir haben jedoch ein Geodatendiagramm mit simulierten Daten erstellt, um zu zeigen, wie Sie Standorte visualisieren können, wenn GPS-Daten verfügbar sind.

Geodatendiagramm

Aufräumen

Um unerwartete Kosten zu vermeiden, deaktivieren Sie unbedingt die AWS-Services, die Sie im Rahmen dieser Demonstration verwendet haben – die S3-Buckets, die DynamoDB-Tabelle, QuickSight, Athena und das trainierte Rekognition Custom Labels-Modell. Sie sollten diese Ressourcen direkt über die jeweiligen Servicekonsolen löschen, wenn Sie sie nicht mehr benötigen. Beziehen auf Löschen eines Amazon Rekognition Custom Labels-Modells für weitere Informationen zum Löschen des Modells.

Zusammenfassung

In diesem Beitrag haben wir ein automatisiertes System vorgestellt, das gefährdete Arten identifiziert, ihre Populationszahl aufzeichnet und Einblicke in die Varianz der Population im Laufe der Zeit bietet. Sie können die Lösung auch erweitern, um die Behörden zu alarmieren, wenn sich Menschen (mögliche Wilderer) in der Nähe dieser gefährdeten Arten befinden. Mit den KI/ML-Fähigkeiten von Amazon Rekognition können wir die Bemühungen von Naturschutzgruppen zum Schutz gefährdeter Arten und ihrer Ökosysteme unterstützen.

Weitere Informationen zu benutzerdefinierten Etiketten von Rekognition finden Sie unter Erste Schritte mit Amazon Rekognition Custom Labels und Inhalte moderieren. Wenn Sie neu bei Rekognition Custom Labels sind, können Sie unser kostenloses Kontingent nutzen, das 3 Monate dauert und 10 kostenlose Schulungsstunden pro Monat und 4 kostenlose Inferenzstunden pro Monat umfasst. Das kostenlose Kontingent von Amazon Rekognition umfasst die Verarbeitung von 5,000 Bildern pro Monat für 12 Monate.


Über die Autoren

Autor-jyothiJyothi Goudar ist Partner Solutions Architect Manager bei AWS. Sie arbeitet eng mit globalen Systemintegratorpartnern zusammen, um Kunden zu ermöglichen und zu unterstützen, ihre Workloads auf AWS zu verlagern.

Erkennen Sie Populationsvarianzen gefährdeter Arten mit Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Jay Rao ist Principal Solutions Architect bei AWS. Er bietet Kunden gerne technische und strategische Beratung und hilft ihnen bei der Entwicklung und Implementierung von Lösungen auf AWS.

Zeitstempel:

Mehr von AWS Maschinelles Lernen