Bildformat für Vision-Steckverbinder - Manual - Industrial Edge - Industrial Edge - Industrial Edge - Documentation of the Industrial Edge Platform - IEM - Hub - Industrial - Device - IED - Edge - IEH

Industrial Edge Platform Operation - APIs & Referenzen

Portfolio
Industrial Edge
Product
Industrial Edge
Product Version
v25.04
Edition
04/2025
Language
de-DE

Um die Bildübertragung zwischen Kamera-Streaming-Anwendungen und bildgesteuerten Anwendungen zu standardisieren, sollte das folgende Format für die Bildübertragung verwendet werden. Die ZMQ-Nachricht besteht aus einer mehrteiligen Nachricht mit jedem unten beschriebenen Frame/Teil.

Dieses Nachrichtenformat ist für die Unterstützung mehrerer Stream-Kameras vorbereitet.

Nachrichten-Umschlag

Rahmen Feld Beschreibung Typ
1 topic Geräte-Identifikation. Binärzeichenfolge (UTF-8) zur Identifizierung des Geräts in der folgenden Syntax: {DeviceID}/stream
2 Metadaten Metadaten Binäre Metadaten JSON (UTF-8)
3 Bild Bild 1 Binary
4 ... n Bild Bild n – Für Multi-Stream-Kameras Binary

Metadaten-JSON

Feld Optional Typ Standardeinstellung Beschreibung
version Nr. String 1 Version des Metadatenformats
zählen Nr. Integer 1 Anzahl der Bilder in der Nachricht
Zeitstempel Nr. String - Datums- und Uhrzeitzeichenfolge UTF-8 ISO8601. Datum/Uhrzeit des Anwendungshosts.
benutzerdefinierte Felder Ja String - Benutzerdefiniertes Feld, das vom App-Ersteller definiert und von den Verbrauchern verarbeitet wird. Kann eine einfache Zeichenfolge oder eine JSON-Zeichenfolge oder etwas anderes sein.
Detail Nr. Bilddetail-Objekt-Array - Details zu Bildern

Bild-Detail-Objekt

Feld Optional Typ Standardeinstellung Beschreibung
id Nr. String - Eindeutige Bildkennung. Vorgeschlagenes mnemonisches Format wie {camid}_{camstream}_{datetime}
Seq Nr. Integer - Fortlaufende Nummer für das Kamerabild. Beginnen Sie bei 1 und erhöhen Sie es bei jedem erfassten Frame um 1.
Höhe Nein / Ja (kodierte Formate) Integer - Bildhöhe
Breite Nein / Ja (kodierte Formate) Integer - Bildbreite
formatns Ja String Genicam Namensraum für das Bildformat. Für genicam pixelformat verwenden Sie Genicam und Compressed für komprimierte Formate. 2
Format Nr. String - Bildformat 1 2 3
Zeilen-Padding Ja Integer 0 Die Anzahl der Bytes, die am Ende des Bytestroms hinzugefügt werden, um ein Vielfaches von 4 Byte zu erreichen. Zb. Ein Bild mit 61 Pixeln, mono8, hat einen Linepadding von 3, der den Stream auf 64 Byte ausfüllt.
Zeitstempel Ja Saite5 - Die Uhr tickt und wird von der Kamera informiert.4
Metadaten6 Ja String - Zusätzliches Metadatenfeld für Bilder, das vom App-Ersteller definiert und von den Verbrauchern verarbeitet werden muss. Kann eine einfache Zeichenfolge oder eine JSON-Zeichenfolge oder etwas anderes sein.

1 Für Kameras, die ein standardisiertes Genicam-Pixelformat verwenden, wird empfohlen, die Genicam-Namenskonvention zu verwenden, wie in Abschnitt 4.35 GenICam_PFNC_2_4.pdf beschrieben.

2 Zusätzliche Werte können unterstützt werden, sobald sie in der Anwendungsdokumentation beschrieben sind.

3 Komprimierte Formate sind in der Anwendungsdokumentation zu erwähnen und werden in den Feldern empfohlen, die der Dateiendung entsprechen (z. B. "png", "jpg", "bmp").

4 Die von den Kameras bereitgestellten Zeitstempel sind die Anzahl der Ticks. Dies kann sich auf die Unix-Epoche oder die Anzahl der Ticks beziehen, da die Kamera eingeschaltet ist, oder die Anzahl der Ticks, die mit dem PTP-Server informiert / synchronisiert sind.

5 Es kann eine Zeichenfolge verwendet werden, da im PTP-Standard davon ausgegangen wird, dass die Tick-Anzahl eine 80-Bit-Zahl ist. Das aktuelle Genicam-Protokoll gibt jedoch eine 64-Bit-Ganzzahl zurück. Eine Zeichenfolge ist für zukünftige Implementierungen zuverlässiger.

6 Kameras, die PTP aktivieren können, müssen den PTP-Synchronisierungsstatus in den Metadaten angeben. Zum Beispiel.

 
"metadata": "{'ptpstatus': 'locked'}"

Beispiel für Metadaten:

{
  "version": "1",
  "count": 2,
  "timestamp": "2014-01-09T13:35:34.000000000+0100",
  "customfields": "{'xfield1':1,'xfield2':'abc'}",
  "detail":[
    {
      "id":"mycamera_0_2014-01-09T13:35:34.000000000+0100",
      "seq": 3,
      "height": 60,
      "width": 80,
      "format": "png",
      "formatns": "Compressed",
      "timestamp": "123456",
      "metadata": "{'batchid':'batch1','stream':'lowdef'}"
    },
    {
      "id":"mycamera_1_2014-01-09T13:35:34.000000000+0100",
      "seq": 3,
      "height": 852,
      "width": 1280,
      "formatns": "Genicam",
      "format": "BGR8",
      "timestamp": "123456",
      "linepadding": 0,
      "metadata": "{'batchid':'batch1','stream':'raw'}"
    }
  ]
}