Algoritme skyld i 'dokumentfalsk': Scanner ændrer tallene

En scanning af et dokument med tal kan give højst overraskende resultater på en Xerox-scanner. En gættelysten komprimeringsalgoritme er tilsyneladende synderen.

Scanner man et dokument, forventer man en nøjagtig kopi - så vidt den valgte opløsning tillader. Men bruger man en Xerox-scanner til opgaven, kan man risikere at få et resultat ud i den anden ende med helt andre tal end på originalen.

Det skriver den tyske datalog David Kriesel i et blogindlæg, efter at have oplevet fænomenet og studeret det nærmere. Og fejlen var til at reproducere. Når tallene var tilpas små, men stadigt tydeligt læsbare, blev nogle af dem ændret, typisk fra et seks-tal til et otte-tal.

Årsagen til denne form for ’dokumentfalsk’ fik han - med lidt hjælp fra læserne af bloggen - indkredset til den komprimeringsalgoritme, der omdanner den rene billedscanning til en noget mindre PDF-fil. JBIG2-algoritmen, som Xerox bruger i scannerne, bruger nemlig mønstergenkendelse, så for eksempel tal kan blive genkendt. I stedet for at beskrive hvert tal grafisk bliver de erstattet af et ’færdigt’ tal, hvilket giver mulighed for højere komprimering og dermed mindre filstørrelser.

Problemet er tilsyneladende, at genkendelsen fejler, når tallene er små. David Kriesel testede med tal sat op med Ariel i 7 punkt-størrelse, og her blev seks-taller tit byttet ud med algoritmens færdigpakkede otte-tal.

Den oprindelige scanning, der fik David Kriesel til at opdage fejlen, var en plantegning af et hus, og her blev tre små tal i tegningen ændret konsekvent. Den ene scanner, han testede med, en Xerox Workcentre 7535, havde samme forkerte resultat hver gang, mens en anden, en Workcentre 7556, lavede fejl mere tilfældigt. Tal fra andre dele af dokumentet blev brugt i stedet, så der altså blev flyttet rundt på tal på plantegningen.

Der blev ikke fra brugerens side brugt OCR (optisk tekstgenkendelse), men det skete altså åbenbart i selve komprimeringsalgoritmen.

Se dokumentationen for fejlen i David Kriesels blogindlæg

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (4)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Torben Rohde

Der er ikke tale om talgenkendelse, hverken ift. brugerens indstillinger eller scannerens interne behandling af data. Det er udelukkende genbrug af (næsten) ens blokke af pixels, den har intet begreb om hvad et tal eller et bogstav er. Denne "næsten ens" fortolkning viser sig så at være temmelig giftig...

  • 0
  • 1
#2 Niels Dybdahl

Der er ikke tale om talgenkendelse, hverken ift. brugerens indstillinger eller scannerens interne behandling af data.

Der er faktisk lidt tale om talgenkendelse. Ifølge wikipedias beskrivelse af JBIG2, så bliver områder med tekst (og tal) genkendt og hvert tegn behandlet som en blok. Så tallene bliver genkendt som tegn af scanneren, men den prøver ikke at genkende hvilket tegn der er tale om kun om der er andre tegn på dokumentet som ligner meget. JBIG2 understøtter dog også tabsfri komprimering, som man nok burde have anvendt istedet. Nu er det spændende at se hvad Xerox siger og om de kan fixe firmwaren.

  • 1
  • 0
#4 Niels Østergård

I 1987 var jeg IAESTE-udvekslingsstudent i Ricoh's R&D center. Den 5-mands-gruppe jeg blev tilknyttet arbejdede med software til digitale kopimaskiner, inden disse var på markedet. De arbejdede konkret med at bestemme "outlines" i pixel-grafik og repræsentere dem som linjestykker og cirkelbuer, og med tegngenkendelse. Formålet var ikke datakomprimering, men at kunne forbedre læsbarheden af kopier, og især af kopier af kopier af kopier af... Om gruppens arbejde nogensinde blev en del af et kommercielt produkt ved jeg ikke.

  • 0
  • 0
Log ind eller Opret konto for at kommentere