[[Inhaltsverzeichnis(2)]] [wikipedia:Texterkennung:] ist ein Gebiet, auf dem es unter Linux noch vergleichsweise wenige "eigene" Entwicklungen gibt. Synonym wird der Begriff "OCR" verwendet, "'''O'''ptical '''C'''haracter '''R'''ecognition", was streng genommen nur einen Teil, nämlich die Zeichenerkennung, beinhaltet. Die Erkennung wird besser, wenn neben den Zeichen auch Wörter abgeglichen werden, was aber mit einen wesentlich höheren Aufwand für die Programmentwicklung einhergeht (z.B. tesseract-ocr). Neben "klassischen" Open-Source-Projekten, die größtenteils von wenigen, teilweise nur einem einzigen, Hauptentwicklern erstellt wurden ([http://jocr.sourceforge.net/index.html gocr] {en}, [http://www.gnu.org/software/ocrad/ Ocrad] {en} etc.) stehen Weiterentwicklungen von ehemals kommerziell gestarteten, und später z.T. in open-source-Lizenz überführten Projekte wie [:Cuneiform-Linux:] und [:tesseract-ocr:] oder [wikipedia:OCRopus:], das zunächst u.a. auf tesseract-ocr basierte. Daneben existiert das zwar kommerziell entwickelte, aber ebenfalls unter freier Lizenz stehende [http://www.archivista.ch/de/ Archivista] {ch}, das eine Komplettlösung für das "papierlose" Büro bietet, und von der Entwicklerfirma auch als Komplettlösung mit entsprechender Hardware vertrieben wird. Während für reine Zeichenerkennung schon recht gute Ergebnisse erzielt werden können, sind die Layout-Analyse und Schriftarten-/Größenerkennung unter Linux noch nicht allzu weit fortgeschritten. Der entwickungstechnische Aufwand ist insgesamt anscheinend recht hoch; bei rein kommerziellen Anwendungen spiegelt sich das in den verlangten Preisen für die Programme wieder. Projekte wie tesseract-ocr oder OCRopus werden von Google aus eigenen Interessen (z.B. Erstellung von "e-books") gefördert und teilfinanziert. = Vorbereitung = Um exakte Ergebnisse erzielen zu können, müssen die verwendeten Vorlagen in einem guten Zustand sein oder gebracht werden. Dazu können die mit [:Scanner:Scannern] bzw. [:Scanner/Software:] erstellten Bilddateien bereinigt, gerade ausgerichtet, im Kontrast verbessert etc. werden. == Scan Tailor == [[Bild(Scan_Tailor/scantailor-logo.png, 64, right)]] [:Scan Tailor:] ist ein Programm, mit dem Scans bearbeitet werden können, um z.B. bessere Ergebnisse bei einer anschließenden Texterkennung zu erzielen, oder sie für die Archivierung zu optimieren. So können u.a. Seiten aufgeteilt, gerade gezogen und unerwünschte Ränder entfernt werden. Die Bearbeitung kann automatisiert erfolgen, es lassen sich aber auch umfangreiche manuelle Einstellungen für verschiedene Aufgaben vornehmen. == unpaper == [:unpaper:] ist ein mächtiges Kommandozeilenprogramm zur Nachbearbeitung von fotokopierten/gescannten Bild- und Textvorlagen. Es wurde für die automatische Stapelverarbeitung von großen Datenmengen konzipiert (z.B. [wikipedia:E-Book:E-Books]). Hauptziel der Entwicklung war es, für den Bildschirm besser lesbare PDF-Dokumente erstellen zu können, unpaper kann aber z.B. zur Vorbereitung von Texterkennung, Digitalisieren, Konservieren und Archivieren von gescannten Vorlagen verwendet werden. == convert == [[Bild(ImageMagick/logo.png, 64, right)]] `convert` ist Teil der Softwaresammlung [:ImageMagick:], das zur Verbesserung von gescannten Dokumenten eingesetzt werden kann. Ein Anwendungsbeispiel wird im Wiki-Artikel unter [:ImageMagick#Gescannte-Dokumente-nachbessern:Gescannte Dokumente nachbessern] beschrieben. == ExactImage == [:ExactImage:] ist eine Sammlung von Kommandozeilen-Werkzeugen zur Bearbeitung von Grafik-Dateien. Interessant ist dabei die Bearbeitungsgeschwindigkeit; einige Konvertieroptionen werden - verglichen mit ImageMagick - in bis zu 20facher Geschwindigkeit durchgeführt. Das Programm eignet sich somit auch für "schwachbrüstige" Rechner. Es werden etliche Werkzeuge bereitgestellt, die gerade für die Texterkennung benötigt werden, hier insbesondere das Programm [:ExactImage#optimize2bw:optimize2bw]. = OCR-Programme für die Kommandozeile = Die eigentliche Erkennung erfolgt in der Regel mit Kommandozeilenwerkzeugen, die von sich aus meist nur sehr wenige Bildformate verarbeiten können. Dazu existieren oft sogenannte "Frontends" mit grafischer Benutzeroberfläche, die meist auch in der Lage sind, die Daten in das vom eigentlichen OCR-Programm benötigte Format zu konvertieren. Z.T. sind auch Scan-Programme mit integriert, sodass die komplette Verarbeitung vom Erstellen der Vorlagen über die Bearbeitung bis zur Texterkennung und Ausgabe erfolgen kann. == Cuneiform-Linux == [[Bild(/Cuneiform-Linux/cuneiform.png, 64, right)]] [:Cuneiform-Linux:] ist ein sehr ausgereiftes Kommandozeilenprogramm zur Texterkennung/OCR unter Ubuntu. Es lässt sich mittels eines Skriptes in [:XSane:] einbinden. Cuneiform kann sehr viele Formate verarbeiten und die Ergebnisse in verschiedenen Formaten ausgeben. == tesseract-ocr == [:tesseract-ocr:] ist ein ehemals kommerziell von Hewlett-Packard entwickeltes Texterkennungsprogramm, das (von Google unterstützt) unter Open-Source-Lizenz weiterentwickelt wird. Es handelt sich um ein Kommandozeilenprogramm, das zunächst nur .'''tif'''-Dateien verarbeiten konnte, inzwischen aber fast alle Bildformate beherrscht. Die Texterkennungsqualität ist mit der von Cuneiform-Linux vergleichbar; Spalten- und teilweise auch Layouterkennung ist ab 3.0.x möglich; es liefert reine Textdateien oder hOCR-Dateien als Ausgabe. Auch für tesseract-ocr gibt es eine Einbindung für [:XSane:], sowie "frontends", die die Bedienung vereinfachen. Außerdem kann tesseract-ocr für (fast) jede beliebige Sprache/Schrift "angelernt" werden. == Ocrad == [:Ocrad:] ist ein Kommandozeilenwerkzeug zur Texterkennung, das seit 2004 von [http://linux.softpedia.com/developer/Antonio-Diaz-Diaz-18963.html Antonio Diaz Diaz] {en} entwickelt wird. Dabei handelt es sich um ein reines Zeichenerkennungsprogramm, das sprachenunabhängig arbeitet. Unterstützt werden nativ [wikipedia:PNM:pnm]-Dateien, also '''pbm''' (schwarz-weiß), '''pgm''' (Graustufen) oder '''ppm''' (Farbe). Es verfügt über eine Layout-Erkennung, um Spalten oder Textblöcke verarbeiten zu können. Viele OCR-Frontends können Ocrad einsetzen (z.B. [:XSane:], [:ocrodjvu:], [:OCRFeeder:], [:xsane2djvu:]). == GOCR == [[Bild(GOCR/gocr.jpg, 100, right)]] [:GOCR:] ist ein Kommandozeilenwerkzeug zur Texterkennung, das seit 2000 von [http://www.uni-magdeburg.de/jschulen/ Joerg Schulenburg] {de}/{en} entwickelt wird. Das Programm ist "trainierbar" und vielfältig zu konfigurieren; gute Ergebnisse werden vor allem für serifenlose Schriften erzielt. Dabei handelt es sich um ein reines Zeichenerkennungsprogramm, das sprachen-unabhängig arbeitet. Mit [:GOCR#Grafische-Oberflaeche:GOCR tcl] existiert auch eine grafische Benutzeroberfläche, die allerdings nicht ganz auf dem aktuellen Stand ist. Standardmäßig verwendet [:XSane:] GOCR als Texterkennungsprogramm. Viele OCR-Frontends können GOCR einsetzen (z.B. [:ocrodjvu:], [:OCRFeeder:], [:gscan2pdf:]). == ocre == [:ocre:] ist eine Kommandozeilenwerkzeug zur Texterkennung. Es wird von [http://lem.eui.upm.es/luisjc.html Luis José Cearra Zabala] {en} unter [http://www.gnu.org/copyleft/gpl.html GPL-Lizenz] {en} entwickelt. ocre verarbeitet '''pgm/pbm'''-Daten (in Graustufen), Ausgabe erfolgt in [wikipedia:Unicode:] oder ISO 8859. Das Programm ist quasi ein "Forschungsprojekt", das seit 2000/01 stetig weiterentwickelt wird. == ocrodjvu == [:ocrodjvu:] ist eine Kommandozeilenwerkzeug zum Erstellen einer versteckten Textlage für [:DjVu:]-Daten, das auf [http://djvu.sourceforge.net/ DjVuLibre] {en} fußt. Dazu können die Programme [wikipedia:OCRopus:] oder [:Cuneiform-Linux:] für die eigentliche Texterkennung genutzt werden ab Version 0.7.0 auch [:GOCR:], [:tesseract-ocr:] und [:Ocrad:]. Der Wrapper, verfasst in [:Python:], ist eine Neuentwicklung, er kommt u.a. in [:xsane2djvu:] zum Einsatz. = OCR-Programme mit grafischer Oberfläche = {{{#!vorlage Tabelle <-9 rowclass="titel"> Vergleich grafischer OCR-Programme +++ Programm <|2 :> apt-get <|2 :> .pdf- Import <-4 :> OCR-Engine <|2 :> SANE <|2 :> Bemerkung +++ [:Ocrad:] [:GOCR:] [:tesseract-ocr: Tesseract] [:Cuneiform-Linux: Cuneiform] +++ [:Texterkennung#cuneiform-qt-Cuneiform: cuneiform-qt] Nein ? Nein Nein Nein Ja ? ? +++ [:Texterkennung#gImageReader-Tesseract: gImageReader] Ja Ja Nein Nein Ja Nein Ja ? +++ [:Texterkennung#OCRFeeder-Ocrad-GOCR-Tesseract-Cuneiform: OCRFeeder] Ja Ja Ja Ja Ja Ja Ja Ausgabe als .html, .pdf, .odt oder .txt. +++ [:Texterkennung#Paperwork-Tesseract: Paperwork] Ja Ja Nein Nein Ja Nein Ja Ausgabe als PDF mit Textlage möglich +++ [:Texterkennung#Tesseract-GUI-Tesseract: Tesseract-GUI] Nein Nein Nein Nein Ja Nein Nein Bildvorbereitung mit [:ImageMagick:] (Kontrast, Drehung etc.) +++ [:Texterkennung#dpScreenOCR-Tesseract: dpScreenOCR] Ja Nein Nein Nein Ja Nein Nein Kann Text aus abgebildeten Dokumenten, Screenshots und Videostandbildern auslesen. }}} == cuneiform-qt (Cuneiform)== [[Bild(cuneiform-qt/cuneiform-qt-logo.png, 64, right)]] [:cuneiform-qt:] ist eine einfaches grafisches Frontend zu Texterkenneung für Cuneiform-Linux, mit dem existierende Bild-Dateien (Formate '''PNG, JPG, BMP''' und '''TIF''') ausgelesen werden können. == gImageReader (Tesseract)== [[Bild(gImagereader/gImageReader.png, 64, right)]] [:gImageReader:] ist ein einfach zu bedienendes grafisches Frontend für das OCR-Programm [:tesseract-ocr:] (Versionen 2.0x und 3.0x werden unterstützt). Es ist in [:Python:] verfasst und ermöglicht die Texterkennung aus vorliegenden Bilddateien (es sind alle gängigen Formate verwendbar, auch [:PDF:]-Dateien), sowie den direkten Import über einen SANE-fähigen Scanner. == OCRFeeder (Ocrad/GOCR/Tesseract/Cuneiform)== [[Bild(OCRFeeder/ocrfeeder.png, 64, right)]] [:OCRFeeder:] ist ein Programm mit einer grafischen Oberfläche zur Texterkennung und Layout-Analyse, mit der als Bilddatei vorliegende Text-Dokumente weiterverarbeitet, und auch mit Bildern versehen und angepasstem Layout/Schriftbild abgespeichert werden können. Die Vorlagen können mit [http://unpaper.berlios.de/ unpaper] {en} vorbereitet werden, als OCR-Engines können verschieden Programme zum Einsatz kommen (bereits vorgesehen sind [:Ocrad:], [:GOCR:], [:tesseract-ocr:], inzwischen auch [:Cuneiform-Linux:]). Die Ausgabe kann im '''.odt'''-Format ([:OpenOffice.org:]/[:LibreOffice:]), oder als HTML-Dokument erfolgen. == Lios (Tesseract/Cuneiform)== [sourceforge:lios:Lios] (Linux-Intelligent-Ocr-Solution) ist ein Programm mit einer grafischen Oberfläche zur Texterkennung mittels Webcam oder Scanner. Außerdem können andere Quellen wie Pdfs, Bilder, Ordner mit Bildern oder Bildschirmfotos genutzt werden. Zusätzlich ist ein Tesseract Trainer GUI vorhanden und die Nutzung von aspell zur Rechtschreibprüfung ist möglich. Das Programm wird von [http://www.cocofrix.com/ Cocofrix] {en} entwickelt und soll uneingeschränkt für Sehbehinderte nutzbar sein. Lios ist in den offiziellen Paketquellen von Ubuntu enthalten. Es müssen folgendes Paket {{{#!vorlage Paketinstallation lios, universe }}} installiert werden. Nach der Installation kann man Lios aus dem Startmenü * ''"Anwendungen -> Grafik -> Lios"'' heraus starten. == Paperwork (Tesseract)== [[Bild(Paperwork/paperwork.png, 64, right)]] [:Paperwork:] ist ein Programm zur Digitalisierung, Indexierung und Archivierung von Dokumenten aller Art. Die Vorlagen werden eingescannt oder vorhandene Bilddateien importiert. Mittels [:tesseract-ocr:] wird der Text erkannt und dann die Dokumente mit einer durchsuchbaren Textebene versehen. Die Seitenausrichtung wird automatisch erkannt und die Seite ggf. gedreht. Das Programm bietet ein automatisches Indexierungs- und Suchsystem, das alle erkannten Wörter beinhaltet. == Tesseract-GUI (Tesseract) == [[Bild(Tesseract-GUI/iconotesseract.jpg, 60, right)]] [:Tesseract-GUI:] ist ein grafische Oberfläche, um Bildvorlagen mittels [:ImageMagick:] vorzubereiten (z.B. Drehen, Beschneiden, den Kontrast anpassen) und dann mit [:tesseract-ocr:] eine Texterkennung durchzuführen. Das Programm beherrscht Stapelverabeitungsroutinen für große Mengen von Vorlagen, die nach gleichen Vorgaben vorbereitet und deren Textausgaben automatisch durchnummeriert und neu benannt werden können. Außerdem kann daraus ein zusammenhängender Text erstellt werden. == dpScreenOCR (Tesseract)== [[Bild(dpScreenOCR/dpScreenOCR_Icon.png, 60, right)]] [:dpScreenOCR:] kann Text aus abgebildeten Dokumenten, Screenshots und Videostandbildern auslesen, sofern die Schrift für das Programm leserlich genug ist und Dokumente nicht zu schräg oder wellig abgebildet sind. Als OCR-Engine wird Tesseract verwendet. dpScreenOCR Fertigpakete sind für Ubuntu [:Unterschiede_LTS_und_normale_Version: LTS Releases] über ein [:Paketquellen_freischalten/PPA/#PPA-hinzufuegen: PPA] verfügbar. Auf den halbjährlich neu veröffentlichten Ubuntu STS Releases muss bislang selbst gebaut werden. Hinweise dazu im [:dpScreenOCR:] Artikel. = Dokumenterstellung = Um aus den "erkannten" Vorlagen dann Dokumente zu erstellen, gibt es weitere Programme, mit denen die Texterkennung mit dem Bild zusammenbringen können. Mit [:xsane2djvu:] ist das in einem Aufwasch für DjVu-Dateien möglich, das schon genannte OCRFeeder ermöglichte eine Ausgabe im .'''odt'''-Format ([:OpenOffice.org:]/[:LibreOffice:]). Auch gscan2pdf ermöglicht eine Dokumenterstellung mit Texterkennung. == XSane == [[Bild(XSane/xsane-logo.png, 64, right)]] Auch das Scanprogramm [:XSane:] kann zur Texterkennung verwendet werden. Standardmäßig ist das nicht gerade zuverlässige [:GOCR:] als OCR-Engine vorgesehen, aber es existieren die Skripte [:tesseract-ocr#xsane2tess:xsane2tess] (zur Verwendung von tesseract-ocr) und [:Cuneiform-Linux#Einbindung-in-XSane:xsane2cunei] (desgleichen mit Cuneiform-Linux). Vorteil hier ist, dass die Vorarbeiten/Einstellungen für die Vorlagen direkt in XSane vorgenommen werden können. Weiterhin lassen sich nach dem selben Muster mit [:xsane2djvu:] vollwertige [:DjVu:]-Dokumente mit Texterkennung erstellen, mit [:xsane2speech:] können Bildvorlagen direkt in Text umgewandelt und akustisch ausgegeben und als '''.mp3'''-Datei gespeichert werden. Außerdem besteht mit [:xsane2OCRmyPDF:] die Möglichkeit, (auch mehrseitige) PDF-Dateien mit integrierter Textlage zu erstellen und bestehende zu erweitern. == gscan2pdf == [[Bild(gscan2pdf/gscan2pdf_logo.png, 80, right)]] [:gscan2pdf:] ist ein Programm, das die Erstellung von Dokumenten aus gescannten Vorlagen erleichtern soll. Ähnlich wie bei einem Kopierer kann man Seite für Seite einscannen und dann als PDF, DjVu- oder TIFF abspeichern. Es können gleich [:unpaper:], sowie eine Texterkennung (GOCR, tesseract-ocr, inzwischen auch ocropus, cuneiform) verwendet werden. == pct-scanner-script == [:pct-scanner-script:] ist ein reines Kommandozeilenwerkzeug, um zu Archivierungszwecken [:PDF:] oder [:DjVu:]-Dateien zu erstellen. Das Programm ist recht vielseitig konfigurierbar, ebenso ist eine Erstellung einer Textebene für DjVu-Dokumente möglich. Es verwendet scanadf aus dem '''sane'''-Paket, sowie einige PDF-und DjVu-Werkzeuge. == OCRmyPDF == [:OCRmyPDF:] ist ein Kommandozeilenprogramm, um für eingescannte [:PDF:]-Dateien eine durchsuchbare Textebene zu erstellen. Das Resultat wird [wikipedia:PDF/A#PDF.2FA-1:PDF/A1-b]-Format abgespeichert. Für die Texterkennung kommt [:tesseract-ocr:Tesseract] zum Einsatz. == pdfsandwich == [[Bild(pdfsandwich/sandwich.png, 64, right)]] [:pdfsandwich:] ist ein Kommandozeilenwerkzeug zum Erstellen von durchsuchbaren [:PDF:]-Dateien. Dafür wird die gescannte PDF-Vorlage mit `convert` aus [:ImageMagick:] in eine oder mehrere [wikipedia:Windows_Bitmap:.bmp3]-Dateien überführt und aus diesen mit [:tesseract-ocr:] jeweils eine Texterkennung im [wikipedia:HOCR_(Standard):hOCR]-Format erstellt. Die OCR-Dateien und die PDF-Vorlagen werden mittels [:ExactImage#hocr2pdf:hocr2pdf] als "unsichtbare" Schicht zusammengeführt, und schließlich mit [:Ghostscript:] zu einer zusammenhängenden PDF-Datei weiterverarbeitet. == pdfocr == [:pdfocr:] ist ein Programm, das es ermöglicht, aus gescannten [:PDF:]-Vorlagen durchsuchbare Dokumente zu machen. Das in [:Ruby:] verfasste Skript greift dabei zur Texterkennung auf das OCR-Programm [:Cuneiform-Linux:] zurück (inzwischen existiert auch eine Version für [:tesseract-ocr:]) und verwendet zur Zusammenführung des Originals mit der Texterkennung `hocr2pdf` aus [:ExactImage:]. == hOCR2pdf == Mit [:ExactImage#hocr2pdf:hOCR2pdf], einem von [http://www.exactcode.de/ ExactCODE] {en} entwickelten Werkzeug, Teil von [:ExactImage:], lassen sich aus gescannten Vorlagen "durchsuchbare" PDF-Dateien erstellen, in dem die Texterkennung und das Bild "übereinander" gelegt werden. Bei exakter Passung wird das in der Texterkennungsebene gefundene Wort in der Bildebene angezeigt. Voraussetzung ist allerdings eine relativ stimmige Layouterkennung bzw. einfach nachzubildendes Layout der Bildvorlage. Tesseract (und theoretisch auch Cuneiform-Linux) können entsprechende hOCR-Dateien erstellen, in [:Paperwork:] kommen ebenfalls modifizierte hOCR-Dateien zum Einsatz. Eine Anleitung findet sich in einem Blog-Beitrag auf [http://www.auxnet.de/cuneiform-und-hocr2pdf-unter-ubuntulinux-installieren-und-einsetzen auxnet.de] {de}. = Weitere Projekte = == Open Source == * [wikipedia:OCRopus:] ist ein noch in der Entwicklung (derzeit Version 1.3.3, Dezember 2017) befindliches groß angelegtes Projekt, das wie tesseract-ocr von Google gefördert wird. Es basierte z.T. auf [:tesseract-ocr:] und soll eine vollständige Open-Source-basierte Anwendung zur Texterkennung und -verarbeitung mit u.a. Layouterkennung und Handschriften-Analyse werden. * [http://www.archivista.ch/de/ Archivista] {ch} ist eine ausgereifte, kommerziell entwickelte, aber unter Open-Source-Lizenz stehende Komplettlösung zum "papierlosen" Büro. Es verwendet sowohl Tesseract als auch cuneiform zur Texterkennung. == Kommerzielle Programme für Linux == * [http://rerecognition.com/ KADMOS] {ch}/{en} * [http://www.ocr4linux.com/de:start Abbyy FineReader] {de}, letzte Version 11.0 CLI * [http://www.vividata.com/index.html Vividata OCR Shop] {en} = Links = * [wikipedia_en:Optical_character_recognition:Optical Character Recognition] auf Wikipedia * [http://www.archivista.ch/de/media/ocr2.pdf Archivista-Dokumentation zu ocr2pdf] {ch} * [http://www.brianklug.org/tag/unpaper/ Fotografieren statt Scannen] {en}, Anleitung, Bücher mit SLR-Kamera zu "archivieren" * [http://www.scantips.com/ Scantipps] {en} * [http://www.auxnet.de/sandy-skript-zum-erstellen-von-sandwich-pdfs-unter-ubuntu-14-04/ hocr2pdf-Anleitung für Ubuntu 14.04 und später] (aktualisiert) {de} * [github:tmbdev/hocr-tools:hOCR-Tools] {en} * [man:hocr2pdf:hocr2pdf-manpage] {en} * [http://www.linux-magazin.de/Heft-Abo/Ausgaben/2009/03/Nachlese Vergleich cuneiform - tesseract] {de} im Linux-Magazin 03/2009 (veraltet) * [http://www.djvu-pdf.com/de/online-ocr-service.php Online-Service] {de}, mit dem kostenlos Texterkennungen durchgeführt werden können, Ausgabe in [:PDF:] oder [:DjVu:] möglich #tag: Übersicht, Grafik, Texterkennung, OCR, Scanner, Büro, Kommunikation