Manque de floutage sur certaines photos

Bonjour

j’ai quelques photos avec des visages non floutés (instance IGN).
Actuellement, ce que j’ai fait pour l’une d’elle est de masquer la photo en attendant, et de signaler par mail grâce à l’icône “Signaler la photo”. Cela fait assez longtemps mais comme ça n’a pas l’air d’avoir été traité, je n’ose pas en envoyer d’autres même si j’ai vu d’autres cas.

Je rencontre un autre exemple ce matin, ici (pour le moment je n’ai pas masqué la photo)

Il faudrait pouvoir ajouter un floutage manuel sur ses propres photos pour des cas comme ça. En attendant, comment cela se passe ? Est-ce que je ré-essaie de faire des signalements par mail ?

J’ai une autre question qui en découle, mais hors sujet sur le floutage, je vais le mettre dans ce sujet.

Un peu pareil, j’ai signalé le 28 avril une photo avec un visage d’enfant (~ 3 ans) pas flouté du tout, et je peux constater 15 jours après que ce visage est toujours visible. J’ai masqué ce matin toute la séquence du coup en attendant… La séquence avait également d’autres pbs de qualité …
L’algo de floutage n’est peut être pas entrainé sur les visages de jeunes enfants ?

On a prévu d’améliorer la prise en compte des signalements.

Pour la détection, oui ça peut venir d’un manque d’entraînement et donc collecter des photos avec ce type de visage sera nécessaire.

merci @barnes38 d’avoir rouvert ce sujet. Cela me fait penser à aller masquer la photo que je donnais en exemple dans mon premier message, car entre temps j’avais oublié.

Serait-t-il envisageable d’avoir un outil intégré à Panoramax pour ajouter un foutage sur une zone ?
Exemple un visage non flouté, au lieu de masquer bêtement la photo (qui contient peut-être des infos utiles par ailleurs), on pourrait dessiner manuellement un carré à flouter, si nécessaire.

Actuellement si on veut garder la photo, finalement on doit supprimer la séquence, ajouter un floutage manuel sur la photo originale, puis renvoyer toute la séquence.
Ou sinon il faudrait pouvoir “remplacer” une photo, autrement dit renvoyer seulement la photo modifiée à la place de l’autre (dans la séquence).

C’est vers ça qu’on devrait aller à terme, mais cela veut dire pas mal de dev à faire, pour des cas quand même assez rares mais qui vont être de plus en plus nombreux avec le volume d’images qui augmente.

Ce qui n’était pas prioritaire le devient petit à petit par la force des choses…

Ce qu’on va déjà faire, c’est le masquage automatique d’une image lorsqu’un signalement est fait dessus… et une vérification de la bonne prise en compte des masquages par le métacatalogue.

J’ai le problème inverse de floutage abusif. En soit, ce n’est pas super critique mais je pense que ça serait bien qu’on puisse faire de tels signalements pour améliorer l’apprentissage de l’outil de floutage.

C’est pas évident à améliorer, voici deux pistes possibles:

  • monter le taux de confiance pour limiter les faux positifs… avec le risque d’augmenter les faux négatifs
  • créer une classe “ceci n’est pas à flouter”, mais j’ai un gros doute sur le résultat

La troisième piste, c’est de renforcer l’entraînement avec encore plus de photos (bien) annotées.

Encore une dernière, refaire un entraînement en partant d’un modèle pré-entraîné plus récent (c’est YOLOv8 qui a été utilisé, on a maintenant un YOLOv10 disponible).

1 Like

Reprendre les photos avec faux positif. Refaire complètement l’annotation et les introduire dans la base d’apprentissage. Je ne trouve pas d’option en ligne permettant de faire/refaire l’annotation (au moins pour ses propres photos).

Il était aussi question de créer un modèle entrainé exclusivement avec des photos 360°, et d’avoir un jeu de donnée de référence pour surveiller les performances du floutage.

à force de faire des photos 360 avec la Gopro Max, je constate que la majorité des visages non floutés sont quand une personne est à proximité de l’appareil (autrement dit malheureusement, quand elle est le plus reconnaissable !).
J’ai vu ce cas plusieurs fois où 2 personnes roulaient ensemble à vélo, l’une ayant la Gopro, mais aussi parfois quand le vélo croise un piéton.

Exemple tout au long de cette séquence : GeoVisio

J’ai au moins 2 autres exemples pour lesquels j’ai masqué la photo concernée.

Évidemment, je déconseille aux personnes à qui je prête la Gopro, de partir à plusieurs ! Mais on ne m’écoute pas toujours :hear_no_evil:

Ça serait intéressant de compléter l’entrainement en intégrant plus de visages de ce type là

L’explication tient essentiellement dans le “scaling”, c’est à dire la détection à de multiples échelles et résolutions.

Les algos de détection ont du mal à prendre en compte qu’un même type d’objet puisse être définit par quelques centaines de pixels ou plusieurs milliers de pixels.

Il y a bien un paramètre pour tenir compte de cela lors de la détection (et de l’entraînement), mais visiblement cela ne couvre pas des échelles très différentes comme on peut l’avoir ici. Le phénomène se produit plus souvent avec des photos 360, mais c’est surtout lié à la haute résolution des photos plus que le fait qu’elles soient à 360°.

L’API de floutage compense ça en faisant plusieurs passes de détection à plusieurs mises à l’échelle de la photo… mais c’est pas parfait.

Could it be worth it to take a look at : GitHub - nenadmarkus/picojs: A face detection library in 200 lines of JavaScript

I use this for face detection within my project GeoArchive (https://www.geoarchive.eu/)

I have “pimped” the basics and I am quite impressed with the speed and quality of the results. It is ideal for my purposes as it is in JavaScript.

Also, for my “archive projct” privacy is also an issue. But I didn’t like to do a “default blur” of a complete region. I created a function that does a pixalition of the square with “smaller squares” at the outer edges and bigger ones more to the middle. The end result gives a good “privacy result”, but it is much less visually intrusive (if you understand my meaning)

“big” example: Margreet-Andriol - GA/katlijk
“small” example: Auto over de kop bij Katlijk - GA/katlijk

I would be willing to “opensource” this part if you will use it for Panoramax

j’ai fait chauffer l’algo de détection !! :red_circle: :white_circle:

The JS-face detection link shared earlier didn’t catch the “test face” either, but I’dd like to show the ‘privacy function’ I built:


GA = ‘me’ (GeoArchive)
PM = Panoramax
(the white circle was added for the privacy of the person behind it)

  1. I use pixelation, not blurring. The technology to ‘un blur’ images is already of an amazing quality. I have used several “AI apps” with varying succes to improve old imagery, but every now and then the results are absolutely impressive… this tech will only get better. With pixelation data is irretrievably removed, with blurring there is more data there for reversal then you’dd expect…
  2. I use a “half pixelated size” for the outer edge, that way there is a bit of a “soft edge”, making the anonymization a bit les intrusive
  3. Pixelation is done by grabbing that part of the image, scaling it down and up again (in two steps) and overlaying it on the original. I’m sure the same technique can be used when one factors in the 8x8 JPEG structure for “lossless editing of the original”. I’m quite sure this route takes less CPU time then blurring. With many thousands of images to process it’s an added advantage :wink:

PS: if you’re wondering ‘Katlijk’? It’s the village where I live and I placed the test image there… that logo & watermark are added automatically

We do pixelation first then blur to make is smoother.

The area is a bit too large right now, larger than the predicted bounding box as we snap to JPEG blocks. That’s the main thing to improve I think.

Oh! (Then I think I’dd skip the blurring part :wink: )

“Oversizing”
I recognize this. The JS-face detection I use (linked earlier) and have improved upon gives me an x,y,w,h result (relative numbers, 0 to 1) I increase the size of base result with quite a bit. I think that is a good thing, when you take a look at the PM-blurred person at the bottom left you can still see part of her/his hair is not blurred. If that contained a particular hair pin that person might still be recognised. So I think “oversizing” is a wise thing to do!

That being said, the essence of “the way I blur” is that it assumes the most important/recognizable part of the section that is being blurred is in the center, the eyes/nose of the face. So if you blur it a little at the edges and blur it much more in the center the entire anonymisation of the section is more gradual and thus less visually intrusive (“no edge”)

You could even blur some extra in the center of the region to be sure :wink:

Try it, I think you will be happy with the result!

Objet à flouter non détecté/raté :

Faux positif :