Objekterkennung, eigene KI-Modelle implementieren

Hallo zusammen,

ich bin neue hier und wollte mal nachfragen ob es möglich ist eigene KI-Modelle zur Objekterkennung in das Kameramodell IN-8403 2K+ PoE zu integreiren? Hintergrund ist der, ich möchte andere Objekte sicher erkennen und als Alarm ausgeben als die, die in der Objekterkennung schon enthalten sind. Die Objekterkennung wurde zwar deutlich erweitert, die Objekte die ich benötige sind aber nicht enthalten.

Aktuell sieht das so aus, dass die Modelle vortrainiert sind und fest in der Kamera hinterlegt sind.

Oder anders gefragt, könnte man über die Gesichteserkennung solche neuen Objekte antrainieren, dass sie erkannt werden?

Was für mich absolut interessant wäre, wenn es eine Möglichkeit gebe, ein TensorFlow Light-Modell direkt in die Kamera zu laden. Dann könnte ich mir das Modell selbst trainieren und als Datei in der Kamera speichern.

Um was für Objekte geht es denn genau? Es ist geplant weitere Modelle auf die Kamera zu bringen. Das nächste davon ist bereits so gut wie fertig. Das erste - jetzt schon verfügbare - war für die Bewegungserkennung ausgelegt. Das nächste Modell bring 20+ neue Objektklassen bei denen auf Anwesenheit geprüft werden soll (Benachrichtigung beim Auftauchen / Verschwinden von Objekten).

Eventuell sind die benötigten Objekte dort schon eintrainiert?

Vielen Dank für die schnelle Antwort. Ich möchte die Kamera zweckentfremdet verwenden. Vereinfacht ausgedrückt möchte ich irgendwelche Objekt erkennen können wie z.B. „Äpfel“ oder „Birnen“. Das ist jetzt nur ein Beispiel. Je mehr Objekte sie dem KI-Modell beifügen, um so ungenauer wird das Modell am Ende auch. Ich würde gerne wenige ganz spezielle Objekte selber trainieren können. Das geht vielleicht an der aktuellen Zielgruppe für die das Produkt momentan gedacht ist etwas vorbei. Das sind dann vollkommen andere Objekte als im Privatbereich. Ist es möglich, dass ich mich telefonisch bei Ihnen melden kann. Dann könnte ich die Anwendung etwas genauer erklären.

Das ist richtig. Die zwei aktuellen Modelle zielen auf übliche Anwendungsfälle von Überwachungskameras im privaten und gewerblichen Umfeld ab.

Das sind dann vollkommen andere Objekte als im Privatbereich.

Es wird noch eine Weile dauern bevor die oben genannten Modelle vollständig in unser komplettes Software-Angebot eingebettet sind. Aber danach ist es angedacht noch weitere - dann optional herunterladbare - Modelle bereitzustellen, die dann weniger Klassen haben und mit kleineren Datensätzen schneller trainiert werden können.

Ich würde gerne wenige ganz spezielle Objekte selber trainieren können.

Das Problem ist - man kann nicht einfach ein anderes Modell auf die Kamera legen. Da gibt es 3 Probleme:

1.) Das Modell wird nach dem Training im ONNX Format exportiert. Muss danach aber modifiziert und kompilliert werden, um auf dem in der Kamera verbauten AI-Beschleuniger Chip ausgeführt werden zu können. Dabei gibt es auch Restriktionen - nicht jede Modell-Architektur ist erlaubt.

2.) Jedes Modell kann andere Anforderungen an den Input haben. Wenn man „mal eben“ ein neues Modell ausprobieren möchte, crashed einem das meistens erstmal mit einem „incorrect shape“ beim Eingangs-Tensor. D.h. die Kamera Firmware muss hier auch entsprechend für jedes Modell angepasst werden, damit die Bilder richtig aufgearbeitet werden, bevor man sie zu dem Modell durchreicht.

3.) Das Modell kann nicht nur ausgeführt und dann das Ergebnis auf den STDOUT geleitet werden. Die Vorhersage des Modells muss immer erstmal ausgewertet und die aufgearbeiteten Informationen dann entsprechend innerhalb der FW weitergereicht werden. Das Format mit dem die Ausgabe erfolgt variiert von Modell zu Modell. D.h. auch hier müsste für jedes Modell das man ausprobieren möchte eine Firmware-Anpassung durchgeführt werden.

Das sind keine grossen Probleme, wenn es sich um eine industrielle Anwendung handelt und ein Budget vorhanden ist. Bei kleinen, privaten Anwendungen würde ich jedoch eher zu einem Rapsberry Pi raten und im Intervall Bilder von der Kamera ziehen - preiswert, gut dokumentiert und 100% flexible.

Hintergrund ist der, ich möchte andere Objekte sicher erkennen und als Alarm ausgeben als die, die in der Objekterkennung schon enthalten sind.

Der Nachteil der externen Lösung (RasPi) ist, dass man die Erkennung dann nicht eingebettet hat in der Firmware der Kamera und entsprechend Push/Email Benachrichtigungen usw. nicht direkt nutzen kann. Aber das ist auch kein Problem, wenn man ein Smarthome (Node-RED, HomeAssistant, ioBroker, o.ä.) nutzt und dort sowohl das AI Erkennung als auch die Kamera eingebunden hat.

Je nachdem wie „speziell“ diese Objekte sind, könnte man auch überlegen dafür ein reguläres, optionales Model bereitzustellen. Voraussetzung dafür wäre:

  • Das Modell muss auch für andere Kunden interessant sein.
  • Und es müssen offene, „gute“ Datensaätze bereitstehen, um das Modell zu trainieren.