Körpermodellierung nach Erkennung durch CNN

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nikh22
User
Beiträge: 28
Registriert: Montag 27. Juni 2022, 15:46

Hallo,

meine Situation ist folgende. Als Studienprojekt soll ich über eine Kamera Wolken erkennen und über den Winkel der Sonneneinstrahlung den Schatten berechnen.

Da ich keine Sensoren zur Höhenbestimmung habe, müssen Wetterdaten und die dazugehörige Faustformel als Parameter ausreichen um die Höhe zu bestimmen.
Als Hinweis: Mit neuronalen Netzwerken kenne ich mich ,mehr oder minder, nur grundlegend aus und übersehe hier vielleicht auch etwas

Nun zu meiner Frage:

Wenn ich beispielsweise mein CNN YoloV5 trainiere damit es Wolken erkennt ,wird normalerweise mir immer nur eine Box darum angezeigt.
Wenn ich aber nun die Position der Sonne hab, brauche ich sogesehen einen "Körper" der eine bestimme Form,Höhe und Breite aufweist, um grob abzuschätzen wo der Schatten hinfällt.

Weiß jemand von euch ob und wie sowas mit einem CNN geht?
Oder gibt es möglicherweise einen anderen Ansatz zur "Modellierung solcher Körper" ?

Würde prinzipiell gerne bei einer CNN Erkennung wie Yolo oder Tensorflow bleiben, allerdings bin ich auch gerne für andere Ratschläge bzw. Vorgehensweisen offen.

Vielen Dank im Vorraus.

Niklas
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Aus welcher Perspektive sind denn die Bilder? Senkrecht von unten?
nikh22
User
Beiträge: 28
Registriert: Montag 27. Juni 2022, 15:46

Die Bilder werden von einer Go Pro Hero 4 Silver gemacht die senkrecht in den Himmel schaut.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na dann ist das doch "nur" eine Frage die erkannten Wolken und deren Mittelpunkte auf die gedachte horizontale Ebene zu projezieren. Dazu hat OpenCV zB die homographischen Abbildungen. Du musst deine GoPro kalibrieren, so dass du auch dort planare Bilder hast, und deren Kontour projezierst du dann auf die Ebene gegeben durch deine Wolkendecke und die Position der GoPro. Die Hoehe der Koerper verstehe ich nicht wozu die gebraucht werden sollte, du kannst da eh keine Aussage drueber treffen - und der Schatten ist dann ja auch wiederum nur eine Projektion abhaengig vom Sonnenstand auf die Ebene der Erde.
nikh22
User
Beiträge: 28
Registriert: Montag 27. Juni 2022, 15:46

Könntest du mir das etwas genauer erklären? Ich konnte das jetzt nicht ganz nachvollziehen.
DIe Kalibrierung ist auch für mich logisch weswegen ich das auch schon mit OpenCV umgesetzt habe.
Allerdings weiß ich nun nicht welche gedachte horizontale Ebene du meinst und das mit der Kontour auf die Ebene gegeben durch die Wolkendecke auch nicht.
Warum ist das Ganze unabhängig von der Höhe der Wolkendecke? Je nach Position der Sonne und die Höhe der Wolke ergibt sich doch ein ganz anderer Winkel für den fallen Schatten oder nicht ?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die horizontale Ebene ist die Wolkenhoehe, die du durch meteorologische Daten bekommst. Dein Kamerabild muss auf diese Ebene abgebildet werden.

Wenn du eine einzelne, perfekt kreisfoermige Wolke in der Mitte deines Bildes hast, dann ist die doch viel kleiner, wenn du eine niedrige Wolkendecke hast, als der gleiche Bildinhalt bei einer hohen Wolkendecke. Und aus dieser Beschreibung wird auch klar: ohne diese externe Information der Wolkendeckenhoehe hast du keine Chance, denn nur aus der relativen Groesse im Bild kannst du nichts ueber die wirkliche groesse sagen. So wie dein Daumen vor dem Auge auch groesser sein kann als der Mond. Obwohl der wohl nachweislich groesser ist als dein Daumen.

Und wie willst du denn die einzelne Wolkenhoehe bestimmen? Das geht doch ueberhaupt nicht. Wieder das Beispiel von gerade: von unten siehst du einen schoenen Kreis. Wie hoch ist der denn darueber? 1km, 2km, 1mio km? Kannst du doch mit dieser Information gar nicht sagen. Entsprechend ist das eine Einschraenkung deines ganzen Modells: natuerlich ist der Schatten abhaengig von dem Winkel der Wolke zur Sonne, nur hast du eben keine Hoeheninformation fuer eine Wolke. Die bekommst du halt nicht hergezaubert. Und nicht nur das: die hat ja auch eine beliebige Form. Die kriegst du auch nicht hin.

Darum eben die notwendige Einschraenkung: du kannst nur die erkannte zweidimensionale Repraesentation der Wolke auf deine gegebene globale Wolkenhoehe transformieren, und die dann wiederum auf den Boden projizieren. Fuer eine wirklich 3D-Repraesentation der Wolke hast du nunmal nicht genug Informationen. Dazu braechtest du dutzende oder mehr Bilder *jeder* Wolke, aus *jeder* Richtung. Viel Spass mit deiner lang- und hochfliegenden Dronenflotte damit.

Nachtrag: nochmal die verschiedenen Wolkenhoehe Begriffe etwas klar gemacht. Einmal die individuelle, die du nicht bestimmen kannst, und dann die der Wolkendecke im allgemeinen, aus meteorologischen Daten.
nikh22
User
Beiträge: 28
Registriert: Montag 27. Juni 2022, 15:46

Jetzt hab ich es verstanden.
Dann probier ich das mit den homographischen Abbildungen und der Wolkenhöhe über meteorologische Daten aus.

Vielen Dank.
Antworten