Headtracking...

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen

 

FWeinb

ehemals "ich"

BeitragSo, Dez 30, 2007 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß das die Idee nichts neues ist aber die Umsetzung ist gut und deswegen würde ich das Auch gerne verstehen.
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

TheShadow

Moderator

BeitragSo, Dez 30, 2007 13:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Zuerst muß man das Bild nach 2 Punkten scannen. Hat man die gefunden, dann kann man die distanz zw. den punkten errechnen - und dann daraus die Entfernung zum Spieler... Das ist der Schlüssel für nachfolgende Berechnungen.

Hierzu muss man noch die kamera kallibrieren - d.h. eine andere webcam würde sonst die Entfernung falsch berechnen... dazu stellt man sicht z.B. 50 cm und 200cm davon und lässt vermessen - dann kann man den Rest interpolieren...

Dann errechnet man die Mitte zw. den Punkten und daraus wiederum kann man Winkel oder ähnliches berechnen... geht wohl mit asin/acos/atan...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

FWeinb

ehemals "ich"

BeitragSo, Dez 30, 2007 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja man müsste nur wissen um wie weit sich die Distanz zwischen den Punkten verringert um daran dann die Entfernung zu berechnen.
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs
 

E. Urbach

ehemals "Basicprogger"

BeitragSo, Dez 30, 2007 14:03
Antworten mit Zitat
Benutzer-Profile anzeigen
@ich:
Unter der Voraussetzung, dass die gegeben Werte, die TheShadow genannt hat, bekannt sind, kann man z.B. die Distanz vom Benutzer zum Monitor errechnen:

Code: [AUSKLAPPEN]
dist(User, Display) = Sqr(2 * (dist(RSensor, User)^2 + dist(LSensor, User)^2) - dist(LSensor, RSensor)^2) / 2


Wenn diese Werte nicht bekannt sind oder dir diese Information nicht ausreicht, dann kannst du auch einen anderen Algorithmus nehmen (C++):

Code: [AUSKLAPPEN]
float HeadTracking(int k, float kDist)
{
   //Left cam
   int pointX_L, pointY_L;
   Camera *leftCam = getCam(0);
   findPoint(pointX_L, pointY_L, leftCam);
   
   //Right cam
   int pointX_R, pointY_R;
   Camera *rightCam = getCam(1);
   findPoint(pointX_R, pointY_R, rightCam);
   
   int camMidX = getCamResX() / 2;
   int camMidY = getCamResY() / 2;

   int distMidPointX_L = pointX_L - camMidX;
   int distMidPointY_L = pointY_L - camMidY;

   int distMidPointX_R = pointX_R - camMidX;
   int distMidPointY_R = pointY_R - camMidY;
   
   //k = kalibrierter Wert: Abstand zum Mittelpunkt
   //kDist = kalibrierter Wert: Abstand zum Display
   
   //optional: distMidPointX_R und distMidPointX_L auch übergeben
   return (distMidPointX_R + distMidPointX_L) * (kDist / k);
}

Jetzt fehlt nur noch ein "Anpassungsfaktor", die Funktion "getCam" und die Bildverarbeitungsfunktion "findPoint", Freiwillige vor Wink
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

FWeinb

ehemals "ich"

BeitragSo, Dez 30, 2007 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx mal sehen ob ich damit was anfangen kann.
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs
 

E. Urbach

ehemals "Basicprogger"

BeitragSo, Dez 30, 2007 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, kannst du nicht, außer du hast 2 Webcams und kennst dich obendrein noch damit aus, wie man deren "Pixelbuffer" in C++ auslesen kann. Dann müsstest du noch eine Bildverarbeitungsfunktion schreiben, die den gegebenen Punkt auf dem Bildschirm findet und eine Kalibrierungsfunktion brauchst du auch noch.
Wenn du eine komplett weiße Wand hast und z.B. nur schwarze oder weiße Kleidung hast, dann kannst du beispielsweise einen roten Ball als Fixpunkt benutzen, denn den kann man sehr leicht erkennen, wenn die Lichtverhältnisse gut sind:
Code: [AUSKLAPPEN]
if(r > 160 && g < 64 && b < 64) { ... FindeZentrumImRotenBereich(); ... }

Das ist natürlich nur sehr grob geschätzt und funktioniert bei exzessivem Bildrauschen oder bei anderen Lichtverhältnissen nicht mehr, man muss die Werte experimentell bestimmen, aber ich habe keine Webcam, geschweige denn 2 Confused
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

FWeinb

ehemals "ich"

BeitragSo, Dez 30, 2007 16:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte die Funktion würde das gleiche machen was die Wii auch macht also über 2 LEDs und nicht mit 2 Webcams.
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs
 

E. Urbach

ehemals "Basicprogger"

BeitragSo, Dez 30, 2007 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meinte hectic's Vorgehen:
Zitat:
Nun, was der Typ da im Video macht ist im groben nichts anderes als das er sich die zwei ''Kameras'' am Kopf bindet und das ganze dann rückwirkent macht.


Du kannst es auch mit einer Kamera und 2 Punkten machen. Ich würde ja gerne einen Code dazu schreiben, aber im Moment fehlt mir die Hardware, um den Algorithmus zu testen...
The box said, "Requires Windows XP or better", so I installed Ubuntu | Linux is NOT Windows
Flua :: Profiler für BB und BMax :: Partikel-Engine für BMax :: Lyphia-Projekt Quellcode (BMax) :: Automatische Parallelisierung :: Meine Musik
 

#Reaper

Newsposter

BeitragSo, Dez 30, 2007 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
@hectic:
Naja, du sagst, du verstehst den Trubel um diese "Neuerfindung" nicht. Naja, es ist so wie mit dem Brotschneiden: Es gab das Brot, es gab das Messer, und jemand schlaues kam auf die Idee, mit dem Messer das Brot zu schneiden, wenn du verstehst was ich meine Wink
Also der Einsatz und die Verbindung der Technik(en) ist dann doch was neues.

Ich würde mich auch mal gerne wieder in soetwas versuchen, aber weiß einer, wo man Infrarot-Filterfolie herbekommt? ^^
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7

ChaosCoder

BeitragSo, Dez 30, 2007 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe grad mal n bissl gesucht und bin fündig geworden:

Zum Beispiel eBay:
http://cgi.ebay.de/950nm-Infra...dZViewItem

der Spaß kostet 40 Euro... Ich wünsch dir Glück Razz
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

DAK

BeitragSo, Dez 30, 2007 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
kannst das auch billiger machen... einfach einen überbelichteten film verwenden...
Gewinner der 6. und der 68. BlitzCodeCompo

TheShadow

Moderator

BeitragMo, Dez 31, 2007 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ein ähnliches Projekt von dem Typen - Whiteboard für Wiimote

http://wiiwhiteboard.cvs.sourc...hiteboard/

hier sind paar codes - es gibt sogar fertige DLL (komischerweise hat die nur keine Funktionen)

damit es läuft müsst ihr das noch lesen:

http://wiiwhiteboard.wiki.sourceforge.net/

Da ich kein Wiemote habe, kann ich leider nicht testen...

es kostet eber 35 euro + 10 euro für led-teil
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2

DAK

BeitragMo, Dez 31, 2007 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
hab da grad was cooles gefunden: http://de.youtube.com/watch?v=...re=related
Headtracking in einem B3d-Spiel.. hab leider nix zum download oder eine homepage davon gefunden...
Gewinner der 6. und der 68. BlitzCodeCompo

TheShadow

Moderator

BeitragMo, Dez 31, 2007 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
cool... bei youtube steht was OpenCV

http://de.wikipedia.org/wiki/OpenCV

wusste nicht dass es gibt - und ist sogar BSD-Lizenz
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

#Reaper

Newsposter

BeitragMo, Dez 31, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm.. etwas teuer der Infrarotfilter Wink
Da hört sich das überbelichtete Negativ schon besser an Smile Nur blöd, das wir kaum mehr Bilder entwickeln lassen :-/

Von OpenCV habe ich (vor kurzem) auch schon gehört. Sollte man mal direkt ausprobieren.
Wird aber scheinbar nicht mehr weiterentwickelt. :-/
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7
 

FWeinb

ehemals "ich"

BeitragSa, Jan 05, 2008 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry das ich den Thread nochmal Hochhole aber hier ist die Seite von dem Entwickler wo auch noch sehr viel Einsatzgebiet Gezeigt werden.

http://www.cs.cmu.edu/~johnny/projects/wii/
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

shure_kyu

Newsposter

BeitragSa, Jan 05, 2008 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist ja die verarschung pur

der link wurde 1 mal von mir und dann noch von the_shadow gepostet wie mir scheint


und nun holst du den thread wieder hoch um genau das gleiche zu tun ? Rolling Eyes

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu
 

FWeinb

ehemals "ich"

BeitragSo, Jan 06, 2008 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich sehe den Link nicht einmal hier in dem Thread ?

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

shure_kyu

Newsposter

BeitragMo, Jan 07, 2008 11:09
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...282#280282

musst du gucken Wink

https://www.blitzforum.de/foru...282#280282



Twisted Evil

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Jan 07, 2008 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil ihr alle so ''freakig'' nach Tracking und der gleichen seid: http://www.isnichwahr.de/r1735...-teil.html
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Gehe zu Seite Zurück  1, 2, 3

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group