Erkennung von unbemannten Luftfahrzeugen mithilfe von Computer Vision
Zusammenfassung
Mit der technologischen Innovation wird die Sicherheit zum größten Problem, das es zu bewältigen gilt. Die exponentiell zunehmende Zugänglichkeit von Drohnen stellt eine große Bedrohung für die allgemeine Sicherheit dar. Der Einsatz von UAVs hat in den letzten Jahren zugenommen. Unter Berücksichtigung der Sicherheitsprobleme wird hier eine Lösung vorgeschlagen. Erkennen Sie zuerst UAVs und verfolgen Sie dann ihren Weg.
Für die Objekterkennung sind Computer Vision Deep Learning-Algorithmen sehr effektiv. Die Eingabe wird von YOLO verarbeitet, einem neuronalen Netzwerk, das zur Objekterkennung und -verfolgung in Echtzeit verwendet wird.
2.1 Das UAV-Konzept verstehen
Wie im Titel „UAV-Erkennung und -Verfolgung mit Computer Vision“, UAV (Unmanned Aerial Vehicle) ist ein Flugzeug ohne Pilot, das ferngesteuert oder von Bordcomputern gesteuert werden kann.
UAVs können für nützliche Zwecke wie Landwirtschaft, wissenschaftliche Forschung, Wettervorhersage, Versand und Lieferung, Rettungseinsätze und Gesundheitsfürsorge verwendet werden. Es kann für Katastrophenzwecke wie Angriffe, Raketenangriffe, Zieltötung usw. verwendet werden.
2.2 Was ist maschinelles Sehen?
Computersehen ist das Wissenschaftsgebiet, das Computer dazu bringt, Bilder so zu sehen, zu identifizieren und zu verarbeiten, wie es das menschliche Auge tut, und um eine angemessene Ausgabe zu liefern. Computer Vision wird in fast allen Bereichen eingesetzt, z. B.:
- Objekt, Gesichtserkennung
- Roboterchirurgie und medizinische Diagnose
- Bildbearbeitung
- Landwirtschaft
- Weltraumtechnologie (Der Mars Rover der NASA enthält Fähigkeiten zur Modellierung des Geländes des Planeten, zur Erkennung von Hindernissen auf seinem Weg und zum Zusammenfügen von Panoramabildern) Anwendungen des Computersehens sind in Abbildung 1.4 dargestellt
2.3 Was ist die Bildverarbeitungstechnik?
Die Bildverarbeitung Technik wird von Computer Vision verwendet, um verschiedene Aufgaben auszuführen. Der durchgeführte Vorgang und die angewendeten Verfahren zur Verbesserung der Qualität eines Bildes oder zum Erzielen eines bestimmten Ergebnisses, nachdem es als Bildstapel erhalten wurde, wird als Bildverarbeitung bezeichnet.
Die Bildverarbeitung gilt heute als einer der sich am schnellsten entwickelnden Bereiche der Informationstechnologie mit wachsenden Anwendungen in allen Geschäftsbereichen. Anwendungen der Bildverarbeitung sind:
Anwendungsfälle der Bildverarbeitung
Bildverarbeitung kann in diesen Bereichen verwendet werden:
- Robotik
- Medizinisch
- Mustererkennung
- Videoverarbeitung
- Gesichtserkennung
2.4 Softwareanforderungen
- Anakonda
- Spyder
- Python
- Open-CV-Bibliothek
3. Algorithmen zur Objekterkennung
Viele Algorithmen sind für die Objekterkennung vorhanden. Einige davon sind wie folgt:
- VOILA UND JONES
- Convolutional Neural Networks (CNN)
- Sie sehen nur einmal (YOLO)
- Single-Shot-Detektor (SSD)
- Region Convolutional Neural Networks (R-CNN)
Tabelle 3.1:Algorithmen zur Erkennung
Algorithmus | Beschreibung | Stärke | Schwäche |
VOILA AND JONES (Die Viola-Jones Der Algorithmus wurde 2001 von Paul Viola und Michael Jones entworfen) | Der Hauptzweck war die Gesichts- und Objekterkennung. Es kann Objekte in Echtzeit erkennen. Wenn wir Bildalgorithmen geben, sehen sie sich kleinere Unterregionen an und versuchen, Objekte zu finden, indem sie sich spezielle Merkmale in jeder Unterregion ansehen. Der Algorithmus von Viola und Jones verwendet Haar-ähnliche Merkmale, um Objekte zu erkennen |
|
|
CNN (Convolutional Neural Networks) Eingeführt von Kunihiko Fukushima im Jahr 1980 | Das biologisch inspirierte hierarchische Modell, das trainiert werden kann, um Erkennung, Erkennung und Segmentierung zu bestätigen. Es ist im Grunde ein Deep-Learning-Algorithmus, er nimmt Bilder als Eingabe, weist dem im Bild vorhandenen Objekt lernbare Gewichtungen und Verzerrungen zu und unterscheidet zwischen dem einen und dem anderen |
|
|
YOLO (You Only Look Once) | Es ist ein Echtzeit-Erkennungsalgorithmus. Es wendet einen neuronalen Netzwerkalgorithmus auf das Bild an und teilt das Bild in ein S x S-Gitter und bildet eine Grenze um Bilder und sagt Möglichkeiten für jede der Grenzen voraus. Es verwendet eine Regression. |
| 1. Erkennt ein Objekt pro Gitterzelle. 2. Hohe Leistung der Genauigkeit vorziehen. |
SSD (Single Shot Detector) | Diese Methode benötigt nur einen einzigen Schuss, um mehrere Objekte zu erkennen. Diese Methode ist sehr schnell. Es ist für die Echtzeitimplementierung ausgelegt. Es enthält zwei Komponenten Backbone und SSD-Head. |
|
|
Hier wird der Algorithmus des neuronalen Yolo-Netzwerks verwendet. Dieser Algorithmus ist für die Echtzeitimplementierung sehr schnell. Es verwendet einen neuronalen Netzwerkalgorithmus und teilt das Bild in ein S x S-Raster und erstellt eine Grenze um das Bild herum, um Möglichkeiten für jede Grenze vorherzusagen. Algorithmen zur Erkennung sind in Tabelle 4.4 aufgeführt.
3.1 Algorithmus für Tracking
Nach dem Erkennen eines Objekts liegt der nächste Fokus auf der Spur. Wenn es sich bei dem erkannten Objekt um einen Drachen oder Vogel handelt, ist keine Verfolgung erforderlich, aber wenn das erkannte Objekt eine Drohne ist, wird das Ziel verfolgt.
Viele Algorithmen werden für die Objektverfolgung verwendet. Aber auch hier wird YOLO zum Verfolgen verwendet, da dieser Algorithmus schnell und genau ist und erkennen und verfolgen kann, bis sich das Ziel außerhalb der Reichweite der Kamera bewegt.
4. Implementierung des vorgeschlagenen Designs
Hier ist die Implementierung des vorgeschlagenen Designs. In dem alle Schritte durchgeführt werden, die zum Ausführen des Projekts auf Software erforderlich sind.
4.1 Anfangsphase
- Bildverarbeitung braucht eine gute CPU/GPU, wähle CPU. Installieren Sie Anaconda von der Website Die Installation von Anaconda ist in Abbildung 4.1 dargestellt
- Erstellen Sie nach der Installation von Anaconda Navigator mit Hilfe des Umgebungsdialogs eine Umgebung und wählen Sie die Python-Version aus.
- Nachdem Sie erfolgreich eine Umgebung erstellt haben, ist der nächste Schritt die Installation von Spyder, da es einfach zu bedienen ist. Installieren Sie dann open CV über den Befehl pip install cv2.
4.2 Datensatz vorbereiten
- Sammeln Sie viele Bilder von verschiedenen Luftobjekten wie Drohnen, Vögeln, Flugzeugen, Helikoptern, Drachen und Ballons.
Hinweis: Das Erstellen eines Datensatzes ist mehr als nur das Sammeln von Bildern. Geben Sie die Namen der Bilder an und geben Sie auch die Position dieser spezifischen Objekte in jedem Bild an. Dafür kann eine Software namens Labellmg sorgen verwendet, das Bilder in Textdateien umwandelt. Wie in Abbildung 4.6
gezeigt- Sobald Txt-Dateien aller Objekte erstellt wurden. Packen Sie alle Bilder und Textdateien in eine ZIP-Datei. Benennen Sie auch die Datei für die enthaltenen Klassen.
4.3 YOLO-Konfiguration
Führen Sie zur Konfiguration die folgenden Schritte aus:
- Darknet mit YOLO v3 installieren.
- Um das YOLO zu konfigurieren, erstellen Sie einen Ordner in darknet/data, der alle Bilder und .txt-Dateien des zuvor erstellten Datensatzes enthält.
- Um eine benutzerdefinierte Konfigurationsdatei zu erstellen, nehmen Sie die erforderlichen Änderungen in YOLO v3 von cfg vor, indem Sie Stapel, Unterteilungen und maximale Stapel in Bezug auf Klassen und Schritte anpassen.
- Wenn Sie die Anzahl der Klassen eingeben, ändern Sie die Faltungsschicht über YOLO. Setzen Sie auch random auf 1. cfg-Parameter sind in Tabelle 4.1 aufgeführt
Tabelle 4.1:CFG-Parameter
Name | Beschreibung |
Stapel | Wie viele Bilder und Beschriftungen werden im Vorwärtsdurchgang verwendet, um einen Gradienten zu berechnen und die Gewichtungen über die Backpropagation-Methode zu aktualisieren. |
Unterteilungen | Die Charge wird in viele „Blöcke“ unterteilt. Die Bilder eines Blocks werden parallel ausgeführt. |
Schritte | 500.1000:Passen Sie die Lernrate nach 500 und 1000 Batches an. |
Ebenen (Filter) | Wie viele Faltungskerne gibt es in einer Schicht. |
Ebenen (zufällig) | Legen Sie die YOLO-Schichten ein. Wenn auf 1 gesetzt, führen Sie eine Datenerweiterung durch, indem Sie die Größe der Bilder alle paar Stapel auf unterschiedliche Größen ändern, die verwendet werden, um über Objektgrößen zu verallgemeinern. |
- Erstellen Sie einen benutzerdefinierten Objektordner über data/obj.names, in dem alle Namen geschrieben sind, die wir erkennen möchten, wie Drohnen, UAVs, Vögel, Drachen usw.
- In obj.data sind Klassenanzahl, train.txt, gültig, Namen und Gewichtsordner enthalten und gespeichert.
- In train.txt werden alle Daten und Namen der Bilder gespeichert.
4.4 YOLO auf Ihrem Datensatz trainieren
Das Training von YOLO für einen angepassten Datensatz erfolgt ebenfalls über das Darknet. Klonen und aktivieren Sie das Darknet und aktivieren Sie den offenen Lebenslauf. Indem Sie den ZIP-Ordner, die .cfg-Datei, die .names-Datei, die obj.data-Datei und die train.txt-Datei nehmen, die oben erstellt wurden, konfigurieren Sie dann das Darknet-Netzwerk für das Training von YOLO v3 und zählen Sie die Ausführungen.
Nach Tausenden von Iterationen, die basierend auf unserer CPU-Leistung etwa 2 Stunden dauern können, ist ein trainierter Datensatz einsatzbereit und in unser System integrierbar, mit Angabe des durchschnittlichen Verlusts.
4.5 Code auf Bild- und Videoeingabe testen
Nachdem Sie den YOLO für den benutzerdefinierten Datensatz trainiert haben, beginnen Sie mit dem Testen des Codes auf Ihrem trainierten Datensatz, der als YOLO-Gewichte bezeichnet wird. In diesem Fall hat es 4 Klassen.
Probieren Sie die YOLO-Erkennung auf einem anderen Gerät aus. Große Gewichte sind in Bezug auf die Genauigkeit gut, aber die Verarbeitung ist aufgrund der niedrigen Bilder pro Sekunde etwas langsam. Machen Sie ein Video von UAV, Vögeln und geben Sie diese Daten als Eingabe für den Code ein. Alle Objekte werden erfolgreich erkannt und mit den Labels mit fps und Schwellenwert verfolgt.
Jetzt kann der Code für Echtzeit-Szenarien getestet werden, indem die Echtzeit-Eingabe der Webcam die Reichweite unserer Kamera ändert, flog unser UAV mit Aufzeichnung des Ergebnisses, Sie sehen die Ausgabe als erforderlich „Erkennung und Verfolgung von UAV“.
Industrietechnik
- Computer Vision als Bewegungssensor für SmartThings
- SONBI ROBOTER MENSCHLICHE ERKENNUNG MIT KINECT UND HIMBEE PI
- Die Vorteile des Einsatzes von Robotic Vision für Automatisierungsanwendungen
- 4 Vorteile der Verwendung einer intelligenten Lecksuchlösung in Gebäuden
- 5 Vorteile der Verwendung des IoT-betriebenen Wasserleckerkennungssystems von Biz4intlias in der Industrie
- 7 Anwendungen von Computer Vision
- Maschinelles Sehen
- Unmanned Aerial Vehicle (UAV) in großer Höhe zur Überwachung meteorologischer Parameter
- Verhindern von wärmeinduzierter Bildverzerrung in Zeilenkameras für maschinelles Sehen
- 24 Lektion 7:Mastercam