设某点在world中的坐标为 P w = ( x w , y w , z w ) T , P_w=left(x_{w}, y_{w}, z_{w}right)^{T}, Pw=(xw,yw,zw)T, 在camera中的坐标为 P c = ( x c , y c , z c ) T P_c=left(x_{c}, y_{c}, z_{c}right)^{T} Pc=(xc,yc,zc)T 。则
刚体变换公式:
[ x c y c z c ] = R [ x w y w z w ] + T left[begin{array}{l} x_{c} \ y_{c} \ z_{c} end{array}right]=Rleft[begin{array}{l} x_{w} \ y_{w} \ z_{w} end{array}right]+T ⎣⎡xcyczc⎦⎤=R⎣⎡xwywzw⎦⎤+T
其中,R为正交旋转矩阵,
R = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] R=left[begin{array}{lll} r_{11} & r_{12} & r_{13} \ r_{21} & r_{22} & r_{23} \ r_{31} & r_{32} & r_{33} end{array}right] R=⎣⎡r11r21r31r12r22r32r13r23r33⎦⎤
T为平移矩阵,
T = [ t x t y t z ] T T=left[begin{array}{lll} t_{x} & t_{y} & t_{z} end{array}right]^{T} T=[txtytz]T
齐次坐标形式:
[ x c y c z c 1 ] = [ R t 0 3 T 1 ] [ x w y w z w 1 ] left[begin{array}{c} x_{c} \ y_{c} \ z_{c} \ 1 end{array}right]=left[begin{array}{cc} R & t \ 0_{3}^{T} & 1 end{array}right]left[begin{array}{c} x_{w} \ y_{w} \ z_{w} \ 1 end{array}right] ⎣⎢⎢⎡xcyczc1⎦⎥⎥⎤=[R03Tt1]⎣⎢⎢⎡xwywzw1⎦⎥⎥⎤
以俯视看image为例,如上图,此时有:
f z c = x x c ⇒ x = x c z c f frac{f}{z_c} = frac{x}{x_c} Rightarrow x = frac{x_c}{z_c} f zcf=xcx⇒x=zcxcf
同理可得:
y = y c z c f y = frac{y_c}{z_c} f y=zcycf
写成齐次坐标形式的矩阵表示为:
z c [ x y 1 ] = [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ x c y c z c 1 ] z_cleft[begin{array}{l} x \ y \ 1 end{array}right]=left[begin{array}{llll} f & 0 & 0 & 0 \ 0 & f & 0 & 0 \ 0 & 0 & 1 & 0 end{array}right]left[begin{array}{l} x_{c} \ y_{c} \ z_{c} \ 1 end{array}right] zc⎣⎡xy1⎦⎤=⎣⎡f000f0001000⎦⎤⎣⎢⎢⎡xcyczc1⎦⎥⎥⎤
假设一个像素的长和宽分别为 d x d_x dx, d y d_y dy,注意: p u p_u pu, p v p_v pv是在pixel坐标系中,表示主点(相机光轴和投影面的交点)
u = x d x + p u v = y d y + p v begin{aligned} &u=frac{x}{d_x}+p_{u}\ &v=frac{y}{d_y}+p_{v}\ end{aligned} u=dxx+puv=dyy+pv
齐次坐标形式的矩阵表示为:
[ u v 1 ] = [ 1 / d x 0 p u 0 1 / d y p v 0 0 1 ] [ x y 1 ] left[begin{array}{l} u \ v \ 1 end{array}right]=left[begin{array}{ccc} 1 / d_{x} & 0 & p_u \ 0 & 1 / d_{y} & p_v \ 0 & 0 & 1 end{array}right]left[begin{array}{c} x \ y \ 1 end{array}right] ⎣⎡uv1⎦⎤=⎣⎡1/dx0001/dy0pupv1⎦⎤⎣⎡xy1⎦⎤
camer to pixel:
z c [ u v 1 ] = [ 1 / d x 0 p u 0 1 / d y p v 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ x c y c z c 1 ] z_cleft[begin{array}{l} u \ v \ 1 end{array}right]=left[begin{array}{ccc} 1 / d_{x} & 0 & p_u \ 0 & 1 / d_{y} & p_v \ 0 & 0 & 1 end{array}right]left[begin{array}{llll} f & 0 & 0 & 0 \ 0 & f & 0 & 0 \ 0 & 0 & 1 & 0 end{array}right]left[begin{array}{l} x_{c} \ y_{c} \ z_{c} \ 1 end{array}right] zc⎣⎡uv1⎦⎤=⎣⎡1/dx0001/dy0pupv1⎦⎤⎣⎡f000f0001000⎦⎤⎣⎢⎢⎡xcyczc1⎦⎥⎥⎤
其中,
K = [ 1 / d x 0 p u 0 1 / d y p v 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] = [ f x 0 p u 0 0 f y p v 0 0 0 1 0 ] K=left[begin{array}{ccc} 1 / d_{x} & 0 & p_u \ 0 & 1 / d_{y} & p_v \ 0 & 0 & 1 end{array}right]left[begin{array}{llll} f & 0 & 0 & 0 \ 0 & f & 0 & 0 \ 0 & 0 & 1 & 0 end{array}right]=left[begin{array}{ccc} f_{x} & 0 & p_{u} & 0\ 0 & f_{y} & p_{v} & 0\ 0 & 0 & 1 & 0 end{array}right] K=⎣⎡1/dx0001/dy0pupv1⎦⎤⎣⎡f000f0001000⎦⎤=⎣⎡fx000fy0pupv1000⎦⎤
word to pixel:
z c [ u v 1 ] = K ⋅ [ R T 0 3 T 1 ] [ x w y w z w 1 ] z_{c}left[begin{array}{l} u \ v \ 1 end{array}right]=K cdotleft[begin{array}{ll} R & T \ 0_{3}^{T} & 1 end{array}right]left[begin{array}{c} x_{w} \ y_{w} \ z_{w} \ 1 end{array}right] zc⎣⎡uv1⎦⎤=K⋅[R03TT1]⎣⎢⎢⎡xwywzw1⎦⎥⎥⎤
我们把 K K K称为相机的内参数矩阵(Camera Intrinsics)。通常认为,相机的内参在出厂之后是固定的,不会在使用过程中发生变化。有的相机生产厂商会告诉相机的内参,而有时候需要自己确定相机的内参,也就是所谓的标定。相机的位姿 R R R, t t t又称为相机的外参数(Camera Extrinsics)。相比不变的内参, 外参会随着相机运动发生改变。注意,上式隐含了一次齐次坐标到非齐次坐标的转换,外参数矩阵与世界坐标相乘后是一个4维的向量。
上述式子基于 d x = d y d_x = d_y dx=dy,即纵横比(aspect ratio)为1,忽略相机畸变
本文发布于:2024-02-03 07:23:59,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170691623749512.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |