ubuntuusers.de

OCR

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.10 (Oracular Oriole)
Antworten |

Yabba-Dabba-Doo

Anmeldungsdatum:
7. Januar 2015

Beiträge: 445

Ich habe mich mal wieder über ein nicht funktionierendes OCR Programm geärgert. Ich habe schon einige ausprobiert, aber das Ergebnis ist immer das gleiche, unbrauchbar! Es betrifft kommerzielle und Open-Source-Programme, gleichermaßen. Vor ca. 30 Jahren habe ich das erste Mal ein OCR-Programm eingesetzt, das Ergebnis sah fast genauso aus wie heute. Wenn man es nicht kann, dann soll man es einfach lassen.

Ich hatte einen Versuchstext von "Lorem ipsum" einen Screenshot davon gemacht und "OCRFeeder" mit "Tesseract" installiert.

Das war der Versuchstext

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Und das, was erkannt wurde.

9 @ #4 ©) BE Sonntag, 1. Dezember, 07:01

Gibt ein paar kleine Unterschiede, nicht wahr?

https://wiki.ubuntuusers.de/OCRFeeder/

https://github.com/tesseract-ocr/tesseract

Bilder

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4659

Meine OCR Installation liest dies aus, aus dem Zitat mit den schräg gekippten Buchstaben:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor in-
vidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum do-
lor sit amet.

Das ORC kommt bei mir hier frisch aus dem GIT mit meinem Bash alias auf mein System:

alias dpscreenocrneu='INSTALLATIONSDISK=$HOME/Installationsdisk && \
                                DPSCREENOCR_BASE=$INSTALLATIONSDISK/dpScreenOCR && \
                                DPSCREENOCR_SRC=$DPSCREENOCR_BASE/dpscreenocr && \
                                [ ! -d $INSTALLATIONSDISK ] && mkdir -pv $INSTALLATIONSDISK || echo "$INSTALLATIONSDISK exists" && \
                                [ ! -d $DPSCREENOCR_BASE ] && mkdir -pv $DPSCREENOCR_BASE || echo "$DPSCREENOCR_BASE exists" && \
                                sudo apt-get install cmake make pkg-config g++ qtbase5-dev libtesseract-dev libx11-dev libxext-dev gettext pandoc libgettextpo-dev && \
                                echo "apt-get OK" || echo "apt-get Error" && \
                                [ ! -d $DPSCREENOCR_SRC ] && git clone https://github.com/danpla/dpscreenocr.git $DPSCREENOCR_SRC && \
                                printf "\n \033[45m\033[1;36m==> dpScreenOCR Sourcecode cloned. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" || \
                                printf "\n \033[45m\033[1;36m==> dpScreenOCR Sourcecode found. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                printf "\n \033[45m\033[1;36m==> Update dpScreenOCR Sourcecode. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                git -C $DPSCREENOCR_SRC pull && echo "git pull done." || echo "No git pull." && \
                                printf "\n \033[45m\033[1;36m==> Clear build directory. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                [ -d $DPSCREENOCR_SRC/build ] && yes | sudo rm -fr $DPSCREENOCR_SRC/build && \
                                echo "Builddir removed, OK" || echo "No need remove Builddir, OK." && \
                                [ ! -d $DPSCREENO_SRC/build ] && mkdir -v $DPSCREENOCR_SRC/build && \
                                sudo mount -v tmpfs $DPSCREENOCR_SRC/build -t tmpfs -o mode=777 && \
                                printf "\n \033[45m\033[1;36m==> Config dpScreenOCR for build. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -S $DPSCREENOCR_SRC -B $DPSCREENOCR_SRC/build -G Ninja && \
                                printf "\n \033[45m\033[1;36m==> Compile dpScreenOCR. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                time ninja -j $(nproc --all) -C $DPSCREENOCR_SRC/build && \
                                printf "\n \033[45m\033[1;36m==> Remove old dpScreenOCR. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                [ -f $DPSCREENOCR_BASE/install_manifest.txt ] && xargs sudo rm -fv < $DPSCREENOCR_BASE/install_manifest.txt || \
                                echo "No old install_manifest.txt found" && \
                                printf "\n \033[45m\033[1;36m==> Install dpScreenOCR. \033[0m\033[42m\033[1;36m  ==> ... \033[0m \n \n" && \
                                sudo porg -lp dpscreenocr "ninja -j $(nproc --all) -C $DPSCREENOCR_SRC/build install" && \
                                cp -v $DPSCREENOCR_SRC/build/install_manifest.txt $DPSCREENOCR_BASE/install_manifest.txt && \
                                printf "\n \033[45m\033[1;36m==> Install dpScreenOCR successful. \033[0m\033[42m\033[1;36m  ==> Done.\033[0m \n \n" && \
                                printf "\n \033[45m\033[1;36m==> dpScreenOCR deinstall: \033[0m\033[43m\033[1;36m sudo porg -rv dpscreenocr   <== \033[0m \n \n" || \
                                printf "\n \033[41m\033[1;36m==> Configure or install dpScreenOCR failed.\033[0m \n \n" ; \
                                sudo umount -fv $DPSCREENOCR_SRC/build ; \
                                [ -d $DPSCREENOCR_SRC/build ] && yes | sudo rm -fr $DPSCREENOCR_SRC/build && echo "Builddir cleaned." || echo "Builddir was clean." ; \
                                cd $HOME'

Der nötige Klimbim zum compilern muss natürlich zuvor installiert werden.

Aus Youtube Videos auslesen kann diese Anwendung auch. 😎 👍

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7776

Screenshot mit dünnem Text / schlechtem Kontrast / vielen störenden Elementen.

Zuschneiden und Schwarzweiss und es kommt was raus:

$ tesseract -l lat loremipsum.png output
$ cat output.txt
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et
ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Die meisten OCR Programme wollen ja noch mit dem Wörterbuch nachkorrigieren, was bei Lorem Ipsum Fantasietext eher nicht funktioniert oder schlicht falsche Korrekturen einfügt.

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 4659

Mit meiner dpScreenOCR Installation kommt das bei blassen und dünnem Text aus dem Screenshot raus:

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed dlam nonumy eirmod tempor invidunt ut
labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et
ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Ach ja, ein PPA für dpScreenOCR gib es auch für Faule:

Im Wiki gibt es auch einen Artikel dazu:

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7776

Kenne das Programm nicht, aber wenn du da die gewünschte Region von Hand markierst, ist das eben genau die Hilfe, die ein 0815 OCR Tool braucht.

Auf den gesamten Screenshot angewendet, erkennt Tesseract diesen Textabschnitt schlichtweg gar nicht. Das hängt sich dann an der Überschrift und anderen Elementen fest.

Yabba-Dabba-Doo

(Themenstarter)

Anmeldungsdatum:
7. Januar 2015

Beiträge: 445

Kenne das Programm nicht, aber wenn du da die gewünschte Region von Hand markierst, ist das eben genau die Hilfe, die ein 0815 OCR Tool braucht.

Dummerweise gibt es diese Funktion aber nicht. Du kannst nur Bild analysieren auswählen, danach werden die Stellen markiert, an denen das Programm glaubt Text erkannt zu haben und dann wird der vermeintlich erkannte Text ausgegeben. Siehe Ergebnis oben.

Ergebnis unbrauchbar!

Antworten |