Operatoren |
Dieses Kapitel beschreibt Operatoren für die 2D-Messtechnik.
Mit 2D-Messtechnik können Objekte einer bestimmten geometrischen Form vermessen werden. Die dafür verfügbaren geometrischen Formen umfassen Kreise, Ellipsen, Rechtecke und Linien. Es müssen genäherte Werte für die Positionen, Orientierungen und geometrischen Formen der zu vermessenden Objekte vorhanden sein. Dann werden in der Nähe der Umrandungen der genäherten Objekte im Bild die tatsächlichen Kanten der Objekte lokalisiert. Die Parameter der geometrischen Formen werden dann so angepasst, dass sie optimal zu den Bilddaten passen. Die Ergebnisse der Messungen sind die optimierten Parameter.
(1) | (2) |
Die genäherten Werte für die Formparameter eines Objekts sowie Parameter zur Steuerung der Messung werden in einer Datenstruktur gespeichert, die als Metrology-Messobjekt bezeichnet wird. Die Kanten des Objekts im Bild werden in den sogenannten Messregionen gesucht. Diese sind rechteckige Regionen, deren Hauptachsen senkrecht zum Rand der genäherten Objekte liegen. Parameter, die die Größe und Verteilung der Messregionen beeinflussen, werden zusammen mit den genäherten Formparametern für jedes Objekt festgelegt. Bei der Messung wird die Anpassung der geometrischen Form an die gefundenen Kantenpositionen mittels eines RANSAC-Algorithmus vorgenommen. Alle Messobjekte, alle weiteren für die Messung notwendigen Informationen und die Ergebnisse der Messungen werden im sogenannten Messmodel gespeichert.
Im Folgenden werden die einzelnen Schritte, die zur Benutzung der 2D-Messtechnik benötigt werden, kurz beschrieben.
Als erstes muss das Messmodell erstellt werden. Dies geschieht mit dem Operator
Das Messmodell dient als Container für ein oder mehrere Metrology-Messobjekte. Für eine effiziente Messung sollte dann die Größe des Bildes, auf dem die Messungen durchgeführt werden, festgelegt werden. Dies erfolgt mit dem Operator
Anschließend werden die Metrology-Messobjekte zum Messmodell hinzugefügt. Jedes Metrology-Messobjekt besteht aus genäherten Parametern für die Form des zugehörigen Objekts im Bild und aus Parametern, die die Messungen steuern. Die Parameter, die die Messungen steuern enthalten z.B. Parameter, die die Dimensionen und die Verteilung der Messregionen festlegen. Desweiteren können verschiedene generische Parameter für jedes Metrology-Messobjekt festgelegt werden. Die Metrology-Messobjekte werden mit den folgenden Operatoren definiert:
add_metrology_object_circle_measure für Kreise,
add_metrology_object_ellipse_measure für Ellipsen,
add_metrology_object_rectangle2_measure für Rechtecke und
add_metrology_object_line_measure für Linien.
add_metrology_object_generic erlaubt es, Metrology-Messobjekte verschiedener Formen (Kreis, Ellipse, etc.) mit einem einzigen Operator zu definieren.
Um die definierten Metrology-Messobjekte visuell zu prüfen, können die XLD-Konturen ihrer Umrandungen mit dem Operator get_metrology_object_model_contour abgerufen werden. Um die Messregionen visuell zu überprüfen, kann auf die XLD-Konturen ihrer Umrandungen mit dem Operator get_metrology_object_measures zugegriffen werden.
Wenn eine Kamerakalibrierung ausgeführt wurde, werden die Kameraparameter und die Pose des Weltkoordinatensystems zum Messmodel hinzugefügt. Dies erfolgt über den Operator
In diesem Fall werden die Ergebnisse der Messungen, die mit get_metrology_object_result abgerufen werden, im Weltkoordinatensystem zurückgegeben. Weiterhin kann das Referenzsystem, in dem die Metrology-Messobjekte vorliegen, mit set_metrology_model_param geändert werden.
Viele Parameter können beim Hinzufügen der Metrology-Messobjekte gesetzt werden. Einige davon können anschließend noch mithilfe des Operators
geändert werden.
Der Operator
verschiebt und rotiert das Messmodell vor einer Messung, so dass es über dem zu messenden Objekt im aktuellen Bild liegt. Diese Modellausrichtung ist temporär und wird durch die nächste ersetzt. Die Parameter der einzelnen Objekte werden nicht verändert. Typischerweise werden die für die Modellausrichtung benötigten Parameter über formbasiertes Matching ermittelt.
Die eigentlichen Messungen im Bild erfolgen mit dem Operator
Dieser findet die Kanten innerhalb der Messregionen und passt die festgelegten geometrischen Formen an die Kantenpositionen unter Verwendung eines RANSAC-Algorithmus an. Die Kanten werden intern mit den Operatoren measure_pos oder fuzzy_measure_pos (siehe auch Kapitel 1D-Vermessung) ermittelt. Der letztere verwendet Fuzzy-Funktionen und wird nur verwendet, wenn vor der Messung mindestens eine Fuzzy-Funktion mithilfe von set_metrology_object_fuzzy_param gesetzt wurde. Wenn mehr als eine Instanz der zurückgegebenen Objektform benötigt wird (siehe Bild oben), muss der generische Parameter 'num_instances' auf die Anzahl benötigter Instanzen gesetzt werden. Der Parameter kann beim Setzen der einzelnen Metrology-Messobjekte oder später mit dem Operator set_metrology_object_param gesetzt werden.
Nach der Messung kann auf die Ergebnisse zugegriffen werden. Die angepassten geometrischen Formen der Objekte werden mit dem Operator
abgefragt. Auf die Zeilen- und Spaltenkoordinaten der gefundenen Kanten kann mit dem Operator
zugegriffen werden. Die Zeilen- und Spaltenkoordinaten der Kanten, die tatsächlich für die Berechnung der Ergebnisse benutzt wurden, können ebenfalls mit get_metrology_object_result abgefragt werden. Eine Visualisierung der gemessenen Formen als XLD Konturen erhält man mit
Zusätzlich zu den oben genannten Operatoren kann das Messmodell mit copy_metrology_model kopiert werden. Um ein Messmodell in eine Datei zu schreiben ist der Operator write_metrology_model zu verwenden. Das Model kann unter Verwendung des Operators read_metrology_model wieder eingelesen werden. Mit serialize_metrology_model bzw. deserialize_metrology_model kann das Messmodell serialisiert oder deserialisiert werden.
Die im Messmodell vorhandenen Informationen können auf verschiedene Arten abgefragt werden. Zum Beispiel erhält man die Indizes der Metrology-Messobjekte mit get_metrology_object_indices. Parameter, die für das ganze Messmodell zutreffen, können mit get_metrology_model_param abgefragt werden. Zum Abfragen der Fuzzy-Parameter des Messmodells (wenn vorhanden) steht get_metrology_object_fuzzy_param zur Verfügung. Die Anzahl der Instanzen der Metrology-Messobjekte eines Messmodells erhält man mit get_metrology_object_num_instances. Und die aktuelle Konfiguration des Messmodells kann mit get_metrology_object_param abgefragt werden.
Außerdem können alle Parameter eines Messmodells mit reset_metrology_object_param zurückgesetzt werden. Sollen nur eventuell vorhandene Fuzzy-Parameter und Fuzzy-Funktionen zurückgesetzt werden, kann reset_metrology_object_fuzzy_param benutzt werden.
Im Folgenden werden die wichtigsten Begriffe, die im Umfeld der 2D-Messtechnik verwendet werden, beschrieben:
Datenstruktur, die alle Metrology-Messobjekte, alle Informationen, die für die Messung gebraucht werden, sowie die Messergebnisse enthält.
Datenstruktur für das Objekt, das mit 2D-Messtechnik vermessen werden soll. Das Metrology Messobjekt ist durch eine bestimmte geometrische Form repräsentiert für deren Formparameter Näherungswerte bekannt sind. Außerdem enthält es Parameter zur Steuerung der Messung, z.B. Parameter, die die Dimensionen und die Verteilung der Messregionen bestimmen.
Rechteckige Regionen, die senkrecht zum Rand der genäherten Objekte angeordnet sind. Innerhalb dieser Regionen werden Kanten extrahiert, die benutzt werden, um die exakten Formparameter der Metrology-Messobjekte zu ermitteln.
Für jedes Metrology-Messobjekt können unterschiedliche Instanzen des Objekts durch die Messung zurückgegeben werden, z.B. wenn in der Nähe der Umrandung der genäherten Form verschiedene parallele Strukturen der gleichen Form vorhanden sind. Die Reihenfolge der zurückgegebenen Instanzen ist zufällig, d.h. die Reihenfolge stellt kein Maß für die Qualität der Anpassung dar.
Weitere Details zur 2D-Messtechnik finden sich im „Solution Guide on 2D Measuring“.
Operatoren |