Meteor-Echo Detektion mit künstlicher Intelligenz (KI) / Machine Learning

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.
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
 

Anhänge

  • Bild_1_Beispiel_Signal&Stoerung.jpg
    Bild_1_Beispiel_Signal&Stoerung.jpg
    467,8 KB · Aufrufe: 129
  • Bild_2_Kontur_Erfassung.jpg
    Bild_2_Kontur_Erfassung.jpg
    740,4 KB · Aufrufe: 127
  • Bild_3_Cows.jpg
    Bild_3_Cows.jpg
    1,3 MB · Aufrufe: 125
  • Bild_4_Cows_instance_segmentation.jpg
    Bild_4_Cows_instance_segmentation.jpg
    578,5 KB · Aufrufe: 116
  • Bild_5_Horses.jpg
    Bild_5_Horses.jpg
    1,4 MB · Aufrufe: 112
  • Bild_6_Horses_instance_segmentation.jpg
    Bild_6_Horses_instance_segmentation.jpg
    631,4 KB · Aufrufe: 119
  • Bild_7_Trainingsdateien-erstellen.jpg
    Bild_7_Trainingsdateien-erstellen.jpg
    546,8 KB · Aufrufe: 117
Zuletzt bearbeitet:
Ein kleines Update zur Technik:
KI / Machine Learning ist sehr rechenintensiv, so dass man zB beim Trainieren eines Modells einen Tag oder mehr benötigen würde. Aber auch das Auswerten von ein paar tausend Bildern pro Tag würde ewig lange dauern.
Nun gibt es aber zu den rechenintensiven KI-Programmen Pytorch und Tensorflow Bibliotheken zum Parallelrechnen, so dass man sie mit Nvidia Grafikkarten beschleunigen kann.
Für meine KI Experimente habe ich mir nun ein Gaming Notebook (NB) mit einer RTX3060 GPU (Grafik Prozessor Unit) gekauft. Es ist nicht das Top Modell, enthält aber 3840 Rechenkerne, die zB bei Computerspielen oder Raytracing für einen schnellen Bildaufbau sorgen.
Einen Vergleich mit meinem normalen Notebook kann ich schon zeigen: das Untersuchen des Bildes unten dauerte auf meinem normalen NB 10 Sekunden, während das Gaming NB 5 Bilder pro Sekunde schaffte.
Viele Grüße,
Wilhelm
 

Anhänge

  • Gaming-NB-RTX3060.jpg
    Gaming-NB-RTX3060.jpg
    285,5 KB · Aufrufe: 110
  • mein-PC.jpg
    mein-PC.jpg
    276,2 KB · Aufrufe: 126
Guten Tag,
nun kann ich Euch schon erste Meteore zeigen, die von der KI-Software erkannt wurden. Zum testen habe ich nur 30 Bilder verwendet und nur wenige Epochen (= Zyklen) wurden gerechnet. Das erklärt, warum einige Meteore nicht erkannt werden und die Wahrscheinlichkeiten niedrig sind. Aber das Prinzip funktioniert und die Rechenzeiten werden dank Beschleunigung durch die Grafikkarte im Bereich von ein paar Stunden liegen.
Jetzt muss das neuronales Netzwerk noch mit vielen Daten trainiert werden. Es müssen Spektrogramme von allen mögliche Echos, von langen, kurzen, breiten, doppelten u.s.w. erfasst werden. Die zweite Klasse wird dann alle Formen von Störungen enthalten. Hier wurde die zweite Klasse durch Schmetterlinge simuliert, weil sie in großer Menge im Datensatz des Tutorials vorhanden waren.
Die abgebildeten Schmetterlinge habe ich fotografiert. Das Foto rechts ist eine UV Aufnahme, aufgenommen mit einer IR/UV offenen Kamera mit Baader Venus Filter und hat vermutlich zu wenig Kontrast fürs Machine Learning.
So richtig losgehen wird das Trainieren aber erst, wenn Ayoola Olafenwa die Bibliotheksroutinen für das Pytorch PointRend Modell veröffentlicht hat, s. zB hier:
Das Modell ist schneller und genauer als das hier benutzte Mask R-CNN Modell mit Tensorflow.
Das letzte Bild zeigt noch eine andere Anwendung. Dort ist auch der GPU Load festgehalten.
Viele Grüße,
Wilhelm

------------------------
Hier sind noch ein paar Begriffe für die Suchfunktion des Forums und für die Suchmaschinen:
Meteor Scattering, Artificial Intelligence (AI ), Machine Learning, Instance Segmentation, Tensorflow, Pytorch, Pixellib, Nvidia RTX3060-GPU, CUDA, cuDNN.
 

Anhänge

  • Instance-Segmentation-Output.jpg
    Instance-Segmentation-Output.jpg
    573,9 KB · Aufrufe: 110
  • Instance-Segmentation-Input.jpg
    Instance-Segmentation-Input.jpg
    410,7 KB · Aufrufe: 109
  • Instance-Segmentation-filled-polygons-Output.jpg
    Instance-Segmentation-filled-polygons-Output.jpg
    536,3 KB · Aufrufe: 114
  • Video-Instance-Segmentation-with-RTX3060-GPU.jpg
    Video-Instance-Segmentation-with-RTX3060-GPU.jpg
    387,5 KB · Aufrufe: 122
Zuletzt bearbeitet:
...Wilhelm...das wird langsam unheimlich, was Du da an tollen Ergebnissen ablieferst...
Nachher wirst Du noch von einem Geheimdienst gekidnappt.... :cool:
LG Eberhard
 
Eberhard, danke für deine Antwort. Was ich mache ist nichts, was einen Geheimdienst interessieren würde.
Aber es ist wohl so, dass Künstliche Intelligenz von einer gewissen Mystik umgeben ist.
Die Bezeichnung Künstliche Intelligenz ist jedoch irreführend, weil die Software natürlich nicht intelligent ist, sondern dumm wie alle andere Software auch. Besser ist der Begriff Machine Learning. Nur die Strukturen des Programms und wie man dem Programm beibringt, Objekte zu erkennen, hat man sich beim Gehirn abgeschaut, so wie man sich das Flugzeug bei den Vögeln abgeschaut hat.
Das selbstfahrende Auto zB ist auch in keiner Weise intelligent. Die so genannte KI-Software dient nur dazu, das Bild der Kamera (oder der Kameras) zu untersuchen und dann auszugeben, was sich dort mit einer gewissen Wahrscheinlichkeit vor der Linse befindet, so wie es oben in Bildern zu sehen ist. Das Ergebnis sind dann die verschiedenen Klassen, zB Mensch, Baum, Straße, Bürgersteig, Verkehrsschild usw. Dann muss eine ganz normale Software klitzeklein (if...then...else) programmiert werden, die alle möglichen Eventualitäten bis ins kleinste Detail behandelt.
Einen schönen Tag wünsche ich und
viele Grüße,
Wilhelm
 
Nach längerer Zeit kommt hier ein Update:

In letzter Zeit habe ich die Schnittstelle zwischen der KI-Software und dem Meteor-Log-Programm programmiert. Da ich noch kein ordentliches neuronales Netzwerk für Meteore erstellt habe und das auch erst dann machen wollte, wenn dieses Testprogramm läuft, mussten Testobjekte herhalten, die das verwendete Neuronale Netzwerk bereits kennt. Man sieht daran aber auch, dass das Programm universell ist.

Ein Spektrogramm eines Meteorechos wird in der Regel aus mehreren Bruchstücken bestehen, siehe zB den Extremfall Bild 2. Daher wurden die Figuren so gewählt, dass einige aus Bruchstücken bestehen. Die KI-Software erkennt die Objekte trotzdem mit hoher Wahrscheinlichkeit, s. den Eintrag tensor.

Aus den (gleichfarbigen) Bruchstücken werden dann mit der Gaußschen Trapezformel die Flächeninhalte berechnet. Sie sind links unten im Bild 1 aufgelistet.

An das Log-Programm werden später die Anzahl, die Flächen, die Wahrscheinlichkeiten und die Klassen (Meteor(Typ), Störung, Satellit...) weitergegeben.
Viele Grüße,
Wilhelm
 

Anhänge

  • Flaechen-mit-Pytorch.png
    Flaechen-mit-Pytorch.png
    1,1 MB · Aufrufe: 103
  • GRAVES_Discone_211203025559.jpg
    GRAVES_Discone_211203025559.jpg
    239,2 KB · Aufrufe: 120
Zuletzt bearbeitet:
Guten Tag.
Diesen Thread habe ich etwas vernachlässigt, aber es gibt große Fortschritte.
Details dazu stehen in diesem Thread.


Hier zeige ich nur die Highlights, um es übersichtlich zu halten.
Viele Grüße
Wilhelm
 

Anhänge

  • 2.jpg
    2.jpg
    591,8 KB · Aufrufe: 38
  • 2test-a.jpg
    2test-a.jpg
    276,6 KB · Aufrufe: 37
  • 2test-output.jpg
    2test-output.jpg
    282,5 KB · Aufrufe: 32
  • 2test-final.jpg
    2test-final.jpg
    273,3 KB · Aufrufe: 33
Guten Tag.
So, mein Artikel:
Meteor Detektion mit Künstlicher Intelligenz / Machine Learning
ist fertig. Es gibt eine deutsche Version fürs Forum und eine englische zum Einreichen.
Viele Grüße
Wilhelm
 

Anhänge

  • Meteordetektion-mit-KI-ML.pdf
    2,3 MB · Aufrufe: 16
  • Graphical-Abstract.png
    Graphical-Abstract.png
    1,2 MB · Aufrufe: 15
Hallo Stefanie.
Dankeschön. Hier ist die englische Version.
Für die Diskussionen hier im Forum würde dir gerne ein Acknowledgment reinschreiben, wenn du magst.

Lass dir ruhig Zeit mit dem Lesen. Es wird noch von ein paar Radioenthusiasten begutachtet.

Einen schönen Sonntag wünsche ich Euch und viele Grüße
Wilhelm
 

Anhänge

  • Meteordetection-with-KI-ML.pdf
    2,2 MB · Aufrufe: 14
Hallo Wilhem,

Gute Zusammenfassung, gefällt mir sehr :y:

Hier meine Kommentare:

  • Artifical-Star -> Korrektur Artificial-Star
  • Ich würde vielleicht noch erklären warum du die Plots genau in 20 Sekunden Intervallen aufnimmst
  • Vorschlag für den Titel: "Meteor Detection using Artificial Intelligence and Machine Learning"
  • PixelLib ist letztendlich (nur) ein komfortabler Wrapper für DeepLabv3+ und Mask R-CNN, daher würde ich die 2 Methoden zumindest in den Referenzen mit aufnehmen oder im Text 1-2 Sätze erwähnen. Meines Erachtens haben die zwei Methoden die Segmentierung auf Pixel Ebene revolutioniert.

Fast zu Schade für eine Submission ohne Impact Factor ;)

Beste Grüße
Stefanie
 
Hallo Stefanie.
Vielen herzlichen Dank.
Die Vorschläge werde ich umsetzen.
Der Fehler mit Artificial-Star ist sehr peinlich. Ich hatte schon befürchtet, dass alle Labeldaten und das Modell neu gemacht werden müssen.
Aber eine Änderung im Programm reicht erst mal.

Zu den 20 Sekunden hier schon mal vorab:
Die Gesamtzeit des Plots ist bei 143.05 MHz ungefähr 50 s. So ist sichergestellt. dass auch größere Echos komplett im Bild sind. 20 s ist ein Kompromiss zwischen Auflösung und Datenmenge.
Da alle 20 s ein Plot gespeichert wird, darf auch nur ein 20 s langer Bereich ausgewertet werden. So ist sichergestellt, dass (fast) immer ein komplettes Echo, dass auch deutlich länger als 20 s dauert, komplett geloggt wird, s. Anhang: Aus den 3 Plots wird nur ein Echo geloggt, siehe ++++.
So oder ähnlich schreibe ich es dann noch in den Anhang rein.

Vielen Dank noch mal und liebe Grüße
Wilhelm
 

Anhänge

  • Artificial-Star.png
    Artificial-Star.png
    979,1 KB · Aufrufe: 10
  • GRAVES-xyVv_231117082019.jpg
    GRAVES-xyVv_231117082019.jpg
    545,8 KB · Aufrufe: 7
  • GRAVES-xyVv_231117082040.jpg
    GRAVES-xyVv_231117082040.jpg
    548,2 KB · Aufrufe: 8
  • GRAVES-xyVv_231117082059.jpg
    GRAVES-xyVv_231117082059.jpg
    539,5 KB · Aufrufe: 8
  • Out-GRAVES-xyVv_231117082019.png
    Out-GRAVES-xyVv_231117082019.png
    917,1 KB · Aufrufe: 8
  • Out-GRAVES-xyVv_231117082040.png
    Out-GRAVES-xyVv_231117082040.png
    918,3 KB · Aufrufe: 9
  • Out-GRAVES-xyVv_231117082059.png
    Out-GRAVES-xyVv_231117082059.png
    915,8 KB · Aufrufe: 9
Hallo Stefanie,
ich habe die Sache mit den 20 s noch mal überarbeitet und ein Bild dazu eingebaut:

4 The Evaluation
The evaluation software reads all the images addressed by file names and wildcards one after the other, usually those from an entire day. The total recording time per chart is approximately one minute. However, since the plots are saved every 20 seconds, only the contents of a 20-second time window need to be logged. Due to the long recording time, even large echoes that last significantly longer than 20 seconds are still recorded correctly. This is explained in Figure 7.

Figure 7 is based on a plot from 8:37:20 am. Two insets, one on the left from 8:37:00 and one from 8:37:40 on the right edge, were added. So three recordings are displayed approximately 20 seconds apart. At 8:37:00 a.m. the meteor is partially at the bottom of the image but is not recorded because the center of mass is still below the blue line. At 8:37:20 a.m. the center of gravity is in the 20-second evaluation window and logging takes place. At 8:37:40 a.m. the center of gravity is again outside the evaluation area.

Figure caption:
Figure 7 – Logging an Echo. Only the echo from 8:37:20 a.m. is logged because the center of gravity is in the 20 s evaluation window.

Blau auf blau ist doof, aber ich kann die Farbe (im Transparentmodus) nicht ändern.

Liebe Grüße
Wilhelm
 

Anhänge

  • Figure-7-neu.png
    Figure-7-neu.png
    1,2 MB · Aufrufe: 11
Hallo Wilhelm,

das ist sehr gut und die Leser werden besser verstehen warum in diesem Intervall.

Kleine Anmerkung, hinter jede Uhrzeit würde ich überall AM setzten > 8:37:20 AM

Viele Grüße
Stefanie
 
Fast zu Schade für eine Submission ohne Impact Factor ;)

Hallo Stefanie,
die Arbeiten in Meteor-News sind nicht peer reviewed, aber es ist eine sehr gute Lösung für einen einfachen Bastler. Die Artikel sind zitierbar und werden nicht hinter einer Paywall versteckt.
Die Artikel werden zB. auch hier gelistet:
und

Habe noch zwei Entwürfe von Figure 7 angehängt. Bei einem feht noch die Beschriftung.
Viele Grüße
Wilhelm
 

Anhänge

  • Figure-7-neu1.png
    Figure-7-neu1.png
    1,2 MB · Aufrufe: 8
  • Figure-7-neu2.png
    Figure-7-neu2.png
    1,2 MB · Aufrufe: 9
Zuletzt bearbeitet:
Guten Tag.
Das Paper liegt noch in England. Inzwischen habe ich ein neues Grafical Abstract mit Stefanies Vorschlag zum Titel und eine Abbildung zu den Ruinen gemacht.
Viele Grüße
Wilhelm
 

Anhänge

  • Graphical-Abstract2.png
    Graphical-Abstract2.png
    1,1 MB · Aufrufe: 5
  • a13-neu.png
    a13-neu.png
    1,4 MB · Aufrufe: 9
Guten Tag.
So, das Paper ist nun online.
Vielen Dank noch mal an Stefanie fürs Korrekturlesen und besonders für die vielen Diskussionen hier im Forum.
Das steht auch im Paper unter Acknowledgment.

Vielen Dank auch ans Forum, das uns hier eine tolle Plattform bietet.
Einen schönen Tag wünsche ich Euch,
viele Grüße
Wilhelm

 
Zuletzt bearbeitet:
Guten Tag.
Nach dem Paper ist vor dem Paper.
Im Moment versuche ich die Auswertung von 2D-lang auf 3D umzustellen. Abgebildet ist schon mal der Noisefloor. Ein Tag fehlt. Zu sehen ist dass die Störungen ab 6 h kräftig zunehmen. Zum Glück kommt die Geminidenkerbe um 2 h.
Die Bilder mit dem Meteor und dem Satelliten zeigen, dass die neue Software sie schön trennt.
Das große Echo von heute um 7:15 h UT wird als 2 Meteore erkannt.
Einen schönen Tag wünsche ich euch,
viele Grüße
Wilhelm
 

Anhänge

  • noisefloor.png
    noisefloor.png
    220,9 KB · Aufrufe: 10
  • GRAVES-XYVv231203133300.jpg
    GRAVES-XYVv231203133300.jpg
    129,7 KB · Aufrufe: 10
  • KI-GRAVES-XYVv231203133300.png
    KI-GRAVES-XYVv231203133300.png
    1 MB · Aufrufe: 4
  • GRAVES-XYVv231205071539.jpg
    GRAVES-XYVv231205071539.jpg
    587,3 KB · Aufrufe: 4
  • KI-GRAVES-XYVv231205071539.png
    KI-GRAVES-XYVv231205071539.png
    956,4 KB · Aufrufe: 4
Oben