Huhu Community,
ich versuche aktuell verrauschte Datensätze möglichst qualitativ zu bereinigen. Der genaue Anwendungszweck tut glaube ich nicht so ewig viel zur Sache, deshalb stelle ich das mal nur verkürzt dar: Eine Kamera mit stetig Bilder auf und aus den Bilddaten werden Lokalisationsmodelle erstellt, Objekte im Bild erkannt, Entfernung und andere Dinge zu Objekte berechnet.
Der Input besteht also aus 2- und 3-dimensionalen Ortsvektoren sowie direkten Entfernungs- und Gradschätzungen zu den einzelnen, erkannten Objekten im Bild.
Bis jetzt habe ich nur einen recht einfachen Algorithmus dafür geschrieben: Für jedes Objekt existiert zur Laufzeit, solange es auf mehreren Frames gesehen wird, ein Puffer. Von diesen gepufferten Datensätzen berechne ich Varianz und Mittelwert und bewerte anhand der Varianz, welcher Datensatz wahrscheinlich ein Ausreißer ist. Ausreißerdatensätze werden gelöscht, die verbleibenden Datensätze bekommen anhand verschiedener Faktoren (wie sicher ist der Datensatz, ist das Bild verschwommen, usw. usf.) ein Rating und mit den Ratings wird dann ein gewichteter Mittelwert gebaut.
Das Verfahren funktioniert ganz gut, selbst kleinere Gegenstände haben so auf 2-4m Entfernung tatsächlich recht stabile Daten was Ortsvektoren, Entfernung, Gradzahl usw. angeht. Allerdings ist das ganze durchaus ausbaufähig.
Damit kommen wir zu meinem Problem: Mathematik an sich ist selbstverständlich kein Problem, allerdings habe ich mich weder im Abitur noch im Studium noch sonst irgendwann mit Statistik oder Stochastik befasst.
D.h. auf meiner bisherigen Suche habe ich größtenteils wissenschaftliche Papers gefunden oder Fachbücher, die für einen Anfänger auf dem Gebiet der Datenfilterung recht schwer zu verstehen waren.
Außerdem kenne ich bis jetzt keine der eleganteren Verfahren für solche Zwecke, was es für mich sehr schwer macht, ein geeignetes Verfahren zu suchen, da die Auswahl offensichtlich sehr groß ist.
Ich habe beispielsweise versucht, per LDA (linear discriminant analysis) die Daten in den Puffern zu clustern, nach guten Datensätzen und Ausreißern, das hat bis jetzt aber leider nicht vernünftig funktioniert. Sicherlich liegt das an meinem aktuell auf dem Gebiet recht beschränktem Verständnis, aber es gibt ja bestimmt ohnehin noch klügere Herangehensweisen, also z.B. besser geeignete Verfahren?
Was ich benötige: Wäre zum einen eine grobe Übersicht (am besten mit Erklärung), was geeignete Standardverfahren für mein Vorhaben sind und zum anderen eventuell noch kleine "Erfahrungsberichte", worauf man bei den einzelnen Verfahren z.B. besonders achten sollten.
Literatur: Ich wäre sehr dankbar, wenn man mir (vorzugsweise einsteigerfreundliche) Fachliteratur empfehlen könnte. Tutorials, Fachbücher...bisher hab ich leider noch nicht das richtige entdeckt, um mich auf Kurs zu bringen und mir fehlt auch vollkommen der Überblick, was geeignet wäre (da ich auf dem Gebiet, wie gesagt, bis jetzt noch nicht unterwegs war).
Eventuell sind noch folgende Eckdaten für die Literaturempfehlungen interessant:
-> deutsch oder englisch
-> aktuell implementiere ich in C++ oder Python, Java wäre auch kein Problem (falls es Literatur mit entsprechenden Codesnippets gibt), Pseudocode wäre natürlich ebenso absolut in Ordnung
Vielen Dank für jeden Beitrag & eure Hilfe
ascer
ich versuche aktuell verrauschte Datensätze möglichst qualitativ zu bereinigen. Der genaue Anwendungszweck tut glaube ich nicht so ewig viel zur Sache, deshalb stelle ich das mal nur verkürzt dar: Eine Kamera mit stetig Bilder auf und aus den Bilddaten werden Lokalisationsmodelle erstellt, Objekte im Bild erkannt, Entfernung und andere Dinge zu Objekte berechnet.
Der Input besteht also aus 2- und 3-dimensionalen Ortsvektoren sowie direkten Entfernungs- und Gradschätzungen zu den einzelnen, erkannten Objekten im Bild.
Bis jetzt habe ich nur einen recht einfachen Algorithmus dafür geschrieben: Für jedes Objekt existiert zur Laufzeit, solange es auf mehreren Frames gesehen wird, ein Puffer. Von diesen gepufferten Datensätzen berechne ich Varianz und Mittelwert und bewerte anhand der Varianz, welcher Datensatz wahrscheinlich ein Ausreißer ist. Ausreißerdatensätze werden gelöscht, die verbleibenden Datensätze bekommen anhand verschiedener Faktoren (wie sicher ist der Datensatz, ist das Bild verschwommen, usw. usf.) ein Rating und mit den Ratings wird dann ein gewichteter Mittelwert gebaut.
Das Verfahren funktioniert ganz gut, selbst kleinere Gegenstände haben so auf 2-4m Entfernung tatsächlich recht stabile Daten was Ortsvektoren, Entfernung, Gradzahl usw. angeht. Allerdings ist das ganze durchaus ausbaufähig.
Damit kommen wir zu meinem Problem: Mathematik an sich ist selbstverständlich kein Problem, allerdings habe ich mich weder im Abitur noch im Studium noch sonst irgendwann mit Statistik oder Stochastik befasst.
D.h. auf meiner bisherigen Suche habe ich größtenteils wissenschaftliche Papers gefunden oder Fachbücher, die für einen Anfänger auf dem Gebiet der Datenfilterung recht schwer zu verstehen waren.
Außerdem kenne ich bis jetzt keine der eleganteren Verfahren für solche Zwecke, was es für mich sehr schwer macht, ein geeignetes Verfahren zu suchen, da die Auswahl offensichtlich sehr groß ist.
Ich habe beispielsweise versucht, per LDA (linear discriminant analysis) die Daten in den Puffern zu clustern, nach guten Datensätzen und Ausreißern, das hat bis jetzt aber leider nicht vernünftig funktioniert. Sicherlich liegt das an meinem aktuell auf dem Gebiet recht beschränktem Verständnis, aber es gibt ja bestimmt ohnehin noch klügere Herangehensweisen, also z.B. besser geeignete Verfahren?
Was ich benötige: Wäre zum einen eine grobe Übersicht (am besten mit Erklärung), was geeignete Standardverfahren für mein Vorhaben sind und zum anderen eventuell noch kleine "Erfahrungsberichte", worauf man bei den einzelnen Verfahren z.B. besonders achten sollten.
Literatur: Ich wäre sehr dankbar, wenn man mir (vorzugsweise einsteigerfreundliche) Fachliteratur empfehlen könnte. Tutorials, Fachbücher...bisher hab ich leider noch nicht das richtige entdeckt, um mich auf Kurs zu bringen und mir fehlt auch vollkommen der Überblick, was geeignet wäre (da ich auf dem Gebiet, wie gesagt, bis jetzt noch nicht unterwegs war).
Eventuell sind noch folgende Eckdaten für die Literaturempfehlungen interessant:
-> deutsch oder englisch
-> aktuell implementiere ich in C++ oder Python, Java wäre auch kein Problem (falls es Literatur mit entsprechenden Codesnippets gibt), Pseudocode wäre natürlich ebenso absolut in Ordnung
Vielen Dank für jeden Beitrag & eure Hilfe
ascer