Dobble Spiel gegen den Computer: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 26: Zeile 26:


===Merkmalsextraktion===
===Merkmalsextraktion===
Zu Beginn der Merkmalsextraktion der Objekte auf den Dobble-Karten wird das von der Testumgebung übergebene Farbbild in ein Graubild umgewandelt. Anschließend wird aus dem Graubdild ein Schwarz/Weiß Bild generiert.  
 
 
 
 
Zu Beginn der Merkmalsextraktion der Objekte auf den Dobble-Karten wird das von der Testumgebung übergebene Farbbild in ein Graubild umgewandelt. Anschließend wird aus dem Graubdild ein Schwarz/Weiß Bild generiert.
 
 
 
[[Datei:Dobble Bildumwandlung.PNG|900px|thumb|left|Bildumwandlung]]
[[Datei:Dobble Bildumwandlung.PNG|900px|thumb|left|Bildumwandlung]]


Zeile 32: Zeile 39:




Aus den Grenzen wird für jede Dobble-Karte jeweils die Maxima und Minima in X- und Y-Richtung des Bildes bestimmt. Anschließend wird er Hintergrund des Kreises in dem bestimmten Quadrat schwarz gefärbt. Der jeweilige Bildausschnitt mit der seperierten Dobble-Karte im Zentrum wird danach in einer Liste abgespeichert.
[[Datei:Dobble extrahiere Karten.PNG|900px|thumb|left|Bildumwandlung]]
 
Aus den Grenzen wird für jede Dobble-Karte jeweils die Maxima und Minima in X- und Y-Richtung des Bildes bestimmt.  
 
[[Datei:Dobble ermittle Grenzen.PNG|900px|thumb|left|Bildumwandlung]]
 
Anschließend wird er Hintergrund des Kreises in dem bestimmten Quadrat schwarz gefärbt.
 
[[Datei:Dobble Hintergrund.PNG|900px|thumb|left|Bildumwandlung]]
 
Der jeweilige Bildausschnitt mit der seperierten Dobble-Karte im Zentrum wird danach in einer Liste abgespeichert.
 
[[Datei:Dobble speicher Kreise.PNG|900px|thumb|left|Bildumwandlung]]
 
Im nachfolgenden Schritt werden alle Objekte aus den Dobble-Kartenbildern bestimmt.
 
[[Datei:Dobble finde Ojekte.PNG|900px|thumb|left|Bildumwandlung]]
 
Dann wird nur über alle Objekte, die innerhalb der Dobble-Karte liegen, iteriert.
 
[[Datei:Dobble finde Ojekte.PNG|900px|thumb|left|Bildumwandlung]]
 
Aus den Grenzen wird für jedes Objekt die Maxima und Minima in X- und Y-Richtung bestimmt.
 
[[Datei:Dobble ermittle Grenzen.PNG|900px|thumb|left|Bildumwandlung]]
 
In dem zu analysierendem Bild werden nun die Löcher gefüllt und Objekte, die die Kanten schneiden, entfernt.  


Im nachfolgenden Schritt werden alle Objekte aus den Dobble-Kartenbildern bestimmt. Dann wird nur über alle Objekte, die innerhalb der Dobble-Karte liegen, iteriert.  
[[Datei:Dobble fülle Löcher.PNG|900px|thumb|left|Bildumwandlung]]


Aus den Grenzen wird für jedes Objekt die Maxima und Minima in X- und Y-Richtung bestimmt. In dem zu analysierendem Bild werden nun die Löcher gefüllt und Objekte, die die Kanten schneiden, entfernt. Dann werden für alle übriggebliebende Pixel jeweils der Grün-, Blau- und Rotanteil aufsummiert und der Median ermittelt. Auch wird die Kreisförmigkeit des Umrisses für jedes Objet bestimmt. Die berechneten Merkmale zum Schluss für jedes Objekt getrennt in auch in einer Liste abgespeichert.
Dann werden für alle übriggebliebende Pixel jeweils der Grün-, Blau- und Rotanteil aufsummiert und der Median ermittelt. Auch wird die Kreisförmigkeit des Umrisses für jedes Objet bestimmt. Die berechneten Merkmale zum Schluss für jedes Objekt getrennt in auch in einer Liste abgespeichert.


===Teaching Prozess===
===Teaching Prozess===

Version vom 18. Juni 2016, 19:23 Uhr

Projektteam: Benedikt Steinmeier Stefan Vogel

Betreuer: Prof. Schneider

Einleitung

Dieser Artikel wurde im Rahmen der Lehrveranstaltung Digitale Signal- und Bildverarbeitung verfasst und dokumentiert die Ergebnisse des Projektes "Dobble Spiel gegen den Computer". Die allgemeinen Ziele der Projekte können im Wiki-Artikel DSB SoSe2016 eingesehen werden.

Aufgabenstellung

Die Aufgabenstellung dieses semesterbegleitenden Projekts bestand daraus, mit Hilfe der Matlab Image Processing Toolbox einen Algorithmus zu entwickeln, der das Gleiche Objekt auf zwei verschiedenen Dobble-Karten findet, anzeigt und markiert.

Durchführung

Vorbereitung

Beispiel Dobble Karte

Zu Beginn des Projekts wurden alle Dobble-Karten unter zur Hilfenahme des HSHL Buchscanners der Bibliothek abfotografiert und anschließend vereinzelt. Insgesamt standen 12 Dobble-Karten mit insgesamt 29 verschiedenen Objekten zur Verfügung.

Objekterkennung und Segmentierung der Objekte auf den Dobble-Karten

Merkmalsextraktion der Objekteigenschaften

Merkmalsextraktion

Zu Beginn der Merkmalsextraktion der Objekte auf den Dobble-Karten wird das von der Testumgebung übergebene Farbbild in ein Graubild umgewandelt. Anschließend wird aus dem Graubdild ein Schwarz/Weiß Bild generiert.


Bildumwandlung

Anschließend werden mit der Matlabfunktion "bwboundaries" die Grenzen der zwei runden Dobble-Karten aus dem Bild ermittelt.


Bildumwandlung

Aus den Grenzen wird für jede Dobble-Karte jeweils die Maxima und Minima in X- und Y-Richtung des Bildes bestimmt.

Bildumwandlung

Anschließend wird er Hintergrund des Kreises in dem bestimmten Quadrat schwarz gefärbt.

Bildumwandlung

Der jeweilige Bildausschnitt mit der seperierten Dobble-Karte im Zentrum wird danach in einer Liste abgespeichert.

Bildumwandlung

Im nachfolgenden Schritt werden alle Objekte aus den Dobble-Kartenbildern bestimmt.

Datei:Dobble finde Ojekte.PNG
Bildumwandlung

Dann wird nur über alle Objekte, die innerhalb der Dobble-Karte liegen, iteriert.

Datei:Dobble finde Ojekte.PNG
Bildumwandlung

Aus den Grenzen wird für jedes Objekt die Maxima und Minima in X- und Y-Richtung bestimmt.

Bildumwandlung

In dem zu analysierendem Bild werden nun die Löcher gefüllt und Objekte, die die Kanten schneiden, entfernt.

Bildumwandlung

Dann werden für alle übriggebliebende Pixel jeweils der Grün-, Blau- und Rotanteil aufsummiert und der Median ermittelt. Auch wird die Kreisförmigkeit des Umrisses für jedes Objet bestimmt. Die berechneten Merkmale zum Schluss für jedes Objekt getrennt in auch in einer Liste abgespeichert.

Teaching Prozess

Klassifikation der Objekte

Testumgebung: SameObjectSearchEngine.m

Um das Programm, zum Auffinden derselben Objekte des Dobble-Spiels, zu testen wurde eine Testumgebung in Form einer Matlab GUI erstellt und programmiert.

Testumgebungs GUI


Nach Betätigung des „NEW CARDS“ – Taster werden zwei zufällig ausgewählte Dobble-Karten, um einen zufälligen Winkel gedreht und anschließend auf einer zufälligen Position auf einem schwarzen Bild positioniert. Das neu erzeugte Bild wird anschließend an die Funktion „find_same_objects.m“ übergeben, um dieselben Objekte auf den beiden Dobble Karten zu finden. Die Funktion gibt den Name der beiden gleichen Objekte, sowie die deren X und Y Position zurück an die Testumgebung. Die Testumgebung gibt anschließend den Namen bei der Textbox „result“ aus und markiert die gefunden Objekte mit einem roten Kreis (siehe Abbildung oben).



Dokumentation

/

Fazit und Ausblick

Der nächste Schritt wäre die Umsetzung und Erprobung mit Hilfe eines physikalischen Aufbaues mit einer Kamera und z.B. eines Raspberry PI, die das Dobble-Spiel in Realtime verarbeitet und das Ergebnis auf einem Monitor ausgibt.

möglicher physikalischer Aufbau

Die Realtime Erprobung konnte im Rahmen dieses Semesters leider noch nicht durchgeführt werden.


Literatur

/

→ zurück zum Hauptartikel: DSB SoSe2016