Modul-Konfigurationsdatei

Jedes Modul wird in einer eigenen Datei konfiguriert, <module name>.json. Der Name der Datei ohne .json, in Kleinbuchstaben, ist der Name des Moduls auf dem Data Layer: hdvisionsystems/lumiscan-calibration/<module name>. Die Anwendung bringt ein Beispiel mit, example.json: das Modul example.

Die Konfiguration legt fest, wie 2D-Bildkoordinaten in 3D-Koordinaten auf der kalibrierten Ebene umgerechnet werden, und optional einen Stream von Punkten, die umzurechnen sind.

{
    "$schema": "schemas/lumiscan-calibration-module.schema.json",
    "meta": {
        "inputFileType": "LumiScan-CtrlX-Calibration-Module",
        "inputFileVersion": "1.0.0",
        "targetMachine": "MachineName",
        "programName": "LumiScan-Calibration",
        "programVersion": "1.0.0"
    },
    "transform": {
        "name": "PlanarProjectionExample",
        "type": "from2dTo3d",
        "subtype": "lookUpTable",
        "relativePathToTiff": "example.tiff",
        "interpolationMethod": "linear4Neighbors",
        "offsetX": 0.0,
        "offsetY": 0.0,
        "scaleX": 1.0,
        "scaleY": 1.0
    },
    "stream": {
        "address": "hdvisionsystems/lumiscan-ai-object-matching/example/control/subscribe/output/stream",
        "onEntry": [
            {
                "kind": "remap",
                "node": "result",
                "array": "instances",
                "x": "oriented_bounding_box.center_x",
                "y": "oriented_bounding_box.center_y"
            }
        ],
        "enable": true,
        "keepLatestOutput": true,
        "queueSize": 64
    }
}

Die Parameter sind in Tabelle 5 beschrieben. Die Datei darf Kommentare enthalten (// und /* */).

Der Abschnitt stream des Beispiels liest die Ergebnisse des Beispielmoduls von LumiScan AI Object Matching, example, von Anfang an: den Knoten result seines Stream-Ordners und darin die Liste instances. Es transformiert den Mittelpunkt jeder im Bild-Stream gefundenen Box und schreibt die Punkte zusätzlich in die normale Ausgabe. Die Ergebnisse von AI Object Matching werden immer auf diese Weise gelesen, mit einem remap-Schritt in onEntry. Für ein Modul, das eine andere Quelle liest, ändern Sie den Abschnitt oder entfernen ihn: Ohne Abschnitt streamt ein Modul plain. Siehe Einen Stream transformieren.

Tabelle 1. Tabelle 5: Beschreibung der JSON-Moduleinstellungen
Parameter Beschreibung

meta

Metadaten der Datei. inputFileType und inputFileVersion sind erforderlich.

meta.inputFileType

Der Dateityp. Für eine Modul-Konfigurationsdatei muss der Wert LumiScan-CtrlX-Calibration-Module sein.

meta.inputFileVersion

Die Version des Dateiformats. Derzeit wird nur 1.0.0 unterstützt.

meta.targetMachine

Optional. Der Name der Maschine, für die die Konfiguration bestimmt ist.

meta.programName

Optional. Die Anwendung, die die Datei verwendet: LumiScan-Calibration.

meta.programVersion

Optional. Die Anwendungsversion, für die die Konfiguration erstellt wurde.

transform

Die Koordinatentransformation.

transform.name

Der Name der Transformation, wie das Protokoll ihn zeigt. Er ändert den Namen des Moduls auf dem Data Layer nicht.

transform.type

Der Transformationstyp. Derzeit wird nur "from2dTo3d" unterstützt.

transform.subtype

Der Transformations-Subtyp. Derzeit wird nur "lookUpTable" unterstützt.

transform.relativePathToTiff

Der Pfad der TIFF-Datei mit den Kalibrierdaten, relativ zu dieser Datei. Siehe TIFF-Datei.

transform.interpolationMethod

Wie ein Wert zwischen kalibrierten Punkten ermittelt wird: "closestPixel", "linear4Neighbors" oder "bilateralInterpolation".

transform.offsetX, transform.offsetY

Offsets, die von den Eingabekoordinaten abgezogen werden, bevor in der Tabelle nachgeschlagen wird. Der Standard ist 0.0.

transform.scaleX, transform.scaleY

Faktoren, mit denen die Eingabekoordinaten nach dem Offset skaliert werden, bevor in der Tabelle nachgeschlagen wird. Der Standard ist 1.0.

stream

Optional, experimentell. Ein Stream von Punkten, die bei ihrem Eintreffen umgerechnet werden: die Quelle und der Stream-Modus sowie in onEntry der Schritt, der jedes Update liest. Siehe Einen Stream konfigurieren.

Setzen Sie das Modul nach einer Änderung der Datei zurück (control/reset): Es liest die Datei und die TIFF-Datei erneut ein, ohne Neustart der Anwendung. Das gilt auch für den Abschnitt stream. Nur das Hinzufügen oder Entfernen eines Moduls erfordert einen Neustart.

Kann die Datei oder ihre TIFF-Datei nicht geladen werden, wird das Modul trotzdem bedient, meldet aber Status -2 (invalidSetting) und rechnet nichts um, bis ein Reset gelingt.

Vollständige Referenz

Alle Einstellungen dieser Datei, wie sie ihr JSON-Schema lumiscan-calibration-module.schema.json festlegt, erzeugt für Version 2.0.0 (Beschreibungen aus dem Schema, auf Englisch):

Einstellung Typ Standard Zulässige Werte Beschreibung

meta

object

Pflichtangabe.

meta/inputFileType

string

nicht leer

Pflichtangabe.

meta/inputFileVersion

string

nicht leer

Pflichtangabe.

meta/targetMachine

string

nicht leer

Pflichtangabe.

meta/programName

string

nicht leer

Pflichtangabe.

meta/programVersion

string

nicht leer

Pflichtangabe.

transform

object

Pflichtangabe.

transform/name

string

Muster ^[a-zA-Z0-9_-]+$

Pflichtangabe. only [a-Z], [0-9], '-' and '_' are allowed. Unique ID of the camera configuration. This is used to identify different camera on datalayer.

transform/type

string

from2dTo3d

Pflichtangabe.

transform/subtype

string

lookUpTable

Pflichtangabe.

transform/relativePathToTiff

string

nicht leer

Pflichtangabe.

transform/interpolationMethod

string

linear4Neighbors, closestPixel

Pflichtangabe.

transform/offsetX

number

Pflichtangabe.

transform/offsetY

number

Pflichtangabe.

transform/scaleX

number

Pflichtangabe.

transform/scaleY

number

Pflichtangabe.