Wie entwickle ich eine Software, das Objekte oder Menschen erfasst?

2 Antworten

Dazu brauchst Du ein Programm das Objekte erkennen kann. Die Datenbank und Rechenleistung die dazu nötig ist, die ist gewaltig.

Mit Einzelbildern kann man online Google-Lens oder andere Server benutzen, aber nicht zum tracken bzw. mit Videos.

Gesichtserkennung ist einfach, da gibt es sogar ein Beispiel für den ESP32 Mikrocontroller. Den gibt es als "ESP CAM" als fertiges Modul mit Kamera für wenige Euro. Im Beispiel ist eine Gesichtserkennung schon drin (Arduino Umgebung). Da kann man Gesichter anlernen und der meldet wen er gesehen hat oder Jemand "Fremdes" und kann bei Fremden auch Alarm schlagen (Schaltausgang).

Das liesse sich modifizieren in dem Du die Koordinaten abgreifst wo das gesicht erkannt wurde. Die Entfernung zur Bildmitte kannst Du dann sozusagen als Joystickstellung benutzen zur Steuerung. Die dann natürich passend auf die Drohnensteuerung umrechnen.

Für beliebige Objekte müsstest Du einen ziemlich großen PC haben, per Funk nutzen oder zum fliegen bringen.

Auch hier kann man den ESP32 gut benutzen, der hat eingebautes WLAN. Man kann da auch eine richtige exterme Antenne anstecken für mehr Reichweite. Der eigentliche ESP32 ist eine "dicke Briefmarke" aus Blech und wiegt nicht viel, also ideal für massig Rechenpower in einer leichten Drohne.

Woher ich das weiß:Berufserfahrung

Interrogantis 
Beitragsersteller
 09.09.2024, 23:03

Was bräuchte ich für folgendes?:

Auf einem Platz befinden sich 50 Menschen - ich bin weiter weg und beobachte die. Ich schicke eine gewisse Anzahl an Drohnen (entweder in ein oder zwei stelligen Bereich) zu ihnen, mit dem folgenden Ziel:

Die Drohnen erfassen die 50 Personen innerhalb nur in wenigen Sekunden (wenn das möglich ist) und ordnet die Leute in Gruppe A oder B zu.

Commodore64  09.09.2024, 23:32
@Interrogantis

Das würde der ESP32 sogar noch hinkriegen. Allerdings ist die Auflösung bei Gesichtserkennung stark beschränkt, also kann der keine großen Gruppen auf ein mal erkennen.

Auch sind im Beispiel nur wenige Personen speicherbar. Das müsstest Du dann erweitern.

Die Personen kannst Du da mit Namen angeben und der meldet dann welche Person im Bild ist. Die Kannst Du ja alle "A" bzw. "B" nennen. Oder Du guckst dann in einer Liste nach oder benennst die zum Beispiel "A_UlrichMüller", "B_MaxMustermann"

Interrogantis 
Beitragsersteller
 09.09.2024, 23:34
@Commodore64

xD als deine Antwort bei mir aufploppte, schickte ich eine Frage darüber. ^^

Interrogantis 
Beitragsersteller
 09.09.2024, 22:44

Auch dir, vielen Dank! 👊

Commodore64  09.09.2024, 22:57
@Interrogantis

Zur Ergänzung:

Du könntest die Modelle von "Stable Diffusion" benutzen. Das ist eine KI die aus einer Textbeschreibung Bilder konstruiert. Da sind dann viele Bilder mit Beschreibungen drin.

Das ließe sich Rückwärts benutzen um Objekte zu erkennen. Das kann Stable Diffusion ja auch selber. Ein Bild in Schlüsselwörter zerlegen und dann daraus neu zeichnen.

Aber das zum tracken zu bringen, das ist extrem viel Arbeit. Außerdem braucht das eine GPU mit allermindestens 6GB V-RAM und jede Menge an Rechenpower. Mobil kriegt man das nicht hin!

Von Experte MichaelSAL74 bestätigt

1. Hardware

Kamera: Hochauflösende Kameras sind notwendig, um klare Bilder zu erfassen.

Drohne oder Überwachungskamera: Diese dienen als Plattform für die Kamera.

Rechner: Ein leistungsstarker Computer oder ein eingebettetes System (wie ein Raspberry Pi) zur Verarbeitung der Bilddaten.

2. Software

Programmiersprachen: Python ist weit verbreitet für Bildverarbeitung und maschinelles Lernen. Andere Optionen sind C++ oder Java.

Bibliotheken und Frameworks:

OpenCV: Eine Open-Source-Bibliothek für Computer Vision.

TensorFlow oder PyTorch: Frameworks für maschinelles Lernen und Deep Learning.

YOLO (You Only Look Once): Ein Echtzeit-Objekterkennungsalgorithmus.

Entwicklungsumgebung: Eine IDE wie PyCharm oder Visual Studio Code.

3. Daten

Datensätze: Du benötigst große Mengen an Bildern von den Objekten und Menschen, die du erkennen möchtest. Diese Bilder müssen annotiert sein (d.h., die Objekte müssen markiert sein).

4. Schritte zur Entwicklung

Anforderungen definieren: Bestimme genau, welche Objekte und Körperteile erkannt werden sollen.

Daten sammeln und annotieren: Sammle Bilder und markiere die relevanten Objekte und Körperteile.

Modell trainieren: Verwende maschinelles Lernen, um ein Modell zu trainieren, das die Objekte und Körperteile erkennt. Hierfür kannst du vortrainierte Modelle wie YOLO verwenden und sie mit deinen Daten feinabstimmen.

Integration: Integriere das trainierte Modell in deine Drohne oder Überwachungskamera. Dies erfordert oft die Entwicklung einer Schnittstelle zwischen der Kamera und dem Modell.

Testen und Optimieren: Teste das System in verschiedenen Umgebungen und optimiere es, um die Erkennungsgenauigkeit zu verbessern.

Woher ich das weiß:Recherche

zooper  09.09.2024, 22:15

Woher ich das weiß: ChatGPT

Sportfitness  09.09.2024, 22:24
@zooper

Du mit deinen scheiß ChatGPT immer wenn ich es verwendet hätte wäre dies auf die Frage herausgekommen. Überlege mal was für eine Nutzervorführung du die ganze Zeit machst weil du nicht in der Lage bist sinnvolle Antworten zu Formulieren !

Um eine Software zu entwickeln, die Objekte oder Menschen in Bildern oder Videos erkennt und erfasst, benötigst du Kenntnisse und Werkzeuge aus dem Bereich der Computer Vision und des maschinellen Lernens. Hier ist eine Schritt-für-Schritt-Anleitung, wie du vorgehen kannst:

1. Grundlagen verstehen
  • Computer Vision: Ein Feld der Informatik, das sich mit dem automatisierten Verstehen von Bildern und Videos beschäftigt.
  • Maschinelles Lernen (ML): Eine Methode, bei der Algorithmen aus Daten lernen, um Aufgaben wie Bildklassifikation oder Objekterkennung durchzuführen.
2. Werkzeuge und Bibliotheken
  • TensorFlow/Keras: Open-Source-Frameworks für maschinelles Lernen, die umfassende Bibliotheken für Bildverarbeitung bieten.
  • PyTorch: Eine weitere populäre Bibliothek für maschinelles Lernen, bekannt für ihre Flexibilität und Benutzerfreundlichkeit.
  • OpenCV: Eine Open-Source-Bibliothek für Computer Vision, die viele Funktionen für die Bildverarbeitung und Objekterkennung bereitstellt.
  • YOLO (You Only Look Once): Ein leistungsfähiges Modell zur Objekterkennung, das in Echtzeit arbeitet.
3. Daten sammeln

Um Objekte oder Menschen zu erkennen, benötigst du Trainingsdaten:

  • Bilddaten: Sammle Bilder, die die Objekte oder Personen zeigen, die du erkennen möchtest. Die Bilder sollten gut annotiert sein, d. h. du musst die Objekte oder Körperteile in den Bildern kennzeichnen.
  • Labeling-Tools: Tools wie LabelImg oder VGG Image Annotator können dir helfen, die Daten zu annotieren.
4. Modell auswählen und trainieren
  • Modellauswahl: Je nach Anforderungen kannst du vortrainierte Modelle wie YOLO, SSD (Single Shot Multibox Detector) oder Faster R-CNN verwenden. Diese Modelle sind oft schon auf großen Datensätzen trainiert und können für deine spezifischen Anforderungen angepasst werden.
  • Feinabstimmung (Fine-Tuning): Falls du ein vortrainiertes Modell verwendest, kannst du es auf deinem spezifischen Datensatz weitertrainieren, um die Genauigkeit zu erhöhen.
5. Modell evaluieren
  • Testen: Überprüfe die Leistung deines Modells auf einem separaten Testdatensatz, um sicherzustellen, dass es gut generalisiert.
  • Metriken: Verwende Metriken wie Genauigkeit, Präzision, Recall und F1-Score, um die Leistung des Modells zu bewerten.
6. Integration und Deployment
  • Integration: Implementiere dein Modell in die Software, die auf der Drohne oder der Kamera läuft. Hierfür benötigst du Programmierkenntnisse in Sprachen wie Python oder C++.
  • Edge-Computing: Wenn du die Software auf einer Drohne oder in einer Kamera einsetzen möchtest, musst du sicherstellen, dass das Modell auf der Hardware effizient läuft. Möglicherweise benötigst du Optimierungstools wie TensorFlow Lite oder ONNX für eine bessere Performance auf eingebetteten Systemen.
7. Optimierung und Wartung
  • Optimierung: Überwache die Leistung des Modells und optimiere es bei Bedarf, um die Erkennung zu verbessern oder Ressourcen zu schonen.
  • Wartung: Halte deine Software aktuell und trainiere das Modell regelmäßig mit neuen Daten, um die Genauigkeit zu bewahren oder zu verbessern.
Zusätzliche Tipps:
  • Dokumentation: Lies die Dokumentation der verwendeten Bibliotheken und Frameworks gründlich.
  • Community: Nutze Foren und Communities wie Stack Overflow oder Reddit, um Unterstützung zu erhalten und Fragen zu klären.
  • Weiterbildung: Halte dich über die neuesten Entwicklungen im Bereich der Computer Vision und des maschinellen Lernens auf dem Laufenden.

Die Entwicklung einer solchen Software kann anspruchsvoll sein, aber mit den richtigen Ressourcen und einem klaren Plan kannst du erfolgreich eine Lösung entwickeln. Viel Erfolg bei deinem Projekt!

Sportfitness  09.09.2024, 22:30
@zooper

Du hast mir das schon 5 mal unterstellt bei verschieden Antworten

zooper  10.09.2024, 22:30
@Sportfitness

Hä, du schreibst doch selber "Microsoft Bing suche" - die ist auch nichts mehr als ein LLM.

Interrogantis 
Beitragsersteller
 09.09.2024, 23:04

Was bräuchte ich für folgendes?:

Auf einem Platz befinden sich 50 Menschen - ich bin weiter weg und beobachte die. Ich schicke eine gewisse Anzahl an Drohnen (entweder in ein oder zwei stelligen Bereich) zu ihnen, mit dem folgenden Ziel:

Die Drohnen erfassen die 50 Personen innerhalb nur in wenigen Sekunden (wenn das möglich ist) und ordnet die Leute in Gruppe A oder B zu.

Interrogantis 
Beitragsersteller
 09.09.2024, 22:02

Danke dir. 👊