Programmier- und Tutorial-Projekt

Status
Es sind keine weiteren Antworten möglich.

MrThomas

Mitglied
Hallo liebe Astro Freunde,

nachdem ich mich mal als neues Mitglied mal durch viele Beiträge, Bilder und Projekte durchgewühlt habe, würde ich in dem Unterforum gerne mal mein Projekt vorstellen. Ich denke es passt ganz gut zur Kategorie "Software & Literatur". Da ich derzeit in meiner Wahlheimat Stuttgart kein Teleskop habe, und, auch wenn es vielleicht albern klingt, sehr viel mit dem Astromodus meines Pixel 5 herumexperimentiere, beschränkt sich mein Astrohobby derzeit auf: Literatur, Tutorials, Machine Learning & Programmieren. Sehr Computer-lastig also...

Dennoch würde ich meine beiden Projekte gerne mal vorstellen. Vielleicht findet sich hier der ein oder andere (Hobby) Programmierer, der an den Themen Freude findet. Oder aber ich kann mehr Leute zum Programmieren anregen, wer weiß :).

Mein erstes Projekt nennt sich "Space Science with Python". Wer von euch hat schon mal mit Python programmiert? Für mich persönlich (beruflich und privat) ist Python schon seit vielen Jahren die Programmiersprache der Wahl. Neben einfachen Berechnungen, GUI- und Webseiten-Entwicklungen hin zur Datenanalyse und Machine Learning ist wirklich alles drin. Da ich sehr viel im Bereich Asteroiden, Meteore, Kosmischer Staub usw. gearbeitet habe, wollte ich anfangen mein Space Science bezogenes Wissen in kleine Programmiertutorials zu verpacken. Entstanden ist die gerade genannte Serie "Space Science with Python". Hier geht es darum, wie man Bahnen von Körpern im Sonnensystem berechnen kann, 3D Modelle von Kometen visualisiert und wissenschaftliche Fragestellungen datenwissenschaftlich angeht. Es folgen noch viele Tutorials in den nächsten Monaten (und bestimmt darüber hinaus), die unter anderem folgende Themen noch behandeln sollen:

  • Datenanalyse echter wissenschaftlicher Ergebnisse von Cassini's Cosmic Dust Analyzer
  • Datenanalyse des Dust Impact Monitor auf Philae
  • Anwendung von künstlicher Intelligenz zur Klassifikation von Spektren, Meteorströmen, ...
  • "Mitmach" Projekte: Skript schreiben zur Berechnung der ZHR eines Meteorstroms und Verwendung eigener Beobachtungen
  • usw.
Derzeit "hänge ich etwas fest", nämlich am ersten Asteroiden Projekt. Warum? Das erkläre ich gleich. Hier jedoch erstmal der Link mit einer Auflistung alle Tutorials auf Medium: https://github.com/ThomasAlbin/SpaceScienceTutorial

Nun zum Asteroiden Projekt. Mir ist bewusst, das die gesamte Thematik "Kleinkörper im Sonnensystem" absolutes Nischenwissen und -thema ist. Aber ich finde es sehr spannend und ein paar Kollegen verfolgen das Projekt auch etwas. Für die Kleinkörper-bezogenen Tutorials entwickele ich nämlich parallel eine Python Bibliothek, die dieses Thema abdecken soll. Als ich damals Studenten betreut habe ist mir aufgefallen wie oft die gleichen Themen und Formeln recherchiert werden und neu implementiert werden müssen. Die Datensuche, Berechnungen, usw... insgesamt also sehr viel redundante Arbeit, die einfach nur Zeit kostet... und das ist die Idee dar Bibliothek: Sie soll Basis für Kleinkörper Forscher, Hobbyastronomen und Studenten sein, und gleichzeitig Basis für weitere Tutorials, die automatisch auch die Dokumentation darstellen sollen! Wer einen Blick hierauf werfen möchte: https://github.com/ThomasAlbin/SolarY. Alles befindet sich noch in einem Alpha-Stadium... aber aller Anfang ist schwer :). Und da ich neben den Tutorials nun auch die Bibliothek entwickele (und natürlich berufstätig bin) dauert es ein bisschen.

Ich hoffe, dass sich der ein oder andere hierfür begeistern kann!

Thomas
 
Anwendung von künstlicher Intelligenz zur Klassifikation von Spektren, Meteorströmen, ...
Hi Thomas,

das klingt ja sehr spannend! Entdeckte gerade deinen Beitrag und bei dem oben zitierten Punkt bekomme ich spitze Ohren, denn sowas schwebt mir auch vor, um die Datenflut zu bändigen und zu automatisieren, nur daß ich vom Programmieren etwa soviel verstehe wie die sprichwörtlich Kuh vom Fallschirmspringen. Ich bastle zwar in Skripten zur verwendeten Software SpectrumLab rum, aber das kann man nicht programmieren nennen!

Wahrscheinlich hast du das Radioastronomie-Board hier im Forum schon entdeckt und daß es dort einen Meteor-Scatter-Bereich gibt, in dem eine gute Handvoll Leute erfreulich aktiv ist. Ich könnte mir vorstellen, daß die Bereitschaft zur Unterstützung des Projektes dort auf fruchtbaren Boden fällt und mindestens ein gewisser Datenpool beigetragen werden kann. Oder die Unterstützung beim Einlernen einer KI... oder... oder... oder... :)
Würde das helfen?

Viele Grüße,
Okke
 
Hey Okke,

danke für Deine Nachricht! Im Bereich Radio Astronomie bin ich absoluter Anfänger und habe da leider echt keine Ahnung. Dafür aber umso besser, da ich so was Neues lernen kann. Ich werde mich da mal aktiver reingraben.

Zum Thema Programmieren: Kein Problem. Jeder fängt irgendwie an. Ich weiß nicht wie tief Du schon im Thema bist, aber wenn Dich Python interessiert und Du gerne mit einem Buch lernst empfehle ich "Einstieg in Python: Die Einführung für Programmieranfänger, inkl. Objektorientierung. Mit vielen Beispielen und Übungen" von Thomas Theis. Ich hab mit seinem Python 2 Buch damals auch angefangen. Python 3 ist die aktuellste Version.

Viele Grüße,
Thomas
 
Hi Thomas,

mich hat das auch erst seit ca 1 Jahr gepackt, neu ist ja relativ, dem einen neu, dem anderen ein alter Hut, und seither fasziniert es mich. Seit ein paar Monaten auch mit eigenen Daten.

Meteor-Scatter benutzt Antennen statt optischer Teleskope, bedarf aber eines Senders, dessen Signal von den Meteoren bzw deren Ionisationsspuren, die sie beim Eintritt in die Atmosphäre hinterlassen, reflektiert wird, Radarechos also. Das empfangene Signal ist entsprechend ein Frequenzverlauf über die Zeit, Doppler. Leider gibts da auch "Pseudos", Signale also, die es erstmal über die Triggerkriterien schaffen, aber keine Meteore sind, sondern zB Flugzeuge, Satelliten, atmosphärische Reflexionen, etc... also interpretiert werden müssen, um sie klassifizieren zu können. Das geschieht bisher mit klassischer Bio-Intelligenz und ist entsprechend zeitaufwändig bei der Fülle der Daten. Hier tut sich m.E. ein ideales Spielfeld für K.I. auf. Leider hat der Tag nur 24h und man kann einfach nicht alles selber machen und jetzt noch in die Welt des Programmierens einsteigen zu wollen, wäre wohl ein wenig zu ehrgeizig, ein Programmierer wird in diesem Leben aus mir nicht mehr... ;)

So versuche ich die Sache synergetisch anzugehen und wenn ich das Zitat richtig verstanden habe, versuchst du zu erschaffen, wonach ich suche. Meines Wissens gibt es sowas noch nicht. Dabei wäre ich im Rahmen meiner Möglichkeiten natürlich gerne behilflich!

Viele Grüße,
Okke
 
Hey Okke,

das klingt echt total spannend! Danke Dir für deine ausführliche Beschreibung. Nächste Woche Freitag habe ich ein virtuelles Meeting mit einigen Meteorforscherkollegen. Da ich einen Vortrag halten werden werd ich bei der anschließenden Diskussion mal das Thema ansprechen. Vielleicht forscht hier der ein oder andere sogar dran!

Ich glaube ich werde auch mal in das Archiv der International Meteor Organization schauen. Bist Du dort Mitglied? Bzw. warst du sogar bei der deren Konferenz, IMC? Ich würde Dir das absolut empfehlen. Es treffen sich Amateure und Berufsastronomen aus dem Meteorgebiet. Der Austausch ist super und die Atmosphäre sehr angenehm (jeden Abend gibt es social events). Hier mal die entsprechenden Links:

https://www.imo.net
https://www.imo.net/conference-imc/next-imc/

Thomas
 
Hi Thomas,

nope, weder noch, aber stöbere da gerade mal wieder rum und spiele mit dem Gedanken... immerhin, die Anwendung europäischen Datenschutzrechts und Sitz in Belgien stimmen mich "milde" diesbezüglich ;)
Der Kongreß 2021 soll in Ungarn stattfinden - sofern Corona das zuläßt - aber wo genau? Ich fand nur die Angabe "da wo er 2020 hätte stattfinden sollen" - jou... am Balaton wäre nett, aber ne ganz schöne Ecke zu fahren wäre das schon :oops: Ein netter Flecken zum Urlaub machen aber auch. Na schaumermal... :)

Viele Grüße,
Okke
 
Hallo Okke und Thomas,
ich programmiere auch in Python3, und zwar auf dem Nvidia Jetson Nano. Das ist ein preiswertes Entwicklungssystem für den Einstieg in KI. Ich habe zwei davon, eins als Entwicklungssystem auf dem Tisch und eins auf einem Kopter zur Erdmagnetfeldmessung und zur Bildverarbeitung.

In einem Github Repository (Behälter) von Dustin gibt es alles für den Einstieg in KI.

Ab und zu beschäftige ich mich mit der semantischen Segmentierung.
Das ist eine KI/DeepLearning Methode, bei der jeder Pixel des Bildes einer Klasse zugeordnet wird. Das können Personen, Tiere, Autos, Bäume, Straße, Häuser, Bürgersteig usw sein. Als Output erhält man ein buntes Bild, in dem jede Klasse eine vordefinierte Farbe hat. So „weiß“ dann zB das selbstfahrende Auto oder der autonom fliegende Kopter was sich vor der Linse befindet.
Unten sind 2 SegNet Bilder angehängt. Der Mensch ist rot, Autos sind blau. Im Vergleich dazu eine normale Objekterkennung, die nur das Auto sieht.
Die KI Methode semantische Segmentierung ist meiner Meinung nach sehr gut geeignet, um Meteor Spektrogramme zu detektieren. Das Programm PyTorch ist enthalten, mit dem man auf dem Jetson Nano Neuronale Netze trainieren kann. Allerdings habe ich mich damit noch nicht beschäftigt. Spektrogramme wären aber in großen Mengen vorhanden, wie man in meinen letzten Beiträgen sehen kann.
Viele Grüße,
Wilhelm
 

Anhänge

  • SegNet_8_1_21.png
    SegNet_8_1_21.png
    1,4 MB · Aufrufe: 268
  • SegNet_cam_citys_2k_27_9_2019.jpg
    SegNet_cam_citys_2k_27_9_2019.jpg
    269,4 KB · Aufrufe: 242
  • Detect_8_1_21.png
    Detect_8_1_21.png
    2,1 MB · Aufrufe: 308
Hallo Okke und Wilhelm,

@Okke_Dillen: Gute Frage... die IMC findet meist in etwas unbekannteren Orten statt. Dadurch ist die Konferenz meist sehr günstig. Konferenzräume + Übernachtung sind meist in einem Gebäude. Bislang war ich in Österreich und in den Niederlanden dort. Ich hoffe sehr, dass man Corona bis dahin in den Griff bekommt (nicht nur deswegen natürlich).

@Wilm-52: Sehr sehr cool! Ich hatte auch schon länger mal vor mit dem Jeton zu arbeiten und du hast echt ein cooles Projekt damit geschaffen! Morgen bin ich leider komplett offline... aber ich schreib dir mal eine PM bzgl. deines Projekts; können uns sonst auch hier austauschen. Vielleicht interessiert es manch anderen. Hast Du auch ein Git Repo mit deinem Code?

Beste Grüße,
Thomas
 
Hallo Thomas,
einen Github Repository habe ich nicht. Code kann ich hier zeigen, falls gewünscht. Lass uns lieber hier austauschen. Dann haben alle interessierten Leser etwas davon. Für KI habe ich nichts programmiert, nur installiert. Aber ich bastele an Bildverarbeitung und Messwerterfassung, siehe Bilder. Es ist bei mir alles eine Kombination aus Gstreamer, Opencv und Python3.
Viele Grüße,
Wilhelm
 

Anhänge

  • CK_Willi_15_2_2020.jpg
    CK_Willi_15_2_2020.jpg
    140,7 KB · Aufrufe: 247
  • Fluxgate-Magnetometer-Kopter.jpg
    Fluxgate-Magnetometer-Kopter.jpg
    282,1 KB · Aufrufe: 291
Moinmoin,

wie geht eine eingelernte K.I. eigentlich mit neuen Erkenntnissen um? Also, neu im Sinne von gegensätzlich. B.I. kann das ja...

Szenario: die K.I. soll Fälle, die bisher als nicht-zutreffend eingestuft werden sollten, nun als zutreffend einstufen, weil es neue Erkenntnisse gibt, die diese neue Einstufung erfordern. Kann man sie "umerziehen" oder hilft da nur der große Reset-Knopf?

Viele Grüße,
Okke
 
Hallo zusammen,

danke Wilhelm für den Link! Ich glaube ich werde mir jetzt auch definitiv einen Jetson holen. Und dann noch mit Pytorch Anwendung (bin eher auf der Keras / Tensorflow Seite derzeit).

Beim Thema Meteordetektion sammle ich jetzt erstmal alle möglichen Links und Tools, die in dem Bereich eingesetzt werde. Vielleicht sollte ich mal eine Linksammlung auf Git Anlegen.

Was von einigen verwendet wird ist MeRec: https://www.metrec.org/. Dort gibt es weitere Links zu weiteren Tools, ich ich dann mal zusammenstellen werde.

Gruß,
Thomas
 
Thomas, vielleicht kommt der Jetson Xavier NX für dich in Frage. Das oben verwendete resnet18-cityscapes-2k macht auf dem Nano 3 FPS, auf dem Xavier NX macht es 47 FPS. Besonders Pytorch benötigt Rechenleistung ohne Ende.
Jetzt am Wochenende habe ich das aktuelle JetPack und PyTorch installiert und das Transfer Learning Beispiel Hund/Katze aus dem Tutorial durchexerziert. Technisch funktioniert alles, nur das Programm erkennt zur Zeit alles, auch Katzen, als 67% Hund. Es waren aber nur 10 Epochen. Vielleicht liegt es daran.
Viele Grüße,
Wilhelm
 
Seit ein paar Tagen habe ich den Xavier NX. Das Training mit Pytorch ist (nur) 4 x schneller als auf dem Nano.
Die Meteor Scatter Detektion mache ich erst mal mit Opencv. Das sieht bisher ganz gut aus. Nun brauche ich eine Tracking-Routine.
Thomas, hast du so etwas?
Viele Grüße,
Wilhelm
 
Danke für den Link zum Thread Wilhelm. Ne leider habe ich mir noch keinen Jetson oder ähnliches zugelegt. Ich bin noch an meiner Library dran und an meinen Tutorials. Aber ich finde das total cool! OpenCV ist ein sehr guter Start. Ich frage mich, welche Art von AI man für die Detektive ausprobieren könnte. Autoencoder? Deren reduzierte Darstellung (der Teil zwischen De- und Encoder) müsste eigentlich starke Abweichungen bei bewegten Bildern erzeugen, wenn das neuronale Netz auf sehr "ruhig" sich "kaum bewegende" Himmelsbilder trainiert ist.

Besten Gruß,
Thomas
 
Sorry, Thomas, dass ich jetzt erst antworte. Aber ich habe hier lange nicht mehr reingeschaut und die E-Mail Benachrichtigung ist abgeschaltet.
Das KI Verfahren stelle ich mir folgendermaßen vor:
mit der semantischen Segmentierung, besser noch mit der Instanzen Segmentierung (Instance segmentation), würde die KI die Signale in Klassen einteilen und farbig markieren. Dann folgt das Zählen mit Opencv, so wie es jetzt schon sehr gut funktioniert.
Viele Grüße,
Wilhelm
 
Status
Es sind keine weiteren Antworten möglich.
Zurück
Oben