nobelization / panoramax-mobile-app

GNU Affero General Public License v3.0
35 stars 7 forks source link

Créer un écran d'envoi des photos pré-existantes #55

Open overflorian opened 5 months ago

overflorian commented 5 months ago

Nouvelle fonctionnalité : lorsqu'un utilisateur partage ses photos depuis son appli "galerie photo" de son smartphone : l'appli Panoramax s'ouvre et propose les photos à l'envoi.

Plusieurs possibilités, à ce stade :

  1. la géolocalisation est manquante (cette information est déduite instantanément), il est impossible d'envoyer les photos. Aucune action n'est requise, l'impossibilité est permanente, un message s'affiche "ces photos ne sont pas géolocalisées, il est impossible de les envoyer. Pour faire des photos géolocalisées, utilisez l'appli Panoramax. Cliquer sur ce lien pour plus d'aide (URL à créer avec un tuto pour prendre des photos géolocalisées avec Open Camera/appli Go Pro).
  2. déjà envoyées
  3. identifiées comme non-adaptées à Panoramax (comme par exemple des visages, des photos de famille ... tout ce qui n'est pas des photos de rue) : l'appli propose de ne PAS envoyer ces photos, mais il reste toujours possible de les sélectionner manuellement pour les envoyer (en effet, l'AI de détection n'est pas infaillible)
  4. détectées comme photos de rues, proposées à l'envoi. Il reste possible de désélectionner individuellement chaque photo.
  5. inappropriées

Le modèle d'IA (nom de code RüNüKü) qui permet de classer les photos dans les catégories 3, 4 ou 5 reste à développer. Il sera embarqué en local dans l'appli pour des raisons de protection de la vie privée.

L'étape 1 est instantanée, à la lecture des photos, les étapes suivantes impliquent soit une requête au serveur (pour l'étape 2) qui prend plusieurs secondes), soit l'intervention d'un modèle d'IA qui analyse les photos les unes après les autres : cela prend donc du temps, plusieurs secondes voir plusieurs dizaines de secondes. Au fur et à mesure, l'appli va classer les photos dans ces 5 catégories.

Il est donc souhaitable que l'interface

  1. affiche les photos dès le lancement pour faire comprendre à l'utilisateur que sa demande a bien été prise en compte,
  2. reflète l'avancement du processus de classement (barre de chargement ?),
  3. ait la possibilité d'interrompre le classement (ou pas ? à discuter),
  4. soit informé visuellement quand le classement est terminé,
  5. ait la possibilité simple de changer le classement (l'IA n'étant pas infaillible, il doit être possible de sélectionner une/plusieurs photos et de la/les changer de catégorie (uniquement pour les catégories 3 et 4 (voir 5 ? à discuter)).
  6. comprenne instantanément les tâches suivantes à effectuer, c'est à dire soit envoyer les photos recommandées à l'envoi, soit changer le classement avant d'effectuer cette action

En attendant le développement d'une IA de classement, la première étape consiste à n'implémenter que 3 catégories : géoloc manquante / déjà envoyées / proposées à l'envoi

overflorian commented 4 months ago

Après réflexion/discussion, il existe une autre catégorie additionnelle :

  1. la photo est trop proche de la précédente/suivante Ce paramètre étant un mix entre la distance et le temps, voir https://gitlab.com/panoramax/server/api/-/issues/154 pour les détails techniques

Wording

Message d'erreur

Lorsque les photos sont affichées pour envoi, les messages suivants s'affichent le cas échéant :

1. Géoloc manquante :

2. Déjà envoyé

3. Non-adapté

4. Photo de rue AUCUNE ERREUR AFFICHÉE

5. Inapproprié

6. Trop proche

Snackbar

Lorsqu'une photo est cliquée alors qu'elle est indiquée comme présentant une erreur, une snackbar apparait avec le message d'erreur suivant :

1. Géoloc manquante : Géolocalisation manquante 2. Déjà envoyé : Photo déjà envoyée 3. Non-adapté : AUCUN MESSAGE (IL EST POSSIBLE DE COCHER / ENVOYER) 4. Photo de rue : AUCUN MESSAGE (IL EST POSSIBLE DE COCHER / ENVOYER) 5. Inapproprié : photo inappropriée 6. Trop proche : Trop proche de la précédente et de la suivante

overflorian commented 4 months ago

N.B. : dans le futur, une erreur spécifique devra également être créée pour l'exclusion des zones sensibles.