PLATFORM

Une image vaut mille logs

Splunk est une plateforme fantastique pour importer, stocker, rechercher et analyser des données à partir de logs, de métriques et de traces provenant d’une grande variété de sources. Mais devons-nous pour autant ignorer toutes les données qui n’entrent pas dans ces catégories, comme les données d’image et de vidéo par exemple ? Bien sûr que non !

Les images, les enregistrements audio et d’autres sources de données « binaires » lisibles par machine sont susceptibles de constituer des sources d’informations précieuses dans de nombreuses situations. Encore faut-il que nous trouvions un moyen de rendre ces données accessibles de manière significative.

La tâche peut sembler ardue, mais des décennies de recherche et de développement ont abouti à un certain nombre de systèmes et de services capables de commencer à interpréter ces données de manière significative. Dans ce blog, j’aimerais vous parler de l’une de ces approches, qui permet de mettre des métadonnées d’image acquises par machine learning à la disposition de Splunk.

Rekognition est un service de vision par ordinateur d’AWS. Il vous permet de générer divers types de métadonnées sur des images ou des vidéos stockées dans AWS S3 ou sur les flux de données correspondants. Vous pouvez l’utiliser pour détecter les visages dans une image et dire s’ils ont l’air heureux ou contrariés. Vous pouvez suivre l’apparition d’une célébrité dans une vidéo, ou l’utiliser pour détecter et étiqueter des objets particuliers dans une scène.

La valeur commerciale de ce type de données vient de la mise en contexte des sources de données basées sur des images ou des vidéos. Par exemple, des détections d’étiquettes personnalisées peuvent être utilisées pour mettre en œuvre un processus d’assurance qualité à l’aide d’une caméra qui filmerait une ligne de fabrication et dont les données seraient transmises directement à Splunk. Superviser un flux de caméra peut vous permettre d’analyser les modèles de circulation piétonnière dans une installation logistique, afin d’en améliorer l’efficacité. Pour donner un dernier exemple, ce type de service peut analyser le contenu importé dans votre application web à grande échelle. Mais on peut imaginer des applications plus débridées, comme la mise en place de systèmes visant à détecter et suivre la faune sauvage à l’aide de webcams publiques.

Mais aujourd’hui mon objectif est plus simple. Je vais essayer de comprendre comment Shelly Kornbloom, « VP Opérations spéciales marketing et restauration » de la Splunk T-Shirt Company, utilise la puissance de la vision par ordinateur.

L’homme, le mythe, la légende.

Shelly Kornbloom

J’ai créé quelques projets amusants en utilisant ce type de données avec l’aide de collègues talentueux. À l’occasion de .conf19 vous avez peut-être vu notre photomaton « Splunk Your Face », qui a pris des photos des participants et créé des statistiques créatives sur les Splunkers participants, telles que « quelle est la taille moyenne de la barbe des participants ? ». Cette année, j’ai utilisé la caméra de mon ordinateur portable pour suivre mon humeur pendant mes heures de travail sur une semaine, j’ai ainsi su quand j’avais l’air heureux, triste ou confus, ce qui me donnait un bon aperçu de ma propre santé mentale en période de Covid.

La création du pipeline de données dans Splunk pour prendre en charge le traitement et l’ingestion des métadonnées d’image est remarquablement simple si vous avez une certaine expérience avec AWS et Boto, le SDK Python d’AWS.

Pour mes propres projets, j’ai utilisé un simple script python local pour capturer des images à partir d’une caméra locale et les télécharger dans un bucket S3 sécurisé. Une fonction lambda est déclenchée sur les fichiers placés dans le bucket, qui prend la référence à chacune des images et l’envoie au service Rekognition.

Rekognition

Une fois que la réponse (qui, chose pratique, se présente sous la forme d’un objet JSON) a été récupérée dans notre fonction lambda à partir de Rekognition, nous pouvons la transmettre à Splunk via le Collecteur d’événements HTTP (HEC).

Les données renvoyées par l’API de reconnaissance faciale contiennent de nombreuses métadonnées sur le contenu de l’image. Dans les exemples ci-dessous, nous avons pris des extraits de quelques tableaux de bord créés pour analyser les images traitées par notre système.

Le point de terminaison API DetectLabels nous indique toutes les autres étiquettes que l’algorithme pense pouvoir appliquer à chaque image. Ici, nous avons utilisé l’application word cloud pour afficher nos étiquettes dans différentes tailles et couleurs en fonction de notre degré de confiance dans l’étiquette, et nous pouvons les afficher dans notre tableau de bord, à côté de l’image elle-même :

Rendu des visages

L’API DetectFaces a détecté des visages dans nos images de test, en a estimé l’âge et essayé de nous dire quelles émotions sont visibles sur chacun d’eux. Alors, que pense vraiment Shelly ?

Détection d’humeur de Shelly Kornbloom

Je pense que notre image de Shelly ici est la clé pour identifier ses motivations. Sous la projection sans faille d’une confiance lumineuse et déterminée se cache une bonne dose de confusion. Ça me semble parfaitement juste !

Et avec cela, nous pouvons désormais importer des images dans un bucket S3, puis interroger et référencer leurs métadonnées dans Splunk. Dans certains projets auxquels j’ai participé, nous sommes allés un peu plus loin en apportant quelques modifications supplémentaires :

  • Nous avons réorganisé les objets JSON envoyés depuis notre fonction lambda dans Splunk pour les rendre un peu plus faciles à utiliser à l’aide des fonctions d’agrégation de Splunk telles que « | stats ».
  • Nous avons utilisé une bibliothèque Python « PIL » pour dessiner des annotations (comme les cases que vous voyez dans les images ci-dessus), créé des versions recadrées et converti les images en texte codé en base64.
  • Envoyez des images encodées en base64 directement dans Splunk, conjointement à leurs métadonnées ! Avec un peu de JavaScript imaginatif, vous pouvez transformer ces chaînes en images dans vos tableaux de bord ! Super cool !

J’espère que cet exemple vous a donné quelques idées personnelles. Je voulais vous montrer que nous n’avons pas besoin de nous limiter aux données machine « classiques » et aux sources de données traditionnelles. Dans la plateforme Data-to-Everything de Splunk, c’est vous qui fixez les limites !

Bon Splunking, 

Josh

*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.

Splunk
Posted by

Splunk