Kategoriearchiv: Linux

Alles rund um die Pinguine – auf dem Desktop und dem Server

Online OCR

Politiklehrer brauchen Zeitungsausschnitte wie ein Fisch das Wasser. Ideal ist es, wenn diese noch mit Zeilennummern versehen und um unnütze Details gekürzt werden können. Hierzu setze ich OCR Software ein – leider in einer virtuellen Maschine, weil Linux sich hier von seiner spröden Seite zeigt (siehe: OCR unter Linux).

Einen Scan des lesenswerten Artikels ‚Die Unsicherheitskrise‚ von Stefan Kornelius aus der SZ vom 7./8.02.2009 (p. 4) nahm ich zur Vorlage, um die Qualität verschiedener Online-OCR-Dienste zu testen (mit freundlicher Genehmigung der SZ). Dabei wurde darauf verzichtet, die Dienste mit mehrspaltigem Layout und eingebetteten Bildern zu foltern. Dafür war aber die Scanqualität an sich nicht gerade rosig.

tohoku

http://ocr1.sc.isc.tohoku.ac.jp/e1/

Ein Staat geht hr die Sicherheit sei-
ner Bürger drei Verpflichtungen ein: Er
schützt mit seinem Militär vor einem äu-
Qeren Feind, er sor& rr_t der Polúei für
SicherheitiInInneren, und erbetreibt ei-
ne uIwichtige Wirtschaftspolitik, die vor
ökonomischer Unsicherheit schützen
soll. Erstaunlich nw, dass der Zusam-
memang zwischen der ökonomischen
Knse und der physisclien Sicherheit, der
UnverseMheit der Bürger von Riga bis
Sh h . S_ p lobisSacramen

Ich behaupte, dass hier GOCR im Hintergrund läuft – zumindest erinnert mich die schlechte Erkennungsleistung stark an dieses Programm. Ich habe es zwar nicht ausprobiert, aber die Nachbearbeitung dürfte in diesem Fall fast so viel Zeit brauchen wie das Abtippen.

my.ocrnow

https://my.ocrnow.com

Ein Staat geht für die Sicherheit sei­ner Bürger drei Verpflichtungen ein: Er schützt mit seinem Militär vor einem äu­ßeren Feind, er sorgt mit der Polizei für Sicherheit im Inneren, und er betreibt ei­ne umsichtige Wirtschaftspolitik, die vor ökonomischer Unsicherheit schützen soll. Erstaunlich nur, dass der Zusam­menhang zwischen der ökonomischen Krise und der physischen Sicherheit, der Unversehrtheit der Bürger von Riga bis Shanghai, von Säo Paulo bis Sacramen-to

Keine schlechte Erkennungsleistung für einen kostenlosen Service, der lediglich eine Registrierung voraussetzt. Fortgeschrittene Funktionen sind kostenpflichtig und beinhalten das Zusenden des fertigen OCRs und die Einreichung per Mail.

iupr

http://demo.iupr.org/cgi-bin/main.cgi

Ein Staat geht fiir die Sicherheit sei

ner Burger drei Verpflichtungen ein: Er schiitzt mit seinem Militar vor einem auBeren Feind, er sorgt mit der Polizei fiir Sicherheit im Inneren, und er betreibt eine iunsichtige Wirtschaftspolitik, die vor okonomischer Unsicherheit schiitzen soll. Erstaunlich nur, dass der Zusammenhang zwischen der okonomischen Krise und der physischen Sicherheit, der Unversehrtheit der Burger von Riga bis Shanghai, von S50 Paulo bis Sacramen- ‚ ` ‚ “ i’Dl€1H‘Is€°

Schon besser als tohoku – aber auch nur, weil die Fehler auf den ersten Blick zu sehen sind. An den besser erkennbaren Bildstellen (also nicht am Falz in der Zeitung) ist die Erkennungsleistung ordentlich.

ocrterminal

http://www.ocrterminal.com

Ein Staat geht fur die Sicherheit seiner Burger drei Verpflichtungen ein: Er schutzt mit seinem Militar vor einem au-Beren Feind, er sorgt mit der Polizei fur Sicherheit im Inneren, und er betreibt eine umsichtige Wirtschaftspolitik, die vor okonomischer Unsicherheit schutzen soil. Erstaunlich nur, dass der Zusam-menhang zwischen der okonomischen Krise und der physischen Sicherheit, der Unversehrtheit der Burger von Riga bis Shanghai, von Sao Paulo bis Sacramento

Saubere Erkennungsleistung auf dem Niveau von my.ocrnow. Die Seite bietet ihre Dienste kostenlos an, erlaubt aber „nur“ 30 Seiten am Tag, was für den Alltag wohl völlig ausreichend sein dürfte.

Fazit

Die Ergebnisse waren recht eindeutig: my.ocrnow oder ocrterminal können weiter empfohlen werden. Standalone Anwendungen wie FineReader oder Omnipage schlagen diese Services aber um Längen in der Erkennungsleistung (bezogen auf den Gesamtartikel), sind schneller, arbeiten sich auch durch umfangreiche Dokumentenstapel und beschweren sich nicht, wenn sie mit mehrspaltigem Layout konfrontiert werden.

Für anspruchsvollere OCR-Jobs führt demnach kein Weg an Programmen wie FineReader und Omnipage vorbei, aber für den schnellen Scan zwischendurch und auch für kurze Artikel reicht inzwischen ein Online-OCR. Unter Linux sind diese bei unter einer Seite Textumfang wohl auch schneller zu nutzen als der Start der virtuellen Maschine an Zeit braucht.

Moorhuhn

Wer hätte das gedacht – Moorhuhn 2 läuft auch unter Wine. Die Installation ist kinderleicht: Einfach XP in Wine einstellen und dann ein paar mal doppelklicken. Die Jungs sind glücklich 😉

Stellarium

Nette Software – neben Celestia einige der wenigen Pakete zum Thema, die sich direkt in den Repos von Ubuntu befinden. Im Ordner ./stellarium in /home befindet sich die config.ini und hier sind die Daten für Nehren einzutragen:

name                           = Nehren
latitude                       = +48d25’52.32″
longitude                    = +09d04’10.26″
altitude                       = 427

http://www.stellarium.org/de/

Stillstand II

Es war mal wieder der erste Sonntag im Monat und mein Software Raid hat sich wie üblich mit sich selbst beschäftigt. Das ging mir nun aber so auf den Wecker, dass ich die Ursachenforschung noch einmal anging – und dann leider feststellen musste, dass meine Platten nicht im DMA Modus liefen, da konnte ich  hdparm-en so viel ich wollte.

Also hab ich mir über ebay eine 3ware 7006-2 besorgt, heute eingebaut und siehe da – die Plattengeschwindigkeit hat sich verzehnfacht.

Hier gab es dann noch ein Debian-Paket für die einfachere Verwaltung und dort die Anleitung für die Einbindung in Nagios. Die passt noch nicht so 100%ig – aber dafür kann ich mit ./tw_cli arbeiten.

tw_cli info c0 allunitstatus

ist die schnellste Lösung. Nach einem

tw_cli

sind in einem interaktiven Modus weitere Befehle möglich – z.B.

/c0 show unitstatus

/c0 show drivestatus

Eine Übersicht liefert diese man page: http://www.cyberciti.biz/files/tw_cli.8.html

SMB trouble

Unter OpenSuSE 11.1 und auch unter Intrepid war es nur möglich auf dem Server-share Dateien und Verzeichnisse zu schreiben, zu lesen und zu löschen. An den Inhalt von Dateien durfte ich nicht ran. Speicherversuche quittierte gedit z.B. mit der Meldung

Unerwarteter Fehler not a directory

Dieses Problem hatten auch andere. Leider hab ich das erst gemerkt, als die SuSE vom Vostro schon wieder verschwunden und ein Intrepid installiert war. Dabei ist die SuSE garnicht die Schuldige – die Ursache für Probleme beim Verändern von Dateiinhalten auf Server-shares scheint eher an CIFS selbst zu liegen.

Bei mir (Debian Etch Server mit unixextensions = yes) hat es ausgereicht in der fstab auf den Intrepid Clients

//10.32.1.1/verwalter /home/dirk/Serververz cifs
rw,user,nounix,auto,uid=dirk,gid=dirk,credentials=/home/dirk/.credentials/server.cred,iocharset=utf8 0 0

zu schreiben.

Vom Intrepid Client aus gesehen erhalten die Dateien nun

-rwxrwSrwx 1 dirk dirk 307 2009-01-20 10:04 test.txt

Die gleiche Datei vom Hardy Client aus gesehen:

-rw-r–r– 1 dirk dirk 389 2009-01-20 10:05 test.txt

Auf dem Server sieht es aber richtig so aus:

-rw-r–r– 1 verwalter teachers 389 2009-01-20 10:05 test.txt

Die Übersetzung klappt also. Änderungen an der smb.conf waren nicht nötig.

Nebenwirkungen habe ich noch nicht getestet – aber jetzt kann ich wenigstens wieder von allen Clients aus den Inhalt von Dateien verändern.

Ob das nun alles auch mit rsync noch hinhaut werde ich sehen: Bisher rsyncte ich vor einem Dienstgang meine Verzeichnisse des Servers mit denen des Clients und wenn ich zurückkam ging es in die andere Richtung. Im dümmsten Fall tut rsync garnix mehr – im anderen dümmsten Fall schiebt rsync alles rüber und nicht nur die Veränderungen.

Vostro 1510 unter OpenSuSE 11.1

Andreas hat mich (mehr oder weniger) dazu überredet mal auch die neue OpenSuSE auszuprobieren und da ich gerade eben einen Dienstlaptop erhalten habe tat ich das auch gleich.

Die Installation auf dem Dell Vostro 1510 lief ohne Probleme durch, die zuerst falsch erkannte Bildschirmauflösung konnte über YaST angepasst werden und auch die Installation des nvidia Treibers klappte auf Anhieb.

Nur die WLan Karte wurde nicht erkannt bzw. es wurde kein Treiber eingebunden – ein Problem, das unter Ubuntu 8.10 wohl nicht auftritt, wie ein erster Test mit der LiveCD zeigte.

lspci

findet aber die richtigen Angaben für die Karte und für eine Suche im Netz nach Hilfe:

Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01)

Auf den Seiten von Broadcom gibt es für das Ding  einen Treiber: http://www.broadcom.com/support/802.11/linux_sta.php

Der Rest ergibt sich aus diesem Blogbeitrag (vielen Dank) und der Beschreibung in den Treiberdateien selbst:

tar xfz hybrid-portsrc-x86-32_5_10_27_12.tar.gz

su –

zypper ref ; zypper in kernel-source linux-kernel-headers

make -C /lib/modules/(uname -r)/build M=`pwd` clean

make -C /lib/modules/(uname -r)/build M=`pwd`

mkdir /lib/modules/$(uname -r)/extra

cp wl.ko /lib/modules/$(uname -r)/extra

depmod -a

modprobe -v ieee80211_crypt_tkip wl

Jetzt noch neu booten – und schon begrüßt einen das Leuchtdiödchen für WLan und auch der gnome Netzwerkmanager findet Kontakt.

Ob das auch mit verschlüsselten WLan APs läuft – keine Ahnung. Das konnte ich noch nicht testen. Was auf jeden Fall auf mich zukommt ist, dass ich nach den sicherlich unter SuSE ebenfalls üblichen monatlichen Kernelupdates wieder neu kompilieren muss.

Stillstand

Seit Sonntag beschäftigt sich mein Homeserver mit sich selbst und reagiert nur noch mit großer Verzögerung auf Anfragen der Clients. Außerdem binden die Clients die Serververzeichnisse nicht mehr richtig ein – soll heißen: Nur noch jeweils ein Client hat Zugriff, die anderen gehen leer aus.

Auf der Suche nach den Ursachen warf ich einen Blick auf das Raid:

# cat /proc/mdstat
Personalities : [raid1]
md2 : active raid1 hda3[0] hdb3[1]
192434496 blocks [2/2] [UU]
[=================>…]  check = 88.0% (169503744/192434496) finish=422.0min speed=904K/sec

md1 : active raid1 hda2[0] hdb2[1]
2931776 blocks [2/2] [UU]

md0 : active raid1 hda1[0] hdb1[1]
48829440 blocks [2/2] [UU]

Ein mdadm -D /dev/md2 beruhigt ebenfalls mit der Meldung „State : clean, recovering“ (und ich muss gerade entdecken, dass WordPress aus –detail einen Einzelstrich macht).

Die Ursache ist nun also klar: Am Sonntag war wohl /md0, am Montag /md1 und Teile von /md2 dran – und ich bin inzwischen froh, dass ich nur 250GB Platten im Raid hab. Zuerst dachte ich an einen Fehler – doch dann entdeckte ich, dass dieser Job regelmäßig abläuft.

In /etc/cron.d/mdadm steht wann:

#
# cron.d/mdadm — schedules periodic redundancy checks of MD devices
#
# Copyright © martin f. krafft <madduck@madduck.net>
# distributed under the terms of the Artistic Licence 2.0
#
# $Id: mdadm.cron.d 147 2006-08-30 09:26:11Z madduck $
#

# By default, run at 01:06 on every Sunday, but do nothing unless the day of
# the month is less than or equal to 7. Thus, only run on the first Sunday of
# each month. crontab(5) sucks, unfortunately, in this regard; therefore this
# hack (see #380425).
6 1 * * 0 root [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ] && /usr/share/mdadm/checkarray –cron –all –quiet

Seit einem Jahr hab ich das Raid nun schon am Laufen und hab nichts von dieser Funktion gemerkt. Wenn /usr/share/mdadm/checkarray tatsächlich jeden ersten Sonntag im Monat aufgerufen werden muss, dann darf ich a) mein Raid auflösen b) dies auf jeden Sonntag beschränken, der vor dem 3ten eines Monats liegt oder c) den Prozess im Bedarfsfall anhalten mit

/usr/share/mdadm/checkarray -x

Eine –help Option gibt es für checkarray auch. Eine Dokumentation lieg in /usr/share/doc/mdadm/README.checkarray, eine man Page hat weder mein Debian noch mein Ubuntu zu bieten.

Jetzt bin ich zwar was die Geschwindigkeit meines Servers angeht beruhigter, kann aber nicht arbeiten, weil alle Daten ja auf dem Server (und dort in md2) liegen und dieser Prozess so viel Systemressourcen frisst, dass schon der Aufruf von Google scheinbar ewig dauert. Hier rächt sich nun der integrierte IPCop.

Die Schnapsidee, an den Moodleseiten auf dem LFB zu arbeiten quittierte mein DreamWeaver heute Morgen mit einer Wartezeit von 90 Minuten für das Einlesen des Verzeichnisbaums und eine Sicherungskopie von /elearning/moodle vor der notwendigen Restrukturierung läuft nun schon seit 4 Stunden, obwohl das Archiv auf dem Client liegt. Mein Server will wohl, dass ich Urlaub mache.

Die einzige Art, wie ein Software Raid unter der Herrschaft von mdadm auf einem Linux überprüft werden kann, scheint demnach zu sein, die Partitionen zu rsyncen.

Hm?!

XMind

xmind-3

Der in einer OpenSource Version vorliegende MindMapper XMind hat es mir angetan. Zwar bringt das Programm in der freien Version einige Dinge nicht mit, die FreeMind hat (z.B. PDF Export), aber die Vielzahl der Optionen für die Darstellung der Map und die schicke Programmoberfläche hält mich gerade gefangen.

darstellungsformen

Nervig wird das Programm jedoch, wenn man Maps auf share.xmind.net hochladen will: Ein Updatedialog versucht einem dauernd die Pro Version unterzuschieben.

Wirklich überzeugend finde ich die Portable Version: ZIP herunterladen und auf dem USB Stick auspacken – und schon steht in vier Unterverzeichnissen XMind für Linux 32, Linux 64, Windows und Mac OS X zur Verfügung. Ebenfalls nicht schlecht ist die einfache Möglichkeit in XMind eigene Bilder als Icons zu nutzen und diese thematisch zu gruppieren.

gscrot

Endlich ein Linuxtool, das Screenshots fast so einfach macht, wie es einst nur Hardcopy unter Windows konnte. Es fehlen zwar noch einige Funktionen des IMHO ungeschlagenen Vorbilds, aber nichts, was ich mir bisher unter Linux ansah, kam so nah ran wie gscrot.

screenshot_04

gscrot kann – neben den üblichen Funktionen wie Aufnahme des gesamten Bildschirms, Aufnahme eines Fensters mit oder ohne Rahmen usw – auch eine Auswahl des Bildschirms aufnehmen und zeigt dabei die Größe der Auswahl an.

Weiter bringt es eine Reihe von Funktionen mit, die Effekte direkt auf den Screenshot anwendet – z.B. auch den Effekt „torn paper“. Verschiedene Effekte lassen sich kombinieren – es fehlt aber leider noch eine Rückgängig-Funktion.

Ein eingebauter Editor erlaubt es, verschiedene Icons sowie Auswahlrahmen und Texte in das aufgenommene Bild einzufügen, so dass Anleitungen leichter erstellt werden können. Aber auch hier gibt es ein „aber“: gscrot speichert die Dateien im eingestellten Format (png oder jpg), so dass jede Veränderungen destruktiv wirkt. Gimp’s XCF inklusive Ablage der Veränderungen auf Ebenen wäre hier eine gute Alternative gewesen. Trotzdem: Im Vergleich zur in Gimp eingebauten Screenshotfunktion oder gar dem simplen Pressen der [Print Screen] Taste ein echter Fortschritt.

Lediglich die Installation über heruntergeladene DEB Pakete wollte wegen nicht erfüllter Abhängigkeiten bei mir nicht so einfach gelingen. Ich habe mich deswegen dazu durchgerungen, die Paketquellen von gscrot in die sources.list einzutragen, damit alles rund läuft.

OCR unter Linux

OCR ist unter Linux ein Problemkind. Es gibt zwar gocr, ocrad und hoffentlich bald auch ein einfach zu installierendes tesseract, das deswegen hier nicht mehr weiter behandelt wird, aber weder gocr noch ocrad liefern bei mir Erkennungsraten von mehr als 90% unter Idealbedingungen.

Damit dauert die Bearbeitung der Ergebnisse oft länger als das Abtippen – vor allem weil a und o, l und 1 sowie in bzw. rn und m Fehler auch beim Korrekturlesen nur schwer zu finden sind, wenn man den Text schon kennt.

Dabei würde mit kooka eine völlig ausreichende Oberfläche für OCR zur Verfügung stehen, die bis auf Mehrfachauswahlen schon fast alles mitbringt, was man im OCR Alltag als Pauker braucht.

sudo apt-get install kooka ocrad gocr

Unter Hardy und Gnome nistet sich kooka dann im Menü unter /Anwendungen /Grafik ein.

bildschirmfoto

Der Scan erfolgt aus der Oberfläche von kooka heraus.

bildschirmfoto-1

Bei der ersten Verwendung fragt kooka nach dem Standarddateiformat, in dem die Scans in einer Art „internen Speicher“ vorrätig gehalten werden sollen.

bildschirmfoto-2

Nach einer einfachen Auswahl des zu übersetzenden Bildbereichs mit der Maus kann das OCR durch Klick auf das entsprechende Icon auch einfach gestartet werden – hier mit ocrad.

bildschirmfoto-3

Nach kurzer Zeit wird ein Textfensterchen mit dem Plaintextergebnissen eingeblendet. Ein Klick in das Fenster gefolgt von [Strg] [A] und [Strg] [C] sowie ein folgender Klick in die Textverarbeitung und [Strg] [V] erledigt den Rest. Jetzt darf Korrektur gelesen werden – und das nicht zu knapp.

bildschirmfoto-4

Völlig unerträgliche Ergebnisse werden IMHO mit gocr erzeugt, das als Erkennungsengine ebenfalls eingestellt werden kann. Die Installation von ocrad lohnt also. Außerdem ist ocrad meist um Einiges schneller als gocr.

Was weder unter gocr noch ocrad funktioniert ist die Erkennung von Layouts. Selbst einfachste Tabellen, wie im Bild oben leidlich zu erkennen, bringen beide OCR völlig aus dem Tritt. Was relativ gut hinhaut ist, wenn man etwas Glück hat, die Erkennung von reinen Textblöcken bei serifenlosen Schriften mit mindestens 12 Pixel Schriftgröße.

Im Alltag setze ich an dieser Stelle auf eine VM unter Windows 98 SE oder auch Windows XP. Für beide Betriebssysteme habe ich schließlich Lizenzen irgendwann im Laufe meiner Computergeschichte erworben, warum sollte ich diese verkommen lassen?

In diese VM habe ich mir einen FineReader 6 installiert, den ich einst bei pearl für 5€ kaufte (oder war es bei zweitausendeins? Ich weiß es nicht mehr). Der Scan erfolgt unter Linux mit Sane, die Bilder werden in einem Tauschverzeichnis abgelegt auf das aus der VM heraus zugegriffen werden kann. Die Ergebnisse des FineReader – meist erstelle ich eine DOC und eine TXT Datei – landen dann ebenfalls wieder im Tauschverzeichnis. Die Weiterverarbeitung erfolgt dann in OpenOffice. Sobald das Endergebnis fertig ist, lösche ich die Inhalte im Tauschverzeichnis. Insgesamt recht umständlich – aber im Alltag viel viel schneller und weniger Nervenaufreibend als die Arbeit mit kooka und ocrad / gocr. Leider habe ich es bisher nicht hinbekommen den FineReader unter Wine zur Mitarbeit zu überreden – das wäre eindeutig die bessere Lösung. Andere waren da erfolgreicher: WineHQ

Bis tesseract soweit ist werde ich wohl bei diesem workaround bleiben müssen. Leider.