Forum GéoCommuns

Floutage/Anonymisation

Je propose de parler ici des solutions d’anonymisation utilisables pour flouter les photos avant leur diffusion.

DeeplabV3 (Segmentation sémantique)

C’est celui que j’utilise actuellement, mais je suis assez déçu pour plusieurs raisons:

  • Lent si on veut qu’il fonctionne a peu près correctement sur des images 360°.
  • Faux positifs assez réguliers pour le floutage des véhicules (il floute des batiments, des boutiques, etc…)
  • Les résultats obtenus avec un TPU sont moins bons qu’avec du GPU/CPU (visages visibles pour cause de segmentation incorrecte)

En revanche le floutage complet des silhouettes est assez séduisant. Il a juste quelques difficultés avec les personnes portant des masques, ce qui est assez normal puisqu’il n’a pas été entrainé pour.

Autres solutions repérées au cour du temps:

6 Likes

Merci pour cette veille,
sur le volet “position du problème” plus que sur les solutions,
je signale la position (intéressante et argumentée) de la CNIL sur les caméras “intelligentes” sur l’espace public, soumis à une consultation qui s’est terminée récemment.

Cela peut avoir un impact sur ce projet de géocommun, la règlementation devrait évoluer.

1 Like

C’est un point de vigilance à avoir, mais amha, on est très loin de ca avec le projet de base des photos géolocalisées.

1 Like

Merci pour le lien. Je viens de lire le projet, en diagonale, et sauf erreur, on est à l’exact opposé de ce qui est mentionné : On cherche à supprimer toutes données personnelles visibles en floutant les personnes et les plaques d’immatriculation alors que ce document souhaite encadrer l’analyse automatique de données non anonymisées.

1 Like

Hello,

il y a pas mal d’éléments techniques poussés. J’ai des questions liées à de la technique mais pas de questions techniques, par rapport à TPU / GPU/CPU.

Déjà j’ai compris que GPU / CPU c’est qqch qu’on peut acheter facilement (FNAC, Darty, Amazon, PriceMinister, etc.). En gros un PC de gamer ou assimilé.
TPU en revanche, j’ai compris que ça coûte plus cher, c’est moins facilement accessible mais @StephaneP y a accès. C’est du hardware dédié pour faire de l’IA, et qd je regarde sur internet le seul inconvénient c’est le prix (et donc des gens passent plus par de la location dans du cloud, chez Google par exemple).

Je comprends donc qu’utiliser du TPU c’est mieux en termes de rapidité, par contre avec l’implémentation DeeplabV3 le résultat est de mauvaise qualité (floutage pas au bon endroit).

J’ai donc deux questions :

  • est-ce que la rapidité est un élément de décision important à ce stade du projet ? Si non, est-ce que c’est structurant ?
  • est-ce que le développement de DeeplabV3 prévoit d’améliorer l’utilisation des TPU ?
  • est-ce qu’on est sûrs à 200% que DeeplabV3 a été correctement paramétré pour utiliser des TPU (et si non, est-il possible de demander de l’aide à des super experts ?)
  • sait-on ce qui est utilisé par Kartaview et par Mapillary ?
  • pour ma culture personnelle, c’est normal d’avoir le même bidule qui va flouter des éléments différents ? (visages vs texte) Intuitivement je me dis qu’il faut deux modules distincts (en parallèle ou en séquentiel peu importe).

Non, c’est moins cher.

On peut démarrer avec les algos actuels, mais ça ne sera pas tenable si on ouvrait une instance pour que les contributeurs Osm déposent toutes leurs images et que celles-ci soient floutées par le serveur.

Exemple : Résumé sur le temps de traitement d’une photo 16MP sans dezoom :

Floutage Cpu Core i7 8750H (6 coeurs @ 2.2Ghz) : 430s
Floutage Gpu GTX 1050 ti Max-Q : 106s
Floutage Cpu Core i9 10900X (10 coeurs @ 3.7Ghz) : 109s
Floutage GPU RTX 3060 : 21s

Aucune idée

Non, oui si on en trouve.

Kartaview : aucune idée
Mapillary : leurs propres outils.

Deeplab ne floute pas de texte, il détecte uniquement des éléments parmi une liste qui dépend de l’entrainement. Sur ce qu’on utilise, on a cette liste : ‘background’, ‘aeroplane’, ‘bicycle’, ‘bird’, ‘boat’, ‘bottle’, ‘bus’, ‘car’, ‘cat’, ‘chair’, ‘cow’, ‘diningtable’, ‘dog’, ‘horse’, ‘motorbike’, ‘person’, ‘pottedplant’, ‘sheep’, ‘sofa’, ‘train’, ‘tv’

Peut-être qu’il faudra 2 modules distincts, mais dans ce cas on va perdre en performance.

Un TPU c’est rapide et pas cher (50€)
Les modèles entraînés pour CPU/GPU sont transformés pour le TPU, en gros on passe de calculs en float à int, ce qui explique la différence de résultats.

On pourrait entraîner un nouveau modèle ou surentraîner l’existant. Je ne maîtrise pas assez l’IA pour avoir une idée de la complexité que ça représente.

Il faudra dans ces deux cas un jeu d’entraînement ou la segmentation aura été faite ou améliorée à la main.

1 Like

Plusieurs idées de chaînes qui pourraient être envisagées:

  • utiliser un réseau qui détecte les voitures, extraire la boîte englobante de chaque voiture puis détecter dedans le texte avec un autre réseau (pas spécifique plaque), et ne flouter que ces régions. Suivant le type de réseau entraîné, ça peut être la solution la plus simple à déployer
  • transformer les images 360 en images plates (avec prise en compte de la déformation de la lentille virtuelle), faire le traitement sur les images plates, repérer les régions à flouter, et les reprojeter par transformation inverse dans les images 360 pour flouter l’image initiale. J’imagine que des outils comme OpenCV ont des briques pour faire ce genre de choses, mais il faut le coder
  • trouver un jeu de données de plaques françaises, étiqueté, et entraîner le réseau qui marche bien avec les plaques étrangères pour le spécialiser sur les plaques françaises