[Visão Estéreo (3)] Princípios do Método de Calibração Zhang Zhengyou

Esta é uma nota de estudo pessoal. Peguei emprestado muitas fotos e artigos bons (as referências estão no final do artigo), principalmente para classificar o conhecimento relevante a fim de formar meu próprio sistema. A expressão de texto é reunida e a fórmula simbólica é inserida manualmente. Por favor, indique se houver algum erro.

1. Calibração da câmera

A chamada calibração (calibração) é o processo de ajuste de um modelo de parâmetro por um grande número de observações, e o modelo de parâmetro aqui ajustado é conhecido, por isso é necessário explorar um esquema que possa facilmente obter um grande número de observações como tanto quanto possível. É mais útil resolver o valor do parâmetro único específico se ele também satisfizer algumas outras restrições geométricas.
Calibração da câmera, o objetivo é determinar a matriz de parâmetros internos KK da câmeraK , matriz de parâmetro externoR , TR, TR , T e coeficientes de distorçãok 1 , k 2 , k 3 , p 1 , p 2 k_1,k_2,k_3,p_1,p_2k1,k2,k3,p1,p2

O método de calibração de Zhang fornece uma solução conveniente para obter um grande número de observações e, ao mesmo tempo, as observações também atendem a um tipo de restrições geométricas óbvias (ou seja, restrições planas), que podem resolver diretamente os parâmetros internos e externos. Seu método de operação é muito simples. Você só precisa fotografar o avião com o padrão da placa de calibração para concluir a calibração da câmera, o que reduz bastante a dificuldade de calibração. Se você não busca alta precisão, imprima um padrão de placa de calibração quadriculado e cole-o em uma superfície dura aproximadamente plana. A calibração pode ser concluída em papelão, o que acelera a introdução e popularização da visão estéreo e tem influência de longo alcance. É um clássico absoluto no campo da calibração de câmeras.
Deixando de lado o coeficiente de distorção por enquanto, as coordenadas de imagem conhecidas ppp e coordenadas mundiaisP w P_wPwEstabeleça uma relação de projeção entre parâmetros internos e externos (matriz de projeção):

λ p = K [ R 3 × 3 T 3 × 1 ] [ P w 1 ] = M [ P w 1 ] \lambda {p}=K \begin{bmatriz} {R_{3\times3}}&{T_{ 3\times1}}\\ \end{bmatrix} \begin{bmatrix} {P_w}\\ {1}\\ \end{bmatrix}=M\begin{bmatrix} {P_w}\\ {1}\\ \ fim{bmatriz}p_ _=k[R3 × 3T3 × 1][Pw1]=M[Pw1]

para ri r_ireuDenota a matriz de rotação RRR 'siicoluna i e usettt em vez deT 3 × 1 T_{3\times1}T3 × 1, assumindo que o plano do modelo está no sistema de coordenadas mundial W = 0 W=0C=No plano 0 (símbolos unificados, o sistema de coordenadas mundiais aquié consistentea expressão anteriorP w ( U , V , W ) P_w(U,V,W)Pw( U ,V ,W ) ), então

λ p = K [ r 1 r 2 r 3 t ] [ UV 0 1 ] = K [ r 1 r 2 t ] [ UV 1 ] \lambda {p}=K \begin{bmatrix} r_1&r_2&r_3&t\\ \end{bmatrix } \begin{bmatrix} U\\V\\0\\1 \end{bmatrix}= K \begin{bmatrix} r_1&r_2&t\\ \end{bmatrix} \begin{bmatrix} U\\V\\1 \end {bmatriz}p_ _=k[r1r2r3t] vocêV01 =k[r1r2t] vocêV1

Como mencionado anteriormente , os pontos no plano de coordenadas mundiais estão relacionados a pontos em sua imagem por meio de uma matriz de homografia:

λ p = HP \ lambda {p}=HPp_ _=H P
equação,p = [ u , v , 1 ] T p=[u,v,1]^Tp=[ você ,v ,1 ]TP = [U, V, 1] P=[U,V,1]P=[ U ,V ,1 ]H = R [ r 1 , , r 2 , t ] H=R[r_1,,r_2,t]H=R [ r1,,r2,t ] é3 × 3 3\vezes 33×3 matriz. ainda usooi h_iheupara representar HHiiem Hcoluna i . ter

[ h 1 , h 2 , h 3 ] = Λ K [ r 1 , r 2 , t ] [h_1,h_2,h_3]=\Lambda K[r_1,r_2,t][ h1,h2,h3]=Λ K [ r1,r2,t ]
ondeΛ \LambdaΛ é qualquer escalar (Λ \LambdaA existência de Λ é devido à invariância de escala de coordenadas homogêneas, também pode ser considerado igual a 1, deixe-o ser 1 aqui e ignore-o depois). r 1 r_1r1e r 2 r_2r2é a matriz de rotação RROs componentes da coluna de R , que são um par de bases ortonormais. satisfazr 1 T r 2 = 0 , r 1 T r 1 = r 2 T r 2 = 1 r_1^Tr_2=0,r_1^Tr_1=r_2^Tr_2=1r1Tr2=0 ,r1Tr1=r2Tr2=1 . Entre em contato com a fórmula acima:
r 1 = K − 1 h 1 r 2 = K − 1 h 2 r_1=K^{-1}h_1\\r_2=K^{-1}h_2r1=k1h _1r2=k1h _2
Assim:
h 1 TK − TK − 1 h 2 = 0 h_1^TK^{-T}K^{-1}h_2=0h1TkT K1h _2=0 h 1 TK − TK − 1 h 1 = h 2 TK − TK − 1 h 2 h_1^TK^{-T}K^{-1}h_1=h_2^TK^{-T}K^{-1} h_2h1TkT K1h _1=h2TkT K1h _2

Pode-se ver que a matriz de homografia HHH e matriz de referência internaKKOs elementos de K satisfazem duas restrições de equação linear. A homografia tem 8 graus de liberdade e com 6 extrínsecos (3 para rotação e 3 para translação), podemos obter apenas 2 restrições nos intrínsecos.

2. Solução de parâmetros

De acordo com a estrutura do trabalho, parte-se da solução analítica, segue-se para a técnica de otimização não linear baseada no critério de máxima verossimilhança e, por fim, considera-se a distorção da câmera.

1) Solução fechada

Da mesma forma, substitua a parte do meio da equação acima por uma matriz simples (uma operação comum), seja
B = K − TK − 1 = [ B 11 B 12 B 13 B 12 B 22 B 23 B 13 B 23 B 33 ] B =K ^{-T}K^{-1}=\begin{bmatriz} B_{11}&B_{12}&B_{13}\\B_{12}&B_{22}&B_{23}\\B_{13 }&B_ {23}&B_{33}\\ \end{bmatrix}B=kT K1= B11B12B13B12B22B23B13B23B33
具体地:
B = [ 1 fx 2 − sfx 2 fyv 0 s − u 0 fyfx 2 fy − sfx 2 fys 2 fx 2 fy 2 + 1 fy 2 − s ( v 0 s − u 0 fyfx 2 fy 2 ) − v 0 fy 2 v 0 s − u 0 fyfx 2 fy − s ( v 0 s − u 0 fy ) fx 2 fy 2 − v 0 fy 2 ( v 0 s − u 0 fy ) 2 fx 2 fy 2 + v 0 2 fy 2 + 1 ] B=\begin{bmatrix} \Large \frac{1}{f_x^2} & \Large -\frac{s}{f_x^2f_y} & \Large \frac{v_0s-u_0f_y}{f_x ^2f_y}\\ \Grande-\frac{s}{f_x^2f_y} &\Grande \frac{s^2}{f_x^2f_y^2}+\frac{1}{f_y^2} &\Grande - \frac{s(v_0s-u_0f_y}{f_x^2f_y^2)} -\frac{v_0}{f_y^2}\\ \Grande \frac{v_0s-u_0f_y}{f_x^2f_y} & \Grande -\frac {s(v_0s-u_0f_y)}{f_x^2f_y^2} -\frac{v_0}{f_y^2}& \Large\frac{(v_0s-u_0f_y)^2}{f_x^2f_y^2} +\frac {v_0^2}{f_y^2}+1\\ \end{bmatriz}B= fx21fx2fvocêsfx2fvocêv0s - u0fvocêfx2fvocêsfx2fy2s2+fy21fx2fy2s ( v0s - u0fvocê)fy2v0fx2fvocêv0s - u0fvocêfx2fy2)s ( v0s - u0fvocêfy2v0fx2fy2( v0s - u0fvocê)2+fy2v02+1

HH foi definido acimaH 'siii vetores coluna sãohi = [ hi 1 , hi 2 , hi 3 ] Th_i=[h_{i1},h_{i2},h_{i3}]^Theu=[ heu 1,heu 2,he 3]T。则有
hi TB hj = [ hi 1 hi 2 hi 3 ] [ B 11 B 12 B 13 B 12 B 22 B 23 B 13 B 23 B 33 ] [ hj 1 hj 2 hj 3 ] = [ hi 1 B 11 + oi 2 B 12 + oi 3 B 13 oi 1 B 12 + oi 2 B 22 + oi 3 B 23 oi 1 B 13 + oi 2 B 23 + oi 3 B 33 ] [ hj 1 hj 2 hj 3 ] h_i^TBh_j =\begin{bmatrix}h_{i1}&h_{i2}&h_{i3}\end{bmatrix} \begin{bmatrix} B_{11}&B_{12}&B_{13}\\B_{12}&B_{22} &B_{23}\\B_{13}&B_{23}&B_{33}\\ \end{bmatriz} \begin{bmatriz}h_{j1}\\h_{j2}\\h_{j3}\end{bmatriz } \\=\begin{bmatrix}h_{i1}B_{11}+h_{i2}B_{12}+h_{i3}B_{13}&h_{i1}B_{12}+h_{i2}B_{ 22}+h_{i3}B_{23}&h_{i1}B_{13}+h_{i2}B_{23}+h_{i3}B_{33}\end{bmatrix}\begin{bmatrix}h_{j1 }\\h_{j2}\\h_{j3}\end{bmatriz}heuTB hj=[heu 1heu 2he 3] B11B12B13B12B22B23B13B23B33 hj 1hj 2hj3_ _ =[heu 1B11+heu 2B12+he 3B13heu 1B12+heu 2B22+he 3B23heu 1B13+heu 2B23+he 3B33] hj 1hj 2hj3_ _ = hi 1 hj 1 B 11 + hi 2 hj 1 B 12 + hi 3 hj 1 B 13 + hi 1 hj 2 B 12 + hi 2 hj 2 B 22 + hi 3 hj 2 B 23 + hi 1 hj 3 B 13 + oi 2 hj 3 B 23 + oi 3 hj 3 B 33 =h_{i1}h_{j1}B_{11}+h_{i2}h_{j1}B_{12}+h_{i3}h_{j1}B_{ 13}+h_{i1}h_{j2}B_{12}+h_{i2}h_{j2}B_{22}+h_{i3}h_{j2}B_{23}+h_{i1}h_{j3} B_{13}+h_{i2}h_{j3}B_{23}+h_{i3}h_{j3}B_{33}=heu 1hj 1B11+heu 2hj 1B12+he 3hj 1B13+heu 1hj 2B12+heu 2hj 2B22+he 3hj 2B23+heu 1hj3_ _B13+heu 2hj3_ _B23+he 3hj3_ _B33 = [ hi 1 hj 1 hi 1 hj 2 + hi 2 hj 1 hi 2 hj 2 hi 3 hj 1 + hi 1 hj 3 hi 3 hj 2 + hi 2 hj 3 hi 3 hj 3 ] [ B 11 B 12 B 22 B 13 B 23 B 33 ] =\begin{bmatriz}h_{i1}h_{j1}&h_{i1}h_{j2}+h_{i2}h_{j1}&h_{i2}h_{j2}&h_{i3}h_ {j1}+h_{i1}h_{j3}&h_{i3}h_{j2}+h_{i2}h_{j3}&h_{i3}h_{j3}\end{bmatrix}\begin{bmatrix}B_{11 }\\B_{12} \\B_{22}\\B_{13} \\B_{23} \\B_{33}\end{bmatriz}=[heu 1hj 1heu 1hj 2+heu 2hj 1heu 2hj 2he 3hj 1+heu 1hj3_ _he 3hj 2+heu 2hj3_ _he 3hj3_ _] B11B12B22B13B23B33

fazer

b = [ B 11 , B 12 , B 22 , B 13 , B 23 , B 33 ] T b=[B_{11} ,B_{12} ,B_{22},B_{13} ,B_{23} , B_{33}]^Tb=[ B11,B12,B22,B13,B23,B33]T vij = [ hi 1 hj 1 , hi 1 hj 2 + hi 2 hj 1 , hi 2 hj 2 , hi 3 hj 1 + hi 1 hj 3 , hi 3 hj 2 + hi 2 hj 3 , hi 3 hj 3 ] T v_{ij}=[h_{i1}h_{j1},h_{i1}h_{j2}+h_{i2}h_{j1},h_{i2}h_{j2},h_{i3}h_{j1} +h_{i1}h_{j3},h_{i3}h_{j2}+h_{i2}h_{j3},h_{i3}h_{j3}]^Tveu=[ heu 1hj 1,heu 1hj 2+heu 2hj 1,heu 2hj 2,he 3hj 1+heu 1hj3_ _,he 3hj 2+heu 2hj3_ _,he 3hj3_ _]T
则有:
hi TB hj = vij T b h_i^TBh_j=v_{ij}^TbheuTB hj=veu jTb

(Observação: o artigo original forneceu diretamente a fórmula acima e fiquei surpreso ao descobrir que essa fórmula não é derivada, mas um coeficiente que é calculado primeiro e depois extraído, então aqui escolho calculá-lo novamente, o que é útil para compreensão.)

oi TB hj = vij T b h_i^TBh_j=v_{ij}^TbheuTB hj=veu jTb
e, em seguida, contate a matriz de homografia acimaHHH e matriz de referência internaKKOs elementos de K satisfazem duas restrições de equação linear, e há

[ v 11 T ( v 11 − v 22 ) T ] b = 0 \begin{bmatriz}v_{11}^T\\(v_{11}-v_{22})^T\end{bmatriz}b=0[v11T( v11v22)T]b=0
Depois que a câmera dispara o padrão da placa de calibração em uma pose, depois de extrair as coordenadas de pixel dos pontos de canto, a relação correspondente entre o sistema de coordenadas mundial e o sistema de coordenadas de pixel de todos os pontos de canto pode ser obtida e, em seguida, através dos mínimos quadrados solução das equações lineares Resolva a matriz de homografia HHH , pode obter a fórmula acima. Mas tem apenas duas linhas, usadas para resolver obbO vetor b requer pelo menos 3 matrizes de homografia, ou seja, pelo menos 3 fotos são necessárias para completar a calibração da câmera. A equação total pode ser expressa como:
V b = 0 Vb=0Vb=0

  • Se o número de fotos for n ≥ 3 n≥3n3 , geralmente pode obterbbUma solução única para b (devido à equivalência de escala, obbQualquer múltiplo de b ainda é a solução correta).
  • Se o número de fotos é n = 2 n = 2n=2 , você pode impor restrições imparciaiss = 0 s=0s=0 , coloque[ 0 , 1 , 0 , 0 , 0 , 0 ] b [0,1,0,0,0,0]b[ 0 ,1 ,0 ,0 ,0 ,0 ] b é adicionado à equação acima como uma equação adicional.
  • Se o número de fotos é n = 2 n = 2n=2 , pode-se supor queu , v 0 , s u_, v_0, svocêv0, s são conhecidos (por exemplo, são todos 0) efx, fy f_x, f_yfxfvocêResolva isso.

Resolva para bbApós b , todos os parâmetros intrínsecos da câmera podem ser calculados da seguinte forma (já que porbbA matriz BBcomposta por bB não satisfaz estritamenteB = K − TK − 1 B=K^{-T}K^{-1}B=kT K1 , mas há um fator de escala arbitrárioλ \lambdaλ (novamente) satisfazB = λ K − TK − 1 B=\lambda K^{-T}K^{-1}B=λ KT K1):

v 0 = B 12 B 13 − B 11 B 23 B 11 B 22 − B 22 2 v_0=\frac{B_{12}B_{13}-B_{11}B_{23}}{B_{11}B_{ 22}-B_{22}^2}v0=B11B22B222B12B13B11B23
λ = B 33 − B 13 2 + v 0 ( B 12 B 13 − B 11 B 23 ) B 11 \lambda =B_{33}-\frac{B_{13}^2+v_0(B_{12}B_{ 13}-B_{11}B_{23})}{B_{11}}eu=B33B11B132+v0( B12B13B11B23)
fx = λ B 11 f_x=\sqrt{\frac{\lambda }{B_{11}}}fx=B11eu
fy = λ B 11 B 11 B 22 − B 22 2 f_y=\sqrt{\frac{\lambda B_{11}}{B_{11}B_{22}-B_{22}^2}}fvocê=B11B22B222λB _11

s = − B 12 fx 2 fy λ s=-\frac{B_{12}f_x^2f_y}{\lambda}s=euB12fx2fvocê
u 0 = sv 0 fx − B 13 fx 2 λ u_0=\frac{sv_0}{f_x}-\frac{B_{13}f_x^2}{\lambda}você0=fxs v0euB13fx2

Quando a matriz de parâmetros internos KKDepois que K é resolvido, a matriz de parâmetros externos R, TR, Tde cada poseR , T pode ser ainda obtido:
r 1 = λ K − 1 h 1 r 2 = λ K − 1 h 2 r 3 = r 1 × r 2 t = λ K − 1 h 3 r_1=\lambda K^{- 1}h_1\\ r_2=\lambda K^{-1}h_2\\ r_3=r_1 \times r_2\\ t=\lambda K^{-1}h_3r1=λ K1h _1r2=λ K1h _2r3=r1×r2t=λ K1h _3
onde, λ = 1 ∣ ∣ K − 1 h 1 ∣ ∣ = 1 ∣ ∣ K − 1 h 2 ∣ ∣ \lambda=\frac{1}{|| K^{-1}h_1 ||}=\frac{ 1}{|| K^{-1}h_2 ||}eu=∣∣ K1h _1∣∣1=∣∣ K1h _2∣∣1. Devido à presença de ruído nos dados, a matriz calculada RRR geralmente não satisfaz a natureza da matriz de rotação, e a matriz de rotação ótima pode ser obtida pela decomposição de valor singular.

2) Solução de máxima verossimilhança

A solução acima é obtida minimizando uma distância algébrica que não tem significado físico. Devido à existência de ruído, a solução não será muito precisa. Podemos obter uma solução mais precisa por meio da estimativa de máxima verossimilhança. nn
para um determinado plano de placa de calibraçãon imagens commmm pontos. Assume-se que o ruído dos pontos da imagem é independente e identicamente distribuído. A estimativa de máxima verossimilhança pode ser obtida minimizando a seguinte função:

∑ i = 1 n ∑ j = 1 m ∣ ∣ pij − p ^ ( K , R i , ti , P j ) ∣ ∣ 2 \sum\limits_{i=1}^{n}\sum\limits_{j= 1}^{m}||p_{ij}-\hat p(K,R_i,t_i,P_j)||^2eu = 1nj = 1m∣∣ peup^( K ,Reu,teu,Pj) 2

其中p ^ ( K , R i , ti , P j ) \hat p(K,R_i,t_i,P_j)p^( K ,Reu,teu,Pj) é o ponto espacialP j P_jPjna imagem iiPonto de projeção em i . Matriz de rotaçãoRRR pode ser composto de três vetoresrrr significa querr é paralelo ao eixo de rotação e sua magnitude (comprimento do modo) é igual ao ângulo de rotação. RRR errr através da fórmula de Rodrigues (Rodrigues) ligada. A minimização da fórmula acima é um problema de minimização não linear, que pode ser resolvido pelo algoritmo de Levenberg-Marquardt. Esse tipo de problema requer um valor inicial mais preciso, e a solução fechada mencionada acima pode ser usada como valor inicial.

3) Considere a distorção da câmera

Como mencionado acima , três parâmetros de distorção radial k 1 , k 2 , k 3 k_1, k_2, k_3 são geralmente considerados durante a correção da distorçãok1k2k3e dois parâmetros de distorção tangencial p 1 , p 2 p_1, p_2p1p2, na calibração de Zhang, apenas dois parâmetros de distorção radial k 1 , k 2 k_1, k_2 são consideradosk1k2. Mais termos serão considerados na aplicação prática, o princípio é o mesmo.
Coordenadas precisas e não distorcidas não podem ser calculadas quando os parâmetros internos e externos são desconhecidos (as observações estão sempre em erro), mas os parâmetros de distorção não são considerados ao estimar os parâmetros internos e externos (mordendo a cauda). Não importa, a teoria do conceito entrará em ação: use os parâmetros internos e externos obtidos pela solução fechada como valor inicial, encontre as coordenadas ideais aproximadas e, em seguida, estabeleça um sistema de equações lineares de acordo com a fórmula de correção de distorção para resolver o k 1 aproximado, k 2 k_1, k_2k1k2Como um valor inicial para a seguinte estimativa de máxima verossimilhança:
∑ i = 1 n ∑ j = 1 m ∣ ∣ pij − p ^ ( K , k 1 , k 2 , R i , ti , P j ) ∣ ∣ 2 \sum\ limites_{i=1}^{n}\sum\limits_{j=1}^{m}||p_{ij}-\hat p(K,k_1,k_2,R_i,t_i,P_j)||^2eu = 1nj = 1m∣∣ peup^( K ,k1,k2,Reu,teu,Pj) 2
Resolva todos os parâmetros internos e externos e coeficientes de distorção pelo método de solução não linear.
De fato, como o valor do coeficiente de distorção é muito pequeno, também é possível definir diretamente todos os valores iniciais do coeficiente de distorção como 0, o que não precisa resolver o sistema de equações lineares.

3. Processo experimental

Resuma o processo de calibração de Zhang:

  1. Imprima o padrão de calibração e cole-o em uma superfície plana, chamada placa de calibração.
  2. Tire várias imagens do quadro de calibração em diferentes poses movendo a câmera ou movendo o quadro de calibração (número de imagens >=3).
  3. Detecte pontos característicos (pontos de canto ou pontos centrais do círculo) em todas as imagens.
  4. Resolva todos os parâmetros intrínsecos e extrínsecos usando o método de solução fechada.
  5. Calcule parâmetros internos e externos precisos e coeficientes de distorção por meio de otimização não linear (o valor inicial do coeficiente de distorção pode ser resolvido pelas equações lineares de correção de distorção ou diretamente atribuído a 0).

insira a descrição da imagem aqui

Placa de calibração usada no papel

insira a descrição da imagem aqui

Outros tipos de placas de calibração

É superficial no papel e vou considerar começar e praticar mais tarde.


Referência:
[1] Zhang Z. Uma nova técnica flexível para calibração de câmeras [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11):1330-1334. [2] Stereo Vision Getting Started Guide (
3 ) : Método de calibração estilo Zhang para calibração de câmera
[3] Padrões de calibração explicados

Acho que você gosta

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