staging.inyokaproject.org

Texterkennung

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Texterkennung.

Heinrich_Schwietering Team-Icon

Wikiteam
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Hier der angedrohte Übersichtsartikel zu Texterkennung (OCR). Weitere Artikel zu dem Thema kann ich dann ja gleich hier einbasteln.

Ich würde dann die Kurzbeschreibungen aus Scanner entfernen (und nur einen Hinweis auf die neue Seite stehen lassen), und unter Grafik ebenfalls einen Hinweis einbauen.

Für Ergänzungen, Hinweise, Anmerkungen bin ich wie immer dankbar -

so long
hank

Philipp_B Team-Icon

Supporter
Avatar von Philipp_B

Anmeldungsdatum:
22. Juli 2005

Beiträge: 8556

ein wenig off topic : welches programm nutzt google um "deren" bücher einzuscannen und mittels ocr zur verfügung zu stellen ?

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Welches sie nun wirklich benutzen weiß ich auch nicht, aber sie unterstützen sowohl tesseract-ocr als auch ocropus.

Weiß jemand was zu ocre? Ich werd' nicht ganz schlau aus der website, muss ich wohl mal testen... mein Spanisch reicht auch nur, um eine Mineralwasser zu bestellen... 😉

so long
hank

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Nehme das Schweigen hier mal als "Zustimmung": verschoben ▶ Texterkennung (OCR).

Verlinkung in Scanner und Grafik eingefügt.

Soll die Seite als Übersichtsseite gesperrt werden?

so long
hank

rasalas

Anmeldungsdatum:
7. Oktober 2009

Beiträge: 271

Hallo,

nachdem ich lange mit dem Thema gekämpft habe, konnte ich mir nun drei Skripte zusammenbasteln, die mir sehr helfen. Eventuell können die hier irgendwo eingebaut werden. Die ersten beiden Skripte verbessern die übergebene PDF-Datei und führen dann eine Texterkennung aus. Mit scantailor erziele ich bessere Ergebnisse als mit unpaper (die erstellte PDF-Datei hat eine bessere Qualität). Letzteres hat aber den Vorteil, dass keine Benutzereingaben erforderlich sind.

Ausgangspunkt für meine Skripte waren zwei Postings in einem Blog: 1 und 2

scantailor-Variante

#!/bin/bash
echo "usage: ./ocrScript.sh inputFile.pdf"

FILE_NAME=$(basename $1 .pdf)

# Temp Folder
mkdir ocrTemporaryFolder
cp $1 ocrTemporaryFolder/
cd ocrTemporaryFolder

# splitting pdf
convert -density 600 $1 singlepage%03d.tif
#pdftoppm $1 seite # wäre alternative, aber unpaper bei ppm ohne Effekt

read -p "[ENTER] zum Starten von Scantailor und manueller Bearbeitung der ppm-Dateien"
scantailor
read -p "Warte auf manuelle Bearbeitung; [ENTER] wenn fertig!"
mv out/* ./

#processing each page
for i in *.tif
do 
echo "processing $i"

convert -density 600 "$i" "$i.png"

tesseract -l deu -psm 1 "$i.png" "$i" hocr
convert -density 600 "$i.png" "$i.jpg"
hocr2pdf -i "$i.jpg" -s -o "$i.bk2" < "$i.html"
done

pdftk *.bk2 cat output "${FILE_NAME}_ocr.pdf"

mv "${FILE_NAME}_ocr.pdf" ../
cd ..
rm -R ocrTemporaryFolder

echo "----------------done----------------------"

unpaper-Variante

#!/bin/bash
echo "usage: ./ocrScript.sh inputFile.pdf"

FILE_NAME=$(basename $1 .pdf)

# Temp Folder
mkdir ocrTemporaryFolder
cp $1 ocrTemporaryFolder/
cd ocrTemporaryFolder

# splitting pdf
pdftk $1 burst

#processing each page
for i in pg*.pdf
do 
echo "processing $i"

convert -density 600 "$i" "$i.pbm"
unpaper "$i.pbm" "${i}_unpaper.pbm"
convert -density 600 "${i}_unpaper.pbm" "$i.png"

tesseract -l deu -psm 1 "$i.png" "$i" hocr
convert -density 600 "$i.png" "$i.jpg"
hocr2pdf -i "$i.jpg" -s -o "$i.bk2" < "$i.html"
done

pdftk *.bk2 cat output "${FILE_NAME}_ocr.pdf"

mv "${FILE_NAME}_ocr.pdf" ../
cd ..
rm -R ocrTemporaryFolder

echo "----------------done----------------------"

Zu guter Letzt habe ich mir noch ein Skript geschrieben, das einen Ordner überwacht. Sobald eine Datei in den Ordner in geschoben wird, wird sie mit unpaper und tesseract bearbeitet und im Ordner out ausgegeben.

#!/bin/bash

# to run this as a service
# sudo mv enhancePdfServer.sh /etc/init.d/
# sudo chmod +x /etc/init.d/enhancePdfServer.sh
# sudo update-rc.d enhancePdfServer defaults 80

# needed directories: 
# /var/www/pdfServer/
# /var/www/pdfServer/in/
# /var/www/pdfServer/out/

inotifywait -mq -e create -e moved_to --format %w%f /var/www/pdfServer/in | while read IN_FILE
do
	FILE=$(basename $IN_FILE)

	# Temp Folder
	TMPFOLDER=`mktemp -d`
	cp $IN_FILE $TMPFOLDER/
	cd $TMPFOLDER

	# splitting pdf
	pdftk $FILE burst

	#processing each page
	for i in pg*.pdf
	do 
	echo "processing $i"

	convert -density 600 "$i" "$i.pbm"
	unpaper "$i.pbm" "${i}_unpaper.pbm"
	convert -density 600 "${i}_unpaper.pbm" "$i.png"

	tesseract -l deu -psm 1 "$i.png" "$i" hocr
	convert -density 600 "$i.png" "$i.jpg"
	hocr2pdf -i "$i.jpg" -s -o "$i.bk2" < "$i.html"
	done

	pdftk *.bk2 cat output "$(basename $FILE .pdf)_ocr.pdf"

	mv "$(basename $FILE .pdf)_ocr.pdf" /var/www/pdfServer/out/
	rm -R $TMPFOLDER
	rm "$IN_FILE"

	echo "----------------done----------------------"
done

Mir fehlt leider teilweise das Wissen, um die Skripte für das Wiki aufzubereiten und zu beschreiben. (Ich konnte z. B. nicht herausfinden, warum die Dateien in .bk2 erstellt werden.)

Ich würde mich freuen, wenn jemand Lust hat, die Skripte ggf. noch ein wenig anzupassen und im Wiki einzubauen. Ich hatte bisher nur Lösungen gefunden, die bei mir nicht richtig funktioniert hatten, daher hoffe ich, dass ich hiermit weiterhelfen kann.

Viele Grüße, Nico

nilleholger

Anmeldungsdatum:
27. Oktober 2008

Beiträge: Zähle...

Ich würde gerne eine Übersichtstabelle zu den einzelnen Programmen anfertigen, um diese schneller zu vergleichen!

Meine Überlegungen zu den Kriterien:

  • Programm in den offiziellen Paketquellen

  • Formate: PNG, JPG, BMP, TIF, PDF

  • automatische Texterkenneung

  • unterstützte Engines (Ocrad/GOCR/Tesseract/Cuneiform)

  • Besonderheiten (Rechtschreibprüfung, Anschluss an SANE, ..)

Ist so eine grafische Übersicht (evtl. parallel zu den Texten) sinnvoll?

Edit: in etwa so: http://wiki.ubuntuusers.de/Benutzer/nilleholger

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

Naja, unter Ubuntu liefern nur tesseract und cuneiform akzeptable Texterkennung, gocr und ocrad etc sind praktisch nicht nutzbar. Und die beiden ersten können inzwischen mit fast allen gängigen Bildformaten umgehen. Was verstehst du unter "automatischer" Texterkennung?

so long
hank

nilleholger

Anmeldungsdatum:
27. Oktober 2008

Beiträge: Zähle...

automaotische Texterkennung = findet selbstständig unterschiedliche Spalten /Tabellen, ... (hab ich erst mal aus dem Artikel übernommen). OCRFeeder macht das ganz ordentlich!

Ich hatte das Problem, dass ich aufgrund der unübersichtlichen Liste viele Programme durchprobieren musste. Daher würde ich gerne etwas mehr Übersicht erzeugen! Denke eine Tabelle könnte da helfen, oder?

Edit: in etwa so: http://wiki.ubuntuusers.de/Benutzer/nilleholger

Heinrich_Schwietering Team-Icon

Wikiteam
(Themenstarter)
Avatar von Heinrich_Schwietering

Anmeldungsdatum:
12. November 2005

Beiträge: 11335

Hi!

OCRFeeder ❓ ... sehr spannend. "Automatisch" funktioniert da bei mir momentan gar nichts, habs über die Jahre immer mal wieder mit neuen Versionen versucht. Wenn ich das dann in einer Übersichtstabelle gefunden, wär' eher ich enttäuscht, als dass es für mich einen Nutzwert gehabt hätte.

Und natürlich kann man YAGF, vietOCR etc. auch ohne PPA installieren; würd ich sogar eher empfehlen...

so long
hank

nilleholger

Anmeldungsdatum:
27. Oktober 2008

Beiträge: 199

"automatische detektion und Erkennug aller Seiten" funktioniert bei mir funktionerit die 1a unter 14.04! Müssen das jetzt aber auch nicht ausdiskutieren!

Viel wichtiger ist doch die Frage, ob die Tabelle nun hilfreich ist oder nicht!

Ich wollte nur darauf hinweisen, dass es Programme gibt, die in den offiziellen Paketquellen liegen und andere, die der Nutzer händisch selber installieren und aktuell halten muss...

Antworten |