[Stereo Vision (4)] Corrección epipolar y visión binocular

Esta es una nota de estudio personal. Tomé prestadas muchas buenas imágenes y artículos (las referencias se encuentran al final del artículo), principalmente para ordenar el conocimiento relevante a fin de formar mi propio sistema. La expresión del texto se ensambla y la fórmula simbólica se ingresa manualmente. Indique si hay algún error.

1. Corrección polar

inserte la descripción de la imagen aquí
En el estudio previo de geometría epipolar y restricciones epipolares, a través de las restricciones epipolares, se puede saber que para un punto de píxel p 1 p_1 de la vista izquierdapag1, podemos calcular p 1 p_1 en la vista derechapag1Mismo nombre punto p 2 p_2pag2La línea epipolar donde l 2 l_2yo2. Esto determina para nosotros p 2 p_2pag2Las coordenadas reducen en gran medida el espacio de búsqueda.Si para cada píxel que se empareja en la vista izquierda, se calcula la línea epipolar correspondiente, cuando hay muchos píxeles que se emparejan, es concebible que la cantidad de cálculo sea muy grande.

Se puede encontrar por observación: línea epipolar l 1 l_1yo1y línea epipolar l 2 l_2yo2(Se le puede llamar línea epipolar l 1 l_1yo1y línea epipolar l 2 l_2yo2es un par de líneas polares) están en el mismo plano polar, es decir, las líneas polares l 1 l_1yo1y línea epipolar l 2 l_2yo2Todos los píxeles satisfacen la misma fórmula de restricción epipolar. Cuando el plano polar está alrededor de la línea base O 1 O 2 O_1O_2O1O2Cuando se gira, la línea epipolar resultante puede cubrir todos los píxeles de la vista.

Si los píxeles de la línea polar están reorganizados y los píxeles de la misma línea polar están dispuestos en la misma fila, entonces podemos usar el número de fila para determinar los píxeles del mismo par de líneas polares. punto p 1 p_1pag1El punto homónimo p 2 p_2pag2Debe estar en la fila de píxeles con el mismo número de fila, solo tienen una diferencia en las coordenadas de columna, llamada parallax ( d = col ( p 1 ) − col ( p 2 ) d=col(p_1)-col(p_2)d=cola ( pag _1)cola ( pag _2) )。

Esto es lo que hace la corrección epipolar, y una explicación más profesional: la corrección epipolar consiste en corregir la estructura geométrica estereoscópica binocular a la estructura geométrica estándar binocular frontal a través de una serie de transformaciones, es decir, los planos de imagen de las cámaras izquierda y derecha están en el mismo plano y están alineados verticalmente.

inserte la descripción de la imagen aquí

1) Método de corrección de Fusiello

La corrección epipolar hace que la coincidencia densa sea mucho más fácil. Los métodos de corrección epipolar se pueden dividir en corrección no escalada y corrección escalada. La corrección sin escala significa que
la corrección se puede realizar sin parámetros internos y externos de calibración de la cámara, como el algoritmo Hartley, y la corrección de calibración utiliza parámetros internos y externos de la cámara obtenidos previamente para completar la corrección, como el método Fusiello y el método Bouguet. Aquí primero aprenda el método de corrección de Fusiello que es simple y fácil de entender e implementar .

La corrección epipolar consiste en corregir la geometría de visión estéreo binocular a la geometría estándar binocular de cabeza arriba a través de una serie de transformaciones (girar la cámara y redefinir el plano de la imagen). La esencia es redefinir la matriz de proyección M = K [ R ∣ t ] = K [ R ∣ − − RO ] M=K[R|t]=K[R|--RO]METRO=K [ R t ]=K [ R RO ] , donde las matricesK , R , OK, R, OK , R , O representan la matriz de referencia interna de la cámara, la matriz de rotación y las coordenadas del centro óptico de la cámara, respectivamente.

El método de corrección de Fusiello redefine la matriz de rotación R n R_n girando la cámara ①Rn, de modo que el nuevo plano de la imagen sea paralelo a la línea base de la cámara. ② Redefine el parámetro interno del plano de la imagen K n K_nkn, para que las cámaras duales tengan los mismos parámetros internos, asegurando que los planos de imagen izquierdo y derecho sean coplanares. (aquí el subíndice " n _nn"Tome el significado de "nuevo", el mismo a continuación.)

inserte la descripción de la imagen aquí
Como se muestra en la figura anterior, el sistema de coordenadas de la imagen uueje u y línea baseO 1 O 2 O_1O_2O1O2Paralelamente, la distancia focal ff correspondiente a las imágenes izquierda y derechaf es igual a las coordenadas del punto principal.

1. Cálculo de la matriz de transformación

1) Calcular la matriz de rotación R n R_nRn

La esencia de rotar la cámara para que los planos de imagen izquierdo y derecho sean paralelos entre sí y la línea base de la cámara es redefinir el sistema de coordenadas de la cámara. El nuevo sistema de coordenadas definido por el método Fusiello es el siguiente:

(1) Para garantizar que el plano de la imagen sea paralelo a la línea base de la cámara, el eje X del nuevo sistema de coordenadas de la cámara debe ser paralelo a la línea base, es decir, XXEl vector base del eje X es el siguiente:
rx = ( O 1 − O 2 ) / ∣ ∣ O 1 − O 2 ∣ ∣ r_x=(O_1-O_2)/||O_1-O_2||rx=( O1O2) / ∣∣O1O2∣∣
(2) Para mantener el rango de imagen corregido lo más consistente posible con el rango de imagen original, el eje Y del nuevo sistema de coordenadas de la cámara adopta elYYLa dirección cercana al eje Y , es decir, YYEl vector base del eje Y es el siguiente:
ry = RZ × rx r_y=R_Z \times r_xrtu=RZ×rx

R z R_zRzZZ que representa el sistema de coordenadas de la cámara lejanaeje Z.
(3) El eje Z del nuevo sistema de coordenadas de la cámara yXXX 轴、 Y Y El eje Y es ortogonal, es decir,ZZEl vector base del eje Z es el siguiente:
rz = rx × ry r_z=r_x \times r_yrz=rx×rtu
(4) Obtenga la matriz de rotación final R n R_n de acuerdo con los tres vectores base del nuevo sistema de coordenadas de la cámaraRn

R n = [ rx T ry T rz T ] R_n=\begin{bmatrix} r_x^T \\r_y^T\\r_z^T \end{bmatrix}Rn= rXTryTrzT

2) Calcular la matriz de referencia interna K n K_nkn

Después de obtener la matriz de rotación, los planos de imagen izquierdo y derecho se pueden girar en consecuencia. Los planos de imagen girados son paralelos entre sí y la línea de base, pero la diferencia en la distancia focal de la cámara hará que los dos planos sean no coplanar Por lo tanto, es necesario unificar los parámetros de la cámara, es decir, unificar el cálculo La nueva matriz de parámetros internos K n K_nkn. Para garantizar que la nueva matriz de referencia interna sea lo más consistente posible con la matriz de referencia interna original, la nueva matriz de referencia interna utiliza el número promedio de la matriz de referencia interna original de las imágenes izquierda y derecha, y establece el factor de inclinación a 0, a saber:

K norte = ( K l + K r ) / 2 K_n=(K_l+K_r)/2kn=( Kyo+kr) /2
calculará elR n R_nRny K n K_nknCombinando para obtener la nueva matriz de proyección después de la corrección de la línea epipolar:
M n = K n [ R n ∣ − R n O ] M_n=K_n[R_n|-R_nO]METROn=kn[ RnRnO ]

3) Calcular la matriz de transformación TTT

El siguiente paso es el proceso de corrección, utilizando la matriz de transformación TTT para expresar la relación de transformación entre las coordenadas de píxeles de la imagen de un determinado píxel antes y después de la corrección epipolar, que se puede calcular de acuerdo con la matriz de proyecciónMMM yM n M_nMETROnCalculado, el método específico es el siguiente: Suponiendo un punto PP
en el espacioP , la expresión de este punto bajo las matrices de proyección nueva y antigua es:
{ λ p = MP = [ Q ∣ − QO ] P λ npn = M n P = [ Q n ∣ − Q n O ] PQ = KPQ n = K n R n \begin{casos} \lambda p=MP=[Q|-QO]P\\ \lambda_n p_n=M_nP=[Q_n|-Q_nO]P \\ Q=KP\\ Q_n=K_nR_n \\ \ fin {casos} pag_ _=parlamentario=[ Q QO ] Pyonpagn=METROnPAG=[ PnqnO ] Pq=kp _qn=knRn

Entre ellos, PPP representa el puntoPPExpresión coordinada homogénea de P , pn p_npagny ppp representa el puntoPPP se proyecta en las coordenadas homogéneas bajo los planos de imagen antiguo y nuevo. Dado que esta ecuación es una ecuación homogénea, el coeficienteλ \lambdaλ y λn \lambda_nyonAmbos se establecen en 1, y la fórmula anterior se puede expandir para obtener:
{ p = Q ( P − O ) pn = Q n ( P − O ) \begin{cases} p=Q(PO)\\ p_n=Q_n (PO) \\ \end{casos}{ pag=q ( pagO )pagn=qn( PAGO )
Según las coordenadas de la imagen antigua ppp y la matriz de transformaciónTTT calcula las coordenadas de la nueva imagenpn p_npagnLa fórmula para es: pn = T p p_n= Tppagn=Tp,即Q n ( P − O ) = TQ ( P − O ) Q_n(PO)= TQ(PO)qn( PAGO )=TQ ( PO ) , por lo que se puede obtenerTTT
T = Q n Q − 1 T=Q_nQ^{-1}T=qnq−1
La matriz de transformación representa la relación de transformación entre el mismo píxel antes y después de la corrección epipolar.De acuerdo con las coordenadas de píxel de la imagen y la matriz de transformación de un determinado píxel en la imagen original, se puede calcular y obtener su píxel de imagen correspondiente en la imagen epipolar .
Para dos cámaras, las respectivas matrices de transformaciónT 1 , T 2 T_1, T_2T1T2

2. Generación de imágenes epipolares

Calcular la matriz de conversión TTDespués de T , se puede obtener un cierto punto de píxelppLa relación de coordenadas de la imagen antes y después de la corrección de la línea epipolar p
es: λ p = λ [ xy 1 ] = T − 1 [ xnyn 1 ] = T − 1 pn \lambda p=\lambda \begin{bmatrix} x\\y\ \ 1 \end{bmatriz}=T^{-1} \begin{bmatriz} x_n\\y_n\\1 \end{bmatriz}=T^{-1}p_npag_ _=yo Xy1 =T1 Xnyn1 =T- 1 pagn

Los pasos específicos para generar la imagen epipolar final son los siguientes: primero cree una nueva imagen, el tamaño de la imagen es consistente con la imagen original, atraviese cada píxel en la nueva imagen, calcule sus coordenadas de píxel correspondientes en la imagen original de acuerdo con lo anterior fórmula y use el valor de gris del píxel para asignarlo. Dado que las coordenadas no son necesariamente números enteros, se requiere la interpolación en escala de grises (interpolación bilineal de uso común). Si la imagen es una imagen multibanda (canal), basta con interpolar cada banda (canal) por separado.

inserte la descripción de la imagen aquí

2. Visión binocular

He aquí una breve introducción a la visión binocular. La visión binocular es un método para simular el principio de la visión humana y usar una computadora para percibir pasivamente la distancia. Observe un objeto desde dos o más puntos, obtenga imágenes bajo diferentes ángulos de visión y calcule el desplazamiento entre píxeles de acuerdo con la relación de coincidencia entre los píxeles de las imágenes para obtener la información tridimensional del objeto.
inserte la descripción de la imagen aquí

Los pasos para usar la visión binocular (cámara) para la reconstrucción 3D (profundidad estimada) son los siguientes:

  1. doble gol
  2. calibración binocular
  3. emparejamiento binocular

El propósito de la calibración de doble objetivo es obtener los parámetros internos (longitud focal, centro de la imagen, coeficiente de distorsión, etc.) y los parámetros externos (matriz R (rotación) matriz T (traslación) de las dos cámaras. El contenido relacionado con la calibración tiene Se ha aprendido en el artículo anterior Preste atención a la cámara dual Durante la calibración, los parámetros extrínsecos de una cámara (generalmente la cámara derecha) son relativos a la otra cámara (cámara izquierda).

La corrección binocular es la corrección de la distorsión más la corrección epipolar (la corrección de la distorsión antes de la corrección epipolar).

La coincidencia binocular (coincidencia estéreo) es la parte central de la estimación de profundidad binocular, que consiste en hacer coincidir los puntos correspondientes en las imágenes de la cámara izquierda y derecha para calcular la disparidad. Después de obtener el mapa de disparidad, puede usar los parámetros externos obtenidos por la calibración de la cámara. para convertir el valor de disparidad en el valor de profundidad, a fin de obtener la información de la nube de puntos de la escena de destino para la reconstrucción tridimensional de la escena (esta parte tiene mucho contenido, aprenderá más adelante).


Referencias:
[1] Visión estereoscópica: Algoritmos y aplicaciones
[2] Li Shenghao. Investigación y aplicación del método de coincidencia densa semi-global para imágenes basadas en restricciones SURF [D]. Universidad de Minería y Tecnología de China, 2022 [3]
Visión estereoscópica guía de entrada (6): Sí Restricciones de nivel y corrección epipolar del método Fusiello
[4] Rectificación epipolar

Supongo que te gusta

Origin blog.csdn.net/m0_50910915/article/details/131266334
Recomendado
Clasificación