Bokscanner

From MakersLink
Revision as of 03:13, 18 December 2021 by LA2 (talk | contribs)
Jump to navigation Jump to search
Bokscanning med en kamera på stativ och små böcker som ligger platt under ett glas, på vävloftet hos Makerspace Linköping i december 2021.

Att bygga en bokscanner är inte ett projekt som sätts igång och blir färdigt, utan en ständig process av små förbättringar. Den här sidan tar upp några delproblem och deras lösningar.

Vem gör något

Inom Makerspace Linköping
  • Lars Aronsson (LA2), som också har grundat Projekt Runeberg (nedan)
  • Martin A
Bokscanning-projekt
Bokscanners

Vad har byggts och scannats

December 2021
Lars Aronsson ställde sitt (Projekt Runebergs) kamerastativ uppe på vävloftet och började skriva den här wiki-sidan. Uppsättningen klarar bokuppslag upp till 30×20 cm och därför digitaliserades några böcker i detta lilla format:

Problem och deras lösningar

Foto av ett uppslag, två boksidor
Det måste vara lätt att skilja på å och ä, även i finstilt text.
Upphovsrätt

Upphovsrätten ger författaren ensamrätt på att bestämma över exemplarframställning och spridning av litterära verk i hela hans livstid och därefter i 70 hela år. Om flera upphovsmän är inblandade (författare, medförfattare, översättare, illustratörer) måste de enas om sina beslut. Hamlet av Shakespeare kan alltså vara upphovsrättsligt skyddad av översättaren och illustratören, trots att författaren är död sedan länge.

Scanna eller fotografera - en fråga om upplösning

Det finns bara en enkel huvudregel för upplösning: I bilden ska det lätt gå att se skillnad på punkt och komma, även i den mest finstilta texten. Många nybörjare tycker att 150 dpi (dots per inch) verkar ge en läsbar text. Men tittar man noga efter, krävs det att man ibland måste gissa om det står "e" eller "c" i bokens fotnoter. När man måste börja gissa och sedan kanske gå tillbaka till biblioteket för att se vad det verkligen stod i boken, så tappar man mycket av vinsten med bokscanning. Vid färgbilder (JPEG) är 300 dpi den lägsta användbara upplösningen. Vid svartvit scanning utan gråskalor (i filformatet TIFF G4, som ofta användes före år 2010) är 600 dpi en vanlig upplösning. Med modernare teknik används nästan alltid färgbilder, digitalkameror och en upplösning av 400 dpi eller högre.

Med desktop publishing (DTP) på 1990-talet blev flatbäddscannern vanlig. Den hade en linjär rad av fotoceller seriekopplade i en charge coupling device (CCD), ett sorts skiftregister, typiskt 600 dpi (fotoceller eller dots per inch), som en stegmotor svepte över en A4- eller A3-yta. Ett skrivpapper (A4/legal) är 8,5 tum brett och kräver alltså 5100 fotoceller i rad. På andra ledden (11 tum) krävs 6600 steg med stegmotorn, nedväxlade till 1/600 tum.

Ett alternativ till flatbäddscannern är en sidmatande scanner. Det kräver att man skär sönder boken och för en del böcker är detta realistiskt. Man kan då scanna fram- och baksidan samtidigt (duplex) och få en mycket rationell arbetsgång.

Digitala kameror har fotoceller i två dimensioner och för att täcka en A4 med 600 dpi krävs 5100 × 6000 pixels = 31 megapixel. Man kan nöja sig med 300 dpi = 8 megapixel. De första digitalkamerorna på konsumentmarknaden kom omkring år 2000 och hade 2 megapixel. På 2010-talet var 10 megapixel en vanlig upplösning och på 2020-talet 20 megapixel eller mer.

Fotografera platt eller i vinkel

En del böcker är tillräckligt böjliga för att kunna läggas platt på ett bord och tillräckligt små för att den kamera som används i tillräckligt fin upplösning ska kunna fånga ett helt uppslag, både vänster- och högersidan, i en bild.

För böcker där detta inte är möjligt, är det bättre att lägga boken på ett V-format underlag, en bokvagga, och låta två kameror fotografera varsin sida.

Exponering
Skarpt och suddigt foto
Exempel på misslyckat foto

Vi vill ha skarpa bilder och vid fotografering innebär detta rätt fokus och ett någorlunda stort skärpedjup. Högre skärpedjup får man vid mindre bländaröppning (högre tal), vilket kräver längre exponeringstider. Att enbart öka ljuskänsligheten (ISO-talet) är inte en lösning, eftersom det ger grynigare bilder. Exemplen som visas här är tagna med god belysning, ISO 200, bländare f/6,3 och 1/13 sekund eller f/11 och 1/4 sekund. Så långa exponeringstider kan man inte ta på frihand, utan det kräver stativ. Även ett tryck med fingret på kamerans avtryckare kan ge störande skakningar, så någon sorts fjärrutlösare är också nödvändig.

Olika kameror kan ha olika förutsättningar för fjärrstyrning. En del Canon-kameror stöds av CHDK, Canon Hack Development Kit, ett amatörprojekt som installerar egen firmware i kameran. Detta gäller dock inte alla Canon-kameror, till exempel inte Projekt Runebergs modeller EOS 400D, EOS M100 och EOS M50. Men dessa kan fjärrstyras över USB med Linux-kommandot gphoto2. Man får då bilden nedladdad till den styrande datorn och behöver aldrig plocka ut minneskortet ur kameran.

En användbar metod är att ta foton med jämna tidsintervall, till exempel var 10:e sekund. Man har då båda händerna fria till att vända sida och behöver bara invänta nästa exponering innan man bläddrar vidare. Med en Canon M100 och en vanlig laptop tar själva exponeringen och bildöverföringen en del tid, så en "sleep 3" inlagd i en loop blir lagom. Ibland hinner man inte bläddra färdigt innan kameran utlöses, som i exemplet här intill. Då är det bara att invänta nästa exponering. Sådana misslyckade foton måste sedan rensas bort innan man går vidare med beskärning av bilderna.

Glas eller inte
Stativ, belysning, ljusreflexer
Sortering, beskärning
Filformat, filstorlek, kompression, JPEG-artefakter
Vitbalans, färgjustering

Man kan tro att en boksida har svart tryck på vitt papper. Men papperet kan ha gulnat. Belysningen kan påverka hur det gul-vita papperet återges i bilden. Slutligen kan kameran ha olika inställningar för vitbalans, för att kompensera för dagsljus / lysrör / glödlampor. Det är inte alltid som en trogen återgivning av det gulnade papperet är det bästa resultatet. Man kan få ett bättre resultat genom att förvränga bilden, alltså digitalt bleka papperet. Det är därför inte nödvändigt att ha exakt rätt inställningar på kameran, eftersom man ändå kan vilja justera färgerna i efterhand. I exemplet här, med den gulgröna Sverige-kartan, är kamerans bilder lite blåaktiga och också lite bleka. Man vill ha en jämnare vit papperston och lite starkare trycksvärta.

Ett användbart mätverktyg är ett bildbehandlingsprogram som GIMP, som kan ta fram ett histogram över färgernas fördelning, både som helhet och för vardera av färgkanalerna rött, grönt och blått. Eftersom boksidan mestadels är vit med en del svart trycksvärta, visar histogrammet en liten puckel för mörkgrått (men inte helt svart) och en större puckel för en ljus nyans, som dock skiljer sig mellan färgkanalerna. För blått ligger puckeln ganska nära maximum (255). För rött och grönt ligger puckeln omkring 205 och 220.

Ett användbart redskap för att justera färgerna är att sträcka ut färghistogrammet, så att pucklarna blir ny svartpunkt och vitpunkt. ImageMagick (Linux-kommandot convert) gör detta med flaggorna -level (för alla färgkanaler gemensamt) eller -level-colors (för olika färger). I exemplet provades de här båda varianterna av kommandot:

convert original/0123.jpg -level-colors "rgb(40,40,40),rgb(200,230,255)" justerad-1/0123.jpg
convert original/0123.jpg -level-colors "rgb(30,30,30),rgb(215,235,255)" justerad-2/0123.jpg

Det första gav en lite för hård (överstyrd) justering. Det andra gav ett behagligt resultat. Här sätts alltså svartpunkten vid 30,30,30. Alla pixlar som har lägre värden omvandlas till helt svart (0,0,0). Alla pixlar där rött är högre än 215 och grönt högre än 235 tvättas helt vita. För att få ett jämnt resultat, fotograferas bokens alla sidor i samma belysning och med samma inställning på kameran. Och alla bilderna färgjusteras med samma parametrar.