Wilm-52
Aktives Mitglied
Guten Tag.
In diesem Thread habe ich ein Programm entwickelt, das Meteor-Echos loggt.
Im Anfang war es eine Echtzeitversion, die auf einem Nvidia Jetson Computer lief. Vor einiger Zeit habe ich das Programm dann zu Windows-10 portiert und auf Postprozessing umgestellt.
Das Programm funktioniert prima, hat aber Schwachstellen. Konventionell programmierte Objekterkennung ist nie perfekt. Bild 1 zeigt, wie das Programm richtig zwischen einer Störung und einem Meteorsignal unterscheidet. Bild 2 ist ein Beispiel dafür, wo das Programm versagt. (Bild 2 wird weiter unten noch mal benötigt.) Es wäre also zusätzlicher Code nötig, der solche Fälle behandelt. Daher stand von Anfang an fest, dass das Programm mal auf KI / Maschine Learning umgestellt werden wird.
Kürzlich bin ich nun auf ein Tutorial und eine exzellente Software gestoßen; das PixelLib von Ayoola Olafenwa. Pixellib ist eine Programmbibliothek, die genau die Prozeduren zur Verfügung stellt, die für die Objekterkennung mit KI Methoden benötigt werden.
github.com
Es verwendet als zentrale KI-Programme Tensorflow und Pytorch. Die Programmiersprache ist Python3.
Zur Erkennung der Meteore möchte ich die Instanzen Segmentierung nutzen. Wie das funktioniert, sollen die Bilder Bild 3 bis Bild 6 (selbst gemacht) veranschaulichen. Die Software erkennt die Pferde und die Rinder als einzelne Instanzen, auch wenn sie unvollständig bzw verdeckt sind. Die farbigen Flächen und Ränder in den Bildern 4 und 6 wurden von mir programmiert. Damit habe ich also später Zugriff auf die Größen und Anzahl der einzelnen Echos.
Nun muss „nur“ noch ein neuronales Netzwerk mit Meteor-Spektrogrammen und Störungen trainiert werden. Dafür nimmt man üblicherweise ein vorhandenes Modell und trainiert es einfach um. Bild 1 zeigt den ersten Schritt aus diesem Prozess: Zunächst legt man eine Kontur um das Spektrogramm, welche dann als json-Datei zusammen mit dem jpg-Bild abgespeichert wird. Ob alles richtig gelaufen ist, lässt sich mit einem kleinen Tool überprüfen, s. Bild 7. Mit möglichst vielen Dateien wird dann das Trainingsprogramm gefüttert.
Ich verwende hier die Spektrum-Lab 3D Spektrogramme, aber es könnte im Prinzip auch mit anderen Darstellungsarten trainiert werden.
Fortsetzung folgt.
Viele Grüße,
Wilhelm
In diesem Thread habe ich ein Programm entwickelt, das Meteor-Echos loggt.
Im Anfang war es eine Echtzeitversion, die auf einem Nvidia Jetson Computer lief. Vor einiger Zeit habe ich das Programm dann zu Windows-10 portiert und auf Postprozessing umgestellt.
Das Programm funktioniert prima, hat aber Schwachstellen. Konventionell programmierte Objekterkennung ist nie perfekt. Bild 1 zeigt, wie das Programm richtig zwischen einer Störung und einem Meteorsignal unterscheidet. Bild 2 ist ein Beispiel dafür, wo das Programm versagt. (Bild 2 wird weiter unten noch mal benötigt.) Es wäre also zusätzlicher Code nötig, der solche Fälle behandelt. Daher stand von Anfang an fest, dass das Programm mal auf KI / Maschine Learning umgestellt werden wird.
Kürzlich bin ich nun auf ein Tutorial und eine exzellente Software gestoßen; das PixelLib von Ayoola Olafenwa. Pixellib ist eine Programmbibliothek, die genau die Prozeduren zur Verfügung stellt, die für die Objekterkennung mit KI Methoden benötigt werden.
GitHub - ayoolaolafenwa/PixelLib: Visit PixelLib's official documentation https://pixellib.readthedocs.io/en/latest/
Visit PixelLib's official documentation https://pixellib.readthedocs.io/en/latest/ - GitHub - ayoolaolafenwa/PixelLib: Visit PixelLib's official documentation https://pixellib.readthedocs...
Zur Erkennung der Meteore möchte ich die Instanzen Segmentierung nutzen. Wie das funktioniert, sollen die Bilder Bild 3 bis Bild 6 (selbst gemacht) veranschaulichen. Die Software erkennt die Pferde und die Rinder als einzelne Instanzen, auch wenn sie unvollständig bzw verdeckt sind. Die farbigen Flächen und Ränder in den Bildern 4 und 6 wurden von mir programmiert. Damit habe ich also später Zugriff auf die Größen und Anzahl der einzelnen Echos.
Nun muss „nur“ noch ein neuronales Netzwerk mit Meteor-Spektrogrammen und Störungen trainiert werden. Dafür nimmt man üblicherweise ein vorhandenes Modell und trainiert es einfach um. Bild 1 zeigt den ersten Schritt aus diesem Prozess: Zunächst legt man eine Kontur um das Spektrogramm, welche dann als json-Datei zusammen mit dem jpg-Bild abgespeichert wird. Ob alles richtig gelaufen ist, lässt sich mit einem kleinen Tool überprüfen, s. Bild 7. Mit möglichst vielen Dateien wird dann das Trainingsprogramm gefüttert.
Ich verwende hier die Spektrum-Lab 3D Spektrogramme, aber es könnte im Prinzip auch mit anderen Darstellungsarten trainiert werden.
Fortsetzung folgt.
Viele Grüße,
Wilhelm
Anhänge
-
Bild_1_Beispiel_Signal&Stoerung.jpg467,8 KB · Aufrufe: 129
-
Bild_2_Kontur_Erfassung.jpg740,4 KB · Aufrufe: 127
-
Bild_3_Cows.jpg1,3 MB · Aufrufe: 125
-
Bild_4_Cows_instance_segmentation.jpg578,5 KB · Aufrufe: 116
-
Bild_5_Horses.jpg1,4 MB · Aufrufe: 112
-
Bild_6_Horses_instance_segmentation.jpg631,4 KB · Aufrufe: 119
-
Bild_7_Trainingsdateien-erstellen.jpg546,8 KB · Aufrufe: 117
Zuletzt bearbeitet: