当前位置: 首页 > article >正文

机器视觉入门基础相关概念一 ——单目相机模型

机器视觉入门基础相关概念

相机模型

引言介绍:如果只是希望获取图像上的一些信息(例如特征提取拟合等),那么我们不会对三维空间中相机的位置有所要求。但如果希望通过二维的图像去理解三维空间中摄像机的信息,或者是图像中物体在三维空间中的信息,那么就不得不考虑成像过程中三维变化为二维时的具体过程。而摄像机模型就是三维到二维的一种映射。本文简要总结了单目相机的成像过程,以便于读者将相机模型作为一种基础的工具理解更深层次的内容。

简单来说,相机模型是3维空间如何在摄像机中变成2维图像的一个过程。

2d坐标变换

结合之前查看的一些资料进行总结:坐标变换常用的变换就是平移和旋转两种变换的方式。(尺度缩放

  1. 用矩阵的齐次方程形式表示平移变换

在xy坐标系下的平移变换也就是,在x轴方向加tx 在y轴的方向加ty来进行表示。P’=P+t=(x+tx,y+ty)

在这里插入图片描述

P = (x,y)t = (tx,ty) 因为我们用齐次的坐标形式来进行表达,也就是要多P增加一个维度信息 P(x,y,1)

P = ( x , y ) → ( x , y , 1 ) \mathbf{P}=(x, y) \rightarrow(x, y, 1) P=(x,y)(x,y,1)

P ′ → [ x + t x y + t y 1 ] = [ 1 0 t x 0 1 t y 0 0 1 ] ⋅ [ x y 1 ] = [ I t 0 1 ] ⋅ [ x y 1 ] = T ⋅ [ x y 1 ] \begin{array}{r} \mathbf{P}^{\prime} \rightarrow\left[\begin{array}{c} x+t_{x} \\ y+t_{y} \\ 1 \end{array}\right]=\left[\begin{array}{lll} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right] \cdot\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right] \\ =\left[\begin{array}{ll} \mathbf{I} & \mathbf{t} \\ \mathbf{0} & 1 \end{array}\right] \cdot\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]=\mathbf{T} \cdot\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right] \end{array} P x+txy+ty1 = 100010txty1 xy1 =[I0t1] xy1 =T xy1

也就是说可以将平移变换写成一个坐标与矩阵相乘的形式来表达,或者更加通俗的来说就是进行了一次矩阵的变换。

  1. 用矩阵齐次方程的形式表示尺度变换

将x轴方向放大sx倍,将y轴方向放大sy倍,根据图示其实也可以看出它属于是一种特殊的平移变换操作。

P = (x,y) P’ = (sx,sy)

P = ( x , y ) → P ′ = ( s x x ,   s y y ) P = ( x , y ) → ( x , y , 1 ) \begin{array}{c} \mathbf{P}=(\mathrm{x}, \mathrm{y}) \rightarrow \mathbf{P}^{\prime}=\left(\mathrm{s}_{\mathrm{x}} \mathrm{x}, \mathrm{~s}_{\mathrm{y}} \mathrm{y}\right) \\ \mathbf{P}=(x, y) \rightarrow(x, y, 1) \end{array} P=(x,y)P=(sxx, syy)P=(x,y)(x,y,1)
在这里插入图片描述

我们同样也是增加一个维度的信息值P(x,y,1)三个维度的表示形式。

P ′ → [ s x x s y y 1 ] = [ s x 0 0 0 s y 0 0 0 1 ] ⋅ [ x y 1 ] = [ S ′ 0 0 1 ] ⋅ [ x y 1 ] = S ⋅ [ x y 1 ] \mathbf{P}^{\prime} \rightarrow\left[\begin{array}{c} s_{x} x \\ s_{y} y \\ 1 \end{array}\right]=\left[\begin{array}{ccc} s_{x} & 0 & 0 \\ 0 & s_{y} & 0 \\ 0 & 0 & 1 \end{array}\right] \cdot\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]=\left[\begin{array}{cc} \mathbf{S}^{\prime} & \mathbf{0} \\ \mathbf{0} & 1 \end{array}\right] \cdot\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right]=\mathbf{S} \cdot\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right] P sxxsyy1 = sx000sy0001 xy1 =[S001] xy1 =S xy1

尺度的变换也可以看作是一次矩阵变换的表达形式。

  1. 那么如何用矩阵的形式来表示旋转变换呢?

我们在线性代数的矩阵乘法运算的部分其实就提到了通过三角函数与矩阵结合的形式进行矩阵变换。下面我们就用这种思想。

在这里插入图片描述
x ′ = cos ⁡ θ x − sin ⁡ θ y y ′ = cos ⁡ θ y + sin ⁡ θ x \begin{array}{l} x^{\prime}=\cos \theta x-\sin \theta y \\ y^{\prime}=\cos \theta y+\sin \theta x \end{array} x=cosθxsinθyy=cosθy+sinθx

P ′ → [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] [ x y 1 ] \mathbf{P}^{\prime} \rightarrow\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] P cosθsinθ0sinθcosθ0001 xy1

我们在近似极坐标系下,同样也可以将P’表示为RP这种矩阵相乘的形式。

将这几种情况进行综合就可以得到2d空间的一个变换方法。

P ′ → [ 1 0 t x 0 1 t y 0 0 1 ] [ cos ⁡ θ − sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] [ s x 0 0 0 s y 0 0 0 1 ] x y 1 ] = [ cos ⁡ θ − sin ⁡ θ t x sin ⁡ θ cos ⁡ θ t y 0 0 1 ] [ s x 0 0 0 s y 0 0 0 1 ] [ x y 1 ] \begin{aligned} & \left.\mathbf{P}^{\prime} \rightarrow\left[\begin{array}{lll} 1 & 0 & t_{x} \\ 0 & 1 & t_{y} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{ccc} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{ccc} s_{x} & 0 & 0 \\ 0 & s_{y} & 0 \\ 0 & 0 & 1 \end{array}\right] \begin{array}{l} x \\ y \\ 1 \end{array}\right] \\ = & {\left[\begin{array}{ccc} \cos \theta & -\sin \theta & t_{x} \\ \sin \theta & \cos \theta & t_{y} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{ccc} s_{x} & 0 & 0 \\ 0 & s_{y} & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right] } \end{aligned} =P 100010txty1 cosθsinθ0sinθcosθ0001 sx000sy0001 xy1 cosθsinθ0sinθcosθ0txty1 sx000sy0001 xy1

最后综合在一起就可以写成一个完成的坐标表示形式了

= [ R t 0 1 ] [ S 0 0 1 ] [ x y 1 ] = [ R S t 0 1 ] ] [ x y 1 ] \left.=\left[\begin{array}{cc} \mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{array}\right]\left[\begin{array}{ll} \mathbf{S} & \mathbf{0} \\ \mathbf{0} & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]=\left[\begin{array}{cc} \mathbf{R} \mathbf{S} & \mathbf{t} \\ \mathbf{0} & 1 \end{array}\right]\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] =[R0t1][S001] xy1 =[RS0t1] xy1

在这里插入图片描述

上面提到的变换可以统一的称为是进行了欧式变换,它属于是一种特殊的单应变换((homography))添加了部分的约束条件

x ′ ≅ H x = [ h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 h 33 ] x \mathbf{x}^{\prime} \cong H \mathbf{x}=\left[\begin{array}{lll} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{array}\right] \mathbf{x} xHx= h11h21h31h12h22h32h13h23h33 x

3d坐标变换

我们说3d的坐标变换和2d的坐标变换基本上是相同的思想和步骤,不同之处就在于多增加了一个坐标的位置。

我们就用3d空间中的平移变换来举一个例子吧。

在这里插入图片描述

T = [ T x T y T z ] T=\left[\begin{array}{c} T_{x} \\ T_{y} \\ T_{z} \end{array}\right] T= TxTyTz

P ′ → [ I T 0 1 ] 4 × 4 [ x y z 1 ] P^{\prime} \rightarrow\left[\begin{array}{cc} I & T \\ 0 & 1 \end{array}\right]_{4 \times 4}\left[\begin{array}{c} x \\ y \\ z \\ 1 \end{array}\right] P[I0T1]4×4 xyz1

但是在3d的旋转变换就会有一定的区别,主要就在3d我们使用的是球坐标系,就包括了两个角度嘛。

它的旋转矩阵R就需要连续相乘得到(可以绕x y z三个轴旋转)

在这里插入图片描述

R = R x ( α ) R y ( β ) R z ( γ ) R=R_{x}(\alpha) R_{y}(\beta) R_{z}(\gamma) R=Rx(α)Ry(β)Rz(γ)

R x ( α ) = [ 1 0 0 0 cos ⁡ α − sin ⁡ α 0 sin ⁡ α cos ⁡ α ] R y ( β ) = [ cos ⁡ β 0 sin ⁡ β 0 1 0 − sin ⁡ β 0 cos ⁡ β ] R z ( γ ) = [ cos ⁡ γ − sin ⁡ γ 0 sin ⁡ γ cos ⁡ γ 0 0 0 1 ] \begin{array}{l} R_{x}(\alpha)=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & \cos \alpha & -\sin \alpha \\ 0 & \sin \alpha & \cos \alpha \end{array}\right] \\ R_{y}(\beta)=\left[\begin{array}{ccc} \cos \beta & 0 & \sin \beta \\ 0 & 1 & 0 \\ -\sin \beta & 0 & \cos \beta \end{array}\right] \\ R_{z}(\gamma)=\left[\begin{array}{ccc} \cos \gamma & -\sin \gamma & 0 \\ \sin \gamma & \cos \gamma & 0 \\ 0 & 0 & 1 \end{array}\right] \end{array} Rx(α)= 1000cosαsinα0sinαcosα Ry(β)= cosβ0sinβ010sinβ0cosβ Rz(γ)= cosγsinγ0sinγcosγ0001

P ′ → [ R 0 0 1 ] 4 × 4 [ x y z 1 ] P^{\prime} \rightarrow\left[\begin{array}{cc} R & 0 \\ 0 & 1 \end{array}\right]_{4 \times 4}\left[\begin{array}{l} x \\ y \\ z \\ 1 \end{array}\right] P[R001]4×4 xyz1

相机模型中的四个坐标系

最简单有效的是针孔相机模型(pinhole camera model),这是最基本且最常用的相机模型,提供了一个简单的方法来描述相机如何将三维世界转化为二维图像。(小孔成像原理)
该模型假定光线通过相机的一个小孔穿过并投影到影像平面(这个平面就是感光元件,如CCD或CMOS上。

该模型基于几何光学理论,忽视了透镜的畸变效应。针孔相机模型是理想状态下的相机模型,一个重要参数是:焦距f,决定了相机的视场角。

在这里插入图片描述
从参考资料上截取了一种很直观的图,来对这个模型进行说明

相机模型中的四个坐标系主要为一下的四个坐标系。

  1. 世界坐标系P_w:通常是三维空间中人为选择的一个参考坐标系。单位为物理单位,例如m。
  2. 相机坐标系P_c:三维空间中,通常以摄像机的光心作为原点,光轴作为z轴的一个坐标系。可以通过世界坐标系的平移和旋转来获得。单位为物理单位,例如m。
  3. 成像平面坐标系P:通过相机模型映射得到的一个二维坐标系。单位为物理单位,例如m。
  4. 图像坐标系P_uv:通过所成像转换获得的在计算机内部可以存储的矩阵图像上的坐标系。单位为像素。

在这里插入图片描述

世界到相机坐标系

选取O点作为坐标系的原点,以光轴作为Z轴,X,Y轴与成像平面平行,构建一个坐标系

在这里插入图片描述

在我自己学习计算机视觉相关知识的时候,也经常听说要结合相机的内外参,这里我们从3d真实空间下的世界坐标系,通过相机的外参做一个刚体的变换,就可以得到以光心为原点的相机坐标系下的3d坐标了

实际上就是通过旋转和平移两部分操作,完成两个坐标系之间的坐标变换。 M是我们在世界坐标系下的坐标,通过下面的公式得到MC(相机坐标系下的坐标)

R ⋅ [ M ~ − C ~ ] R \cdot[\widetilde{M}-\widetilde{C}] R[M C ]

C~是光心在世界坐标系下的坐标

[ x M C y M C z M C 1 ] = [ R − R C ~ 0 1 ] [ X M W Y M W Z M W 1 ] \left[\begin{array}{c} x_{M}^{C} \\ \mathrm{y}_{M}^{C} \\ z_{M}^{C} \\ 1 \end{array}\right]=\left[\begin{array}{cc} \mathbf{R} & -\mathbf{R} \widetilde{\mathbf{C}} \\ \mathbf{0} & 1 \end{array}\right]\left[\begin{array}{c} X_{M}^{W} \\ Y_{M}^{W} \\ Z_{M}^{W} \\ 1 \end{array}\right] xMCyMCzMC1 =[R0RC 1] XMWYMWZMW1

[ x c y c z c 1 ] = [ R 3 × 3 T 3 × 1 O 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_{3 \times 3} & T_{3 \times 1} \\ O & 1 \end{array}\right] \cdot\left[\begin{array}{c} x_{w} \\ y_{w} \\ z_{w} \\ 1 \end{array}\right] xcyczc1 =[R3×3OT3×11] xwywzw1

T:平移 R:旋转。

一个三维目标点在世界坐标系和摄像机空间坐标系两套三维坐标系的下转换关系,能够通过一个旋转和一个平移矩阵计算。

这里的矩阵我们称之为外参矩阵

在这里插入图片描述

相机坐标系到图像坐标系

在这里插入图片描述

假设点p(xc yc zc)在图像坐标系的成像点是p’(x,y) 我们需要在她们中间完成映射的操作步骤。

我们根据相似的关系可以得到。

x x c = y y c = f z c \frac{x}{x_{c}}=\frac{y}{y_{c}}=\frac{f}{z_{c}} xcx=ycy=zcf

化简之后就可以得到:

x = f z c ⋅ x c y = f z c ⋅ y c \begin{aligned} x & =\frac{f}{z_{c}} \cdot x_{c} \\ y & =\frac{f}{z_{c}} \cdot y_{c} \end{aligned} xy=zcfxc=zcfyc

按照和之前同样的思想我们可以将其表示为矩阵的形式同时完成降维。

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_{c} \cdot\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right]=\left[\begin{array}{cccc} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right] \cdot\left[\begin{array}{c} x_{c} \\ y_{c} \\ z_{c} \\ 1 \end{array}\right] zc xy1 = f000f0001000 xcyczc1

相机内参:相机的焦距,像素坐标系的相对偏移量。对于这个矩阵我们也可以理解为内参矩阵的一部分。

从图像坐标到像素坐标的转换

图像坐标系的点p’(x,y)到像素坐标系的(u,v)的转换。

  1. 图像坐标系的原点在sensor的中央,单位是mm。
  2. 像素坐标系的原点在sensor的左上角,单位是Pixel,也就是像素的行数和列。

在这里插入图片描述
其实也就是两个红色的点之间的转换。从毫米单位的成像平面中心点,转换为我们的左上角用像素的格数来进行表示。

要想明确转换关系最重要的一点就是要明确u0 和 v0指的是这个中心点在像素坐标系下的坐标位置。

  • dx,dy:是sensor的固有参数,代表每个像素的毫米数。

  • u0,vo:代表图像坐标系原点(光心)相对像素坐标系原点的偏移量。

转换关系就为:

u = x d x + u 0 , v = y d y + v 0 u=\frac{x}{d x}+u_{0}, v=\frac{y}{d y}+v_{0} u=dxx+u0,v=dyy+v0

对应的矩阵表示形式即为:

[ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x y 1 ] \left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]=\left[\begin{array}{ccc} \frac{1}{d x} & 0 & u_{0} \\ 0 & \frac{1}{d y} & v_{0} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] uv1 = dx1000dy10u0v01 xy1

整体一次变换

z c ⋅ [ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] ⋅ [ R 3 × 3 T 3 × 1 O 1 ] ⋅ [ x w y w z w 1 ] = M 1 M 2 [ x w y w z w 1 ] \begin{array}{r} z_{c} \cdot\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]=\left[\begin{array}{lll} \frac{1}{d x} & 0 & u_{0} \\ 0 & \frac{1}{d y} & v_{0} \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{cccc} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{array}\right] \cdot\left[\begin{array}{cc} R_{3 \times 3} & T_{3 \times 1} \\ O & 1 \end{array}\right] \cdot\left[\begin{array}{c} x_{w} \\ y_{w} \\ z_{w} \\ 1 \end{array}\right] \\ =\mathbf{M}_{1} \mathbf{M}_{2}\left[\begin{array}{c} x_{w} \\ y_{w} \\ z_{w} \\ 1 \end{array}\right] \end{array} zc uv1 = dx1000dy10u0v01 f000f0001000 [R3×3OT3×11] xwywzw1 =M1M2 xwywzw1

 相机内参 : 相机的焦距,像素坐标系的相对偏移量  M 1 = [ f x 0 u 0 0 f y v 0 0 0 1 ] \begin{array}{l} \text { 相机内参 : 相机的焦距,像素坐标系的相对偏移量 }\\ M_{1}=\left[\begin{array}{lll} f_{x} & 0 & u_{0} \\ 0 & f_{y} & v_{0} \\ 0 & 0 & 1 \end{array}\right] \end{array}  相机内参 : 相机的焦距,像素坐标系的相对偏移量 M1= fx000fy0u0v01

 相机外参 : 世界坐标系到相机坐标系的转换关系,相机在世界坐标系的位姿矩阵  M 2 = [ R 3 × 3 T 3 × 1 ] = [ r 11 r 12 r 13 t 1 r 21 r 22 r 23 t 2 r 31 r 32 r 33 t 3 ] \begin{array}{l} \text { 相机外参 : 世界坐标系到相机坐标系的转换关系,相机在世界坐标系的位姿矩阵 }\\ M_{2}=\left[\begin{array}{cc} R_{3 \times 3} & T_{3 \times 1} \end{array}\right]=\left[\begin{array}{llll} 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{array}\right] \end{array}  相机外参 : 世界坐标系到相机坐标系的转换关系,相机在世界坐标系的位姿矩阵 M2=[R3×3T3×1]= r11r21r31r12r22r32r13r23r33t1t2t3

在这里插入图片描述

畸变模型

经过透镜后的实际成像和理想成像之间的误差即为镜头畸变。主要分为径向畸变和切向畸变。

在这里插入图片描述

径向畸变

  • 相加的透镜形状造成,沿透镜的径向分布
  • 分为桶形畸变和枕形畸变
  • 原理透镜中心的地方比靠近中心的地方更加弯曲
  • 光心处的畸变为0,距离光心越远畸变越大
  • 廉价相机,畸变更严重

给出径向畸变的多项式数学表达形式:

{ x distorted  = x ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y distorted  = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) \left\{\begin{array}{l} x_{\text {distorted }}=x\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right) \\ y_{\text {distorted }}=y\left(1+k_{1} r^{2}+k_{2} r^{4}+k_{3} r^{6}\right) \end{array}\right. {xdistorted =x(1+k1r2+k2r4+k3r6)ydistorted =y(1+k1r2+k2r4+k3r6)

  • (x,y)是没有畸变的像素点,(x distorted,y distortea)畸变后的位置。

  • k,k2,k3:径向畸变系数,摄像头的内参,一般使用前两项,鱼眼相机会使用第三项。

切向畸变

切向畸变这种情况产生的比较少。

产生的原因:相机sensor和镜头不平行导致

在这里插入图片描述
切向畸变的数学表示形式为:

{ x distorted  = x + [ 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) ] y distorted  = y + [ 2 p 2 x y + p 1 ( r 2 + 2 y 2 ) ] \left\{\begin{array}{l} \mathrm{x}_{\text {distorted }}=x+\left[2 p_{1} x y+p_{2}\left(r^{2}+2 x^{2}\right)\right] \\ y_{\text {distorted }}=y+\left[2 p_{2} x y+p_{1}\left(r^{2}+2 y^{2}\right)\right] \end{array}\right. {xdistorted =x+[2p1xy+p2(r2+2x2)]ydistorted =y+[2p2xy+p1(r2+2y2)]

综上将两种情况进行合并可以得到最后的结果:

{ x distorted  = x ( 1 + k 1 r 2 + k 2 r 4 + + k 3 r 6 ) + [ 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) ] y distorted  = y ( 1 + k 1 r 2 + k 2 r 4 + + k 3 r 6 ) + [ 2 p 2 x y + p 1 ( r 2 + 2 y 2 ) ] \left\{\begin{array}{l} \mathrm{x}_{\text {distorted }}=x\left(1+k_{1} r^{2}+k_{2} r^{4}++k_{3} r^{6}\right)+\left[2 p_{1} x y+p_{2}\left(r^{2}+2 x^{2}\right)\right] \\ y_{\text {distorted }}=y\left(1+k_{1} r^{2}+k_{2} r^{4}++k_{3} r^{6}\right)+\left[2 p_{2} x y+p_{1}\left(r^{2}+2 y^{2}\right)\right] \end{array}\right. {xdistorted =x(1+k1r2+k2r4++k3r6)+[2p1xy+p2(r2+2x2)]ydistorted =y(1+k1r2+k2r4++k3r6)+[2p2xy+p1(r2+2y2)]

以上就是个人学习到的单目的相机模型建模和坐标转换的有关问题。


http://www.kler.cn/news/356113.html

相关文章:

  • 高级java每日一道面试题-2024年10月18日-数据库篇[Redis篇]-一个Redis实例最多能存放多少的keys?
  • OpenWRT 和 Padavan 路由器配置网络打印机 实现远程打印
  • 【从技术到营销的跨界成长】技术人的营销心法与成长秘诀
  • Git_GitHub
  • JavaScript 第19章:Web Storage
  • 什么是堡垒机?安全为什么需要堡垒机?
  • 设计模式-模板方法
  • SQL基础练习题三
  • 极氪汽车困局:营销频繁车、产品力不足
  • 群晖通过 Docker 安装 MySQL
  • 文心一言帮程序员干活:请帮我写出数字1到50的英文
  • Linux C语言 进程详解——fork()/wait()/waitpid()
  • 河北工业大学《2023年+2022年980自动控制原理真题》 (完整版)
  • Docker国内设置镜像最新加速地址
  • ddos攻击介绍和排查方法
  • 冲锋衣市场洞察:全方位数据分析与趋势展望
  • 深入解析浮动布局及其在现代Web开发中的应用与替代(浮动的概念及应用、如何清除浮动、使用Flex布局和Grid布局的区别、使用`float`布局的历史和现状)
  • c++ std::future 和 std::promise 的实现工作原理简介
  • 获取非加密邮件协议中的用户名和密码——安全风险演示
  • 操作系统任务操作