Detect population variance of endangered species using Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Detectați variația populației speciilor pe cale de dispariție folosind Amazon Rekognition

Planeta noastră se confruntă cu o criză globală de extincție. Raportul ONU arată un număr uluitor de peste un milion de specii despre care se temea a fi pe calea dispariției. Cele mai comune motive ale dispariției includ pierderea habitatului, braconajul și speciile invazive. Mai multe fundații pentru conservarea faunei sălbatice, cercetători, voluntari și rangeri anti-braconaj au lucrat neobosit pentru a rezolva această criză. Având informații precise și regulate despre animalele pe cale de dispariție din sălbăticie, va îmbunătăți capacitatea conservatorilor faunei sălbatice de a studia și conserva speciile pe cale de dispariție. Oamenii de știință și personalul de teren folosesc camere echipate cu declanșatoare în infraroșu, numite capcane de cameră, și plasați-le în cele mai eficiente locații din păduri pentru a captura imagini cu animale sălbatice. Aceste imagini sunt apoi revizuite manual, ceea ce este un proces care necesită foarte mult timp.

În această postare, demonstrăm o soluție folosind Etichete personalizate Amazon Rekognition împreună cu capcanele camerei cu senzor de mișcare pentru a automatiza acest proces pentru a recunoaște speciile generate și a le studia. Rekognition Custom Labels este un serviciu de viziune computerizat complet gestionat care permite dezvoltatorilor să construiască modele personalizate pentru a clasifica și identifica obiecte în imagini care sunt specifice și unice pentru cazul lor de utilizare. Detaliem cum să recunoaștem speciile de animale pe cale de dispariție din imaginile colectate din capcanele camerei, să tragem perspective despre numărul lor de populație și să detectăm oamenii din jurul lor. Aceste informații vor fi utile pentru conservatori, care pot lua decizii proactive pentru a le salva.

Prezentare generală a soluțiilor

Următoarea diagramă ilustrează arhitectura soluției.

Această soluție folosește următoarele servicii AI, tehnologii fără server și servicii gestionate pentru a implementa o arhitectură scalabilă și rentabilă:

  • Amazon Atena – Un serviciu de interogare interactiv fără server, care facilitează analiza datelor în Amazon S3 utilizând SQL standard
  • Amazon CloudWatch – Un serviciu de monitorizare și observabilitate care colectează date de monitorizare și operaționale sub formă de jurnale, metrici și evenimente
  • Amazon DynamoDB – O bază de date cheie-valoare și documente care oferă performanțe de o singură cifră în milisecunde la orice scară
  • AWS Lambdas – Un serviciu de calcul fără server care vă permite să rulați cod ca răspuns la declanșatoare, cum ar fi modificări ale datelor, schimbări ale stării sistemului sau acțiuni ale utilizatorului
  • Amazon QuickSight – Un serviciu de business intelligence bazat pe învățare automată (ML) fără server, care oferă informații, tablouri de bord interactive și analize bogate
  • Amazon Rekognition – Folosește ML pentru a identifica obiecte, oameni, text, scene și activități în imagini și videoclipuri, precum și pentru a detecta orice conținut neadecvat
  • Etichete personalizate Amazon Rekognition – Utilizează AutoML pentru a ajuta la pregătirea modelelor personalizate pentru a identifica obiectele și scenele din imagini care sunt specifice nevoilor dvs. de afaceri
  • Serviciul de coadă simplă Amazon (Amazon SQS) – Un serviciu de așteptare a mesajelor complet gestionat care vă permite să decuplați și să scalați microservicii, sistemele distribuite și aplicațiile fără server
  • Serviciul Amazon de stocare simplă (Amazon S3) – Servește ca depozit de obiecte pentru documente și permite gestionarea centrală cu controale de acces reglate fin.

Pașii de nivel înalt din această soluție sunt următorii:

  1. Antrenează și construiește un model personalizat folosind etichetele personalizate Rekognition pentru a recunoaște speciile pe cale de dispariție din zonă. Pentru această postare, ne antrenăm pe imagini cu rinoceri.
  2. Imaginile care sunt capturate prin capcanele camerei cu senzorul de mișcare sunt încărcate într-o găleată S3, care publică un eveniment pentru fiecare imagine încărcată.
  3. Pentru fiecare eveniment publicat este declanșată o funcție Lambda, care preia imaginea din găleată S3 și o transmite modelului personalizat pentru a detecta animalul pe cale de dispariție.
  4. Funcția Lambda utilizează API-ul Amazon Rekognition pentru a identifica animalele din imagine.
  5. Dacă imaginea are vreo specie de rinocer pe cale de dispariție, funcția actualizează baza de date DynamoDB cu numărul animalului, data imaginii capturate și alte metadate utile care pot fi extrase din imagine. EXIF antet.
  6. QuickSight este utilizat pentru a vizualiza numărul de animale și datele de locație colectate în baza de date DynamoDB pentru a înțelege varianța populației de animale în timp. Privind în mod regulat tablourile de bord, grupurile de conservare pot identifica modele și izola cauze probabile, cum ar fi bolile, clima sau braconajul, care ar putea cauza această variație și să ia măsuri proactiv pentru a rezolva problema.

Cerințe preliminare

Este necesar un set de instruire bun pentru a construi un model eficient folosind etichetele personalizate Rekognition. Am folosit imaginile de la AWS Marketplace (Set de date despre animale și animale sălbatice de la Shutterstock) Şi Kaggle pentru a construi modelul.

Implementează soluția

Fluxul nostru de lucru include următorii pași:

  1. Antrenați un model personalizat pentru a clasifica speciile pe cale de dispariție (rinocerul în exemplul nostru) folosind capacitatea AutoML a etichetelor personalizate Rekognition.

De asemenea, puteți efectua acești pași din consola Rekognition Custom Labels. Pentru instrucțiuni, consultați Crearea unui proiect, Crearea de seturi de date de instruire și testare, și Antrenarea unui model Amazon Rekognition Custom Labels.

În acest exemplu, folosim setul de date de la Kaggle. Următorul tabel rezumă conținutul setului de date.

Etichetă Set de antrenament Set de testare
Leu 625 156
Rinocer 608 152
Elefant_African 368 92
  1. Încărcați imaginile capturate din capcanele camerei într-o găleată S3 desemnată.
  2. Definiți notificările de eveniment în Permisiuni secțiunea compartimentului S3 pentru a trimite o notificare către o coadă SQS definită atunci când un obiect este adăugat în compartiment.

Definiți notificarea evenimentului

Acțiunea de încărcare declanșează un eveniment care este pus în coadă în Amazon SQS folosind notificarea de eveniment Amazon S3.

  1. Adăugați permisiunile corespunzătoare prin politica de acces a cozii SQS pentru a permite compartimentului S3 să trimită notificarea la coadă.

ML-9942-eveniment-nu

  1. Configurați un declanșator Lambda pentru coada SQS, astfel încât funcția Lambda să fie invocată atunci când este primit un mesaj nou.

Declanșator lambda

  1. Modificați politica de acces pentru a permite funcției Lambda să acceseze coada SQS.

Politica de acces la funcția Lambda

Funcția Lambda ar trebui să aibă acum permisiunile potrivite pentru a accesa coada SQS.

Permisiunile funcției Lambda

  1. Configurați variabilele de mediu astfel încât acestea să poată fi accesate în cod.

Variabile de mediu

Codul funcției Lambda

Funcția Lambda îndeplinește următoarele sarcini la primirea unei notificări din coada SNS:

  1. Efectuați un apel API către Amazon Rekognition pentru a detecta etichetele din modelul personalizat care identifică speciile pe cale de dispariție:
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. Preluați etichetele EXIF ​​din imagine pentru a obține data la care a fost făcută fotografia și alte date EXIF ​​relevante. Următorul cod folosește dependențele (pachet – versiune) 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);
}

Soluția prezentată aici este asincronă; imaginile sunt capturate de capcanele camerei și apoi încărcate ulterior într-o găleată S3 pentru procesare. Dacă imaginile capcanelor camerei sunt încărcate mai frecvent, puteți extinde soluția pentru a detecta oamenii în zona monitorizată și puteți trimite notificări activiștilor în cauză pentru a indica posibilul braconaj în vecinătatea acestor animale pe cale de dispariție. Acest lucru este implementat prin funcția Lambda care apelează API-ul Amazon Rekognition pentru a detecta etichetele pentru prezența unui om. Dacă este detectat un om, un mesaj de eroare este înregistrat în CloudWatch Logs. O valoare filtrată din jurnalul de erori declanșează o alarmă CloudWatch care trimite un e-mail activiștilor de conservare, care pot lua apoi măsuri suplimentare.

  1. Extindeți soluția cu următorul cod:
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. Dacă este detectată vreo specie pe cale de dispariție, funcția Lambda actualizează DynamoDB cu numărul, data și alte metadate opționale care sunt obținute din etichetele EXIF ​​ale imaginii:
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();

Interogați și vizualizați datele

Acum puteți utiliza Athena și QuickSight pentru a vizualiza datele.

  1. Setați tabelul DynamoDB ca sursă de date pentru Athena.Sursa de date DynamoDB
  1. Adăugați detaliile sursei de date.

Următorul pas important este definirea unei funcții Lambda care se conectează la sursa de date.

  1. Chose Creați funcția Lambda.

Funcția lambda

  1. Introduceți nume pentru AthenaCatalogName și SpillBucket; restul pot fi setări implicite.
  2. Implementați funcția conector.

conector lambda

După ce toate imaginile sunt procesate, puteți utiliza QuickSight pentru a vizualiza datele pentru variația populației în timp de la Athena.

  1. Pe consola Athena, alegeți o sursă de date și introduceți detaliile.
  2. Alege Creați funcția Lambda pentru a furniza un conector la DynamoDB.

Creați funcția Lambda

  1. Pe tabloul de bord QuickSight, alegeți Analiză nouă și Set de date nou.
  2. Alegeți Athena ca sursă de date.

Athena ca sursă de date

  1. Introduceți catalogul, baza de date și tabelul la care vă conectați și alegeți Selectați.

Catalog

  1. Crearea completă a setului de date.

Catalog

Următorul grafic arată numărul de specii pe cale de dispariție capturate într-o anumită zi.

Diagrama QuickSight

Datele GPS sunt prezentate ca parte a etichetelor EXIF ​​ale unei imagini capturate. Datorită sensibilității locației acestor animale pe cale de dispariție, setul nostru de date nu avea locația GPS. Cu toate acestea, am creat o diagramă geospațială folosind date simulate pentru a arăta cum puteți vizualiza locațiile atunci când datele GPS sunt disponibile.

Diagrama geospațială

A curăța

Pentru a evita costuri neașteptate, asigurați-vă că dezactivați serviciile AWS pe care le-ați folosit ca parte a acestei demonstrații: compartimentele S3, tabelul DynamoDB, QuickSight, Athena și modelul de etichete personalizate Rekognition antrenat. Ar trebui să ștergeți aceste resurse direct prin consolele de servicii respective, dacă nu mai aveți nevoie de ele. A se referi la Ștergerea unui model Amazon Rekognition Custom Labels pentru mai multe informații despre ștergerea modelului.

Concluzie

În această postare, am prezentat un sistem automat care identifică speciile pe cale de dispariție, înregistrează numărul populației acestora și oferă informații despre variația populației în timp. De asemenea, puteți extinde soluția pentru a alerta autoritățile atunci când oamenii (posibilii braconieri) se află în vecinătatea acestor specii pe cale de dispariție. Cu capacitățile AI/ML ale Amazon Rekognition, putem sprijini eforturile grupurilor de conservare pentru a proteja speciile pe cale de dispariție și ecosistemele acestora.

Pentru mai multe informații despre etichetele personalizate Rekognition, consultați Noțiuni introductive despre etichetele personalizate Amazon Rekognition și Moderarea conținutului. Dacă sunteți nou la Rekognition Custom Labels, puteți utiliza nivelul nostru gratuit, care durează 3 luni și include 10 ore de instruire gratuite pe lună și 4 ore de inferență gratuite pe lună. Nivelul gratuit Amazon Rekognition include procesarea a 5,000 de imagini pe lună timp de 12 luni.


Despre Autori

autor-jyothiJyothi Goudar este Partner Solutions Architect Manager la AWS. Ea lucrează îndeaproape cu partenerul integrator global de sisteme pentru a permite și sprijini clienții care își mută sarcinile de lucru în AWS.

Detect population variance of endangered species using Amazon Rekognition PlatoBlockchain Data Intelligence. Vertical Search. Ai.Jay Rao este arhitect principal de soluții la AWS. Îi place să ofere îndrumări tehnice și strategice clienților și să îi ajute să proiecteze și să implementeze soluții pe AWS.

Timestamp-ul:

Mai mult de la Învățare automată AWS