Artikel

In der Kategorie Artikel landen alle Beiträge, die in keine andere Kategorie passen.

zur Übersicht "Artikel"

Freeware: Bookbuilder - einfacher Buchscanner mit Hardware ab 180 Euro

Schlagwörter: Buchscanner, Kamera, CHDK

Freeware: Bookbuilder - einfacher Buchscanner mit Hardware ab 180 Euro

Bookbuilder

Egal ob Student oder Lehrkraft - häufig benötigt man Inhalte aus Büchern in digitaler Form. Meistens stehen in der Universität entsprechende Buchscanner zur Verfügung, die sehr einfach auch komplette Bücher scannen lassen. Aus privatem Interesse habe ich mich mit diesen Buchscannern beschäftigt und die Software Bookbuilder entwickelt, da ich mit den Ergebnissen von diversen kostenlosen Apps und Programmen nicht zufrieden war und die Buchscanner an der Uni meistens belegt waren.

Bookbuilder kann aus einer Serie von abfotografierten Buchseiten vollautomatisch ein PDF erstellen, in dem man nach Text suchen kann. Die Software ist kostenlos verfügbar. Wenn jemand etwas spenden möchte, weil er Bookbuilder gut findet, kann er das hier tun:

Download und Installation

Download

  • Bookbuilder ist in Java entwickelt und funktioniert daher grundsätzlich auf jedem Betriebssystem
  • Java 8 wird benötigt
  • Die Zip-Datei muss an den gewünschten Ort entpackt werden
  • Um die Texterkennung zu aktivieren, muss bei Nicht-Windows-Systemen Tesseract OCR nachinstalliert werden

Voraussetzungen - was wird benötigt?

Eine Kamera mit mindestens 8MP Auflösung (Spiegelreflex oder Kompakt)

Damit man das Buch abfotografieren kann, reicht eine einigermaßen aktuelle Kompaktkamera. Besonders empfehlenswert sind Kameras mit Fernauslösemöglichkeit, z.B. eine Canon Kompaktkamera mit WLAN, die man später per kostenloser App fernsteuern kann. Eine Smartphone-Kamera kann man zwar mal ausprobieren, aber in den meisten Fällen reicht die Qualität für gute Ergebnisse noch nicht aus.

Kaufempfehlung: Canon Ixus 140

Ein Stativ

Um die Kamera zu fixieren und verwackeln zu vermeiden, ist ein Stativ sehr sinnvoll. Bei meinen Experimenten hat sich ein einfaches Klemmstativ als sehr nützlich erwiesen.

Kaufempfehlung: Ein einfaches Klemmstativ

Einen Fernauslöser

Hat man eine Kamera von Canon, kann man die Canon CameraWindow App nutzen, um eine Fotografie auszulösen. Wie das funktioniert, wird in diesem Video gut erklärt.

Alternativ ist es auch mit dem Canon Hackers Development Kit oder  Magic Lantern möglich, per USB auszulösen, dies ist aber wesentlich mehr Aufwand, weil dafür zunächst die Software auf die Karte der Kamera aufgespielt werden muss.

Empfehlung: Canon CameraWindow

Beleuchtung (optional)

Bei sehr schlechten Lichtverhältnissen ist eine zusätzliche Beleuchtung sinnvoll, allerdings ist dies nicht unbedingt notwendig.

Kaufempfehlung: Studioleuchte

Unterlage

Damit ein möglichst hoher Kontrast zwischen Buch und Untergrund entsteht, kann man zusätzlich noch ein großes Stück schwarzen Stoff kaufen. Man kann aber genauso gut ein großes Handtuch verwenden, es muss nicht unbedingt Schwarz sein, aber möglichst dunkel.

Kaufempfehlung: Schwarzer Stoff

Tipps zur Vorgehensweise

Um möglichst gute Ergebnisse zu erziehlen, empfiehlt sich die folgende Vorgehensweise. Dabei ist es sinnvoll, zunächst ein Bild zu machen und zu prüfen, ob Bookbuilder die Daten verarbeiten kann.

Fotografieren

  • Aufgeschlagenes Buch auf einen dunklen Untergrund möglichst flach hinlegen (am besten Schwarz)
  • Kamera mit einem Stativ so justieren, dass das Buch ganz zu sehen ist
  • Das Buch möglichst nahe heranzoomen, so das nur noch ein kleiner Teil des Schwarzen Untergrunds zu sehen ist
  • Die Buchseiten rechts und links mittig jeweils mit einem Finger straffen (die Finger dürfen nicht die Ecken der Buchseiten verdecken)
  • Auslösen, umblättern und die nächste Seite mit den Fingern straffen

PDF erstellen

  • Die Bilder von der Speicherkarte in den Ordner "input" von Bookbuilder kopieren
  • Unter Windows die Datei bookbuilder.bat doppelklicken, unter Linux die Datei bookbuilder.sh über das Terminal starten
  • Die Konvertierung beginnt, eine grobe Anzeige der Restzeit wird nach dem ersten Bild angezeigt

Verwendung

Bookbuilder hat keine grafische Oberfläche und muss über das Terminal gestartet werden. Um die Verwendung zu vereinfachen, ist bereits eine Batch-Datei bzw. ein Shell-Script im Hauptverzeichnis hinterlegt, das einfach gestartet werden kann.

Standard-Vorgehensweise

  • Fotografien von den Buchseiten in das "input"-Verzeichnis kopieren
  • bookbuilder.bat starten
  • Im "output"-Verzeichnis wird das fertige PDF-Gespeichert

Bilder vorab drehen

Stehen die Fotografien auf dem Kopf oder sind gedreht, kann Bookbuilder die Bilder automatisch vor der Konvertierung drehen. Dazu öffnet man die Batch-Datei bookbuilder.bat in einem Texteditor und fügt die Option "--rotation-degrees=180" an, dadurch wird das Bild um 180 Grad gedreht.

java -jar bookbuilder-0.2.jar --input-path=input --output-file=output/output.pdf --ocr-embed-layer --rotation-degrees=180

Bild-Dateien statt einem PDF exportieren

Möchte man kein PDF erzeugen, sondern nur die vorverarbeiteten Bilder exportieren, um sie anderweitig zu nutzen, kann man beim Parameter --output-file einfach .jpg als Dateierweiterung angeben. Für jedes Bild wird dann eine Nummerierung als Suffix verwendet (z.B. output_001.jpg). Die Textintegration OCR funktioniert so nicht.

java -jar bookbuilder-0.2.jar --input-path=input --output-file=output/output.jpg --rotation-degrees=180

Weitere Optionen

Folgende weitere Optionen können an das Programm übergeben werden, die mit * markierten Parameter sind Pflicht:

    --auto-contrast
       apply an auto-contrast filter before processing
       Default: false
    --cut
       cut out part of the image before processing to improve conversion
       performance or prevent incorrect results (use x0,y0,x1,y2 of a rectangle, e.g.
       --cut=100,100,1000,100)
       Default: <empty string>
    --debug
       save debug images after every image processing step and provide other
       debug information (does not affect loglevel!)
       Default: false
  * --input-path
       provide the path containing the images (e.g.
       --input-path=/tmp/mybookimages)
    --ocr-embed-layer
       embed an invisible text layer into exported pdf to make the document
       searchable (pdf export only)
       Default: false
    --ocr-language
       specify the language for ocr detection (pdf export only)
       Default: eng
    --only-preprocess
       only applies preprocessing operations
       Default: false
  * --output-file
       output path and filename (e.g. --output-path=/tmp/output.pdf)
    --quiet
       do not show any output
       Default: false
    --rotation-degrees
       rotate all images before any other operation (e.g. 95.5 or 180.0)
       Default: 0.0
    --sharpen-intensity
       apply sharpen image x times before processing
       Default: 1

Features

Die folgenden Features werden bereits unterstützt:

  • Batch-Verarbeitung eines Verzeichnisses mit Bildern
  • Automatische Erkennung von Buchseiten auf Fotografien und entfernen des unerwünschten Hintergrunds
  • Finger-Erkennung
  • Automatische Bildverbesserung (Schärfe, Kontrast, etc.)
  • Erstellung eines PDFs anhand der automatisch erkannten Inhalte
  • Erstellung von Einzelbildern anhand der automatisch erkannten Inhalte
  • Texterkennung via Tesseract OCR
  • Manuelle Bildrotation
  • Ausschneiden von Bildinhalten anhand fixer Koordinaten