---
title: "Inferenz starten"
product: "LumiScan AI Object Matching"
component: "lumiscan-ai-object-matching-de"
version: "2.1.0"
display_version: "2.1.0.9"
latest_version: true
language: "de"
url: "https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/initializing-the-inference.html"
---

# Inferenz starten – LumiScan AI Object Matching

Diese Seite listet die Steuerknoten eines Moduls auf und beschreibt, wie Sie eine Inferenz ausführen. Die Knoten des Bild-Streams sind in [Inferenz auf einem Bild-Stream](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/inference-on-an-image-stream.html) aufgeführt, die `system`-Knoten in [Einstellungen auf dem Data Layer](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/settings-on-the-data-layer.html).

## Data Layer {#data-layer}

LumiScan AI Object Matching bietet seine Funktionen auf dem Data Layer unter `hdvisionsystems/lumiscan-ai-object-matching` an.

Auf ctrlX OS (ctrlX CORE oder ctrlX IPC) nutzt LumiScan AI Object Matching den [ctrlX Data Layer](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/ctrlx-data-layer.html).

Auf einem PC mit Windows 11 oder Ubuntu 24.04 nutzt LumiScan AI Object Matching [LumiScan Keryx](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/keryx.html).

Knotenadressen, Typen und Aufrufmuster sind auf beiden gleich. LumiScan AI Object Matching bietet:

- [ready/request-Handshakes](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/handshake.html)
- [Execute-Methoden](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/execute.html)
- einen [Stream](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/streams.html), der seine Ergebnisse veröffentlicht (experimentell)
- ein [Stream](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/streams.html)-Abonnement auf eine Quelle (experimentell)

Wie Adressen aufgebaut sind, wie Funktionen aufgerufen werden, die Statuscodes und die Werkzeuge sind in [LumiScan Keryx](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/index.html) beschrieben.

## Adressen

**Tabelle 1. Adressen der Funktionen**

| Funktion | Zugriff | Adresse |
| --- | --- | --- |
| Inferenz | Schreibgeschützt | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/ready` |
| Inferenz | Beschreibbar | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/request` |
| Inferenz | Nur schreiben (Methode) | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/execute` |
| Reset | Schreibgeschützt | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/reset/ready` |
| Reset | Beschreibbar | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/reset/request` |
| Reset | Nur schreiben (Methode) | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/reset/execute` |
| Status | Schreibgeschützt | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/status/code` |
| Status | Schreibgeschützt | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/status/text` |
| Ergebniszähler | Schreibgeschützt | `hdvisionsystems/lumiscan-ai-object-matching/<network name>/output/package-identifier` |

`output/package-identifier` steigt mit jeder erfolgreichen Inferenz um eins, und nur dann.

## Schritte zur Inferenz mit einem externen Bild

> [!NOTE]
> Um nicht jedes Mal die gesamte Adresse zu wiederholen, wird in diesem Abschnitt der **unveränderliche Teil** mit der übergeordneten Adresse durch **XXX** ersetzt.
>
> Die Adresse `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/ready` wird also als **XXX/inference/ready** geschrieben.
>
> Entsprechend wird die Adresse `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/request` als **XXX/inference/request** geschrieben.

Die Anwendung liest das Bild von der externen Adresse, die für das Netz konfiguriert ist, so, wie es beim Start der Inferenz vorliegt. Sie prüft nicht, ob das Bild neu ist: Ein Bild, das sich seit der letzten Inferenz nicht geändert hat, wird erneut inferiert.

So starten Sie die Inferenz:

1. Prüfen Sie XXX/inference/ready = True.[^1]

> [!NOTE]
> Die Anwendung lädt die Konfigurationen automatisch und richtet die neuronalen Netze ein. XXX/inference/ready ist **False**, solange sie eingerichtet werden, solange der Bild-Stream läuft, ohne Lizenz und nachdem die Einstellungen auf dem Data Layer geändert wurden (`status/code` `-5`, Neustart erforderlich). Prüfen Sie XXX/status/code und das Log für weitere Informationen.

2. Merken Sie sich den Wert von `output/package-identifier`.
3. Setzen Sie XXX/inference/request := True
4. Warten Sie, bis XXX/inference/ready = False. Die Inferenz läuft bereits.

> [!NOTE]
> Falls die Anwendung nicht erkannt hat, dass sich die Variable geändert hat:
>
> a. Stellen Sie sicher, dass jeweils nur ein Prozess auf XXX/inference/request zugreift.
>
> b. Ist die letzte Inferenz fehlgeschlagen, ignoriert das Modul jeden Request außer reset. Fordern Sie einen Reset an.
>
> c. Wenden Sie sich an hdvisionsystems.

5. Setzen Sie XXX/inference/request := False
6. Warten Sie, bis XXX/inference/ready = True.
7. Prüfen Sie, ob `output/package-identifier` um eins gestiegen ist.\
   `status/code` ist jetzt `3`, unabhängig davon, ob die Inferenz erfolgreich war: siehe [Ausgang einer Inferenz](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/general-concept-of-handshake.html#outcome-of-an-inference).\
   Sie können das Ergebnis jetzt unter `hdvisionsystems/lumiscan-ai-object-matching/<network name>/output/result` prüfen.

## Schritte zur Inferenz mit einem Eingabebild

> [!NOTE]
> Um nicht jedes Mal die gesamte Adresse zu wiederholen, wird in diesem Abschnitt der **unveränderliche Teil** mit der übergeordneten Adresse durch **XXX** ersetzt.
>
> Die Adresse `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/ready` wird also als **XXX/inference/ready** geschrieben.
>
> Entsprechend wird die Adresse `hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/inference/request` als **XXX/inference/request** geschrieben.

So setzen Sie das Eingabebild:

1. Suchen Sie im Data Layer die folgende Adresse[^2]: `hdvisionsystems/lumiscan-ai-object-matching/<network name>/input/image`
2. Kopieren Sie das Rohbild auf die folgende Adresse: `hdvisionsystems/lumiscan-ai-object-matching/<network name>/input/image`
3. Setzen Sie die zugehörige Bildbreite, Bildhöhe und das PixelFormat unter dem Pfad `hdvisionsystems/lumiscan-ai-object-matching/<network name>/input/image`

> [!NOTE]
> Bei einem RGB-Bild ist das Datenlayout Höhe, Breite, Kanal. Mit anderen Worten: Die RGB-Werte eines Pixels liegen in den Rohdaten direkt nebeneinander.

So starten Sie die Inferenz:

1. Prüfen Sie XXX/inference/ready = True.[^1]

> [!NOTE]
> Die Anwendung lädt die Konfigurationen automatisch und richtet die neuronalen Netze ein. Solange XXX/inference/ready **True** ist, können Sie eine Inferenz ausführen.

2. Merken Sie sich den Wert von `output/package-identifier`.
3. Setzen Sie XXX/inference/request := True
4. Warten Sie, bis XXX/inference/ready = False. Die Inferenz läuft bereits.

> [!NOTE]
> Falls die Anwendung nicht erkannt hat, dass sich die Variable geändert hat:
>
> a. Stellen Sie sicher, dass jeweils nur ein Prozess auf XXX/inference/request zugreift.
>
> b. Ist die letzte Inferenz fehlgeschlagen, ignoriert das Modul jeden Request außer reset. Fordern Sie einen Reset an.
>
> c. Wenden Sie sich an hdvisionsystems.

5. Setzen Sie XXX/inference/request := False
6. Warten Sie, bis XXX/inference/ready = True.
7. Prüfen Sie, ob `output/package-identifier` um eins gestiegen ist.\
   `status/code` ist jetzt `3`, unabhängig davon, ob die Inferenz erfolgreich war: siehe [Ausgang einer Inferenz](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/general-concept-of-handshake.html#outcome-of-an-inference).\
   Sie können das Ergebnis jetzt unter `hdvisionsystems/lumiscan-ai-object-matching/<network name>/output/result` prüfen.

## Eine Methode ausführen {#execute-a-method}

Jede Funktion kann statt über den Handshake auch mit einem einzelnen Schreibvorgang auf ihren `execute`-Knoten gestartet werden:

`hdvisionsystems/lumiscan-ai-object-matching/<network name>/control/<function>/execute`

für `inference`, `reset`, `list-result-files`, `load`, `save`, `save-result-image` und `remove`. Der Schreibvorgang kehrt zurück, wenn die Funktion abgeschlossen ist. Sie führt denselben Code aus wie der Handshake, und ihre Ergebnisse erscheinen auf denselben Ausgabeknoten.

Zwei Ergebnisse sind auseinanderzuhalten:

- **Ob die Funktion überhaupt gestartet werden konnte**, meldet der Schreibvorgang selbst. Ein abgelehnter Schreibvorgang wird nie in eine Warteschlange gestellt. Die Ergebnisse heißen auf den beiden Data Layern unterschiedlich; ihre Bedeutung ist dieselbe (siehe auch [Ergebnisse eines Methodenaufrufs](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/status-codes.html#method-results)):

  | ctrlX Data Layer | LumiScan Keryx | Bedeutung | Was zu tun ist |
  | --- | --- | --- | --- |
  | `DL_OK` | `Ok` | Die Funktion wurde ausgeführt. | Lesen Sie `control/status/code` für ihren Ausgang. |
  | `DL_TOO_MANY_OPERATIONS` | `TooManyOperations` | Eine andere Funktion des Moduls läuft, über den Handshake oder ein anderes `execute`. | Wiederholen Sie den Aufruf. |
  | `DL_INVALID_OPERATION_MODE` | `InvalidOperationMode` | Das `ready` der Funktion ist **False**, zum Beispiel `inference`, solange der Bild-Stream läuft. | Bringen Sie das Modul zuerst in den passenden Zustand; bloßes Wiederholen schlägt weiter fehl. |
  | `DL_RESOURCE_UNAVAILABLE` | `ResourceUnavailable` | Die Anwendung wird beendet; oder die Einstellungen wurden auf dem Data Layer geändert und ein Neustart ist erforderlich (`status/code` `-5`); oder das Modul hat nach einer fehlgeschlagenen Inferenz einen Fehler. `reset/execute` wird wegen des Fehlers nie abgelehnt. | Nach einem Fehler führen Sie `reset` aus. Nach einer Änderung der Einstellungen starten Sie die Anwendung neu, siehe [Einstellungen auf dem Data Layer](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/settings-on-the-data-layer.html#restart-required). |

- **Ob die Funktion erfolgreich war**, wird auf `control/status/code` und `control/status/text` gemeldet. Anders als beim Handshake lässt `execute` den Ausgang dort stehen: Nach `inference/execute` ist er `0`, `100001` oder `-1`.

Halten Sie jeden Aufruf kurz: Ein Client gibt das Warten nach wenigen Sekunden auf (auf LumiScan Keryx standardmäßig nach 2 s, siehe [Execute-Methoden](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/execute.html#timeouts)). Eine Inferenz auf einem großen Bild oder einem langsamen Gerät kann länger dauern; verwenden Sie dann den Handshake.

## Statuscode-Werte {#status-code-values}

Die Werte `0` bis `3` und `-1` bis `-5` sind die Modulstatuscodes, die allen LumiScan-Anwendungen gemeinsam sind, siehe [Statuscodes und Ergebnisse](https://docs.hdvisionsystems.com/de/lumiscan-keryx-de/1.0.0/status-codes.html#module-status). `100001` und `100002` sind spezifisch für AI Object Matching.

**Tabelle 2. Beschreibung der Statuscode-Werte**

| Statuscode-Nummer | Text | Bedeutung |
| --- | --- | --- |
| 0 | "ready" | Die letzte Funktion wurde erfolgreich ausgeführt, die Anwendung ist bereit, die nächste Funktion auszuführen. |
| 1 | "settingUp" | Das Modul oder die Funktion wird noch eingerichtet. |
| 2 | "running" | Die Funktion läuft gerade. |
| 3 | "waitingForClient" | Wartet auf den Client (in der Regel darauf, dass XXX/request zurückfällt). Außerdem das Ende jeder über den Handshake angeforderten Inferenz, unabhängig davon, ob sie erfolgreich war: siehe [Ausgang einer Inferenz](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/general-concept-of-handshake.html#outcome-of-an-inference). |
| 100001 | "ImageQueueEmpty" | Das Bild konnte nicht gelesen werden: Der Bildknoten (`input/image` oder die externe Bildadresse) enthält keine Daten oder konnte nicht gelesen werden. Kein Fehler: Stellen Sie ein Bild bereit und führen Sie die Inferenz erneut aus. |
| 100002 | "StreamActive" | Eine Inferenz wurde angefordert, während der Bild-Stream läuft. Sie wird abgelehnt, kein Fehler. Siehe [Inferenz auf einem Bild-Stream](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/inference-on-an-image-stream.html). |
| -1 | "undefinedError" | Etwas ist schiefgegangen, und wir haben dafür keinen eigenen Fehlercode angelegt. |
| -2 | "invalidSetting" | Die angegebene Einstellungsdatei konnte nicht geladen werden. |
| -3 | "invalidInput" | Eines der Eingabefelder war ungültig. |
| -4 | "MissingLicense" | Stellen Sie sicher, dass die richtige Lizenz installiert ist. |
| -5 | "restartRequired" | Die Einstellungsdateien wurden auf dem Data Layer geändert: Starten Sie die Anwendung neu. Siehe [Einstellungen auf dem Data Layer](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/settings-on-the-data-layer.html#restart-required). |

[^1]: Die Bedeutung aller Statuscode-Werte ist in der Tabelle [Statuscode-Werte](https://docs.hdvisionsystems.com/de/lumiscan-ai-object-matching-de/2.1.0/lumiscan-ai-object-matching/initializing-the-inference.html#status-code-values) am Ende dieses Kapitels erklärt.
[^2]: Ist die Anwendung für die Verwendung eines Eingabebilds konfiguriert, sollte die angegebene Adresse vorhanden sein.
