Mittwoch, 25. Juni 2008

Nochmals ein kurzer Überblick mit einem Diagramm
Wie die Algorithmen funktionieren?


Das folgende Diagramm fasst die durchlaufenen Schritte des Algorithmus zusammen:


HSV Color System = Hue Saturation Value
HSV separiert Farbe, Helligkeit und die Konzentration des Farbtons.

Das Originalbild wird für jedes Videobild mittels eines Farbhistogrammmodels von der getrackten Farbe zu einem Farbwahrscheinlichkeitsbild konvertiert.

Durch den Camshift-Algorithmus werden die Größe und das Zentrum des Farbobjektes gefunden, der auf dem Farbwahrscheinlichkeitsbild aufsetzt.

Der Blau gestrichelte Kasten beinhaltet die Schritte, die der MeanShift-Algorithmus durläuft.

Um die Position und die Größe im nächsten Videobild zu setzen, wird die aktuelle Position und die aktuelle Größe des getrackten Objekts weitergegeben und dazu benutzt.

Dieser Prozess wird wiederholt.


Mittwoch, 28. Mai 2008

Merkmalsextraktion

CamShift- und MeanShift- Algorithmus bei OpenCV

OpenCV verwendet für das Tracken den CamShift-Algorithmus. Der Vorteil davon ist, dass man auch kostengünstigere WebCams benutzen kann. So ein Algorithmus, dass effizient und schnell arbeiten und in Realzeit tracken kann, ohne die Ressourcen des PCs auszuschöpfen, sodass andere Anwendungen nebenher laufen können.
Der MeanShift-Algorithmus basiert auf eine robuste parameterlose Technik für steigende Dichtheitsgradienten, um den Gipfel der Wahrscheinlichkeitsverteilung zu finden.

Wir wollen ein Verfahren für die Farbverteilung in einer Videoszene finden.

Aus diesem Grund ist der MeanShiftAlgorithmus so modifiziert worden, dass er mit dynamisch wechselnden Farb-Wahrscheinlichkeitsverteilungen arbeiten kann, die von der Video-Bildsequenz stammen. Dieser modifizierte Algorithmus ist der Continuously Adaptive MeanShift Algorithmus (CamShift).

Arbeitsweise der Algorithmen:
MeanShift Algorithmus:
1. Festlegen einer Suchfenster-Größe
2. Festlegen der Anfangsposition des Suchfensters
3. Berechnen der Mittleren Position im Suchfenster
4. Zentrieren des Suchfensters an dieser mittleren Position
5. Wiederholen von Schritt 3 und 4 bis zu einer Konvergenz (oder bis zu einem gegebenen
Schwellenwert)

Der MeanShiftAlgorithmus arbeitet mit Wahrscheinlichkeitsverteilungen, um farbige Objekte in VideoSequenzen zu tracken. Die Farbbilddaten müssen als Wahrscheinlichkeitsverteilungen dargestellt werden. Benutzt werden Farbhistogramme um dies zu bewerkstelligen.

CamShift Algorithmus:
1. Festlegen der Anfangsposition des Suchfensters
2. Anwendung von MeanShift (s.o.) ; Speichern des zeroth moment
3. Gleichsetzen der Suchfenstergröße zu einer Funktion des zeroth moment, der in Schritt 2
gefunden wurde.
4. Wiederholen des 2. und 3. Schritts bis zu einer Übereinstimmung („zeroth moment“ :
Verteilungsbereich unter dem Suchfenster. Fensterradius, Höhe und Breite, wird in die
Funktion des zeroth moment eingesetzt)

Der CamShiftAlgorithmus trackt X, Y und Bereiche der Hautfarbenen Wahrscheinlichkeits-verteilung. Der Bereich ist hierbei proportional zu Z, der Entfernung zu der Kamera.

Überprüfung Masterprojekt, MPT und OpenCV mit HandVU

Nach Überprüfung des Masterprojekts die uns zur Verfügung stand, MPT und OpenCV mit HandVU habe ich mich entschieden, OpenCV mit HandVu für die weiteren Lösungswege zu verwenden, da diese zwischen den drei Projekten am Robustesten und für unser Projekt am besten geeignet ist.

In dem Masterprojekt werden Standbilder verwendet wir brauchen aber eine Anwendung die mit bewegten Bildern arbeiten kann.
MPT wäre auch eine Anwendung die man verwenden könnte. Aber nach einigen Test habe ich herausgefunden das OpenCV mit HandVU besser ist, da HandVU speziell für die Erkennung des Handes geeignet ist.

Ausserdem habe ich mir auch einen Pongspiel heruntergeladen und getestet. Es gibt verschiedene Variationen vom Pongspiel.

Ich werde versuchen als nächstes eine Schnittstelle zwischen dem Pongspiel und OpenCV mit HandVU herzustellen.

Nachdem dies dann steht, könnte man versuchen aus den anderen Projekten Sachen für unsere Anwendung herausnehmen um diese dann zu optimieren.

Nebenbei versuche ich mich auch mit der Theorie auseinander zu setzen, sodass ich demnächst darüber auch einen Post reinstellen werde.

Weitere Informationen zu OpenCV & HandVU können Sie aus dem Blog von Frau Demir entnehmen.

weitere Links zum Downloaden der Programme:

http://www.movesinstitute.org/~kolsch/HandVu/HandVu.html#download

http://sourceforge.net/project/showfiles.php?group_id=22870&package_id=16937

http://sourceforge.net/project/showfiles.php?group_id=124401

Dienstag, 19. Februar 2008

Bildsegmentierung

Um die Hand von all den anderen Sachen, wie zum Beispiel Hintergrund usw. filtern zu können muss man die aufgenommene Hand als erstes segmentieren.




Es gibt bei der Bildsegmentierung verschiedene Verfahren die Angewendet werden können.
Die Grenzen zwischen diesen Verfahren sind oft fließend. Daher kann man sie kombinieren um bessere und effiziente Ergebnisse zu erzielen.

Pixelorientierte Verfahren

Beim pixelorientierten Verfahren werden Kriterien zur Segmentzuordnung nur auf das Pixel angewandt, unabhängig von anderen Pixeln.

Verfahren: Schwelwertverfahren

Kantenorientierte Verfahren

Beim kantenorientierten Verfahren wird nach Kanten oder Konturen gesucht, die zu Objektgrenzen zusammengefasst werden.

Verfahren: Sobel Operatoren, Laplace Operatoren, Wasserscheidentransformation, Snakes

Regionenorientierte Verfahren

Beim regionenorientierten Verfahren werden zusammenhängende Punktmengen als Gesamtheit betrachtet.

Verfahren: Region Growing, Split and Merge, Pyramid Linking, Region Merging

Modellbasierte Verfahren

Beim modellbasierten Verfahren wird konkretes Wissen über die Bilder zugrundegelegt, also ein Modell.

Verfahren: Hough-Transformation, statistische Modelle, Template-Matching

Texturorientierte Verfahren

Beim texturorientierten Verfahren wird nach einer Textur, also nach einer homogenen inneren Struktur, anstatt nach einer einheitlichen Farbe segmentiert.

Verfahren: Cooccurrence-Matrizen (Haralick-Matrizen) ,
Texturenergiemaße (Texture-Energy-Measure),
Lauflängenmatrizen (Run-Length-Matrix),
fraktale Dimensionen und Maße,
Markoff-Random-Fields und Gibbs-Potentiale,
strukturelle Ansätze,
signaltheoretische Konzepte

Diese Verfahren sind teilweise im Grenzbereich zur Klassifikation oder erlauben gleichzeitige Segmentierung und Klassifizierung.