AI fürs Smarthome
Ab sofort wird es möglich sein, die AI Ihrer 2K+/WQHD 4K/UHD Kamera direkt in Drittanbieter Software zu nutzen, um Personen, Autos, Tiere usw. zu erkennen! Für eine Übersicht aller Objekt-Klassen siehe auch - AI Objekterkennung
Alarm Objekterkennung
Bisher war die Objekterkennung nur indirekt nutzbar. Im Alarm/Aktionen Menü konnte das AI Modell als Filter nutzen, um Alarme ohne Personen/Autos/Tiere als Fehlalarme zu verwerfen. Das Alarm/Objekterkennung Menü ermöglichte dann noch das Feinjustieren durch das Einstellen einer minimalen und maximalen Grösse, die man für das Objekt erwartet, und eines Schwellwertes an Sicherheit, die die Erkennung haben musste.
Analyse von Fehlerkennungen
Bei Fehlerkennungen durch das AI Modell war es bisher schwierig die Ursache ausfindig zu machen, bzw. einen minimalen Schwellwert / Objektgrösse zu ermitteln, mit dem die Erkennung ausgeschlossen werden kann.
Durch die direkte Anfrage an das Modell erhält man jetzt direkt die Rohdaten mit der Objektklasse, der Sicherheit mit der die Vorhersage erfolgte und die Position im Bild. Dies kann mit dem folgenden CGI Befehl gemacht werden:
param.cgi?cmd=getmodelprediction&count=1&model=movingobjectscount: Zum angeben der Anzahl an Erkennungen die man erwartet. Wenn sich mehr als ein Objekt im Kamerbild aufhalten muss dieser entsprechend angepasst werden, um alle Erkennungen zu erhalten. Wenn weniger Objekte erkannt werden als mit diesem Wert angegeben, werden die weiteren mit „Nullwerten“ gefüllt. Dies erleichtert die Einbindung in Drittanbieter Systeme.model: In Zunkunft werden unterschiedliche AI Modelle auf der Kamera zur Verfügung stehen. Aktuell hat man nur das movingobjects, das auch für die Alarm Objekterkennung verwendet wird.
Die Rückgabe dieses Befehls schaut dann z.B. so aus:
cmd="getmodelprediction";
objects="[{"class": "person", "confidence": 0.78, "x": 1344, "y": 240, "w": 640, "h": 704}]";
response="200";Hier ist die Kamera sich 78% eine Person im Bildbereich erkannt zu haben dessen obere Ecke bei dem Pixel x=344, y=240 beginnt (diese Zahlen beziehen sich auf die Auflösung des Kamerabildes - x=0, y=0 wäre z.B. die linke, obere Ecke des Kamerabildes) und eine Breite/Höhe von 640 / 704 Pixel hat.
Wenn man an dieser Stellen einen Weihnachtsmann aufgestellt hat, hat man also schon mal einen Ansatz, was die Fehlerkennung auslösen könnte.
Oft sind es Pflanzen, dekorative Beleuchtung o.ä., was eine Fehlerkennung auslöst. Wenn man diese mit einer Privatsphäre Maske abdeckt ist das Problem schon gelöst! In den meisten Fällen reicht es schon einfach einen dünnen Balken durch die Mitte des Objektes zu ziehen. Einfach anpassen, eine neue Vorhersage vom Modell anfragen und wiederholen, bis die Sicherheit der Erkennung bis unter den Erkennungsschwellwert abgefallen ist. Smarthome
Die Einbindung ins Smarthome über den Befehl oben ist analog zum Erweiterten HTTP Alarmserver (Beispiel: Node-RED) möglich. Komfortabler geht das ganze dann über die MQTT Schnittstelle mit dem MQTT Topic und Payload:
alarm/triggered/objects/manual:{"val":"movingobjects"}
Die Einbindung erfolgt dann ebenfalls wie beim Erweiterten MQTT Alarmserver bereits erklärt.
Diese Funktion ermöglicht es bei frei definierbaren Ereignissen aus dem Smarthome eine AI Anfrage an die Kamera auszulösen und nach dem Auffinden des gewünschten Objekts eine Aktion zu triggern.
Siehe auch Home Assistant MQTT Auto-Discovery oder OpenHAB MQTT Auto-Discovery für eine vollständig automatische Einbindung in Ihr Smarthome!