Exemple floutage Panoramax algo "Speedy Gonzales"

Pour mieux se rendre compte du résultat du floutage de l’algo « Speedy Gonzales », voici quelques séries de photos floutées :

Il y a quelques faux négatifs… combien en trouvez-vous ?

Malgré les ajouts dans le code de ces derniers jours, on reste sur un capacité de floutage d’un million d’images par jour sur le serveur qui va être mis en place par OSM-FR :slight_smile:

1 Like

Le floutage ne floute pas assez, je pense. Ça dépend de la taille de l’objet ou de la résolution de l’image, non ?

Ça reste assez lisible
image
image

Pareil pour des visages assez grand sur les photo.

Un cas intéressant d’un bout de plaque pas flouté, alors que la plaque devient floutée sur l’image suivante quand elle apparaît entièrement (logique, l’algo doit manquer de données de « demi-plaques ») :

image
image
(source : Iphone 2019, premières images)

Une question sur l’algo du coup : pour palier au manque possible de « demi-plaques » dans les données d’entraînement, est-ce qu’il ne serait pas possible d’en créer artificiellement, en prenant les plaques entières bien balisées, puis en tronquant l’image sur la plaque entière, et en réinjectant ces « demi-plaques artificielles » dans les données d’entraînement ? (avec différents formats de coupe : juste le bout à droite, juste le bout à gauche, la moitié…)

Idem avec l’intégralité des éléments repérés (plaques de rues, visages) : entraîner la reconnaissance aux frontières de l’image en créant de fausses troncatures.

J’ai un peu cherché les tailles minimales en pixels pour que les algo de reconnaissance faciale puisse fonctionner. Pour l’instant le plus petit que j’ai trouvé semble être 24x24 pixels avec 12 pixels séparant les yeux: Resolution Considerations for Face Recognition Accuracy | BriefCam

Pour gérer les différentes résolutions, le rayon de floutage est proportionnel au plus grand côté de la partie à flouter en visant l’équivalent de 16 pixels utiles de côté. C’est déjà en dessous des 24 indiqués ci-dessus, mais je vais essayer avec 12 pour être encore plus tranquille.

Pour info, le floutage est fait en deux passes(voir sgblur/blur.py at master · cquest/sgblur · GitHub):

  • pixelisation à 16 pixels de côté
  • boxblur pour adoucir ces gros pixels
  • qualité JPEG très faible (20) sur la zone

J’envisage aussi de carrément mettre en gris les zones à flouter très étendues.

Les annotations ont été faites aussi sur des plaques partiellement masquées. Elles ont l’air plutôt bien détectées si il y a environ la moitié de la plaque visible.

Ici on est très en dessous et la seule info récupérée est ultra partielle… ça ne me semble pas problématique de laisser cela passer.

Un problème possible, c’est d’avoir une partie de plaque sur une photo, non floutée, et l’autre complémentaire sur une autre photo. Ceci dit, les échanges que j’ai pu avoir avec la CNIL m’ont confirmé que ce n’était pas le 100% qui était attendu.

J’ai tout reflouté sur la base de 12 pixels de côté maximum… et tout repartagé

Hello,
Sur l’instance IGN panoramax, en allant faire un tour, je suis tombé sur cet étonnant artefact de floutage : https://panoramax.ign.fr/#focus=pic&map=19/48.8580267/2.3480963&pic=1b6c0c4b-c446-4d54-95dc-e4bb36910666&xyz=28.69/-2.69/0
Je ne sais pas bien ce que l’algo a voulu flouter (l’ombre des arbres ?) mais je trouve le faux-positif assez intéressant - est-ce qu’il est utile de faire remonter ce genre de faux-positifs pour améliorer l’algo ?

Ah oui, il est beau celui-ci !

En récupérant la photo et en la passant à exiftool, on récupère les infos de détection qui sont stockées en commentaire JPEG:

[{'class': 'face', 'confidence': 0.745, 'xywh': [5120, 1248, 192, 224]}, {'class': 'face', 'confidence': 0.691, 'xywh': [2736, 1552, 80, 96]}, {'class': 'face', 'confidence': 0.471, 'xywh': [3104, 1472, 96, 112]}, {'class': 'face', 'confidence': 0.258, 'xywh': [2368, 1584, 96, 112]}, {'class': 'face', 'confidence': 0.087, 'xywh': [2976, 1520, 80, 96]}, {'class': 'plate', 'confidence': 0.081, 'xywh': [2016, 1696, 96, 64]}, {'class': 'face', 'confidence': 0.07, 'xywh': [2640, 2176, 1248, 1472]}, {'class': 'face', 'confidence': 0.065, 'xywh': [2976, 1504, 96, 112]}]

L’avant dernière ligne doit être notre faux positif vues les dimensions… et oui, le taux de confiance était très faible: 0.07

C’est pour ces cas là, que le floutage différentiel et de défloutage sélectif peuvent être bien utiles !

On va apprendre en marchant…