Offtopic - Morphing unter Linux

Alles was sonst Nirgends passt
evilh
Posts: 126
Joined: 2004-03-25 17:45

Offtopic - Morphing unter Linux

Post by evilh » 2008-12-23 14:44

Hi,

das Thema gehört eigentlich nicht wirklich ins Rootforum, ich poste es aber trotzdem mal hier, da hier die meiner Meinung nach fähigsten Köpfe sitzen, was IT im Allgemeinen anbelangt. Vielleicht hat der Eine oder andere einen Denkansatz für mich, der mich einen Schritt weiterbringt.

Ich versuche mich als Hobbyprojekt gerade daran, das eigene Foto mit dem eines alten Mannes zu morphen, um zu sehen, wie eine beliebige Person "alt" aussehen würde.
Das ganze soll eines Tages als Webanwendung laufen, von daher sollte das eigentliche Morphen von einem Kommandozeilen-fähigen Tool übernommen werden.

Das einzig brauchbare was ich hierzu gefunden habe, ist das Programm XMorph bzw. Morph, das das Kommandozeilentool darstellt.
Morph ist auch recht brauchbar - allerdings benötigt es dazu einen Mesh der Gesichter - also charakteristische Punkte auf dem Bild (z.b. Augen, Mund etc.)
Diese sollen normalerweise manuell angelegt werden.

Dies möchte ich nun automatisieren, und somit quasi eine automatische Erkennung der charakteristischen Merkmale eines Gesichtes erreichen.
Was ich bisher erreicht habe, bzw. mein Gedankenansatz:

- Das Bild sollte schon so zugeschnitten sein, dass darauf nur noch der Kopf sichtbar ist.
- Ich wandle das Bild in ein schwarz-weiss TGA File um, da dieses sehr einfach auszulesen ist (keine Kompression oder ähnliches)
- Das meiste des Bildes besteht aus dem Gesicht - also der Hautfarbe
- Ich lese die Helligkeit jedes Pixels (0-255) aus, und bilde damit den durchschnittlichen Helligkeitsgrad des Bildes
- Diese durchschnittliche Helligkeit sollte dann theoretisch ja die Farbe der Haut darstellen und alle relevanten Merkmale wie Augen, Mund etc. sind dunkler
- Ich vergleiche jeden Bildpunkt mit dem durchschnittlichen Helligkeitsgrad. Wenn der Pixel mehr als 10 Stufen dunkler ist, soll ein weisser Pixel an der ursprünglichen Position werden, sonst ein schwarzer
- Damit hätte ich ja nur noch die Charakteristika wie Mund, Nase etc. eingefärbt, der Rest wäre schwarz

Mit diesem erzeugten Bild könnte ich dann im nächsten Schritt den Mesh erzeugen.

Ich habe ein kleines C Programm geschrieben, was genau dieses Foto erzeugt. Das Ergebnis ist schon gar nicht schlecht, allerdings sind auch viele andere weisse Punkte enthalten die z.b. von einer ungleichmäßigen Beleuchtung kommen. Wenn ich die Toleranz senke, verschwindet mitunter der halbe Mund ;-)

Weiss jemand wie ich besser vorgehen könnte, bzw. wie professionelle Lösungen an so etwas herangehen ?
Oder gibt es gar schon eine GPL Software die sowas kann ??

Bin über jede Anregung dankbar

Viele Grüsse
Markus

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Offtopic - Morphing unter Linux

Post by Joe User » 2008-12-23 15:21

Für Linux konnte ich auf die Schnelle auch nichts anderes finden, aber eventuell laufen folgende ja unter wine:
http://www.luxand.com/download/
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Offtopic - Morphing unter Linux

Post by oxygen » 2008-12-23 22:13

Du fragst ja hauptsächlich nach einem Teilproblem, der automatischen Segmentierung.
Automatische Segmentierung ist keine triviale Aufgabe und bis heute immer noch Gegenstand von aktiver Forschung. Wenn du dich wirklich damit ausseinander setzten willst, würde ich dazu die Vorlesungensunterlagen entsprechender Universitätsveranstaltungen empfehlen.

evilh
Posts: 126
Joined: 2004-03-25 17:45

Re: Offtopic - Morphing unter Linux

Post by evilh » 2008-12-23 23:38

Wenn du dich wirklich damit ausseinander setzten willst, würde ich dazu die Vorlesungensunterlagen entsprechender Universitätsveranstaltungen empfehlen.


Hmm, das ist immer etwas problematisch an so etwas heranzukommen.
Vielen Dank auf jeden Fall mal für das Feedback. Ich werde mich mal weiter damit beschäftigen. Perfekt wäre es eben gewesen, wenn es bereits eine entsprechende Software für dieses Teilproblem gegeben hätte.

Aber selbst ist der Mann :-D