Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Bildverarbeitung: Geometrische Formen erkennen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Bildverarbeitung: Geometrische Formen erkennen
Beiträge zu diesem Thema Autor Datum
 Bildverarbeitung: Geometrische Formen erkennen Naryxus 14.08.2015 19:10
 RE: Bildverarbeitung: Geometrische Formen erkennen eulerscheZahl 14.08.2015 20:19
 RE: Bildverarbeitung: Geometrische Formen erkennen Naryxus 15.08.2015 00:15
 RE: Bildverarbeitung: Geometrische Formen erkennen eulerscheZahl 15.08.2015 08:58
 RE: Bildverarbeitung: Geometrische Formen erkennen Naryxus 17.08.2015 14:25
 RE: Bildverarbeitung: Geometrische Formen erkennen eulerscheZahl 17.08.2015 14:55

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Naryxus
Grünschnabel


Dabei seit: 16.09.2010
Beiträge: 5

Bildverarbeitung: Geometrische Formen erkennen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

meine Gruppe und ich arbeiten an einem Praktikum, in dem wir geometrische Formen erkennen müssen.
Prinzipiell wollen wir das ganze über Machine Learning realisieren.

Als Eigenschaftsvektor für die Testdaten haben wir uns überlegt, die Anzahl der Ecken, bzw. der Kanten und den Abstand zwischen Start- und Endvektor zu verwenden.

Wir wollen erstmal die Formen "Linie", "Dreieck", "Rechteck" und "Kreis" erkennen.

Findet ihr erstmal die Wahl der Merkmale für die geometrischen Formen sinnvoll?

Unser nächster Schritt beschäftigt sich dann damit, aus einer Menge von Ortsvektoren (Mauskoordinaten auf dem Bildschirm) die Eigenschaften abzuleiten.
Der Abstand zwischen Start- und Endvektor ist dabei geschenkt.

Unser Problem ist viel eher das Ableiten der Anzahl der Ecken, bzw. der Kanten.

In unserem ersten Versuch haben wir jeweils immer gleiche Richtungsvektoren (zwischen Ortsvektoren) zusammengefasst, um so längere Richtungsvektoren zu erhalten. Eine Ecke haben wir dann erkannt, wenn der darauf folgende Richtungsvektor eine andere Richtung wie der vorhergehende Vektor einschlägt und mindestens eine bestimmte prozentuale Länge des vorhergehenden Vektors aufweist.

DIeser Versuch hat allerdings für die Klassen "Dreieck", "Rechteck" und "Kreis" durchaus ähnliche Ergebnisse geliefert. Somit ist das Verfahren ungenügend (auch bei Anpassen der prozentualen Länge).

Ein anderer Ansatz, den wir uns überlegt haben, der aber noch nicht vollends ausgereift ist, ist es auf Grundlage eines gerade betrachteten Richtungsvektors eine Vorhersage zu treffen, wo sich der nächste Vektor befinden könnte und dort dann in einem bestimmten Akzeptanzbereich zu suchen und den aktuell betrachteten Richtungsvektor bei einem erfolgreichem Fund eines Vektors auf das arithmetische Mittel der beiden Richtungsvektoren zu aktualisieren.

Haltet ihr diesen Ansatz für sinnvoll? Habt ihr andere Ideen? Wir stecken da momentan ziemlich in der Sackgasse.


Grüße, Naryxus
14.08.2015 19:10 Naryxus ist offline E-Mail an Naryxus senden Beiträge von Naryxus suchen Nehmen Sie Naryxus in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die Anzahl der Ecken ist ein gutes Kriterium.
Es empfiehlt sich, mehrere Merkmale zu kombinieren, wenn du mehrere findest.
Wenn du die Fläche eines Körpers (=Anzahl der eingeschlossenen Pixel) in Relation zu seinem Umfang setzt, sollten Linie und Kreis recht leicht zu finden sein.
Ich kenne deine Ausgangsbilder nicht, falls du die Kanten erst finden musst, empfehle ich Sobel.

__________________
Syntax Highlighting fürs Board (Link)
14.08.2015 20:19 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Naryxus
Grünschnabel


Dabei seit: 16.09.2010
Beiträge: 5

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke für deine Antwort.

Das Problem an der ganzen Geschichte ist, dass wir nicht auf Bildern arbeiten, sondern tatsächlich auf einer Menge von dreidimensionalen Vektoren.
Das ganze ist ein Unity Projekt, das Gesten erkennen soll. Dazu wird die Bewegung der Maus aufgezeichnet. Diese ergibt dann im Optimalfall eine saubere geometrische Form.
Natürlich wird niemand einfach so einen perfekten Kreis zeichnen. Und da kommen dann halt unsere Akzeptanzkriterien zum Tragen.

Lösungen für tatsächliche Schwarz-Weiß Bilder habe ich auch schon ein paar gefunden. Ich weiß nur nicht, inwieweit die sich auf eine Liste von Vektoren anwenden lassen.

Grüße, Naryxus
15.08.2015 00:15 Naryxus ist offline E-Mail an Naryxus senden Beiträge von Naryxus suchen Nehmen Sie Naryxus in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Durch die Vektoren wird es einfacher, da du nicht mehr erkennen musst, wie die Kante verläuft. Der Extraktionsschritt entfällt.
Wenn du einen Knick feststellst und dir nicht sicher bist, ob es nur ein Wackler ist, kannst du auch prüfen, ob sich die Tendenz bei den nächsten Vektoren bestätigt.
Und wenn die Vektoren zu kurz sind würde ich sie zusammenfassen, das verringert die Wackler (kann aber auch Ecken abrunden).

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 15.08.2015 08:58.

15.08.2015 08:58 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Naryxus
Grünschnabel


Dabei seit: 16.09.2010
Beiträge: 5

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Unser Problem ist nur die Umsetzung von der Analyse großes Grinsen

wir verfolgen jetzt den ansatz, dass wir zwischen zwei aufeinanderfolgenden vektoren die geradengleichung berechnen und schauen, ob der nächste vektor mit einer toleranz auf der geraden liegt.

wir müssen nur mal diese umsetzung auf korrektheit überprüfen.

Grüße
17.08.2015 14:25 Naryxus ist offline E-Mail an Naryxus senden Beiträge von Naryxus suchen Nehmen Sie Naryxus in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich kann mal versuchen, ob ich es vernünftig hinbekomme (wird aber wohl erst Donnerstag klappen).
Habe aber keine Lust, komplett von vorn anzufangen, könntest du die Koordinaten zu den Objekten anhängen, die du erkennen willst?

__________________
Syntax Highlighting fürs Board (Link)
17.08.2015 14:55 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Praktische Informatik » Bildverarbeitung: Geometrische Formen erkennen