10 votos

Encontrar la matriz de transformación entre dos marcos de coordenadas 2D [plano del Pixel al mundo coordinar plano]

La pregunta que estoy tratando de averiguar que yo tengo la N puntos (Pa1x,Pa1y) , (Pa2x,Pa2y)...(PaNx,PaNx) que corresponde a un Píxel plano xy de una cámara, y otros puntos N (Pb1w,Pb1z) , (Pb2w,Pb2z)...(PbNw,PbNz) que corresponden a mi 2D Mundo cuadro de Coordenadas wz.

He de encontrar la transformación (Rotación + Traslación) entre estos dos conjuntos de puntos, por lo que puedo traducir el punto desde el espacio de la cámara para el mundial del espacio.He hecho un montón de medidas y tengo los dos conjuntos de puntos, pero ¿cómo debo proceder ahora ?

9voto

dpott197 Puntos 138

si pones los puntos en un homogénea de coordenadas (sistema de añadir una tercera dimensión que es $1$ para todos los puntos), a continuación, cada relación puede ser expresada como $A*P_a=P_b$ con

$$A=\begin{bmatrix} cos(\theta) & -sin(\theta) & x_{trans} \\ sin(\theta) & cos(\theta) & y_{trans} \\ 0 & 0 & 1 \\ \end{bmatrix} $$

con $\theta$ la rotación y $(x_{trans}, y_{trans})$ la traducción

nota esto supone una transformación afín pero con sólo la rotación y translación este es el caso

editar confundido $\sin$ $\cos$ en la matriz de transformación

usted puede leer más acerca de esto en la wiki

en otras palabras, se puede expresar las ecuaciones como $\cos(\theta)*P_{aix} - \sin(\theta)*P_{aiy} + x_{trans} = P_{bix}$ $\sin(\theta)*P_{aix} + \cos(\theta)*P_{aiy} + y_{trans} = P_{biy}$

o

$$\begin{bmatrix} P_{a1x} & -P_{a1y} & 1 &0\\ P_{a1y} & P_{a1x} & 0 &1\\ P_{a2x} & -P_{a2y} & 1 &0\\ P_{a2y} & P_{a2x} & 0 &1\\ ...\\ P_{aNx} & -P_{aNy} & 1 &0\\ P_{aNy} & P_{aNx} & 0 &1\\ \end{bmatrix}* \begin{bmatrix} \cos(\theta) \\ \sin(\theta) \\ x_{trans}\\ y_{trans} \end{bmatrix}= \begin{bmatrix} P_{b1x}\\ P_{b1y}\\ P_{b2x}\\ P_{b2y}\\ ...\\ P_{bNx}\\ P_{bNy}\\ \end{bmatrix} $$

y creo que usted sabe cómo resolver ese

5voto

Anthony Shaw Puntos 858

El Kabsch Algoritmo da el cuadrado de la solución de la matriz de rotación.

He resuelto este problema para el sci.de matemáticas. Que solución le da la misma rotación que el Kabsch Algoritmo y muestra que el mínimo de plazas de conformación, transformación afín mapas de la media de los puntos de origen a la media de los puntos de destino. He reproducido el resumen del método de abajo.

Resumen del método:

Para encontrar la solución de mínimos cuadrados a $PM+R=Q$ para un conjunto dado $\{P_j\}_{j=1}^m$$\{Q_j\}_{j=1}^m$, bajo la restricción de que el mapa de conformación, en primer lugar, calcular los centroides $$ \begin{array}{} \bar{P}=\frac{1}{m}\sum_{j=1}^mP_j&\text{and}&\bar{Q}=\frac{1}{m}\sum_{j=1}^mQ_j \end{array} $$ Siguiente, calcular la matriz $$ \begin{align} S &=\sum_{j=1}^m(Q_j-\bar{Q})^T(P_j-\bar{P)}\\ &=\left(\sum_{j=1}^mQ_j^TP_j\right)-m\bar{Q}^T\bar{P} \end{align} $$ Vamos a la Descomposición de Valor Singular de ser S $$ S=UDV^T $$ donde U y V son unitarias y D es la diagonal.

El próximo calcular $\{c_k\}_{k=1}^m$ con $$ \begin{align} c_k &=\sum_{j=1}^m[(P_j-\bar{P}\;)V\;]_k[(Q_j-\bar{Q})U\;]_k\\ &=\left(\sum_{j=1}^m[P_jV\;]_k[Q_jU\;]_k\right)-m[\bar{P}V\;]_k[\bar{Q}U\;]_k \end{align} $$ donde $[V\;]_k$ es coordinar $k$ $V$ y definir $$ a_k=\operatorname{signum}(c_k) $$ Deje $I_k$ ser la matriz con la $k^{th}$ diagonal elemento del conjunto a $1$ y todos los demás elementos del conjunto a $0$. A continuación, calcular $$ E=\sum_{k=1}^ma_kI_k $$ Calcular la matriz ortogonal $$ W=VEU^T $$ Si $\det(W)<0$ pero $\det(W)>0$ es necesario, cambiar el signo de la $a_k$ asociado con el $c_k$ con el menor valor absoluto.

Si es necesario, calcular los $r$ por $$ r\sum_{j=1}^m|P_j-\bar{P}\;|^2=\sum_{j=1}^m\left<(P_j-\bar{P}\;)W,Q_j-\bar{Q}\right> $$ o, equivalentemente, $$ r\left(\left(\sum_{j=1}^m|P_j|^2\right)-m|\bar{P}\;|^2\right)=\left(\sum_{j=1}^m\left<P_jW,Q_j\right>\right)-m\left<\bar{P}\;W,\bar{Q}\;\right> $$ Por último, tenemos el deseado mapa de conformación $Q = PM+R$ donde $$ \begin{array}{} M=rW&\text{and}&R=\bar{Q}-\bar{P}M \end{array} $$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X