常用相机投影及畸变模型其二(针孔|广角|鱼眼)

文章跳转:

  1. 常用相机投影及畸变模型其一
  2. 常用相机投影及畸变模型其二

3. 广角相机理论知识

3.1 Central omnidirectional cameras

一个视觉系统是 central 的话,那么被观测物体的所有入射光线汇交于 3 D 3D 3D 空间的一个点,这个点称为映射中心 (projection center)单一有效视野点 (single effective viewpoint)。这个特性被称为单一有效视点特性。透视相机是中心投影系统的一个例子,因为不同的光线相交于一点,即相机的光学中心。
在这里插入图片描述所有的现代鱼眼摄像机都是 central 的,因此,它们满足单一有效视点特性(只是说满足单一有效视点特性,注意不是说现代鱼眼相机是通过镜面反射的-----即满足单一有效视点特性,就可以拟合类似的模型)。Central catadioptric cameras 由一个相机加上一个面镜所组成(如图,相机为底下成像平面,面镜为上面反射的mirror),相机和面镜的距离需要选择合适。面镜的家族里,能满足单一有效视野点特性的有 hyperbolic, parabolic, and elliptica 面镜。

  • Camera + hyperbolic mirror | Camera + parabolic mirror + orthographic lens
    在 hyperbolic 和 elliptical 面镜的情况下,单一有效视点特性是通过确保相机中心(针孔或透镜的中心)正值双曲线(椭圆)的焦点之一。在抛物(parabolic)面镜的情况下,必须在面镜和相机间插入一个直角的镜头,这使它可能平行光线反射抛物面镜收敛于摄像机中心:
    在这里插入图片描述
  • Camera + fisheye lens
    另一种不使用面镜来扩大摄像机FOV的方法是在摄像机CCD上方增加一个鱼眼镜头。鱼眼镜头是一种能将相机的FOV扩大到190°的镜头系统。如下图所示:
    在这里插入图片描述

3.2 单一有效视点特性为何重要

  1. 它允许用户从广角相机捕获的图片生成几何正确的透视图像。因为在单一有效视点约束下,感知图像中的每个像素测量光在一个特定方向通过视点的辐照度。当全向摄像机的几何位置已知时,也就是当摄像机被标定时,我们可以为每个像素预先计算这个方向。因此,可以将每个像素测量的辐照度值映射到距离视点任意距离的平面上,形成平面透视图像。此外,图像可以映射到以单个视点为中心的球体上,即球面投影。
  2. 允许用户应用著名的对极几何理论,这对于sfm来说是非常重要的。对极几何适用于任何 central 相机,无论是 perspective 还是 omnidirectional。

3.3 Unified model for central catadioptric cameras

直观上,有单一有效视点的折射反射模型相比标准透视相机会复杂一些。这个模型确实应该考虑到在折反射照相机的情况下由面镜操作带来的反射,或者在鱼眼照相机的情况下由透镜引起的折射。

Geyer和Daniilidis证明,每个折射反射的(parabolic, hyperbolic, elliptical) 和标准透视投影相当于从一个集中在单一视点的球体投影映射,到一个与球心垂直距离为 ϵ \epsilon ϵ (同后面的 ξ \xi ξ) 的投影平面。(MEI模型理论)
在这里插入图片描述
投影模型有四个步骤。令 P = ( x , y , z ) P=(x,y,z) P=(x,y,z) 为在面镜参考坐标系下以 C C C 为中心点的场景点。为方便起见,我们假设面镜的对称轴与相机的光轴完全对齐。我们还假设相机和面镜的 x x x 轴和 y y y 轴是对齐的。因此,摄像机和面镜参考系之间的差异仅在于沿 z z z 轴的平移。

  1. 将场景点投影在单位球体上,得到:
    P s = P ∥ P ∥ = ( x s , y s , z s ) P_{s}=\frac{P}{\|P\|}=\left(x_{s}, y_{s}, z_{s}\right) Ps=PP=(xs,ys,zs)

  2. 点坐标被改变为一个新的 C ϵ = ( 0 , 0 , − ϵ ) C_{\epsilon}=(0,0,-\epsilon) Cϵ=(0,0,ϵ) 为中心的参考系,因此:
    P ϵ = ( x s , y s , z s + ϵ ) P_{\epsilon}=\left(x_{s}, y_{s}, z_{s}+\epsilon\right) Pϵ=(xs,ys,zs+ϵ)

    ϵ \epsilon ϵ 的范围通常在0 (planar mirror) 和 1 (parabolic mirror)之间。正确的 ϵ \epsilon ϵ 的值可以通过 d:distance between focal pointsl:the latus rectum 得到。

在这里插入图片描述

  1. P ϵ P_{\epsilon} Pϵ 之后被映射到了与 C ϵ C_{\epsilon} Cϵ 距离为 1 1 1 的归一化平面(同针孔模型归一化坐标),因此:
    m ~ = ( x m , y m , 1 ) = ( x s z s + ϵ , y s z s + ϵ , 1 ) = g − 1 ( P s ) \tilde{m}=\left(x_{m}, y_{m}, 1\right)=\left(\frac{x_{s}}{z_{s}+\epsilon}, \frac{y_{s}}{z_{s}+\epsilon}, 1\right)=g^{-1}\left(P_{s}\right) m~=(xm,ym,1)=(zs+ϵxs,zs+ϵys,1)=g1(Ps)

  2. 最后,将点 m ~ \tilde{m} m~ 映射到相机图像点 p ~ = ( u , v , 1 ) \tilde{p}=(u, v, 1) p~=(u,v,1),通过内参矩阵 K K K,因此:
    p ~ = K m ~ \tilde{p}=K \tilde{m} p~=Km~
    其中 K K K为( θ \theta θ 为倾角,一般为 0):
    K = [ α u α u cot ⁡ ( θ ) u 0 0 α v v 0 0 0 1 ] K=\left[\begin{array}{ccc} \alpha_{u} & \alpha_{u} \cot (\theta) & u_{0} \\ 0 & \alpha_{v} & v_{0} \\ 0 & 0 & 1 \end{array}\right] K= αu00αucot(θ)αv0u0v01

    很容易证明 g − 1 g^{-1} g1 是双射的 (正反向一一对应),它的逆 g g g 为:
    P s = g ( m ) ∝ [ x m y m 1 − ϵ x m 2 + y m 2 + 1 ϵ + 1 + ( 1 − ϵ 2 ) ( x m 2 + y m 2 ) ] P_{s}=g(m) \propto\left[\begin{array}{c} x_{m} \\ y_{m} \\ 1-\epsilon \frac{x_{m}^{2}+y_{m}^{2}+1}{\epsilon+\sqrt{1+\left(1-\epsilon^{2}\right)\left(x_{m}^{2}+y_{m}^{2}\right)}} \end{array}\right] Ps=g(m) xmym1ϵϵ+1+(1ϵ2)(xm2+ym2) xm2+ym2+1

    ∝ \propto 表明 g g g 与右边的式子成正比。要得到归一化因子,只要在单位球体上归一化 g ( m ) g(m) g(m) 就足够了。因为 P s P_s Ps 在单位圆上,因此 x s 2 + y s 2 + z s 2 = 1 x_{s}^{2}+y_{s}^{2}+z_{s}^{2}=1 xs2+ys2+zs2=1。推导过程可见 Section 3.4

这个函数是 central cata-dioptric cameras 投影模型的核心。它表示了归一化图像平面上的点 m m m 与面镜参考系中单位向量 P s P_s Ps 的关系。注意在平面面镜的情况下,我们有 ϵ = 0 \epsilon = 0 ϵ=0,透视相机的投影方程为: P s ∝ ( x m , y m , 1 ) P_{s} \propto\left(x_{m}, y_{m}, 1\right) Ps(xm,ym,1)

这个模型被证明可以准确描述所有的 central catadioptric cameras (parabolic, hyperbolic, elliptical mirror) 和标准透视相机。这种模型有对鱼眼的扩展,然而,通过折射光近似的鱼眼相机只能在有限的精度上有效。这主要是因为,虽然三种central catadioptric cameras 可以通过精确的参数函数(抛物线、双曲线、椭圆)来表示,但鱼眼镜头的投影模型因相机而异,并取决于镜头的视场。

3.4 全向模型(Omnidirectional)

全向模型利用面镜(mirror)反射进行成像的相机使用的模型。该模型带有一个参数 ξ \xi ξ.
首先将相机坐标系的点归一化到半径为1的球面上:
( x s y s z s ) = 1 x c 2 + y c 2 + z c 2 ( x c y c z c ) \left(\begin{array}{l} x_{s} \\ y_{s} \\ z_{s} \end{array}\right)=\frac{1}{\sqrt{x_{c}^{2}+y_{c}^{2}+z_{c}^{2}}}\left(\begin{array}{l} x_{c} \\ y_{c} \\ z_{c} \end{array}\right) xsyszs =xc2+yc2+zc2 1 xcyczc

然后再投影到图像平面上:
x u = x s z s + ξ , y u = y s z s + ξ x_{u}=\frac{x_{s}}{z_{s}+\xi}, \quad y_{u}=\frac{y_{s}}{z_{s}+\xi} xu=zs+ξxs,yu=zs+ξys
其逆变换推导出来如下:
x s 2 + y s 2 + z s 2 = 1 ⇒ x u 2 ( z s + ξ ) 2 + y u 2 ( z s + ξ ) 2 + z s 2 = 1 ⇒ ( x u 2 + y u 2 + 1 ) z s 2 + 2 ξ ( x u 2 + y u 2 ) z s + x u 2 ξ 2 + y u 2 ξ 2 − 1 = 0 ⇒ [ x s y s z s ] = [ ξ + 1 + ( 1 − ξ 2 ) ( x u 2 + y u 2 ) x u 2 + y u 2 + 1 x u ξ + 1 + ( 1 − ξ 2 ) ( x u 2 + y u 2 ) x u 2 + y u 2 + 1 y u ξ + 1 + ( 1 − ξ 2 ) ( x u 2 + y u 2 ) x u 2 + y u 2 + 1 − ξ ] \begin{array}{c} \sqrt{x_{s}^{2}+y_{s}^{2}+z_{s}^{2}}=1 \\ \Rightarrow x_{u}^{2}\left(z_{s}+\xi\right)^{2}+y_{u}^{2}\left(z_{s}+\xi\right)^{2}+z_{s}^{2}=1 \\ \Rightarrow\left(x_{u}^{2}+y_{u}^{2}+1\right) z_{s}^{2}+2 \xi\left(x_{u}^{2}+y_{u}^{2}\right) z_{s}+x_{u}^{2} \xi^{2}+y_{u}^{2} \xi^{2}-1=0 \end{array}\\ \Rightarrow\left[\begin{array}{l} x_{s} \\ y_{s} \\ z_{s} \end{array}\right]=\left[\begin{array}{c} \frac{\xi+\sqrt{1+\left(1-\xi^{2}\right)\left(x_{u}^{2}+y_{u}^{2}\right)}}{x_{u}^{2}+y_{u}^{2}+1} x_{u} \\ \frac{\xi+\sqrt{1+\left(1-\xi^{2}\right)\left(x_{u}^{2}+y_{u}^{2}\right)}}{x_{u}^{2}+y_{u}^{2}+1} y_{u} \\ \frac{\xi+\sqrt{1+\left(1-\xi^{2}\right)\left(x_{u}^{2}+y_{u}^{2}\right)}}{x_{u}^{2}+y_{u}^{2}+1}-\xi \end{array}\right] xs2+ys2+zs2 =1xu2(zs+ξ)2+yu2(zs+ξ)2+zs2=1(xu2+yu2+1)zs2+2ξ(xu2+yu2)zs+xu2ξ2+yu2ξ21=0 xsyszs = xu2+yu2+1ξ+1+(1ξ2)(xu2+yu2) xuxu2+yu2+1ξ+1+(1ξ2)(xu2+yu2) yuxu2+yu2+1ξ+1+(1ξ2)(xu2+yu2) ξ

最后,注意当 ξ = 0 \xi=0 ξ=0 时,全向模型就退化为了针孔模型。
相应的得到归一化平面坐标为:
[ x s z s − ξ y s z s − ξ z s z s + ξ ] = [ x u y u 1 − ξ x u 2 + y u 2 + 1 ξ + 1 + ( 1 − ξ 2 ) ( x u 2 + y u 2 ) ] \left[\begin{array}{c} \frac{x_{s}}{z_{s}-\xi} \\ \frac{y_{s}}{z_{s}-\xi} \\ \frac{z_{s}}{z_{s}+\xi} \end{array}\right]=\left[\begin{array}{c} x_u \\ y_u \\ 1-\xi \frac{x_u^{2}+y_u^{2}+1}{\xi+\sqrt{1+\left(1-\xi^{2}\right)\left(x_u^{2}+y_u^{2}\right)}} \end{array}\right] zsξxszsξyszs+ξzs = xuyu1ξξ+1+(1ξ2)(xu2+yu2) xu2+yu2+1

4. 鱼眼镜头

由于鱼眼镜头会产生极大的形变,因此针孔模型无法为鱼眼镜头建模。鱼眼镜头一般是由十几个不同的透镜组合而成的,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头与普通镜头相比起来拥有了更大的视野范围。下图表示出了鱼眼相机的一般组成结构。最前面的两个镜头发生折射,使入射角减小,其余的镜头相当于一个成像镜头,这种多元件的构造结构使对鱼眼相机的折射关系的分析变得相当复杂。
在这里插入图片描述
研究表明鱼眼相机成像时遵循的模型可以近似为单位球面投影模型。可以将鱼眼相机的成像过程分解成两步:

  1. 三维空间点线性地投影到一个球面上,它是一个虚拟的单位球面,它的球心与相机坐标系的原点重合。
  2. 单位球面上的点投影到图像平面上,这个过程是非线性的。
    下图表示出了鱼眼相机的成像过程:
    在这里插入图片描述

我们知道,普通相机成像遵循的是针孔相机模型,在成像过程中实际场景中的直线仍被投影为图像平面上的直线。但是鱼眼相机如果按照针孔相机模型成像的话,投影图像会变得非常大,当相机视场角达到180°时,图像甚至会变为无穷大。所以,鱼眼相机的投影模型为了将尽可能大的场景投影到有限的图像平面内,允许了相机畸变的存在。并且由于鱼眼相机的径向畸变非常严重,所以鱼眼相机主要的是考虑径向畸变,而忽略其余类型的畸变。

4.1 投影函数

为了将尽可能大的场景投影到有限的图像平面内,鱼眼相机会按照一定的投影函数来设计。根据投影函数的不同,鱼眼相机的设计模型大致能被分为四种:等距投影模型等立体角投影模型正交投影模型体视投影模型(简单的说,就是把球面上的点一一映射到平面的方法)。下面的四种鱼眼相机的投影模型反映出了空间中的一点 P P P 是如何投影到球面上,然后到图像平面上成像的。

4.1.1 等距投影模型(Equidistant)

在这里插入图片描述

公式: r d = f θ r_d = f\theta rd=fθ (距离与 θ \theta θ 成正相关,在 θ \theta θ 足够小时,可以近似看成是与弧长正相关)
该模型是使用最多的模型,上述式子中, r d r_d rd 表示鱼眼图像中的点到畸变中心(画面中心)的距离, f f f是鱼眼相机的焦距, θ \theta θ是入射光线与鱼眼相机光轴之间的夹角,即入射角。
这种投影方式的特点是,物体在成像平面上离开画面中心的距离,与物体在空间中离开光轴的角度成正比,这个比例系数就是镜头焦距。在这种投影变换下,物体离开中心的距离(角度)就是一个重要的几何性质,物体的空间角距离与物体的像在像平面上的平面距离,是成正比的。这也是这个投影方式名称的来源。在下图的模拟场景中,中间一列的各个小方格的高度都是一样的:
在这里插入图片描述

4.1.2 等立体角/等积投影模型(Equisolid Angle/Equal Area)

在这里插入图片描述

公式: r d = 2 f s i n ( θ 2 ) r_d = 2fsin(\frac{\theta}{2}) rd=2fsin(2θ)
这种投影方式的特征在于,能保持变换前后,物体所占的立体角大小不变。或者说,在半球空间中,半球面上两个面积相同的图案,成像后,在成像平面上的两个图案的面积仍然相同(虽然两者形状不一定相似)。这正式这个投影方式名字的由来。在下图的模拟场景中,圆筒壁上每一列的各个小方格的面积都是相等的:
在这里插入图片描述

4.1.3 体视投影/立体投影模型(Stereographic)

在这里插入图片描述
公式: r d = 2 f t a n ( θ 2 ) r_d = 2ftan(\frac{\theta}{2}) rd=2ftan(2θ)
这种投影方式的特点是能保持角度不变,这在数学上是一个非常良好的性质,叫做保角变换(Conform)。保持角度不变,意思是任何直线相交的角度,在变换之后是保持不变的(虽然直线本身可能变弯曲)。在保角变换下,一个圆仍然还是一个圆(直线可以看做直径无穷大的圆)。所以在某种程度上,保角变换也是保持了「形状」不变的。在下面的模拟场景中,圆筒壁上的所有边界线,全部都变成了圆弧;所有线的交角,也都保持了 90° 不变:
在这里插入图片描述

4.1.4 正交投影模型(Orthographic)

在这里插入图片描述
公式: r d = f s i n ( θ ) r_d = fsin(\theta) rd=fsin(θ)
这种投影方式,就像是把整个半球直接拍扁,用公式表达就是 r=sin⁡(θ)。在几种投影方式中,这种投影方式带来的扭曲最大,对边缘物体压缩最厉害,实际很少使用。很显然,这种投影方式的最大视场角也不能大于 180°:
在这里插入图片描述

4.2 多项式投影模型/Kannala-Brandt Camera Model/KB

在这里插入图片描述

对于实际的鱼眼镜头来说,它们不可能精确地按照 4.1 中所述投影模型来设计,所以为了方便鱼眼相机的标定,Kannala 提出了一种鱼眼相机的一般多项式近似模型。通过前面的四个模型,可以发现 r d r_d rd θ \theta θ 的奇函数,而且将这些式子按泰勒级数展开,发现 r d r_d rd 可以用 θ \theta θ奇次多项式表示,即:
r d = k 0 θ + k 1 θ 3 + k 2 θ 5 + k 3 θ 7 + ⋯ r_{d}=k_{0} \theta+k_{1} \theta^{3}+k_{2} \theta^{5}+k_{3} \theta^{7}+\cdots rd=k0θ+k1θ3+k2θ5+k3θ7+

为了实际计算的方便,需要确定式中 r d r_d rd 取到的次幂数。Kannala 提出取式的前五项即取到的九次方,就给出了足够的自由度来很好地近似各种投影模型。 r d r_d rd 的一次项系数可以为 1 1 1,于是 OpenCV 中使用的鱼眼相机模型为:
r d = k 0 θ + k 1 θ 3 + k 2 θ 5 + k 3 θ 7 + k 4 θ 9 r_{d}=k_{0} \theta+k_{1} \theta^{3}+k_{2} \theta^{5}+k_{3} \theta^{7}+k_{4} \theta^{9} rd=k0θ+k1θ3+k2θ5+k3θ7+k4θ9

上式表示的模型是根据四种鱼眼相机投影模型得出的一种通用鱼眼相机多项式模型。这种模型根据 θ \theta θ 能够得到 r d r_d rd,即通过无畸变图像中的点能够计算出鱼眼图像中的畸变点。这种模型在 OpenCV 的鱼眼相机标定方法中是适用的,因为 OpenCV 借助标定板对鱼眼相机进行标定。从空间点到鱼眼图像上的点的变换过程可用式子表示为:
[ X c Y c Z c ] = R X + t x c = X c Z c , y c = Y c Z c r 2 = x c 2 + y c 2 θ = arctan ⁡ ( r ) θ d = k 0 θ + k 1 θ 3 + k 2 θ 5 + k 3 θ 7 + k 4 θ 9 x d = θ d r x c , y d = θ d r y c u = f x x d + c x , v = f y y d + c y \begin{array}{c} {\left[\begin{array}{c} X_{c} \\ Y_{c} \\ Z_{c} \end{array}\right]=R X+t} \\ x_{c}=\frac{X_{c}}{Z_{c}}, y_{c}=\frac{Y_{c}}{Z_{c}} \\ r^{2}=x_{c}^{2}+y_{c}^{2} \\ \theta=\arctan (r) \\ \theta_{d}=k_{0} \theta+k_{1} \theta^{3}+k_{2} \theta^{5}+k_{3} \theta^{7}+k_{4} \theta^{9} \\ x_{d}=\frac{\theta_{d}}{r} x_{c}, y_{d}=\frac{\theta_{d}}{r} y_{c} \\ u=f_{x} x_{d}+c_{x}, v=f_{y} y_{d}+c_{y} \end{array} XcYcZc =RX+txc=ZcXc,yc=ZcYcr2=xc2+yc2θ=arctan(r)θd=k0θ+k1θ3+k2θ5+k3θ7+k4θ9xd=rθdxc,yd=rθdycu=fxxd+cx,v=fyyd+cy

θ \theta θ 是入射角, θ d \theta_d θd 为畸变后的等效折射角(不是实际的折射角), r d r_d rd θ d \theta_d θd 满足 r d = f ⋅ t a n θ d r_d=f\cdot tan\theta_d rd=ftanθd,如果取等效焦距 f = 1 f=1 f=1(这里不是实际焦距,而是球面到成像平面使用的距离),就有 r d = t a n θ d r_d = tan\theta_d rd=tanθd​,考虑到相机的成像CCD平面尺寸一般都是几毫米,焦距在几百毫米左右,所以相机实际成像过程中 θ d \theta_d θd ​是比较小的, θ d \theta_d θd 可以近似用 θ d \theta_d θd ​表示( x → 0 x\rightarrow0 x0 t a n x = x tanx=x tanx=x),所以才有了等式:
r d = θ d = θ ( 1 + k 1 θ 2 + k 2 θ 4 + k 3 θ 6 + k 4 θ 8 ) \mathrm{r}_{\mathrm{d}}=\theta_{\mathrm{d}}=\theta\left(1+\mathrm{k}_1 \theta^2+\mathrm{k}_2 \theta^4+\mathrm{k}_3 \theta^6+\mathrm{k}_4 \theta^8\right) rd=θd=θ(1+k1θ2+k2θ4+k3θ6+k4θ8)

根据相似三角形定理可得(鱼眼镜头的成像原理到畸变矫正(完整版)):
r d r = x d x c = y d y c , x d = θ d r x c , y d = θ d r y c \frac{r_d}{r} = \frac{x_d}{x_c} = \frac{y_d}{y_c},x_d=\frac{\theta_d}{r}x_c, y_d=\frac{\theta_d}{r}y_c rrd=xcxd=ycyd,xd=rθdxc,yd=rθdyc

上面式子中, X X X表示空间点, X c X_c Xc表示相机坐标系下对应的空间点, R R R t t t 分别是两个坐标系之间的旋转矩阵和平移向量, ( u , v ) T (u,v)^T (u,v)T 表示投影到鱼眼图像上的对应点。OpenCV中对鱼眼相机的标定步骤能够分成四步:(1)初始化内参数;(2)初始化外参数;(3)使用LM算法最小化定位的图像点和投影的图像点之间的投影误差;(4)确定结果。

4.2 UCM (Unified Omnidirectional Camera Model)

该相机模型有5个参数 [ f x , f y , c x , c y , ξ ] \left[f_{x}, f_{y}, c_{x}, c_{y}, \xi\right] [fx,fy,cx,cy,ξ],它刚开始是针对于大FOV的鱼眼相机提出的,并且有两个优点:

  1. 它能精确地模拟各种图像设备和畸变的几何图像生成过程
  2. 它的反投影是一个闭式解

3D点首先被投影到单位球上,之后单位球上的点在以偏离z轴 ξ \xi ξ 大小为中心的通过针孔模型进行投影,投影的过程可以通过下图进行表示。

在这里插入图片描述

4.2.1 投影过程

假设相机坐标系下的点为 ( x , y , x ) (x,y,x) (x,y,x) ,像素坐标为 ( u , v ) (u,v) (u,v) d = x 2 + y 2 + z 2 d=\sqrt{x^{2}+y^{2}+z^{2}} d=x2+y2+z2 那么它的投影过程为:

  1. 将场景点投影在单位球体上,得到:
    P s = P ∥ P ∥ = ( x d , y d , z d ) P_{s}=\frac{P}{\|P\|}=\left(\frac{x}{d}, \frac{y}{d}, \frac{z}{d}\right) Ps=PP=(dx,dy,dz)
  2. 将中心偏离 z z z ξ \xi ξ 单位,得:
    P s ′ = ( x d , y d , z d + ξ ) = ( x d , y d , z + d ξ d ) P_{s'}=\left(\frac{x}{d}, \frac{y}{d}, \frac{z}{d}+\xi\right)=\left(\frac{x}{d}, \frac{y}{d}, \frac{z+d\xi}{d}\right) Ps=(dx,dy,dz+ξ)=(dx,dy,dz+dξ)
  3. 到平面距离为1,即归一化坐标为:
    P u = ( x ξ d + z , y ξ d + z , 1 ) P_{u}=\left(\frac{x}{\xi d+z}, \frac{y}{\xi d+z}, 1\right) Pu=(ξd+zx,ξd+zy,1)
  4. 投影到针孔模型上:
    [ u v ] = [ f x x ξ d + z + c x f y y ξ d + z + c y ] {\left[\begin{array}{l} u \\ v \end{array}\right]=\left[\begin{array}{l} f_{x} \frac{x}{\xi d+z}+c_{x} \\ f_{y} \frac{y}{\xi d+z}+c_{y} \end{array}\right]} [uv]=[fxξd+zx+cxfyξd+zy+cy]

4.2.2 反投影过程

首先通过针孔相机的反投影过程得到:
[ u ~ v ~ ] = [ ( u − c x ) / f x ( v − c x ) / f y ] \left[\begin{array}{l} \tilde{u} \\ \tilde{v} \end{array}\right]=\left[\begin{array}{l} \left(u-c_{x}\right) / f_{x} \\ \left(v-c_{x}\right) / f_{y} \end{array}\right] [u~v~]=[(ucx)/fx(vcx)/fy]
最后得到的反投影坐标为:
π u − 1 ( u ) = ξ + ( 1 − ξ 2 ) ( u ~ 2 + v ~ 2 ) u ~ 2 + v ~ 2 + 1 [ u ~ v ~ 1 ] − [ 0 0 ξ ] \pi_{u}^{-1}(\mathbf{u})=\frac{\xi+\sqrt{\left(1-\xi^{2}\right)\left(\tilde{u}^{2}+\tilde{v}^{2}\right)}}{\tilde{u}^{2}+\tilde{v}^{2}+1}\left[\begin{array}{l} \tilde{u} \\ \tilde{v} \\ 1 \end{array}\right]-\left[\begin{array}{l} 0 \\ 0 \\ \xi \end{array}\right] πu1(u)=u~2+v~2+1ξ+(1ξ2)(u~2+v~2) u~v~1 00ξ
将其乘以深度就得到了相机坐标系的点。

鱼眼DSO(Omnidirectional DSO: Direct Sparse Odometry)中,为了补偿透镜缺陷,对原始图像进行了径向切向去畸变,之后才使用该相机模型。所以在这里发现自己对相机模型和畸变模型一直存在混淆,相机模型应该是投影方式的不同,而去畸变是为了矫正相机透镜缺陷带来的问题,两者其实是独立的。

4.3 EUCM (Extended Unified Camera Model)

由于UCM是将三维点先投影在球面上,而为了表征更复杂的投影效果,EUCM在投影时将上面的球面升级为椭球面,增加了一个椭圆参数 β \beta β,其他投影折射过程和UCM一致。当 β \beta β为1时,EUCM退化为UCM。对于EUCM模型来说,它需要标定六个参数 [ f x , f y , c x , c y , α , β ] [f x, f y, c x, c y, \alpha, \beta] [fx,fy,cx,cy,α,β],其中前四个是相机的内参,后两个是畸变系数,可以通过使用kalibr工具进行标定。
有了这6个参数,就可以计算图像的坐标了,它的模型如下,其中 z z z 为光轴:
在这里插入图片描述

  • x x x: 相机坐标系坐标
  • x p x_p xp: 投影平面坐标系坐标(椭球坐标)
  • q q q: 归一化平面坐标系坐标(M平面)

根据上面的坐标、内参和畸变系数可以得到他们之间的关系。
相机坐标到像素坐标: x → q → u \mathbf{x}\rightarrow \mathbf{q} \rightarrow \mathbf{u} xqu
                  相机坐标 → \rightarrow 归一化平面坐标 → \rightarrow 像素坐标

4.3.1 归一化平面坐标

q = [ x / [ α ρ + ( 1 − α ) z ] y / [ α ρ + ( 1 − α ) z ] 1 ] \mathbf{q}=\left[\begin{array}{c}x /[\alpha \rho+(1-\alpha) z] \\ y /[\alpha \rho+(1-\alpha) z] \\ 1\end{array}\right] q= x/[αρ+(1α)z]y/[αρ+(1α)z]1
其中 ρ = β ( x 2 + y 2 ) + z 2 \rho=\sqrt{\beta\left(x^{2}+y^{2}\right)+z^{2}} ρ=β(x2+y2)+z2 :x, y, z 都是相机坐标系下的坐标。相较于普通的针孔模型,它的归一化坐标多了一个系数, α \alpha α β \beta β都是畸变系数。

4.3.2 像素坐标

有了归一化平面坐标后,就可以使用内参进行投影了:

π ( x ) = u = [ f x 0 0 f y ] [ x / [ α ρ + ( 1 − α ) z ] y / [ α ρ + ( 1 − α ) z ] ] + [ c x c y ] \pi(\mathbf{x})=\mathbf{u}=\left[\begin{array}{cc}f_{x} & 0 \\ 0 & f_{y}\end{array}\right]\left[\begin{array}{l}x /[\alpha \rho+(1-\alpha) z] \\ y /[\alpha \rho+(1-\alpha) z]\end{array}\right]+\left[\begin{array}{c}c_{x} \\ c_{y}\end{array}\right] π(x)=u=[fx00fy][x/[αρ+(1α)z]y/[αρ+(1α)z]]+[cxcy]

4.3.3 像素坐标到相机坐标

在实际情况中,从图像中得到特征点,这是他的像素坐标,如何准确的恢复到世界坐标系中也是很重要的,畸变的影响会导致它最后反投影的点的结果不准确。

4.3.3.1 椭圆球面坐标

该坐标可以通过像素坐标进行转换,假设椭球面坐标 x p = [ m x m y m z ] T \mathbf{x}_{p}=\left[\begin{array}{lll}m_{x} & m_{y} & m_{z}\end{array}\right]^{T} xp=[mxmymz]T,那么它的值为:
m x = u − c x f x m y = v − c y f y m z = 1 − β α 2 r 2 α 1 − ( 2 α − 1 ) β r 2 + ( 1 − α ) \begin{array}{c} m_{x}=\frac{u-c_{x}}{f_{x}} \\ m_{y}=\frac{v-c_{y}}{f_{y}} \\ m_{z}=\frac{1-\beta \alpha^{2} r^{2}}{\alpha \sqrt{1-(2 \alpha-1) \beta r^{2}}+(1-\alpha)} \end{array} mx=fxucxmy=fyvcymz=α1(2α1)βr2 +(1α)1βα2r2

其中 r 2 = m x 2 + m y 2 r^{2}=m_{x}^{2}+m_{y}^{2} r2=mx2+my2 r 2 ≤ 1 β ( 2 α − 1 ) r^{2} \leq \frac{1}{\beta(2 \alpha-1)} r2β(2α1)1。归一化平面坐标和椭圆球面坐标只有 z z z不相同(归一化平面坐标由椭圆球面坐标投影而来)。

4.3.4 相机坐标

这里的恢复就需要用到两帧图像的对应椭球面坐标进行三角化才可以得到相机坐标,椭球面坐标其实就相当于针孔相机去畸变之后的坐标,根据它得到的路标点才是比较准确的。

4.4 Mei模型

Mei模型主要基于在第三部分中由Geyer和Daniilidis提出的投影模型,详细的推导公式再重写一下。
在这里插入图片描述

Full projection model

3D点的投影可以通过以下步骤完成:

  1. 在 mirror 坐标系上的世界点映射到单位圆上:
    ( X ) F m → ( X s ) F m = X ∥ X ∥ = ( X s , Y s , Z s ) (\mathcal{X})_{\mathcal{F}_m} \rightarrow\left(\mathcal{X}_s\right)_{\mathcal{F}_m}=\frac{\mathcal{X}}{\|\mathcal{X}\|}=\left(X_s, Y_s, Z_s\right) (X)Fm(Xs)Fm=XX=(Xs,Ys,Zs)

  2. 将这些点转换为以 C p = ( 0 , 0 , ξ ) \mathcal{C_p=(0,0,\xi)} Cp=(0,0,ξ) 为中心的新参考系上:
    ( X s ) F m → ( X s ) F p = ( X s , Y s , Z s + ξ ) \left(\mathcal{X}_s\right)_{\mathcal{F}_m} \rightarrow\left(\mathcal{X}_s\right)_{\mathcal{F}_p}=\left(X_s, Y_s, Z_s+\xi\right) (Xs)Fm(Xs)Fp=(Xs,Ys,Zs+ξ)

  3. 将它们投影到归一化图像平面上:
    m u = ( X s Z s + ξ , Y s Z s + ξ , 1 ) = ℏ ( X s ) \mathbf{m}_u=\left(\frac{X_s}{Z_s+\xi}, \frac{Y_s}{Z_s+\xi}, 1\right)=\hbar\left(\mathcal{X}_s\right) mu=(Zs+ξXs,Zs+ξYs,1)=(Xs)

  4. 添加上径向和切向畸变:
    m d = m u + D ( m u , V ) \mathbf{m}_d=\mathbf{m}_u+D\left(\mathbf{m}_u, V\right) md=mu+D(mu,V)

  5. 最终投影涉及一个广义相机投影矩阵 K \mathbf{K} K(其中 γ \gamma γ 为广义焦距, ( u 0 , v 0 ) (u_0,v_0) (u0,v0) 为主点, s s s 斜度):
    p = K m = [ γ γ s u 0 0 γ r v 0 0 0 1 ] m = k ( m ) \mathbf{p}=\mathbf{K} \mathbf{m}=\left[\begin{array}{ccc} \gamma & \gamma s & u_0 \\ 0 & \gamma r & v_0 \\ 0 & 0 & 1 \end{array}\right] \mathbf{m}=k(\mathbf{m}) p=Km= γ00γsγr0u0v01 m=k(m)

    ℏ \hbar 使一个点从 π m u \pi_{m_u} πmu 上升(返回)到球面:
    ℏ − 1 ( m u ) = [ ξ + 1 + ( 1 − ξ 2 ) ( x 2 + y 2 ) x 2 + y 2 + 1 x ξ + 1 + ( 1 − ξ 2 ) ( x 2 + y 2 ) x 2 + y 2 + 1 y ξ + 1 + ( 1 − ξ 2 ) ( x 2 + y 2 ) x 2 + y 2 + 1 − ξ ] \hbar^{-1}\left(\mathbf{m}_u\right)=\left[\begin{array}{c} \frac{\xi+\sqrt{1+\left(1-\xi^2\right)\left(x^2+y^2\right)}}{x^2+y^2+1}x \\ \frac{\xi+\sqrt{1+\left(1-\xi^2\right)\left(x^2+y^2\right)}}{x^2+y^2+1} y \\ \frac{\xi+\sqrt{1+\left(1-\xi^2\right)\left(x^2+y^2\right)}}{x^2+y^2+1}-\xi \end{array}\right] 1(mu)= x2+y2+1ξ+1+(1ξ2)(x2+y2) xx2+y2+1ξ+1+(1ξ2)(x2+y2) yx2+y2+1ξ+1+(1ξ2)(x2+y2) ξ

总未知量有18个,通过优化(Levenberg-Marquardt)解得:

  • 未知参数一:从网格参考系到镜像参考系的旋转和平移(外参 V 1 = [ q w 1 q w 2 q w 3 q w 4 t w 1 t w 2 t w 3 ] V^{1}=\left[\begin{array}{llll}q_{w 1} & q_{w 2} & q_{w 3} & q_{w 4} & t_{w 1} & t_{w 2}\end{array} t_{w 3}\right] V1=[qw1qw2qw3qw4tw1tw2tw3])
  • 未知参数二:在mirror上的反射后点映射在正则化平面上(mirror参数 V 2 = ξ V^{2}=\xi V2=ξ)
  • 未知参数三:使用透镜产生的畸变(畸变参数 V 3 = [ k 1 k 2 k 3 k 4 k 5 ] V^{3}=\left[\begin{array}{llll} k_{1} & k_{2} & k_{3} & k_{4} & k_{5} \end{array}\right] V3=[k1k2k3k4k5])
  • 未知参数四:用广义相机投影矩阵(相机的内参 V 4 = [ α γ 1 γ 2 u 0 v 0 ] V^{4}=\left[\begin{array}{llll}\alpha & \gamma_{1} & \gamma_{2} & u_{0} & v_{0}\end{array}\right] V4=[αγ1γ2u0v0]), γ \gamma γ 包含相机焦距且该参数取决于面镜种类,可在下表中查看,但是在这里可以当成是焦距,而 u , v u,v u,v 表示主点

关于未知参数三 V 3 V^3 V3,考虑了两个主要的失真来源:

  1. 透镜形状的瑕疵带来的径向失真;
  2. 相机安装不当(包括相机光轴和面镜旋转轴没对上)所产生的径向和切向畸变。

畸变函数与针孔模型的相同 ρ = x 2 + y 2 \rho=\sqrt{x^2+y^2} ρ=x2+y2 ,
径向畸变:
L ( ρ ) = 1 + k 1 ρ 2 + k 2 ρ 4 + k 5 ρ 6 L(\rho)=1+k_1\rho^2+k_2\rho^4+k_5\rho^6 L(ρ)=1+k1ρ2+k2ρ4+k5ρ6
切向畸变:
d x = [ 2 k 3 x y + k 4 ( ρ 2 + 2 x 2 ) k 3 ( ρ 2 + 2 y 2 ) + 2 k 4 x y ] dx=\left[\begin{array}{c}2k_3xy+k_4(\rho^2+2x^2) \\ k_3(\rho^2+2y^2)+2k_4xy\end{array}\right] dx=[2k3xy+k4(ρ2+2x2)k3(ρ2+2y2)+2k4xy]

在这里插入图片描述
ξ \xi ξ 的大小和鱼眼相机的 FOV 有关,该算法通过使用 ξ \xi ξ 来模拟大于 180 ° 180\degree 180° 的鱼眼镜头。

4.5 Scara模型

4.5.1 广角相机模型

校准一个广角相机模型意味着寻找给定的 2 D 2D 2D像素点 p p p和从面镜有效视点处传出的 3 D 3D 3D向量 P P P之间的关系。一般来说,这个过程需要找到相机的内参和面镜的外参。该广角相机模型将成像系统作为了一个独特的紧凑系统,也就是说,它并不关心在组合相机内使用的是面镜还是鱼眼透镜。
在这里插入图片描述
值得注意的是,在此坐标系中, x x x u u u 方向向下, y y y v v v 方向向右, z z z 轴透过纸面向外:这与针孔相机模型是相反的。因此在求 N Z N_Z NZ 的时候为负值。

4.5.2 模型假设

Scara模型基于以下假设:

  1. 面镜/透镜相机系统是 central 系统,因此,在面镜上存在一个点,每条反射光线都在这个点上相交。这个点被认为是摄像机坐标系 XYZ 的轴原点。比如有一单一有效视点 O O O,3D点都会经过该点 O O O,然后再映射到传感器平面上
  2. 假设相机和面镜的光轴很好的对齐(不考虑切向畸变),也就是说,只有很小的旋转偏差被考虑到模型中
  3. 面镜对于它的轴是旋转对称的
  4. 模型中没有考虑相机的透镜畸变,因为广角相机使用的面镜通常需要大的焦距在面镜上聚焦图像。因此,透镜的失真可以被忽略。如果你使用鱼眼镜头(全是透镜),相机镜头畸变已经被集成在了投影函数 f f f里面。

4.5.3 Scara 模型

在这里插入图片描述

  • 假设假设2完全符合需求,及相机和面镜光轴完全对齐。如上图所示,令 P = [ x y z ] \mathbf{P}=\begin{bmatrix}x\\y \\z\end{bmatrix} P= xyz 为任一点到单一有效视点 O O O 的三维向量(与后文的 P \mathbf{P} P 表示不一致)。假设 P \mathbf{P} P 在图像平面的的投影像素点为 [ u , v ] [u,v] [u,v],它是相对于图像中心的像素坐标。
    [图片]

    这时因为相机和面镜光轴被假设为完美对齐,因此 x x x y y y 分别与 u ′ u' u v ′ v' v 成比例:
    [ x y ] = λ ⋅ [ u ′ v ′ ] , α > 0 \begin{bmatrix}x\\y \end{bmatrix}=\lambda\cdot\begin{bmatrix}u'\\v'\end{bmatrix}, \alpha>0 [xy]=λ[uv],α>0我们想要标定估计的函数是将图像点 p p p 映射到其对应的 3 D 3D 3D 向量 P P P 的函数。写成:
    P = [ x y z ] = [ α ⋅ u α ⋅ v α ⋅ f ( u , v ) ] = [ u v f ( u , v ) ] \mathbf{P}=\left[\begin{array}{l} x \\ y \\ z \end{array}\right]=\left[\begin{array}{c} \alpha \cdot u \\ \alpha \cdot v \\ \alpha \cdot f(u, v) \end{array}\right]=\left[\begin{array}{c} u \\ v \\ f(u, v) \end{array}\right] P= xyz = αuαvαf(u,v) = uvf(u,v) 因为这里的 P \mathbf{P} P 不是一个3D点,而是一个向量,因此前面的简化是被允许的。
    因为面镜是旋转对称的,上面公式内的函数 f ( u , v ) f(u, v) f(u,v) 仅取决于点到图像中心的距离 ρ = u 2 + v 2 \rho=\sqrt{u^2+v^2} ρ=u2+v2
    于是方程被进一步简化为(正向没法知道 u u u v v v 的值,所以这里是cam2world时可以求得 f f f):
    P = [ x y z ] = [ u v f ( ρ ) ] P=\left[\begin{array}{l} x \\ y \\ z \end{array}\right]=\left[\begin{array}{c} u \\ v \\ f(\rho) \end{array}\right] P= xyz = uvf(ρ) 在此需要标定的函数只有 f ( ρ ) f(\rho) f(ρ)。该函数是个如下所示的多项式:
    f ( ρ ) = a 0 + a 1 ρ + a 2 ρ 2 + a 3 ρ 3 + a 4 ρ 4 + … f(\rho)=a_{0}+a_{1} \rho+a_{2} \rho^{2}+a_{3} \rho^{3}+a_{4} \rho^{4}+\ldots f(ρ)=a0+a1ρ+a2ρ2+a3ρ3+a4ρ4+所以需要估计的参数为: a 1 , a 2 , a 3 , a 4 , . . . a_1,a_2,a_3,a_4,... a1,a2,a3,a4,...,该方法可以指定多项式的幂,但是cam2world过程使用四次幂就可以得到最佳的标定结果了。

    • 值得注意的是,经过标定会发现 a 1 = 0 a_1=0 a1=0,这是因为,当 f ( ρ ) f(\rho) f(ρ) 取极大值时,图像坐标 u = v = 0 u=v=0 u=v=0,也就是入射角为 0 ° 0° f ( ρ ) f(\rho) f(ρ) 取导数, f ′ ( ρ ) = 0 f'(\rho)=0 f(ρ)=0 ρ = u 2 + v 2 = 0 \rho=\sqrt{u^2+v^2}=0 ρ=u2+v2 =0,那么 a 1 = 0 a_1=0 a1=0
      在world2cam的时候, θ = a r c t a n ( x ′ ′ 2 + y ′ ′ 2 z ′ ′ 2 ) \theta = arctan(\frac{x''^2+y''^2}{z''^2}) θ=arctan(z′′2x′′2+y′′2),这样可以求出入射光的夹角,通过夹角,可以求出在成像平面上,点到图像中心的距离 ρ \rho ρ。即在world2cam的时:
      ρ = a 0 + a 1 θ + a 2 θ 2 + a 3 θ 3 + . . . \rho = a_0 + a_1\theta + a_2\theta^2 + a_3\theta^3 + ... ρ=a0+a1θ+a2θ2+a3θ3+...随后可以通过公式,可以反向求得在成像平面上的位置:
      u = x x 2 + y 2 ρ , v = y x 2 + y 2 ρ u = \frac{x}{\sqrt{x^2+y^2}}\rho,\quad v = \frac{y}{\sqrt{x^2+y^2}}\rho u=x2+y2 xρ,v=x2+y2 yρ其中 x x 2 + y 2 \frac{x}{\sqrt{x^2+y^2}} x2+y2 x为归一化,即求得在图像中的方向; ρ \rho ρ 为图像中离中心的距离。
  • 在之前的模型中,我们假设相机和面镜轴完美对齐。实际上,由于相机-镜子设置的自然误差,可能会出现与这一假设的小偏差(切向畸变)。此外,由于相机的数字化过程,像素也许不是正方形的(skew)。这些问题的自然结果是,镜面的圆形外边界呈现为椭圆,如下图所示:
    [图片]

    为了考虑到这些因素,对对准误差做了建模,并通过仿射变换对 artefact 做了数字化。
    [图片]

    这个方程将真实扭曲的坐标 ( u ′ , v ′ ) (u',v') (u,v) 与理想的未失真的坐标 ( u , v ) (u,v) (u,v) 联系起来。

4.5.4 论文内写法

[图片]

  • (b) 传感器平面( u ′ ′ u'' u′′ v ′ ′ v'' v′′公制坐标,比如mm)
  • (c) 图像平面( u ′ u' u v ′ v' v相机平面),变成了一个鱼眼图像
  • 假设 P = [ X c Y c Z c ] \mathbf{P}=\begin{bmatrix}X_c\\Y_c \\Z_c\end{bmatrix} P= XcYcZc 为相机坐标系下一3D点, u ′ ′ = [ u ′ ′ , v ′ ′ ] \mathbf{u''}=[u'',v''] u′′=[u′′,v′′] P \mathbf{P} P 投影到的传感器平面 u ′ = [ u ′ , v ′ ] \mathbf{u'}=[u',v'] u=[u,v] 为它在图像平面的位置。
    使用仿射变换,将图像从传感器平面转换到图像平面 u ′ ′ = A u ′ + t , A ∈ R 2 × 2 , t ∈ R 2 × 1 \mathbf{u''}=A\mathbf{u'}+t,A\in\mathbb{R^{2\times2}},t\in\mathbb{R^{2\times1}} u′′=Au+t,AR2×2,tR2×1,也就是:
    ( u ′ ′ v ′ ′ ) = ( c d e 1 ) ( u ′ v ′ ) + ( c x c y ) \begin{pmatrix}u''\\v''\end{pmatrix}=\begin{pmatrix}c&d\\e&1\end{pmatrix}\begin{pmatrix}u'\\v'\end{pmatrix}+\begin{pmatrix}c_x\\c_y\end{pmatrix} (u′′v′′)=(ced1)(uv)+(cxcy)
  • 这里使用了一个图像映射函数 g \mathbf{g} g,将图中的3D向量 p \mathbf{p} p 投影到场景点 X \mathbf{X} X
    λ ⋅ p = λ ⋅ g ( u ′ ′ ) = λ ⋅ g ( A u ′ + t ) = P X , λ > 0 \lambda\cdot \mathbf{p} =\lambda\cdot\boldsymbol{g}\big(\boldsymbol{u''}\big)= \lambda\cdot\boldsymbol{g}\big(\boldsymbol{Au'+t}\big)= \boldsymbol{PX}, \lambda>0 λp=λg(u′′)=λg(Au+t)=PX,λ>0其中 X ∈ R 4 \mathbf{X}\in\mathbb{R}^4 XR4 被表示为齐次坐标系; P ∈ R 3 × 4 P\in\mathbb{R}^{3\times4} PR3×4透视投影矩阵(从真实世界到相机照片的变换就是一个透视变换:仿射变换和透视变换,但透视矩阵不应该是 R 4 × 4 \mathbb{R}^{4\times4} R4×4 的么)
    g \mathbf{g} g 可以表示为以下公式:
    g ( u ′ ′ , v ′ ′ ) = ( u ′ ′ , v ′ ′ , w ′ ′ ) T = ( u ′ ′ , v ′ ′ , f ( u ′ ′ , v ′ ′ ) ) T \mathbf{g}\left(u'',v''\right)=(u'',v'',w'')^\mathrm{T}=\left(u'',v'',f\left(u'',v''\right)\right)^\mathrm{T} g(u′′,v′′)=(u′′,v′′,w′′)T=(u′′,v′′,f(u′′,v′′))T函数 f f f 可以有与镜面或透镜结构相关的各种形式,这里建立的是一个广义参数模型,以适用于不同类型的传感器,并希望该模型能补偿面镜(或鱼眼透镜)的焦点和相机光学中心不对齐的问题:
    f ( u ′ ′ , v ′ ′ ) = a 0 + a 1 ρ ′ ′ + a 2 ρ ′ ′ 2 + . . . + a N ρ ′ ′ N f\Big(u'',v''\Big)=a_0+a_1\rho''+a_2{\rho''}^2+...+a_N{\rho''}^N f(u′′,v′′)=a0+a1ρ′′+a2ρ′′2+...+aNρ′′N其中 ρ ′ ′ = u ′ ′ 2 + v ′ ′ 2 \rho''=\sqrt{u''^2+v''^2} ρ′′=u′′2+v′′2 。所以公式可以重写为:
    [ X c Y c Z c ] = λ ⋅ [ u ′ ′ v ′ ′ w ′ ′ ] = λ ⋅ g ( A u ′ + t ) = λ ⋅ [ ( A u ′ + t ) f ( u ′ ′ , v ′ ′ ) ] = P X , λ > 0 \begin{bmatrix}X_c\\Y_c \\Z_c\end{bmatrix}=\lambda\cdot\begin{bmatrix}u''\\v''\\w''\end{bmatrix}=\lambda\cdot\mathbf{g}\big(\mathbf{A}\boldsymbol{u'}+\mathbf{t}\big)=\lambda\cdot\begin{bmatrix}\big(\mathbf{A}\boldsymbol{u'}+\mathbf{t}\big)\\f\big(u'',v''\big)\end{bmatrix}=P\boldsymbol{X},\quad\lambda>0 XcYcZc =λ u′′v′′w′′ =λg(Au+t)=λ[(Au+t)f(u′′,v′′)]=PX,λ>0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泠山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值