Clutch Developer
DA
Book en samtale

Navigation

Sprog

Cleaner Go: find dubletter af fotos uden at uploade dem

Kundearbejde med LabHouse: lighedsvurdering af et helt fotobibliotek på enheden efterfulgt af en gennemgang, hvor hver beslutning kan beholdes, slettes eller fortrydes.

Cleaner Go frigør lagerplads på en iPhone. Appen scanner kamerarullen på enheden, grupperer dubletter og næsten identiske fotos, viser skærmbilleder og seriebilleder og lader brugeren gennemgå resultatet med et swipe — højre for at beholde, venstre for at slette. Et gitter med lignende fotos giver endnu en måde at vælge, hvilket billede der skal beholdes. Det samme produkt har også videokomprimering, en privat boks og oprydning i indbakken. Intet slettes uden gennemgang, og fotomatchningen kræver ikke, at biblioteket uploades.

Kundearbejde. Clutch Developer udfører mobil engineering på denne app med LabHouse sammen med Inés Salvans. Appen tilhører Labhouse Mobile.

App Storelabhouse.io

Hvad appen gør

  • Registrering af dubletter og lignende fotos i hele biblioteket, hvor tydelige dubletter, visuelt lignende billeder, skærmbilleder og seriebilleder grupperes til en menneskelig beslutning.
  • Swipegennemgang — behold eller slet én beslutning ad gangen, vælg et billede at beholde fra et gitter med lignende fotos, og fortryd et swipe, når det skal rettes.
  • Videokomprimering, hvor store klip kan vælges til formindskelse, mens originalen er under brugerens kontrol, og presset på lagerpladsen falder.
  • En privat boks til fotos og videoer, der skal holdes ude af hovedbiblioteket, beskyttet af appens private adgangsflow.
  • Oprydning i indbakken, fordi nyhedsbreve og reklamevedhæftninger kan optage plads, selv når kamerarullen ikke er det eneste problem.
  • Cleaner Go — den nemme måde at rydde op på en iPhone med lager, dubletter og indbakke
  • Cleaner Go — lageropdeling for fotos, skærmoptagelser og video
  • Cleaner Go — grupper af dubletter samlet til gennemgang med massesletning
  • Cleaner Go — swipegennemgang med behold, slet og fortryd
Skærmbilleder fra App Store-siden.

Den svære del

Eksakte dubletter er nemme — hash filen og sammenlign. Det er ikke den nyttige funktion. Den nyttige funktion er næsten-dubletter: flere billeder fra samme serie, det samme foto gemt igen af en beskedapp med en anden komprimering eller et skærmbillede, der er beskåret lidt anderledes. Filerne har forskellige bytes, men er tydeligvis det samme billede for et menneske. Brugeren har brug for et grupperet forslag, et klart valg af hvilket billede der skal beholdes og en reversibel beslutning, ikke en liste over hashmatches, der stadig skal fortolkes fra bunden.

Det kræver at sammenligne perceptuelt indhold i stedet for kun filidentitet, og omkostningen vokser hurtigt med bibliotekets størrelse. En naiv implementering sammenligner hvert foto med alle andre, hvilket vokser kvadratisk og hurtigt bliver spild. Det praktiske arbejde er at reducere hvert billede til en kompakt signatur, bruge kandidatgrupper, så kun sandsynlige par mødes, og sammenligne kandidaterne uden gentagne gange at afkode hvert billede i fuld opløsning. Resultatet skal gruppere lignende billeder godt nok og lade den endelige beslutning blive hos den person, der tog dem.

Derefter skal arbejdet kunne være i en telefon. Den første scanning berører hele biblioteket, er den dyreste del af oplevelsen og sker, når en ny bruger har mindst tålmodighed. Fremskridt skal være synligt, tusindvis af billeder i fuld opløsning må ikke holdes i hukommelsen, og appen skal opføre sig fornuftigt, når den går i baggrunden, eller enheden begynder at styre varme og batteri. Efter scanningen skal brugeren også have en forståelig gennemgang: grupper, valg af det billede der skal beholdes, swipebeslutninger, fortryd og et udtrykkeligt bekræftelsestrin.

Grænsen for lokal analyse er konkret. Fotoscanning og lighedsarbejde foregår på enheden, så biblioteket ikke behøver blive uploadet til en server for at matche. Det må ikke blive til en generel påstand om, at appen slet ingen datapolitik har: Den offentlige privatlivssektion i App Store oplister separat identifikatorer, brug og diagnostik samt supportrelaterede data. Den præcise påstand i denne case er, hvor den tunge fotoanalyse foregår.

Det kræver det

  • Perceptuelle signaturer pr. billede, ikke kun filhash — billige at beregne og sammenligne.
  • Kandidatgrupper, så sammenligningen ikke vokser kvadratisk over et stort bibliotek.
  • Nedskaleret afkodning, så hukommelsen holdes under kontrol, selv når kildebillederne har høj opløsning.
  • Inkrementel behandling, der holder grænsefladen responsiv, mens enheden scanner og komprimerer.
  • Intet destruktivt uden gennemgang — grupperede forslag, udtrykkelig bekræftelse, valg af det billede der skal beholdes og fortryd.

Det er sådan performancearbejde i native appudvikling ser ud: ikke at mikrooptimere en renderingsløkke, men at vælge en algoritme og en gennemgangsflow, hvis omkostning og risiko passer til en telefon, man ikke kontrollerer. Leverancen lykkes, når det tunge arbejde forsvinder bag en beslutning, som brugeren forstår.

Omfang og projektrolle

Clutch Developer bidrog med mobiludvikling til denne kundeejede app, herunder gruppering af fotos på enheden og det gennemgangsflow, der beskrives her. Labhouse Mobile ejer appen; Labhouse og Inés Salvans er krediteret i noten ovenfor. Casen beskriver dette bidrag, ikke eneansvar for hele produktet.

Belæg og begrænsninger

De gemte appbilleder viser lageroversigter og handlinger til fotogennemgang; den linkede butiksside beskriver matchning på enheden. Det gør den synlige flow og de offentliggjorte oplysninger mulige at kontrollere, men er ikke en uafhængig vurdering af nøjagtighed, hastighed eller sikkerhed. Sletning kræver stadig brugerens gennemgang og bekræftelse.

Relateret