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:
für
Kreise,
add_metrology_object_circle_measure
für
Ellipsen,
add_metrology_object_ellipse_measure
für
Rechtecke und
add_metrology_object_rectangle2_measure
für
Linien.
add_metrology_object_line_measure
erlaubt es,
Metrology-Messobjekte verschiedener Formen (Kreis, Ellipse, etc.) mit einem
einzigen Operator zu definieren.
add_metrology_object_generic
Um die definierten Metrology-Messobjekte visuell zu prüfen, können die
XLD-Konturen ihrer Umrandungen mit dem Operator
abgerufen werden. Um die
Messregionen visuell zu überprüfen, kann auf die XLD-Konturen ihrer
Umrandungen mit dem Operator get_metrology_object_model_contour
zugegriffen werden.
get_metrology_object_measures
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
abgerufen werden, im
Weltkoordinatensystem zurückgegeben. Weiterhin kann das Referenzsystem,
in dem die Metrology-Messobjekte vorliegen, mit
get_metrology_object_result
geändert werden.
set_metrology_model_param
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
oder 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 fuzzy_measure_pos
gesetzt wurde. Wenn mehr als eine Instanz der zurückgegebenen Objektform
benötigt wird (siehe Bild oben), muss der generische Parameter
set_metrology_object_fuzzy_param
'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
gesetzt werden.
set_metrology_object_param
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
abgefragt werden. Eine
Visualisierung der gemessenen Formen als XLD Konturen erhält man mit
get_metrology_object_result
Zusätzlich zu den oben genannten Operatoren kann das Messmodell mit
kopiert werden. Um ein Messmodell in eine Datei
zu schreiben ist der Operator copy_metrology_model
zu verwenden.
Das Model kann unter Verwendung des Operators write_metrology_model
wieder eingelesen werden. Mit read_metrology_model
bzw.
serialize_metrology_model
kann das Messmodell serialisiert oder
deserialisiert werden.
deserialize_metrology_model
Die im Messmodell vorhandenen Informationen können auf verschiedene Arten
abgefragt werden. Zum Beispiel erhält man die Indizes der Metrology-Messobjekte
mit
. Parameter, die für
das ganze Messmodell zutreffen, können mit get_metrology_object_indices
abgefragt werden. Zum Abfragen der Fuzzy-Parameter des Messmodells (wenn vorhanden) steht
get_metrology_model_param
zur Verfügung. Die Anzahl der
Instanzen der Metrology-Messobjekte eines Messmodells erhält man mit
get_metrology_object_fuzzy_param
. Und die aktuelle
Konfiguration des Messmodells kann mit get_metrology_object_num_instances
abgefragt werden.
get_metrology_object_param
Außerdem können alle Parameter eines Messmodells mit
zurückgesetzt werden. Sollen nur eventuell
vorhandene Fuzzy-Parameter und Fuzzy-Funktionen zurückgesetzt werden, kann
reset_metrology_object_param
benutzt werden.
reset_metrology_object_fuzzy_param
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“
.
add_metrology_object_circle_measure
add_metrology_object_ellipse_measure
add_metrology_object_generic
add_metrology_object_line_measure
add_metrology_object_rectangle2_measure
align_metrology_model
apply_metrology_model
clear_metrology_model
clear_metrology_object
copy_metrology_model
create_metrology_model
deserialize_metrology_model
get_metrology_model_param
get_metrology_object_fuzzy_param
get_metrology_object_indices
get_metrology_object_measures
get_metrology_object_model_contour
get_metrology_object_num_instances
get_metrology_object_param
get_metrology_object_result
get_metrology_object_result_contour
read_metrology_model
reset_metrology_object_fuzzy_param
reset_metrology_object_param
serialize_metrology_model
set_metrology_model_image_size
set_metrology_model_param
set_metrology_object_fuzzy_param
set_metrology_object_param
write_metrology_model