Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Okt 19, 2018 14:42

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: ida motion (capture)
BeitragVerfasst: Sa Okt 22, 2011 09:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 215
Programmiersprache: Lazarus/FPC
Hallo liebe OpenGL Freunde =)

Ich habe mich mal an ein ganz neues Projekt gewagt, eine motion-capture-software.
Es handelt sich um ein Programm mit dem Bewegungen aufgezeichnet werden können, ausgewertet werden und
letztendlich als Datei exportiert werden können. Ich rede hier von Ganzkörperbewegungen wie laufen, kämpfen oder springen.
Die so entstehenden Bewegungen kann man in eine motion-capture Datei schreiben (bvh-Format), das von jedem gängigen
3D-Programm geladen und benutzt werden kann.

Für alle die nicht wissen was motion Capture ist: Das ist eine Technik mit der Bewegungen von Menschen
direkt auf 3D-Charaktere übertragen werden können. Das ganze funktioniert mit Markierungen auf der Kleidung die
bei der Aufnahme Daten an die Rechner schicken die dann alles auswerten!

HIER hab ich ein gutes Foto im Netz gefunden das ziemlich gut zeigt was gemeint ist.

Und so sieht meine Lösung aus:
Bild

Normalerweise bestehen motion-capture Studios aus großen Säälen mit mehreren dutzend Kameras und viel mehr Drum-Herum!
Da ich aber auch gern von dieser Technik Gebrauch machen möchte, und natürlich weder Geld noch Platz für die ganze Ausrüstung habe
hab ich mich an dieser einfacheren Lösung versucht: Motion capture anhand von 2 webcams.

Das Prinzip dabei ist ziemlich einfach: Man stellt 2 webcams auf die gleichzeitig eine Aufnahme machen.
Ein Algorithmus erkennt in den Aufnahmen helle weiße Bereiche und speichert deren X-Y Pixelkoordinaten ab!
(Die Genauigkeit der Berechnung kann man hier natürlich einstellen!)
Am Ende wird dem Programm noch mitgeteilt an welchen Positionen die webcams stehen.
Also wie weit weg vom Zielobjekt in X und Y Richtung, sowie die Höhe über dem Boden.
Und natürlich die Richtungen in die die Kameras schauen sowie der Öffnungswinkel.

Bild

Das alles ist dann mit OpenGl implementiert und berechnet aus allen gegebenen Informationen die 3D-Koordinaten der Punkte im Raum.
Am Ende werden noch Korrekturen vorgenommen und das Ergebnis in eine exportierbare Datei gespeichert!
Mein Endziel ist ein paar coole Charakter-Animation erstellen zu können die am Ende wieder in meiner game engine Verwendung finden.

Das Programm ist noch lange nicht fertig, aber die ersten Ergebnisse versprechen schon mal einiges =D

Was es schon kann:
Erkennung/Auswahl und Benutzung von 2 webcams die gleichzeitig streamen.
Gleichzeitige Video-Aufnahmen von den beiden webcams.
Erkennen und Speichern von hellen Bereichen (Punkten) auf den Aufnahmen!
Feineinstellung der Punkteerkennung.
Zentimetergenaue Übergabe der Kamerapositionen und Blickrichtungen.
Berechnung der 3D-Kooridnaten für die motion Capture Animation.

Was es noch können soll:
Exportieren der Aniamtion in eine motion-capture (bvh-Datei).
Optimierung und Augleich der Punkteabstände über die gesamte Animation.
Definition von einzelnen Bones zwischen den Punkten.

Bild

Und alle die es bis hierher gelesen haben darf ich noch mit einem VIDEO beglücken das
ida motion mal in voller Aktion zeigt!
Und wer will kann sich mal die erste Beta runterladen, ist noch völlig ohne Dokumentation aber so kompliziert ist
das Programm nicht, 2 webcams auswählen, aufnehmen, punkte berechnen, 3D-Koordinaten berechnen =D
Ok, hört sich einfacher an als es warscheinlich ist^^
--Download--

lg, ida

Bild

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: ida motion (capture)
BeitragVerfasst: So Okt 23, 2011 14:10 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Apr 13, 2011 22:05
Beiträge: 215
Programmiersprache: Lazarus/FPC
Erstes Update =)
Bei den ersten Probeversuchen mit dem Programm sind mir kiloweise Fehler untergekommen.
Ich hab schon den ganzen Tag bis auf das Rausch-Ausschlafen in der Früh durchgecodet und einige Unstimmigkeiten behoben!

Zum Beispiel das Beibehalten der richigen Nummern. Bisher hat sich mein Algorithmus die Freiheit genommen die Punkte zwar zu erkennen (von links nach rechts) und durchzunummerieren. Wenn jetzt aber ein Punkt über einen anderen sich hinwegbewegt und damit natürlich mehr links liegt als der Vorherige kann man das ganze System vergessen weil plötzlich die Nummerierung der Punkte völlig kaputt ist. Ein neuer Algorithmus der mir ehrlich gesagt das Hirn fast explodieren lies schafft nun Abhilfe und reguliert alles! Hier ein vorher-nachher Bild einer eingefügten 3D Testanimation!
Bild

Ein weiteres feature um den Überblick zu behalten: Eine Vorstufe zu den fertigen "bones".
Also man kann einfach einzelne Punkte mit Linien verbinden, die werden später wichtig wenn ich mich dann endlich dran mache das alles in eine Animationsdatei speichere.
Bild

Fröhlichen Fortschritt auch bei euren Projekten,
lg

_________________
Ich teile manchmal heimlich durch Null. - Alber Einstein


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.018s | 18 Queries | GZIP : On ]