Articulo de referencia

Perspectiva-n-Punto

El problema de Perspectiva -n -Punto [ 1 ] (PnP) consiste en estimar la pose de una cámara a partir de un conjunto de n puntos 3D en el mundo y sus correspondientes proyecciones...

El problema de Perspectiva -n -Punto [ 1 ] (PnP) consiste en estimar la pose de una cámara a partir de un conjunto de n puntos 3D en el mundo y sus correspondientes proyecciones 2D en una imagen. La pose de la cámara consta de 6 grados de libertad (DOF) que se componen de la rotación (balanceo, cabeceo y guiñada) y la traslación 3D de la cámara con respecto a un punto de origen en el mundo. Este problema se origina en la calibración de cámaras y tiene muchas aplicaciones en visión artificial y otras áreas, como el seguimiento 3D , la robótica y la realidad aumentada . [ 2 ] Existe una solución comúnmente utilizada para el problema para n = 3 llamada P3P, y hay muchas soluciones disponibles para el caso general de n ≥ 3. Existe una solución para n = 2 si se dispone de las orientaciones de las características en los dos puntos. [ 3 ] Las implementaciones de estas soluciones están disponibles en software de código abierto.

Especificación del problema

Definición

Dado un conjunto de n puntos 3D en un sistema de referencia global y sus correspondientes proyecciones de imagen 2D, así como los parámetros intrínsecos calibrados de la cámara, determine la pose de 6 grados de libertad de la cámara en forma de su rotación y traslación con respecto al mundo. Esto sigue el modelo de proyección en perspectiva para cámaras:

spagdo=K[R|T]pagw{\displaystyle s\,p_{c}=K\,[\,R\,|\,T\,]\,p_{w}}.

dóndepagw=[incógnitayz1]T{\displaystyle \textstyle p_{w}={\begin{bmatrix}x&y&z&1\end{bmatrix}}^{T}}es el punto del mundo homogéneo ,pagdo=[v1]T{\displaystyle \textstyle p_{c}={\begin{bmatrix}u&v&1\end{bmatrix}}^{T}}es el punto de imagen homogéneo correspondiente,K{\displaystyle \textstyle K}es la matriz de parámetros intrínsecos de la cámara , (dondeFincógnita{\displaystyle \textstyle f_ {x}}yFy{\displaystyle f_{y}}son las distancias focales escaladas,γ{\displaystyle \textstyle \gamma}es el parámetro de asimetría que a veces se supone que es 0, y(0,v0){\displaystyle \textstyle (u_ {0}, \,v_ {0})}es el punto principal),s{\displaystyle \textstyle s}es un factor de escala para el punto de la imagen, yR{\displaystyle \textstyle R}yT{\displaystyle \textstyle T}son la rotación 3D deseada y la traslación 3D de la cámara (parámetros extrínsecos) que se están calculando. Esto lleva a la siguiente ecuación para el modelo:

s[v1]=[Fincógnitaγ00Fyv0001][r11r12r13t1r21r22r23t2r31r32r33t3][incógnitayz1]{\displaystyle s{\begin{bmatrix}u\\v\\1\end{bmatrix}}={\begin{bmatrix}f_{x}&\gamma &u_{0}\\0&f_{y}&v_{0}\\0&0&1\end{bmatrix}}{\begin{bmatrix}r_{11}&r_{12}&r_{13}&t_{1}\\r_{21}&r_{22}&r_{23}&t_{2}\\r_{31}&r_{32}&r_{33}&t_{3}\\\end{bmatrix}}{\begin{bmatrix}x\\y\\z\\1\end{bmatrix}}}.

Supuestos y características de los datos

Existen algunos aspectos preliminares del problema que son comunes a todas las soluciones de P n P. La suposición que se hace en la mayoría de las soluciones es que la cámara ya está calibrada. Por lo tanto, sus propiedades intrínsecas ya son conocidas, como la distancia focal , el punto de imagen principal, el parámetro de sesgo y otros parámetros. Algunos métodos, como UP n P [ 4 ] o la Transformación Lineal Directa (DLT) aplicada al modelo de proyección, son excepciones a esta suposición, ya que estiman estos parámetros intrínsecos, así como los parámetros extrínsecos que conforman la pose de la cámara que el problema original de P n P intenta encontrar.

Para cada solución de PnP, las correspondencias de puntos elegidas no pueden ser colineales. Además, P n P puede tener múltiples soluciones, y elegir una solución en particular requeriría un procesamiento posterior del conjunto de soluciones . RANSAC también se usa comúnmente con un método P n P para hacer que la solución sea robusta a los valores atípicos en el conjunto de correspondencias de puntos. Los métodos P3P asumen que los datos están libres de ruido, mientras que la mayoría de los métodos PnP asumen ruido gaussiano en el conjunto de valores atípicos.

Métodos

La siguiente sección describe dos métodos comunes que se pueden utilizar para resolver el problema P n P que también están fácilmente disponibles en software de código abierto y cómo se puede utilizar RANSAC para tratar los valores atípicos en el conjunto de datos .

P3P

Cuando n = 3 , el problema P n P se encuentra en su forma mínima P3P y puede resolverse con correspondencias de tres puntos. Sin embargo, con solo tres correspondencias de puntos, P3P produce hasta cuatro soluciones reales y geométricamente factibles. Para niveles bajos de ruido, se puede utilizar una cuarta correspondencia para eliminar la ambigüedad. La configuración del problema es la siguiente.

Sea P el centro de proyección de la cámara, A , B y C puntos del mundo 3D con puntos de imagen correspondientes u , v y w . Sea X = |PA| , Y = |PB| , Z = |PC| ,α=BPAGdo{\displaystyle \alpha =\angle BPC},β=APAGdo{\displaystyle \beta =\angle APC},γ=APAGB{\displaystyle \gamma =\angle APB},pag=2porqueα{\displaystyle p=2\cos \alpha },q=2porqueβ{\displaystyle q=2\cos \beta },r=2porqueγ{\displaystyle r=2\cos \gamma },a=|AB|{\displaystyle a'=|AB|},b=|Bdo|{\displaystyle b'=|BC|},do=|Ado|{\displaystyle c'=|AC|}Esto forma los triángulos PBC , PAC y PAB , a partir de los cuales obtenemos un sistema de ecuaciones suficiente para P3P:

{Y2+Z2YZpagb2=0Z2+incógnita2incógnitaZqdo2=0incógnita2+Y2incógnitaYra2=0{\displaystyle {\begin{casos}Y^{2}+Z^{2}-YZp-b'^{2}&=0\\Z^{2}+X^{2}-XZq-c'^{2}&=0\\X^{2}+Y^{2}-XYr-a'^{2}&=0\\\end{casos}}}.

La resolución del sistema P3P produce hasta cuatro soluciones reales geométricamente factibles para R y T. La solución publicada más antigua data de 1841. [ 5 ] Un algoritmo reciente para resolver el problema, así como una clasificación de la solución, se presenta en el artículo de 2003 de IEEE Transactions on Pattern Analysis and Machine Intelligence de Gao, et al. [ 6 ] Una implementación de código abierto del solucionador P3P de Gao se puede encontrar en el módulo calib3d de OpenCV en la función solvePnP . [ 7 ] Desde entonces se han publicado varias versiones más rápidas y precisas, incluyendo Lambda Twist P3P [ 8 ] que alcanzó un rendimiento de vanguardia en 2018 con un aumento de 50 veces en la velocidad y una disminución de 400 veces en los fallos numéricos. Lambdatwist está disponible como código abierto en OpenMVG y en https://github.com/midjji/pnp .

EP y P

El método Efficient P n P (EP n P) fue desarrollado por Lepetit et al. en su artículo de 2008 publicado en el International Journal of Computer Vision [ 9 ] , el cual resuelve el problema general de P n P para n ≥ 4. Este método se basa en la idea de que cada uno de los n puntos (denominados puntos de referencia) puede expresarse como una suma ponderada de cuatro puntos de control virtuales. De esta manera, las coordenadas de estos puntos de control se convierten en las incógnitas del problema. A partir de estos puntos de control, se determina la pose final de la cámara.

Como resumen del proceso, primero observe que cada uno de los n puntos de referencia en el marco del mundo,pagiw{\displaystyle p_{i}^{w}}y sus correspondientes puntos de imagen,pagido{\displaystyle p_{i}^{c}}, son sumas ponderadas de los cuatro puntos de control,dojw{\displaystyle c_{j}^{w}}ydojdo{\displaystyle c_{j}^{c}}respectivamente, y los pesos se normalizan por punto de referencia como se muestra a continuación. Todos los puntos se expresan en forma homogénea.

pagiw=j=14αijdojw{\displaystyle p_{i}^{w}=\sum _ {j=1}^{4}{\alpha _ {ij}c_ {j}^{w}}}
pagido=j=14αijdojdo{\displaystyle p_{i}^{c}=\sum _{j=1}^{4}{\alpha _{ij}c_{j}^{c}}}
j=14αij=1{\displaystyle \sum _{j=1}^{4}{\alpha _{ij}}=1}

A partir de esto, la derivación de los puntos de referencia de la imagen se convierte en

sipagiimetrogramo=Kj=14αijdojdo{\displaystyle s_{i}\,p_{i}^{img}=K\sum _{j=1}^{4}{\alpha _{ij}c_{j}^{c}}}.

Dóndepagiimetrogramo{\displaystyle p_{i}^{img}}son los puntos de referencia de la imagen con coordenadas de píxeles[ivi1]T{\displaystyle {\begin{bmatrix}u_{i}&v_{i}&1\end{bmatrix}}^{T}}El punto de control de imagen homogéneo tiene la formadojdo=[incógnitajdoyjdozjdo]T{\displaystyle \textstyle c_{j}^{c}={\begin{bmatrix}x_{j}^{c}&y_{j}^{c}&z_{j}^{c}\end{bmatrix}}^{T}}Al reorganizar la ecuación del punto de referencia de la imagen, se obtienen las siguientes dos ecuaciones lineales para cada punto de referencia:

j=14αijFincógnitaincógnitajdo+αij(0i)zjdo=0{\displaystyle \sum _{j=1}^{4}{\alpha _{ij}f_{x}x_{j}^{c}+\alpha _{ij}(u_{0}-u_{i})z_{j}^{c}}=0}
j=14αijFyyjdo+αij(v0vi)zjdo=0{\displaystyle \sum _{j=1}^{4}{\alpha _{ij}f_{y}y_{j}^{c}+\alpha _{ij}(v_{0}-v_{i})z_{j}^{c}}=0}.

Utilizando estas dos ecuaciones para cada uno de los n puntos de referencia, el sistemaMETROincógnita=0{\displaystyle \textstyle Mx=0}se puede formar dondeincógnita=[do1doTdo2doTdo3doTdo4doT]T{\displaystyle \textstyle x={\begin{bmatrix}c_{1}^{c^{T}}&c_{2}^{c^{T}}&c_{3}^{c^{T}}&c_{4}^{c^{T}}\end{bmatrix}}^{T}}. La solución para los puntos de control existe en el espacio nulo de M y se expresa como

incógnita=i=1norteβivi{\displaystyle x=\sum _{i=1}^{N}{\beta _{i}v_{i}}}

dóndenorte{\displaystyle N}es el número de valores singulares nulos enMETRO{\displaystyle M}y cada unovi{\displaystyle v_{i}}es el vector singular derecho correspondiente deMETRO{\displaystyle M}.norte{\displaystyle N}puede variar de 0 a 4. Después de calcular los coeficientes inicialesβi{\displaystyle \beta _{i}}, el algoritmo de Gauss-Newton se utiliza para refinarlos. Las matrices R y T que minimizan el error de reproyección de los puntos de referencia del mundo,pagiw{\displaystyle p_{i}^{w}}y sus correspondientes puntos de imagen realespagido{\displaystyle p_{i}^{c}}, luego se calculan.

Esta solución tieneO(norte){\displaystyle O(n)}complejidad y funciona en el caso general de P n P para puntos de control tanto planares como no planares. Se pueden encontrar implementaciones de software de código abierto de este método en el módulo de calibración de cámara y reconstrucción 3D de OpenCV en la función solvePnP [ 7 ] , así como en el código publicado por Lepetit et al. en su sitio web, CVLAB en EPFL [ 10 ] .

Este método no es robusto frente a valores atípicos y, en general, se compara negativamente con RANSAC P3P seguido de refinamiento no lineal .

SQPnP

SQPnP fue descrito por Terzakis y Lourakis en un artículo de ECCV 2020. [ 11 ] Es un solucionador no mínimo y no polinomial que plantea P n P como un programa cuadrático no lineal. SQPnP identifica regiones en el espacio de parámetros de rotaciones 3D (es decir, la 8-esfera ) que contienen mínimos únicos con garantías de que al menos uno de ellos es el mínimo global. Cada mínimo regional se calcula con programación cuadrática secuencial que se inicia en las matrices de aproximación ortogonal más cercanas .

SQPnP tiene una precisión similar o incluso superior a la de los solucionadores polinomiales de última generación, es globalmente óptimo y computacionalmente muy eficiente, siendo prácticamente lineal con respecto al número de puntos proporcionados n . Una implementación optimizada en C++ está disponible en GitHub , la cual también ha sido portada a OpenCV e incluida en el módulo de calibración de cámara y reconstrucción 3D ( función SolvePnP ). [ 12 ]

Utilizando RANSAC

El método P n P es propenso a errores si existen valores atípicos en el conjunto de correspondencias de puntos. Por lo tanto, RANSAC puede utilizarse junto con las soluciones existentes para que la solución final de la pose de la cámara sea más robusta frente a valores atípicos. Una implementación de código abierto de los métodos P n P con RANSAC se puede encontrar en el módulo de calibración de cámara y reconstrucción 3D de OpenCV, en la función solvePnPRansac . [ 12 ]

Véase también

Referencias

  1. Fischler, MA; Bolles, RC (1981). "Consenso de muestra aleatoria: un paradigma para el ajuste de modelos con aplicaciones al análisis de imágenes y cartografía automatizada" . Communications of the ACM . 24 (6): 381– 395. doi : 10.1145/358669.358692 . S2CID 972888 . 
  2. Apple, equipo ARKIT (2018). "Comprendiendo el seguimiento y la detección de ARKit" . WWDC .
  3. Fabbri, Ricardo; Giblin, Peter; Kimia, Benjamin (2012). "Estimación de la pose de la cámara mediante geometría diferencial de curvas de primer orden". Visión por computadora – ECCV 2012 (PDF) . Notas de clase en ciencias de la computación. Vol. 7575. pp. 231–244 . doi : 10.1007/978-3-642-33765-9_17 . ISBN   978-3-642-33764-2. S2CID 15402824 . 
  4. Penate-Sanchez, A.; Andrade-Cetto, J.; Moreno-Noguer, F. (2013). "Linealización exhaustiva para la estimación robusta de la pose de la cámara y la distancia focal". IEEE Transactions on Pattern Analysis and Machine Intelligence . 35 (10): 2387– 2400. doi : 10.1109/TPAMI.2013.36 . hdl : 2117/22931 . PMID 23969384 . S2CID 9614348 .  
  5. Quan, Long; Lan, Zhong-Dan (1999). "Determinación lineal de la pose de la cámara de N puntos" (PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence .
  6. Gao, Xiao-Shan; Hou, Xiao-Rong; Tang, Jianliang; Cheng, Hang-Fei (2003). "Clasificación de soluciones completas para el problema de tres puntos de perspectiva". IEEE Transactions on Pattern Analysis and Machine Intelligence . 25 (8): 930– 943. doi : 10.1109/tpami.2003.1217599 . S2CID 15869446 . 
  7. 1 2 "Calibración de cámara y reconstrucción 3D" . OpenCV .
  8. Persson, Mikael; Nordberg, Klas (2018). "Lambda Twist: un solucionador de tres puntos (P3P) de perspectiva rápido, preciso y robusto" (PDF) . Conferencia Europea sobre Visión por Computadora (ECCV) .
  9. Lepetit, V.; Moreno-Noguer, M.; Fua, P. (2009). "EPnP: Una solución precisa O(n) al problema PnP". International Journal of Computer Vision . 81 (2): 155– 166. doi : 10.1007/s11263-008-0152-6 . hdl : 2117/10327 . S2CID 207252029 . 
  10. "EPnP: Estimación eficiente de la pose de la cámara en perspectiva de n puntos" . EPFL-CVLAB .
  11. Terzakis, George; Lourakis, Manolis (2020). «Una solución consistentemente rápida y globalmente óptima al problema de perspectiva de n puntos». Visión por computadora – ECCV 2020. Notas de clase en ciencias de la computación. Vol. 12346. págs. 478–494 . doi : 10.1007/978-3-030-58452-8_28 . ISBN   978-3-030-58451-1. S2CID 226239551 . 
  12. 1 2 "Calibración de cámara y reconstrucción 3D" . OpenCV .
  • Módulo de calibración de cámara y reconstrucción 3D de OpenCV
  • CVLAB de la EPFL: EPnP