-
VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht den Vorteil der vorläufigen US Anmeldung Seriennummer 61/826.416, eingereicht am 22. Mai 2013, mit dem Titel SYSTEM UND VERFAHREN ZUR EFFIZIENTEN OBERFLÄCHENMESSUNG MITHILFE EINES LASERVERSCHIEBUNGSSENSORS, wobei die gesamte Veröffentlichung durch Bezugnahme hier eingeschlossen ist.
-
GEBIET DER ERFINDUNG
-
Diese Erfindung betrifft Maschinenvisionssysteme, die verwendet werden, um die Verschiebung einer abgebildeten Objektoberfläche in drei Dimensionen (3D) festzulegen.
-
HINTERGRUND DER ERFINDUNG
-
Bei Herstellungs- und Montageprozessen ist es oft wünschenswert, einige oder alle Objektoberflächen mit einem hohen Grad an Genauigkeit zu messen und eine Abbildung der Gesamtverschiebung oder „Profil” (z. B. Höhe in der physikalischen Z-Koordinatenrichtung) mit Bezug auf verschiedene Lagen an der Objektoberfläche zu erstellen. Dieses Profil kann mithilfe eines Maschinenvisionssystems (hier auch „Visionssystem” genannt) in Form eines Laserverschiebungssensors (auch Laserstrahl „Profiler” genannt) festgelegt werden. Ein Laserverschiebungssensor erfasst und definiert das (dreidimensionale) Profil einer gescannten Objektoberfläche mithilfe eines planaren Vorhangs, der durch optische Ausbreitung eines Laserstrahls in einem „Fächer” quer zum Ausbreitungsweg gebildet wird. Bei einer herkömmlichen Anordnung ist die Visionssystemkameravorrichtung so ausgerichtet, dass sie die Strahlenebene von ausserhalb der Ebene erblickt. Diese Anordnung erfasst das Profil der projezierten Linie (die sich z. B. entlang der physikalischen X-Achse erstreckt) auf der Objektoberfäche, die entsprechend der Grundlinie (das heißt der relative Abstand entlang der Y-Achse) zwischen der Strahlen(Fächer)ebene und der Kamera bewirkt, dass die abgebildete Linie als Variation in der Richtung der Bild-Y-Achse als eine Funktion der physikalischen Z-Achsenhöhe des abgebildeten Punktes (entlang der Bild-X-Achse) erscheint. Bei einer typischen Anordnung schneidet die optische Achse der Kamera die Laserebene in einem spitzen Winkel, und die wohlbekannte Scheimpflug-Konfiguration der Laserebene, Kameralinse und des Kameralinsensensors kann eingesetzt werden, um ein Bild zu formen, bei dem die Laserstrahlenabweichung sich durch den interessierenden Bereich im Brennpunkt befindet trotz der sich ändernden Entfernung von der Kamera. Diese Abweichung stellt das Höhenprofil der Oberfläche dar. Laserverschiebungssensoren sind in einem weiten Bereich von Prüfungs- und Herstellungsvorgängen nützlich, bei denen der Anwender Oberflächendetails eines gescannten Objekts durch Triangulation messen und charakterisieren möchte. Eine Ausführungsform des Laserverschiebungssensors verwendet eine Visionssystemkamera mit einer Linsenanordnung und einem Abbildungssensor (oder „Imager”), der auf einem SSD- oder CMOS-Design basieren kann. Der Imager definiert ein vorher bestimmtes Feld von Graustufen- oder Farbwahrnehmungspixeln auf einer Bildebene, die fokussiertes Licht von einer abgebildeten Szene durch eine Linse empfängt.
-
Bei einer typischen Anordnung sind der Verschiebungssensor und/oder das Objekt in relativer Bewegung (normalerweise in Richtung der physikalischen Y-Koordinate), so dass die Objektoberfläche durch die Kamera gescannt wird und eine Abfolge von Bildern der Laserlinie bei gewünschten räumlichen Intervallen erfasst wird – typischerweise in Verbindung mit einem Encoder oder einer anderen Bewegungsmessungsvorrichtung (oder alternativ in zeitbasierten Intervallen). Jede dieser einzelnen Profillinien wird typischerweise von einem einzelnen, erfassten Bild eines größeren Blickfeldes, das bekanntermaßen die projezierte Linie enthält, abgeleitet. Diese Linien beschreiben zusammen die Oberfläche des abgebildeten Objektes. Das Sichtfeld wird durch eine Arbeitsdistanz charakterisiert – das heißt, die Oberfläche des Objektes sollte sich zwischen einer maximalen und einer minimalen Höhe befinden, um die Profilinformationen näherungsweise zu erfassen. Innerhalb dieser Arbeitsentfernung können sich die Größe und Form der Linie aufgrund einer Vielzahl von Faktoren ändern, einschließlich der Ausrichtung und des Reflexionsvermögens der Oberfläche, die gescannt werden soll, der sich ändernden Dicke der Laserebene (die Linie ist typischerweise an einer „Taille” bei einer etwa mittleren Tiefe vom Sensor am schmalsten und breiter sowohl am als auch weiter weg vom Sensor) und der sich ändernden Menge von Vergrößerung und perspektivischer Verkürzung im Kamerasystem als eine Funktion der Höhe. Diese Änderung bei Liniengröße/-Geometrie stellt eine von mehreren Herausforderungen beim Erhalt einer genauen Messung einer Oberfläche bei einer gewünschten Scangeschwindigkeit dar.
-
Bei der Messung eines Objektoberflächenprofils ist es manchmal wünschenswert, gleichzeitig ein Graustufenbild des Objektes zu erzeugen. Während solche Graustufenbilder einen Blick auf das Objekt liefern können, können Graustufenbilder unterschiedliche Charakteristika aufweisen, die einen nutzbringenden Vergleich zwischen diesem und dem abgeleiteten Objektoberflächenprofil verhindern können. Beispielsweise können das Graustufenbild und andere erzeugte Bilder unterschiedliche Pixelabstufungen aufweisen. Wenn diesbezüglich ein Objekt im physikalischen Raum weiter von der Kamera weg ist, z. B. bei einer geringeren Höhe, dann kann ein Pixel breiter erscheinen und mehr physikalischen Raum bedecken als ein Objekt, das sich näher bei der Kamera befindet. Dieser Effekt kann eine Verzerrung im resultierenden Graustufenbild verursachen und einen Vergleich zwischen dem Graustufenbild und anderen Bildern, die während des Prozess erzeugt wurden, verhindern oder schwierig machen. Deshalb ist es wünschenswert, dass die Graustufenbilder einheitliche Pixelabstufungen aufweisen, sowohl innerhalb eines einzelnen Graustufenbildes als auch in getrennten Graustufenbildern.
-
Oft erfordern Maschinenvisionsanwendungen den Einsatz von Abbildungskomponenten höchster Qualität. In letzter Zeit haben sich die Kosten von Abbildungsgeräten, wie etwa Kameras, erhöht. Als Folge davon werden die Marktteilnehmer gezwungen sein entweder die ständig steigenden Kosten für Komponenten höchster Qualität zu tragen oder sich mit niederer Qualität von Abbildungsgeräten zu geringeren Kosten zufrieden zu geben. Solche Geräte mit geringerer Qualität schließen oft Defekte oder Unregelmäßigkeiten ein, die diese weniger wünschenswert für den Einsatz als Geräte mit höherer Qualität machen. Der Einsatz von solchen Geräten geringerer Qualität kann möglicherweise die Ergebnisse von Maschinenvisionsanwendungen verschlechtern. Insbesondere können Sensoren oft eines oder mehrere schlechte Messelemente enthalten. Schlechte Messelemente können „klemmen”, indem sie überhaupt nicht sichtbar auf Beleuchtung reagieren, sondern einen in etwa konstanten Wert anzeigen. Andere schlechte Messelemente können auf Beleuchtung reagieren, wobei sich aber einer oder mehre Reaktionsparameter, wie etwa Versatz, Verstärkung, Nichtlinearität oder Geräuschpegel wesentlich von der Sollreaktion der „guten” Elemente unterscheiden.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Diese Erfindung überwindet die Nachteile des Standes der Technik in einem Ausführungsbeispiel, bei dem ein Laserverschiebungssensorsystem und entsprechende Verfahren zum Scannen des Höhenprofils einer Objektoberfläche vorgesehen sind, die den Scandurchlauf, die Verarbeitungsgeschwindigkeit, die Effizienz und die Vielseitigkeit des Systems verbessern. Bei einem Ausführungsbeispiel projeziert ein Verschiebungssensor eine Linie auf die Objektoberfläche und empfängt Licht von der projezierten Linie auf einem Imager so, das eine Vielzahl von Verschiebungswerten in einer Höhenrichtung definiert wird. Ein Visionssystemprozessor arbeitet an Reihen von Imagerpixeln, um eine Laserlinienmitte festzulegen, oder ganz allgemein, die Position der Laserlinie und/oder von speziellen Teilen der Linie (z. B. die Stopp- und Startpunkte der Liniendicke) in Spalten von Imagerpixeln in jeder von einer Vielzahl von interessierenden Bereichen. Reihen in Zonen ausserhalb dieser interessierenden Bereiche werden typischerweise nicht erfasst und/oder verarbeitet, so dass die Gesamtgeschwindigkeit der Bilderfassung und -Verarbeitung der Linie erhöht wird. Jeder interessierende Bereich definiert eine Vielzahl von Reihen, die den erwarteten Lagen der projezierten Linie auf der Objetoberfläche entsprechen. Ein Höhenbild wird aus den Lagen der projezierten Laserlinie bei jedem gescannten Bild erzeugt, wenn sich das Objekt relativ zum Imagersichtfeld bewegt. Ein GUI kann eingesetzt werden, um die Bereiche bilden, in denen der Benutzer numerische (physikalische Einheit) oder grafische Grenzen für jeden Bereich betritt. Bei weiteren Ausführungsformen verwendet das System Linienbreite, -Intensität und -Lage, um Graustufeninformationen (z. B. entlang jeder Laserlinie des Scannens) oder volle Graustufenbilder mit der Imager- und Laserbeleuchtung zu erzeugen. Die Graustufenbilderdaten und Höhenbilderdaten können in Verbindung miteinander verwendet werden, um Korrekturfaktoren zu erzeugen, die falsche Höhenmessungen, verursacht durch Kontrast, kompensieren können. Beispielsweise können auch Imagerpixel an den Prozessor in „binärer” Weise durch Vergleich jeder Pixelintensität („Intensität” wird definiert als einschliesslich, aber nicht beschränkt auf einen Spannungswert) in jeder Spalte des Imager direkt zu einer Referenzintensität übertragen werden. Die Pixel, die der Referenzintensität entsprechen oder diese übertreffen, werden mit einem logischen Wert 1 (oder einem anderen) versehen und die Pixel, die unter die Schwelle fallen, werden mit einer logischen Wert 0 (oder einem anderen) versehen. Die Linien-”Mitte” in jeder Spalte ist aus einer wahrscheinlichen Gruppierung von „1” Pixeln festgelegt, und diese Lage wird an den Prozessor weitergegeben, um einen Teil des Höhenbildes zu formen. Beispielsweise kann die Mitte eine physikalische Mitte der Linie sein oder irgendeine andere passende spezielle Lage, die mit der Linie in Zusammenhang steht, wie etwa Start- und Endpunkte.
-
Bei einem Ausführungsbeispiel schliesst ein System und Verfahren zur Messung der Verschiebung einer Objektoberfläche einen Verschiebungssensor ein, der eine Linie auf die Objektoberfläche projeziert und Licht von der projezierten Linie so auf einem Imager empfängt, dass eine Vielzahl von Verschiebungswerten in einer Höhenrichtung definiert wird. Ein Visionssystemprozessor arbeitet, um Reihen von Imagerpixeln zu verarbeiten, um eine Position der projezierten Linie in Spalten der Imagerpixel ausschliesslich in jeder einer Vielzahl von interessierenden Bereichen festzulegen. Jeder der interessierenden Bereiche definiert jeweils eine Vielzahl von Reihen von Imagerpixeln, die erwarteten Lagen der projezierten Linie auf der Objektoberfläche entspricht. Eine Lage der Position der projezierten Linie in jeder der Spalten entspricht einem physikalischen Verschiebungswert auf der Objektoberfläche. Beispielsweise sind das Objekt und der Verschiebungssensor in relativer Bewegung und eine Vielzahl der erfassten Bilder wird auf der projezierten Linie erfasst. Die erfassten Bilder definieren eine Gesamthähe der Objektoberfläche. Ein grafisches Benutzerinterface (GUI) ist wirksam mit dem Visionssystemprozessor verbunden. Es versetzt einen Benutzer in die Lage, Grenzen jedes der interessierenden Bereiche zu betreten. Das GUI liefert Eingaben für numerische, physikalische Einheiten der Grenzen. Beispielsweise kann das GUI ein erfasstes Bild des Objekts mit der darin enthaltenen projezierten Linie zeigen. Dieses GUI ist so aufgebaut und angeordnet, dass es grafische Positionierung der Grenzen durch den Benutzer ermöglicht. Das erfasste Bild ist im GUI beweglich, um einen Bereich von Verschiebungen der projezierten Linie während eines Scanningvorganges festzustellen. Beispielsweise befindet sich die Position der projezierten Linie annähernd in der Mute entlang der Spaltenrichtung. Bei einigen Ausführungsbeispielen analysiert ein Messprozess erfasste Bilddaten bei jeder der Vielzahl der interessierenden Bereiche, um Informationen zum Einsatz in einer nachgelagerten Verarbeitungsaufgabe zu erzeugen. Die Informationen, die in der nachgelagerten Verarbeitungsaufgabe eingesetzt werden, werden aus einer Kombination von analysierten erfassten Daten aus einer Vielzahl von interessierenden Bereichen erzeugt. Die nachgelagerte Verabeitungsaufgabe kann Informationen aus mindestens einem einzelnen erfassten Bild der Objekts (eine Scheibe), einer Vielzahl von erfassten Bildern des Objektes (einer Gruppe von Scheiben) und allen erfassten Bildern, die dem Objekt entsprechen (ein Gesamthöhenbild), einsetzen. Die nachgelagerte Verarbeitungsaufgabe kann eine Visionssystemaufgabe oder -Tool mit maßgeschneidertem oder konventionellem Design umfassen. Die Visionssystemaufgabe oder -Tool kann mindestens eines der Folgenden umfassen: Registrierung, Prüfung, Ausrichtung und Mustervergleich. Andere Aufgaben/Tools können Glätten, Durchschnittsbildung, andere Bildverarbeitungsvorgänge usw. einschließen, die beispielsweise in einer Gruppe von Scheiben durchgeführt werden kann. Beispielsweise schließt die nachgelagerte Verarbeitungsaufgabe eine Entscheidungsfindungsaufgabe ein. Diese Entscheidungsfindungsaufgabe kann so aufgebaut und angeordnet sein, dass sie mindestens einen der folgenden Prozesse ausführt: Objektzurückweisung, Linienkontrolle oder Alarm. Der Messprozess kann einen einzelenen Scanvorgang des Objektes oder eine vorher festgelegte Anzahl von Scanvorgängen in einer Gruppe verwenden (wie etwa bei Glättungs-, Durchschnittbildungs- oder anderen Bildverarbeitungsprozessen).
-
Bei einer anderen Ausführungsform schließt ein System und Verfahren zur Messung von Verschiebung einer Objektoberfläche einen Verschiebungssensor ein, der eine Linie auf eine Objektoberfläche projeziert und Licht von der projezierten Linie so auf einem Imager empfängt, dass eine Vielzahl von Verschiebungswerten in einer Höhenrichtung definiert wird. Ein Visionssystemprozessor arbeitet, um Reihen von Imagerpixeln zu verarbeiten, um eine Lage der projezierten Linie in Spalten der Imagerpixeln festzulegen. Der Visionssystemprozessor ist so aufgebaut und angeordnet, dass er aus der Lage der projezierten Linie ein Höhenbild der Objektoberfläche erzeugt. Auch ist der Visionssystemprozessor so aufgebaut und angeordnet, dass er aus den Intensitätswerten der projezierten Linie ein Graustufenbild der Objektoberfläche erzeugt. Der Visionssystemprozessor ist so aufgebaut und angeordnet, dass er Messungen im Graustufenbild einsetzt, um Korrekturfaktoren zu berechnen und auf das Höhenbild anzuwenden, so dass Fehler beim Höhenbild kompensiert werden. Die Fehler können falsche Höhenauslesungen im Höhenbild umfassen, so wie sie bei einem Kontrastwechsel auf der Oberfläche auftreten – zum Beispiel, wo ein gedrucktes Zeichen oder Symbol in einer kontrastierenden Stufe oder Farbe vorgesehen ist. Beispielsweise vewendet ein Messprozess (a) Messungen von Daten aus dem Höhenbild, um Messungen des Graustufenbildes zu formen oder (b) Messungen des Graustufenbildes, um Messungen des Höhenbilds zu formen. Auch kann ein Entscheidungsfindungsprozess vorgesehen sein, der Entscheidungen aufgrund des Messprozesses erzeugt.
-
Bei einem weiteren Ausführungsbeispiel umfasst ein System zur Messung der Vertschiebung einer Objektoberfläche einen Verschiebungssensor, der eine Linie auf die Objektoberfläche projeziert und Licht von der projezierten Linie so auf einem Imager empfängt, dass eine Vielzahl von Verschiebungswerten in einer Höhenrichtung definiert wird. Eine Schwellenschaltung empfängt Intensitätswerte aus Pixeln des Imager und führt einen Vergleich der jeweiligen Intensitätswerte mit einer Referenzintensität durch. Hier wird ein binärer Wert jedem der Pixel aufgrund des Vergleiches zugeordnet. Ein Visionssystemprozessor arbeitet, um Reihen von Pixeln zu verarbeiten, um eine Lage der projezierten Linie in Spalten der Pixel festzulegen, die einen binären Wert aufweisen, der die Gegenwart der projezierten Linie anzeigt, wobei der Visionssystemprozessor so aufgebaut und angeordnet ist, dass er ein Höhenbild aus der Lage der projezierten Linie in den Spalten der Pixel erzeugt. Beispielsweise wird die Intensität entweder als Spannung oder als Stromstärke definiert.
-
Bei einem weiteren Ausführungsbeispiel umfasst ein System zur Korrektur eines verdächtigen Pixel bei einem Graustufenbild einen Prozessor und einen Speicher einschliesslich der darauf befindlichen Anweisungen, die, wenn sie vom Prozessor ausgeführt werden, den Prozessor veranlassen, Laserlinienpositionsdaten und entsprechende Laserlinienintensitätsdaten zu erzeugen, die teilweise auf einem erfassten Bild eines Objektes beruhen, wobei die Laserlinienpositionsdaten mindestens eine Laserlinienpositionsangabe umfassen. Der Prozessor kann mindestens eine Laserlinienpositionsangabe identifizieren und mithilfe des Prozessors ersetzen, wobei ein Originalwert der Laserlinienintensitätsangabe der identifizierten Laserlinienpositionsangabe mit einem Ersatzwert für die Laserlinieintensitätsangabe entspricht. Der Prozessor kann das Graustufenbild aus den Laserlinienpositionsdaten und den entsprechenden ersetzten Laserlinienintensitätsdaten erzeugen.
-
Bei einer weiteren Ausführungsform umfasst ein System zur Erzeugung eines einheitlich abgestuften Graustufenbildes, das einem Höhenbild entspricht, einen Prozessor und einen Speicher einschliesslich der darin enthaltenen Anweisungen, die, wenn sie vom Prozessor ausgeführt werden, den Prozessor veranlassen, Laserlinienpositionsdaten und Laserlinienintensitätsdaten zu erzeugen, wobei jedes Pixel der Laserlinienintensitätsdaten eine Indizierung einschließt, die einer gemessenen Intensität entspricht. Der Prozessor kann jedes Pixel der Laserlinienpositionsdaten in einem Koordinatensystem abbilden, das einen physikalischen Raum darstellt, wobei mindestens zwei der abgebildeten Pixel eine Verbindungsfunktion aufweisen, die dazwischen angeordnet ist, wobei die Verbindungsfunktion Indizierung einschliesst, die der gemessenen Intensität entspricht. Der Prozessor kann mit dem Prozessor einen repräsentativen Positionswert und einen repräsentativen Indizierungswert für eine Vielzahl von Bins berechnen, wobei jedes der vielen Bins einem oder mehreren der abgebildeten Pixel und einem Teil der Verbindungsfunktion entspricht. Der Prozessor kann das einheitlich abgestufte Graustufenbild mithilfe der repräsentativen Indizierungswerte und die Ausgabe eines Höhenbildes mithilfe repräsentativer Positionswerte ausgeben.
-
Bei einem weiteren Ausführungsbeispiel umfasst ein System zur Messung der Verschiebung einer Objektoberfläche einen Verschiebungssensor, der eine Linie auf die Objektoberfläche projeziert und Licht von der projezierten Linie so auf einem Imager empfängt, dass die Laserlinienpositionsdaten und die Laserlinienintensitätsdaten definiert werden. Ein Visionssystemprozessor kann so aufgebaut und angeordnet sein, dass er ein Höhenbild aus den Laserlinienpositionsdaten erzeugt, ein Graustufenbild aus den Laserlinienpositionsdaten und den Laserlinienintensitätsdaten und eine Schätzung des Graustufenbildgradienten, wobei der Graustufenbildgradient eingesetzt wird, um einen Höhenkorrekturfaktor zu berechnen, der auf jedes Pixel des Höhenbildes angewendet wird.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die Beschreibung der Erfindung unten bezieht sich auf die beigefügten Zeichnungen, wobei:
-
1 eine schematische perspektivische Darstellung eines Laserverschiebungssensorsystems ist, das ein Bild eines Objektes erfasst, wenn relative Bewegung dazwischen in einer Scanningrichtung auftritt, gemäß eines Ausführungsbeispiels;
-
2 ein schematisches Diagramm eines Teils einer Imagerpixelanordnung ist und Bereiche einschließt, die Teile einer beispielhaften abgebildeten Laserlinie enthalten, gemäß der Ausführungsform von 1;
-
3 ein schematisches Diagramm des Imager der 1 ist, die die Erzeugung eines Höhenbildes aus einem erfassten Bild einer Laserlinie innerhalb des Sichtfeldes des Verschiebungssensors zeigt;
-
4 ein Flussdiagramm eines Prozesses zur Verarbeitung von Höhenbilddaten innerhalb des interessierenden Bereichs des gesamten erfassten Bildes ist, gemäß eines Ausführungsbeispiels;
-
5 ein Diagramm eines Bildes einer Laserlinie ist, in der zwei interessierende Bereiche nebeneinander ohne Spalt dazwischen liegen;
-
6 eine Bildschirmanzeige eines grafischen Benutzerinterface (GUI) zum Einsatz beim Verschiebungssensorsystem der 1 ist, bei dem die interessierenden Bereiche zur Erkennung auf dem Gesamtbild des gescannten Objekts in Bezug zu physikalischen Einheiten gesetzt werden können;
-
7 ein Diagramm einer Bildschirmanzeige einschließlich eines GUI ist, bei dem der Anwender die interessierenden Bereiche und Ausschluß auf ein Bild des Objektes manipuliert, das vom Verschiebungssensor erfasst ist;
-
8 ein Diagramm von Teilen eines Imagers an zwei interessierenden Bereichen ist, das Pixelreihen zeigt, die selektiv an- oder abgeschaltet werden, um die Auflösung des Bildes in dem Bereich zu verändern;
-
8A ein Diagramm von Teilen eines Imager an zwei interessierenden Bereichen ist, bei dem der erste Bereich bei voller Auflösung ist, wobei alle Pixelreihen angeschaltet sind, während die zweite Reihe bei halber Auflösung ist, wobei jede zweite Pixelreihe geschaltet ist;
-
9 ein Diagramm eines Bildes eines beispielhaften Objektes ist, das sowohl höhenverändernde Funktionen als auch Änderungen im Kontrast enthält, von dem ein zeitgleiches Höhenbild und Graustufenbild mithilfe des Verschiebungssensorsystems der 1 erfasst werden kann;
-
10 ein Diagramm eines Höhenbildes des beispielhaften Objektes der 9 ist, das Änderung in der Höhe verschiedener Funktionen als Intensitätsmessung zeigt und auch kontrastbasierte, falsche Höhenmessungen;
-
11 ein Diagramm eines Graustufenbildes des beispielhaften Objekts der 9 ist, das Änderung im Kontrast von gewissen Funktionen als Änderung in der Graustufenintensität zeigt und auch Schattierungen von gewissen erhabenenen Funktionen an deren Höhenübergängen zeigt;
-
12 ein Flussdiagramm eines Verfahrens zur Erzeugung eines Höhenbildes und eines Graustufenbildes aus Bilddaten ist, die mithilfe eines gescannten Bildes des Verschiebungssensors der 1 erfasst wurde;
-
12A ein Flussdiagramm eines Verfahrens zur Korrektur für null oder mehrere verdächtige Pixel in einer Reihe des Graustufenbildes ist, das möglicherweise verdächtige Pixel enthält;
-
12B ein Flussdiagramm eines Verfahrens zum Resampling der erfassten Bilder oder der Laserlinienpositionsdaten und Laserlinienintensitätsdaten ist, um ein Graustufenbild mit einer einheitlichen Pixelabstufung zu erzeugen;
-
12C ein Diagramm von Laserlinienpositionsdaten und Laserlinienintensitätsdaten ist;
-
12D ein Diagramm von abgebildeten Pixelwerten ist, die den Laserlinienpositionsdaten entsprechen;
-
12E ein Diagramm von abgebildeten Pixelwerten ist, die die Verbindungsfunktionen einschließen;
-
12F ein Diagramm von abgebildeten Pixelwerten ist, die repräsentative Positionswerte und repräsentative Indizierungswerte einschliessen;
-
12G ein Diagramm eines Teils des kalibrierten Höhenbildes und des einheitlich abgestuften Graustufenbildes ist;
-
13 ein Flussdiagramm ist, das die Kompensation für die kontrastbasierten, falschen Höhenauslesungen im Höhenbild mithilfe eines Vergleichs zwischen den Funktionen des Höhenbildes gegen entsprechende Funktionen im Graustufenbild zeigt; und
-
14 ein Blockdiagramm einer binären Technik zur Festlegung einer Mitte der Laserlinie in jeder Spalte durch Vergleich einer Intensität jedes Spaltenpixel mit einer Referenzintensität ist.
-
GENAUE BESCHREIBUNG
-
I. Systemüberblick
-
1 zeigt eine Visionssystemanordnung 100 einschließlich einer Laserverschiebungssensoranordnung 110, die so ausgerichtet ist, dass sie ein Objekt 120 (auch manchmal als „Teil” bezeichnet) abbildet. Die Verschiebungssensoranordnung (oder einfach „Verschiebungssensor”) kann sich in einem Einzelgehäuse 112 befinden, das an geeigneter Stelle in Bezug auf die abgebildete Szene montiert ist. Bei anderen Ausführungsformen kann der Verschiebungssensor einzelne, getrennte Teilelemente umfassen. Das Objekt 120 und der Verschiebungssensor 110 befinden sich in Relativbewegung (Doppelpfeil My), wobei sich entweder der Verschiebungssensor 110, das Objekt 120 oder beide entlang mindestens einer Achse bewegen (die Scanbewegungsrichtung). Die Bewegungsrichtung wird oft an dem dargestellten relativen (z. B. globalen) Koordinatensystem 124 ausgerichtet (in diesem Beispiel der physikalischen y-Achsenrichtung). Bei einer typischen Anordnung befindet sich das Objekt 120 auf einer beweglichen Oberfläche 130 (gestrichelt dargestellt), wie etwa einem Förderband oder einer beweglichen Plattform, die Bewegungsdaten aus einem Decoder oder einer ähnlichen Vorrichtung liefert, die wirksam mit dem Antriebssystem 132 der beweglichen Oberfläche in einer Art, die für Fachleute auf diesem Gebiet klar ist, verbunden ist. Das Objekt 120 ist beispielsweise eine Struktur mit einer umgebenden Oberfläche 140, die relativ planar ist, mit einer Höhe H1, und sie erstreckt sich bis zu einem äußeren Umfang 142. Innerhalb des beispielhaften äußeren Umfangs 142 befindet sich eine Oberfläche 144, die sich bei Verschiebung entlang der physikalischen z-Achsenrichtung zwischen einer Höhe H2 und einer Höhe H3 ändert. Es wird angemerkt, dass jede Höhe H1, H2 und H3 in physikalischen Größen, wie etwa Millimeter von einer Grundebene, die die Ebene der beweglichen Oberfläche 130 oder eine andere Referenzebene sein kann, beschrieben werden kann. Auch muss bemerkt werden, dass dieses gezeigte Objekt 120 nur ein Beispiel eines weiten Bereichs von möglichen Oberflächenformen darstellt, und dass dieses als Anwendungsbeispiel der Prinzipien des Ausführungsbeispiels des Systems und Verfahrens beschrieben wird. Bei anderen Beispielen kann die äußere, umgebende Oberfläche einen komplexeren Umfang mit zusätzlichen Funktionen, wie etwa Befestigungslöchern, definieren und die innere Struktur kann eine variablere Form aufweisen. Ebenso kann eine äußere, umgebende Oberfläche bei einem beispielhaften Objekt ganz oder teilweise wegfallen.
-
Die Verschiebungssensoranordnung 110 schließt eine Laseranordnung 150 ein, die eine Linse oder eine andere optische Anordnung 152 einschließt (z. B. eine Powell-Linse oder eine zylindrische Linse), die einen Vorhang oder Fächer 154 von Laserlicht so auf das Objekt 120 projeziert, dass sich eine Linie 156 entlang der physikalischen x-Achse bildet (im Großen und Ganzen quer zur Scanbewegungsrichtung My). Der Fächer 154 befindet sich im Allgemeinen in einer Ebene, die bei dieser Ausführungsform annähernd (oder im Wesentlichen) senkrecht zu einer Referenzebene ist, wie etwa die physikalische x y Ebene der beweglichen Oberfläche 130 und/oder eine Ebene der umgebenden Oberfläche 140 des Objektes. Der Verschiebungssensor 110 schließt auch eine Kameraanordnung (gestrichelt gezeichneter Kasten 160) ein, die im Allgemeinen aus einer Linsen-/Optikanordnung besteht, die beispielsweise in einer wohlbekannten Scheimpflug-Ausführung 162 angeordnet ist, und eine Imageranordnung („Imager”) 164. Der Imager 164 enthält eine Anordnung von lichtempfindlichen Pixeln mit einer vorher bestimmten Auflösung und die Kameraanordnung definiert im Allgemeinen eine optische Achse OA, die innerhalb des Sichtfeldes fällt, wo die Linie 156 auf dem Objekt bei verschiedenen Oberflächehöhen sichtbar ist. Die optische Achse OA definiert einen nicht parallelen (z. B. spitzen) Winkel ☐ mit Bezug auf die Ebene (und damit verbundene Linie 170) des Laserfächers 154. So wird jede Änderung/Verschiebung der Höhe der physikalischen z-Achse in der Linie entlang der physikalischen x-Achse durch die Kameraanordnung 160 als Änderung in der Lage (entlang der Bildachse Y1) in der resultierenden Linie 171 eines gezeigten zweidimensionalen (2D) Bildes 172, wie allgemein in der beispielhaften (und optionalen) Anzeige 174 gezeigt, die Teil eines Rechners (z. B. Handgerät, Laptop, Tablet oder PC) sein kann, abgebildet. Wie weiter unten beschrieben kann der Rechner mit Hardware und/oder Software interagieren, was einen grafischen Benutzerinterfaceprozess 176 und einen Vorrichtungseinrichteprozess einschließt, wobei jeder von diesen den Benutzer in die Lage versetzt mit dem Visionssystemprozessor 180 zu interagieren, um die verschiedenen Funktionen und Parameter des Verschiebungssensors 110 einzurichten, zu überwachen und zu steuern.
-
Es muss angemerkt werden, dass die gezeigte Anordnung der Achsen (x, y, z) 124 ein Übereinkommen ist und andere Darstellungen der Ausrichtung zueinander (z. B. Polarkoordinaten) ausdrücklich in Betracht gezogen werden. Wie gezeigt, wird auch eine Rotation um eine gegebene Achse dargestellt, z. B. durch den gekrümmten Doppelpfeil Rx, der die Rotation um die physikalische X-Achse zeigt.
-
Der Imager 164 ist wirksam mit einem Visionssystemprozessor 180 verbunden, der sich im Gehäuse 112 des Verschiebungssensors 110 bei dieser Ausführungsform befindet. Bei alternativen Ausführungsbeispielen können sich einige oder alle Komponenten der Visionssystemprozessoren und/oder -Prozesse ausserhalb des Gehäuses befinden (z. B. auf einem angeschlossenem PC). Der Visionssystemprozessor 180 führt einen Verschiebungssensorprozess 182 in Übereinstimmung mit dem Darstellungsbeispiel aus, der unten genauer beschrieben wird. Der Prozessor 180 empfängt auch relative Bewegungssignale von der sich bewegenden Oberfläche 130 oder einer anderen Vorrichtung, die Bewegung verursacht (z. B. einem Portal oder einem Manipulator, der den Verschiebungssensor und/oder das Objekt trägt). Erfasste Bilder werden in Verbindung mit solchen Bewegungssignalen erfasst, so dass die Linie 156 an einer ausgewähltem Objektpositionierung in der Szene abgebildet wird. So wie er hier verwendet wird, bezieht sich der Begriff erfasste Bilder auf eine Ansammlung von Pixelwerten auf dem Imager. Wie hier ebenfalls verwendet und weiter unten genauer beschrieben, bezieht sich der Begriff Höhenbild (oder Bereichsbild) auf die Ansammlung von Höhenpixelwerten, die von einem oder mehreren erfassten Bilder/n erzeugt wird, und der Begriff Graustufenbild bezieht sich auf die Ansammlung von Graustufenpixelwerten, die von einem oder mehreren erfassten Bilder/n erzeugt wird.
-
Wie ebenfalls weiter unten beschrieben wird, werden die Bilddaten (das heisst ein 2D Höhenbild – oft auch als „Bereichsbild” bezeichnet) für die Objekte zu nachgelagerten Datenverarbeitungsvorrichtungen und -Prozessen (190 in 1) übertragen, um sie in verschiedenen Produktionsabläufen einzusetzen, wie etwa Qualitätskontrolle, Objektmanipulation, Montage usw. Anwender verlangen typischerweise Messungen, die in physikalischen Einheiten ausgedrückt werden (z. B. Millimeter oder Mikrometer in x und y und z) eher als Bildeinheiten (das heisst Pixel/Pels in x, bewegungsbasierte Trigger von Encodern in y, und Reihenverschiebungen in z). Aus diesem Grund werden Verschiebungssensoren typischerweise kalibriert, damit sie Bildpixelausgaben in physikalische Einheiten umrechnen, so dass die Ausgabe des kalibrierten Verschiebungssensors in physikalischen Einheiten erscheint. Die Kalibrierung des Verschiebungssensors kann durch den Hersteller vorgenommen werden, so dass der Verschiebungssensor Ausgabe in physikalischen Einheiten liefert (wie etwa das Modell DS1100, das von Cognex Corporation in Natick, Massachusetts, USA lieferbar ist). Alternativ können Sensoren Ausgaben in unkalibrierten Bildeinheiten liefern. Wenn die Ausgabe in unkalibrierten Bildeinheiten erscheint, ist der Anwender oder die Anwendung aufgefordert Eingabedaten in Bildpixeleinheiten zu verarbeiten. Der Anwender kann auch die gewünschten Höheneinheiten in Bezug auf Höhenbildpixelstufe (in physikalischen Einheiten) und Höhenbildpixelebenenstufe (mit Bezug darauf, wie viele physikalische Einheiten jede Pixelebene darstellt) bezeichnen, wenn das Höhenbild integrale Pixelwerte verwendet. Bei einem anderen Beispiel kann das Höhenbild als 2D Anordnung der fließenden Punktwerte dargestellt werden.
-
Es muss auch bemerkt werden, dass die Begriffe „Prozess” und/oder „Prozessor”, wie sie hier verwendet werden, weit gefasst werden sollten, so dass sie eine Reihe von Funktionen und Komponenten, die auf elektronischer Hardware und/oder Software beruhen, einschließen. Darüberhinaus kann ein gezeigter Prozess oder Prozessor mit anderen Prozessen und/oder Prozessoren kombiniert werden oder in verschiedene Unterprozesse oder -Prozessoren aufgeteilt werde. Solche Unterprozesse und/oder Unterprozessoren können auf verschiedene Weise gemäß der Ausführungsbeispiele hier kombiniert werden. Ebenso wird ausdrücklich in Betracht gezogen, dass jede Funktion, jeder Prozess und/oder Prozessor, der hier erwähnt wird, mit Hilfe elektronischer Hardware, Software, die aus einem nichtransitorischen, komputerlesbarem Medium der Programmanweisungen besteht, oder einer Kombination aus Hardware und Software hier umgesetzt werden kann.
-
Der Sensorprozess 182 schließt Kalibrierungswerte ein, die als Einrichtung eingeführt werden, die die Lage der Linie innerhalb des Blickfeldes des Imager mit einer physikalischen Höhe (z. B. H1, H2, H3) abbildet. Der Kalibrierungsprozess kann ein Kalibrierungsobjekt einsetzen, das sich entlang der z-Achse über eine Bewegungsplattform oder ein anderes Beförderungsmittel zu präzisen, bekannte Höhen bewegt, und die relative y-Lage (das heißt Y1 in der 2D Darstellung) der abgebildeten Linie bei dieser physikalischen Höhe wird verwendet, um eine Kurve oder Tabelle von Werten zu erstellen, die jede y-Lage mit einer gegebenen physikalischen Höhe in Bezug setzen. Jede y-Lage in jeder Spalte (wie unten bemerkt, können viele y-Werte pro Spalte existieren) wird auf einer physikalische Höhe abgebildet, und die gleiche y-Lage in verschiedenen Spalten kann auf einer anderen physikalische Höhe abbilden, die auf Kalibrierungsparametern und dergleichen beruht. Alternativ können Werte mithilfe eines parametrischen Modells der Beziehung zwischen Pixellagen und den x, z Lagen in physikalischen Einheiten erzeugt werden. Beispielsweise bestimmt der Sensorprozess 182 die Lage der Linie (z. B. die Mitte oder eine andere ausgesuchte Lage/Lagen, wie etwa Start- und Endlage der erkannten Liniendicke) und verwendet dann diesen Wert zur Bestimmung der physikalischen Höhe dieses Teils der Objektoberfläche. Genauer gesagt und mit Bezug auf das Diagramm von 2 wird ein Teil des Imager 164 gezeigt. Der Imager besteht aus einer M-Reihe X N-Spaltenanordnung von lichtempfindlichen Elementen, die allgemein als „Pixel” 210 bezeichnet werden. Diese Pixel erzeugen jeweils eine Ladung, die auf Aussetzung dem einfallenden Lichts beruht. Diese Ladung wird duch eine Analog-zu-Digital Umwandlungsvorrichtung geschickt (nicht gezeigt), wo sie in einen digitalen, numerischen Wert in Bezug auf den Ladungsstand umgewandelt wird. Dieser Wert wird als Bildpixeldaten zur Verwendung durch den Prozessor 180 gespeichert. In einem Beispiel, das nicht einschränkend ist, kann eine Pixelanordnung von 768 Reihen X 1025 Spalten verwendet werden. Als weiteres, nicht einschränkendes Beispiel wird ein Blickfeld von etwa 175 mm mit einem vertikal arbeitenden Bereich (WR) vorgesehen, der (entlang 170 vom Laser 150) zwischen etwa 140 mm (WRmin) und 315 mm(WRmax) variiert. Diese Maße sind nur ein Beispiel eines weiten Bereichs von wirksamen Parameter und werden durch weitere Darstellungen der Funktionsweise hier geliefert.
-
Der dargestellte Teil der Pixelanordnung enthält Segmente 220, 230 der abgebildeten Laserlinie, bei der die Höhe übergeht zwischen den niederen und höheren Oberflächen 140 und 144. Das heißt, die Pixel in der Anordnung, die dem Licht der Linie ausgesetzt sind, werden innerhalb der gestrichelten Linien der Segmente 220, 230 gezeigt. Es wird angemerkt, dass einige Reihen innerhalb jedes Liniensegments fallen. Typischerweise berechnet der Visionssensorprozess 182 eine Linienmitte in jeder Spalte. Diese Linienmitte kann in eine Unterpixelebene aufgelöst werden, die auf eine Reihe von Faktoren und Berechnungen beruht, die den Experten auf diesem Gebiet bekannt sind. Beispielsweise kann eine Auflösung von 1/16 eines Pixel mit entsprechenden Algorithmen und den Daten aus einem oder mehreren Scanvorgängen erhalten werden.
-
Jeder Scanvorgang erzeugt eine Linie eines Höhen- oder Bereichsbildes. Wie in 3 gezeigt, wird das erfasste Bild 310 des Sichtfeldes, das eine Laserlinie 312 enthält, verarbeitet, um ein N-breites Feld 320 von Werten 322 zu erzeugen, das eine physikalische Höhe (z-Höhe, z. B. in mm) für jede Pixelspalte (0...N – 1) des erfassten Bildes enthält. Während bei einigen Ausführungsformen zu diesem Zeitpunkt die physikalische Höhe für jeden Wert 322 erzeugt werden kann, schiebt die vorliegende Ausführungsform die Erzeugung von physikalischer Höhe bis zu einem anderen, nachgelagerten Prozessschritt hinaus. Bei der vorliegenden Ausführungsform wird die Lage der Laserlinie in Unterpixelauflösung in Pixeleinheiten erzeugt und in einem nachfolgendem Schritt werden Kalibrierungsparameter auf die Pixeleinheiten angewendet, um einen Satz von x, z Werten zu erzeugen (das heisst die Scanlinie bei physikalischen Einheiten). Es wird angemerkt, dass es mehr oder weniger (x, z) Paare in der physikalischen Einheitsscanlinie geben kann als im Linienlagevektor (in Pixel), der durch den Imager erzeugt wird, weil die Scanlinie wieder in physikalischen Einheiten abgebildet werden kann, um, wie gewünscht, eine feinere/gröbere Probe einzuschliessen. Auch kann sich die Anzahl der Werte (322) pro Spalte entlang der X-Richtung ändern, so dass mehr als ein Wert pro Spalte erzeugt wird. Beispielweise können die Start- und Endpositionen der Laserlinie in der x-Richtung vorgesehen werden, ebenso wie die Mitte oder andere Maße, wie etwa eine Standardabweichung. Im Allgemeinen stellt das Feld 320 ein Höhenbild dar, das aus Höhenwerten für jede x-Koordinate (Spalte) über die gescannte Objektoberfläche besteht. Wenn das Objekt gescannt wird, kann eine Serie von aufeinander folgenden Feldern kombiniert werden (mit der Kenntnis der y-Richtungsbewegung zwischen den Scanvorgängen, die auf dem Encoder beruhen), um ein Gesamtprofil der Objektoberfläche abzuleiten.
-
Beim Erzeugen jedes Höhenbildes (320) vermindert der Prozess Geräusch und verbessert die Genauigkeit bei der Auffindung der Linienmittelage (und so des Höhenwertes) durch die Anwendung eines Filteralgorithmus auf einen Umkreis von Reihen. Eine Reihe von herkömmlichen und/oder neuen Filtern kann eingesetzt werden. Bei einem Ausführungsbeispiel läuft ein Liniensuchalgorithmus auf dem Ergebnis der Anwendung eines symmetrischen 1-2-4-2-1 Vertikalfilterkernel zum erfassten Bild etwa für jede Linie, für die eine Messung gemacht wurde, das heisst für jede Reihe im erfassten Bild werden Pixelwerte in vorliegender Reihe mit I multipliziert, die Pixelwerte der vorherigen Reihe werden mit 2 multipliziert, die davor liegende Reihe wird mit 4 multipliziert, die davor liegende Reihe wird mit 2 multipliziert und die Reihe davor mit 1. Die Filterausgabe ist die Summe der fünf oben genannten Produkte. Die Wahl des 1-2-4-2-1 Filters ist ungeradzahlig, so dass der Mittelpunkt der Anwendung des Filters als Ergebnis der Anwendung des Filters derselben Lage entsprechen kann. Andere Filter können eingesetzt werden, je nach Vorliebe des Anwenders, der Projektparameter oder anderer Umstände. Beispielsweise können solche anderen Filter unterschiedliche Breiten und/oder unterschiedliche Koeffizienten einschließen, wie etwa 1-2-4-6-4-2-1 oder 1-3-3-1 usw. Die Filterwerte in den Reihen über, bei und unter der maximalen Filterantwortlage werden verwendet, um die Linienlage mit Unterpixelgenauigkeit mithilfe quadratischer Interpolation (oder anderer bekannter Techniken) festzustellen. Wenn es ein Plateau bei der Filterantwort gibt, dann wird die Mitte des Plateaus verwendet anstatt der Spitzenposition.
-
Besondere Aufmerksamkeit sollte den Reihen gewidmet werden, die sich in der Nähe des Anfangs- und Endbereichs im Bild befinden. Für die ersten und letzten Linien erzeugt das System keine Filtermessung. Für die zweiten und zweitletzten Linien nähert das System den gewünschten 1-2-4-2-1 Kernel mit einem 3-4-2-1 oder einem 1-2-4-3 Kernel. Bei einem Ausführungsbeispiel kann der Liniensuchprozess insbesondere die folgenden Filter relativ zu verschiedenen Lagen im interessierenden Bereich (auch weiter unten beschrieben) des Bildes einsetzen:
Reihennummer (im analysierten Bereich) | Angewandter Filter |
0 | keine Filtermessung durchgeführt |
1 | 3-4-2-1 |
2, 3, ... | 1-2-4-2-1 |
zweitletzte Reihe | 1-2-4-3 |
letzte Reihe | keine Filtermessung durchgeführt |
-
Es wird wiederum bemerkt, dass die Filterantwort für eine gegebene Reihe tatsächlich nicht berechnet werden kann, bis die zwei folgenden Reihen erfasst wurden – ausser es wird nur eine einzelne folgende Reihe verwendet, wenn die Antwort für die zweitletzte Reihe in einem Bereich berechnet wird. Wenn zusätzlich der Anwender angibt, dass die Höhenmessung einen Bereich Hmin–Hmax in physikalischen Einheiten umfassen soll, so müssen wir das in einen Bereich von Reihen Rmin bis Rmax umwandeln und dann mindestens jeweils eine Reihe oben und unten addieren, so dass wir Filterausgaben erhalten können, die Messungen im vollen Umfang von Hmin bis Hmax entsprechen.
-
II. Interessierende Teilbereiche
-
Mit Bezug auf 2 wird überlegt, dass verschiedene Oberflächenprofile interessierende Funktionen enthalten können, die durch einen beträchtlichen Abstand innerhalb des Arbeitsbereiches getrennt sind und Funktionen ausserhalb der Bereiche, die interessierende Funktionen enthalten, fehlen oder sind für die Analyse des Objekts unwichtig. Beim Beispiel des Objekts 120 ist die Grundfläche 140 und die erhabene Fläche 114 interessant und es gibt keine signifikanten Funktionen im Höhenbereich zwischen diesen Oberflächen. So gibt es einen interessierenden Bereich um die Höhe H1 und zwischen den Höhen H2 und H3. Alle anderen Höhen werden für die Analyse nicht gebraucht. Allerdings können wichtige Verarbeitungszeit und -Resourcen für die Analyse des gesamten Sichtfeldes für Linieninformationen verbraucht werden. Bei vielen Anwendungen kann die allgemeine Lage einer interessierenden Funktion innerhalb eines Sichtfeldes innerhalb eines relativ kleinen Höhenbereichs vorhersehbar festgestellt werden. Gemäß eines Ausführungsbeispiels und weiter mit Bezug auf das Verfahren 400 der 4 definiert der Sensorprozess eine Vielzahl von interessierenden Bereichen RO11 und RO12 (2) im Sichtfeld. Jeder Bereich schließt eine Vielzahl von Reihen im Imager ein. Jeder interessierende Bereich ist in der Spalteneinheit des Imagers ausreichend groß, um die erwartete Lage einer Laserlinie aufgrund der Höhe der Objektfunktionen und Änderungen in der Höhe entsprechend der Bewegung des Objekts relativ zum Sichtfeld oder entsprechend anderen Prozessanforderungen aufzunehmen. Bei einer Ausführungsform schliesst jeder interessierende Reihenbereich Pixel aus allen angrenzenden Spalten ein. Gemäß des Verfahrens 400 bildet der Benutzer aufgrund einer Schätzung der physikalischen Höhe der interessierenden Objektfunktionen, deren Höhenänderungen, da sich diese Funktionen durch den Scanvorgang und Prozessänderungen bewegen, interessierende Bereiche, die der Prozess mit Pixellagen im Imager (Schritt 410) koordiniert. Beim entsprechenden Encoderwert (oder einem anderen Wert, der auf Bewegung beruht) erfasst der Imager ein erfasstes Bild des Objektes (Schritt 420). Der Prozess des Festlegens von interessierenden Bereichen bringt den Imager oder eine andere nachgelagerte Komponente dazu, Bildpixeldaten ausschließlich (nur) innerhalb der Pixelreihen zu erfassen, die sich innerhalb der festgelegten interessierenden Bereiche befinden. So kann sich der Prozessor auf Resourcen in Bilddaten nur aus jedem interessierendem Bereich konzentrieren und so die Bildauslesezeit reduzieren (da Bildpixel ausserhalb der interessierenden Bereiche nicht übertragen werden) und die Berechnung der Oberflächenhöhe in jedem Bild beschleunigen. Es wird angemerkt, dass der interessierende Bereich für das Liniensegment 230 ausreichend groß ist, um die Änderung der Oberflächenhöhe der Oberfläche 144 aufzunehmen, da sich das Objekt durch den Scanvorgang entlang der y-Achse bewegt ebenso wie andere Prozesserfordernisse.
-
Bei einer Ausführungsform schließt der Imager die Fähigkeit ein, die Ausgabe der ausgewählten Reihen über den Prozessor 180 an- oder abzuschalten. Bei anderen Ausführungsbeispielen kann der Imager Bereiche von Reihen zum Anschalten (Auslesung der gewählten Reihen ist möglich) oder Abschalten (Auslesung der abgewählten Reihen wird verhindert) festlegen. Andere Anordnungen, die die Verarbeitung von vorher bestimmten Reihen von Bilddaten blockieren, können bei anderen Ausführungsformen umgesetzt werden.
-
Im Schritt 430 verwendet das Verfahren 400 den oben beschriebenen Liniensuchalgorithmus, um die Lage der Linie mit Unterpixelgenauigkeit zu suchen. Laserlinienintensitätsdaten und Laserlinienpositionsdaten können auch durch Spitzenerkennung berechnet werden. Für jede Spalte wird der Spitzenwert/die -Lage der Filterantwort gefunden, z. B. werden die erfassten Pixelwerte dem oben genannten Filterprozess unterworfen. Die Laserlinienpositionsdaten, die eine oder mehrere Laserlinienpositionsangabe/n umfassen, entsprechen der Position des Filterspitzenwerts (in jeder Spalte) Die Laserlinienintensitätsdaten, die eine oder mehrere Laserlinienintensitätsangabe/n umfassen, entsprechen diesem Filterspitzenwert. Der Begriff Angabe wird mit Bezug auf einen gemessenen Wert, wie etwa einen Pixelwert, verwendet; die Linienintensitätsangabe bezieht sich auf den Laserlinienintensitätspixelwert, und die Linienpositionsangabe bezieht sich auf die Laserlinienposition. Der Begriff Daten wird manchmal mit Bezug auf einen Satz von einzelnen Angaben verwendet und manchmal mit Bezug auf eine einzelne Angabe. Die Lage der Linie in jeder Spalte wird im Schritt 440 verwendet, um eine Scheibe eines Gesamthöhenbildes zu formen, das das Profil dieser Scheibe des Objekts darstellt. Im optionalen Entscheidungsschritt 450 können die Messungen einer Scheibe analysiert werden, um festzstellen, ob eine Bedingung vorhanden ist – wie etwa ein Objekt, das ausserhalb der Spezifikation liegt. Wenn das der Fall ist, zeigt das System die Bedingung (z. B. einen Fehler) im Schritt 452 an und ergreift andere passende Maßnahmen (z. B. Auswurf des fehlerhaften Objekts, Alarmläuten, Anhalten des Bandes usw.) und kann eine Schleife bilden, um das nächste Objekt im Schritt 410 zu prüfen. Allerdings wird ausdrücklich in Betracht gezogen, dass verschiedene Anwendungen weiterhin ein Objekt scannen können, sogar nachdem ein fehlerhafter Zustand festgestellt wurde (über den gestrichelten Ast 454, der zum Scanerfassungsschritt 420 zurückführt). Es wird auch angemerkt, dass der Schritt 450 auch dazu verwendet werden kann, einzelne oder mehrere Scanvorgänge (Scheiben) des Bildes zu zählen. Diese Scheibe/n kann/können einen interessierenden Bereich oder eine Kombination von interessierenden Bereichen im Sichtfeld darstellen. Das heisst, während einige Systemprozesse einen Scanvorgang der ganzen Objektoberfläche (beispielsweise um sicherzustellen, dass Ausrichtung, Messungen und Entscheidungsfindung auf der vollen 3D Darstellung des Objektes beruhen) einsetzen, können einige Systemprozesse, wenn gewünscht, einzelne Scanvorgänge (Scheiben) der Objektoberfläche (das heisst Teilquerschnitte) einsetzen und zum Beispiel ausrichten, messen, Daten sammeln und/oder Entscheidungen treffen aufgrund jedes einzelnen Scanvorganges/Scheibe. So wird die Scheibe über Schritt 456 an einen oder mehrere nachgeschalteten Prozesse weitergeleitet. Zusätzlich verwenden einige Systemprozesse Gruppen von Scanvorgängen (z. B. zehn Querschnitte gleichzeitig) und kombinieren diese Daten mithilfe einer passenden Technik (wie Glätten, Durchschnittsbildung, andere Bildverarbeitungsvorgänge usw.). Diese kombinierten Daten werden dann verwendet um auszurichten, zu messen, Daten zu sammeln und/oder Entscheidungen zu treffen. Scannen kann weiter erfolgen, da diese Gruppe über den Zweig 454 verarbeitet wird, da Scheiben zu den nachgeschalteten Systemprozess/en im Schritt 456 gesendet werden. Darüberhinaus verwenden einige Systemprozesse eine Kombination des obigen, um schnelle Messungen/Entscheidungen usw zu liefern, die auf einzelnen oder Gruppen von Scanvorgängen beruhen und Endmessungen usw. die auf dem gesamten gescannten Objekt (oder einem größeren Teil davon) beruhen.
-
In Abwesenheit eines signalisierten Zustandes (Fehler, einzelne Scheibe, Vielzahl von Scheiben) in Schritt 450, kann der Scanvorgang weitergehen (über den Entscheidungsschritt 460) bis Bilder der Linie, die sich über der gesamten Objektfläche befindet (oder einem gewünschtem Teil der Oberfläche) erfasst sind. Die einzelnen Höhenbilder werden dann verwendet, um ein 3D Profil der Objektoberfläche zu bilden, um sie bei nachgeschalteten Datenverarbeitungsprozessen (190 in 1) wie Qualitätskontrolle, Fehlererkennung, teilweiser Auswurf usw. zu verwenden. Nachgeschaltete Messungen oder ähnliche Informationen, die physikalische Daten umfassen, die durch die Analyse von mehr als einem interessierenden Bereich erzeugt wurden, können in einem oder mehreren Entscheidungsfindungsprozess/en (192 in 1) und/oder Visionssystemaufgabe/n (194 in 1) eingesetzt werden. Es wird auch in Betracht gezogen, dass die nachgeschalteten Messungen oder ähnliche Informationen physikalische Daten zwischen mehr als einem ROI, der vom gleichen Scanvorgang erzeugt wurde, einsetzen können. Genauer gesagt können verschiedene Bildverarbeitungsvorgänge, die in den interessierenden Bereichen vorgenommen wurden, über (und unter Anwendung der Daten von) vielen interessierenden Bereichen im gesamten Höhenbild angewendet werden, um spezielle Informationen über das Objekt abzuleiten. Solche Prozesse können Mustervergleiche, Prüfungen, Aufnehmen und Absetzen (und andere Robotermanipulationen), Toleranzvorgänge, und/oder jede andere Visionssystemfunktion, die Bilddaten einsetzen kann, die von einem Höhenbild abgeleitet sind, einschliessen aber sie sind nicht beschränkt auf diese. Der Prozess geht weiter (über Entscheidungsschritt 480) für jedes Objekt bis zum Ende (Schritt 490).
-
Mit Bezug auf
5 können sich bei gewissen Umsetzungen die interessierenden Funktionen in engerer Nachbarschaft zur Höhe befinden, so dass das Sichtfeld
510 eine Linie enthält, die mithilfe zweier benachbarter oder in engerer Nachbarschaft befindlicher (und nicht überlappender) interessierender Bereiche RO11a und RO12a analysiert wird. In diesem Beispiel einer Anordnung wird der oben beschriebene Liniensuch- und Filterprozess (
530) angepasst, um die fehlende Lücke zwischen den Bereichen aufzunehmen. In diesem speziellen Fall wird der Anfangsteil der oben beschrieben Tabelle angepasst, um den zweiten Teil aufzunehmen. Es wird angemerkt, dass Bereiche allgemein so angeordnet sein können, dass die erste Reihe im zweiten Bereich die vorletzte Reihe im ersten Bild ist, das heisst zwischen ihnen gibt es keine Lücke. So können die Filter auf jeden benachbarten Bereich (RO11a und RO12a) in folgender Weise angewendet werden: Erster Bereich:
Reihennummer | Verwendeter Filter |
0 | Keine Filtermessung durchgeführt |
1 | 3-4-2-1 |
2, 3, bis zur zweitletzten Reihe | 1-2-4-2-1 |
Letzte Reihe | Keine Filtermessung |
-
Da der Sensor nur jede zweite Reihe im zweiten Bereich erfasst, kann der engere Filter, der im ersten Bereich eingesetzt wird, nicht im zweiten Bereich laufen. Allerdings kann der breitere Filter, der durch den zweiten Bereich hindurch eingesetzt wird, auch in den letzten paar Reihen des ersten Bereichs angewendet werden. Die Ergebnisse des breiteren Filters in diesem Bereich überlappen mit den Ergebnissen des engen Filters und können dazu verwendet werden, die Daten zwischen den Bereichen zu „vermischen”. Überlappungszone des ersten Bereichs:
Reihennummer | Eingesetzter Filter |
Letzte – 3 Reihen | 1-2-4-2-1 |
Letzte – 1 Reihe | 1-2-4-2-1 |
Zweiter Bereich:
Reihennummer | Eingesetzter Filter |
0, 1, weiter | 1-2-4-2-1 |
Letzte – 1 Reihe | 1-2-4-3 |
Letzte Reihe | Keine Filtermessung |
-
Ein GUI Prozess (176 in 1), der im Prozessor 180, der angeschlossenen Rechenvorrichtung, instantiiert wird, oder beide, versetzen den Anwender in die Lage, (typischerweise) interessierende Bereiche während der Einrichtung auszuwählen. 6 zeigt eine GUI Anzeige 610 des Einrichtungsinterface für den angeschlossenen Verschiebungssensor 110. Die Anzeige 610 schließt eine Vielzahl von Tabs 620 ein, die Zutritt haben beziehungsweise die zeigen, mit was der Sensor und die verschiedenen eingesetzten Parameter trainiert werden. Das ausgewählte Tab 622 zeigt den „Profil” Bildschirm 630, der Eingabekästchen einschliesst, mit denen der Benutzer „Beide” (632) auswählen kann, um viele (in diesem Beispiel zwei) wahrgenommene interessierende Bereiche in der gesamten Erkennungsbasis zu definieren. Die Wahl „Beide” liefert beispielsweise zwei Spalten 634 und 636, die mit jedem jeweiligen interessierenden Bereich, der im Sichtfeld gebildet werden soll, in Verbindung stehen. Jeder Bereich enthält eine Einstellung für die physikalische Lage (in mm) der Z-Erkennungsbasis 640 (der Start des Erkennungsbereiches aus dem z-Ursprung des Arbeitsbereichs), der Z-Erkennungshöhe 642 (die z-Entfernung des jeweils interessierenden Bereiches) und einen Z-Erkennungsprobenwert. Bei diesem Beispiel beginnt die Z-Erkennungsbasis des ersten Bereichs bei 30 mm über dem Ursprung und erstreckt sich über eine Höhe von 10 mm. Die Z-Erkennungsbasis des zweiten Bereichs beginnt bei 79 mm und erstreckt sich über 14 mm darüber. Beide Bereiche werden bei einem Wert von I als Probe genommen. Alle Bereiche im Sichtfeld ausserhalb dieser Bereiche sind von der Verarbeitung ausgenommen. Es wird angemerkt, dass bei Ausführungsbeispielen, bei denen mehr als zwei interessierende Bereiche gebildet werden sollen, die Auswahl „Beide” durch ein anderes Dialogkästchen ersetzt werden kann, das die Anzahl der Bereiche bildet, und damit verbundene Spalten eingesetzt werden können. Zum besseren Verständnis des Anwenders sind diese Bezüge (für jeden interessierenden Bereich) einzeln in einer Darstellung 650 an der Seite des Eingabebereichs der Anzeige 630 gezeigt. Dieses Interface kann die Erzeugung einer Vielzahl von intetressierenden Bereichen ermöglichen.
-
7 zeigt eine alternative Umsetzung eines GUI zur Einrichtung von Erkennungs- und Ausschlußbereichen. Bei dieser Ausführungsform schließt die Anzeige 710 ein angezeigtes Bild 720 des gesamten Sichtfeldes des Objekts 730 ein. Eine Laserlinie 740 wird gezeigt, die über das Objekt 730 projeziert ist. Der Anwender kann das Objekt bewegen (über den Förderer, die Bewegungsplattform usw.), um die Grenzen der Bewegung jeder Linie in jedem Bereich festzustellen, und die Grenzen der zugeordneten interessierenden Bereiche RO11b und RO12b werden vom Anwender ausgewählt. Einer oder mehrere entsprechende Buttons 760 kann/können eingesetzt werden, um interessierende Bereiche in Verbindung mit den Cursorbewegungen (750) oder ähnlichen Interfacefunktionen einzustellen, die Fachleuten auf diesem Gebiet bekannt sind. Wenn die interessierenden Bereiche grafisch eingestellt sind, übersetzt der Einrichtungsprozess diese Lagen in physikalische Messungen und Lagen entlang von Pixelspalten im Imager.
-
III. Anpassung der Auflösung
-
Bei weiteren Ausführungsbeispielen wie unten beschrieben können einige oder alle Reihen bei einer verminderten Auflösung definiert werden – beispielsweise durch Proben in jeder zweiten Reihe. Zusätzlich und wie im Beispiel der 2 gezeigt erscheint das weiter entfernte Liniensegment 220 mit einer niedrigeren Auflösung und definiert eine Breite LW1, kreuzt weniger Pixelreihen als das nähere Liniensegment 230, das eine Breite LW2 definiert, die mehr Pixelreihen kreuzt als das Liniensegment 220. So wird das nähere Liniensegment einem dichteren Scanvorgang und einer höheren Auflösung unterworfen als das weiter entfernte Liniensegment. Allgemein gesprochen, je näher die Entfernung des abgebildeten Lichts innerhalb des Arbeitsbereichs ist, desto höher die Auflösung des Bildes. Typischerweise ist die Auflösung des weiteren Liniensegments im Allgemeinen ausreichend. Beispielsweise kann die Auflösung der interessierenden Bereiche bei einem kürzeren Arbeitsbereich durch selektives Ausschalten der Ausgabe und/oder Verarbeitung von Reihen vermindert werden. Zum Beispiel kann im interessierenden Bereich RO12 immer abwechselnd eine Reihe ausgeschaltet werden. Um die Auslösung weiter zu reduzieren, kann jede dritte oder vierte Reihe angeschaltet werden, während dazwischenliegende Reihen ausgeschaltet werden. Die Auflösung eines Bereiches (RO11) mit längerem Arbeitsbereich kann gegebenenfalls auch eine verminderte Auflösung gemäß dieser Technologie definieren. Wenn die Auflösung beider Bereiche reduziert wird, wird eine größere Reduzierung typischerweise auf den Bereich mit kürzerem Arbeitsbereich angewendet, um dessen anfänglich hohe Auflösung auszugleichen. Es wird angemerkt, dass die Möglichkeit die Auflösung zu ändern auch eingesetzt werden kann, um die Anwesenheit einer verengten „Taille” im mittleren Bereich der abgebildeten Laserlinie und verbreiterter Enden an jeder Seite der Taille anzusprechen.
-
In einem weiteren Beispiel zeigt 8 einen beispielhaften Teil eines Imager 800 einschliesslich der Pixelreihen 810, die den zwei interessierenden Bereichen RO11c und RO12c zugeordnet sind. Wie gezeigt, werden Ausgabeanweisungen 810 an die Imagerkontrollschaltung 830 und/oder den Visionssystemprozessor (z. B. aufgrund einer automatisierten Anordnung oder einer GUI Einrichtung) ausgegeben, um Signale (Auslesungen) von jeder abwechselnden Reihe (ausgeschaltete Reihen werden durch ein „X” bezeichnet) im ersten Bereich RO11c zu löschen. Ebenso wird im zweiten Bereich RO12c jede dritte Reihe angeschaltet, während die zwei Reihen dazwischen ausgeschaltet werden. Im Allgemeinen wird durch Verminderung der Auflösung ein annehmbares Profil berechnet, während die Arbeitslast des Prozessors vermindert wird und die Durchgangsgeschwindigkeit für den Scanvorgang wachst. Genauer gesagt liefert das Ausführungsbeispiel in 8A einen Imager 850, der Vollauflösung im ersten Bereich RO11d (angeschaltet, Auslesung jede Reihe) und halbe Auflösung in jedem zweiten Bereich RO12d (angeschaltet, Auslesung jeder zweiten Reihe) überträgt. Kontrollfunktionen und -Anweisungen sind ähnlich denjenigen, die mit Bezug auf 8 oben beschrieben wurden.
-
IV. Erzeugung von Graustufenbildern
-
Bei vielen Produktionsanwendungen ist es, neben anderen Prozessen, wünschenswert sowohl Höhenprofil eines Objektes als auch bestimmte 2D Elemente, wie einen Druck, zu prüfen. Beispielsweise sollten sich alle Tasten einer Tastatur auf einer vorbestimmten Höhe befinden und auch alle die passenden gedruckten Indizierungen (alphanumerische Charakter, Symbole usw) tragen.
-
Zum Beispiel stellt 9 ein Bild 910 eines gewöhnlichen Objekts 920 (eines Nummernschilds) dar, das sowohl flache (im Vergleich zur umgebenden Schildbasis 930) gedruckte Elemente 940 als auch erhabenen Elemente aufweist. Während jeder Satz von Elementen in einer kontrastierenden Farbe (z. B. blau und rot) geliefert werden kann, wird in Betracht gezogen, dass die Laserfarbe so ausgewählt werden kann, dass sie passenderweise beide Farben in einem erfassten Bild auflöst. Auf Grund der erfassten Bilddaten kann das System die maximale Filterantwort der erfassten Bildintensitäten messen, nachdem jede Spalte dem oben beschriebenen Filterprozessen unterworfen wurde, wie einem 1-2-4-2-1 Filter, um ein Graustufenbild zu erzeugen, das so unempfindlich wie möglich gegen Höhenänderungen ist und das Kontraständerungen wie einen Druck auf der Oberfläche zeigt. Alternativ kann das System dieselbe quadratische oder eine andere Interpolationsfunktion einsetzen, um eine Schätzung der Antwort bei der Unterpixelposition der gemessenen Linien zu erzeugen und dies benutzen, um das Graustufenbild zu erzeugen. So kann das System entweder eine Höhenbild, ein Graustufenbild oder beides gleichzeitig (überlappte Bilder) erzeugen. Bei einigen Beispielen kann das Graustufenbild aus den gefilterten Laserlinienintensitätsdaten erzeugt werden, und die gefilterten Laserlinienintensitätsbilder können größer als ein 8 Bit Wert sein. Das kommt daher, dass sich, wenn der 1-2-4-2-1 Filter auf einen 8 Bit Wert angewendet wird, ein Ergebnis größer als 8 Bits ergeben kann. Da einige Maschinenvisionsvorgänge eine 8 Bit Graustufenbildeingabe erwarten, kann das System 100 Laserlinienintensität mit Werten von 16 Bit bis 8 Bit Graustufenbildwerte abbilden. Der Anwender kann eine Pixelabbildung verwenden, um aus dem gefilterten Laserlinienintensitätsbild, das einen Bit-Wert größer als 8 haben kann, ein Graustufenbild mit bis zu 8 Bit abzubilden. Die Graustufenbilddaten können nachträglich gemäß der entsprechenden Höheninformationen verarbeitet werden, da Laserlinien dünner sein können als die Laserrückkehr und die Laserrückkehr dunkler sein kann je weiter die Laserlinien vom Sensor positioniert sind. Die oben beschriebene Bitabbildung kann eine Anwendungsspezifikation sein und/oder teilweise spezifisch.
-
10 zeigt im Detail ein zugehöriges Höhenbild 1010 des Objekts 920. Es wird angemerkt, dass das Höhenbild 1010 mit unterschiedlicher Intensität aufgrund von Höhe dargestellt ist (aus Gründen der Klarheit), wobei Schwarz 1030 die Höhe der Basislinie des Arbeitsbereiches darstellt, Grau 1040 die angehobene Höhe (von der Basisline) der Plattenbasis 930 und Weiss 1050 die Höhe der erhabenen Elemente 950. Die flachen Druckelemente 940 sind im Allgemeinen auch grau, so dass sie die gleiche Farbe wie die Höhe der Basisplatte 930 haben, aber, wie unten beschrieben, „falsche” Kanten 1060 einschliessen, die als leichte Höhenänderungen erscheinen.
-
11 zeigt ein Graustufenbild 1110 des Objekts 920, das mithilfe der Bilddaten aus dem Scanvorgang des Objekts unter Beleuchtung der Laserlinie erfasst wurde. Wie gezeigt, werden die kontrastierenden Farben der flachen Elemente 940 klar im Vergleich zum kontrastierenden Hintergrund der Schildbasis 930 abgebildet. Die erhabenen Elemente 950 werden auch abgebildet (obwohl die Farbe ausgewaschen sein kann, wenn eine ähnliche Laserfarbe eingesetzt wird – die Auswahl einer passenden Farbe und/oder eines optischen Filters kann sicherstellen, dass das komplette Graustufenbild des Objekts erfasst wird). Die erhabenen Elemente können auch feine Merkmale 1150 enthalten, entsprechend der Schattengebung von den gewinkelten Aussenkonturen der erhabenen Elemente. Dieser Effekt kann wesentlich durch die Anwendung der Korrekturen auf Grund des Graustufenbildes reduziert werden. Beispielsweise, kann der senkrechte Gradient bei jedem Pixel des Graustufenbildes berechnet werden und die Korrektur, die auf diesem Gradient basiert, kann für jede Höhenmessung beim Höhenbild angewendet werden.
-
Wie im Diagramm der 12 gezeigt, erzeugt der Scanvorgang der Laserlinie ein erfasstes Bild 1210. Dieses erfasste Bild wird den Liniensuchprozessen/-Algorithmen 1220, wie allgemein oben beschrieben, unterworfen. Diese Prozesse/Algorithmen 1220 können auf einen interessierenden Bereich oder gebenenfalls auf das ganze Bild wirken. Die Bilddaten 1230, die aus Pixelgraustufenintensitätswerten in jeder Spalte bestehen, und die Lage der Spitzenintensität (und Intensitätswert) werden durch den Liniensuchprozess übertragen, damit sie bei der Bildung einer Scheibe des Höhenbildes 1240 und auch einer Scheibe des Graustufenbildes 1250 eingesetzt werden. Bei einem anderen Beispiel können die Bilddaten 1230 Graustufenintensitätswerte einschliessen, die dadurch erzeugt wurden, dass die Laserlinienintensitätsdaten einem oder mehreren der oben beschriebenen Filter unterworfen wurden. Das Höhenbild verwendet die Spitzenlage in jeder Spalte um einen physikalischen Höhenwert zu erzeugen, während die Intensität an der Spitze als Graustufenwert für diese x-y Lage im Bild eingesetzt wird.
-
Wenn das Bild gescannt und eine Vielzahl von Scanvorgängen (1210) erfasst wird, erzeugt der Prozess weitere Höhen- und Graustufenscheiben (1240, 1250), die zu Gesamthöhen- und/oder Graustufenbildern 1260, 1270 des Objekts beitragen. Wie oben beschrieben, kann der Anwender (z. B. über das GUI) bestimmen, dass einer der Typen des Bildes oder beide Bildertypen erzeugt werden. Bei einer Ausführungsform kann eine Gruppe von Pixelreihen dazu verwendet werden, um Höhenbilder zu erzeugen, und eine andere Gruppe von Pixelreihen (z. B. abwechselnde Pixelreihen usw. wie allgemein in 8 gezeigt) kann dazu verwendet werden, um Graustufenbilder zu erzeugen. Auf diese Weise kann die Auflösung jedes Bildes reduziert werden, indem weniger Pixelreihen eingesetzt werden, aber einzelne (unterschiedliche) Reihen von Pixeln im Imager können gleichzeitig dazu verwendet werden, um nebeneinander Höhen- und Graustufenbilder zu erzeugen.
-
Bei einigen Beispielen können die erzeugten Graustufenbilddaten Spitzenintensitätsdatenwerte enthalten, die ein Ergebnis einer Lage eines schlechten Pixel im erfassten Bild sind. Wie oben beschrieben, kann das Erscheinen von verdächtigen oder schlechten Pixeln im Graustufenbild eine Manifestation eines Fehlers oder einer Unregelmässigkeit in der Hardware oder Software sein, die verwendet wird, um das Graustufenbild zu erzeugen. Insbesondere kann der Einsatz der Abbildungskomponenten mit schlechten Wahrnehmungselementen das Erscheinen solcher verdächtigen oder schlechten Pixel verursachen. Auch können so falsche Ergebnisse bei den Höhenbildern und den Graustufenbildern entstehen. Deshalb ist es wünschenswert, die Daten, die schlechten Wahrnehmungselementen entsprechen, zu ignorieren, indem verdächtige Spitzendatenwerte identifiziert werden und interpolierte Graustufenwerte aus nahe liegenden Daten anstatt der verdächtigen Spitzendatenwerte eingesetzt werden. Bei einem anderen Beispiel können anomale Höhenwerte bedeuten, dass die zugeordneten Graustufeninformationen verdächtig sind, z. B. verdächtige Graustufenbildwerte können durch die Analyse der zugeordneten Höheninformationen identifiziert werden, entweder in den Laserlinieninformationen oder in den Höhen-/Graustufeninformationen.
-
12a ist ein Flussdiagramm eines Verfahrens 1200A für die Korrektur von null oder mehreren verdächtigen Pixeln in einer Reihe des Graustufenbildes, das möglicherweise verdächtige Pixeldatenwerte gemäß der obigen Beschreibung enthält. Als Beispiel kann das Verfahren 1200A bei jeder Komponente innerhalb des Systems instantiiert werden, wie etwa dem Visionssystemprozessor 180, dem Sensorprozess 182 oder den Datenverarbeitungsvorrichtungen/-Prozesse 190. Die Blöcke des Verfahrens 1200A können, obwohl sie unten in einer gewissen Ordnung gezeigt sind, von einem oder mehreren Prozessoren in jeder speziellen Ordnung auftauchen oder durchgeführt werden.
-
Beim Block 1210A werden die Laserlinienspitzenpositionsdaten und die entsprechenden Laserlinienspitzenintensitätsdaten empfangen oder erzeugt. Die Laserlinienspitzenpositionsdaten und die entsprechenden Laserlinienspitzenintensitätsdaten können als Ausgabe des Block 430, wie oben beschrieben, erzeugt werden. Die Laserlinienspitzenpositionsdaten und die Laserlinienspitzenintensitätsdaten können jeweils ein oder mehrere einzelne Laserlinienpositionsangaben und Laserlinienintensitätsangaben einschliessen, wobei jede einen Wert aufweist. Bei Block 1220A kann die Spitzenintensitätslage in den Laserlinienspitzenintensitätsdaten wie oben beschrieben identifiziert werden.
-
Bei Block 1230A wird jeder Datenwert der Laserlinienpositions- und Intensitätsdaten mit einer verdächtigen Pixelabbildung verglichen, um einen oder mehrere verdächtige oder schlechte Datenwerte in den Laserlinienintensitätsdaten zu identifizieren, die den Laserlinienpositionsdaten entsprechen. Die Lage von verdächtigen oder schlechten Pixeln kann vor dem Abbildungsprozess bekannt sein. In dieser Hinsicht kann die verdächtige Pixelabbildung bei Block 1235A während des Kalibrierungsprozesses für den Imager entwickelt werden. Die verdächtige Pixelabbildung kann vorher bestimmte Pixel, die bekannt als verdächtig oder schlecht sind, einer Abbildungsvorrichtung identifizieren. Die verdächtige Pixelabbildung kann jederzeit während des Prozesses erzeugt werden, und sie kann insbesondere während der Kalibrierung des Imager erzeugt werden. Die verdächtige Pixelabbildung kann durch Erfassen eines oder mehrerer Bilder mit einheitlich hellen oder dunklen Szenen während eines Kalibrierungsabbildungsprozesses und der Identifizierung von Pixeln, die Werte misst, die sich deutlich von nahe liegenden Wahrnehmungselementen unterscheiden, erzeugt werden. Alternativ oder zusätzlich können mit Hilfe von bekannten verdächtigen Pixelinformationen, die vom Hersteller geliefert werden, erzeugt werden.
-
Bei Block 1240A wird ein Vergleich zwischen der Spitzenintensitätslage, die bei Block 1220A identifiziert wurde, und der Lage aller verdächtigen Pixellagen durchgeführt. Wenn die Spitzenintensitätspixellage identifiziert ist, die einer verdächtigen Pixellage entspricht, sich überlappt oder sich innerhalb einer vorher bestimmter Nähe (z. B. innerhalb weniger Pixel) befindet, kann das System festlegen, dass eine Korrektur ausgeführt werden soll, um den verdächtigen Datenwert in dern Laserlinienintensitätsdaten zu korrigieren. Eine solche Korrektur kann z. B. die Erzeugung eines Ersatzintensitätspixelwertes bei Block 1250A und den Ersatz des Originalintensitätswertes, der einer verdächtigen Pixellage im Imager entspricht, gegen den Ersatzintensitätspixelwert in den Laserlinienintensitätsdaten bei Block 1260A einschließen. Der Begriff Originalwert bezieht sich auf den Intensitätswert, der vom Sensor geliefert wird, oder Verarbeitungsschritte vor der Ausführung der Blocks 1250A und/oder 1260A, und der Term Ersatzwert bezieht sich auf einen neuen Intensitätswert, der von Block 1250A geliefert wird. Der Ersatzpixelwert kann gemäß einer beliebigen Anzahl von Verfahren berechnet werden. Bei einem Beispiel kann der Ersatzpixelwert berechnet werden, indem Durchschnittswerte der Intensität von benachbarten Graustufenpixeln, wie etwa ein Graustufenpixel auf der linken Seite und ein Graustufenpixel auf der rechten Seite des schlechten Pixel, genommen werden. Bei einem andern Beispiel kann das Ersatzpixel ein vorherbestimmter, konstanter Pixelwert sein. Bei einem weiteren Beispiel kann eine nachbarschaftsbasierte Operation an den Pixelwerten in der Umgebung durchgeführt werden, um den Ersatzpixel wert festzustellen. Solche nachbarschaftsbasierten Operationen können jede Art von Rechnung einschliessen, die an Pixelwerten innerhalb eines vorher bestimmten Bereiches der schlechten Pixel durchgeführt wird. Wie oben ausgeführt, kann, wenn der Ersatzpixelwert festgelegt ist, der Ersatzpixelwert den Wert des Originaldatenwertes, der der schlechten Pixellage auf dem Imager zugeordnet ist, ersetzen. Ein korrigiertes Graulinienpixel für die Laserlinienspitzenintensitätsdaten kann, wenn es ersetzt ist, bei Block 1270A ausgegeben werden.
-
Wenn die Lage des Spitzenintensitätspixel im Graustufenbild nicht einem Datenwert, der einer verdächtigen Pixellage zugeordnet ist, entspricht, mit ihm überlappt oder sich innerhalb einer vorherbestimmten Nähe (z. B. innerhalb weniger Pixel) befindet, dann kann das System das Graustufenpixel ohne Korrektur am Block 1245A ausgeben. Bei einem anderen Beispiel kann das System alternativ Korrekturen vornehmen wie in den Blocks 1250A–1270A gezeigt, obwohl es keine Überlappung oder Entsprechung innerhalb der Spitzenintensitätspixellage und der verdächtigen Pixellage gibt.
-
Bei einem anderen Ausführungsbeispiel können verdächtige Pixelwerte aus dem entsprechenden Höhenbild identifiziert werden. Wenn sich beispielsweise ein bestimmter Höhenwert von seinem erwarteten Höhenwert im Höhenbild durch eine vorher bestimmte Schwelle unterscheidet, dann kann das entsprechende Pixel im Graustufenbild als verdächtiges Pixel gekennzeichnet werden. Die vorher bestimmte Schwelle des Unterschieds zwischen den erwarteten und den beobachteten Höhenwerten kann durch den Anwender definiert werden. Bei einem anderen Beispiel kann die vorher bestimmte Schwelle als Unterschied zwischen benachbarten Pixeln berechnet werden.
-
Bei einem anderen Ausführungsbeispiel können verdächtige Pixelwerte aus dem entsprechenden Höhenbild durch Pixel, für die der Höhenwert fehlt, identifiziert werden. Wenn beispielsweise ein bestimmter Höhenwert aus dem Höhenbild wegen Laser Speckle oder Verstopfung oder einem anderen Grund fehlt, dann kann das entsprechende Pixel im Graustufenbild als verdächtiges Pixel gekennzeichnet werden.
-
Die Graustufenbilddaten können in einer Vielzahl von Visionssystemprozessen wie Prüfung, Registrierung, Analyse der Druckqualität und jedem anderen Prozess, in dem die Anwesenheit, Abwesenheit, Lage und/oder Qualität von kontrastierenden Elementen analysiert wird, eingesetzt werden. Das System des Beispiels verwendet den gleichen Imager und gleichzeitig erfasste Daten aus dem Imager, um sowohl das Höhenbild als auch das Graustufenbild abzuleiten, so dass diese Bilder im Wesentlichen eine perfekte Registrierung darstellen – das heisst, jedes Bildpixel des Höhenbilds entspricht dem gleichen Pixel im Graustufenbild. Das eliminiert den Bedarf für eine separate Kameraanordnung, um jeden Bildtyp zu erfassen, und den davon abhängenden Bedarf für einen Ausrichtungsschritt für eine Entsprechung der Funktionen des Höhenbildes und des Graustufenbildes. Die Anwesenheit von zwei physikalisch ausgerichteten Bildern mit unterschiedlichen Datentypen (Höhe und Graustufe) macht die Anwendung einer Anzahl von Visionssystemtools mit beiden Datentypen gemeinsam möglich. Das erhöht den Nutzen des gesamten Bilddatensatzes, wobei solche gleichzeitigen Operationen wie Registrierung, Mustervergleich usw mit Hilfe des Graustufenbildes und der Messung, Prüfung, usw unter Verwendung des Höhenbildes möglich sind. Bestimmte ähnliche Visionssystemprozesse (z. B. Prüfung) können auch auf beide Bilder angewandt werden, um einen höheren Grad an Vertrauen in das Ergebnis zu liefern. Ein Loch wird beispielsweise im Graustufenbild lokalisiert und die Lage der entsprechenden Höhenänderung in der ausgerichteten Höhe wird verwendet, um seine Lage zu verifizieren. Das System kann, allgemeiner gesprochen, einen Messprozess liefern, der (a) Messungen von Daten aus dem Höhenbild verwendet, um Messungen des Graustufenimagers zu bilden, oder (b) Messungen des Graustufenbildes verwendet, um Messungen des Höhenbildes zu bilden. Ein Entscheidungsfindungsprozess (192 in 1) erzeugt dann Entscheidungen aufgrund des Messprozesses. Eine Anzahl von Entscheidungen kann bei dieser und anderen Ausführungsformen hier getroffen werden, einschliesslich, aber nicht beschränkt auf Objektzurückweisung, Anhalten des Bandes, Alarm und Warnungen.
-
V. Resampling eines Graustufenbildes zur Anpassung an den Pixelmaßstab
-
Bei einigen Beispielen können das Graustufenbild und das Höhenbild unterschiedliche Charakteristika aufweisen, die einen nutzbringenden Vergleich der beiden verhindern oder deren gleichzeitige Verwendung bei einer Maschinenvisionsaufgabe verhindern. Wie oben schon ausgeführt, kann das Graustufenbild verzerrt sein oder einen anderen Pixelmaßstab aufweisen als das Höhenbild. Um solche Unterschiede zu korrigieren, kann das Visionssystem die zugrundeliegenden erfassten Bilder oder der Laserlinienpositionsdaten, Laserlinienintensitätsdaten, oder Intensitätsdaten von korrigierten schlechten Pixeln (wie oben beschrieben) resamplen, um ein Graustufenbild mit einem einheitlichen Pixelmaßstab in Bezug auf das Höhenbild zu erzeugen.
-
12B ist ein Flussdiagramm eines Verfahrens 1200B des Resampling von erfassten Bildern oder der Laserlinienpositionsdaten und der Laserlinienintensitätsdaten, um ein Graustufenbild mit einem einheitlichen Pixelmaßstab zu erzeugen. Das Resampling-Verfahren 1200B kann als Schritt vor dem Prozess beim Visionssystemprozessor 180 ausgeführt werden, oder genauer gesagt, dem Sensorprozess 182. Die Blöcke des Verfahrens 1200B können, obwohl sie unten in einer bestimmten Ordnung dargestellt sind, durch einen oder mehrere Prozessoren und in jeder spezielle Ordnung auftreten oder ausgeführt werden.
-
In Block 1210B werden Laserlinienpositionsdaten 1210C und Laserlinienintensitätsdaten 1220C durch das Systen 100 aus erfassten Bildern erzeugt. Insbesondere können die Laserlinienpositionsdaten 1210C und die Laserlinienintensitätsdaten 1220C aus den erfassten Bildern am Visionssystemprozessor 180 oder dem Sensorprozess 182 erzeugt werden und können, wie oben beschrieben, die Ausgabe von Block 430 sein, der die Laserlinienintensitätsdaten entsprechend der Laserlinienpositionsdaten ausgibt. Wie in 12C gezeigt, können sowohl die Laserlinienpositionsdaten 1210C als auch die Laserlinienintensitätsdaten 1220C jeweils als Reihen von Pixeln angeordnet werden, aber es wird jede Konfiguration oder Ausrichtung der Pixel in Betracht gezogen. Die Reihe der Laserlinienpositionsdaten 1210C kann eine Vielzahl von in einer Reihe angeordneten Pixeln einschließen, die einer Reihe von vom Imager 164 erfassten Bildern entsprechen und die mit Spitzenintensitätswerten versehen sind. Die Laserlinienintensitätsdaten können eine Vielzahl von in einer Reihe angeordneten Pixeln einschließen, die Höhenbilddaten entsprechen, die einem oder mehrerem Filtern unterworfen wurden, wie oben beschrieben. Bei einem Beispiel können die Laserlinienintensitätsdaten der Ausgabe des Verfahrens 1200A entsprechen, was auch oben beschrieben wurde. Die Laserlinienintensitätsdaten 1220C können auch eine Indizierung 1230C einschliessen, die auf Albedowerte hinweisen, die bei jedem Pixel gemessen werden. Beispielsweise kann ein Albedowert, der der Farbe Blau entspricht, eingesetzt werden, um einen dunkleren Graustufenwert anzuzeigen, der in den Laserlinienintensitätsdaten gemessen wird, die aus den erfassten Bildern erzeugt werden. Auf ähnliche Weise kann ein Albedowert, der der Farbe Rot entspricht, verwendet werden, um einen helleren Graustufenwert anzuzeigen, der in den Laserlinienintensitätsdaten gemessen wurde, die aus den erfassten Bildern erzeugt werden. Bei anderen Beispielen können andere Albedowerte oder Farben verwendet werden, um besondere Graustufenwerte bei den Laserlinienintensitätsdaten anzuzeigen.
-
Bei Block 1220B wird jedes Pixel der Reihe der Laserlinienpositionsdaten 1210C auf eine entsprechende Koordinate (x, z) im physikalischen Raum abgebildet. Bei einem Beispiel, wie in 12D gezeigt, kann die Abbildung die grafische Darstellung 1240C einschliessen, was dargestellte Pixel 1250C einschliesst. Jedes der dargestellten Pixel 1250C schliesst eine z-Koordinate ein, die dem Wert der Laserlinienpositionsdaten 1210C entspricht. Insbesondere entsprechen die Pixel der Laserlinienpositionsdaten 1210C mit einem dunkleren Grauton einem größeren z-Wert. Genauer gesagt liefern die oben beschriebenen Kalibrierungsprozesse eine Abbildung von Imagerkoordinaten auf physikalische Koordinaten. Die Kalibrierung wird dazu verwendet, um aus (x, y) Imagerpixelpositionen (x = Spalte und y = Reihe) auf physikalische Positionen (x, z in mm) abzubilden. Die Laserlinienpositionsdaten charakterisieren die gefundene y-Position (Reihe) des Laserlinienspitzenimager für jede Imager x-Position (Spalte). Die Kalibrierung wird verwendet, um die Werte in 1210C auf die dargestellten Pixel 1250C abzubilden. Bei diesem Beispiel entspricht das Pixel der Laserlinienpositionsdaten 1210C, das am weitesten links liegt, dem Pixel 1250C, das am weitesten links dargestellt ist, ebenso wie die restlichen Pixel, die weitergehen bis zur rechten Seite der dargestellten Pixel. Bei anderen Beispielen kann es eine Pixelverschiebung in der x-Richtung geben.
-
Bei Block 1230B werden, wie in 12E gezeigt, Verbindungsfunktionen 1260C gebildet, um die benachbarten, dargestellten Pixel 1250C zu verbinden. Bei einem Beispiel können die Verbindungsfunktionen 1260C Liniensegmente und ähnliche Indizierungen 1270C einschließen, die der Indizierung 1230C entsprechen, die mit Bezug auf die Laserlinienintensitätsdaten 1220C beschrieben wurden. Auf ähnliche Weise kann die Indizierung 1270C einen Albedowert aufweisen, der dem Albedowert entspricht, der bei den Laserlinienintensitätsdaten 1220C beschrieben wurde. Die entsprechenden Albedowerte ermöglichen es, dass die passende Farbe in das einheitliche Graustufenbild der abgestuften Pixel bei der entsprechenden Lage gezogen wird.
-
Wie in 12F gezeigt, werden bei Block 1240B für jeden Bin 1280C mit einer Breite parallel der x-Achse repräsentative Lagewerte oder Bereichswerte aus den z-Koordinatenwerten berechnet, die in den Bin fallen. Bei einem Beispiel können die repräsentativen Lagewerte oder Bereichswerte einen Durchschnitt einschliessen. Die Breite des Bin kann durch eine beliebige Anzahl von Faktoren bestimmt werden, einschliesslich der gewünschten Breite und Auflösung des resultierenden einheitlichen Graustufenbildes der abgestuften Pixel. In dieser Hinsicht kann jeder der Bins 1280C null oder mehr Werten aus den Laserlinienpositionsdaten 1210C entsprechen. Aus jedem dieser Werte, der innerhalb jedes jeweiligen Bin 1280C fallen, wird ein Durchschnitt gebildet, um einen Durchschnittspositionswert oder Bereichswert für jeden Bin 1280C zu berechnen. Bei einem anderen Beispiel kann der durchschnittliche Computerpositionswert aus den durchschnittlichen Bereichswerten der Verbindungsfunktionen 1260C innerhalb jedes Bin berechnet werden.
-
Für jeden Bin 1280C wird auch eine entsprechende Indizierung oder ein Albedowert berechnet. Bei einem Beispiel kann die repräsentative Indizierung oder der Albedowert einen Durchschnitt einschliessen. Wie oben besprochen werden die Verbindungsfunktionen 1260C entsprechend der Indizierung, die bestimmten Albedowerten entspricht, gekennzeichnet. Für jeden Bin 1280C wird aus den Albedowerten, die innerhalb des Bin fallen, auch ein Durchschnitt gebildet, um einen durchschnittlichen Albedowert für jeden Bin zu erhalten. Bei einem andern Beispiel kann der berechnete Durchschnittsalbedowert aus den Durchschnittsalbedowerten der Verbindungsfunktionen innerhalb jedes Bin berechnet werden.
-
Wie in 12G gezeigt, entspricht bei Block 1250B die Ausgabe 1290C dem kalibrierten Höhenbild in Block 440, was die Ausgabe in einheitlicher Pixelmaßstab ist. Das kalibrierte Höhenbild entspricht dem durchschnittlichen Positionswert oder dem durchschnittlichen Bereichswert, die oben berechnet wurden. Ein einheitliches Graustufenbild der abgestuften Pixel 1295C wird auch ausgegeben. Das einheitliche Graustufenbild der abgestuften Pixel 1295C schließt Indizierung 1297C entsprechend der Durchschnittsindizierung oder den Albedowerten ein, die vorher berechnet wurden. Beispielsweise kann die Indizierung 1297C die Farbe Violett einschließen, wobei einer der Bins eine Verbindungsfunktion 1260C einschliesst, die teilweise rot und teilweise blau ist, wobei violett der Durchschnitt von violett(?) (muss hier wohl „rot” heißen, Anm. der Übersetzerin) und blau ist. Die Ausgaben 1290C und 1295C werden nun resamplet, damit sie den gleichen Pixelmaßstab haben, was einen Vergleich von Pixel zu Pixel erlaubt, der innerhalb der Ausgaben gemacht wird. Das kann viele Vorteile haben und ermöglicht, dass verschiedene Maschinenvisionsaufgaben auf den Bildern ausgeführt werden. Bei einem Ausführungsbeispiel kann das Resampled-Graustufenbild bei anderen (x, y) Maßstäben als das Höhenbild erzeugt werden. Das wird durch die Durchführung der verschiedenen Blocks erreicht, die im Verfahren 1200B zweimal dargelegt sind, um einen anderen x-Maßstab zu liefern. Das Graustufenbild kann weiter in y resamplet werden, um einen anderen y-Maßstab zu liefern.
-
VI. Ausgleich für falsche Höhenübergänge
-
Wie im Höhenbild 1010 (10) oben gezeigt tauchen Kontraständerungen als leichte, falsche Konturen (das heisst Elemente 1060) im Höhenbild auf. Die Höhenmessung wird nicht wesentlich durch den absoluten Albedo der Oberfläche in einer Zone von konstantem Albedo betroffen, und so zeigt der mittlere Bereich jedes Elementes 940 etwa die gleiche Höhenauslesung wie die umgebende Schildbasis 930. Allerdings wird am Rand der Funktion 940 ein Fehler in der Höhenmessung eingeführt, wenn der Übergang hell nach dunkel oder dunkel nach hell die Messzone passiert.
-
13 zeigt ein verallgemeinertes Verfahren 1300, das solche falschen Höhenübergänge ausgleicht. Höhenbilddaten 1310 und Graustufenbilddaten 1320 werden jeweils registriert (Schritt 1330), so dass Höhenkorrekturfaktoren bei jedem Punkt im Bild in Schritt 1340 durch den Prozessor erzeugt werden können. Beispielsweise arbeitet das Verfahren 1300 fortlaufend mit Hilfe einer Schätzung des Graustufenbildgradienten in der Richtung des Scanvorgangs, um den/die Höhenkorrekturfaktor/en, der/die an jedem Punkt des Höhenbilds (Schritt 1350) angewendet wird/werden, zu berechnen. Der Korrekturfaktor kann beispielsweise einen numerischen Wert liefern – wo beispielsweise null (0) keine Korrektur an einem Punkt im Höhenbild ist. Ein Korrekturfaktor von null oder nahe null wird bei Bereichen des Höhenbildes angewendet, wo sich der Graustufenkontrast nicht ändert. Der Korrekturfaktor ist beispielsweise minimal oder null an Punkten, die sich entfernt von (und innerhalb oder ausserhalb von) den Rändern 1060 der 10 befinden, während ein wichtigerer Korrekturfaktor bei Punkten angewendet wird, die an den Rändern mit Bezug auf den wichtigen Kontrastgradienten liegen. Wenn solche Korrekturfaktoren angewendet werden, wird ein korrigiertes/ausgeglichenes Höhenbild im Schritt 1360 erzeugt. Das Höhenbild lässt die meisten oder alle Effekte von kontrastbasierten falschen Höhenlesungen wegfallen. Eine Vielzahl von Techniken kann bei weiteren Ausführungsbeispielen für falsche Höhen und andere kontrastbasierte Effekte eingesetzt werden.
-
Bei der Feststellung, ob fasche Höhen- und/oder Graustufenfunktionen vorliegen, kann das Einrichten und Trainieren des Systems Anwenderidentifizierungen oder falsche Kandidatenfunktionen und/oder Bereiche, die Kandidatenfunktionen enthalten, einschließen. Das kann die Analyse solcher Funktionen beschleunigen und den Durchsatz des Verschiebungssensors verbessern.
-
Es wird ausdrücklich in Betracht gezogen, dass eine Laufzeit-(oder Einrichtungs-)Anzeige (6) einem Anwender geliefert werden kann, die das oben beschriebene Höhenbild, Graustufenbild und das korrigierte/ausgeglichene Bild einzeln oder in Kombination(en) zeigt. Mit Hilfe von maßgeschneiderten und konventionellen GUI Techniken kann der Anwender mit verschiedenen Funktionen ausgestattet werden, die eine Anpassung der verschiedenen Bildparameter und/oder -Charakteristika ermöglichen. Buttons und Einrichtungseingaben können beispielsweise auf einem GUI vorgesehen werden, um den Anwender in die Lage zu versetzen Schwellen und andere Bildparameter (z. B. Empfindlichkeit, Anzeige, Kontrast usw.) aufgrund des angezeigten Höhenbildes, Graustufenbildes und/oder korrigierten/ausgeglichenen Bildes einzurichten und/oder anzupassen.
-
VII. Liniensuche aus Schwellenpixelspannungen von Spalten
-
Es wird in Betracht gezogen, dass die Verarbeitungsgeschwindigkeit bei verschiedenen Imageranordnungen durch das Suchen des Linienmittenwertes für jede Pixelspalte direkt aus „binäre” Pixeln erhöht werden kann, die entweder die Schwelle überschreiten oder darunter fallen. Auf diese Weise wird jedes Pixel an einen nachgelagerten Prozess/Prozessor geliefert, entweder als logischer Wert 1 (der z. B. die Anwesenheit der Laserlinie anzeigt) oder als Wert 0, der die Abwesenheit der Linie an dieser Lage in dieser Imagerpixelspalte anzeigt. 14 zeigt eine Anordnung 1400, bei der der Imager 1410 Intensitätswerte 1412 aus den Pixeln an eine Schaltung (z. B. eine Vergleichsschaltung) ausgibt, die die Intensität jedes Pixel in einer Spalte mit einer Referenzintensität 1422 vergleicht (1420) und festlegt, welche Pixel den Schwellenwert überschreiten, der durch die Referenzintensität gebildet wurde. Die Spaltenlagen der ersten und letzten Pixel in jeder Spalte, die den Schwellenwert übertreffen (und einen Wert von 1 haben) und im Allgemeinen dazu neigen eine Laserlinie zu bilden, werden in Block 1430 festgelegt. Es wird angemerkt, dass andere Pixel in der Spalte mit Abstand von der Laserlinie einen Wert von 1 aufgrund von Geräusch, Glanz usw. zurücksenden können, aber der Prozess solche Pixel, da sie keine Gruppe bilden, die groß und nahe genug (obwohl sie möglicherweise kleine Lücken von Pixel mit 0 Werten enthält) ist, um eine Laserlinie zu definieren, herausfiltern sollte. Es wird angemerkt, dass der Begriff „Intensität” als Spannungswert bei verschiedenen Ausführungsformen definiert werden kann. Das heißt, während etliche, im Handel erhältliche CMOS-Imager das ausgelesene Pixelsignal jeder Reihe von integrierter Bestrahlungsstärke umwandeln, um aufzuladen und dann den Ausleseprozess mit Spannung beaufschlagen, wird in Betracht gezogen, dass andere Imagertypen möglicherweise direkt auslesen können direkt im Ladungsgebiet oder als Stromstärkenwert anstatt eines Spannungswertes. Der Begriff Intensität bedeutet also die Definition eines solchen Signals.
-
Auf Grund der ersten und letzten Pixellage in der Spalte legt der Prozess den Mittenwert im Block 1440 fest. Das kann durch eine spezialisierte Hardwareschaltung erreicht werden oder durch die Übertragung der Pixelwertlagen an den Visionssystemprozessor. Es wird in Betracht gezogen, dass, während ein Schwellenprozess eingesetzt wird, um Linienpixel in jeder Reihe zum Aufbau des Höhenbildes zu lokalisieren, der Prozessor auch den Intensitätswert der Pixel empfangen kann (zum Beispiel in einem interessierenden Bereich) und diese Werte verwenden kann, um eine Scheibe eines Graustufenbildes der Objektoberfläche zu bilden.
-
Es wird angemerkt, dass bei der Erzeugung eines „Mitte-”Wertes, wie hier verwendet, eine Vielzahl von Techniken einsetzen kann, die eine Erhöhung der Verarbeitungsgeschwindigkeit gegen Genauigkeit erlaubt – zum Beispiel kann der erste Wert in einer Spalte, der die Schwelle übersteigt, in einem Cluster von Pixeln, die über der Schwelle liegen, als die „Mitte” identifiziert werden. So sollte der Begriff „Mitte” weit gefasst werden, damit Lagen entlang der Spalte innerhalb des Laserlinienbildes eingeschlossen werden, die das vorhersagbare Ergebnis zurückschicken. Zum Beispiel kann die Kenntnis der Taillengröße des Laser (Breite) bei einer gebenen Spalte (x-Lage) in Verbindung mit der Reihenlage des ersten Pixel, das über der Schwelle liegt, eingesetzt werden, um die Mitte zu berechnen. Beispielsweise kann (bei Pixeln) die folgende, vereinfachte Berechnung eingesetzt werden: Mittellage = Erste Pixellage + Taillengröße/2
-
VIII. Schlussfolgerung
-
Es sollte klar sein, dass die verschiedenen hier beschriebenen Ausführungsformen die Vielseitigkeit, Verarbeitungseffizienz und die Durchsatzgeschwindigkeit von Laserverschiebungssensorssystemen erhöhen ohne dass die erforderliche Genauigkeit geopfert wird. Die hier beschriebenen Beispiele von Funktionen können leicht und unkompliziert von einem Anwender während des Einrichtens umgesetzt werden, wenn entsprechende Interfaces eingesetzt werden. Diese Funktionen ermöglichen die Korrektur von gewissen innewohnenden Fehlern in Höhenbildern, wie etwa kontrastbasierte falsche Höhenauslesungen. Systeme und Verfahren sind dazu vorgesehen, registrierte Graustufenbilder eines Objektes unter dem Scanvorgang frei vom Einsatz eines eigenen Kamerasystems und zugeordneten Prozessoren zu produzieren.
-
Das oben Erwähnte ist eine detaillierte Beschreibung der Ausführungsbeispiele der Erfindung. Verschiedene Änderungen und Zusätze können gemacht werden, ohne vom Gehalt und Umfang dieser Erfindung abzuweichen. Funktionen der verschiedenen oben beschriebenen Ausführungsbeispiele können gegebenfalls mit Funktionen anderer beschriebenen Ausführungsformen kombiniert werden, um eine Vielfalt von Kombinationen von Funktionen in neu verbundenen Ausführungsformen zu liefern. Während weiterhin das oben gesagte eine Anzahl von einzelnen Ausführungsformen der Vorrichtung und des Verfahrens der vorliegenden Erfindung beschreibt, ist das, was hier beschrieben wurde, nur ein Anwendungsbeispiel der Prinzipien der vorliegenden Erfindung. Begriffe von Richtung und Orientierung, die beispielsweise hier verwendet wurden, wie „vertikal”, „horizontal”, „auf”, „unter”, „unten”, „oben”, „seitlich”, „vorne”, „hinten”, „links”, „rechts” und dergleichen, werden nur als relative Vereinbarungen und nicht als absolute Orientierung in Bezug auf ein festgelegtes Koordinatensystem, wie etwa Schwerkraft, verwendet. Während deshalb interessierende Bereiche konstante Größe und Lage im Sichtfeld/Imager durch den Scanvorgang jeden Objekts haben, wird in Betracht gezogen, dass sich die Größe und/oder Lagen von interessierenden Bereichen während des Scanvorganges ändern kann, um die erwartete Änderung bei den Lagen der Funktion oder Änderung in den interessierenden Funktionen entlang der y-Achse zu berücksichtigen. Eine Änderung der interessierenden Bereiche kann als Reaktion auf die Encoderposition oder eine andere Anzeige der relativen Lage des Objektes mit Bezug auf das Sichtfeld auftreten. Während zusätzlich die Begriffe „Reihen” und „Spalten” verwendet werden, um eine spezielle Anordnung von Pixeln im Imager zu beschreiben, wird ausdrücklich in Betracht gezogen, dass diese Begriffe ausgetauscht werden können und ähnliche Ergebnisse gemäß der Ausführungsbeispiele hier erzielen können. Auch während ein Laser eingesetzt wird, um die Beleuchtung zur Erfassung sowohl von Höheninformationen/-Bild als auch Graustufeninformationen/-Bild zu erzeugen, kann eine zusätzliche Beleuchtung eingesetzt werden, um das Graustufenbild zu erfassen – beispielsweise für eine abwechselnde Erfassung des Höhenbildes und des Graustufenbildes und stroboskopisch die zusätzliche Beleuchtung mit jeder Graustufenerfassung. Während Ausführungsbeispiele hier auch interessierende Bereiche definieren, in denen die Verarbeitung von Bildpixeln abläuft, und Bereiche dazwischen, die frei von der Bildpixelbearbeitung sind, können solche dazwischenliegenden Bereiche funktional gleichwertig einer oder mehrer „Ausschlusszonen” sein, in denen der Anwender die Nichtverarbeitungsbereiche definiert, und das System sonst bei der Verarbeitungsleistung ausserhalb dieser „Ausschlußzone/n” ausfällt. Allgemeiner gesprochen definieren bei Ausführungsformen das System und Verfahren einen oder mehrere interessierende/n Bereich/e und zugeordnete Ausschlusszon(en), was eine selektive Erkennung oder Nichterkennung (beziehungsweise) einer Laserlinie innerhalb des gesamten Imagersichtfeldes ermöglicht. Dementsprechend soll diese Beschreibung nur ein Beispiel darstellen, und in keiner Weise den Umfang dieser Erfindung einschränken.