2 camera's, perspectief en coordinaten
-
- Berichten: 18
2 camera's, perspectief en coordinaten
beste forumleden,
ik zit met een kwestie die volgens mij (eigenlijk) erg eenvoudig moet zijn, maar ik kom er echt even niet uit.
om het probleem uit te leggen gebruik ik twee plaatjes. (zie onder)
2 camera's bevinden zich in een vlak onder een hoek van 90º graden t.o.v. elkaar.
nu wil ik adhv. de metingen van de camera's de x- en y-coordinaten bepalen van een object (hand) in dat vlak.
vergeet voor nu even HOE die camera's dat meten, en voor het gemak gaan we ervan uit dat de camera's slechts een punt op een lijn waarnemen.
nu is mijn vraag:
hoe reken ik de twee gemeten waarden om naar de (werkelijke) x- en y coordinaten in het rechthoekige vlak?
er dient dus rekening gehouden te worden met perspectief e.d.
ik zou hulp hierbij erg op prijs stellen!
dank.
gr
arri
A) schematisch (vooraanzicht)
B) 3D model
ik zit met een kwestie die volgens mij (eigenlijk) erg eenvoudig moet zijn, maar ik kom er echt even niet uit.
om het probleem uit te leggen gebruik ik twee plaatjes. (zie onder)
2 camera's bevinden zich in een vlak onder een hoek van 90º graden t.o.v. elkaar.
nu wil ik adhv. de metingen van de camera's de x- en y-coordinaten bepalen van een object (hand) in dat vlak.
vergeet voor nu even HOE die camera's dat meten, en voor het gemak gaan we ervan uit dat de camera's slechts een punt op een lijn waarnemen.
nu is mijn vraag:
hoe reken ik de twee gemeten waarden om naar de (werkelijke) x- en y coordinaten in het rechthoekige vlak?
er dient dus rekening gehouden te worden met perspectief e.d.
ik zou hulp hierbij erg op prijs stellen!
dank.
gr
arri
A) schematisch (vooraanzicht)
B) 3D model
-
- Berichten: 18
Re: 2 camera's, perspectief en coordinaten
hmm, ik hoop niet dat dit te moeilijk is (?)
ik hoor het ook graag als het juist te simpel is,
en sta open voor evt. verwijzingen naar andere plekken
waar deze vraag misschien meer op zn plek is..
maar ik ben uiteraard helemaal blij met aanwijzingen in de richting van een oplossing
dank
arri
ik hoor het ook graag als het juist te simpel is,
en sta open voor evt. verwijzingen naar andere plekken
waar deze vraag misschien meer op zn plek is..
maar ik ben uiteraard helemaal blij met aanwijzingen in de richting van een oplossing
dank
arri
- Pluimdrager
- Berichten: 4.167
Re: 2 camera's, perspectief en coordinaten
Als wij niet weten hoe of wat de cameras "meten" dan houdt het hier al op want:vergeet voor nu even HOE die camera's dat meten, en voor het gemak gaan we ervan uit dat de camera's slechts een punt op een lijn waarnemen.
is dan natuurlijk onmogelijk te beantwoorden, netzomin wat de invloed van perspectief zou kunnen zijn.hoe reken ik de twee gemeten waarden om naar de (werkelijke) x- en y coordinaten in het rechthoekige vlak?
er dient dus rekening gehouden te worden met perspectief e.d.
Hydrogen economy is a Hype.
- Moderator
- Berichten: 51.270
Re: 2 camera's, perspectief en coordinaten
is dat niet simpelweg een kwestie van hoeken?
ALS WIJ JE GEHOLPEN HEBBEN...
help ons dan eiwitten vouwen, en help mee ziekten als kanker en zo te bestrijden in de vrije tijd van je chip...
http://www.wetenscha...showtopic=59270
help ons dan eiwitten vouwen, en help mee ziekten als kanker en zo te bestrijden in de vrije tijd van je chip...
http://www.wetenscha...showtopic=59270
- Beheer
- Berichten: 15.202
Re: 2 camera's, perspectief en coordinaten
vergeet voor nu even HOE die camera's dat meten, en voor het gemak gaan we ervan uit dat de camera's slechts een punt op een lijn waarnemen.
Daar sluit ik me bij aan. Wat is de output van de camera's?Als wij niet weten hoe of wat de cameras "meten" dan houdt het hier al op
Wellicht mogen we aannemen dat slechts 1 lijn pixels wordt uitgestuurd, waarbij 1 pixel het (centum van het) te lokaliseren object is. Een eventuele vertekening door perspectief is te compenseren door te eiken (je zou de camera op een meetlint kunnen richten en een formule kunnen afleiden die corrigeert)
Daar zat ik ook aan te denken. Wanneer je de hoeken vanuit beide camera's weet en de locatie van de camera's kan je aan de slag.is dat niet simpelweg een kwestie van hoeken?
Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic
- Berichten: 5.679
Re: 2 camera's, perspectief en coordinaten
In de praktijk meet een camera natuurlijk een vlak, en kun je dit met 3 camera's in 3 dimensies doen, maar zoals arretjenof aangeeft kunnen we ervan uitgaan dat de camera's een punt op een lijn registreren.
De vraag is nu hoe je uit de twee geprojecteerde (d.w.z. door de camera gemeten) coordinaten weer het oorspronkelijke punt kunt reconstrueren. Daarvoor hoeven de camera's niet eens 90o ten opzichte van elkaar te staan.
We bekijken even één camera afzonderlijk:
C is hier het punt (de coordinaten) waar de camera staat, D is de richting waarin de camera kijkt, en het gearceerde deel is het gebied dat de camera kan zien (dit hangt af van de kijkhoek van de camera, ook wel "field of view" (FOV) angle).
Let op dat D een richting is, relatief ten opzichte van C, en geen absoluut punt.
Nu construeren we twee vectoren links en rechts van het kijkveld van de camera:
DL is de richting vanuit C van wat er nog net links in beeld valt, en idem DR rechts. De hoeken
De vectoren DL en DR bereken je door D over een hoek
Nou is het punt dat de camera heeft gemeten, een coördinaat op de projectielijn (of in de praktijk waarschijnlijk projectievlak). Laten we even uitgaan dat de gemeten coördinaten van 0 tot 1 lopen, waarbij 0 uiterst links op de lijn is, en 1 uiterst rechts:
Ik heb het zo getekend voor de duidelijkheid, die denkbeeldige projectielijn staat in de praktijk oneindig dichtbij de camera.
Het gemeten punt heeft dus een coördinaat t op de projectielijn.
Aan de hand hiervan kun je een richtingsvector P bepalen, die vanuit de camera in de richting van het waargenomen punt wijst:
P reken je simpelweg uit met:
Je weet nu dat het oorspronkelijke punt
Je kunt nu hetzelfde doen voor de andere camera. Je krijgt dan uiteindelijk:
Als je de vectoren uitschrijft zijn dit twee simpele lineaire vergelijkingen met 2 onbekenden (u en v), en dat is makkelijk op te lossen, waarmee je ook x en y hebt.
Succes!
De vraag is nu hoe je uit de twee geprojecteerde (d.w.z. door de camera gemeten) coordinaten weer het oorspronkelijke punt kunt reconstrueren. Daarvoor hoeven de camera's niet eens 90o ten opzichte van elkaar te staan.
We bekijken even één camera afzonderlijk:
C is hier het punt (de coordinaten) waar de camera staat, D is de richting waarin de camera kijkt, en het gearceerde deel is het gebied dat de camera kan zien (dit hangt af van de kijkhoek van de camera, ook wel "field of view" (FOV) angle).
Let op dat D een richting is, relatief ten opzichte van C, en geen absoluut punt.
Nu construeren we twee vectoren links en rechts van het kijkveld van de camera:
DL is de richting vanuit C van wat er nog net links in beeld valt, en idem DR rechts. De hoeken
\(\alpha\)
tussen de lijnen C-D en C-DL en tussen de lijnen C-D en C-DR zijn tezamen de kijkhoek van de camera (dus \(\alpha\)
=FOV/2). De vectoren DL en DR bereken je door D over een hoek
\(\alpha\)
respectievelijk \(-\alpha\)
te roteren. Dus:\(\vec{DL} = \left( \startmatrix { \cos(\alpha) & \sin(\alpha) \\ -\sin(\alpha) & \cos(\alpha) } \endmatrix \right)\cdot \vec{D} \)
En voor DR idem met \(-\alpha\)
(of andersom, afhankelijk van of je een rechtshandig of linkshandig georiënteerd coördinatenstelsel gebruikt).Nou is het punt dat de camera heeft gemeten, een coördinaat op de projectielijn (of in de praktijk waarschijnlijk projectievlak). Laten we even uitgaan dat de gemeten coördinaten van 0 tot 1 lopen, waarbij 0 uiterst links op de lijn is, en 1 uiterst rechts:
Ik heb het zo getekend voor de duidelijkheid, die denkbeeldige projectielijn staat in de praktijk oneindig dichtbij de camera.
Het gemeten punt heeft dus een coördinaat t op de projectielijn.
Aan de hand hiervan kun je een richtingsvector P bepalen, die vanuit de camera in de richting van het waargenomen punt wijst:
P reken je simpelweg uit met:
\(\vec{P} = \vec{DL} + t\cdot(\vec{DR}-\vec{DL})\)
(Even terzijde: merk op dat D, DL en DR niet genormaliseerd hoeven te zijn, als DL en DR maar even lang zijn. En al waren DL en DR wel genormaliseerd, dan is P dat niet, maar dat is ook niet nodig)Je weet nu dat het oorspronkelijke punt
\({x \choose y}\)
gelijk is aan \(\vec{C}+u\cdot\vec{P}\)
voor een onbekend getal u (hoe verder het oorspronkelijke punt van de camera ligt, hoe groter u, maar dat kun je aan het gemeten beeld van één camera nooit zien).Je kunt nu hetzelfde doen voor de andere camera. Je krijgt dan uiteindelijk:
\(\vec{C_1}+u\cdot\vec{P_1} = \vec{C_2}+v\cdot\vec{P_2}\)
(en die zijn beide gelijk aan \({x \choose y}\)
)Als je de vectoren uitschrijft zijn dit twee simpele lineaire vergelijkingen met 2 onbekenden (u en v), en dat is makkelijk op te lossen, waarmee je ook x en y hebt.
Succes!
In theory, there's no difference between theory and practice. In practice, there is.
-
- Berichten: 18
Re: 2 camera's, perspectief en coordinaten
He Rogier,Rogier schreef:twee simpele lineaire vergelijkingen met 2 onbekenden (u en v), en dat is makkelijk op te lossen
Succes!
ontzettend bedankt voor je heldere uitleg!
ik had die 90º voor het gemak gesteld. uiteindelijk moet er een systeem worden ontwikkelen waarmee derden de camera's met eenvoudige instructies (niet al te nauwkeurig) kunnen plaatsen en calibreren. ik ben daarmee nu direct een stuk verder.
dank!
Als wij niet weten hoe of wat de cameras "meten" dan houdt het hier..
een kleine toelichting;Daar sluit ik me bij aan. Wat is de output van de camera's?
de camera's 'registreren' natuurlijk beiden een groot 2D vlak, maar ik gebruik van beide beelden slechts smalle strook.
deze twee stroken liggen in het zelfde 'platte vlak'. voor de vraagstelling leek het me handig het probleem zo te reduceren. de meting zelf word softmatig gedaan met een eenvoudig blob-detection algoritme.
ik zal jullie op de hoogte houden van evt. interessante ontwikkelingen
nogmaals dank,
gr
arri