Forum: PC-Programmierung optischer Marker zur Lageerkennung von Scans


von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich programmiere an einer Software, die dazu dienen soll, größere Mengen 
gescannter PDF-Dokumente zu verarbeiten. Zur Analyse kann ich die 
Dateien mit einer Library zu Pixelgrafiken rendern, was ich mit 200dpi 
(entspricht der Scan-Auflösung) tue, so dass ich auf diese Weise an den 
"Pixel-Inhalt" als internes Grafik-Objekt herankomme. Bisher sind nur 
Test-Mengen gescannt, es soll erst demnächst richtig losgehen.

Mit einer weiteren Lib gelingt es mir in der Grafik, auf den Dokumenten 
mitgescannte Aufkleber mit QR-Code ausfindig zu machen und diese zu 
decodieren. Soweit so gut.

Was mir aber bisher nicht gelingt, ist es, die Orientierung der 
Dokumente herauszufinden. Der QR-Decoder-Lib ist die Lage des Codes 
völlig egal, von dort bekomme ich nur den Textinhalt (wird später zum 
Namen der Datei) UND die Koordinaten in Pixeln, an der sich der erkannte 
QR-Code in der Pixelgrafik befindet.

Die Prüfung auf Hoch- oder Querformat bringt auch nix, beides kann 
möglich sein.

Ich suche nun nach einer Idee für einen optischen Marker, den man neben 
den QR-Code mitdrucken kann (dessen Koordinaten habe ich ja), bei dem es 
möglich wäre, mit rel. einfachen Pixeltest-Poutinen, allerdings 
möglichst deutlich unterhalb von "OpenCV" o.ä. die Orientierung zu 
erkennen. Die Aufkleber mit den QR-Codes sind im Scan gut Schwarz/Weiß, 
ich kann auch den Kontrast in der Grafik noch etwas anziehen, so dass 
keine aufwändige Vorverarbeitung notwendig erscheint. Lediglich die 
Auflösung ist mit 200dpi nicht sonderlich groß.

Alternative Idee: Ich habe auch Zugriff auf Tesseract-OCR. Wenn ich 
einen (zuvor in der Grafik zu findenden) Ausschnitt mit einem bekannten 
Testtext jeweils um 90 Grad drehe und an das OCR "verfüttere", sollte 
mir doch die Version mit den meisten richtig erkannten Zeichen mir die 
Lage verraten, oder?

von Michael G. (mjgraf)


Lesenswert?

Hat jedes Dokument einen QR-Code, und wie hat es den bekommen? QR-Codes 
enthalten ja schon Orientierungsinformation -- drei Ecken (oben links, 
oben rechts, unten links) enthalten große Positionsmarker, die vierte 
(unten rechts) nur einen Orientierungsmarker. Deine 
QR-Decoder-Bibliothek wertet diese Information bereits aus, wenn sie den 
QR-Code liest. Wenn man sich prozessual darauf verlassen könnte, dass 
der QR-Code immer richtig herum aufgebracht wird, könnte man daraus auch 
die Orientierung der Seite lesen.

von Lks (Gast)


Lesenswert?

Ein QR Code hat eine Orientierung. Die würde ich hernehmen. Welches ist 
denn die "weitere" Lib zur QR Code detektion. Bekommst du da neben der 
Position ggf. auch die Position der Alignment Pattern. Falls nicht, wie 
wäre es bspw. mit 
https://boofcv.org/index.php?title=Example_Detect_QR_Code als Lib.

von Flip (Gast)


Lesenswert?

der Qr Code enthält die gesuchten flächen schon. nicht neben dem code, 
sondern im Codefeld.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich verwende die ZXing-Lib. Aber die liefert keine Orientierungsdaten, 
nur den Inhalt.

von georg (Gast)


Lesenswert?

Frank E. schrieb:
> Ich suche nun nach einer Idee für einen optischen Marker, den man neben
> den QR-Code mitdrucken kann

Irgendwas verstehe ich da nicht: du druckst Dokumente aus, um sie dann 
einzuscannen?

Georg

von Michael G. (mjgraf)


Lesenswert?

Ich vermute: Er druckt Aufkleber aus, die auf Dokumente geklebt werden 
(laufende Nummern?), die dann eingescannt werden.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Michael G. schrieb:
> Ich vermute: Er druckt Aufkleber aus, die auf Dokumente geklebt
> werden
> (laufende Nummern?), die dann eingescannt werden.

Genau so ist es. Es handelt sich um technische Zeichnungen aus Ordnern, 
die danach geschreddert und entsorgt werden sollen. Die Aufkleber 
enthalten die Bezeichnung des Ordners aus dem sie stammen (z.B. 
"RK.130-10-xxx" und eine laufende Nummer).
Zwar kann ich davon ausgehen, dass die Aufkleber immer in der richtigen 
Orientierung auf die  Zeichungn aufgeklebt sind, aber da die Zeichnungen 
häufig auch recht merkwürdige Formate aufweisen, ist keineswegs sicher, 
dass sie immer in der richtigen Orientierung durch den 
Großformat-Scanner gelaufen sind.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Haben alle Zeichnungen ein Textfeld? (vielleicht sogar optimalerweise 
mit einem gleichbleibenden Symbol, z.B. Projektionsart).

Im Textfeld dürfte die Orientierung des Textes ja immer gleich sein und 
es ist rechts unten.

: Bearbeitet durch User
von Designer (Gast)


Lesenswert?

Frank E. schrieb:
> Ich programmiere an einer Software, die dazu dienen soll, größere Mengen
> gescannter PDF-Dokumente zu verarbeiten. Zur Analyse kann ich die
> Dateien mit einer Library zu Pixelgrafiken rendern, was ich mit 200dpi
> (entspricht der Scan-Auflösung) tue, so dass ich auf diese Weise an den
> "Pixel-Inhalt" als internes Grafik-Objekt herankomme. Bisher sind nur
> Test-Mengen gescannt, es soll erst demnächst richtig losgehen.


Dann poste uns doch mal den Quellcode! Bin daran auch iunteressiert

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Walter T. schrieb:
> Haben alle Zeichnungen ein Textfeld? (vielleicht sogar
> optimalerweise
> mit einem gleichbleibenden Symbol, z.B. Projektionsart).
>
> Im Textfeld dürfte die Orientierung des Textes ja immer gleich sein und
> es ist rechts unten.

Die Zeichnungen haben fast alle ein Textfeld. Aber sie stammen teilweise 
bis aus den 1970ern, das ist keinesfalls immer einheitlich und teilweise 
auch handgeschrieben. Im Gegensatz zu den Aufklebern haben die 
Zeichnugen auch oft hundsmisserablen Kontrast (tw. "Blaupausen", gefühlt 
5. Generation ...) - das wird bestimmt nix.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Designer schrieb:
> Frank E. schrieb:
>> Ich programmiere an einer Software, die dazu dienen soll
>
> Dann poste uns doch mal den Quellcode! Bin daran auch iunteressiert

Eher nicht. Das Projekt ist in XOJO geschrieben, unter Verwendung der 
DynaPDF-Lib als Plugin, damit ist diese "nahtlos" in die Syntax 
integriert.

Früher habe ich die PDF mit Apache PDFBox gerendert, das ging auch, aber 
weil es sich um ein externes CLI-Tool handelt, war das wegen des 
ständigen Hin- und Her mit Programmaufruf, Argumente übergeben, warten 
bis Prozess zuende, laden des Pixelbildes ... einfach zu nervig und zu 
lahm. Mit DynaPDF habe ich ein geladenes A3-PDF in 1s mit 200dpi 
gerendert im Puffer ...

von sid (Gast)


Lesenswert?

Also für mich klingt das auch sehr nach "QR Aufkleber orientierung"
zunächst.. quasi als "vorauswahl"

Ich denke das wird 90% korrekt orientieren, die restlichen zehn Prozent 
werden vermutlich aber in der Tat schwierig, insbesondere bei schlechtem 
Kontrast in Verbingung mit Handschrift
(die ggf nichteinmal besonders sauber ist)

mein erster Ansatz wäre ich würde innerhalb der Testscans
nach dem jeweiligen Textfeld suchen
und dieses versuchen automatisch zu erkennen
(klassisch über Pixel.. [4 parallele Linien suchen die sich in einer 
Ecke des Bildes befinden] meist kannst Du sogar sagen in welchem 
ungefähren Abstand die Linien sein müssen)
oder über selbstlernende Mustererkennung
richtet man nach horizontalen Linien aus, hat man nur zwei 
Möglichkeiten.
Dokument korrekt, Dokument 180° gedreht

Nun kannst Du unten rechts positionierte Textfelder eigentlich getrost 
als korrekt orientiert annehmen. (würde ich tatsächlich)

In jedem anderen Fall würde ich den Bildausschnitt mit dem Textfeld
durch ein OCR jagen in der Hoffnung es kann lesen was da steht;
falls nicht um 180° drehen und nochmal versuchen (verifikation der 
Annahme)

und falls beides fehlschlägt dann wüsste ich nicht wie gross die Kanone 
sein müsste mi der Du auf den Plan schiessen willst..
oder Du schickst alle solche scans in den "nimm deine Augen"-Ordner
und orientierst sie von Hand.

'sid

von TR.0LL (Gast)


Lesenswert?

Frank E. schrieb:
> Ich verwende die ZXing-Lib. Aber die liefert keine Orientierungsdaten,
> nur den Inhalt.

Warum nicht die Lib forken und die Funktion(en) hinzufügen?

von sid (Gast)


Lesenswert?

.hhmmm
Probier es mal aus.. mach von den Testscans thumbnails..
(300x300 px max oder so)
markier die position des textfeldes in den Scans (nicht im Bild, im 
Dateinamen __ könnte übrigens auch schon im QR gestanden haben ..müsste 
man nur n handheld printer für benutzen dann...zu spät)
und lass n neuronales Netz drüberlaufen..
ich denke mit dem thumb alleine kommt das nach ein paar Trainingsrunden 
schon auf volle Leistung.

'sid

PPS falls das nicht klappt und die Pläne noch nicht gescannt sind,
n Kunde von mir hat in die rechte obere Ecke seiner scans immer einen 
roten Punkt geklebt (Zweckform du weisst schon)
der lässt sich super in scans wiederfinden und man orientiert nach dem 
Punkt.
Ja ich weiss.. lästig aber wenn Du den unten rechts ins Textfeld klebst
machst Du's dem Code leichter ;)

von M.M.M (Gast)


Lesenswert?

TR.0LL schrieb:
> Frank E. schrieb:
>> Ich verwende die ZXing-Lib. Aber die liefert keine Orientierungsdaten,
>> nur den Inhalt.
>
> Warum nicht die Lib forken und die Funktion(en) hinzufügen?

Nunja, ohne die Lib zu kennen: Da muß man nix forken oder hinzufügen. So 
eine Funktion wird's geben, ganz sicher. Da muß der TE halt mal genau 
hinschauen.

MfG

von Kleiner Noobi (Gast)


Lesenswert?

https://groups.google.com/forum/m/#!forum/tesseract-ocr

Suche mal nach Orientation. Dort werden mehrere Methoden besprochen.

Mit der richtigen Einstellung sollte die Orientierung automatisch 
erkannt werden.


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

von Egon D. (Gast)


Lesenswert?

Frank E. schrieb:

> Ich suche nun nach einer Idee für einen optischen Marker,
> den man neben den QR-Code mitdrucken kann (dessen
> Koordinaten habe ich ja), bei dem es möglich wäre, mit
> rel. einfachen Pixeltest-Poutinen, allerdings möglichst
> deutlich unterhalb von "OpenCV" o.ä. die Orientierung zu
> erkennen.

Einfach DREI (identische oder verschiedene) QR-Codes auf
die Zeichnung kleben: Einen in die linke obere Ecke, einen
in die rechte obere Ecke, einen in die linke untere Ecke.

Die Library liefert Dir die Koordinaten dreier Punkte;
daraus kannst Du die drei Winkel des Dreieckes berechnen.
Der Winkel, der am nächsten an 90° liegt, ist links oben.

von sid (Gast)


Lesenswert?

Egon D. schrieb:
> Einfach DREI (identische oder verschiedene) QR-Codes auf
> die Zeichnung kleben: Einen in die linke obere Ecke, einen
> in die rechte obere Ecke, einen in die linke untere Ecke.

wie jetzt?
drei aufkleber und winkel sind komplett unnötig!

Dir ist schon klar dass ein QR selbst Orientierungsmarken hat, oder?
wenn man EINEN QR ausgerichtet aufklebt ist alles tutti!
ist nur leider nicht zwangsläufig gegeben wenn ich TO richtig verstehe.

mit EINEM "mustererkennbaren" Aufkleber (dazu reicht eine vordefinierte 
farbe und grösse.. [rote zweckform punkte zb])
an definierter Stelle (logisches Rechts unten zB) lässt sich ein Bild 
drehen
und ja der zweckform punkt ist schon ein zweiter aufkleber leider..

Aber auch zwei irgendwelchen Aufkleber (rechts oben, rechts unten)
reichen um ein Bild zu drehen..
Du müsstest es in beiden Fällen spiegeln um eine Fehlorientierung zu 
erzeugen.

Aaaaber und das ist das worauf ich ja schon hinauswollte..
ich bin nahezu sicher, dass jedes einigermassen trainierte 
erkennungsnetz das Schriftfeld erkennen kann selbst in runtergerechneten 
thumbnails.
nichtmal besonders sensationeller Kontrast dürfte erforderlich sein,
nur ein paar hundert Trainingbilder
bei kleinerer Testmenge einige Hundert durchläufe in dem man alle 
thumbnails per zufall um 0,90,180,270 grad drehen lässt zwischen den 
durchläufen um etwas mehr "variation" zu haben.. im idealfall kontrast 
runter, rauf, farbsättigung, invertierte Farben, spiegeln etc...

aber ja n neuronales Netz zu schreiben und zu trainieren mag eventuell 
overkill sein,
deswegen ja der bunte Zweckform Klebepunkt.. banal, leicht zu finden und 
sofern man den immer in die Nähe des textfeldes klebt ist man schon fast 
durch mit der Nummer ;)

'sid

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Erstmal danke für die vielen Tips, aber ...

- die von mir verwedete QR-Lib liefert keine Orientierungs-Infos nach 
draußen (das nur nochmal für die, die das immer wieder empfehlen). Das 
das irgendwo intern eine Rolle spielt und abgreifbar sein müsste/sollte 
ist mir auch klar, is aber nich

- es ist keine Zeit, mehr als einen Aufkleber auf die Zeichnungen zu 
machen, dazu sind es auch zu viele

- die Zeichnungen sollen in Graustufen archiviert werden, weshalb 
farbige Punkte erstmal nicht möglich sind. Allerding prüfe ich die Idee, 
die Rohscans zunächst doch in RGB zu erstellen und nach der 
"erkennungsdienstlichen Behandlung" das PDF nach Graustufen zu 
konvertieren.

- die Beschriftungsfelder der Zeichnugnen sind einfach zu 
unterschiedlich, ich glaube nicht an eine Erkennung mit vernünftigem 
Aufwand

- ich werde zunächst eine weiter oben schonmal geäußerte Idee 
ausprobieren: Neben dem QR-Code (der ist nur 2x2cm) drucke ich einen 
Testtext mit und checke den per OCR, indem ich den Grafik-Ausschitt in 
alle 4 Richtungen drehe. Der Versuch mit den meisten richtig erkannten 
Zeichen (die, die da stehen, kenne ich ja vorher - im Gegensatz zu dem, 
was z.B. in der Zeichnung steht), wird mir dann wohl die richtige 
Orientierung liefern ...

: Bearbeitet durch User
von Egon D. (Gast)


Lesenswert?

Frank E. schrieb:

> - es ist keine Zeit, mehr als einen Aufkleber auf
> die Zeichnungen zu machen, dazu sind es auch zu
> viele

Wundert mich nicht.
Warum habe ich überhaupt geantwortet...

von Wolfgang (Gast)


Lesenswert?

Frank E. schrieb:
> - die Beschriftungsfelder der Zeichnugnen sind einfach zu
> unterschiedlich, ich glaube nicht an eine Erkennung mit vernünftigem
> Aufwand

Saßen die früher nicht direkt in einer Ecke der Zeichnung?

von MWS (Gast)


Lesenswert?

Frank E. schrieb:
> Ich verwende die ZXing-Lib. Aber die liefert keine
> Orientierungsdaten,
> nur den Inhalt.

Die ZXing 3.4.0 API beschreibt unter DetectorResult:
> Encapsulates the result of detecting a barcode in an image. This includes
> the raw matrix of black/white pixels corresponding to the barcode, and
> possibly points of interest in the image, like the location of finder
> patterns or corners of the barcode in the image.

"location" hört sich vielversprechend an.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

MWS schrieb:
> Frank E. schrieb:
>> Ich verwende die ZXing-Lib. Aber die liefert keine
>> Orientierungsdaten,
>> nur den Inhalt.
>
> Die ZXing 3.4.0 API beschreibt unter DetectorResult:
>> Encapsulates the result of detecting a barcode in an image. This includes
>> the raw matrix of black/white pixels corresponding to the barcode, and
>> possibly points of interest in the image, like the location of finder
>> patterns or corners of the barcode in the image.
>
> "location" hört sich vielversprechend an.

Ja, das sind die Koordinaten, an denen der Barcode in der großen 
Pixelgrafik gefunden wurde. Leider kann man den QR-Aufkleber nicht immer 
in die geiche Ecke, den gleichen Quadranten oder in die Nähe des 
Textfeldes kleben, weil die Zeichungen oft so voll sind, dass dann Teile 
davon verdeckt wären. Ansonsten wäre es ja zu einfach :-)

: Bearbeitet durch User
von MWS (Gast)


Lesenswert?

> like the location of finder
> patterns or corners of the barcode in the image.

Das hörte sich nach mehreren Koordinaten an, mit denen eine 
Orientierungsbestimmung möglich wäre.

von Maxe (Gast)


Angehängte Dateien:

Lesenswert?

Angehaengt mal ein QR-Code. Die Lib sagt dir also wo genau der Code auf 
dem Blatt zu finden ist. Dann kann es doch nicht mehr schwer sein, die 
drei Kaestchen und damit die Ausrichtung aufzuspueren? Zumindest nicht 
schwieriger, wie irgendwelche anderen Symbole, die man neben hin druckt.

von sid (Gast)


Lesenswert?

Frank E. schrieb:
> - es ist keine Zeit, mehr als einen Aufkleber auf die Zeichnungen zu
> machen, dazu sind es auch zu viele

Frank E. schrieb:
> - ich werde zunächst eine weiter oben schonmal geäußerte Idee
> ausprobieren: Neben dem QR-Code (der ist nur 2x2cm) drucke ich einen
> Testtext mit und checke den per OCR,

Ahaa, also sind die Aufkleber noch nicht gedruckt..
das ist doch suuper..

kannst Du die "klebeanweisung" geben den QR Aufkleber unten rechts zu 
kleben? (oder oben links wie Du willst...)

dann reicht das völlig.. da Du die Position des QR Aufklebers ja gesagt 
bekommst,
reicht das zusammen mit den Pixeln doch schon..

teile die vertikale und horizontale Bildgrösse durch zwei
und Du hast vier Bildsektoren, mit den Pixelpositionen des QR 
Aufklebers,
weisst Du also in welchem der vier Sektoren der QR klebt.. das ist unten 
rechts (oder was auch immer Du vordefiniert hast... da unten rechts das 
textfeld ist, macht das ma meisten Sinn mMn so geht am wenigsten 
Zeichnung verloren schlimmstenfalls)

also pseudocode
1
// Scaninfos 'fake'
2
img_width = 2000;
3
img_height = 4000;
4
qr_left = 400;
5
qr_top = 238;
6
7
// damit alleine und der Info dass der Aufkleber unten rechts sein sollte:
8
if (qr_left < img_width/2 && qr_top < img_height/2) rotateImg(180);
9
else if (qr_left > img_width/2 && qr_top > img_height/2) doNothing();
10
else throwWarning();

Na? ist das banal oder ja?
Die Anweisung den QR aufrecht zu kleben ist vermutlich ähnlich 
"anstrengend" wie darum zu bitten ihn "unten rechts" unterzubringen, 
oder?
und Du sparst dir jedwede Texterkennung.

'sid

von Rolf M. (rmagnus)


Lesenswert?

Frank E. schrieb:
>>> possibly points of interest in the image, like the location of finder
>>> patterns or corners of the barcode in the image.
>>
>> "location" hört sich vielversprechend an.
>
> Ja, das sind die Koordinaten, an denen der Barcode in der großen
> Pixelgrafik gefunden wurde.

"finder patterns" sind die großen Quadrate in den Ecken des QR-Codes, 
nicht der komplette QR-Code.

In der Doku der class FinderPatternInfo  steht:

"Encapsulates information about finder patterns in an image, including 
the location of the three finder patterns, and their estimated module 
size."
Entsprechend gibt es die Methoden:
FinderPattern   getBottomLeft()
FinderPattern   getTopLeft()
FinderPattern   getTopRight()

Also auch wenn du noch so vehement behauptest, dass es das nicht gibt, 
glaube ich dir das nicht.

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

sid schrieb:
> Frank E. schrieb:
>> - es ist keine Zeit, mehr als einen Aufkleber auf die Zeichnungen zu
>> machen, dazu sind es auch zu viele
>
> Frank E. schrieb:
>> - ich werde zunächst eine weiter oben schonmal geäußerte Idee
>> ausprobieren: Neben dem QR-Code (der ist nur 2x2cm) drucke ich einen
>> Testtext mit und checke den per OCR,
>
> Ahaa, also sind die Aufkleber noch nicht gedruckt..
> das ist doch suuper..
>
> kannst Du die "klebeanweisung" geben den QR Aufkleber unten rechts zu
> kleben? (oder oben links wie Du willst...)
>

Nein, das kann nicht gewärleistet werden, weil die Zeichnungen teilweise 
so "voll" sind, dass der Aufkleber (brutto 6x3cm) Inhalte verdecken 
würde. Also wird es auch Aufkleber an anderen Stellen/in anderen 
Quadranten geben müssen.

von georg (Gast)


Lesenswert?

Frank E. schrieb:
> Aufkleber (brutto 6x3cm)

Du hättest ja gleich sagen können, dass du ganze Postkarten aufkleben 
willst. Du erklärst uns bestimmt in einer weiteren Salamischeibe warum 
der QRCode so riesig sein muss. Aber verrate bloss nicht zuviel damit du 
noch weitere Informationen in Reserve hast und der Thread noch ein paar 
Tage weitergeht.

Georg

von Oliver S. (oliverso)


Lesenswert?

Frank E. schrieb:
> QR-Code (der ist nur 2x2cm)

georg schrieb:
> Frank E. schrieb:
>> Aufkleber (brutto 6x3cm)
>
> Du hättest ja gleich sagen können, dass du ganze Postkarten aufkleben
> willst.

Besser, was da noch alles auf dem Aufkleber drauf ist, ohne das es sich 
zur Lageerkennung nutzen lässt.

Aber das Thema ist durch. Die lib bietet alles, was man braucht, wer das 
nicht nutzen will oder kann, muß mit seinen Problemen leben.

Oliver

von sid (Gast)


Lesenswert?

Frank E. schrieb:
> Nein, das kann nicht gewärleistet werden, weil die Zeichnungen teilweise
> so "voll" sind, dass der Aufkleber (brutto 6x3cm) Inhalte verdecken
> würde. Also wird es auch Aufkleber an anderen Stellen/in anderen
> Quadranten geben müssen.

Naja deswegen sollte man den Aufkleber ja im Textfeld...
...
aber ich wiederhole mich

mach doch vier Aufkleber pro Zeichung
codiere die position im QR code (OL,OR,UL,UR)
und schreib die position auf den 6x3 (platz ist ja genug!)
dann kannste den Aufkleberschergen bitten den passenden Aufkleber zu 
benutzen je nach Quadrant..
aber das wird ja erfahrungsgemäss auch wieder gegen irgend'ne Ausrede 
verstossen.

und mit riesen aufklebern (6x3.. was benutzt Du versandetiketten??)
und vollgemalten Zeichnungsögen ohne Platz wirst Du vermutlich auch die 
Orientierung der Aufkleber in der Zeichnung nicht gewährleisten können,
also fallen OCR und Positionsmarken auch aus...

Was hast Du eigentlich gegen kleinere Aufkleber (1x1 reicht völlig)
die passen in die vollsten Zeichnungen, und Du kannst sie and den 
äussersten Rand kleben lassen (zB rechts oder unten) und fertig.
Aber nee warte.. jaja auch da fällt dir sicherlich noch was zu ein.

Am ende wirst Du nichtmal gewährleisten können dass der richtige QR auf 
der Zeichnung bappt.
dufte Sache das.
N QR fähiger Dymo ist vermutlich das was Du am Ende brauchen wirst, 
damit Scherge den Aufkleber vor Ort mundmalen kann.

'sid

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

georg schrieb:
> Frank E. schrieb:
>> Aufkleber (brutto 6x3cm)
>
> Du hättest ja gleich sagen können, dass du ganze Postkarten aufkleben
> willst. Du erklärst uns bestimmt in einer weiteren Salamischeibe warum
> der QRCode so riesig sein muss. Aber verrate bloss nicht zuviel damit du
> noch weitere Informationen in Reserve hast und der Thread noch ein paar
> Tage weitergeht.
>
> Georg

Was ist bitte an einem Aufkleber 6x3cm "riesig"? Die kommen bei Bedarf 
aus einem Zebra-Etikettendrucker, gesteuert von der Auftragsdatenbank. 
Sie enthalten den Namen des Ordners und eine laufende Nummer. Außerdem 
enthalten sie diese Angaben zusätzlich im Klartext, damit beim Handling 
vor und nach dem Scannen draufgesehen werden kann, ohne erst einen 
Reader zu zücken. Die QR-Codes dienen zuerst der Benennung der Datei 
beim Handling am Großformatscanner ... da sind Hilfskräfte zugange, 
keine Philatelisten ...

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

sid schrieb:
> Frank E. schrieb:
>> Nein, das kann nicht gewärleistet werden, weil die Zeichnungen teilweise
>> so "voll" sind, dass der Aufkleber (brutto 6x3cm) Inhalte verdecken
>> würde. Also wird es auch Aufkleber an anderen Stellen/in anderen
>> Quadranten geben müssen.
>

> Am ende wirst Du nichtmal gewährleisten können dass der richtige QR auf
> der Zeichnung bappt.
> dufte Sache das.
> N QR fähiger Dymo ist vermutlich das was Du am Ende brauchen wirst,
> damit Scherge den Aufkleber vor Ort mundmalen kann.


Etwas professioneller läuft das schon ab, es handelt sich um mehrere 
tausend Zeichnungen, die von studentischen Hilfskräften gehandled 
werden. Eine davon ist nur damit beschäftigt, die Ordner vorher 
durchzusehen, und in A4, A3  und größeres zu separieren. Bei jeder 
Entnahme einer Zeichnung aus dem A4-Block wird on demand ein 
Etikettenpärchen per Zebra LP2824 aus der Auftragsdatenbank abgerufen. 
Ein Etikett kommt auf die vorherige Seite im A4-Bereich und eines auf 
die Zeichung. Damit wird diese nach dem Scannen dort wieder eingefügt. 
Die A4-Dateien werden en bloc in einem HP-Duplex-Dokumentenscanner 
durchgezogen und danch sofort manuell auftragsgemäß benannt. Die 
Zeichnungen werden einzeln am Großformatscanner verarbeitet, dabei dient 
das Etikett der Benennung der Datei, um die mauelle Eingabe zu umgehen 
...

Um nochmal auf die ursprüngliche Frage zurückzukommen. Diese Zeichnungen 
habe teilweise extrem exotische Maße und es ist eben nicht möglich, 
diese immer in der gleichen Orientierung zu scannen. Manchmal sind sie 
z.B. auch zerknittert oder eigerissen, so dass sie nur gedreht durch den 
Einzugs-Scanner (Contex Chameleon TX36) laufen. Auch machen die Menschen 
Fehler ... deshalb wäre es nützlich, die Orientierung der Etiketten zu 
erkennen. Die Etiketten werden mit sehr hoher Wahrscheinlichkeit 
ordentlich in der korrekten Orientierung aufgeklebt.

: Bearbeitet durch User
von Leitmayr (Gast)


Lesenswert?

Frank E. schrieb:
> Diese Zeichnungen
> habe teilweise extrem exotische Maße

Technische Zeichnungen mit 'exotischen' Massen, was sollen denn das für 
TZ sein? Skizzen auf sechseckigen Bierdeckeln?

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Leitmayr schrieb:
> Frank E. schrieb:
>> Diese Zeichnungen
>> habe teilweise extrem exotische Maße
>
> Technische Zeichnungen mit 'exotischen' Massen, was sollen denn das für
> TZ sein? Skizzen auf sechseckigen Bierdeckeln?

Schrieb ich oben. Rechteckig sind sie schon. Extremfälle aber z.B. 30cm 
breit und 250cm lang, der Inhalt darauf mal im Quer- und mal im 
Hochformat. Viele aber auch ganz einfach DIN-Formate, A3 ... A0.

Teilweise merkwürdig gefaltet, mit Knicken oder auch Einreißungen (nicht 
viele, kommt aber vor). Oder zusammengeklebte "Kollagen" aus 
Handskizzen, Fotos, Faxen, techn. Zeichungen usw.

Es handelt sich um das Archiv eines Herstellers von Bau- und 
Messfahrzeugen aus dem Bereich Gleisbau, teilweise bis in die 1970er 
Jahre zurückreichend ...

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Leitmayr schrieb:
> Frank E. schrieb:
>> Diese Zeichnungen
>> habe teilweise extrem exotische Maße
>
> Technische Zeichnungen mit 'exotischen' Massen, was sollen denn das für
> TZ sein? Skizzen auf sechseckigen Bierdeckeln?

Besonders praxis-vertraut klingt deine Frage nicht. Du hast ja keine 
Ahnung, was sich in einem solchen Firmen-Archiv in über 50 Jahren alles 
anfindet ...

von sid (Gast)


Lesenswert?

Frank E. schrieb:
> Was ist bitte an einem Aufkleber 6x3cm "riesig"? Die kommen bei Bedarf
> aus einem Zebra-Etikettendrucker, gesteuert von der Auftragsdatenbank.

Frank E. schrieb:
> und in A4, A3  und größeres zu separieren

6x3 auf A4 ist riesig!.. aber egal, das hilft ja nicht weiter...

das hier
Frank E. schrieb:
> wird on demand ein
> Etikettenpärchen per Zebra LP2824 aus der Auftragsdatenbank abgerufen.
würde.. denn "on demand"
könnte der "demand" nicht den Quadranten enthalten?
"machma etikett für xyz1976-03-24 A3 Blatt5 unten links"
"und nu Blatt6 oben links" etc...
nur für den Fall dass Du beim wichtigsten Punkt widersprechen wolltest

Denn das hier ist wirklich das einzig "Nötige"
Frank E. schrieb:
> Die Etiketten werden mit sehr hoher Wahrscheinlichkeit
> ordentlich in der korrekten Orientierung aufgeklebt.

wenn dem so ist, ist alles geritzt,
die drei Marker und deren Position ist für Dich definitiv abrufbar und 
daraus lässt sich die Orientierung zweifelsfrei bestimmen, solange der 
Aufkleber weniger als 45° schief sitzt und das sollte ja machbar sein.

Frank E. schrieb:
> Ich verwende die ZXing-Lib.

Rolf sagte es schon...
Rolf M. schrieb:
> Entsprechend gibt es die Methoden:
> FinderPattern   getBottomLeft()
> FinderPattern   getTopLeft()
> FinderPattern   getTopRight()

hier der Quelltext auf github zum Vergleich
https://github.com/zxing/zxing/blob/master/core/src/main/java/com/google/zxing/qrcode/detector/FinderPatternInfo.java

und nu los :D

'sid

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

sid schrieb:
> Frank E. schrieb:
>> Was ist bitte an einem Aufkleber 6x3cm "riesig"? Die kommen bei Bedarf
>> aus einem Zebra-Etikettendrucker, gesteuert von der Auftragsdatenbank.
>
> Frank E. schrieb:
>> und in A4, A3  und größeres zu separieren
>
> 6x3 auf A4 ist riesig!.. aber egal, das hilft ja nicht weiter...
>

Die Aufkleber auf den A4 dienen nur dazu, die Herkunft der entnommenen 
Zeichnung zu markieren, hier spielen Position und Lage keine Rolle. 98% 
der A4-Vorlagen sind zudem einseitig, so dass Platz auf deren Rückseite 
kein Problem ist. Wirkliche Leerseiten werden später automatisch 
entfernt, die mit Aufklebern natürlich nicht.

Über den Rest deines Postings kann man durchaus nachdenken ...

: Bearbeitet durch User
von Minimalist (Gast)


Lesenswert?

Hi, ich denke mal, die ZXing lib gibt dir ein Ergebnis vom Type 
"Result", von dem du dann Result.getText() aufrufst.
Der Typ Result hat außerdem aber die Methoden:
1
getResultPoints
2
public ResultPoint[] getResultPoints()
3
Returns:
4
points related to the barcode in the image. These are typically points identifying finder patterns or the corners of the barcode. The exact meaning is specific to the type of barcode that was decoded.

Hier könnte die Reihenfolge der Punkte die Orientierung angeben? Wäre 
ein Versuch wert. Viel wichtiger ist aber:

1
getResultMetadata
2
public Map<ResultMetadataType,Object> getResultMetadata()
3
Returns:
4
Map mapping ResultMetadataType keys to values. May be null. This contains optional metadata about what was detected about the barcode, like orientation.

Im Feld Orientation sollte stehen, was du brauchst. Wäre auch seltsam, 
wenn diese Info nicht von der Lib geliefert würde.


steht alles hier:
https://htmlpreview.github.io/?https://raw.githubusercontent.com/zxing/zxing/master/docs/apidocs/com/google/zxing/Result.html


und hier:

https://htmlpreview.github.io/?https://raw.githubusercontent.com/zxing/zxing/master/docs/apidocs/com/google/zxing/ResultMetadataType.html

von weia (Gast)


Lesenswert?

Frank E. schrieb:
> Es handelt sich um technische Zeichnungen aus Ordnern,
> die danach geschreddert und entsorgt werden sollen.

Frank E. schrieb:
> Es handelt sich um das Archiv eines Herstellers von Bau- und
> Messfahrzeugen aus dem Bereich Gleisbau, teilweise bis in die 1970er
> Jahre zurückreichend ...

Bevor das alles unwiederbringlich vernichtet wird: Um wieviel Material 
handelt es sich denn? Grade bei solchem Material wird es denke ich 
einige Vereine geben, die das liebend gerne übernehmen würden. 
Vielleicht sogar das EBA selber.
Auch wenn man noch so technikvernarrt ist: Papier ist langzeitstabiler 
als digitales. Da wäre es schade, solche Nischenunterlagen zu 
vernichten.

von scan (Gast)


Lesenswert?

@Frank E.:   Dringend mal dieses Video ansehen, dauert zwar eine Stunde, 
aber der Inhalt hat es in sich. Jeder der scannt, sollte es kennen.

https://www.youtube.com/watch?v=7FeqF1-Z1g0

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.