Quelques bugs empêchant le floutage de se terminer sur certaines photos ont été corrigés ces derniers jours et déployés sur les 3 serveurs qui assurent le floutage.
Sur l’instance OSM il y avait ainsi plus de 46000 photos “cassées” et après correction et repassage par l’API de floutage, il n’en reste plus que 1800.
Une optimisation a aussi été ajoutée pour traiter plus rapidement les photos à 360°.
Elles sont floutée en plusieurs passes à 3 échelles différentes :
réduites à 1024 pixels de largeur,
réduites à 2048 pixels de largeur,
puis coupées en deux avec un peu moins de 4000 pixels de largeur.
C’est cette dernière étape qui a été modifiée, pour ne faire la détection que sur la bande centrale de la photo, en éliminant le quart du haut et du bas, très étirés par la projection equirectangulaire et pour laquelle c’est dans les deux premières passes que les détection sont efficaces.
Cela procure un gain important en temps d’inférence, et aussi une grosse économie de VRAM… ressource limitée dans nos GPU (8Go en tout, il fallait presque 6Go pour ces étapes).
Les photos de près de 100 millions de pixels deviennent courantes, il faut donc un peu s’adapter et optimiser !
Dernier point… le dépôt de code est en cours de déménagement de github à gitlab.
ah! enfin ^^ j’avais remonte le probleme y a quelques temps sans réponse mais j’ai bien vu que ce weekend c’etait corrigé. Probleme de traitement photos
Comme on a toute une série de traitements, c’est pas toujours évident de déterminer à quelle étape ça coince… la réception, le découpage en séquences, le floutage, etc…
Encore quelques petits fix déployés ce matin car comme pour la chasse à la galinette cendrée y’a les bons JPEG et les mauvais JPEG.
Le bon JPEG, tu l’ouvres, il s’affiche…
Le mauvais JPEG, tu l’ouvres, il s’affiche aussi… mais c’est un mauvais JPEG car il nous cache des choses, comme plus de 20% de données ajoutées après le code de fin JPEG (0xFFD9), en l’espèce presque 1.6Mo composés exclusivement de zéros… et quelques bricoles à la fin.
Depuis que le flou n’est appliqué QUE sur la zone détectée et pas sur l’ensemble des blox JPEG, on peut avoir ce genre de choses…
chaque zone est “coupée” dans l’image originale, non floutée
le visage de droite est flouté et l’on le remet dans l’image à sa plce
puis on fait pareil avec celui de gauche, sauf sur les bloc JPEG sont plus larges et incluent une partie de l’autre visage, non floutée… et quand on remet ça dans l’image on écrase une partie du floutage précédent.
Bon, ça va je sais déjà comment m’y prendre, mais c’est un cas limite auquel j’avais pas pensé !