-
VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht den Vorteil der am 31.10.2012 eingereichten vorläufigen United States Anmeldung mit der Seriennummer 61/721,012 mit dem Titel SYSTEM UND VERFAHREN ZUM AUFFINDEN VON SATTELPUNKTARTIGEN STRUKTUREN IN EINEM BILD UND BESTIMMEN VON INFORMATIONEN DARAUS, deren gesamte Offenbarung hierin durch Verweis integriert ist.
-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft ein maschinelles Bildverarbeitungssystem und genauer eine Bildverarbeitung die dazu verwendete wird Symbol-basierte ID-Informationen in einem erfassten Bild zu finden und zu decodieren.
-
HINTERGRUND DER ERFINDUNG
-
Bildverarbeitungssysteme, die Messungen, Kontrollen, Ausrichtungen von Objekten und/oder Decodieren von Symbolcodes oder Markierungen (z. B. eindimensionale (1D) und zwei-dimensionale (2D) Datenmatrix-Barcodes, QR-Codes, DotCodes, usw. – auch „IDs” genannt) werden in einem breiten Anwendungsbereich und in vielen Industrien verwendet. Diese Systeme basieren auf der Anwendung von Bildsensoren (auch „Imager” genannt), welche Bilder (in der Regel Graustufen- oder Farbbilder, und in ein, zwei oder drei Dimensionen) des Gegenstands oder Objekts erfassen, und diese erfassten Bilder mittels eines internen oder verbundenen Bildverarbeitungsprozessors verarbeiten. Typisch sind im Prozessor sowohl die Verarbeitungs-Hardware als auch die nicht flüchtigen Computer-lesbaren Programmanweisungen, welche einen oder mehrere Bildverarbeitungsprozesse durchführen, um eine gewünschte Ausgabe auf Grundlage der verarbeiteten Bildinformation zu erzeugen, enthalten. Diese Bildinformation wird in der Regel innerhalb einer Anordnung von Bildpunkten mit jeweils unterschiedlichen Farb- und/oder Graustufen-Intensitäten vorgesehen. In dem Beispiel eines ID-Lesegerätes (hier auch „Kamera” genannt) erfasst der Benutzer oder automatisierte Prozess ein Bild eines Objekts von dem angenommen wird, dass es ein oder mehrere Barcodes, 2D-Codes oder andere ID-Typen enthält. Das Bild wird verarbeitet, um Code-Merkmale zu identifizieren, die dann durch einen Decodiervorgang und/oder Prozessor decodiert werden, um die enthaltenen und durch den Code repräsentierten Daten zu erhalten. Diese Daten können alphanumerische und/oder andere Datenarten sein
-
Beim Decodieren von IDs besteh eine Aufgabe darin, Regionen des Gesamtbildes schnell aufzufinden, bei denen eine große Wahrscheinlichkeit besteht, dass sie solche ID-artigen Merkmale enthalten. Dieser Vorgang der „ID-Auffindung” erlaubt für zusätzliche Verfahren wie beispielsweise ID-Decodieren, die rechnerisch intensive sind, um die Konzentration auf jene Regionen zu richten, die wahrscheinliche ID-Ziele enthalten. Dadurch wird im Allgemeinen die Zeit zur Verarbeitung von IDs reduziert, was wiederum zu schnellerer und genauerer Ergebnisgeneration führt. Für den Fall verschiedener Formen von 2D-ID-Codes, wie DataMatrix, QR und DotCode kann das Auffinden von Code-Merkmalen zeitweise eine Herausfindung darstellen. In größeren Bildverarbeitungs-Anwendungen ist eine häufige Aufgabe das Aufsuchen und Analysieren bestimmter Bildmerkmale, um verschiedene Informationen, wie die relative Position dieses Merkmales innerhalb einer Szene und/oder Bewegung dieses Merkmals durch eine Szene abzuleiten.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Diese Erfindung überwindet Nachteile des Standes der Technik durch das Bereitstellen eines Systems und eines Verfahrens zur Auffindung von Merkmalen in Bildern, die sattelpunktartige Strukturen aufweisen, mittels rechnerisch relativ nieder-intensiver Prozesse, beispielsweise bestehend aus einem Antikorrelations-Prozess und damit verbundenem Antikorrelations-Kernel, der auf einer Vielzahl von Pixel-Nachbarschaften innerhalb einer interessierenden Region des Bilds arbeitet. Dieser Prozess ermöglicht die schnelle Analyse eines Gesamtbildes auf jede Art von Merkmalen, die sattelpunktartige Strukturen aufweist durch Bestimmen, ob der Antikorrelations-Kernel eine schwache oder starke Reaktion an verschiedenen Positionen innerhalb des Bildes erzeugt. Der Antikorrelations-Kernel soll eine starke Reaktion unabhängig von der Ausrichtung von sattelpunktartigen Strukturen erzeugen. Der Antikorrelations-Prozess untersucht eine Vielzahl an Pixel-Nachbarschaften im Bild und findet auf diese Weise alle sattelpunktartigen Strukturen unabhängig von deren Orientierung auf, da der Prozess winkelunabhängig ist. In verschiedenen Ausführungsformen sind die Strukturen dann gruppiert und verfeinert (zum Beispiel indem man sie in ein Raster platziert) in einer Bemühung, ID-Topologien innerhalb des Bildes zu finden. Aufgefundene ID-Informationen können direkt aus den Angaben von den gruppierten sattelpunktartigen Strukturen decodiert werden, oder in den meisten Fällen die ID-Merkmale aus dem Bild entlang etablierter Rasterlinien werden abgetastet und die Graustufen-Daten werden letztendlich decodiert.
-
In einer beispielhaften Ausführungsform enthält ein System und Verfahren zur Bestimmung der sattelpunktartigen Strukturen in einem Bild mit einem Bildverarbeitungsprozessor einen Antikorrelations-Prozess. Dieser Prozess ist so aufgebaut und angeordnet, dass er auf Nachbarschaften von Pixel innerhalb des Bildes arbeitet und dabei Sattelpunktkandidaten innerhalb der Nachbarschaften identifiziert. In jeder dieser Nachbarschaften wird ein gewisses Maß an Antikorrelation zwischen der Nachbarschaft und ihrer um 90 Grad gedrehten Kopie berechnet. Sattelpunktstrukturen neigen zu einer starken Antikorrelation mit sich selbst um 90 Grad gedreht, unabhängig von ihrer Ausrichtung relativ zum Pixelraster. Ein Sattelpunkt wird beispielsweise identifiziert, wenn die Reaktion des Antikorrelations-Kernels stärker als ein bestimmter Schwellwert, stärker als die Reaktion an benachbarte Positionen oder beides ist. Ein Bestätigungsprozess kann für jede der Nachbarschaften einen Kernel anwenden, der eine 180-Grad gedrehte Version jeder dieser diese Nachbarschaften definiert. Jeder Kernel kann ein Null-Zentrum mit einer Größe von mindestens ein oder mehr Pixeln enthalten. Beispielsweise arbeitet die Antikorrelation mit mindestens eine der normalisierten Korrelationsformeln und einer Summe der absoluten Differenzenformeln, unter anderen Formeln. Ein Prozess der Verfeinerung weist dann die sattelpunktartigen Strukturen im Bild durch Bestimmung der dominierenden Winkel in Bezug auf sattelpunktartige Kandidaten sowie der Abstände zwischen angrenzenden sattelpunktartigen Kandidaten nach. Der Prozess der Verfeinerung gruppiert auch die sattelpunktartigen Strukturen auf der Grundlage der jeweiligen dominanten Winkel und der Abstände zwischen den angrenzenden Sattelpunkt-Strukturen. Ein Raster-Anpassungsprozess erstellt dann ein etwa geradliniges Raster, das die gruppierten Sattelpunkt-Strukturen enthält. Dazu kann die Beseitigung von Strukturen, die sich außerhalb der Rasterlinien befinden und/oder ein Widerherstellen des Rasters über aussichtsreichere Strukturen gehören, wenn der vorherige Raster-Anpassungsprozess keine gewünschte Topologie generieren konnte. Diese Topologie kann auf einer 2D-ID und ganz besonders auf einem DotCode-ID-Format basieren. Ein ID-Bestimmungsprozess generiert ID-Informationen für den Einsatz bei der Decodierung, basierend auf den Sattelpunkt-Strukturen im Raster.
-
In einer anderen Ausführungsform werden ein System und ein Verfahren für das Decodieren einer ID in einem Bild mittels Bildverarbeitungsprozessor bereitgestellt. Dieses System und Verfahren beinhaltet einen Bestimmungsprozess für eine sattelpunktartige Struktur der gruppierte sattelpunktartige Strukturen in Bezug auf das Bild erzeugt. Ein ID-Bestimmungsprozess generiert ID-Informationen basierend auf den gruppierten sattelpunktartigen Strukturen. Ein ID-Decodierprozess decodiert die ID-Information, um Daten bereitzustellen, die an ein Datenverarbeitungssystem übertragen werden können. Der Bestimmungsprozess für die sattelpunktartige Struktur arbeitet beispielsweise mit einem Antikorrelations-Prozess. Dieser Prozess arbeitet an einer Vielzahl von Pixel-Nachbarschaften innerhalb (mindestens) einer interessierenden Region im Bild und identifiziert Sattelpunkt-Kandidaten in den Nachbarschaften, die gefiltert werden, um die sattelpunktartigen Strukturen zu generieren, die im ID-Bestimmungsprozess verwendet werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die nachfolgende Beschreibung der Erfindung bezieht sich auf die beigefügten Zeichnungen, von denen
-
1 entsprechend eines Ausführungsbeispiels ein Diagramm einer Bildverarbeitungsanordnung beim Erfassen von Bildern von Objekten, die IDs enthalten, welche sich durch eine abgebildete Szene bewegen, zeigt
-
2 ein Diagramm eines eine Sattelpunktstruktur enthaltendes beispielhaftes Schachbrettmuster zeigt;
-
3 entsprechend eines Ausführungsbeispiels ein Diagramm von zwei benachbarten Dot-Merkmalen in einer beispielhaften DotCode-Matrix zeigt, für welche Sattelpunktstrukturen bestimmt werden können;
-
4 entsprechend eines Ausführungsbeispiels ein Flussidagramm des Gesamtvorgangs für das Auffinden von sattelpunktartigen Strukturen in einem Bild und das Bestimmen der Information, wie darin enthaltener DotCode-IDs zeigt;
-
5 eine Bildschirmanzeige eines Teils eines sattelpunktartige Strukturen enthaltendes Bildes mit der ersten Identifizierung von Sattelpunktkandidaten entsprechend dem Vorgang in 4 zeigt, wobei ein Antikorrelationsprozess verwendet wird;
-
6 ein Diagramm mit der Anwendung eines um 90 Grad gedrehten Antikorrelations-Kernels bei einer Nachbarschaft von Pixeln in einem Gesamtbild zur Erzeugung von Informationen in Bezug auf mögliche Sattelpunktkandidaten innerhalbe eines Bildes entsprechend dem Vorgang in 4 zeigt;
-
7 ein Diagramm mit der Anwendung von Kernel zeigt, welche eine um 180 Grad gedrehte Version der Originalnachbarschaft der Pixel im Gesamtbild zur Originalnachbarschaft der Pixel in 6 zeigt, um optional ein Sattelpunktverhalten innerhalb der Nachbarschaft zu bestätigen;
-
8 eine Bildschirmanzeige mit der Bestimmung dominanter Winkel in den Sattelpunktkandidaten entsprechend dem Vorgang in 4 zeigt
-
8A und 8B jeweils graphische Repräsentationen eines Kernelpaares zeigen, die dazu verwendet werden können, an der Original-Pixelnachbarschaft zu arbeiten, um einen dominanten Winkel für ein darin enthaltenes sattelpunktartiges Merkmal zu bestimmen.
-
9 eine Bildschirmanzeige mit der Bestimmung einer endgültigen Sattelpunktgruppe innerhalb des Bildteiles entsprechend dem Vorgang in 4 zeigt;
-
10 eine Bildschirmanzeige mit der Anordnung von Sattelpunkten in Paaren und das Messen relativer Abstände und Winkel entsprechend dem Vorgang in 4 zeigt;
-
11 eine Bildschirmanzeige mit der Projektion von gepaarten Sattelpunkten entlang gemeinsamer Linien und Winkel entsprechend einem Vorgang in 4 zeigt;
-
12 eine Bildschirmanzeige mit der Ausglättung von Punktgruppen, die entlang gemeinsamer Linien und Winkel anwesend sind, entsprechend einem Vorgang in 4 zeigt;
-
13 eine Bildschirmanzeige mit der Anpassung eines Rasters an die Sattelpunkte entsprechend dem Vorgang in 4 zeigt;
-
14 eine Bildschirmanzeige mit der Bestimmung des Umfangs der Gruppe oder „Zeichenbox” für die Verwendung im Vorgang der 4 zeigt;
-
15 eine Bildschirmanzeige mit der Abfrage von Sattelpunkten in Bezug auf eine erwartete Geometrie einer ID zeigt;
-
16 eine Bildschirmanzeige mit einer Abfrage und Erzeugung einer Graustufenversion der ID von dem auf dem bestätigten Ort von verwandten Sattelpunkten basierendem Bild entsprechend dem Vorgang von 4 zeigt;
-
17 eine Bildschirmanzeige einer binären Schwellwertversion des ID-Bildes von 17[Gw1] zeigt;
-
18 eine Bildschirmanzeige einer abgeschnittenen Negativversion des binären Bildes von 17 zeigt;
-
19 eine Bildschirmanzeige eines Teiles eines beispielhafte ID-Merkmale sowie ähnliche Abdrucke und falsche Sattelpunkte enthaltenden Bildes zeigt;
-
20 eine schematische Darstellung einer Reihe beispielhafter Bildrahmen zeigt, jeweils enthaltend einen gleitenden Bezugspunkt mit Sattelpunkt-Eigenschaften, dazu fähig, gemäß den Techniken der beispielhaften Ausführungsform aufgefunden und verfolgt zu werden; und
-
21 eine schematische Darstellung einer Reihe beispielhafter Bildrahmen zeigt, jeweils enthaltend ein gleitendes Muster mit Sattelpunkt-Eigenschaften, dazu fähig, gemäß den Techniken der beispielhaften Ausführungsform aufgefunden und verfolgt zu werden.
-
DETAILLIERTE BESCHREIBUNG
-
I. Bildverarbeitungssystem – Übersicht
-
1 zeigt im Detail eine typische Realisierung eines maschinellen Bildverarbeitungssystems 100 (hierin auch „Bildverarbeitungssystem” oder grundlegender „System” bezeichnet), das als feste Halterungsanordnung gezeigt ist, welche Bilder einer durch das Sichtfeld 110 definierten Szene erfasst. Alternativ kann das System als bewegliches Gerät implementiert werden, entweder mit einer beweglichen Halterung oder einer tragbaren Anordnung. In dieser Ausführungsform und durch ein nicht beschränkendes Beispiel, ist das System zum Scannen von Objekten (z. B. Objekt 120) angepasst, die relative zum System 100 in Bewegung sind. Beispielsweise kann sich das Objekt durch die abgebildete Szene entlang eines Förderbandes und/oder Fließbandes bewegen (Pfeil 122). Als solches erfasst das System 100 einen oder mehrere Bildrahmen des Objekts, wenn es sich innerhalb des Sichtfeldes 110 befindet. Diese Erfassung kann durch einen visuellen Erkennungsprozess, einem Teil-Detektor, einem Encoder am Förderband oder irgendeine andere akzeptable Technik, die einem Fachmann klar sein sollte, ausgelöst werden.
-
Das illustrative System 100 beinhaltet eine Kamera-Baugruppe 130 mit zugehörigem Objektiv 132, das jede akzeptable Bildverarbeitungs-Kameraanordnung (auch ganz allgemein als „Kamera” bezeichnet) sein kann. Die Kamera enthält einen Bildsensor (auch „Imager” genannt) 134, der Licht von der Linse 132 empfängt, die auf das Pixelarray des Sensors 134 fokussiert ist, welche auch die Bildebene senkrecht zur optischen Achse der Kamera definiert. Der Sensor kann ein Farbsensor oder in der Regel ein Graustufensensor sein, und kann einen CMOS- oder jeden anderen akzeptablen Schaltkreis enthalten (z. B. CCD). In dieser Ausführungsform ist der Sensor betriebsmäßig mit einem on-Board Bildverarbeitungsprozessor 136 verbunden, der entsprechende, konventionelle maschinelle Bildverarbeitungsprozesse 138, wie Kantendetektion, Blob-Analyse, etc. durchführt. Der Prozessor 136 führt auch spezifische ID Aufsuch- und Decodier-Prozesse 140 entsprechend der beispielhaften Ausführungsform durch. Andere Prozesse, wie Beleuchtungssteuerung, Autofokus, Auto-Regelung der Helligkeit, Belichtung, usw. können auch nach Bedarf bereitgestellt werden. Eine Beleuchtung der Szene (optional) kann durch einen externen Illuminator 142 wie gezeigt bzw. durch interne Beleuchtung (nicht gezeigt) verbunden mit der Kamera bereitgestellt werden. Eine solche interne Beleuchtung kann beispielsweise an Stellen auf der Vorderseite der Kamera in der Nähe des Objektivs montiert werden. Die Beleuchtung kann durch den Prozessor 136 oder eine zugehörige Schaltung, wie durch die gestrichelte Linie 144 gezeigt, ausgelöst werden. Dekodierte Daten (z. B. decodierte ID-Informationen in alphanumerischer und/oder sonstiger Form) 146 werden durch einen Link 148 zu einem Datenverarbeitungs- und Speichersystem 150 (z. B. ein Bestandskontrollsystem), dargestellt als Computer oder Server, übertragen. Je nach Bedarf kann der Link kabelgebunden oder drahtlos sein.
-
Es sollte dabei klar sein, dass das abgebildete System 100 beispielhaft für einer Vielzahl von Systemen, die wie weiter unten beschrieben an andere Bildverarbeitungs-Systemanwendungen als ID lesen, wie beispielsweise Videoanalyse, Roboter-Manipulation und dergleichen angepasst werden kann. Die Beschreibung der beispielhaften Ausführungsform in Verbindung mit einer ID-Lesegerät-Anordnung soll daher lediglich als ein Beispiel für Systeme und Prozesse gelten, die ein Fachmann auf dem Gebiet auf andere Bildverarbeitungs-Anwendungen anwenden kann. Wie hierin verwendet sollten die Begriffe ”Prozess” und/oder ”Prozessor” ganz allgemein großzügig verstanden werden und eine Vielfalt elektronischer hardware- und/oder softwarebasierender Funktionen und Komponenten einschließen. Darüber hinaus kann ein dargestellter Prozess oder Prozessor mit anderen Prozessen bzw. Prozessoren kombiniert werden oder auf verschiedenen Unterkategorien oder Prozessoren aufgeteilt werden. Entsprechend hierin enthaltener Ausführungsformen können solche Unterkategorien und/oder Sub-Prozessoren kombiniert werden. Ebenso ist ausdrücklich beabsichtigt, dass jede Funktion, jeder Prozess und/oder jeder Prozessor hierin mit elektronischer Hardware, Software, bestehend aus einem nicht vergänglichen Computerlesbaren Datenträger mit Programmanweisungen oder einer Kombination von Hardware und Software umgesetzt werden.
-
II. Sattelpunktmerkmale
-
In der beispielhaften Ausführungsform enthält das Objekt 120 in der Szene 110 eine oder mehrere interessierende Merkmale, die beispielsweise eine gedruckte DotCode Struktur 160 bilden. Ein DotCode-ID sowie bestimmte andere 2D-ID-Codes, einschließlich (aber nicht beschränkt auf) DataMatrix und QR. Diese Codes sind allgemein durch ein regelmäßiges zweidimensionales Raster gedruckter Kreise oder Rechtecke gekennzeichnet. Die Region zwischen solchen gedruckten Merkmalen kann als „Sattelpunkt” charakterisiert werden. Ein Sattelpunkt ist beispielsweise eine Position im Bild, wo die Intensität entlang einer Richtung lokal am größten und entlang einer dazu rechtwinkeligen (um 90 Grad gedrehten) Richtung lokal am kleinsten ist.
-
Mit Bezug auf 2 werden vier Quadrate in einem hellen und dunklen Schachbrettmuster 200 dargestellt. Der Punkt 210 an dem die vier Quadrate zusammentreffen (der Eckpunkt) kann als ein starker Sattelpunkt charakterisiert werden. Das heißt, die Intensität beim Sattelpunkt 210 ist lokal am kleinsten entlang der Richtung 212 durch die Ecken der hellen Quadrate, während die Intensität an der gleichen Stelle 210 lokal am größten in der dazu rechtwinkligen Richtung (Winkel AP) 214 durch die Ecken der dunklen Quadrate ist. In diesem Zusammenhang wird helle Intensität als Maximalwert definiert, während dunkle Intensität als Minimalwert definiert wird; das Gegenteil kann jedoch ebenfalls der Fall sein, wo dunkel als maximale Intensität und hell als minimale Intensität definiert ist. Darüber hinaus kann jeder beliebige numerische Wert, egal ob aus heller Intensität oder einem anderen physischen oder berechneten Prozess hervorgehend, als definierter Sattelpunkt verwendet werden. Hier bedeutet „lokal” in Nachbarschaft des Sattelpunktes, und nicht unbedingt maximal oder minimal im Vergleich zu irgendwo anders im Bild.
-
Mit der Erkenntnis, dass ein Sattelpunkt zwischen zwei Merkmalen vorhanden sein kann wird auf 3 verwiesen, die ein Paar beispielhafte DotCode dunkel-gedruckte Dot Merkmale 310 und 320 zeigt, die innerhalb eines umgebenden hellen Feldes 330 angeordnet sind, und die eine Sattelpunkt-Reaktion generieren. Alternativ können die Punkte hell und das Feld dunkel sein, oder die Punkte können durch eine gehämmerte Oberfläche, die von einer glatten und/oder spiegelnden Oberfläche umgeben ist, dargestellt werden. Im Allgemeinen repräsentieren die Punkte und das Feld erkennbare Strukturen im Bild unter Verwendung von sichtbarem Licht und/oder nahe dem sichtbare Licht, z. B. IR. Wie gezeigt, und wie unten beschrieben, kann ein Antikorrelationsprozess in Bezug auf solche Punktpaare so eingesetzt werden, dass die Punkte 310, 320 effektive eine Richtung 340 minimaler Intensität definieren, mit einer maximalen Intensität typisch in einer dazu rechtwinkeligen (Winkel AP1) Richtung 342.
-
Da eine DotCode-ID (und bestimmte andere 2D-IDs) regelmäßige Platzierung/regelmäßigen Abstand und regelmäßige Ausrichtung der Punkte bietet, eignet sie sich für Techniken zur ID-Auffindung basierend auf dem Ort der sattelpunktartigen Merkmale wie unten beschrieben. Zu beachten ist dabei, dass der Einfachheit halber der Begriff „Sattelpunkt” auch für Merkmale angewendet werden soll, die bei Definition sattelpunktartige Merkmale sind. Diese Technik verwendet die Sattelpunkte selbst um das Vorhandensein einer DotCode-Matrix bestimmen und somit das beispielhafte System und Verfahren relativ agnostische in Bezug auf die Größe der Punkte ist, die in der Praxis je nach Zustand des Druckers variieren kann (in der Regel ein Nadeldrucker, der von einem Objekt durchlaufen wird) und basierend auf die zu bedruckende Oberfläche.
-
III. Sattelpunkt-Bestimmungsprozess
-
Es wird auf 4 verwiesen, die ein allgemeines Verfahren 400 zur Auffindung von Sattelpunktstrukturen innerhalb eines Bildes und Bestimmung des Vorhandenseins oder Fehlens von interessierenden Merkmalen, wie z. B. DotCode-IDs basierend auf der Anordnung der Sattelpunktmerkmale in einem Teil des Bildes zeigt. Der Vorgang 400 beginnt mit dem Erfassen eines Bildes des Objektes, oder eines anderen Subjektes in der Szene, in Schritt 410. Basierend auf diesem erfassten Bild sucht der Vorgang in Schritt 420 nach Kandidaten für sattelpunktartige Strukturen. Die Ergebnisse dieser Suche werden in 5 beispielhaft gezeigt, in der eine Bildschirmanzeige 500 einen Teil des gesamten Bildes zeigt, das eine beispielhafte ID (eine DotCode-ID in diesem Beispiel) 510 enthält. Während des Betriebs scannt das Verfahren das gesamte Bild oder einen kleiner Teil davon – zum Beispiel einen Teil von dem angenommen wird, dass er die Kanten des Objekts enthält – um eventuelle sattelpunktartige Kandidaten aufzufinden. Wie in 5 dargestellt, werden solche Kandidaten durch die Kreuzung der Linien (Xs), wie z. B. die gekreuzten Linien 520 symbolisiert. Beispielhaft und mit Bezug auch auf 6, werden sattelpunktartige Kandidaten mit Hilfe eines Antikorrelations-Kernels 610 bestimmt. Der Vorgang 400 scrollt durch jede Pixelposition im Gesamtbild (oder einer interessierenden Region im Gesamtbild) und arbeitet an jedem Pixelort auf einer M×N (wo M = N) Nachbarschaft 620 von Pixel-Intensitätswerten (1–25). In dieser Ausführungsform wird eine 5 × 5 Nachbarschaft definiert. Obwohl jede Nachbarschaftsgröße eingesetzt werden kann, ist in den verschiedenen Ausführungsformen eine Nachbarschaftsgröße zwischen 4 × 4 und 6 × 6 wünschenswert, um einen guten Kompromiss zwischen einer ausreichenden Stichprobegröße (für eine zuverlässige Messung) und Verarbeitungsgeschwindigkeit zu erzielen. Darüber hinaus kann die Größe der Nachbarschaft bestimmen wie körnig der „Filter” sein wird, um sattelpunktartige Kandidaten zu finden oder nicht zu finden. Die Größe des Filters kann auch von der relativen Größe des Merkmals (z. B. der Punktgröße) abhängen. Die Bestimmung der Filtergröße kann voreingestellt (während einer Setup-Einstellung) oder basierend auf einem iterativen Vorgang des Verfahrens gelernt werden. Beispielsweise ist der Antikorrelations-Kernel die gleiche um 90 Grad gedrehte Pixelnachbarschaft (Intensität) wie gezeigt. Im Vergleich mit einer konventionellen normalisierte Korrelationsformel sollte der um 90 Grad gedrehte Antikorrelations-Kemel 610 große Intensitätsschwankungen gegenüber der ursprünglichen Pixelnachbarschaft, wo eine Sattelpunktstruktur vorhanden ist, angeben, und solche Positionen werden beachtet. Insbesondere sollte auf einer Skala von –1 bis +1 die normalisierte Korrelation zwischen den durch die Zahlen 1–25 identifizierten Pixel im ursprünglichen Kernel der Pixelnachbarschaft 610 und den gleich nummerierten Pixeln im gedrehten Kernel 620 sich an den Wert –1 annähern. Wo diese Korrelation nicht unter einen Schwellenwert in der Regel zwischen –1 und 0 fällt, oder den von benachbarten Positionen unterschreitet, kann diese jeweilige Pixel-Nachbarschaft aus der Analyse entfernt werden, da sie keine ausreichenden sattelpunktartigen Merkmale erkennen lässt. Zu beachten ist dabei, dass für den Fachmann auf dem Gebiet eine Vielzahl von Formeln zur Verfügung stehen, um die Stärke der Antikorrelation zwischen Pixel-Paaren in jeder der beiden Matrizen zu berechnen. Beispielsweise kann eine Formel zur Summe der absoluten Differenzen in alternativen Ausführungsformen mit Anpassungen an die erwarteten Bereiche und Schwellenwerten verwendet werden, die für einen allgemeinen Fachmann auf dem Gebiet offensichtlich sein werden.
-
Wie bereits erwähnt, ist die Größe der M×N Pixel-Nachbarschaften sehr unterschiedlich. Insbesondere wird im Falle eines ungeraden Wertes für M und N das Center-Pixel (d. h. Pixel 13) ignoriert, wie durch den durchgestrichenen Wert angedeutet. Dadurch wird ein Vergleich des Pixels mit sich selbst vermieden. Es sollte beachtet werden, dass der Antikorrelations-Kernel 610, obwohl gegen den Uhrzeigersinn gedreht gezeigt, in alternativen Ausführungsformen auch im Uhrzeigersinn um 90 Grad gedreht sein kann. [0044] Der Antikorrelations-Prozess bewegt sich durch das Bild und verschiebt dabei jeweils eine Spalte (oder Zeile) von Pixeln, bis alle M×N Nachbarschaften verglichen worden sind. Insbesondere durch Scrollen durch jedes Pixel im Bild, kann mit dem Verfahren eine Antikorrelation unabhängig vom tatsächlichen Winkel im Bild an dem die Sattelpunktkandidaten ausgerichtet sind bestimmt werden – wodurch es praktisch winkelagnostisch wird.
-
Obwohl in verschiedenen Ausführungsformen optional, kann zur Verbesserung der Genauigkeit der Antikorrelations-Prozess (im Schritt 424) auch die Nachbarschaft 620 mit einer um 180 Grad gedrehten Version von sich selbst (710), wie in dargestellt, verglichen werden. Das kann eine Bestimmung ermöglichen, wenn die 180-Grad-Berechnung der ursprünglichen Nachbarschaft relativ ähnlich ist, und somit weiter sattelpunktartige Eigenschaften für die ursprüngliche Pixel-Nachbarschaft anzeigt. In einer generalisierten Ausführungsform kann die Verarbeitung von Pixel-Nachbarschaften mit Hilfe eines einfachen um 90 Grad gedrehten Antikorrelations-Kernel eingesetzt werden, um akzeptable Ergebnisse frei von zusätzlicher Überprüfung mit der um 180 Grad gedrehten Nachbarschaft zu erzielen.
-
Es sollte dabei klar sein, dass die Verwendung eines Antikorrelations-Prozesses zur Bestimmung von sattelpunktartigen Kandidaten vorteilhaft ist, da nur relativ geringe Prozessressourcen aufgewendet werden müssen, und dieser somit über ein ganzes Bild schnell durchgeführt werden kann. Das heißt, der rechnerische Aufwand für eine Drehung einer Pixel-Nachbarschaft um 90 Grad ist relativ gering, da die individuellen Pixelintensitätswerte einfach von einer Organisation zur anderen umgeordnet werden. Dies ermöglicht, dass intensivere Prozesse auf Regionen des Gesamtbildes konzentriert werden können, die eine bestimmte Sattelpunkt-Eigenschaft, wie z. B. eine Region mit einem großen Cluster von solchen sattelpunktartigen Kandidaten enthalten – ein Anzeichen für das Vorhandensein einer ID in dieser Region.
-
In verschiedenen Ausführungsformen ist beabsichtigt, dass die um 90 Grad und um 180 Grad gedrehten Antikorrelations-Kernel ein Null-Zentrum bereitstellen können, das größer ist als ein (1) Pixel. Beispielsweise kann ein Null-Zentrum, das neun (9) Pixel (oder eine andere Zahl) ausschließt, bereitgestellt werden.
-
In verschiedenen Anwendungen kann die Bestimmung von sattelpunktartigen Kandidaten in einem Gesamtbild dann dazu angewendet werden, um ein bestimmtes Bildverarbeitungsproblem zu lösen, wie z. B. die Überwachung eines Schachbrett-Bezugspunktes beim Durchlaufen eine Reihe von Bildrahmen, zum Beispiel in einem Hochgeschwindigkeitsvideo eines Crashtests, in einem gedruckten Halbtonbild, oder am Ende eines verfolgten Roboterarms.
-
IV. ID-Decodierprozess mit Hilfe sattelpunktartiger Kandidaten
-
Durch das Identifizieren von Regionen, die Sattelpunkte enthalten wird der interessierende Bereich innerhalb des Gesamtbildes, das auf ID-Informationen analysiert wird, erheblich reduziert. Dies beschleunigt den Decodierprozess. Darüber hinaus wird durch das Ausführen zusätzlicher Schritte zur Beseitigung zufälliger Sattelpunktmerkmale innerhalb des Gesamtbildes, die keine ID-Merkmale enthalten, der interessierende Bereich weiter reduziert, und die Geschwindigkeit des zugehörigen Decodier-Prozesses zusätzlich erhöht.
-
Mit erneutem Bezug auf den Vorgang 400 der 4 kann der Vorgang, sobald die Antikorrelationspunkte aus dem Prozess (wie in 5 gezeigt) ermittelt wurden, diese Informationen dazu verwenden, eine 2D-ID, z. B. den abgebildeten, exemplarischen DotCode aufzufinden und eventuell zu decodieren. Es ist dabei anzumerken, dass DotCode-Punkte sattelartige Merkmale haben, im Gegensatz zu wahren Sattelpunkten wie denen die in einem „Schachbrettmuster” aufgefunden werden. Allerdings findet der oben beschriebene Antikorrelationsprozess effektiv solche Merkmale. Zusätzliche Filtertechniken können eingesetzt werden, um die Existenz eines hellen (oder kontrastierenden) Hintergrundfeldes zwischen nicht berührenden Punkten ansprechen. In Schritt 430 bestimmt das Verfahren 400 den dominanten Winkel der verbleibenden sattelpunktartigen Kandidaten. Dies wird durch die verschiedenen gekreuzten Linien 810 im Bild 800 angegeben. Dazu gehört die Bestimmung der wirksamen Richtung der Antikorrelations-Ergebnisse in angrenzenden Gruppen von Pixeln in Bereiche, die bereits als Kandidaten identifiziert worden sind. Es ist zu beachten, dass die Linien zweifach und dreifach auftreten können (z. B. Linien 820) und dabei mehrere Pixel vertreten, die auf ein ähnliches sattelartiges Verhalten hinweisen.
-
Nach einer Ausführungsform erfolgt die Berechnung des dominanten Winkels dadurch, dass die Nachbarschaft von Pixeln mit einem mittigen Sattelpunkt 850 zwei Kerneln unterworfen ist, die in 8A und 8B als X und X' grafisch dargestellt werden, wobei X' in Bezug auf X um 45 Grad gedreht ist. Durch Anwenden der Formel 1/2·arctan2(R(X)', R(X)), wo die Funktion R die Reaktion eines Kernels darstellt, kann der ungefähre Winkel ermittelt werden. Da Sattelpunkte sowohl bei 0 als auch bei 90 Grad erkannt werden können, kann ein Kernelpaar mit einem 45-Grad Bereich (die Hälfte von 90 Grad) verwendet werden, um den dominanten Winkel abzuschätzen. Die Darstellung enthält Zonen 860 in welchen bestimmte Pixel entlang der Grenzlinien ignoriert werden, um eine verbesserte Schätzung des dominanten Winkels zu bieten. Wenn zum Beispiel X eine starke Reaktion bietet, dann ist der Sattelpunkt vertikal ausgerichtet. Wenn X' eine starke Reaktion bringt dann ist der Sattelpunkt bei 45 Grad ausgerichtet. Wenn beide Kernel eine Reaktion abgeben, dann ist der Sattelpunkt proportional zwischen 0 und 45 Grad ausgerichtet und das Ausmaß einer jeden Reaktion erlaubt das Messen des Winkels (zwischen 0 und 45 Grad). Beispielsweise ergibt eine annähernd gleiche Reaktion von jedem X und X' einen dominanten Winkel von etwa 22,5 Grad.
-
Nach einer Ausführungsform definiert der folgende Programm-Befehlssatz jeweils ein Paar den dominanten Winkel bestimmender Kernel für eine Nachbarschaft von 5×5 Pixel.
-
In dem obigen Programm-Befehlssatz ist die Reaktionsfunktion R weggelassen, und die beispielhafte saddle_angle [Sattelpunkt-]Berechnung berechnet alternativ den Winkel über einen vollen 180 Grad Bereich anstelle des grafisch dargestellten 90-Grad-Bereichs (8A und 8B). Beide Ansätze können eingesetzt werden, um eine akzeptable Abschätzung des dominanten Winkels zu erzielen.
-
In Schritt 434, beseitigt der Vorgang 400 mehrere aufgefunden Sattelpunkte und richtet eine Vielzahl von verbleibenden angrenzenden Sattelpunkten auf eine Linie entlang eines gemeinsamen dominanten Winkels aus, wie durch die Bildschirmanzeige 900 in 9 dargestellt. Die Linien 910 und 920 stellen eine Ausrichtung der Sattelpunkte in jeweils zwei orthogonale Richtungen dar (allgemein entsprechend dem Layout des ID-Rasters). Es ist dabei zu beachten, dass dieser Prozess über das gesamte Bild stattfindet und wie weiter unten beschrieben auch Sattelpunkt-Linien auf „Störsignal”-Merkmalen bilden kann, die sich in zusätzlichen Richtungen ausdehnen. Zusätzliche Techniken wie unten beschrieben werden angewandt, um solche Störsignal-Merkmale herauszufiltern. Es ist beabsichtigt dass die Punkte zum Beispiel einen Bereich zwischen ca. 3 Pixel pro Punkt und 14 Pixel pro Punkt abdecken. Es ist dabei zu beachten, dass das Bild durch Sektoren oder „Kachel”, die durch horizontale bzw. vertikale gestrichelte Linien 930 und 940 abgegrenzt sind, in Sektoren oder „Fliesen” aufgeteilt werden kann. Diese Abgrenzung in Kachel kann in unten beschriebenen nachfolgenden Prozessen verwendet werden. Die Kachel haben beispielsweise ein Größe von 32×32 Pixel, aber andere Dimensionen sind ausdrücklich vorgesehen. Der Vorgang verarbeitet Punkte in Bezug auf jede Kachel. Die Ergebnisse von aneinander angrenzenden Fliesen, die aufgefundene ID-Merkmale enthalten, werden schließlich in einem endgültigen Ergebnis kombiniert.
-
In Schritt 436 werden die ausgerichteten Sattelpunkte auf „Paar”-Beziehungen dadurch analysiert, dass sich der dazwischenliegende Abstand innerhalb eines vorgegebenen Bereichs befindet, wie er auch im Raster einer ID gefunden würde. Wie in der Bildanzeige 1000 der 10 gezeigt, bestimmt das Verfahren, welche Sattelpunkte sich entlang des gleichen dominanten Winkels (Linien 1010 und 1020) befinden und dazwischen relative ähnlich beabstandet erscheinen. Diese ähnlich beabstandeten und kollinearen Punkte werden zusammengefasst und bilden die Grundlage für die Einachtung des ID-Rasters in den nachfolgenden Schritten. Die Beabstandung der Sattelpunkte kann ein Vielfaches des Einheitsabstandes sein. Die Abstände zwischen Punkten werden beispielhaft in ein Histogramm platziert, und das Verfahren sucht nach Peaks. Dies bietet bei der Gruppe der Sattelpunkte Informationen in Bezug auf den kleinsten gemeinsamen Einheitsabstand. Dieser Abstand berücksichtigt Punkte, die zu eng beieinander sind um Teil eines Codes zu sein. Die Winkel können ebenfalls in einem Histogramm eingetragen werden, und die häufigsten Winkel werden identifiziert. Die Eigenschaften der ID dienen dazu einen Schwellwert zu bieten, der dazu verwendet werden kann, zu entscheiden, welche Winkel am ehesten mit dem ID-Raster verbunden sind.
-
Sobald Sattelpunkte ausgerichtet und in entsprechenden Abständen beabstandet wurden, kann das Verfahren 400 in Schritt 438 solche Punkte 1110 wie in der Anzeige 1100 der 11 dargestellt projizieren. Der Vorgang glättet dann die Sattelpunkte (Schritt 440) wie in der Anzeige 1200 der 12 dargestellt aus und verwendet dazu einen Filterprozess der störende Punkte und/oder Merkmale, die sich in einer „ruhigen Zone” befinden, die sich über den Ort hinaus erstreckt, bei welchem die Ansammlung von Sattelpunktmerkmalen eine Abgrenzung zu definieren scheint, entfernt. Die Kachel können zum Beispiel kombiniert werden, um sich mit benachbarten Sattelpunkte-Gruppierungen in einer kontinuierlichen, ausgerichteten Struktur zu verbinden. Zu beachten ist dabei, dass für Zwecke der Genauigkeit eine ruhige Zone einer vorgegebenen Anzahl von Pixeln vom Hersteller für das Verfahren für einen effizienten Betrieb angegeben werden kann.
-
Beispielhaft beseitigt das Verfahren kontinuierlich Sattelpunkte, die nicht zum Modell einer ID zu passen scheinen. Wenn eine ausreichende Menge an Punkten beseitigt ist, kann eine zugrunde liegende Kachel aus der Gruppe der Kachel-Kandidaten entfernt werden. Zu diesem Zeitpunkt im Prozess hat das Verfahrens ermittelt, dass ein Satz von Sattelpunkte die geforderten geometrischen Eigenschaften/Topologie einer ID zu erfüllen scheint – d. h. die Sattelpunkte fallen innerhalbe der erwarteten Orte für die einer ID.
-
Im Verfahrensschritt 442, wird ein regelmäßiges Raster einem Sattelpunkt angepasst. Das wird durch horizontale und vertikale Rasterlinien 1310, 1320 in Anzeige 1300 der 13 symbolisch angedeutet. Dieses Raster ist in etwa geradlinig. Wie dargestellt sollten die Sattelpunkte in die Mitte der Quadrate des Rasters fallen, um eine geeignete Passung und Ausrichtung zu erzielen. Entsprechend Verfahrensschritt 444 werden, soweit Sattelpunkte nicht mit dem bestehenden Raster ausgerichtet sind, solche Sattelpunkte entfernt und das Raster entsprechend neu ausgerichtet. Wenn die Neuausrichtung keine Gruppe von Punkten mit der Größe, der Auflösung und dem allgemeinen Layout (generische Eigenschaften) einer ID-Struktur erzeugt, dann kann das Raster über eine andere Gruppe von Sattelpunkten wiederhergestellt werden, bis eine Struktur ausgerichtet ist, die in Größe, Auflösung und Layout mit einer ID übereinstimmt. Im Allgemeinen kann das Verfahren konventionelle Auffindungs-Algorithmen verwenden, die auf den Sattelpunkten im Raster basieren, um schließlich die ID aufzufinden.
-
14 zeigt eine Anzeige 1400 des weiteren Schrittes der Bestimmung des Umfangs der Sattelpunktegruppe oder einer „Zeichenbox”. Jeder Sattelpunkt ist entlang jeder Rasterachse projiziert, um einen Schnittpunkt mit der anderen Achse (z. B. Achsen 1410 und 1420) zu finden. Der Minimum- und Maximum-Abschnitt wird angewandt, um das Ausmaß der Gruppe zu bestimmen. Das Verfahren 400 kann sich auf die Verarbeitung in Regionen innerhalb des Ausmaßes/der Zeichenbox konzentrieren.
-
Im Verfahrensschritt 446 werden die Sattelpunkten entlang des Rasters und innerhalb der erwarteten Grenzen einer ID-Struktur abgetastet. Dies wird in der Anzeige 1500 der 15 dargestellt.
-
Sobald die ID bestätigt worden ist, kann das Verfahren in Schritt 450 eine Graustufenversion der Punkte im Bild scannen und generieren und diese in Bezug auf die damit verbundenen Sattelpunkte (wie in der Anzeige 1600 der 16 gezeigt) auffinden. Wie gezeigt erscheinen bestimmte Punkte (1610) hellgrau. In der Regel sind solche Punkte das Ergebniseines ungleichmäßigen Druckvorgangs oder einer ungleichmäßigen Beleuchtung über die abgebildeten ID, oder weil die grauen Pixel in der abgetasteten ID auf Basis ungenaue Rasterplätze aufgefunden wurden, die tatsächlich dazu führen, eine Kante des grauen Punktes abzutasten anstatt eine zentraleren Teil dieser Punkts. Die Graustufen-Version der ID kann in ein binäres Bild (voll hell und voll dunkel) umgewandelt werden, wie in der Anzeige 1700 der 17 abgebildet, zu welcher Zeit Graustufen-Punkte mittels Schwellwertverfahren entweder in einen voll hellen oder voll dunklen Zustand eingeteilt werden. Beispielhaft wird ein adaptiertes Schwellwertverfahren zur Bestimmung der grauen Pixel verwendet. Die ID kann dann wie in der Anzeige 1800 der 18 dargestellt abgeschnitten werden, so dass alle über ihre Grenzen hinausragenden Regionen eliminiert werden. Die ID kann auch wie gezeigt als negatives Bild präsentiert werden. Die ID wird dann an den Decodierprozess (Verfahrensschritt 460) präsentiert von dem die decodierte Information an das Datenverarbeitungssystem übertragen wird. Beim Decodieren der ID kann der Decodierprozess ein konventionelles Abtasten von Graustufen-Pixel an jedem gefundenen Rasterort zum Generieren der gewünschten decodierten Daten durchführen.
-
Wie oben allgemein beschrieben, klären das System und Verfahren Merkmale auf, die wahrscheinlich einer ID aus denen die mit Störwerten und zufällige Merkmalen in der Szene zusammenhängen zugeordnet sind. 19 zeigt durch Beispiel und Illustration ein Display 1900 eines Teils eines Gesamtbildes einer Szene, in welcher ID-Punkten zugeordnete Sattelpunkte 1910 zusätzlich zu den einer Region 1922 eines alphanumerischen (Nadeldrucker) zugeordneten Sattelpunkten 1920 aufgefunden werden. Der Glanz 1930 auf der Oberfläche des abgebildeten Objekts erzeugt darüber hinaus eine Reihe falscher Sattelpunkte entlang einer Linie 1940, die sich über Kachel (abgegrenzt durch horizontale und vertikale gestrichelte Linien 1950 und 1952) erstreckt. Diese zusätzlichen Sattelpunkte stellen Herausforderungen für das Auffinden tatsächlicher ID-Merkmale dar. Durch Paarungs-, Ausricht- und Filtrierprozesse wie oben beschrieben können diese nicht-ID-Merkmale systematisch beseitigt werden. Beispielsweise können falsche Sattelpunkte entlang der Linie 1940 mit einer Technik beseitigt werden, wo die Intensität des mittleren Bereiches ihrer Pixel-Nachbarschaften nicht größer als ein vorgegebener Schwellwert ist. Dieser vorbestimmte Schwellwert kann von der durchschnittlichen Intensität in der Nachbarschaft abgeleitet werden. In einigen Fällen, wo die Beseitigung eine besondere Herausforderung ist, können ausreichend ruhige Zonen (z. B. Region 1960) zwischen der ID und anderen ähnlichen Strukturen eingerichtet werden. Bei verschiedenen Ausführungsformen kann der Benutzer Systemparameter festlegen, um die Leistung basierend auf Größe, Ausrichtung, Auflösung und relativer Position der ID in der Szene zu verbessern, wenn solche Faktoren bekannt und von Objekt zu Objekt konsistent sind.
-
Beispielsweise wird die Bestimmung und Position von Sattelpunkten wie oben beschrieben als primäre Suchfunktion für DotCode-Kandidaten verwendet. Es ist beabsichtigt, dass gelegentlich ein oder mehrere Punkte auf einem gedruckten Code als nicht mit anderen diagonal benachbarten Punkten zusammenhängend erscheinen können, und sich somit in einer „spärlichen” Region des Codes befinden. Dementsprechend kann als weiterer Prozessschritt (470 in 4) beispielsweise ein Punktnachweisprozess. eingesetzt werden, nachdem andere Punkte durch Anwendung von Sattelpunkten über die Region in der festgestellt wurde, dass Sattelpunkte vorhanden sind, aufgefunden worden sind. Eine entsprechende Zeichenbox, basierend auf der erwarteten Größe des Codes verhindert, dass der Punktnachweis/Prozess zu weit außerhalb eines Kandidatenbereichs sucht. Der Punktdetektor kann konventionelle Bildverarbeitungs-Techniken anwenden, um neue punktähnliche Merkmale in dieser Region zu suchen.
-
V. Aufsuchen andere Formen von Sattelpunktmerkmalen in Bildern
-
Es ist ausdrücklich beabsichtigt, dass die oben beschriebenen Techniken zur Sattelpunkt-Bestimmung auf eine Vielzahl von Formen der Bilddaten angewendet werden können, die andere Informationen zu den Sattelpunkten als ID-Codes enthalten können. Durch ein nicht beschränkendes Beispiel zeigt 20 eine Folge von Bildrahmen 2010, 2020, 2030, die Teile einer großen Datei solcher Rahmen sein können – beispielsweise eine Sequenz von Rahmen, die von einem Hochgeschwindigkeits-Kamerasystem erfasst werden. Objekte in solchen Erfassungssequenzen werden oft mit Bezugspunkten versorgt. Eine bekannte Form eines Bezugspunktes (die sogenannte Secchi-Scheibe) 2050 wird in jedem Rahmen an einer anderen Position/in einer anderen Ausrichtung dargestellt. Dieser Bezugspunkt enthält eindeutige Sattelpunkt-Eigenschaften. Das hierin angewandte System und Verfahren können zuverlässig und relativ schnell in jedem Rahmen einen oder mehrere Bezugspunkte auffinden. Dort wo eine umfangreiche Anzahl von Einzelbildern in einem Datensatz vorhanden ist können das System und Verfahren die Zeit für die Analyse des Datensatzes und die Fokusanalyse auf Teile des Bildes die solche Bezugspunkte enthalten verkürzen.
-
In einer anderen beispielhaften Gruppe von Rahmen 2110, 2120, 2130, erscheint ein vertrautes Rollmuster 2150 in jedem Rahmen an einer anderen Stelle und mit einer anderen Ausrichtung. Dieses Muster enthält eine große Anzahl sich wiederholender Sattelpunkte. Das System und Verfahren können wieder jedes Element des Musters einer Pluralität von Bildrahmen effektiv suchen und verfolgen. Es sollte dabei Fachleuten klar sein, dass die Beispiele der 20 und 21 nur einige einer Vielzahl von möglichen Mustern und Anwendungen sind, die unter Anwendung des hierin beschriebenen Systems und Verfahrens analysiert werden können.
-
VI. Fazit
-
Es sollte klar sein, dass das oben beschriebenen System und das Verfahren zur Bestimmung von sattelpunktartigen Merkmalen in einem Bild und das Analysieren solcher Merkmale zur Durchführung von Bildverarbeitungs-Aufgaben wie beispielswiese das Auffinden und Decodieren von IDs eine effiziente und vielseitige Technik bereitstellt. In dem besonderen Fall der DotCode-Decodierung sprechen System und Verfahren die besondere Herausforderung an, dass sich DotCode-Punkte nicht berühren und somit alle benachbarte Punkte Sattelpunkte erzeugen. Die Robustheit der beispielhaften Antikorrelation und des Winkelprozesses positioniert jedoch die ermittelten Sattelpunkte mit hoher Genauigkeit in Bezug auf die Topologie, die sie repräsentieren. Während Such-Algorithmen häufig das Originalbild nach der groben Auffindung oft wieder abtasten, erfolgt eine Verfeinerung der ID-Informationen basierend auf den Sattelpunkten und nicht basierend auf einer rechenintensiveren Analyse der Punkte selbst. Ganz allgemein reduzieren die hierin angeführten Systeme und Verfahren effektiv Prozessoroverhead aufgrund erhöhter Berechnungen und erhöhen die Gesamt-Verarbeitungsgeschwindigkeit beim Auftreten bestimmter 2D-Codes und anderer abgebildeter Merkmale, die sattelpunktartige Strukturen enthalten können.
-
Das Vorhergehende war eine detaillierte Beschreibung von Ausführungsbeispielen der Erfindung. Verschiedene Modifikationen und Zusätze sind möglich, ohne vom Geist und Umfang dieser Erfindung abzuweichen. Merkmale einer jeden der oben beschriebenen Ausführungsform können in geeigneter Weise auch mit Merkmalen anderer beschriebener Ausführungsformen kombiniert werden, um eine Vielzahl von Merkmalskombinationen in zugehörigen neuen Ausführungsformen zu bieten. Darüber hinaus, obwohl das Vorhergehende eine Anzahl getrennter Ausführungsformen des Apparates und Verfahrens der vorliegenden Erfindung beschreibt, ist das hierin Beschriebene lediglich beispielhaft für die Anwendung der Grundsätze der vorliegenden Erfindung. Zum Beispiel, während die beispielhafte Ausführungsform nur Sattelpunkte zur Erzeugung eines decodierten ID-Ergebnisses anwendet, ist ausdrücklich beabsichtigt, dass zusätzliche Prozessschritte zumindest einige Punkte in den Merkmalen der ID-Kandidaten prüfen können, um bei der Decodierung der ID mitzuhelfen. Demgemäß soll diese Beschreibung nur als Beispiel dienen und sonst nicht den Umfang der vorliegenden Erfindung beschränken.
-
Anspruch wird erhoben auf: