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
- 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
⇨