News

Comment construire un anonymiseur d'images pour des tâches conformes au RGPD avec TF2

Notre mission est d'aider les autres à construire de meilleurs modèles de vision par ordinateur, nous avons donc créé un anonymiseur pour vous aider à construire des datasets conformes au RGPD impliquant des personnes.

PT

Picsellia Team

·5 min read

How to Build an Image Anonymizer For GDPR Compliant Tasks With TF2

Pret a construire de la vision par ordinateur ?

Des images brutes aux modeles en production. Essai gratuit, sans carte bancaire, resiliable a tout moment.

Sans carte bancaireEssai gratuit de 14 jours

Beaucoup de tâches en vision par ordinateur nécessitent des images prises dans la nature (c'est-à-dire en rue, lors d'événements, etc.), mais construire un dataset pour des tâches liées au comportement humain peut être délicat. Comme vous devez le savoir, le RGPD n'autorise pas le stockage de photos prises sans consentement.

Ce serait dommage de limiter les applications d'IA à cause du RGPD, n'est-ce pas ? Chez Picsellia, nous sommes dédiés à aider les gens à construire de meilleurs modèles de vision par ordinateur, il était donc logique pour nous de construire un anonymiseur pour vous aider à créer des datasets conformes au RGPD impliquant des personnes.

À quoi ressemble une image conforme au RGPD ?

dataset to anonymize.jpegdataset to anonymize.jpeg

Eh bien, faisons connaissance avec Tom (ne vous inquiétez pas, j'ai trouvé Tom sur Pexels, donc il ne sera pas dérangé).

Comme vous pouvez le voir, 100 % de son visage est visible, ce qui n'est pas tout à fait conforme au RGPD.

En fait, pour être conforme, +50 % de son visage ne devrait pas être visible, de préférence les 50 % supérieurs de son visage pour cacher ses yeux.

dataset hide eyes.jpegdataset hide eyes.jpeg

Comme ça !

Comment construire un détecteur de visages robuste ?

À ce stade, vous devriez avoir une idée de la façon dont nous avons développé notre anonymiseur :

  • Construire un détecteur de visages
  • Identifier les 60 % supérieurs du visage
  • Les flouter
  • Ré-écrire l'image

Pourquoi construire votre propre détecteur de visages ?

Je suis sûr que vous avez vu un tas de tutoriels sur comment entraîner un détecteur de visages avec openCV ou autre chose. Ces algorithmes fonctionnent bien pour les photos en gros plan, mais les avez-vous essayés dans la nature ? Eh bien... ce n'est pas vraiment bon. Et surtout, maintenant que le monde vit avec le Covid-19, les algorithmes de détection de visages doivent s'adapter à la nouvelle réalité de tout le monde portant des masques.

En parlant de masques, pour construire notre dataset, nous avons utilisé un dataset de masques faciaux annoté par humans in the loop au début de la pandémie. Il est composé de 6000+ images de personnes portant des masques ou non ; vous pouvez le trouver dans notre Dataset Hub.

datalake faces.pngdatalake faces.png

Avec Picsellia, vous pouvez rapidement accéder à ce dataset et voir la répartition des étiquettes, ici nous avons un total de 10 000+ visages annotés dans la nature.

dataset repartition faces.pngdataset repartition faces.png

Mais nous ne voulons pas construire un autre détecteur de masques faciaux.

Nous devrons modifier ce dataset un peu afin de créer un dataset adapté à la détection de visages, pour ce faire nous pouvons simplement créer une nouvelle version de ce dataset et fusionner toutes les étiquettes en une seule -> FACE

merge datasets.pngmerge datasets.png

Nous laissons la plateforme travailler un peu, et voilà, nous avons un dataset de 10 000+ visages annotés

datasets details.pngdatasets details.png

Les images sont vraiment diversifiées mais voici un exemple :

dataset face example.pngdataset face example.png

Maintenant, entraînons notre modèle

Avant l'entraînement, nous devons réfléchir à ce que nous voulons accomplir. Nous voulions un modèle pour effectuer l'anonymisation à grande vitesse, mais aussi avec un score de confiance élevé, car nous ne pouvons pas nous permettre de jouer manuellement avec le seuil de confiance en permanence.

Nous viserons également un score de précision élevé, puisqu'il ne serait pas logique d'anonymiser seulement une personne sur l'image.

Jetons un coup d'oeil au Hub de modèles de Picsellia, où vous pouvez trouver des architectures de vision par ordinateur basées sur Tensorflow prêtes à entraîner :

picsellia model hub.pngpicsellia model hub.png

Pour comprendre comment lancer plusieurs entraînements avec différentes architectures avec Picsellia, je vous invite à lire notre dernier article.

Pour cet anonymiseur, nous avons choisi d'utiliser un EfficientDet-d2 pour sa vitesse de convergence et sa précision.

Voici les résultats journalisés dans Picsellia.

training graphs for our EfficientDet.pngtraining graphs for our EfficientDet.png

training metrics for our EfficientDet.pngtraining metrics for our EfficientDet.png

Notre entraînement est un peu bruité mais nous avons réussi à obtenir un maP assez bon donc nous utiliserons cela comme base pour notre anonymiseur.

Téléchargeons notre modèle sauvegardé afin de construire notre anonymiseur.

Maintenant que notre modèle est entraîné et exporté, nous pouvons le télécharger pour l'utiliser localement, pour ce faire, il suffit d'aller dans les artefacts de votre expérience et de télécharger le fichier saved_model.zip.

experiments artifacts.pngexperiments artifacts.png

OK, maintenant que nous avons un détecteur de visages robuste, nous serons en mesure de construire un anonymiseur très rapidement.

anonymizer (part 1).pnganonymizer (part 1).png

Disponible ici

D'abord, importons quelques packages et désactivons tous les avertissements de Tensorflow — qui veut vraiment voir des avertissements ?

Vous devriez placer votre répertoire saved_model à la racine de votre projet (ne vous inquiétez pas, le code sera fourni ci-dessous).

Chargeons le saved_model et déclarons une fonction pre_process.

Maintenant vous n'êtes qu'à quelques lignes de code d'avoir un anonymiseur, nous devons seulement extraire les bbox avec un score de confiance élevé, disons 0.5 et plus, et flouter les 70 % supérieurs des visages détectés.

anonymizer (part 2).pnganonymizer (part 2).png

Disponible ici

dataset anonymized.jpegdataset anonymized.jpeg

Et voilà !

Vous pouvez trouver le code ici.

Si vous souhaitez essayer Picsellia vous-même, réservez un appel rapide et demandez un essai ici !

annotationcomputer-visiondata-managementdataset-managementmodel-trainingobject-detectionversioning

Suggestions Picsellia

Livrez de l'IA visuelle 10x plus vite

Picsellia est la plateforme MLOps de bout en bout pour la vision par ordinateur — de la gestion des donnees au deploiement en production.

Voir la plateforme

Centralisez vos donnees visuelles

Stockez, recherchez et organisez des millions d'images en un seul endroit avec des tags, des metadonnees et la recherche par similarite visuelle.

Explorer le Datalake

Restez informe

Recevez les derniers articles sur la vision par ordinateur, le MLOps et l'IA directement dans votre boite mail.