Détectez la variance des populations d'espèces menacées à l'aide d'Amazon Rekognition PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Détecter la variance des populations d'espèces en voie de disparition à l'aide d'Amazon Rekognition

Notre planète fait face à une crise d'extinction mondiale. Rapport de l'ONU montre un nombre impressionnant de plus d'un million d'espèces que l'on craint d'être en voie d'extinction. Les raisons les plus courantes de l'extinction sont la perte d'habitat, le braconnage et les espèces envahissantes. Plusieurs fondations de conservation de la faune, chercheurs, bénévoles et gardes anti-braconnage ont travaillé sans relâche pour faire face à cette crise. Disposer d'informations précises et régulières sur les animaux en voie de disparition dans la nature améliorera la capacité des défenseurs de la faune à étudier et à conserver les espèces en voie de disparition. Les scientifiques de la faune et le personnel de terrain utilisent des caméras équipées de déclencheurs infrarouges, appelés pièges photographiques, et placez-les dans les endroits les plus efficaces dans les forêts pour capturer des images de la faune. Ces images sont ensuite examinées manuellement, ce qui est un processus très chronophage.

Dans cet article, nous démontrons une solution utilisant Étiquettes personnalisées Amazon Rekognition ainsi que des pièges photographiques à détecteur de mouvement pour automatiser ce processus afin de reconnaître les espèces engendrées et de les étudier. Rekognition Custom Labels est un service de vision par ordinateur entièrement géré qui permet aux développeurs de créer des modèles personnalisés pour classer et identifier des objets dans des images spécifiques et uniques à leur cas d'utilisation. Nous détaillons comment reconnaître les espèces animales en voie de disparition à partir d'images recueillies à partir de pièges photographiques, tirer des informations sur leur nombre de populations et détecter les humains autour d'eux. Ces informations seront utiles aux défenseurs de l'environnement, qui pourront prendre des décisions proactives pour les sauver.

Vue d'ensemble de la solution

Le diagramme suivant illustre l'architecture de la solution.

Cette solution utilise les services d'IA, les technologies sans serveur et les services gérés suivants pour implémenter une architecture évolutive et rentable:

  • Amazone Athéna – Un service de requête interactif sans serveur qui facilite l'analyse des données dans Amazon S3 à l'aide de SQL standard
  • Amazon Cloud Watch – Un service de surveillance et d'observabilité qui collecte des données de surveillance et opérationnelles sous forme de journaux, de métriques et d'événements
  • Amazon DynamoDB – Une base de données de valeurs-clés et de documents qui offre des performances à un chiffre en millisecondes à n'importe quelle échelle
  • AWS Lambda – Un service de calcul sans serveur qui vous permet d'exécuter du code en réponse à des déclencheurs tels que des modifications de données, des changements d'état du système ou des actions de l'utilisateur
  • Amazon QuickSight – Un service d'intelligence d'affaires sans serveur, alimenté par l'apprentissage automatique (ML) qui fournit des informations, des tableaux de bord interactifs et des analyses riches
  • Amazon Reconnaissance - Utilise ML pour identifier des objets, des personnes, du texte, des scènes et des activités dans des images et des vidéos, ainsi que pour détecter tout contenu inapproprié
  • Étiquettes personnalisées Amazon Rekognition – Utilise AutoML pour aider à former des modèles personnalisés afin d'identifier les objets et les scènes dans les images qui sont spécifiques aux besoins de votre entreprise
  • Service Amazon Simple Queue (Amazon SQS) – Un service de file d'attente de messages entièrement géré qui vous permet de découpler et de mettre à l'échelle les microservices, les systèmes distribués et les applications sans serveur
  • Service de stockage simple Amazon (Amazon S3) – Sert de magasin d'objets pour les documents et permet une gestion centralisée avec des contrôles d'accès affinés.

Les étapes de haut niveau de cette solution sont les suivantes :

  1. Entraînez et construisez un modèle personnalisé à l'aide des étiquettes personnalisées Rekognition pour reconnaître les espèces menacées dans la région. Pour ce post, nous nous entraînons sur des images de rhinocéros.
  2. Les images capturées via les pièges à caméra du capteur de mouvement sont téléchargées dans un compartiment S3, qui publie un événement pour chaque image téléchargée.
  3. Une fonction Lambda est déclenchée pour chaque événement publié, qui récupère l'image du bucket S3 et la transmet au modèle personnalisé pour détecter l'animal en voie de disparition.
  4. La fonction Lambda utilise l'API Amazon Rekognition pour identifier les animaux dans l'image.
  5. Si l'image contient des espèces de rhinocéros en voie de disparition, la fonction met à jour la base de données DynamoDB avec le nombre d'animaux, la date de capture de l'image et d'autres métadonnées utiles pouvant être extraites de l'image. EXIF en-tête.
  6. QuickSight est utilisé pour visualiser le nombre d'animaux et les données de localisation collectées dans la base de données DynamoDB afin de comprendre la variance de la population animale au fil du temps. En examinant régulièrement les tableaux de bord, les groupes de conservation peuvent identifier des modèles et isoler les causes probables telles que les maladies, le climat ou le braconnage qui pourraient être à l'origine de cet écart et prendre des mesures proactives pour résoudre le problème.

Pré-requis

Un bon ensemble de formation est nécessaire pour créer un modèle efficace à l'aide des étiquettes personnalisées Rekognition. Nous avons utilisé les images d'AWS Marketplace (Ensemble de données sur les animaux et la faune de Shutterstock) et Kaggle pour construire le modèle.

Mettre en œuvre la solution

Notre flux de travail comprend les étapes suivantes:

  1. Entraînez un modèle personnalisé pour classer les espèces en voie de disparition (rhinocéros dans notre exemple) à l'aide de la fonctionnalité AutoML de Rekognition Custom Labels.

Vous pouvez également effectuer ces étapes à partir de la console Rekognition Custom Labels. Pour obtenir des instructions, reportez-vous à Créer un projet, Création d'ensembles de données d'entraînement et de testet Formation d'un modèle d'étiquettes personnalisées Amazon Rekognition.

Dans cet exemple, nous utilisons le jeu de données de Kaggle. Le tableau suivant résume le contenu du jeu de données.

Libellé Ensemble d'entraînement Ensemble d'essai
Lion 625 156
Rhinocéros 608 152
Éléphant_d'Afrique 368 92
  1. Téléchargez les images capturées à partir des pièges photographiques dans un compartiment S3 désigné.
  2. Définissez les notifications d'événements dans le Permissions section du compartiment S3 pour envoyer une notification à une file d'attente SQS définie lorsqu'un objet est ajouté au compartiment.

Définir la notification d'événement

L'action de téléchargement déclenche un événement qui est mis en file d'attente dans Amazon SQS à l'aide de la notification d'événement Amazon S3.

  1. Ajoutez les autorisations appropriées via la stratégie d'accès de la file d'attente SQS pour permettre au compartiment S3 d'envoyer la notification à la file d'attente.

ML-9942-événement-pas

  1. Configurez un déclencheur Lambda pour la file d'attente SQS afin que la fonction Lambda soit appelée lorsqu'un nouveau message est reçu.

Déclencheur lambda

  1. Modifiez la stratégie d'accès pour autoriser la fonction Lambda à accéder à la file d'attente SQS.

Politique d'accès aux fonctions Lambda

La fonction Lambda devrait maintenant disposer des autorisations appropriées pour accéder à la file d'attente SQS.

Autorisations des fonctions Lambda

  1. Configurez les variables d'environnement afin qu'elles soient accessibles dans le code.

Variables d'environnement

Code de la fonction Lambda

La fonction Lambda effectue les tâches suivantes lors de la réception d'une notification de la file d'attente SNS :

  1. Effectuez un appel d'API à Amazon Rekognition pour détecter les étiquettes du modèle personnalisé qui identifient les espèces menacées :
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. Récupérez les balises EXIF ​​de l'image pour obtenir la date à laquelle la photo a été prise et d'autres données EXIF ​​pertinentes. Le code suivant utilise les dépendances (package – 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);
}

La solution décrite ici est asynchrone ; les images sont capturées par les pièges photographiques, puis téléchargées ultérieurement dans un compartiment S3 pour traitement. Si les images des pièges photographiques sont téléchargées plus fréquemment, vous pouvez étendre la solution pour détecter les humains dans la zone surveillée et envoyer des notifications aux militants concernés pour indiquer un éventuel braconnage à proximité de ces animaux en voie de disparition. Ceci est implémenté via la fonction Lambda qui appelle l'API Amazon Rekognition pour détecter les étiquettes de présence humaine. Si un humain est détecté, un message d'erreur est consigné dans CloudWatch Logs. Une métrique filtrée dans le journal des erreurs déclenche une alarme CloudWatch qui envoie un e-mail aux militants de la conservation, qui peuvent alors prendre d'autres mesures.

  1. Développez la solution avec le code suivant :
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. Si une espèce en voie de disparition est détectée, la fonction Lambda met à jour DynamoDB avec le nombre, la date et d'autres métadonnées facultatives obtenues à partir des balises EXIF ​​d'image :
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();

Interroger et visualiser les données

Vous pouvez maintenant utiliser Athena et QuickSight pour visualiser les données.

  1. Définissez la table DynamoDB comme source de données pour Athena.Source de données DynamoDB
  1. Ajoutez les détails de la source de données.

La prochaine étape importante consiste à définir une fonction Lambda qui se connecte à la source de données.

  1. Choisissez Créer une fonction Lambda.

Fonction Lambda

  1. Entrez des noms pour AthenaCatalogName ainsi que DéversementSeau; le reste peut être des paramètres par défaut.
  2. Déployez la fonction connecteur.

Connecteur lambda

Une fois toutes les images traitées, vous pouvez utiliser QuickSight pour visualiser les données de la variance de la population au fil du temps à partir d'Athena.

  1. Sur la console Athena, choisissez une source de données et entrez les détails.
  2. Selectionnez Créer une fonction Lambda pour fournir un connecteur à DynamoDB.

Créer une fonction Lambda

  1. Sur le tableau de bord QuickSight, choisissez Nouvelle analyse ainsi que Nouvel ensemble de données.
  2. Choisissez Athena comme source de données.

Athena comme source de données

  1. Entrez le catalogue, la base de données et la table auxquels vous connecter et choisissez Sélectionnez.

Catalogue

  1. Création complète du jeu de données.

Catalogue

Le tableau suivant montre le nombre d'espèces menacées capturées un jour donné.

Graphique QuickSight

Les données GPS sont présentées dans le cadre des balises EXIF ​​​​d'une image capturée. En raison de la sensibilité de la localisation de ces animaux en voie de disparition, notre ensemble de données ne disposait pas de la localisation GPS. Cependant, nous avons créé un graphique géospatial à l'aide de données simulées pour montrer comment vous pouvez visualiser les emplacements lorsque les données GPS sont disponibles.

Carte géospatiale

Nettoyer

Pour éviter d'engager des coûts inattendus, veillez à désactiver les services AWS que vous avez utilisés dans le cadre de cette démonstration : les compartiments S3, la table DynamoDB, QuickSight, Athena et le modèle Rekognition Custom Labels formé. Vous devez supprimer ces ressources directement via leurs consoles de service respectives si vous n'en avez plus besoin. Faire référence à Suppression d'un modèle d'étiquettes personnalisées Amazon Rekognition pour plus d'informations sur la suppression du modèle.

Conclusion

Dans cet article, nous avons présenté un système automatisé qui identifie les espèces en voie de disparition, enregistre leur nombre de populations et fournit des informations sur la variance de la population au fil du temps. Vous pouvez également prolonger la solution pour alerter les autorités lorsque des humains (possibles braconniers) se trouvent à proximité de ces espèces menacées. Grâce aux capacités d'IA/ML d'Amazon Rekognition, nous pouvons soutenir les efforts des groupes de conservation pour protéger les espèces menacées et leurs écosystèmes.

Pour plus d'informations sur les étiquettes personnalisées Rekognition, reportez-vous à Premiers pas avec les étiquettes personnalisées Amazon Rekognition ainsi que Modération du contenu. Si vous débutez avec Rekognition Custom Labels, vous pouvez utiliser notre niveau gratuit, qui dure 3 mois et comprend 10 heures de formation gratuites par mois et 4 heures d'inférence gratuites par mois. L'offre gratuite d'Amazon Rekognition inclut le traitement de 5,000 12 images par mois pendant XNUMX mois.


À propos des auteurs

auteur-jyothiJyoti Goudar est Partner Solutions Architect Manager chez AWS. Elle travaille en étroite collaboration avec un partenaire intégrateur de système mondial pour permettre et aider les clients à déplacer leurs charges de travail vers AWS.

Détectez la variance des populations d'espèces menacées à l'aide d'Amazon Rekognition PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Jay Rao est architecte principal de solutions chez AWS. Il aime fournir des conseils techniques et stratégiques aux clients et les aider à concevoir et à mettre en œuvre des solutions sur AWS.

Horodatage:

Plus de Apprentissage automatique AWS