Stima della posizione 3D utilizzando una videocamera 2D


9

Ho una fotocamera (iPhone), ho un oggetto di controllo 3D nell'immagine che conosco molto bene le sue proprietà. (Il mio oggetto di controllo). C'è anche un oggetto secondario in movimento. L'obiettivo finale è stabilire la traiettoria 3D dell'oggetto in movimento per un determinato periodo di tempo. (Inseguimento)

Mi piace chiedere, posso scoprirlo?

  • Distanza del telefono dall'oggetto di controllo (per motivi di discussione, supponiamo che la videocamera sia a una certa altezza e che una certa distanza non sia nota ma la videocamera è perpendicolare alla superficie che è nota)

  • L'oggetto secondario in cui posso individuare l'oggetto in ogni fotogramma successivo. Il mio obiettivo è stimare la sua traiettoria 3D come ho indicato sopra.

Domanda bonus, possiamo rendere il sistema in modo tale che la distanza dei telefoni dall'oggetto di controllo possa essere impostata (anche se non preferita), questo mi aiuterebbe con il secondo punto?


Conosci la letteratura in questo settore? Altrimenti posso consigliare alcuni documenti, ma attenzione: la matematica è coinvolta.
Emre,

@emre sarebbe fantastico se potessi fornire alcuni suggerimenti. La matematica non è un problema, adoriamo la matematica.
Ktuncer


@emre Ho dato una rapida occhiata al documento di revisione .. Questo è più per il monitoraggio, posso tracciare facilmente l'oggetto, non è questo il problema. Sono in grado di individuare il pixel dell'oggetto. Il problema è dove l'oggetto si trova nello spazio 3D. È possibile? Fondamentalmente, ho un altro oggetto nello spazio 3D che conosco le proprietà che posso usare come frame di riferimento, ma questo è tutto.
Ktuncer

Mi dispiace, carta sbagliata. Forse puoi adattare il monitoraggio della traiettoria 3D basata sulla visione per ambienti sconosciuti [PDF]? Usano una videocamera stereo; è una possibilità per te?
Emre,

Risposte:


15

Se l'oggetto ha 6 punti noti (coordinate 3D conosciute, e Z ) è possibile calcolare la posizione della telecamera relativa al sistema di coordinate degli oggetti.X,YZ

Innanzitutto alcune nozioni di base.

(X,Y,Z)ωX=ω[XYZ1]Tω=1XXωx=ω[XY1]ω,X,YZ

3×4

x=PX

xX

Ricordiamo che il prodotto incrociato tra due 3 vettori può essere definito come moltiplicazione di matrici vettoriali in modo tale che:

v×u=(v)xu=[0v3v2v30v1v2v10]u

v×v=0

Px

(x)xx=(x)xPX=0

Aha! Il risultato deve essere zero vettore. Se ora apriamo l'equazione otteniamo:

[0wyw0xyx0][P1,1P1,2P1,3P1,4P2,1P2,2P2,3P2,4P3,1P3,2P3,3P3,4]X=[P3,4WyP2,1XwP2,2YwP2,4Ww+P3,1XyP2,3Zw+P3,2Yy+P3,3ZyP1,4Ww+P1,1XwP3,4Wx+P1,2YwP3,1Xx+P1,3ZwP3,2YxP3,3ZxP2,4Wx+P2,1XxP1,4WyP1,1Xy+P2,2YxP1,2Yy+P2,3ZxP1,3Zy]=0

P

[0000XwYwZwWwXyYyZyWyXwYwZwWw0000XxYxZxWxXyYyZyWyXxYxZxWx0000][P1P2P3]=0

PnnP

Piccola pausa in modo da poter raccogliere le nostre difficoltà. Si noti che la precedente equazione matriciale deve essere formata per ogni corrispondenza 3D-> 2D nota (devono essercene almeno 6).

2×12A

A[P1P2P3]=0

[P1P2P3]=0

Fortunatamente possiamo usare la decomposizione a valore singolare (SVD) per forzare

[P1P2P3]=1

Quindi, per risolvere le equazioni, calcola SVD della matrice e scegli il vettore singolare corrispondente al valore di autovena più piccolo. Questo vettore è il vettore nullo della matrice A e anche la soluzione per la matrice telecamera . Basta unstack il e la forma .AP[P1P2P3]TP

Ora volevi sapere la distanza dall'oggetto. è definito come:P

P=K[RRC]

dove è la posizione della telecamera relativa all'origine degli oggetti. Può essere risolto da calcolando il vettore null di s.CPP

(Hartley, Zisserman - Geometria a vista multipla in Computer Vision)

Infine, quando si calcola la posizione delle telecamere per due fotogrammi, è possibile calcolare le posizioni degli oggetti sconosciuti (o le posizioni di alcuni dei punti dell'oggetto) risolvendo due equazioni per :X

x1=P1Xx2=P2X

Il che va più o meno allo stesso modo in cui abbiamo risolto le matrici della fotocamera:

(x1)xP1X=0(x2)xP2X=0

E così via.


È corretto affermare che il tuo modo di calcolare la posizione 3D della videocamera equivale a OpenCV resolPnp? docs.opencv.org/2.4/modules/calib3d/doc/… (cerca risolvPnP nella pagina. Non riesco a incollare un URL con un #)
gregoiregentil
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.