【三维重建】捆绑调整

2024-05-04 18:28
文章标签 调整 三维重建 捆绑

本文主要是介绍【三维重建】捆绑调整,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

捆绑调整的目的是通过重构的点计算重投影误差,利用最优化方法是重投影误差最小。这是一个典型的非线性最小二乘问题,利用高斯-牛顿法进行优化(高斯-牛顿法原理参考https://blog.csdn.net/holle_world_ldx/article/details/138225785)

在这里插入图片描述

求雅可比矩阵

一、相机投影过程

1、世界坐标系到相机坐标系的变换

[ x c y c z c ] = R X + t = [ r 0 r 1 r 2 r 3 r 4 r 5 r 6 r 7 r 8 ] [ X Y Z ] + [ t 0 t 1 t 2 ] \begin{bmatrix} x_c\\ y_c\\ z_c \end{bmatrix}=RX+t=\begin{bmatrix}r_0 & r_1 &r_2 \\ r_3 & r_4 & r_5 \\ r_6 &r_7 &r_8 \end{bmatrix} \begin{bmatrix}X\\Y\\Z \end{bmatrix}+\begin{bmatrix}t_0\\t_1\\t_2\end{bmatrix} xcyczc =RX+t= r0r3r6r1r4r7r2r5r8 XYZ + t0t1t2

2、归一化像平面

x c = r 0 X + r 1 Y + r 2 Z + t 0 y c = r 3 X + r 4 Y + r 5 Z + t 1 z c = r 6 X + r 7 Y + r 8 Z + t 2 [ x y ] = [ x c z c y c z c ] \begin{aligned} &x_c = r_0X +r_1Y+r_2Z +t_0 \\ &y_c = r_3X +r_4Y+r_5Z +t_1 \\ &z_c = r_6X +r_7Y+r_8Z +t_2 \\ &\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix} \frac{x_c}{z_c}\\\frac{y_c}{z_c}\end{bmatrix} \end{aligned} xc=r0X+r1Y+r2Z+t0yc=r3X+r4Y+r5Z+t1zc=r6X+r7Y+r8Z+t2[xy]=[zcxczcyc]

3、相机成像平面

[ u v ] = [ f d ( k 0 , k 1 , r 2 ) x f d ( k 0 , k 1 , r 2 ) y ] , d ( k 0 , k 1 , r 2 ) = 1 + ( k 0 + k 1 r 2 ) r 2 , r 2 = x 2 + y 2 \begin{bmatrix}u\\v\end{bmatrix}=\begin{bmatrix} fd(k_0,k_1,r^2)x \\fd(k_0,k_1,r^2)y\end{bmatrix}, \ d(k_0,k_1,r^2)=1+(k_0+k_1r^2)r^2,\ r^2=x^2+y^2 [uv]=[fd(k0,k1,r2)xfd(k0,k1,r2)y], d(k0,k1,r2)=1+(k0+k1r2)r2, r2=x2+y2

二、Jacobian矩阵推导

1、计算焦距的偏导数 ∂ u ∂ f , ∂ v ∂ f \frac{\partial u}{\partial f},\frac{\partial v}{\partial f} fu,fv

∂ u ∂ f = d ( k 0 , k 1 , r 2 ) x ∂ v ∂ f = d ( k 0 , k 1 , r 2 ) y \begin{aligned} \frac{\partial u}{\partial f}=d(k_0,k_1,r^2)x \\ \frac{\partial v}{\partial f}=d(k_0,k_1,r^2)y \end{aligned} fu=d(k0,k1,r2)xfv=d(k0,k1,r2)y

2、计算径向畸变系数 ∂ u ∂ k 0 , ∂ u ∂ k 1 , ∂ v ∂ k 0 , ∂ v ∂ k 1 \frac{\partial u}{\partial k_0},\frac{\partial u}{\partial k_1},\frac{\partial v}{\partial k_0},\frac{\partial v}{\partial k_1} k0u,k1u,k0v,k1v

引入中间变量:
∂ u ∂ d ( k 0 , k 1 , r 2 ) = f x ∂ v ∂ d ( k 0 , k 1 , r 2 ) = f y ∂ d ( k 0 , k 1 , r 2 ) ∂ d ( k 0 ) = r 2 ∂ d ( k 0 , k 1 , r 2 ) ∂ d ( k 1 ) = r 4 \begin{aligned} \frac{\partial u}{\partial d(k_0,k_1,r^2)} = fx \\ \frac{\partial v}{\partial d(k_0,k_1,r^2)} = fy \\ \frac{\partial d(k_0,k_1,r^2)}{\partial d(k_0)} = r^2 \\ \frac{\partial d(k_0,k_1,r^2)}{\partial d(k_1)} = r^4 \end{aligned} d(k0,k1,r2)u=fxd(k0,k1,r2)v=fyd(k0)d(k0,k1,r2)=r2d(k1)d(k0,k1,r2)=r4
根据链式法则:
∂ u ∂ k 0 = ∂ u ∂ d ( k 0 , k 1 , r 2 ) ∂ d ( k 0 , k 1 , r 2 ) k 0 = f x r 2 ∂ u ∂ k 1 = ∂ u ∂ d ( k 0 , k 1 , r 2 ) ∂ d ( k 0 , k 1 , r 2 ) k 1 = f x r 4 ∂ v ∂ k 0 = ∂ v ∂ d ( k 0 , k 1 , r 2 ) ∂ d ( k 0 , k 1 , r 2 ) k 0 = f y r 2 ∂ v ∂ k 1 = ∂ v ∂ d ( k 0 , k 1 , r 2 ) ∂ d ( k 0 , k 1 , r 2 ) k 1 = f y r 4 \begin{aligned} \frac{\partial u}{\partial k_0} = \frac{\partial u}{\partial d(k_0,k_1,r^2)} \frac{\partial d(k_0,k_1,r^2)}{k_0}=fxr^2 \\ \frac{\partial u}{\partial k_1} = \frac{\partial u}{\partial d(k_0,k_1,r^2)} \frac{\partial d(k_0,k_1,r^2)}{k_1}=fxr^4 \\ \frac{\partial v}{\partial k_0} = \frac{\partial v}{\partial d(k_0,k_1,r^2)} \frac{\partial d(k_0,k_1,r^2)}{k_0}=fyr^2 \\ \frac{\partial v}{\partial k_1} = \frac{\partial v}{\partial d(k_0,k_1,r^2)} \frac{\partial d(k_0,k_1,r^2)}{k_1}=fyr^4 \\ \end{aligned} k0u=d(k0,k1,r2)uk0d(k0,k1,r2)=fxr2k1u=d(k0,k1,r2)uk1d(k0,k1,r2)=fxr4k0v=d(k0,k1,r2)vk0d(k0,k1,r2)=fyr2k1v=d(k0,k1,r2)vk1d(k0,k1,r2)=fyr4

3、计算关于平移向量的偏导 ∂ u ∂ t 0 , ∂ u ∂ t 1 , ∂ u ∂ t 2 , ∂ v ∂ t 0 , ∂ v ∂ t 1 , ∂ v ∂ t 2 \frac{\partial u}{\partial t_0},\frac{\partial u}{\partial t_1},\frac{\partial u}{\partial t_2},\frac{\partial v}{\partial t_0},\frac{\partial v}{\partial t_1},\frac{\partial v}{\partial t_2} t0u,t1u,t2u,t0v,t1v,t2v

∂ x c ∂ t 0 = 1 , ∂ y c ∂ t 1 = 1 , ∂ z c ∂ t 2 = 1 ∂ x ∂ x c = 1 z c , ∂ y ∂ y c = 1 z c , ∂ x ∂ z c = − x c ( z c ) 2 , ∂ y ∂ z c = − y c ( z c ) 2 ∂ x ∂ t 0 = ∂ x ∂ x c ∂ x c ∂ t 0 , ∂ y ∂ t 1 = ∂ y ∂ y c ∂ y c ∂ t 1 , ∂ x ∂ t 2 = ∂ x ∂ z c ∂ z c ∂ t 2 , ∂ y ∂ t 2 = ∂ y ∂ z c ∂ z c ∂ t 2 ∂ r 2 ∂ x = 2 x , ∂ r 2 ∂ y = 2 y , ∂ r 2 ∂ t 0 = ∂ r 2 ∂ x ∂ x ∂ t 0 , ∂ r 2 ∂ t 1 = ∂ r 2 ∂ y ∂ y ∂ t 1 , ∂ r 2 ∂ t 2 = ∂ r 2 ∂ x ∂ x ∂ t 2 + ∂ r 2 ∂ y ∂ y ∂ t 2 ∂ d ∂ r 2 = k 0 + 2 k 1 r 2 , ∂ d ∂ t 0 = ∂ d ∂ r 2 ∂ r 2 ∂ t 0 , ∂ d ∂ t 1 = ∂ d ∂ r 2 ∂ r 2 ∂ t 1 , ∂ d ∂ t 2 = ∂ d ∂ r 2 ∂ r 2 ∂ t 2 ∂ d ∂ x = ∂ d ∂ r 2 ∂ r 2 ∂ x , ∂ u ∂ x = f d + f x ∂ d ∂ x , ∂ d ∂ y = ∂ d ∂ r 2 ∂ r 2 ∂ y , ∂ v ∂ y = f d + f y ∂ d ∂ y ∂ u ∂ t 0 = ∂ u ∂ d ∂ d ∂ t 0 x + ∂ u ∂ x ∂ x ∂ t 0 d , ∂ u ∂ t 1 = ∂ u ∂ d ∂ d ∂ t 1 x , ∂ u ∂ t 2 = ∂ u ∂ d ∂ d ∂ t 2 x + ∂ u ∂ x ∂ x ∂ t 2 d ∂ v ∂ t 0 = ∂ v ∂ d ∂ d ∂ t 0 y , ∂ v ∂ t 1 = ∂ v ∂ d ∂ d ∂ t 1 y + ∂ v ∂ y ∂ y ∂ t 1 d , ∂ v ∂ t 2 = ∂ v ∂ d ∂ d ∂ t 2 y + ∂ v ∂ y ∂ y ∂ t 2 d \begin{aligned} &\frac{\partial x_c}{\partial t_0}=1 ,{\kern 10pt} \frac{\partial y_c}{\partial t_1}=1 ,{\kern 10pt} \frac{\partial z_c}{\partial t_2}=1 \\ &\frac{\partial x}{\partial x_c}=\frac{1}{z_c} ,{\kern 10pt} \frac{\partial y}{\partial y_c}=\frac{1}{z_c} ,{\kern 10pt}\frac{\partial x}{\partial z_c}=-\frac{x_c}{(z_c)^2},{\kern 10pt} \frac{\partial y}{\partial z_c}=-\frac{y_c}{(z_c)^2} \\ &\frac{\partial x}{\partial t_0} = \frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial t_0},{\kern 10pt}\frac{\partial y}{\partial t_1} = \frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial t_1},{\kern 10pt}\frac{\partial x}{\partial t_2} = \frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial t_2},{\kern 10pt} \frac{\partial y}{\partial t_2} = \frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial t_2} \\ &\frac{\partial r^2}{\partial x} = 2x,{\kern 10pt}\frac{\partial r^2}{\partial y} = 2y,{\kern 10pt} \frac{\partial r^2}{\partial t_0} = \frac{\partial r^2}{\partial x}\frac{\partial x}{\partial t_0},{\kern 10pt}\frac{\partial r^2}{\partial t_1} = \frac{\partial r^2}{\partial y}\frac{\partial y}{\partial t_1},{\kern 10pt}\frac{\partial r^2}{\partial t_2} = \frac{\partial r^2}{\partial x}\frac{\partial x}{\partial t_2} + \frac{\partial r^2}{\partial y}\frac{\partial y}{\partial t_2}\\ &\frac{\partial d}{\partial r^2}=k_0 + 2 k_1r^2,{\kern 10pt}\frac{\partial d}{\partial t_0} = \frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial t_0} ,{\kern 10pt}\frac{\partial d}{\partial t_1} = \frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial t_1} ,{\kern 10pt}\frac{\partial d}{\partial t_2} = \frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial t_2}\\ &\frac{\partial d}{\partial x}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial x} ,{\kern 10pt}\frac{\partial u}{\partial x} = fd+fx\frac{\partial d}{\partial x} ,{\kern 10pt}\frac{\partial d}{\partial y}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial y} ,{\kern 10pt}\frac{\partial v}{\partial y} = fd+fy\frac{\partial d}{\partial y} \\ &\color{red} \frac{\partial u}{\partial t_0} = \frac{\partial u}{\partial d}\frac{\partial d}{\partial t_0}x +\frac{\partial u}{\partial x}\frac{\partial x}{\partial t_0}d ,{\kern 10pt}\frac{\partial u}{\partial t_1} = \frac{\partial u}{\partial d}\frac{\partial d}{\partial t_1}x,{\kern 10pt}\frac{\partial u}{\partial t_2} = \frac{\partial u}{\partial d}\frac{\partial d}{\partial t_2}x +\frac{\partial u}{\partial x}\frac{\partial x}{\partial t_2}d \color{black}\\ &\color{red} \frac{\partial v}{\partial t_0} = \frac{\partial v}{\partial d}\frac{\partial d}{\partial t_0}y ,{\kern 10pt}\frac{\partial v}{\partial t_1} = \frac{\partial v}{\partial d}\frac{\partial d}{\partial t_1}y+\frac{\partial v}{\partial y}\frac{\partial y}{\partial t_1}d,{\kern 10pt}\frac{\partial v}{\partial t_2} = \frac{\partial v}{\partial d}\frac{\partial d}{\partial t_2}y +\frac{\partial v}{\partial y}\frac{\partial y}{\partial t_2}d \color{black} \end{aligned} t0xc=1,t1yc=1,t2zc=1xcx=zc1,ycy=zc1,zcx=(zc)2xc,zcy=(zc)2yct0x=xcxt0xc,t1y=ycyt1yc,t2x=zcxt2zc,t2y=zcyt2zcxr2=2x,yr2=2y,t0r2=xr2t0x,t1r2=yr2t1y,t2r2=xr2t2x+yr2t2yr2d=k0+2k1r2,t0d=r2dt0r2,t1d=r2dt1r2,t2d=r2dt2r2xd=r2dxr2,xu=fd+fxxd,yd=r2dyr2,yv=fd+fyydt0u=dut0dx+xut0xd,t1u=dut1dx,t2u=dut2dx+xut2xdt0v=dvt0dy,t1v=dvt1dy+yvt1yd,t2v=dvt2dy+yvt2yd

4、计算关于旋转向量的偏导 ∂ u ∂ r 0 , ∂ u ∂ r 2 , ∂ u ∂ r 3 , ∂ u ∂ r 4 , ∂ u ∂ r 5 , ∂ u ∂ r 6 , ∂ u ∂ r 7 , ∂ u ∂ r 8 \frac{\partial u}{\partial r_0},\frac{\partial u}{\partial r_2},\frac{\partial u}{\partial r_3},\frac{\partial u}{\partial r_4},\frac{\partial u}{\partial r_5},\frac{\partial u}{\partial r_6},\frac{\partial u}{\partial r_7},\frac{\partial u}{\partial r_8} r0u,r2u,r3u,r4u,r5u,r6u,r7u,r8u ∂ v ∂ r 0 , ∂ v ∂ r 2 , ∂ v ∂ r 3 , ∂ v ∂ r 4 , ∂ v ∂ r 5 , ∂ v ∂ r 6 , ∂ v ∂ r 7 , ∂ v ∂ r 8 \frac{\partial v}{\partial r_0},\frac{\partial v}{\partial r_2},\frac{\partial v}{\partial r_3},\frac{\partial v}{\partial r_4},\frac{\partial v}{\partial r_5},\frac{\partial v}{\partial r_6},\frac{\partial v}{\partial r_7},\frac{\partial v}{\partial r_8} r0v,r2v,r3v,r4v,r5v,r6v,r7v,r8v

∂ x c ∂ r 0 = ∂ y c ∂ r 3 = ∂ z c ∂ r 6 = X , ∂ x c ∂ r 1 = ∂ y c ∂ r 4 = ∂ z c ∂ r 7 = Y , ∂ x c ∂ r 2 = ∂ y c ∂ r 5 = ∂ z c ∂ r 8 = Z ∂ r 2 ∂ r 0 = ∂ r 2 ∂ x ∂ x ∂ x c ∂ x c ∂ r 0 , ∂ r 2 ∂ r 1 = ∂ r 2 ∂ x ∂ x ∂ x c ∂ x c ∂ r 1 , ∂ r 2 ∂ r 2 = ∂ r 2 ∂ x ∂ x ∂ x c ∂ x c ∂ r 2 ∂ r 2 ∂ r 3 = ∂ r 2 ∂ y ∂ y ∂ y c ∂ y c ∂ r 3 , ∂ r 2 ∂ r 4 = ∂ r 2 ∂ y ∂ y ∂ y c ∂ y c ∂ r 4 , ∂ r 2 ∂ r 5 = ∂ r 2 ∂ y ∂ y ∂ y c ∂ y c ∂ r 5 ∂ r 2 ∂ r 6 = ∂ r 2 ∂ x ∂ x ∂ z c ∂ z c ∂ r 6 + ∂ r 2 ∂ y ∂ y ∂ z c ∂ z c ∂ r 6 , ∂ r 2 ∂ r 7 = ∂ r 2 ∂ x ∂ x ∂ z c ∂ z c ∂ r 7 + ∂ r 2 ∂ y ∂ y ∂ z c ∂ z c ∂ r 7 , ∂ r 2 ∂ r 8 = ∂ r 2 ∂ x ∂ x ∂ z c ∂ z c ∂ r 8 + ∂ r 2 ∂ y ∂ y ∂ z c ∂ z c ∂ r 8 ∂ d ∂ r 0 = ∂ d ∂ r 2 ∂ r 2 ∂ r 0 , ∂ d ∂ r 1 = ∂ d ∂ r 2 ∂ r 2 ∂ r 1 , ∂ d ∂ r 2 = ∂ d ∂ r 2 ∂ r 2 ∂ r 2 ∂ d ∂ r 3 = ∂ d ∂ r 2 ∂ r 2 ∂ r 3 , ∂ d ∂ r 4 = ∂ d ∂ r 2 ∂ r 2 ∂ r 4 , ∂ d ∂ r 5 = ∂ d ∂ r 2 ∂ r 2 ∂ r 5 ∂ d ∂ r 6 = ∂ d ∂ r 2 ∂ r 2 ∂ r 6 , ∂ d ∂ r 7 = ∂ d ∂ r 2 ∂ r 2 ∂ r 7 , ∂ d ∂ r 8 = ∂ d ∂ r 2 ∂ r 2 ∂ r 8 ∂ x ∂ r 0 = ∂ x ∂ x c ∂ x c ∂ r 0 , ∂ x ∂ r 1 = ∂ x ∂ x c ∂ x c ∂ r 1 , ∂ x ∂ r 2 = ∂ x ∂ x c ∂ x c ∂ r 2 , ∂ x ∂ r 6 = ∂ x ∂ z c ∂ z c ∂ r 6 , ∂ x ∂ r 7 = ∂ x ∂ z c ∂ z c ∂ r 7 , ∂ x ∂ r 8 = ∂ x ∂ z c ∂ z c ∂ r 8 ∂ u ∂ r 0 = f x ∂ d ∂ r 0 + f d ∂ x ∂ r 0 , ∂ u ∂ r 1 = f x ∂ d ∂ r 1 + f d ∂ x ∂ r 1 , ∂ u ∂ r 2 = f x ∂ d ∂ r 2 + f d ∂ x ∂ r 2 ∂ u ∂ r 3 = f x ∂ d ∂ r 3 , ∂ u ∂ r 4 = f x ∂ d ∂ r 4 , ∂ u ∂ r 5 = f x ∂ d ∂ r 5 ∂ u ∂ r 6 = f x ∂ d ∂ r 6 + f d ∂ x ∂ r 6 , ∂ u ∂ r 7 = f x ∂ d ∂ r 7 + f d ∂ x ∂ r 7 , ∂ u ∂ r 8 = f x ∂ d ∂ r 8 + f d ∂ x ∂ r 8 ∂ y ∂ r 3 = ∂ y ∂ y c ∂ y c ∂ r 3 , ∂ y ∂ r 4 = ∂ y ∂ y c ∂ y c ∂ r 4 , ∂ y ∂ r 5 = ∂ y ∂ y c ∂ y c ∂ r 5 , ∂ y ∂ r 6 = ∂ y ∂ z c ∂ z c ∂ r 6 , ∂ y ∂ r 7 = ∂ y ∂ z c ∂ z c ∂ r 7 , ∂ y ∂ r 8 = ∂ y ∂ z c ∂ z c ∂ r 8 ∂ v ∂ r 0 = f y ∂ d ∂ r 0 , ∂ v ∂ r 1 = f y ∂ d ∂ r 1 , ∂ v ∂ r 2 = f y ∂ d ∂ r 2 ∂ v ∂ r 3 = f y ∂ d ∂ r 3 + f d ∂ y ∂ r 3 , ∂ v ∂ r 4 = f y ∂ d ∂ r 4 + f d ∂ y ∂ r 4 , ∂ v ∂ r 5 = f u ∂ d ∂ r 5 + f d ∂ y ∂ r 5 ∂ v ∂ r 6 = f y ∂ d ∂ r 6 + f d ∂ y ∂ r 6 , ∂ v ∂ r 7 = f y ∂ d ∂ r 7 + f d ∂ y ∂ r 7 , ∂ v ∂ r 8 = f y ∂ d ∂ r 8 + f d ∂ y ∂ r 8 \begin{aligned} &\frac{\partial x_c}{\partial r_0} =\frac{\partial y_c}{\partial r_3} =\frac{\partial z_c}{\partial r_6} = X ,{\kern 10pt}\frac{\partial x_c}{\partial r_1} =\frac{\partial y_c}{\partial r_4} =\frac{\partial z_c}{\partial r_7} = Y ,{\kern 10pt}\frac{\partial x_c}{\partial r_2} =\frac{\partial y_c}{\partial r_5} = \frac{\partial z_c}{\partial r_8} = Z \\\\ &\frac{\partial r^2}{\partial r_0}=\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial r_0},{\kern 10pt}\frac{\partial r^2}{\partial r_1}=\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial r_1},{\kern 10pt}\frac{\partial r^2}{\partial r_2}=\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial r_2}\\ & \frac{\partial r^2}{\partial r_3}=\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial r_3},{\kern 10pt}\frac{\partial r^2}{\partial r_4}=\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial r_4} ,{\kern 10pt}\frac{\partial r^2}{\partial r_5}=\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial r_5} \\ & \frac{\partial r^2}{\partial r_6}=\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial r_6}+\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial r_6},{\kern 10pt}\frac{\partial r^2}{\partial r_7}=\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial r_7}+\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial r_7},{\kern 10pt}\frac{\partial r^2}{\partial r_8}=\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial r_8}+\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial r_8}\\\\ &\frac{\partial d}{\partial r_0}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_0},{\kern 10pt}\frac{\partial d}{\partial r_1}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_1},{\kern 10pt}\frac{\partial d}{\partial r_2}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_2}\\ &\frac{\partial d}{\partial r_3}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_3},{\kern 10pt}\frac{\partial d}{\partial r_4}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_4},{\kern 10pt}\frac{\partial d}{\partial r_5}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_5} \\ &\frac{\partial d}{\partial r_6}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_6},{\kern 10pt}\frac{\partial d}{\partial r_7}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_7},{\kern 10pt}\frac{\partial d}{\partial r_8}=\frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial r_8} \\\\ &\frac{\partial x}{\partial r_0}=\frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial r_0},{\kern 10pt}\frac{\partial x}{\partial r_1}=\frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial r_1},{\kern 10pt}\frac{\partial x}{\partial r_2}=\frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial r_2},{\kern 10pt} \frac{\partial x}{\partial r_6}=\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial r_6},{\kern 10pt}\frac{\partial x}{\partial r_7}=\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial r_7},{\kern 10pt}\frac{\partial x}{\partial r_8}=\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial r_8} \\\\ &\color{red}\frac{\partial u}{\partial r_0} = fx\frac{\partial d}{\partial r_0}+fd\frac{\partial x}{\partial r_0},{\kern 10pt}\frac{\partial u}{\partial r_1} = fx\frac{\partial d}{\partial r_1}+fd\frac{\partial x}{\partial r_1},{\kern 10pt}\frac{\partial u}{\partial r_2} = fx\frac{\partial d}{\partial r_2}+fd\frac{\partial x}{\partial r_2}\\ &\color{red}\frac{\partial u}{\partial r_3} = fx\frac{\partial d}{\partial r_3},{\kern 10pt}\frac{\partial u}{\partial r_4} = fx\frac{\partial d}{\partial r_4},{\kern 10pt}\frac{\partial u}{\partial r_5} = fx\frac{\partial d}{\partial r_5}\\ &\color{red}\frac{\partial u}{\partial r_6} = fx\frac{\partial d}{\partial r_6}+fd\frac{\partial x}{\partial r_6},{\kern 10pt}\frac{\partial u}{\partial r_7} = fx\frac{\partial d}{\partial r_7}+fd\frac{\partial x}{\partial r_7},{\kern 10pt}\frac{\partial u}{\partial r_8} = fx\frac{\partial d}{\partial r_8}+fd\frac{\partial x}{\partial r_8}\\\\ &\frac{\partial y}{\partial r_3}=\frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial r_3},{\kern 10pt}\frac{\partial y}{\partial r_4}=\frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial r_4},{\kern 10pt}\frac{\partial y}{\partial r_5}=\frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial r_5},{\kern 10pt} \frac{\partial y}{\partial r_6}=\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial r_6},{\kern 10pt}\frac{\partial y}{\partial r_7}=\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial r_7},{\kern 10pt}\frac{\partial y}{\partial r_8}=\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial r_8} \\\\ &\color{red}\frac{\partial v}{\partial r_0} = fy\frac{\partial d}{\partial r_0},{\kern 10pt}\frac{\partial v}{\partial r_1} = fy\frac{\partial d}{\partial r_1},{\kern 10pt}\frac{\partial v}{\partial r_2} = fy\frac{\partial d}{\partial r_2}\\ &\color{red}\frac{\partial v}{\partial r_3} = fy\frac{\partial d}{\partial r_3}+fd\frac{\partial y}{\partial r_3},{\kern 10pt}\frac{\partial v}{\partial r_4} = fy\frac{\partial d}{\partial r_4}+fd\frac{\partial y}{\partial r_4},{\kern 10pt}\frac{\partial v}{\partial r_5} = fu\frac{\partial d}{\partial r_5}+fd\frac{\partial y}{\partial r_5}\\ &\color{red}\frac{\partial v}{\partial r_6} = fy\frac{\partial d}{\partial r_6}+fd\frac{\partial y}{\partial r_6},{\kern 10pt}\frac{\partial v}{\partial r_7} = fy\frac{\partial d}{\partial r_7}+fd\frac{\partial y}{\partial r_7},{\kern 10pt}\frac{\partial v}{\partial r_8} = fy\frac{\partial d}{\partial r_8}+fd\frac{\partial y}{\partial r_8}\\ \end{aligned} r0xc=r3yc=r6zc=X,r1xc=r4yc=r7zc=Y,r2xc=r5yc=r8zc=Zr0r2=xr2xcxr0xc,r1r2=xr2xcxr1xc,r2r2=xr2xcxr2xcr3r2=yr2ycyr3yc,r4r2=yr2ycyr4yc,r5r2=yr2ycyr5ycr6r2=xr2zcxr6zc+yr2zcyr6zc,r7r2=xr2zcxr7zc+yr2zcyr7zc,r8r2=xr2zcxr8zc+yr2zcyr8zcr0d=r2dr0r2,r1d=r2dr1r2,r2d=r2dr2r2r3d=r2dr3r2,r4d=r2dr4r2,r5d=r2dr5r2r6d=r2dr6r2,r7d=r2dr7r2,r8d=r2dr8r2r0x=xcxr0xc,r1x=xcxr1xc,r2x=xcxr2xc,r6x=zcxr6zc,r7x=zcxr7zc,r8x=zcxr8zcr0u=fxr0d+fdr0x,r1u=fxr1d+fdr1x,r2u=fxr2d+fdr2xr3u=fxr3d,r4u=fxr4d,r5u=fxr5dr6u=fxr6d+fdr6x,r7u=fxr7d+fdr7x,r8u=fxr8d+fdr8xr3y=ycyr3yc,r4y=ycyr4yc,r5y=ycyr5yc,r6y=zcyr6zc,r7y=zcyr7zc,r8y=zcyr8zcr0v=fyr0d,r1v=fyr1d,r2v=fyr2dr3v=fyr3d+fdr3y,r4v=fyr4d+fdr4y,r5v=fur5d+fdr5yr6v=fyr6d+fdr6y,r7v=fyr7d+fdr7y,r8v=fyr8d+fdr8y

5、计算关于三维点的偏导数 ∂ u ∂ X , ∂ u ∂ Y , ∂ u ∂ Z , ∂ v ∂ X , ∂ v ∂ Y , ∂ v ∂ Z \frac{\partial u}{\partial X},\frac{\partial u}{\partial Y},\frac{\partial u}{\partial Z},\frac{\partial v}{\partial X},\frac{\partial v}{\partial Y},\frac{\partial v}{\partial Z} Xu,Yu,Zu,Xv,Yv,Zv

∂ x c ∂ X = r 0 , ∂ x c ∂ Y = r 1 , ∂ x c ∂ Z = r 2 ∂ y c ∂ X = r 3 , ∂ y c ∂ Y = r 4 , ∂ y c ∂ Z = r 5 ∂ z c ∂ X = r 6 , ∂ z c ∂ Y = r 7 , ∂ z c ∂ Z = r 8 ∂ x ∂ X = ∂ x ∂ x c ∂ x c ∂ X + ∂ x ∂ z c ∂ z c ∂ X , ∂ y ∂ X = ∂ y ∂ y c ∂ y c ∂ X + ∂ y ∂ z c ∂ z c ∂ X ∂ x ∂ Y = ∂ x ∂ x c ∂ x c ∂ Y + ∂ x ∂ z c ∂ z c ∂ Y , ∂ y ∂ Y = ∂ y ∂ y c ∂ y c ∂ Y + ∂ y ∂ z c ∂ z c ∂ Y ∂ x ∂ Z = ∂ x ∂ x c ∂ x c ∂ Z + ∂ x ∂ z c ∂ z c ∂ Z , ∂ y ∂ Z = ∂ y ∂ y c ∂ y c ∂ Z + ∂ y ∂ z c ∂ z c ∂ Z ∂ r 2 ∂ X = ∂ r 2 ∂ x ∂ x ∂ X + ∂ r 2 ∂ y ∂ y ∂ X , ∂ r 2 ∂ Y = ∂ r 2 ∂ x ∂ x ∂ Y + ∂ r 2 ∂ y ∂ y ∂ Y , ∂ r 2 ∂ Z = ∂ r 2 ∂ x ∂ x ∂ Z + ∂ r 2 ∂ y ∂ y ∂ Z ∂ d ∂ X = ∂ d ∂ r 2 ∂ r 2 ∂ X , ∂ d ∂ Y = ∂ d ∂ r 2 ∂ r 2 ∂ Y , ∂ d ∂ Z = ∂ d ∂ r 2 ∂ r 2 ∂ Z ∂ u ∂ X = f x ∂ d ∂ X + f d ∂ x ∂ X , ∂ u ∂ Y = f x ∂ d ∂ Y + f d ∂ x ∂ Y , ∂ u ∂ Z = f x ∂ d ∂ Z + f d ∂ x ∂ Z ∂ v ∂ X = f y ∂ d ∂ X + f d ∂ y ∂ X , ∂ v ∂ Y = f y ∂ d ∂ Y + f d ∂ y ∂ Y , ∂ v ∂ Z = f y ∂ d ∂ Z + f d ∂ y ∂ Z \begin{aligned} &\frac{\partial x_c}{\partial X} = r0,{\kern 10pt}\frac{\partial x_c}{\partial Y} = r1,{\kern 10pt}\frac{\partial x_c}{\partial Z} = r2 \\ &\frac{\partial y_c}{\partial X} = r3,{\kern 10pt}\frac{\partial y_c}{\partial Y} = r4,{\kern 10pt}\frac{\partial y_c}{\partial Z} = r5 \\ &\frac{\partial z_c}{\partial X} = r6,{\kern 10pt}\frac{\partial z_c}{\partial Y} = r7,{\kern 10pt}\frac{\partial z_c}{\partial Z} = r8 \\\\ &\frac{\partial x}{\partial X} = \frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial X}+\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial X},{\kern 10pt}\frac{\partial y}{\partial X} = \frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial X}+\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial X}\\ &\frac{\partial x}{\partial Y} = \frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial Y}+\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial Y},{\kern 10pt}\frac{\partial y}{\partial Y} = \frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial Y}+\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial Y}\\ &\frac{\partial x}{\partial Z} = \frac{\partial x}{\partial x_c}\frac{\partial x_c}{\partial Z}+\frac{\partial x}{\partial z_c}\frac{\partial z_c}{\partial Z},{\kern 10pt}\frac{\partial y}{\partial Z} = \frac{\partial y}{\partial y_c}\frac{\partial y_c}{\partial Z}+\frac{\partial y}{\partial z_c}\frac{\partial z_c}{\partial Z} \\\\ &\frac{\partial r^2}{\partial X} =\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial X}+\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial X},{\kern 10pt}\frac{\partial r^2}{\partial Y} =\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial Y}+\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial Y},{\kern 10pt}\frac{\partial r^2}{\partial Z} =\frac{\partial r^2}{\partial x}\frac{\partial x}{\partial Z}+\frac{\partial r^2}{\partial y}\frac{\partial y}{\partial Z}\\\\ &\frac{\partial d}{\partial X} = \frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial X},{\kern 10pt}\frac{\partial d}{\partial Y} = \frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial Y},{\kern 10pt}\frac{\partial d}{\partial Z} = \frac{\partial d}{\partial r^2}\frac{\partial r^2}{\partial Z}\\ &\color{red}\frac{\partial u}{\partial X} = fx\frac{\partial d}{\partial X}+ fd\frac{\partial x}{\partial X},{\kern 10pt}\frac{\partial u}{\partial Y} = fx\frac{\partial d}{\partial Y}+ fd\frac{\partial x}{\partial Y} ,{\kern 10pt}\frac{\partial u}{\partial Z} = fx\frac{\partial d}{\partial Z}+ fd\frac{\partial x}{\partial Z}\\ &\color{red}\frac{\partial v}{\partial X} = fy\frac{\partial d}{\partial X}+ fd\frac{\partial y}{\partial X},{\kern 10pt}\frac{\partial v}{\partial Y} = fy\frac{\partial d}{\partial Y}+ fd\frac{\partial y}{\partial Y} ,{\kern 10pt}\frac{\partial v}{\partial Z} = fy\frac{\partial d}{\partial Z}+ fd\frac{\partial y}{\partial Z} \end{aligned} Xxc=r0,Yxc=r1,Zxc=r2Xyc=r3,Yyc=r4,Zyc=r5Xzc=r6,Yzc=r7,Zzc=r8Xx=xcxXxc+zcxXzc,Xy=ycyXyc+zcyXzcYx=xcxYxc+zcxYzc,Yy=ycyYyc+zcyYzcZx=xcxZxc+zcxZzc,Zy=ycyZyc+zcyZzcXr2=xr2Xx+yr2Xy,Yr2=xr2Yx+yr2Yy,Zr2=xr2Zx+yr2ZyXd=r2dXr2,Yd=r2dYr2,Zd=r2dZr2Xu=fxXd+fdXx,Yu=fxYd+fdYx,Zu=fxZd+fdZxXv=fyXd+fdXy,Yv=fyYd+fdYy,Zv=fyZd+fdZy

代码实现

https://github.com/ldx-star/Bundle-Adjustment

这篇关于【三维重建】捆绑调整的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959832

相关文章

颠覆多跳事实验证!Causal Walk 前门调整技术引领去偏新纪元

Causal Walk: Debiasing Multi-Hop Fact Verifcation with Front-Door Adjustment 论文地址: Causal Walk: Debiasing Multi-Hop Fact Verification with Front-Door Adjustment| Proceedings of the AAAI Conference

Android中如何动态的调整Dialog的背景深暗

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 在 Android 开发中,当你使用 Dialog 或 DialogFragment 时,可以通过设置 Window 的背景变暗来突出它的可见性。这个效果是通过 backgroundDimAmount 属性来控制的。 那我们怎么动态设置backgroundDimAmou

ffmpeg调整视频角度

最近公司要做一款视频版宠物喂食器,存在一个问题,就是视频sensor是旋转90度放置的,可能是开模影响或者是方案选型问题,这里先不做讨论。         由于视频sensor不是正立放置,那么出来的视频流也是被旋转90度的,这样在app端显示的视频也需要调整。         针对实时流,是比较容易处理的。可以有两种方法进行处理:一种就是将正立着的播放器旋转90度,也就是Vi

PhotoShop-图像调整+蒙板

1、  菜单下“图像”下的“调整”下的 (1)色阶(ctrl+L)调光,调节下面三个值 例子:树叶   (2)色彩平衡(ctrl+B),调整偏色的图 例子:(厨房)     (3)反相(ctrl+I) 例子:做一个黑背景,白文字的页面,选中上部分,选择反向,出现以下效果   (4)色相/饱和度(ctrl+U) 色相:什么颜色;饱和度:颜色的饱满程度 例子1:调整局部颜色

图像处理与视觉感知复习--三维重建基础

文章目录 完整的摄像机模型(摄像机内外参数)理解三个参考系齐次坐标系中的投影变换 摄像机标定单视图几何无穷远点、无穷远线、无穷远平面影消点、影消线 三维重建基础与极几何极几何、本质矩阵与基础矩阵 双目立体视觉视差或深度的推导过程 完整的摄像机模型(摄像机内外参数) 径向畸变:图像像素点以畸变中心为中心点,沿着径向产生的位置偏差,从而导致图像中所成的像发生形变 理解三个参考系

调整数据库栏位的位置

首先 select object_id,object_name from all_objects where object_name =’IRP_MEDIA’ and owner=’MEQUIP’; object_name是表名 owner是用户名 select obj#,col#,name from sys.col$ where obj#=90689; 查出 id值 u

字符串的调整与替换

//字符串的调整与替换public class StringModRep{//从右到左倒着复制(替换)public static void replace(char[]chas){if(chas==null||chas.length==0){return ;}int num=0;int len=0;for(len=0;len<chas.length&&chas[len]!=0;le

手把手教你实现条纹结构光三维重建(3)——相机投影仪标定

我们都知道,投影仪其实就是个反向相机,如果我们了解双目标定的原理,那么相机和投影仪的标定就不难,关键是我们怎么得到投影仪在图像特征点(比如棋盘格角点)上的像素位置。 投影仪也类似于一个cmos,图像有像素位置(u,v),那么通过我们上一讲的条纹解码,给图像添加水平方向和垂直方向的投影,就可以通过解码,得到图像对应的投影相位值,此相位值就是投影的像素坐标(xp,yp)。如下图所示,具体的原理可以参

【稀疏三维重建】Flash3D:单张图像重建场景的GaussianSplitting

项目主页:https://www.robots.ox.ac.uk/~vgg/research/flash3d/ 来源:牛津、澳大利亚国立 提示: 文章目录 摘要1.引言2.相关工作3.方法3.1 背景:从单个图像中重建场景3.2 单目 4.实验4.14.2 跨域新视角合成4.3 域内新视图合成4.4 域内新视图合成 摘要   Flash3D,一种通用的单一图像场景重建。

PyTorch 学习笔记(八):PyTorch的六个学习率调整方法

本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial 号外:20万字的《PyTorch实用教程》(第二版)于 2024 年 4 月开源了! 号外:20万字的《PyTorch实用教程》(第二版)于 2024 年 4 月开源了! 号外:20万字的《PyTorch实用教程》(第二版)于 2