Betriebsanleitung
1. Abkürzungsverzeichnis
JSON
JavaScript Object Notation
BMA
Bernard Mobility Analyzer
RTPS
Real-Time Streaming Protocol
RTMP
Real Time Messaging Protocol
USB
Universal Serial Bus
ROI
Region of Interest
CL
Counting Line
VD
Virtual Door
HM
Heat Map
MQTT
Message Queuin Telemetry Transport
2. Allgemeines
Sehr geehrter Kunde,
Der BERNARD Mobility Analyser ist ein intelligentes optisches System zur Identifikation von Objekten zur Überwachung, Steuerung und Lenkung. Es besteht aus einem Kamerasystem, das unterstützt durch Künstliche Intelligenz, Objekte erkennt und ausschließlich diese anonymisierte Information speichert. Der BERNARD Mobility Analyser ist ein Sensor wie ein menschliches Auge - die Kamera speichert keine Videos, das Bildmaterial wird direkt verarbeitet.
Mittels des Control Centers erhalten Sie eine komplette Übersicht über den BMA. Das Control Center ist ein Web Interface und wird für Software Updates, für die einfache Überwachung und zum Konfigurieren des BMA verwendet.
In dieser Betriebsanleitung wird zuerst das allgemeine Layout des Management Centers mit den zugehörigen Optionen beschrieben. Anschließend werden die verschiedenen Überwachungsmöglichkeiten wie Parkraumüberwachung als auch Verkehrserhebung detaillierter erläutert. Als letztes wird die Form (JSON Format) für die verschiedenen Events vorgestellt sowie die alternativen Datenübertragungsmöglichkeiten erläutert.
© Copyright
Alle Rechte vorbehalten.
Nachdruck, auch auszugsweise, nur mit Genehmigung der Bernard Technologies GmbH gestattet. Alle Bilder sind Symbolfotos und müssen mit der aktuellen Ausführung nicht übereinstimmen. Technische Änderungen, Irrtümer und Druckfehler sind vorbehalten.
3. Bedienung des Control Centers und Konfiguration
Nach einer erfolgreichen Montage des Systems, welche in der Betriebsanleitung „Bernard Mobility Analyser“ beschrieben ist, öffnen Sie den Webbrowser und geben Sie folgende Adresse ein:
Melden Sie sich mit Ihrem Kundenlogin an. Nach der erfolgreichen Anmeldung erscheint die Control Center Benutzeroberfläche: Nach der Anmeldung ist die Registrierkarte "Data Analytics" geöffnet, so dass die Oberfläche aus Abbildung 1 erscheint.
In der linken Spalte der Oberfläche können Sie zwischen den beiden Registrierkarten "Data Analytics" und "Device Configuration" ausgewählt werden. Auf der Registerkarte „Device Configuration“ des Control Centers (siehe 2 in Abbildung 1) können Sie alle Ihre Kameras zentral verwalten und den Kamera Stream konfigurieren, um Daten entsprechend den Anforderungen Ihres Anwendungsfalls zu erfassen. Wenn die Registrierkarte "Device Configuration" ausgewählt ist, öffnet sich die Oberfläche aus der Abbildung 2.
In der Tabelle 1sind die Kategorien "Device Name/ID" (1 in Abbildung 2), "Connection" (2) und "Status" im Detail beschrieben.
Der Name (fett-gedruckt) und die eindeutige ID Ihrer Sensorbox oder Hardware. Der Name kann nach Ihrem Wunsch geändert werden und dazu genutzt werden, eine Reihenfolge Ihrer Geräte festzulegen. Die Anordnung erfolgt alphabethisch. Die ID dient zur Kommunikation zwischen dem Gerät und der verwendeten Datenbank.
Verbindungsstatus der Kamera.
Falls der Verbindungsstatus „online“ anzeigt, ist eine Verbindung zwischen dem Gerät und dem Control Center/Datenbank erfolgreich.
Falls die Anzeige auf „offline“ eingestellt ist, besteht keine Verbindung zwischen dem Gerät und dem Control Center/Datenbank. Prüfen Sie daher die Ports sowie Ihre Internetverbindung.
Status der Kamera.
Falls „running“ als Status angezeigt wird, ist eine Verbindung zwischen dem Gerät und dem Control Center/Datenbank erfolgreich:
Falls 'Not configured' als Status angezeigt wird, ist die Kamera noch nicht für den Einsatz konfiguriert (siehe Stichpunkt 4).
Falls 'Not Running' als Status angezeigt wird, gab es eine Fehlermeldung seitens der Kamera und es sollte Bernard Gruppe kontaktiert werden.
Falls "Unknown" als Status angezeigt wird, besteht keine Verbindung zwischen dem Gerät und dem Control Center, was an fehlender Stromversorgung oder fehlender Netzwerkverbindung liegen kann. "Pending" wird als Status angezeigt, wenn die Konfigurationen geändert wurden. Nach ungefähr 5 Minuten wird der Status aktualisiert.
Hinweis! Es kann ca. 3 Minuten dauern, bis der BMA mit dem Server verbunden ist und der Status „Online“ angezeigt wird.
4. Kamera & Konfiguration des BMAs
Um die Kamera und die Datenübertragung zu konfigurieren, klicken Sie auf den Gerätenamen. Es erscheint folgende Benutzeroberfläche:
Die Nummerierung in der Abbildung 3 hat folgende Bedeutung:
Bezeichnet den Namen der Kamera, die in dem BMA verbaut worden ist.
Abhängig von der erworbene Lizenz mehrere Kamerastreams pro Gerät zu verwaltenen. Durch den Button "Add Camera" kann ein weiterer Kamerastream hinzugefügt werden.
Mit "Reboot Device" kann die Kamera neugestartet werden und mittels "Retrieve Lögs" kann die aktuelle Log-Datei des Gerätes heruntergeladen werden.
Es wird der Status der Kamera angezeigt. Die möglichen Statuse sind "running", "Not configured", "Not Running", "Unknown" und "Pending".
Nach dem Anklicken des gewählten Streams erscheint folgendes Fenster:
Mittels des eingekreisten Buttons kann der Name des ausgewählten BMAs geändert werden.
Jeder BMA hat eine eindeutige ID-Nummer, die mittels des eingekreisten Button kopiert wird.
Diese Schaltfläche ermöglicht einerseits zwischen dem Camera-Modus (siehe Abbildung 4.a) und dem Calibration-Modus (siehe Abbildung 4.b), in dem noch zusätzlich die erkannten Objekte eingezeichnet werden, zu wechseln, Zusätzlich kann das angezeigte Bild aktualisiert werden. Das aktuelle Bild dient ausschließlich zur Konfiguration des Streams, da diese nicht gespeichert wird.
Der Button "Configure" ermöglicht die Konfiguration des BMAs.
Zusätzlich zum Kamera-Streams werden unterhalb diesem noch die Einstellungen der ausgewählten Kamera angezeigt, die in Abbildung 5 zu sehen sind.
In diesem Bereich muss die Verbindung zur der Kamera hergestellt werden.
Die erforderlichen Daten können direkt an der Kamera konfiguriert werden und müssen an dieser Stelle eingetragen werden, Für detaillierte Informationen zur Kamera-Konfiguration schauen Sie in der Betriebsanleitung der verwendeten Kamera (Hikvison) nach.
Konfiguration der MQTT
Verbindung „MQTT Connection“ dient dazu um die Resultate der Verkehrsüberwachung in einer Datenbank zu speichern. Als Standardeinstellung sind diese Daten bereits vorkonfiguriert.
Mögliche Änderungen in der Konfiguration können mittels des Save-Buttons gespeichert werden.
Falls die ausgewählte Kamera nicht mehr verwendet wird, kann diese mittels des "Delete-Buttons" gelöscht werden.
Derzeit ist eine Verarbeitung der Kamera-Streams im RTSP- und RTMP-Format sowie USB Format möglich. Sie können unter diesen drei unterschiedlichen Möglichkeiten auswählen. Bei der Konfiguration Ihrer Kamera achten Sie drauf, das sowohl der „Camera Host“ als auch das „Password“ keine Sonderzeichen wie „?“, „+“ oder „%“ beinhaltet. Dies kann zur Verbindungsproblemen führen.
Sobald Sie die Kamera konfiguriert haben und die notwendigen Daten in Sektion 7 angegeben haben, erscheint der Kamera Stream:
Im Fall das kein Kamera Stream angezeigt wird, prüfen Sie nach ob die Kamera richtig konfiguriert worden ist. Falls dies der Fall ist, schalten Sie die Kamera aus um eine erneute Verbindung zu ermöglichen.
5. Konfiguration des Streams
Bei der Konfiguration können Sie das beste Modell für Ihren Anwendungsfall konfigurieren sowie eine beliebige Kombination verschiedener Konfigurationstypen benutzen, um Ihren eigenen Anwendungsfall am besten abzubilden. Es kann zwischen folgenden Modellen gewählt werden, je nachdem ob das System für eine Verkehrs- oder Parkplatzüberwachung vorgesehen ist:
(siehe Abbildung 7.a)
This model detects vehicles, riders and persons in highly dynamic scenes (e.g. urban traffic or highways where objects move fast).
(siehe Abbildung 7.b)
This model detects vehicles, riders, and people in low dynamic scenes (for example parking, where vehicles do not move or move slowly). It can detect objects that are further away from the camera, but requires more computation.
(siehe Abbildung 7.c)
This model detects vehicles, riders and persons in low dynamic parking scenes when using a fish eye camera. It does not work with highly dynamic traffic scenes.
(siehe Abbildung 7.d)
Dieses Modell erkennt eine vollständige Person/einen ganzen Körper und ist ideal zum Erkennen, Verfolgen und Zählen von Personen, wenn diese weiter (> 5 m) von der Kamera entfernt sind.
(siehe Abbildung 7.e)
Dieses Modell erkennt den Kopf einer Person und ist ideal zum Erkennen, Verfolgen und Zählen von Personen, wenn diese näher (<6 m) an der Kamera sind.
In den Modellen können die Objekte aus der folgende Tabelle ausgewählt werden.
„ROI“: Region of Interest
Wird zum Zählen von Objekten in dieser bestimmten Region verwendet. Sie können zwischen zwei Trigger- Optionen entscheiden – diese können in regulären zeitlichen Abständen gespeichert werden (bspw. 10s) oder bei Änderung des Zustands der Zone (bspw. Parkplatzüberwachung – ein Auto verlässt die Parkzone). Dies können Sie über folgenden Button einstellen:
Die ROI erscheinen im Kamera Stream als grüne Boxen.
“CL”: Counting Line:
Jedes Mal, wenn der Mittelpunkt des Objekts die Linie passiert, wird es gezählt. Wenn eine Counting Line als Traffic Event verwendet wird, kann optional auch unter Trigger Settings eine Geschwindigkeitsmessung erstellt werden, so dass automatisch eine zweite Counting Line erstellt wird und der Abstand zwischen den beiden Counting Lines vom Nutzer angegeben werden müssen.
“VD”: Virtual Door:
VD sind für das Zählen an Eingängen konzipiert. VD Sektionen erscheinen im Kamera Stream als gelbe Boxen.
“OD”: Origin/Destination:
Zonen werden zum Zählen von Objekten verwendet, die in einer Zone erscheinen (Start) und sich in eine andere bewegen (Ziel). Diese erscheinen im Kamera Stream als blaue Boxen.
Jeder Konfigurationstyp generiert im Hintergrund eine eindeutige ID, welche anschließend auf der rechten Seite (siehe Abbildung 7) unter UUID erscheint. Zusätzlich kann in den "Global Settings" die "raw tracks" aktiviert werden, so dass für jedes erkanntes Objekt auf der Kamera die Pixelkoordinaten aufgezeichnet wird.
Bitte vergewissern Sie sich, dass Sie alle Änderungen gespeichert haben. Nach dem Sie diese gespeichert werden, ist das System im Einsatz und Ihre Verkehrszählung/Parkplatzüberwachung ist aktiv.
6. JSON Format
Die ausgewerteten Daten werden Event-basiert übertragen. Das JSON Datenformat dieser Events werden in diesem Kapitel detaillierter beschrieben. Das Format unterscheidet sich für die individuelle Konfiguration des Kamerasystems und die dabei definierten Events. Der Header des JSON bezeichnet die Version des verwendeten Systems (property version). Das Format der Versionskontrolle lautet major.minor, wobei eine major Versionsveränderung eine grundsätzliche Veränderung ohne Rückwärtskompatibilität bedeutet während kleinere Versionsänderungen mit Rückwärtskompatibilität durch minor gekennzeichnet ist. Für eindeutige Kennungen verwenden wir universally unique identifier. Die Zeitstempel sind definiert durch ISO8601.
Region of Interest
Ein Region of Interest Event wird entweder durch eine Statusänderung oder durch ein Zeitintervall ausgelöst (property triggerType). Der Zustand (property state) kann von besetzt zu frei und umgekehrt wechseln. Jedes Ereignis besitzt einen benutzerdefinierten Namen (property roiname) und einen Zeitstempel (property timestamp), als das Ereignis auftrat. Erkannte Objekte und die zugehörige Klasse werden aufgelistet (property objects). Die Klassen sind abhängig vom Anwendungsfall.
Ein Beispiel von einem ROI Event, welches dann im Form von json-Datei gespeichert wird, sieht wie folgt aus:
{
"node": {
"id": "f952e4ff-d087-4606-83d1-8853d992170f",
"name": "test_environment"
},
"regionOfInterestEvent": {
"objects": [
{
"class": "car",
"dwellTime": 9
}
],
"roiId": "ba6fe5f9-28fb-4330-9f02-f0407e329dee",
"roiName": "ROI",
"state": "occupied",
"timestamp": "2021-06-09T06:43:23.43235Z",
"triggerType": "time"
},
"version": "3.0"
}
Crossing Line Event
Ein Crossing Line Event wird ausgelöst, sobald ein Objekt eine virtuelle Linie überquert (gekennzeichnet durch property lineld). Die Zeile hat einen benutzerdefinierten Namen (property lineName). Zum Zeitpunkt des Ereignisses wird ein Zeitstempel festgelegt (property timestamp). Das Objekt kann die Linien in zwei Richtungen kreuzen (property direction) und bewegt sich entweder hinein oder heraus. Zusätzlich wird das Objekt, welches die Linie kreuzt, klassifiziert (property class). Die Klassen hängen vom Anwendungsfall ab.
Die JSON-Datei für ein Crossing Line Event hat folgende Form:
{
"crossingLineEvent": {
"class": "car",
"direction": "out",
"lineId": "b06a1310-8891-4a2c-8392-06700b3fea3a",
"lineName": "CL1",
"timestamp": "2021-06-09T06:43:32.854595Z",
"trackId": 48
},
"node": {
"id": "f952e4ff-d087-4606-83d1-8853d992170f",
"name": "test_environment"
},
"version": "3.0",
}
Virtual Door
Eine virtuelle Tür kann zu einer Szene hinzugefügt werden, um eine detaillierte Anzahl von Ein- & Ausgängen der Tür oder Eingänge aller Art zu erhalten, die in der Kameraszene sichtbar sind. Derzeit kann max. 1 virtuelle Tür pro Szene erstellt werden.
Die empfohlene Kameraposition lautet wie folgt:
Höhe der Kamera: 2.5 - 3 m
Abstand der Kamera zur Tür: 2 - 8 m. Wenn die Kamera weiter vom Eingang und den relevanten Objekten entfernt ist, kann dies in den Einstellungen angepasst werden (siehe unten).
Die Kamera sollte direkt auf die Tür/den Eingang gerichtet sein und nicht seitlich.
Die Kamer sollte einen vollständigen Blick auf die Tür/den Eingang haben.
Die Kamera sollte eine gute Sicht auf den Bereich um die Tür/den Eingang haben, um zuverlässig Personen vor und nach dem Betreten/Verlassen verfolgen zu können.
Es sollten sich keine Objekte (z.B. Säulen) zwischen der Kamera und der virtuellen Tür sowie den Bereich um die Tür befinden, welche die Sicht auf Personen/Köpfe verhindern.
Die Logik der virtuellen Tür ist beabsichtigt sehr einfach. Jeder Kopf / Körper wird kontinuierlich verfolgt, während er sich durch das Blickfeld der Kamera bewegt. Um herauszufinden ob es sich um ein Eintritts- oder Austritts-Ereignis handelt, werden Start und Ende der Strecke verwendet.
Entry: Wenn der Startpunkt der Strecke innerhalb der virtuellen Tür beginnt und außerhalb endet, wird ein Eintritts-Ereignis (in event) ausgelöst.
Exit: Wenn der Startpunkt der Strecke außerhalb der virtuellen Tür beginnt und innerhalb endet, wird ein Austritt-Ereignist (out event) ausgelöst.
Walk by: Wenn der Startpunkt außerhalb der virtuellen Tür beginnt und außerhalb endet, wird kein Ereignis (no event) ausgelöst.
Stay outside: Wenn der Startpunkt innerhalb der virtuellen Tür beginnt und innerhalb endet, wird kein Ereignis (no event) ausgelöst.
Hinweis: Es ist nicht erforderlich die „in“ und „out“ Richtungen (Crossing Lines) der Tür zu konfigurieren, da dies automatisch erfolgt.
Die einzelnen JSON-Events haben folgenden Aufbau:
{
"node": {
"id": "f952e4ff-d087-4606-83d1-8853d992170f",
"name": "test_environment"
},
"version": "3.0",
"virtualDoorEvent": {
"direction": "in",
"object": {
"class": "person"
},
"timestamp": "2021-06-09T06:52:01.376853Z",
"virtualDoorId": "0e57b6df-6818-41ec-9602-d78223e48eb3",
"virtualDoorName": "VD"
}
}
Heatmap Event
Der Heatmap-Modus verfolgt Objekte, während sich diese durch das Sichtfeld bewegen. Sobald das Objekt das Sichtfeld verlässt, wird eine vollständige Aufzeichnung der Route, die das Objekt genommen hat, generiert.
Diese Aufzeichnung enthält die Klassifizierung des Objekts (property class) sowie den Pfad des Objektes im gesamten Sichtfeld. Die Klasse ist abhängig vom jeweiligen Anwendungsfall.
Die Aufzeichnung wird als eine Reihe von Pfadelementen (path) beschrieben, die einen Zeitstempel, die Koordinaten oben-links sowie Höhe und Breite des verfolgten Objektes enthalten. Dies wird durch folgende Abbildung visualisiert:
Die einzelnen Werte werden am Beispiel von Abbildung 10 erklärt:
h-value:
Beschreibt die Höhe des Begrenzungsrahmens (Lokalisierung des Objektes innerhalb des Rahmens) in Pixel.
"h":554.192138671875
w-value:
Beschreibt die Breite des Begrenzungsrahmens in Pixel.
"w":766.527587890625
x-value:
Gibt die Position der x-Achse der oberen linken Ecke des Begrenzungsrahmens basierend auf dem Pixelraster an (abhänigig von der Auflösung).
"x":0.0
y-value:
Zeigt die Position der y-Achse der oberen linken Ecke des Begrenzungsrahmens basierend auf dem Pixelraster an (abhängig von der Auflösung).
"y":525.807861328125
Die JSON-Datei unter der Verwendung von einem Head-Map Event hat folgende Form:
{
"heatmapEvent": {
"class": "car",
"path": [
{
"h": 36.562496185302734,
"timestamp": "2021-06-09T06:58:50.73339Z",
"w": 28.571430206298828,
"x": 1.2383699417114258,
"y": 333.2240905761719
},
{
"h": 39.23493957519531,
"timestamp": "2021-06-09T06:58:50.180604Z",
"w": 55.620460510253906,
"x": 0,
"y": 333.1640319824219
},
{
"h": 39.855918884277344,
"timestamp": "2021-06-09T06:58:50.223567Z",
"w": 57.29658126831055,
"x": 0,
"y": 332.8535461425781
},
{
"h": 39.855899810791016,
"timestamp": "2021-06-09T06:58:50.327910Z",
"w": 56.37601852416992,
"x": 0,
"y": 331.577392578125
}
],
"trackId": 624
},
"node": {
"id": "f952e4ff-d087-4606-83d1-8853d992170f",
"name": "test_environment"
},
"version":"3.0",
}
Die Übertragung und die Auswertung der Daten kann auf unterschiedliche Art und Weisen erfolgen. Diese werden im nächsten Kapitel detaillierter beschrieben.
7. Datenübertragung und Zugriff
Die Daten können auf unterschiedliche Weise zugegriffen werden:
Data Center & Dashboard
Die Daten werden von der Kamera in die Datenbank übermittelt und anschließend bspw. in Form von Excel-Dateien ausgewertet. Der Kunde hat die Möglichkeiten, entweder über das Data Center oder über das Dashboard die Daten für den gewünschten Zeitraum abrufen. Die Kommunikation zwischen dem Data Center/Dashboard und der Datenbank erfolgt über eine REST-Schnittstelle. Das Data Center sowie das Dashboard kann aufgerufen werden durch:
Die Login-Daten, die Sie für die Anmeldung brauchen, werden kundenspezifisch angelegt.
Im Data Center haben Sie die Möglichkeit, den Tag der Überwachung, die Daten einer bestimmten Kamera sowie die zeitliche Auflösung (alle Minuten / 15 min / 30 min / 45 min / 60 min) auszuwählen. Die Daten können je nach Wunsch in verschiedenen Formaten in bspw. einer Excel -Datei aufbereitet werden.
Als weitere Möglichkeit können die Daten live in Form eines Dashboards dargestellt werden. Dies wird am Beispiel einer Parküberwachung näher erläutert.
Es können mehrere Kameras angezeigt werden. Im oberen Teil ist die ist die aktuelle Auslastung zu sehen. Die zwei unteren Diagramme zeigen die aktuelle Auslastung der letzten 24 Stunden sowie die wöchentliche Auslastung (Minimal und Maximalwerte). Weitere zusätzliche Funktionen, wie beispielsweise eine Wetteranzeige, können auf Kundenwunsch hinzugefügt werden.
LoRaWAN
Die Übertragung der aktuellen Parkplatzauslastung kann über das Long Range Wide Area Network (LoRaWAN) erfolgen. Diese Funktechnologie legt den Schwerpunkt auf extrem niedrigen Energieverbrauch bei hoher Sendereichweite. Dies hat zur Folge, dass die übertragenen Datenpakete sehr klein (< 50 Byte pro Paket) sein müssen.
Daher werden zuerst die vom Kamerasystem erzeugten JSON-Dateien sinnvoll komprimiert.
Diese aufbereiteten Parkplatzdaten werden anschließend vom BMA-Controller (Nvidia Jetson Xavier NX) über eine USB-Schnittstelle zum LoRa-Sendemodul übertragen. Zum Einsatz kommt dazu das „LoRa-UD1“ Modul der Firma SOFT-HARD-WARE
Die Datenübertragung erfolgt über das lizenzfreie Frequenzband im Bereich von 868 MHz und ist auf dem gesamten Weg vom Sender bis zum Netzwerkserver verschlüsselt (128 Bit AES Verschlüsselung).
Der Empfang und die Weiterleitung zum Applikation-Server erfolgt über die LoRa-Gateways.
Benutzerdefinierte MQTT-Verbindung
Falls Sie die Standard-MQTT-Verbindung nicht verwenden möchten, besteht die Möglichkeit die Datenübertragung über eine benutzerdefinierte MQTT-Verbindung zu etablieren. Die Daten Ihrer MQQT Verbindung müssen dann in Sektion 8 (siehe Abbildung 3) eingetragen werden.
8. Support und Service
Kontaktieren Sie
DI Dr. Stefan Schwarz Bernard Technologies GmbH Josef-Felder-Straße 53 81241 München +49 89 2000149 0 office@tec-bernard.com www.bernard-gruppe.com
Last updated