Introduction:
I had a bit of free time and decided to do a little impromptu test of a very low-budget book scanner and how to get the best OCR results.
Methodology:
Now, since I don't own a nice DIY book scanner - or even a decent digicam - I decided to test a worst case scenario for book scanning: A mobile phone for capture and no even lighting. And I will be capturing both sides of the book in a single image, so distortion of the pages will occur.
The light was ambient daylight, coming in from the side.
The camera is a Nokia 5800, which is a 3,2 mpixel camera if I'm not mistaken. The pictures are not exactly optimal for book scanning.
Software:
I tested
Scan Tailor and
Snapter to process the images and
ABBYY FineReader 10 Pro to OCR. Both Snapter and FineReader were trials, but I think their performance is the same as the full versions.
For those who don't know, Snapter is a $49 software that is supposed to process camera images and make them look more like they have been scanned on a regular flatbed scanner - a bit like Scan Tailor. So in theory it should provide better images to the OCR software.
The test:
I grabbed the first book on my shelf; it was a Danish translation of Faulkner's Light in August. Since I was just doing this to humour myself I didn't think ahead and use an English book, so that you guys could read the sample image too. But it might turn out to be a blessing in disguise, because Danish has three extra letters - æ, ø and å. And as we'll see later, the OCR software had a bit of a hard time correctly recognizing the letter 'ø' in this low resolution source image. So this will make the test even more of a 'worst case scenario' than most of you would normally encounter.
The workflow was:
Camera image --> Scan Tailor / Snapter --> ABBYY FineReader
I would try a few different settings to see if it would make a difference in OCR errors. The settings will be clarified in the next section.
Since FineReader has the option to adjust images before OCR, I tested that too. I only used the three 'photo correction' options (straighten text lines, remove motion blur and reduce ISO noise).
Finally I ran the source photo through OCR as is, without any extra processing from either Scan Tailor or Snapter.
I only tested one page due to the trial of FineReader limiting saves to 1 page at a time (and a 50 page total limit). And the resulting error counting is merely an approximation, so please take the results with a grain of salt - I don't claim this to be the be-all end-all test.
Results:
Original source image: Too many errors to be usable
Original source image + FineReader adjustments: 40 errors
Scan Tailor: Too many errors to be usable
Scan Tailor + FineReader: 26 errors
Snapter out-of-box: 36 errors
Snapter out-of-box + FineReader: 21 errors
Snapter 400 dpi + sharpening + contrast: 38 errors
Snapter 400 dpi + sharpening + contrast + FineReader: 22 errors
Snapter 400 dpi + auto color + sharpening: 37 errors
Snapter 400 dpi + auto color + sharpening + FineReader: 20 errors
Snapter 400 dpi + greyscale + contrast: 35 errors
Snapter 400 dpi + greyscale + contrast + FineReader: 18 errors
A little note on speed: The OCR felt noticeably faster on the Snapter prepared images than the raw source image. This might be a factor when doing many pages (although then you'd have to spend time on Snapter as well).
Conclusion:
The source image on its own was too bad to get a usable OCR. When I applied the FineReader photo corrections it became much better with 40 errors (meaning I had to manually delete/replace 40 characters).
Scan Tailor on its own was also too bad to get a usable OCR. With FineReader's help the result had 26 errors, not too bad at all.
The best result came from using Snapter with contrast boost, but without sharpning applied. On its own the result had 35 errors. With FineReader's help the result was 18 errors - a lot of which were due to 'ø' being recognized as 'o'.
The end result was surprisingly usable considering the low-resolution, distorted side-lighted source image. So if this is as bad as it gets, then I imagine one could get a quite good result by just using a tripod, overhead lighting and a decent camera. This would be a nice (and fast) low-budget DIY book scanner, capable of providing an acceptable OCR result without the need for much text editing.
Hope you enjoyed my little test. I can only encourage anyone interested to try it out yourself. You might be surprised at the results.
Source image:
Sample output - OCR from source image:
Quote:
plejet at kravle ud af, og på rebet, som han havde brugt; ^
^ke; ikke mere end en kat ville erindre et andct vindue: det lod også til, at han kunne se som en kat i mørkct )an gi Uge hen ul den mad han omkede; som om han vid^ nor den var; eller som om han blev ledet af en, der vidste det Han spiste noget af en usynlig tallerken med usynlige fingrc; „«ni* mad. Han var ligeglad med, hvad det var. Han vid<*c !kke engang, om lian havde tænkt over det eller smagt p& det, f„r han pludselig holdt op med at tygge, og hans tanker floj fem0g.
,c i,, tilbage, ned ad gaden, forbi alle hjomernc med de bitre skuffeler og de endnu bitrere sejre, og otte kilometer forbi ct hjarnc, hvor han plejede at vente i forelskelsens første, frygtelige tid, ventede på nogen, hvis navn han havde glemt; otte kilometer forbi det hjorne floj hans tanker. Jeg har det om ct øjeblik. Jeg kar spist det ¡or, et eller andet sted. Om et øjeblik har jeg erindringen bliver klar, han ved nu ved jeg det mere end ved det jeg horer ¡cg ser mit hoved bojet jeg horer den monotone strenge slemme som jeg aldrig tror vil holde op aldrig og jeg kigger op og jeg St r del uovervindelige kuglehovcd det rene brede skæg også bojet og jeg tænker hvordan kan han dog være så lidt sul- icn og jeg marker min mund lober i vand og mærker den varme dump fra jadet. ..Det er ærter," sagde han højt. „Herre Gud. Gronært er kogt med sirup."
Han må have været helt fraværende, ikke bare med sine tanker; lian burde have hørt lyden, før han hørte den; for den, der frembragte den, tænkte ikke mere på stilhed og forsigtighed, end ban elv havde gjort. Måske hørte han den. Men han rørte sig ikke, da den bløde hd af tøfler nærmede sig køkkenet inde fra huset og da lian omsider vendte sig pludseligt om og hans ojne pludselig fik glans, kunne han allerede se det svage lysskær nærme sig bag dorcn ind til buset. Han havde det åbne vindue lige ved sig; han kunne have været ude af det med et eneste spring. Men lun rørte sig ikke. Han satte ikke engang tallerkenen fra sig. Han holdt end ikke op med at tygge. Sådan stod han midt i rummet med tallerkenen i hånden og tyggede, da døren gik op og kvinden kom ind. Hun var i en falmet natkjole og havde et lys i hånden. holdt det hævet, sa lyset faldt over hendes ansigtstræk: et roligt, alvorligt, ganske uforfærdet ansigt. I det bløde lysskær sa
|
Sample output - OCR from source image + FineReader:
Quote:
plejet at kravle ud af, og på rebet, som han havde brugt; eller måske ikke.
Sands)uligvis ikke; ikke mere end en kat ville erindre et andet vindue; det lod også til, at han kunne se som en kat i morket, da han gik lige hen til den mad, han onskede; som om han vidste, hvor den var; eller som om han blev ledet af en, der vidste det. Han spiste noget af en usynlig tallerken, med usynlige fingre: usynlig mad. Han var ligeglad med, hvad det var. Han vidste ikke engang, om han havde tænkt over det eller smagt på det, for han pludselig holdt op med at tygge, og hans tanker fløj femogtyve år tilbage, ned ad gaden, forbi alle hjernerne med de bitre skuffelser og de endnu bitrere sejre, og otte kilometer forbi et hjørne, hvor han plejede at vente i forelskelsens første, frygtelige tid, ventede p.'i nogen, hvis navn han havde glemt; otte kilometer forbi det hjorne floj hans tanker. Jeg har del om ct ojeblik. Jeg har spist det for, et eller andet sted. Om et øjeblik har jeg erindringen bliver klar, han ved nu ved jeg det mere end ved det jeg horer ¡cg ser mit hoved bojet jeg horer den monotone strenge stemme som jeg aldrig tror vil holde op aldrig og jeg kigger op og jeg ser del uoienindelige kuglehovcd det rene brede skæg også bo ¡el og ]eg ttrnker hvordan kan han dog være så lidt sulten og jeg markir min mund lober i vand og mærker den varme damp fra fadet. „Det er ærter," sagde han højt. „Herre Gud. Gronærter kogt med sirup."
Han må have været helt fraværende, ikke bare med sine tanker; han burde have hørt lyden, før han hørte den; for den, der frembragte den, tænkte ikke mere på stilhed og forsigtighed, end han selv havde gjort. Måske hørte lian den. Men han rørte sig ikke, da den bløde l\d af tøfler nærmede sig køkkenet inde fra huset og da han omsider vendte sig pludseligt om og hans øjne pludselig fik glans, kunne han allerede se det svage lysskær nærme sig bag døren ind til huset. Han havde det åbne vindue lige ved sig; han kunne have været ude af det med et eneste spring. Men h.in rørte sig ikke. Han satte ikke engang tallerkenen fra sig. Han holdt end ikke op med at tygge. Sådan stod han midt i rummet med tallerkenen i hånden og tyggede, da doren gik op og kvinden kom ind. Hun var i en falmet natkjole og havde ct lys i hånden. holdt det hævet, så lyset faldt over hendes ansigtstræk: et roligt, alvorligt, ganske uforfærdet ansigt. I det bløde lysskær så
|
Sample output - OCR from Snapter + FineReader:
Quote:
plejet at kravle ud af, og på rebet, som han havde brugt; eller måske ikke.
Sandsynligvis ikke; ikke mere end en kat ville erindre et andet vindue; det lod også til, at han kunne se som en kat i mørket, da han gik lige hen til den mad, han onskede; som om han vidste, hvor den var; eller som om han blev ledet af en, der vidste det. Han spiste noget af en usynlig tallerken, med usynlige fingre: usynlig mad. Han var ligeglad med, hvad det var. Han vidste ikke engang, om han havde tænkt over det eller smagt på del, for han pludselig holdt op med at tygge, og hans tanker floj femogtyve år tilbage, ned ad gaden, forbi alle hjørnerne med de bitre skuffelser og de endnu bitrere sejre, og otte kilometer forbi et hjørne, hvor han plejede at vente i forelskelsens første, frygtelige tid, ventede på nogen, hvis navn han havde glemt; otte kilometer forbi det hjorne floj hans tanker. Jeg har del om et øjeblik. Jeg har spist det for, et eller andel sted. Om et øjeblik har jeg erindringen bliver klar, han ved nu ved jeg det mere end ved det jeg horer jeg ser mit hoved bojet jeg horer den monotone strenge stemme som jeg aldrig tror vil holde op aldrig og jeg kigger op og jeg ser del uovervindelige kuglchoved det rene brede skag også bajet og jeg tænker hvordan kan han dog være så lidt sullen og jeg mærker min mund lober i vand og mærker den varme damp fra fadet. „Det er ærter," sagde han højt. „Herre Gud Gronært er kogt med sirup."
Han må have været helt fraværende, ikke bare med sine tanker; han burde have hørt lyden, før han hørte den; for den, der frembragte den, tænkte ikke mere på stilhed og forsigtighed, end han selv havde gjort. Måske hørte han den. Men han rørte sig ikke, da den bløde lyd af tøfler nærmede sig køkkenet inde fra huset, og da han omsider vendte sig pludseligt om og hans ojnc pludselig fik glans, kunne han allerede se det svage lysskær nærme sig bag døren ind til huset. Han havde det åbne vindue lige ved sig; han kunne have været ude af det med el eneste spring. Men han rørte sig ikke. Han satte ikke engang tallerkenen fra sig. Han holdt end ikke op med at tygge. Sådan stod han midt i rummet med tallerkenen i hånden og tyggede, da døren gik op og kvinden kom ind. Hun var i en falmet natkjole og havde et lys i hånden, holdt det hævet, så lyset faldt over hendes ansigtstræk: et roligt, alvorligt, ganske uforfærdet ansigt. I det blode lysskær så
|