-
VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht den Vorteil der parallelen vorläufigen US-Patentanmeldung mit der Seriennr. 62/249,918 mit dem Titel SYSTEM AND METHOD FOR FINDING LIMES IN AN IMAGE WITH A VISION SYSTEM [SYSTEM UND VERFAHREN ZUM ERKENNEN VON LINIEN IN EINEM BILD MIT EINEM SICHTSYSTEM], eingereicht am 02.11.2015, deren Lehren durch Bezugnahme hierin aufgenommen sind.
-
GEGENSTAND DER ERFINDUNG
-
Diese Erfindung betrifft Maschinensichtsysteme und insbesondere Sichtsystemwerkzeuge, die Linienmerkmale in erfassten Bildern erkennen
-
HINTERGRUND DER ERFINDUNG
-
Maschinensichtsysteme (hierin auch einfach als „Sichtsysteme” bezeichnet”) werden für vielfältige Aufgaben in der Fertigung, Logistik und Industrie verwendet. Solche Aufgaben können Oberflächen- und Teileinspektion, Anordnung von Objekten während der Montage, Auslesen von Mustern und ID-Codes und jeden anderen Vorgang umfassen, bei dem visuelle Daten erfasst und zur Verwendung in weiteren Prozessen interpretiert werden. Sichtsysteme setzen typischerweise eine oder mehrere Kameras ein, die Bilder einer Szene erfassen, die ein Objekt oder Subjekt von Interesse enthält. Das Objekt/Subjekt kann stationär oder in relativer Bewegung sein. Bewegung kann ferner durch Informationen gesteuert sein, die durch das Sichtsystem abgeleitet sind, wie in dem Fall der Handhabung von Teilen durch einen Roboter.
-
Eine übliche Aufgabe für ein Sichtsystem ist das Erkennen und Kennzeichnen von Linienmerkmalen in einem Bild. Es werden vielfältige Werkzeuge zum Identifizieren und Analysieren solcher Linienmerkmale verwendet. Typischerweise sind diese Werkzeuge auf einen deutlichen Kontrastunterschied angewiesen, der in einem Abschnitt des Bilds auftritt. Dieser Kontrastunterschied wird unter Verwendung z. B. eines Messschieberwerkzeugs analysiert, um zu bestimmen, ob die einzelnen Punkte in dem Bild mit Kontrastunterschied zu einem linienartigen Merkmal zusammengesetzt werden können. Falls ja, wird eine Linie in dem Bild identifiziert. Insbesondere arbeiten die Werkzeuge, die Kantenpunkte erkennen, und diejenigen, die eine Linie an die Punkte anzupassen versuchen, unabhängig voneinander. Dies erhöht den Verarbeitungsaufwand und verringert die Zuverlässigkeit. Wenn ein Bild mehrere Linien umfasst, können solche Werkzeuge in ihrer Fähigkeit, sie exakt zu erkennen, eingeschränkt sein. Zudem können herkömmliche Linienerkennungswerkzeuge, die dazu ausgelegt sind, eine einzelne Linie in einem Bild zu erkennen, problematisch zu verwenden sein, wenn das Bild mehrere eng beabstandete Linien mit ähnlicher Ausrichtung und Polarität aufweist.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Diese Erfindung beseitigt Nachteile des Stands der Technik durch Bereitstellen eines Systems und Verfahrens zum Erkennen von Linienmerkmalen in einem Bild, das es ermöglicht, dass mehrere Linien effizient und genau identifiziert und gekennzeichnet werden. Zuerst berechnet der Prozess x- und y-Komponenten des Gradientenfelds an jeder Stelle des Bilds, projiziert das Gradientenfeld über eine Vielzahl von Bildunterbereichen und detektiert innerhalb jedes Unterbereichs eine Vielzahl von Gradientenextrema, was eine Vielzahl von Kantenpunkten mit zugehöriger Position und Gradienten ergibt. Als Nächstes wählt der Prozess iterativ zwei Kantenpunkte aus, passt eine Modelllinie an diese Kantenpunkte an und berechnet, wenn die Gradienten dieser Kantenpunkte mit der Modelllinie übereinstimmen, die vollständige Reihe von Nicht-Ausreißer-Punkten, deren Position und Gradient mit der Modelllinie übereinstimmen. Die Kandidatenlinie mit der größten Anzahl von Nicht-Ausreißern wird als ein Linienergebnis festgehalten und die Reihe von übrigen Ausreißerpunkten wird abgeleitet. Der Prozess wendet dann wiederholt den Linienanpassungsvorgang auf diese und nachfolgende Reihen von Ausreißern an, um eine Vielzahl von Linienergebnissen zu erkennen. Der Linienanpassungsvorgang kann erschöpfend sein oder auf einer Technik der Übereinstimmung mit einer zufälligen Stichprobe (random sample consensus, RANSAC) basieren.
-
In einer veranschaulichenden Ausführungsform wird ein System zum Erkennen von Linienmerkmalen in einem erfassten Bild bereitgestellt. Ein Sichtsystemprozessor empfängt Bilddaten einer Szene empfängt, die Linienmerkmale enthält. Ein Kantenpunktextraktor erzeugt Intensitätsgradientenbilder aus den Bilddaten und erkennt Kantenpunkte auf Grundlage der Intensitätsgradientenbilder. Ein Linienerkenner passt dann die Kantenpunkte an eine oder mehrere Linien auf Grundlage des Intensitätsgradienten in den Kantenpunkten an. Veranschaulichend führt der Linienerkenner einen RANSAC-basierten Prozess zum Anpassen von Nicht-Ausreißer-Kantenpunkten an neue Linien einschließlich der iterativen Definition von Linien aus Ausreißer-Kantenpunkten in Bezug auf vorab definierte Linien aus. Der Kantenpunktextraktor führt eine Gradientenfeldprojektion von Bereichen der Intensitätsgradientenbilder durch, die Linienmerkmale enthalten. Veranschaulichend ist die Gradientenfeldprojektion entlang einer Richtung ausgerichtet, die in Antwort auf eine erwartete Ausrichtung eines oder mehrerer der Linienmerkmale festgelegt ist, und die Gradientenfeldprojektion kann eine Granularität auf Grundlage eines Gauß-Kernels definieren. Veranschaulichend können die Bilddaten Daten aus einer Vielzahl von Bildern umfassen, die von einer Vielzahl von Kameras erfasst und auf einen gemeinsamen Koordinatenraum abgebildet sind. Die Bilddaten können ferner unter Verwendung eines Glättungs-(Gewichtungs-)kernels geglättet werden, der einen 1D-Gauß-Kernel oder eine andere Gewichtungsfunktion umfassen kann. Die Kantenpunkte können auf Grundlage eines Grenzwerts ausgewählt sein, der durch einen absoluten Kontrast und einen auf Grundlage durchschnittlicher Intensität der Bilddaten normierten Kontrast definiert ist. Veranschaulichend ist der Linienerkenner dazu ausgelegt und angeordnet, Kantenpunkte auszutauschen, die Abschnitte paralleler Linien oder sich kreuzender Linien darstellen, um falsche Ausrichtungen zu korrigieren, und/oder Linien mit Polaritätsvariation zu identifizieren, einschließlich Mischpolaritäten in Linienmerkmalen auf Grundlage von Gradientenwerten in den Kantenpunkten. Ferner ist der Kantenpunktextraktor veranschaulichend dazu angeordnet, eine Vielzahl von Gradientengrößenmaxima in jedem der Gradientenprojektion-Unterbereiche zu erkennen. Diese Gradientengrößenmaxima können jeweils als einige der Vielzahl von Kantenpunkten identifiziert sein und können von einem Ortsvektor und einem Gradientenvektor beschrieben sein. Zusätzlich kann der Linienerkenner dazu angeordnet sein, Übereinstimmung zwischen mindestens einem Kantenpunkt der extrahierten Vielzahl von Kantenpunkten und mindestens einer Kandidatenlinie der erkannten Vielzahl von Linien durch Berechnen einer Metrik zu bestimmen. Diese Metrik kann auf einem Abstand des mindestens einen Kantenpunkts von der Kandidatenlinie und einem Winkelunterschied zwischen einer Gradientenrichtung des Kantenpunkts und einer Normalenrichtung der Kandidatenlinie basieren.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die nachstehende Beschreibung der Erfindung betrifft die beigefügten Zeichnungen, von denen:
-
1 ein Diagramm einer beispielhaften Sichtsystemanordnung ist, die Bilder eines Objekts erfasst, das mehrere Kantenmerkmale umfasst, und eines Sichtsystemprozessors, der ein Kantenerkennungswerkzeug/-modul gemäß einer veranschaulichenden Ausführungsform umfasst;
-
2 ein Diagramm ist, das eine Übersicht des Systems und Verfahrens zur Kantenpunktextraktion und Linienerkennung aus einem erfassten Bild gemäß einer veranschaulichenden Ausführungsform darstellt;
-
3 ein Ablaufdiagramm eines Kantenpunktextraktionsvorgangs gemäß dem System und Verfahren aus 2 ist;
-
4 ein Diagramm einer Feldprojektion auf einem Bereich eines Bilds ist, das Kantenmerkmale umfasst, was Teil des Kantenpunktextraktionsvorgangs aus 3 ist;
-
5 ein Diagramm ist, das die Anwendung eines Gauß-Kernels auf das Bild zum Glätten des Bilds zur Verwendung in dem Kantenpunktextraktionsvorgang aus 3 darstellt;
-
6 ein Diagramm einer Feldprojektion einschließlich der Anwendung eines Gauß-Kernels zum Glätten der Projektion zur Verwendung in dem Kantenpunktextraktionsvorgang aus 3 ist;
-
7 ein Diagramm ist, das eine graphische Übersicht des Kantenpunktextraktionsvorgangs aus 3 einschließlich der Anwendung von Gauß-Kerneln und Berechnung von absoluten und normierten Kontrastgrenzwerten für Kantenpunkte darstellt;
-
8 ein Graph ist, der einen Bereich geeigneter Kontraste für Kantenpunkte darstellt, die einen ausreichenden absoluten Kontrastgrenzwert und normierten Kontrastgrenzwert aufweisen;
-
9 ein Ablaufdiagramm eines Linienerkennungsvorgangs auf Grundlage erkannter Kantenpunkte in 3 ist, in dem ein beispielhafter RANSAC-Prozess gemäß einer veranschaulichenden Ausführungsform verwendet wird;
-
10 und 11 Diagramme sind, die falsche beziehungsweise richtige Anordnung von Kantenpunkten relativ zu eng beabstandeten Linienmerkmalen darstellen;
-
12 und 13 Diagramme sind, die falsche beziehungsweise richtige Anordnung von Kantenpunkten relativ zu sich kreuzenden Linienmerkmalen darstellen, die gemäß dem Linienerkenner des veranschaulichenden Systems und Verfahrens aufgelöst werden können;
-
14–17 Diagramme sind, die Beispiele für Linien darstellen, die Hell-Dunkel-Polarität, Dunkel-Hell-Polarität, entweder Hell-Dunkel- oder Dunkel-Hell-Polarität beziehungsweise Mischpolarität aufweisen, die gemäß dem Linienerkenner des veranschaulichenden Systems und Verfahrens aufgelöst werden können; und
-
18 ein Diagramm ist, das eine Modifizierung des Abdeckungswerts für eine erkannte Linie hinsichtlich einer benutzerdefinierten Maske darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Eine beispielhafte Sichtsystemanordnung 100, die gemäß einer veranschaulichenden Ausführungsform eingesetzt werden kann, ist in 1 dargestellt. Das System 100 umfasst mindestens eine Sichtsystemkamera 110 und kann eine oder mehrere zusätzliche optionale Kameras 112 (phantomhaft dargestellt) umfassen. Die veranschaulichende(n) Kamera(s) 110, 112 umfasst/-en einen Bildsensor (oder Bildaufnehmer) S und zugehörige Elektronik zum Erfassen und Übertragen von Bildern an einen Sichtsystemprozess(or) 130, der in einem Einzelprozessor und/oder einer Rechenvorrichtung 140 instanziiert sein kann. Die Kamera 110 (und 112) umfasst eine geeignete Linse/Optik 116, die auf eine Szene fokussiert ist, die ein inspiziertes Objekt 150 enthält. Die Kamera 110 (und 112) kann interne und/oder externe Beleuchtungsvorrichtungen (nicht dargestellt) umfassen, die gemäß dem Bilderfassungsprozess funktionieren. Die Rechenvorrichtung 140 kann jedes annehmbare prozessorbasierte System sein, das zum Speichern und Handhaben von Bilddaten gemäß der veranschaulichenden Ausführungsform in der Lage ist. Zum Beispiel kann die Rechenvorrichtung 140 einen PC (wie dargestellt), Server, Laptop, Tabletcomputer, ein Smartphone oder eine ähnliche Vorrichtung umfassen. Die Rechenvorrichtung 140 kann geeignete Peripherie umfassen, wie etwa eine busbasierte Bilderfassungskarte, die mit der Kamera verbunden ist. In alternativen Ausführungsformen kann der Sichtprozessor teilweise oder vollständig innerhalb des Kamerakörpers selbst enthalten sein und mit anderen PCs, Servern und/oder kamerabasierten Prozessoren vernetzt sein, die Bilddaten teilen und verarbeiten. Die Rechenvorrichtung 140 umfasst optional eine geeignete Anzeige 142, die eine geeignete graphische Benutzerschnittstelle (GUI) unterstützen kann, die gemäß in dem Sichtsystemprozess(or) 130 bereitgestellten Sichtsystemwerkzeugen und -prozessoren 132 funktionieren kann. Es ist anzumerken, dass eine Anzeige in verschiedenen Ausführungsformen ausgelassen und/oder lediglich für Einrichtungs- und Wartungsfunktionen bereitgestellt werden kann. Die Sichtsystemwerkzeuge können Teil jedes annehmbaren Software- und/oder Hardware-Pakets sein, das zur Verwendung bei der Inspektion von Objekten annehmbar ist, wie etwa die von Cognex Corporation aus Natick, MA im Handel erhältlichen. Die Rechenvorrichtung kann ferner zugehörige Komponenten einer Benutzerschnittstelle (UI) umfassen, darunter zum Beispiel eine Tastatur 144 und Maus 146 sowie einen Touchscreen innerhalb der Anzeige 142.
-
Die Kamera(s) 110 (und 112) bilden einiges oder alles eines Objekts 150 ab, das innerhalb der Szene angeordnet ist. Jede Kamera definiert eine optische Achse OA, um die ein Sichtfeld auf Grundlage der Optik 116, Brennweite etc. festgelegt wird. Das Objekt 150 umfasst eine Vielzahl von Kanten 152, 154 und 156, die jeweils in unterschiedlichen Richtungen angeordnet sind. Zum Beispiel können die Objektkanten die eines innerhalb eines Smartphone-Körpers angebrachten Deckglases umfassen. Veranschaulichend kann/können die Kamera(s) das gesamte Objekt oder konkrete Stellen (z. B. Ecken, an denen das Glas auf den Körper trifft) abbilden. Ein (gemeinsamer) Koordinatenraum kann in Bezug auf das Objekt, eine der Kameras oder einen anderen Bezugspunkt (zum Beispiel eine sich bewegende Ablage, auf der das Objekt 150 getragen wird) festgelegt sein. Wie gezeigt ist der Koordinatenraum durch Achsen 158 dargestellt. Diese Achsen definieren veranschaulichend orthogonale x-, y- und z-Achsen und Drehung θz um die z-Achse in der x-y-Ebene.
-
Gemäß einer veranschaulichenden Ausführungsform interagiert der Sichtsystemprozess 130 mit einer oder mehreren Anwendungen/Prozessen (die auf der Rechenvorrichtung 140 ausgeführt werden), die gemeinsam eine Reihe von Sichtsystemwerkzeugen/-prozessen 132 umfassen. Diese Werkzeuge können vielfältige herkömmliche und spezialisierte Anwendungen umfassen, die zur Auflösung von Bilddaten verwendet werden – zum Beispiel können vielfältige Kalibrierungswerkzeuge und affine Abbildungswerkzeuge verwendet werden, um erfasste Bilddaten auf ein vorbestimmtes (z. B. gemeinsames) Koordinatensystem abzubilden. Werkzeuge, die Daten zur Graustufenintensität von Bildern auf Grundlage eines vorbestimmten Grenzwerts in ein Binärbild umwandeln, können ebenfalls umfasst sein. Gleichermaßen können Werkzeuge bereitgestellt sein, die den Intensitätsgradienten (Kontrast) zwischen benachbarten Bildpixeln (und Subpixeln) analysieren.
-
Der Sichtsystemprozess(or) 130 umfasst einen Linienerkennungsprozess, ein -werkzeug oder -modul 134, der bzw. das mehrere Linien in einem erfassten Bild gemäß einer veranschaulichenden Ausführungsform ausfindig macht. Daher wird auf 2 Bezug genommen, die graphisch eine Übersicht eines Linienerkennungsvorgangs 200 gemäß der veranschaulichenden Ausführungsform darstellt. Der Vorgang 200 besteht aus zwei Hauptteilen. Es wird ein Eingangsbild 210 an den Prozessor bereitgestellt. Wie dargestellt umfasst das Bild ein Paar sich schneidender Kanten 212 und 214. Diese können einen Eckbereich des vorstehend beschriebenen Objekts 150 darstellen. Ein Kantenpunktextraktor 220 verarbeitet das Eingangsbild 210, um eine Reihe 230 von Kandidatenkantenpunkten zu erhalten, die Kantenpunkte 232 und 234 umfassen, die entlang Kanten 212 beziehungsweise 214 liegen. Die Kantenpunkte 232, 234 und ihre zugehörigen Daten (z. B. untenstehend beschriebene Informationen zu Intensitätsgradienten) werden an einen rekursiven Linienerkenner 240 bereitgestellt, der eine Reihe iterativer Prozesse an ausgewählten Kantenpunkten ausführt. Das Ziel der iterativen Prozesse ist ein Versuch, andere erkannte Kantenpunkte an Kandidatenlinienmerkmale anzupassen. Der Linienerkennungsprozess 240 führt wie dargestellt zu erkannten Linien 252 und 254. Diese Ergebnisse können an andere nachgelagerte Prozesse 260 bereitgestellt werden, welche die Informationen verwenden – z. B. Anordnungsprozesse, robotergesteuerte Handhabung, Inspektion, ID-Auslesen, Teile-/Oberflächeninspektion etc.
-
Es wird auf 3 Bezug genommen, die einen Vorgang zum Extrahieren von Kantenpunkten gemäß einer Ausführungsform beschreibt. Es werden ein oder mehrere Bilder der Szene erfasst, die ein Objekt oder eine Oberfläche mit zu erkennenden Kantenmerkmalen enthält (Schritt 310). Das/die Bild(er) kann/können durch eine einzelne Kamera oder durch eine Vielzahl von Kameras extrahiert werden. In jedem Fall können die Bildpixel in Schritt 320 (optional) durch geeignete Kalibrierungsparameter auf einen neuen und/oder gemeinsamen Koordinatenraum abgebildet werden. Dieser Schritt kann ferner ein Glätten der Bilder wie nachstehend beschrieben umfassen. In bestimmten Ausführungsformen, in denen eine Vielzahl von Kameras diskontinuierliche Bereiche der Szene abbilden – zum Beispiel mit Fokus auf Eckbereichen eines größeren Objekts –, kann der gemeinsame Koordinatenraum für den leeren Bereich zwischen Sichtfeldern der Kameras aufkommen. Wie nachstehend beschrieben können Linien, die sich zwischen solchen Sichtfeldern erstrecken (z. B. die Objektkante, die zwei erkannte Eckbereiche verbindet), durch das System und Verfahren der veranschaulichenden Ausführungsform extrapoliert werden. Die zum Erkennen von Linien erforderlichen Kantenpunkte werden in dem geeigneten Koordinatenraum durch den Kantenpunktextraktor unter Verwendung der Gradientenfeldprojektion in Schritt 330 aus dem/den Bild(ern) extrahiert. Gradientenwerte werden zuerst für jeden Pixel berechnet, wodurch zwei Bilder für x- und y-Gradientenkomponenten erzeugt werden. Das/die Bild(er) wird/werden weiterhin durch Projizieren des Gradientenfelds über viele messschieberähnliche Bereiche verarbeitet. Im Gegensatz zu einem herkömmlichen Messschieberwerkzeug, das den Intensitätswert projiziert, kann durch Projektion des Gradientenfelds gemäß der Ausführungsform die Gradientenausrichtung beibehalten werden, was den anschließenden Linienerkennungsprozess wie nachstehend beschrieben erleichtert.
-
In Schritt 340 und ferner unter Bezugnahme auf das Diagramm aus 4 wird ein Abschnitt (ein messschieberähnlicher Bereich) 400 des Bilds, der die Kandidatenkantenmerkmale enthält, einer Gradientenfeldprojektion dargestellt durch eine Vielzahl von Projektionen 410, 420, 430 unterzogen, über die (annäherungsweise) erwartete Ausrichtung der Kanten in einer Suchrichtung (Pfeil SR) abgesucht, wobei die Projektionen über den Bereich 400 in einer orthogonalen Projektionsrichtung (Pfeil PR) wiederholt werden. Für jede Projektion (z. B. Projektion 420) erscheinen Kanten als lokale Maxima in einem der Projektion zugehörigen Gradientenfeld 440. Im Allgemeinen weist eine Reihe von Kantenpunkten innerhalb der Projektion, die einer Kante zugehörig ist, einen Intensitätsgradienten (Vektoren 552, 554) auf, der orthogonal zu der Ausdehnungsrichtung der Kante ist. Wie nachstehend beschrieben kann der Benutzer die Projektionsrichtung auf Grundlage erwarteter Linienausrichtung definieren. Alternativ kann dies standardmäßig oder durch einen anderen Mechanismus bereitgestellt sein – z. B. Analyse der Merkmale des Bilds.
-
Zwei Granularitätsparameter sind an dem vorstehend beschriebenen Schritt zur Gradientenprojektion beteiligt. Vor der Gradientenfeldberechnung kann der Benutzer sich dazu entscheiden, das Bild unter Verwendung eines isotropen Gauß-Kernels zu glätten. Eine erste Granularität bestimmt die Größe dieses Gauß-Glättungskernels. Wie in dem Diagramm 500 aus 5 dargestellt wird ein geeignet dimensionierter Gauß-Kernel (z. B. groß 512, mittel 514, klein 516) zum Glätten des Bilds 210 angewendet. Der erste Granularitätsparameter bestimmt damit die Größe des isotropen Gauß-Glättungskernels vor der Feldberechnung.
-
Nach der Gradientenfeldberechnung wird durch den Prozess dadurch eine Gauß-gewichtete Projektion ausgeführt statt einer einheitlichen Gewichtung in herkömmlichen Messschieberwerkzeugen. Daher bestimmt ein zweiter Granularitätsparameter die Größe des eindimensionalen (1D) Gauß-Kernels, der wie in 6 während der Feldprojektion verwendet wird, in dem der Bereich 600 einem Gauß-geglätteten Kernel 610, 620, 630 ausgesetzt wird. Während eines typischen Betriebs bestätigt der Benutzer (unter Verwendung der GUI) alle dem Bild überlagerten extrahierten Kanten und passt dann die Granularitäten und Kontrastgrenzwerte an, bis die Anzahl extrahierter Kanten entlang der zu erkennenden Linien zufriedenstellend erscheint, während eine übermäßige Anzahl von Kanten aufgrund von Hintergrundrauschen in dem Bild vermieden wird. Anders ausgedrückt ermöglicht es dieser Schritt, dass das Signal-Rausch-Verhältnis für die Bildeigenschaft optimiert wird. Diese Anpassung kann ferner in verschiedenen Ausführungsformen automatisch unter Verwendung eines Standardwerts durch das System ausgeführt werden. Es ist anzumerken, dass die Verwendung einer Gauß-Gewichtsfunktion einer von vielfältigen Ansätzen zur Gewichtung der Projektion ist, einschließlich (z. B.) einer einheitlichen Gewichtung.
-
Der Gesamtablauf von Gradientenfeldextraktion und -projektion ist graphisch in dem Diagramm 700 in 7 dargestellt. Die zwei Granularitätsparameter, der isotrope Gauß-Kernel 710 und der 1D-Gauß-Kernel 720, sind jeweils in jeder Hälfte des Gesamtdiagramms 700 dargestellt. Wie dargestellt wird jedes erfasste Bild 210 Glättung und Dezimierung 730 ausgesetzt. Das resultierende Bild 740 wird dann Gradientenfeldberechnung 750 wie vorstehend beschrieben ausgesetzt, um die zwei Gradientenbilder 752 und 754 zu erzeugen. Diese Gradientenbilder werden ferner als gx und gy dargestellt und stellen zwei orthogonale Achsen in dem gemeinsamen Koordinatenraum dar. Es ist anzumerken, dass zusätzlich zu zwei Gradientenbildern ferner typischerweise das Intensitätsbild 756 dem Glättungs-, Dezimierungs- und Projektionsprozess 760 (unter Verwendung einer Gauß-gewichteten Projektion 770 auf Grundlage des 1D-Gauß-Kernels 720) ausgesetzt wird, da die verarbeiteten Intensitätsinformationen ferner zur Berechnung normierter Kontraste gemäß einer Ausführungsform eingesetzt werden – nachstehend beschrieben. Das Ergebnis sind die Projektionsprofile von Gradientenbildern 772(gx), 774(gy) und Intensitätsbild 776.
-
Unter weiterer Bezugnahme auf Schritt 350 des Vorgangs 300 (3) werden dann geeignete Kantenpunkte durch Kombinieren der 1D-Projektionsprofile von sowohl x- als auch y-Gradientenbild extrahiert. Dies wird unter Verwendung einer groben Kontrastberechnung 780 und einer normierten Kontrastberechnung 790 auf Grundlage des Intensitätsbilds erreicht. Insbesondere werden alle lokalen Spitzen, bei denen sowohl grobe projizierte Gradientengrößen als auch normierte projizierte Gradientengrößen jeweilige Grenzwerte übersteigen, als ein Kandidatenkantenpunkt für anschließende Linienerkennung gemäß den folgenden veranschaulichenden Gleichungen angesehen: (gx 2 + gy 2)1/2 > TABS (gx 2 + gy 2)1/2/I > TNORM wobei gx und gy die Werte der x-Gradienten- beziehungsweise y-Gradienten-Projektion an einer Pixelstelle sind, I die Intensität ist, TABS ein absoluter Kontrastgrenzwert für grobe projizierte Gradientengrößen ist und TNORM ein normierter Kontrastgrenzwert für intensitätsnormierte projizierte Gradientengrößen ist.
-
Insbesondere wird ein Punkt lediglich als Kandidatenkantenpunkt angesehen, wenn sein absoluter und normierter Kontrast beide ihren jeweiligen Grenzwert übersteigen. Dies wird durch den oberen rechten Quadranten 810 in dem beispielhaften Graph 800 von normiertem Kontrastgrenzwert TNORM gegenüber absolutem Kontrastgrenzwert TABS dargestellt. Die Verwendung von dualen (absoluten und normierten) Grenzwerten unterscheidet sich im Allgemeinen von bestehenden Ansätzen, die typischerweise einen absoluten Kontrastgrenzwert einsetzen. Die Vorteile dualer Kontrastgrenzwerte sind eindeutig, wenn beispielsweise ein Bild sowohl dunkle als auch helle Intensitätsbereiche umfasst, die beide Kanten von Interesse umfassen. Um Kanten in dunklen Bereichen des Bilds zu detektieren, ist es wünschenswert, einen niedrigen Kontrastgrenzwert festzulegen. Eine derart niedrige Kontrastfestlegung kann jedoch zur Detektion falscher Kanten in den hellen Abschnitten des Bilds führen. Um umgekehrt die Detektion falscher Kanten in den hellen Bereichen des Bilds zu vermeiden, ist es wünschenswert, einen hohen Kontrastgrenzwert festzulegen. Bei einer hohen Kontrastfestlegung kann das System jedoch bei der angemessenen Detektion von Kanten in dunklen Bereichen des Bilds versagen. Durch Verwendung eines zweiten normierten Kontrastgrenzwerts zusätzlich zu dem herkömmlichen absoluten Kontrastgrenzwert kann das System angemessen Kanten sowohl in dunklen als auch hellen Bereichen detektieren und die Detektion falscher Kanten in hellen Bereichen des Bilds vermeiden. Daher dient die Verwendung dualer Kontrastgrenzwerte durch Ermöglichen der Detektion relevanter Kanten bei gleichzeitiger Vermeidung von Störkanten der Maximierung der Geschwindigkeit und Robustheit der anschließenden Linienerkennungsstufe des Gesamtprozesses.
-
Unter weiterer Bezugnahme auf Schritt 350 (3) werden die Kantenpunkte, sobald alle extrahiert sind, in einer Datenstruktur dargestellt und gespeichert, die dafür zweckdienlich ist, als Arbeitsgrundlage für anschließende Linienerkenner zu dienen. Man beachte zum Beispiel das folgende Tupel: p = (x, y, gx, gy, gm, go, I, gm/I, m, n) wobei (x, y) die Stelle des Kantenpunkts ist, (gx, gy) die Werte seiner jeweiligen x-Gradienten- und y-Gradienten-Projektionen sind, (gm, go) die aus (gx, gy) berechnete Gradientengröße und -ausrichtung ist, I die Intensität an der Kantenpunktstelle ist, gm/I der intensitätsnormierte Kontrast ist, der durch Dividieren der Gradientengröße gm durch die Intensität I erhalten wird, m der Bildindex ist und n der Projektionsbereichsindex ist. Die Stelle des Kantenpunkts kann wie in dem standardmäßigen Messschieberwerkzeug zur Verbesserung der Genauigkeit interpoliert werden.
-
Es ist anzumerken, dass der Kantenpunktextraktionsprozess im Allgemeinen wirkt, um Feldprojektionen in einer einzelnen Richtung auszuführen, die im Wesentlichen mit dem erwarteten Linienwinkel übereinstimmt. Das Werkzeug ist daher gegenüber Kanten in diesem Winkel am empfindlichsten und seine Empfindlichkeit fällt für Kanten in anderen Winkeln schrittweise ab, wobei die Abfallrate von den Granularitätsfestlegungen abhängt, die indirekt die Feldprojektionslänge bestimmen. Als Ergebnis ist der Prozess auf die Erkennung von Linien beschränkt, deren Winkel „nahe” des erwarteten Linienwinkels liegt, was von dem durch den Benutzer bestimmten Winkelbereich abhängt. Während der Prozess dazu angepasst ist, Linien zu erkennen, die nicht orthogonal sind, ist in Erwägung zu ziehen, dass er in verschiedenen Ausführungsformen dazu verallgemeinert werden könnte, Linien jedes Winkels über 360 Grad zu erkennen, indem Projektionen in mehreren Richtungen (omnidirektionale Linienerkennung) einschließlich orthogonaler Richtungen ausgeführt werden.
-
Nun unter Bezugnahme auf Schritt 360 des Vorgangs 300 (3) werden Kantenpunktkandidaten über dem Grenzwert an den Linienerkenner gemäß einer veranschaulichenden Ausführungsform bereitgestellt. Beispielsweise wirkt der Linienerkenner rekursiv und setzt (z. B.) Techniken auf Grundlage der Übereinstimmung mit einer zufälligen Stichprobe (RANdom SAmple Concensus, RANSAC) ein. Ferner wird auf den Linienerkennungsvorgang 900 in 9 Bezug genommen. In Schritt 910 gibt der Benutzer die maximale Anzahl erwarteter Linien in einem Bild neben einem erwarteten Winkel, einer Winkeltoleranz, Abstandstoleranz und (veranschaulichend) einem minimalen Abdeckungswert (im Allgemeinen nachstehend definiert) über (z. B.) die GUI an. Diese Parameter werden durch den Linienerkenner zum Ausführen der folgenden Prozesse verwendet. Die Linien werden in jedem Unterbereich des Bilds erkannt, indem ein RANSAC-Linienerkenner rekursiv betrieben wird, wobei die Kantenpunkt-Ausreißer einer Stufe zu den Eingangspunkten der nächsten Stufe werden. Daher wählt in Schritt 920 der Vorgang 900 ein Paar Kantenpunkte aus, die Teil der Gruppe von Kantenpunkten sind, die in dem Kantenerkennungsprozess als Extrema identifiziert worden sind. Der Vorgang 900 versucht, auf Grundlage von passenden Gradientenwerten (innerhalb des ausgewählten Toleranzbereichs), die mit einer Modelllinie übereinstimmen, eine Modelllinie an die ausgewählten Kantenpunkte anzupassen. In Schritt 924 wird/werden ein oder mehrere Linienkandidat(en) aus Schritt 922 ausgegeben. Jede Linienerkennungsstufe gibt eine Kandidatenlinie, ihre Nicht-Ausreißer und Ausreißer aus. Die ausgegebene(n) Linie(n) wird/werden einer Berechnung von Nicht-Ausreißer-Kantenpunkten ausgesetzt, die eine Position und einen Gradienten aufweisen, die mit dem Linienkandidaten übereinstimmen (Schritt 926). In Schritt 928 wird die Kandidatenlinie mit der größten Anzahl von Nicht-Ausreißern identifiziert. Die vorstehend beschriebene Linienerkennungsstufe (Schritte 920–928) endet, wenn sie die maximale Anzahl von erlaubten RANSAC-Iterationen erreicht (Enscheidungsschritt 930). Die maximale Anzahl von Iterationen innerhalb jeder Linienerkennungsstufe wird automatisch unter Verwendung eines intern berechneten Worst-Case-Anteils von Ausreißern und einem von dem Benutzer angegebenen Sicherheitsgrad berechnet. Jede Linienerkennungsstufe gibt die Linie mit der maximalen Anzahl von erfassten Kantenpunkten aus allen ihren Iterationen aus – in Abhängigkeit von einer benutzerspezifizierten Anpassungstoleranz, geometrischen Einschränkungen und Polarität. Jeder Kantenpunkt kann lediglich der Nicht-Ausreißer-Liste einer einzigen Linie zugewiesen werden und jede Linie darf lediglich höchstens einen Kantenpunkt aus jedem Projektionsbereich enthalten. Die Gradientenausrichtung eines Kantenpunkts wird neben seiner Position verwendet, um zu bestimmen, ob er in die Nicht-Ausreißer-Liste einer Kandidatenlinie aufgenommen werden sollte. Insbesondere sollten Kantenpunkte eine Gradientenausrichtung aufweisen, die mit dem Winkel einer Kandidatenlinie übereinstimmt.
-
Wenn der Entscheidungsschritt 930 bestimmt, dass mehr Iterationen erlaubt sind, werden die Ausreißer aus dem besten Nicht-Ausreißer-Kandidaten an den RANSAC-Prozess (Schritt 920) ausgegeben (Schritt 940), um zum Erkennen eines Linienkandidaten verwendet zu werden.
-
Während jeder RANSAC-Iteration werden zwei Kantenpunkte, die zu unterschiedlichen Projektionsbereichen gehören, zufällig ausgewählt und es wird eine Linie an diese zwei Punkte angepasst. Die resultierende Kandidatenlinie wird nur weiter betrachtet, wenn ihr Winkel mit den Gradientenwinkeln beider Kanten in dem Punktpaar übereinstimmt und wenn der Winkel der Linie mit dem durch den Benutzer angegebenen Unsicherheitsbereich übereinstimmt. Im Allgemeinen ist die Gradientenrichtung eines Kantenpunkts nominell orthogonal, aber es ist erlaubt, dass sie um eine benutzerkonfigurierte Winkeltoleranz abweicht. Wenn eine Kandidatenlinie diese anfänglichen Prüfungen besteht, dann wird die Anzahl von Nicht-Ausreißer-Kantenpunkten bewertet, andernfalls wird eine neue RANSAC-Iteration eingeleitet. Ein Kantenpunkt wird nur als Nicht-Ausreißer einer Kandidatenlinie betrachtet, wenn seine Gradientenrichtung und -position mit der Linie übereinstimmen – auf Grundlage von durch den Benutzer angegebenen Gradientenwinkel- und Abstandstoleranzen.
-
Wenn die RANSAC-Iterationen das Maximum erreichen (Entscheidungsschritt 930), werden die Nicht-Ausreißer des besten erkannten Linienkandidaten einer verbesserten Linienanpassung ausgesetzt, unter Verwendung von (zum Beispiel) einer Regression der kleinsten Quadrate oder anderen annehmbaren Annäherungstechnik, und die Reihe von Nicht-Ausreißer-Kantenpunkten wird erneut bewertet, wobei diese Schritte ein Maximum von N (z. B. drei oder mehr) Mal wiederholt werden, bis die Anzahl von Nicht-Ausreißern sich nicht weiter erhöht oder verringert (Schritt 960). Dies ist die Linie, die in Schritt 970 als erkannt gekennzeichnet wird.
-
Der Entscheidungsschritt 980 bestimmt, ob mehr Linien zu erkennen sind (auf Grundlage von (z. B.) Absuchen weiterer Unterbereiche oder einem anderen Kriterium), und falls ja, springt der Prozess zurück zu Schritt 920, um an einer neuen Reihe von Kantenpunkten zu wirken (Schritt 982). Wenn die Punkte ausgeschöpft sind oder eine maximale Iterationsanzahl erreicht ist, gibt der Vorgang 900 in Schritt 990 eine Reihe (d. h. mehrere) erkannte Linien in dem Bild aus.
-
Der Mehrfachlinienerkenner ist dazu angepasst, in Fällen, bei denen zwei Linienergebnisse einander innerhalb des Inspektionsbereichs schneiden, eine endgültige Anpassung bestehender Ergebnisse vorzunehmen. Wie im Allgemeinen in 10 und 11 dargestellt können bei eng beabstandeten parallelen Linien 1010 und 1020 wegen des statistischen Charakters des RANSAC-Vorgangs mitunter falsche Linienergebnisse (d. h. 10) erhalten werden. Wenn solche Fehler vorkommen, kann jedoch ein Austausch von Nicht-Ausreißer-Punktgruppen (Pfeil 1120 in Gruppen 1110 in 11) mitunter die richtigen Linien mit erhöhten Abdeckungswerten und Resten mit verringerter Anpassung ausfindig machen. Punktaustausche können am wirkungsvollsten sein, wenn ein Bild wie dargestellt eng beabstandete parallele Linien enthält. Wenn das Bild umgekehrt Linien 1210 und 1220 enthält, die einander tatsächlich wie in 12 und 13 dargestellt kreuzen, dann sind die Abdeckungswerte nach einem Punktaustausch verringert (Pfeil 1230 in Gruppe 1240 in 12), sodass die ursprünglichen, vor dem Austausch erhaltenen Ergebnisse durch den Prozess beibehalten werden, um sich kreuzende Linien erfolgreich zu detektieren.
-
Es ist anzumerken, dass der RANSAC-Vorgang eine der vielfältigen Techniken ist, durch die der Linienerkenner Punkte an die Linie anpassen kann. In alternativen Ausführungsformen können die Kandidatenpunkte gemäß einer festgelegten Verschiebung dazwischen ausgewählt werden oder das Bild kann unter Verwendung von (z. B.) einer erschöpfenden Suchtechnik verarbeitet werden. Daher sollte wie hierin verwendet die Bezugnahme auf die RANSAC-Technik breit aufgefasst werden, sodass sie vielfältige ähnlicher Punktanpassungstechniken umfasst.
-
Zusätzliche Funktionen dieses Systems und Verfahrens können bereitgestellt werden. Diese umfassen Unterstützung von Mischpolarität, automatische Berechnung der Breite des Projektionsbereichs, Unterstützung von Linienerkennung mit Mehrfachsicht und Ermöglichen, dass das Eingangsbild frei von Vorverkrümmung ist, um optische Verzerrung zu beseitigen. Diese Funktionen werden weiter unten beschrieben.
-
Unter weiterer Bezugnahme auf die Beispiele aus 14–16 unterstützt das System und Verfahren zur Linienerkennung der veranschaulichenden Ausführungsform im Allgemeinen standardmäßige Polaritätseinstellungen Hell-Dunkel, Dunkel-Hell und (beziehungsweise) Beide für den Kontrast zwischen Kanten, die erkannt werden. Zusätzlich kann das System und Verfahren ferner eine Mischpolaritätseinstellung (17) unterstützen, bei der sowohl eine Hell-Dunkel- als auch eine Dunkel-Hell-Eigenschaft in derselben Linie vorkommt. Linienerkennungsergebnisse aller vier Einstellungen sind in der folgenden Figur dargestellt. In einer veranschaulichenden Ausführungsform kann das System und Verfahren eine Mischpolaritätseinstellung umfassen, die das Erkennen einer einzigen Linie ermöglicht, die Kantenpunkte entgegengesetzter Polaritäten enthält. Dies unterscheidet sich von einer herkömmlichen Einstellung für „Beide” Polaritäten, bei der alle Kantenpunkte einer einzigen Linie eine der Polaritäten aufweisen – aber nur eine Polarität. Die Mischpolaritätseinstellung kann neben anderen Anwendungen vorteilhaft sein, wenn sie zur Analyse der hellen und dunklen Schachbretter von (z. B.) einer Kalibrierungsplatte verwendet wird.
-
Der Benutzer kann verbesserte Verschiebungsinvarianz von Linienerkennung auswählen. In einem solchen Fall setzt der Kantenpunktextraktor im Wesentlichen überlappte Projektionsbereiche ein, um die Ergebnisstabilität zu verbessern. Wenn die Bereiche einander nicht überlappen, können sich betrachtete Pixel möglicherweise bei der Verschiebung des Bilds aus den Projektionsbereichen bewegen, was zu schlechter Verschiebungsinvarianz bei Linienerkennungsergebnissen führt. Überlappte Projektionsbereiche stellen sicher, dass die betrachteten Pixel kontinuierlich durch Projektionsbereiche abgedeckt sind. Wenn überlappte Projektionsbereiche verwendet werden, dann kann neben möglicher Low-Level-Optimierung zur Beibehaltung der Geschwindigkeit inkrementelle Berechnung ausgeführt werden.
-
Der Benutzer kann Masken bereitstellen, die bestimmte Abschnitte des erfassten Bilds und/oder der abgebildeten Oberfläche von der Analyse in Hinblick auf Linienmerkmale ausschließen. Dies kann wünschenswert sein, wenn die Oberfläche bekannte Linienmerkmale umfasst, die nicht von Interesse sind z. B. Strichcodes, die durch andere Mechanismen analysiert werden, Text und andere Strukturen, die nicht zu der Aufgabe gehören, für die Linien zu erkennen sind. Daher kann der Kantenpunktextraktor Bildmaskierung unterstützen, wenn „irrelevante” Bereiche in einem Bild ausmaskiert werden können und „relevante” Bereiche einmaskiert werden. Wenn solche Maskierung auftritt, werden die Abdeckungswerte der erkannten Linien veranschaulichend gemäß der Anzahl von Kantenpunkten, die innerhalb der Maske fallen, erneut gewichtet.
-
Es wird auf den beispielhaften Bildbereich 1800 aus 18 Bezug genommen, der Abdeckungswerte darstellt, wenn Bildmasken vorliegen, und die Wirkung von Bildmaskierung auf solche Abdeckungswerte. Der Kantenpunktextraktor unterstützt Bildmaskierung, wenn „irrelevante Bereiche” in einem Bild ausmaskiert werden können. Wie dargestellt ist die erkannte Linie 1810 (auf Grundlage der „relevanten” Maskenbereiche 1820) durch relevante Kantenpunkte gekennzeichnet. Solche relevanten Kantenpunkte bestehen aus relevanten Kantenpunkt-Nicht-Ausreißern 1830 zu der Linie 1810 und relevanten Kantenpunkt-Ausreißern 1840 zu der Linie 1810. Irrelevante Kantenpunkte 1850 auf der Linie 1810 liegen zwischen relevanten Bereichen 1820 der Maske, wie in diesem Beispiel dargestellt, und sind nicht in der Berechnung des Abdeckungswerts enthalten, auch wenn sie als Nicht-Ausreißer auf der Linie liegen. Potentielle Stellen 1860 für Kantenpunkte entlang der Linie 1810 werden wie dargestellt ebenfalls bestimmt. Diese potentiellen Stellen werden zwischen bekannten Punkten mit vorhersagbarer Beabstandung auf Grundlage der Beabstandung erkannter Punkte positioniert. Veranschaulichend werden die Abdeckungswerte der erkannten Linien gemäß der Anzahl von Kantenpunkten, die innerhalb der Maske fallen, erneut gewichtet. Der Abdeckungswert wird daher folgendermaßen modifiziert: Abdeckungswert = Anzahl von relevanten Kantenpunkt-Nicht-Ausreißern zu Linie/(Anzahl von relevanten Kantenpunkt-Nicht-Ausreißern zu Linie + relevante Kantenpunkt-Ausreißer zu Linie + Anzahl von relevanten potentiellen Stellen von Kantenpunkten).
-
Nach Ausführen des Linienerkennungsprozesses gemäß dem System und Verfahren hierin können die erkannten Linien auf verschiedenen Weisen auf Grundlage von durch den Benutzer (über (z. B.) die GUI) angegebenen Sortierkriterien sortiert werden. Der Benutzer kann aus intrinsischen Sortiermaße wie etwa Nicht-Ausreißer-Abdeckungswert, Intensität oder Kontrast wählen. Der Benutzer kann ferner aus extrinsischen Sortiermaße wie etwa vorzeichenbehaftetem Abstand oder relativem Winkel wählen. Bei der Verwendung extrinsischer Sortiermaße kann der Benutzer ein Bezugsliniensegment angeben, auf dessen Grundlage die extrinsischen Maße der erkannten Linien zu berechnen sind.
-
Wie im Allgemeinen vorstehend beschrieben kann dieses System und Verfahren ein Mehrfachsichtfeld(MFOV)-Überlastung umfassen, bei der ein Vektor von Bildern aus unterschiedlichen Sichtfeldern in den Prozess geleitet werden kann. Die Bilder sollten alle in einem gemeinsamen Client-Koordinatenraum auf Grundlage einer Kalibrierung angeordnet sein. Wie vorstehend angemerkt kann diese Funktion bei Anwendungsszenarien außerordentlich hilfreich sein, in denen mehrere Kameras zum Erfassen von Teilbereichen eines einzelnen Teils verwendet werden. Da die Kantenpunkte Gradienteninformationen beibehalten, können Linienmerkmale, die zwischen Lücken in dem Sichtfeld projiziert werden, dennoch aufgelöst werden wenn die Gradienten in beiden Sichtfeldern für eine bestimmte Linienausrichtung und Anordnung in jedem Sichtfeld übereinstimmen.
-
Insbesondere erfordert das System und Verfahren keine (ermöglicht dem Bild das Fehlen von) Beseitigung von Verkrümmung (d. h. erfordert es nicht, dass das Bild entkrümmt wird), um nichtlineare Verzerrung zu beseitigen, unter der Annahme, dass die Verzerrung nicht schwerwiegend ist. Wenn das Bild nicht entkrümmt wird, kann das System und Verfahren dennoch Kandidatenkantenpunkte detektieren und die Punktpositionen und Gradientenvektoren durch eine nichtlineare Transformation abbilden.
-
Es versteht sich, dass der gemäß dem System und Verfahren und verschiedenen alternativen Ausführungsformen/Verbesserungen bereitgestellte Linienerkenner ein wirkungsvolles und robustes Werkzeug zum Bestimmen mehrerer Linienmerkmale unter vielfältigen Bedingungen ist. Im Allgemeinen, bei Verwendung zum Erkennen von Linienmerkmalen, weist das System und Verfahren keine besondere Einschränkung zu der maximalen Anzahl von in einem Bild zu erkennenden Linien auf. Nur Speicher und Berechnungszeit setzen der Anzahl von Linien, die erkannt werden können, praktische Grenzen.
-
Das Vorstehende ist eine ausführliche Beschreibung von veranschaulichenden erfindungsgemäßen Ausführungsformen. Verschiedene Modifizierungen und Ergänzungen können vorgenommen werden, ohne von dem Grundgedanken und Schutzbereich dieser Erfindung abzuweichen. Merkmale jeder der vorstehend beschriebenen verschiedenen Ausführungsformen können mit Merkmalen anderer beschriebener Ausführungsformen kombiniert werden, soweit angemessen, um eine Vielzahl von Merkmalskombinationen in zugehörigen neuen Ausführungsformen bereitzustellen. Während zudem das Vorstehende eine Anzahl separater Ausführungsformen der Vorrichtung und des Verfahrens der vorliegenden Erfindung beschreibt, ist das hierin Beschriebene lediglich veranschaulichend für die Anwendung der Grundsätze der vorliegenden Erfindung. Zum Beispiel sollten wie hierin verwendet die Begriffe „Prozess” und/oder „Prozessor” breit aufgefasst werden, sodass sie vielfältige elektronische auf Hardware und/oder Software basierende Funktionen und Komponenten umfassen (und sie können alternativ als funktionale „Module” oder „Elemente” bezeichnet werden). Außerdem kann ein dargestellter Prozess oder Prozessor mit anderen Prozessen und/oder Prozessoren kombiniert oder in verschiedene Unterprozesse oder -prozessoren unterteilt werden. Solche Unterprozesse und/oder Unterprozessoren können verschieden gemäß Ausführungsformen hierin kombiniert werden. Ebenso wird ausdrücklich in Erwägung gezogen, dass jede Funktion, jeder Prozess und/oder Prozessor hierin unter Verwendung elektronischer Hardware, Software bestehend aus einem nichtflüchtigen computerlesbaren Medium von Programmanweisungen oder einer Kombination aus Hardware und Software umgesetzt werden kann. Zusätzlich werden wie hierin verwendet verschiedene richtungs- und anordnungsanzeigende Begriffe wie etwa „vertikal”, „horizontal”, „aufwärts”, „abwärts”, „unten”, „oben”, „Seite”, „vorne”, „hinten”, „links”, „rechts” und dergleichen lediglich als relative Konventionen verwendet und nicht als absolute Richtungen/Anordnungen in Bezug auf einen festen Koordinatenraum wie etwa die Wirkrichtung der Schwerkraft. Zusätzlich bezieht sich der Begriff „im Wesentlichen” oder „annäherungsweise” bei seinem Einsatz in Bezug auf ein angegebenes Maß, einen Wert oder eine Eigenschaft auf eine Menge, die innerhalb eines normalen Betriebsbereichs zum Erzielen erwünschter Ergebnisse liegt, der jedoch Schwankung aufgrund inhärenter Ungenauigkeit und Fehler innerhalb der erlaubten Toleranzen des Systems (z. B. 1–5 Prozent) umfasst. Entsprechend ist es beabsichtigt, dass diese Beschreibung lediglich beispielhaft aufgefasst wird und den Schutzbereich dieser Erfindung nicht anderweitig einschränkt.