自动驾驶环境感知——视觉传感器技术

news2024/10/6 2:27:21

文章目录

  • 1. 摄像头的成像原理
    • 1.1 单目视觉传感器的硬件结构
    • 1.2 单目视觉的成像原理 –小孔成像模型
    • 1.3 单目视觉的成像原理 – 像素坐标系
    • 1.4 单目视觉三维坐标系转换 – 外参
    • 1.5 单目视觉的坐标系转换 – 从世界坐标点到像素坐标
    • 1.6 单目视觉的特性
  • 2. 视觉传感器的标定
    • 2.1 视觉传感器标定原理 – 线性标定法
    • 2.2 相机畸变模型
      • 2.2.1 径向畸变
      • 2.2.2 切向畸变
    • 2.3 单目相机标定方法
    • 2.4 双目相机标定
      • 2.4.1 双目相机模型
      • 2.4.2 双目相机标定方法
    • 2.5 俯视图转化标定——逆透视变换

1. 摄像头的成像原理

视觉传感器利用光学元件和成像装置获取外部环境图像信息的仪器

通常视觉传感器,其主要功能是获取足够的机器视觉系统要处理的最原始图像,类似于人类的眼睛。
在这里插入图片描述

1.1 单目视觉传感器的硬件结构

    单目视觉的相机模组的组件包括了lens(镜头)、分色滤色片(IR cut)、感光元件等。在这里插入图片描述    分色滤色片:对色光具有吸收、反射和透过作用的染有颜色的透明片。目前分色滤色片有两种分色方法:RGB原色分色法CMYK补色分色法
在这里插入图片描述    感光元件,其表面包含有几十万到几百万的光电二极管。光电二极管受到光照射时,就会产生电荷。感光元件一般包括CCD和CMOS两种。像素值一般为(0-255),电路噪声导致像素值失真.

1.2 单目视觉的成像原理 –小孔成像模型

在这里插入图片描述

成像模型相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程

相机坐标系 O − x − y − z O−x−y−z Oxyz 为相机坐标系,在轴指向相机前方, x x x轴向右, y y y轴向下。 O O O为摄像机的光心(或摄像头中心)。

物理成像平面 O ’ − x ’ − y ’ − z ’ O’−x’−y’−z’ Oxyz为物理成像平面。物理成像平面到小孔的距离为 f f f,称之为焦距。

成像原理空间点 P P P的光束被映射到图像平面,图像平面感光之后形成像素 P ′ P' P

    接下来看看具体的原理推导:
    首先,已知三维世界中的坐标点 P = ( X , Y , Z ) P=(X,Y,Z) P=X,Y,Z,成像平面中的 P ′ = ( X ′ , Y ′ ) P'=(X',Y') P=(X,Y),焦距为 f f f.由相似三角形原理可得, X ′ = − f ⋅ X Z Y ′ = − f ⋅ Y Z \begin{array}{c}X' = - \frac{{f \cdot X}}{Z}\\\\Y' = - \frac{{f \cdot Y}}{Z}\end{array} X=ZfXY=ZfY    在视觉感知中,常使用等效表达的方式来体现真实图像的输出过程在这里插入图片描述    因此,我们可以将式子改为 X ′ = f ⋅ X Z Y ′ = f ⋅ Y Z \begin{array}{c}X' = \frac{{f \cdot X}}{Z}\\\\Y' = \frac{{f \cdot Y}}{Z}\end{array} X=ZfXY=ZfY

1.3 单目视觉的成像原理 – 像素坐标系

在这里插入图片描述

    从成像平面坐标到像素坐标:图像是基于像素来表达。像素坐标和成像平面坐标之间,相差了一个缩放和原点的平移。
    假设正向成像平面中 P ’ = ( X ’ , Y ’ ) P’=(X’, Y’) P=(X,Y), 其像素坐标为 ( u , v ) (u, v) (u,v).
    缩放及平移的过程可以由下式来表达: { u = α X ′ + c x v = β Y ′ + c y \left\{ {\begin{array}{ccccccccccccccc}{u = \alpha X' + {c_x}}\\{v = \beta Y' + {c_y}}\end{array}} \right. {u=αX+cxv=βY+cy    将 P ′ P' P的坐标代入, X ′ = f ⋅ X Z , Y ′ = f ⋅ Y Z \begin{array}{c}X' = \frac{{f \cdot X}}{Z},Y' = \frac{{f \cdot Y}}{Z}\end{array} X=ZfXY=ZfY,可以得到三维坐标与像素坐标的转换关系 { u = f x X Z + c x v = f y Y Z + c y f x = α f , f y = β f \begin{array}{l}\left\{ {\begin{array}{ccccccccccccccc}{u = {f_x}\frac{X}{Z} + {c_x}}\\{v = {f_y}\frac{Y}{Z} + {c_y}}\end{array}} \right.\\{f_x} = \alpha f,{f_y} = \beta f\end{array} {u=fxZX+cxv=fyZY+cyfx=αf,fy=βf    用矩阵的形式表达: [ μ ν 1 ] = 1 Z [ f x 0 c x 0 f y c y 0 0 1 ] [ X Y Z ] \left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = \frac{1}{Z}\left[ {\begin{array}{ccccccccccccccc}{{f_x}}&0&{{c_x}}\\0&{{f_y}}&{{c_y}}\\0&0&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}X\\Y\\Z\end{array}} \right] μν1 =Z1 fx000fy0cxcy1 XYZ     其中, [ μ ν 1 ] \left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] μν1 为像素坐标, [ X Y Z ] \left[ {\begin{array}{ccccccccccccccc}X\\Y\\Z\end{array}} \right] XYZ 为相机坐标系中的三维坐标点, [ f x 0 c x 0 f y c y 0 0 1 ] \left[ {\begin{array}{ccccccccccccccc}{{f_x}}&0&{{c_x}}\\0&{{f_y}}&{{c_y}}\\0&0&1\end{array}} \right] fx000fy0cxcy1 内参矩阵

1.4 单目视觉三维坐标系转换 – 外参

    相机的三维坐标系( O C O_C OC) 并不是一个“稳定”的坐标系,会随着相机的移动而改变坐标的原点和各个坐标轴的方向。在应用中,相机安装在自动驾驶车辆上,随车辆运动相机坐标系实时变化。对一些需要固定特征坐标的应用,比如地图,因此需要引进一个稳定不变的坐标系:世界坐标系( O W O_W OW在这里插入图片描述    从某三维世界坐标系( O W O_W OW)到相机的三维坐标系( O C O_C OC)的变换,称为相机的外参,本质是将世界坐标系中的特征点,转换到相机坐标系
    三维坐标系的变换是一个刚性平移加旋转的过程,变换包括平移向量( t t t:3x1)以及旋转矩阵( R R R:3x3)。
    三维坐标变换表达:已知某世界坐标系( O W O_W OW)中空间点 P W = ( X W , Y W , Z W ) P_W =(X_W, Y_W, Z_W) PW=(XW,YW,ZW)以及 O W O_W OW与相机坐标系( O C O_C OC)的变换 R , t R,t R,t. 求解此空间点在OC坐标系的坐标 P C = ( X C , Y C , Z C ) P_C =(X_C, Y_C, Z_C) PC=(XC,YC,ZC)
    下式即为三维坐标变换: [ X c Y c Z c ] = [ R 11 R 12 R 13 R 21 R 22 R 23 R 31 R 32 R 33 ] [ X w Y w Z w ] + [ t 1 t 2 t 3 ] \left[ {\begin{array}{ccccccccccccccc}{{X_c}}\\{{Y_c}}\\{{Z_c}}\end{array}} \right] = \left[ {\begin{array}{ccccccccccccccc}{{R_{11}}}&{{R_{12}}}&{{R_{13}}}\\{{R_{21}}}&{{R_{22}}}&{{R_{23}}}\\{{R_{31}}}&{{R_{32}}}&{{R_{33}}}\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}{{X_w}}\\{{Y_w}}\\{{Z_w}}\end{array}} \right] + \left[ {\begin{array}{ccccccccccccccc}{{t_1}}\\{{t_2}}\\{{t_3}}\end{array}} \right] XcYcZc = R11R21R31R12R22R32R13R23R33 XwYwZw + t1t2t3

1.5 单目视觉的坐标系转换 – 从世界坐标点到像素坐标

    最后对整个过程进行总结:
世界坐标系( O W O_W OW)中空间点 P W = ( X W , Y W , Z W ) P_W =(X_W, Y_W, Z_W) PW=(XW,YW,ZW),成像到相机中得出其像点 p = ( u , v ) p=(u,v) p=(u,v),需要经过三次变换:

  • 世界坐标系转换到相机三维坐标系→ 刚性变化,平移加旋转
  • 相机三维坐标系转换到相机成像平面坐标系 → 小孔成像模型
  • 相机成像坐标系转换到像素坐标系 →缩放加平移
    在这里插入图片描述

1.6 单目视觉的特性

在这里插入图片描述

  • 深度不确定:图中点X以及点X’的成像点是同一个像素点x。
  • 远小近大:高度为X的物体,离相机越远成像点越矮,远处看不见。
  • 易受遮挡:X与X’同时存在时,只能看到X,有盲区
  • 受光线强度影响:光线过强,都是255,光线过暗,都是0
  • 受分辨率影响:像素过低,细节就会丢失
  • 受帧率影响:像素过高,传输速率有限,图片帧率偏低
  • 受镜头影响:焦距和视角会直接决定看见的距离和角度范围

2. 视觉传感器的标定

    首先对成像公式进行整理:
在这里插入图片描述
[ μ ν 1 ] = 1 Z C [ f x 0 c x 0 f y c y 0 0 1 ] [ X C Y C Z C ] = 1 Z C ⋅ K ⋅ [ X C Y C Z C ] = [ μ ν 1 ] = 1 Z C [ f x 0 c x 0 f y c y 0 0 1 ] [ X C Y C Z C ] = 1 Z C ⋅ K ⋅ ( R ⋅ [ X W Y W Z W ] + t ) = 1 Z C ⋅ K ⋅ ( [ R t 0 1 ] [ X W Y W Z W 1 ] ) = M ⋅ [ X W Y W Z W 1 ] = [ M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M 10 M 11 M 12 ] ⋅ [ X W Y W Z W 1 ] \begin{array}{c}\left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = \frac{1}{{{Z_C}}}\left[ {\begin{array}{ccccccccccccccc}{{f_x}}&0&{{c_x}}\\0&{{f_y}}&{{c_y}}\\0&0&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}{{X_C}}\\{{Y_C}}\\{{Z_C}}\end{array}} \right]\\ = \frac{1}{{{Z_C}}} \cdot K \cdot \left[ {\begin{array}{ccccccccccccccc}{{X_C}}\\{{Y_C}}\\{{Z_C}}\end{array}} \right]\\ = \left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = \frac{1}{{{Z_C}}}\left[ {\begin{array}{ccccccccccccccc}{{f_x}}&0&{{c_x}}\\0&{{f_y}}&{{c_y}}\\0&0&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}{{X_C}}\\{{Y_C}}\\{{Z_C}}\end{array}} \right]\\ = \frac{1}{{{Z_C}}} \cdot K \cdot \left( {R \cdot \left[ {\begin{array}{ccccccccccccccc}{{X_W}}\\{{Y_W}}\\{{Z_W}}\end{array}} \right] + t} \right)\\ = \frac{1}{{{Z_C}}} \cdot K \cdot \left( {\left[ {\begin{array}{ccccccccccccccc}R&t\\0&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}{{X_W}}\\{{Y_W}}\\{{Z_W}}\\1\end{array}} \right]} \right)\\ = M \cdot \left[ {\begin{array}{ccccccccccccccc}{{X_W}}\\{{Y_W}}\\{{Z_W}}\\1\end{array}} \right]\\ = \left[ \begin{array}{l}\begin{array}{ccccccccccccccc}{{M_1}}&{{M_2}}&{{M_3}}&{{M_4}}\end{array}\\\begin{array}{ccccccccccccccc}{{M_5}}&{{M_6}}&{{M_7}}&{{M_8}}\end{array}\\\begin{array}{ccccccccccccccc}{{M_9}}&{{M_{10}}}&{{M_{11}}}&{{M_{12}}}\end{array}\end{array} \right] \cdot \left[ {\begin{array}{ccccccccccccccc}{{X_W}}\\{{Y_W}}\\{{Z_W}}\\1\end{array}} \right]\end{array} μν1 =ZC1 fx000fy0cxcy1 XCYCZC =ZC1K XCYCZC = μν1 =ZC1 fx000fy0cxcy1 XCYCZC =ZC1K R XWYWZW +t =ZC1K [R0t1] XWYWZW1 =M XWYWZW1 = M1M2M3M4M5M6M7M8M9M10M11M12 XWYWZW1

2.1 视觉传感器标定原理 – 线性标定法

标定的数学表达解释:输入 n n n个特征点的世界坐标及像素坐标,输出 M M M矩阵
原理:根据一对特征点 P i , p i P_i , p_i Pi,pi ,成像公式可以得到两个线性方程:
[ μ ν 1 ] = [ M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M 10 M 11 M 12 ] ⋅ [ X i Y i Z i 1 ] {\left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = \left[ {\begin{array}{lllllllllllllll}{\begin{array}{ccccccccccccccc}{{M_1}}&{{M_2}}&{{M_3}}&{{M_4}}\end{array}}\\{\begin{array}{ccccccccccccccc}{{M_5}}&{{M_6}}&{{M_7}}&{{M_8}}\end{array}}\\{\begin{array}{ccccccccccccccc}{{M_9}}&{{M_{10}}}&{{M_{11}}}&{{M_{12}}}\end{array}}\end{array}} \right] \cdot \left[ {\begin{array}{ccccccccccccccc}{{X_i}}\\{{Y_i}}\\{{Z_i}}\\1\end{array}} \right]} μν1 = M1M2M3M4M5M6M7M8M9M10M11M12 XiYiZi1
在这里插入图片描述
    每一对特征点可以转换为两个线性方程,共11个自由度
    所以,如果 n > = 6 n>=6 n>=6,即可计算得到 M M M矩阵
    实际应用中,一般会用非常多的特征点,基于最小二乘方法求解 M M M矩阵。

    如果镜头畸变需要矫正,则需要基于非线性方法,引入非线性畸变模型。一般可以采用非线性优化的方法求解。

2.2 相机畸变模型

2.2.1 径向畸变

    由镜头透镜形状引起的畸变称为径向畸变,径向畸变主要分为桶形畸变枕型畸变
在这里插入图片描述
    在针孔相机模型中,一条直线投影到像素平面上还是一条直线。 但在实际中,相机的透镜使得真实环境中的直线在图片中变成了曲线。由于透镜往往是中心对称的,这使得不规则畸变通常径向对称。径向畸变可由三个参数 k 1 , k 2 , k 3 k_1,k_2,k_3 k1,k2,k3确定。
x c o r r e c t e d = x ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y c o r r e c t e d = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) \begin{array}{l}{x_{corrected}} = x(1 + {k_1}{r^2} + {k_2}{r^4} + {k_3}{r^6})\\{y_{corrected}} = y(1 + {k_1}{r^2} + {k_2}{r^4} + {k_3}{r^6})\end{array} xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)

2.2.2 切向畸变

    切向畸变源于透镜不完全平行于图像平面,即感光成像平面装配时与镜头间的角度不准
在这里插入图片描述

    产生的影响是图像像素点以畸变中心为中心点,沿着切向产生的位置偏差;
    切向畸变由两个参数 p 1 , p 2 p_1,p_2 p1,p2确定。
x c o r r e c t e d = x + [ 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) ] y c o r r e c t e d = y + [ p 1 ( r 2 + 2 y 2 ) + 2 p 2 x y ] \begin{array}{l}{x_{corrected}} = x + [2{p_1}xy + {p_2}({r^2} + 2{x^2})]\\{y_{corrected}} = y + [{p_1}({r^2} + 2{y^2}) + 2{p_2}xy]\end{array} xcorrected=x+[2p1xy+p2(r2+2x2)]ycorrected=y+[p1(r2+2y2)+2p2xy]

    结合径向畸变的式子,即可得到畸变矫正的公式: x c o r r e c t e d = 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 c o r r e c t e d = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) + p 1 ( r 2 + 2 y 2 ) + 2 p 2 x y \begin{array}{l}{x_{corrected}} = x(1 + {k_1}{r^2} + {k_2}{r^4} + {k_3}{r^6}) + 2{p_1}xy + {p_2}({r^2} + 2{x^2})\\{y_{corrected}} = y(1 + {k_1}{r^2} + {k_2}{r^4} + {k_3}{r^6}) + {p_1}({r^2} + 2{y^2}) + 2{p_2}xy\end{array} xcorrected=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ycorrected=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy

2.3 单目相机标定方法

    对于单目相机的标定,我们主要需要对以下几个量进行标定:

  • 内参矩阵 K K K
  • 外参 R , t R,t R,t
  • 畸变参数 k 1 , k 2 , p 1 , p 2 k_1,k_2,p_1,p_2 k1,k2,p1,p2
        有几种常用的方法用于标定:

一步法

直接使用最优化方法求出相机内外参数

两步法

  1. Tsai法(1987年)
    假设: u 0 , v 0 u_0,v_0 u0,v0已知,只考虑径向畸变
    标定设备:三维标定块
  2. 张正友法
    假设:只考虑径向畸变
    标定设备:平面标定板

2.4 双目相机标定

此部分来源于北京理工大学慕课《无人驾驶车辆》

2.4.1 双目相机模型

在这里插入图片描述
    左右双目相机有以下特点:
• 光圈中心都在x轴上
• 光圈中心距离称为“基线
    将其转化为俯视图,如下所示在这里插入图片描述    双目相机有以下几何关系
在这里插入图片描述

2.4.2 双目相机标定方法

在这里插入图片描述    双面相机两相机间的角度可能存在偏差,因此测距原理 z = f b u L − u R z = \frac{{fb}}{{{u_L} - {u_R}}} z=uLuRfb不再适用,需要进行重新标定。具体标定对象则是两相机之间的相对旋转矩阵与平移向量。

在这里插入图片描述
    除此之外,两相机之间的相对距离也可能有安装误差,同样需要标定。把左右相机的图像在水平方向严格对齐,对原始图像进行消除畸变,再进行图像校正与图像裁剪,最后就能得到校正后的图像。

2.5 俯视图转化标定——逆透视变换

    逆透视变换英文为IPM (Inverse Perspective Mapping)
原理:根据图片坐标与世界坐标的关系,将图片像素 u v uv uv对应到路面 x y xy xy在这里插入图片描述
难点:一般来说,图片没有距离尺度信息,一个像素点确定一条射线而不能确定是哪个点
解决办法:假设地面平坦且高度已知 ( z = 0 ) (z=0) z=0,就等于将世界坐标降维到二维,实现 u v uv uv x y xy xy的一一对应。
在这里插入图片描述
接下来进行公式推导:

  1. 相机成像公式,内参外参可以合并为一个3乘4矩阵 M M M
    Z c [ μ ν 1 ] = [ f x 0 u 0 0 0 f y v 0 0 0 0 1 0 ] [ R 3 × 3 T 3 × 1 0 1 ] [ x y z 1 ] = [ M 1 M 2 M 3 M 4 M 5 M 6 M 7 M 8 M 9 M 10 M 11 M 12 ] ⋅ [ x y z 1 ] \begin{array}{c}{Z_c}\left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = \left[ \begin{array}{l}\begin{array}{ccccccccccccccc}{{f_x}}&0&{{u_0}}&0\end{array}\\\begin{array}{ccccccccccccccc}0&{{f_y}}&{{v_0}}&0\end{array}\\\begin{array}{ccccccccccccccc}0&0&1&0\end{array}\end{array} \right]\left[ {\begin{array}{ccccccccccccccc}{{R_{{\rm{3}} \times 3}}}&{{T_{3 \times 1}}}\\0&1\end{array}} \right]\left[ \begin{array}{l}x\\y\\z\\1\end{array} \right]\\ = \left[ {\begin{array}{lllllllllllllll}{\begin{array}{ccccccccccccccc}{{M_1}}&{{M_2}}&{{M_3}}&{{M_4}}\end{array}}\\{\begin{array}{ccccccccccccccc}{{M_5}}&{{M_6}}&{{M_7}}&{{M_8}}\end{array}}\\{\begin{array}{ccccccccccccccc}{{M_9}}&{{M_{10}}}&{{M_{11}}}&{{M_{12}}}\end{array}}\end{array}} \right] \cdot \left[ {\begin{array}{ccccccccccccccc}x\\y\\z\\1\end{array}} \right]\end{array} Zc μν1 = fx0u000fyv000010 [R3×30T3×11] xyz1 = M1M2M3M4M5M6M7M8M9M10M11M12 xyz1
  2. 假设地面平坦,令 z = 0 z=0 z=0,就可以去掉 M M M的第三列,两侧左乘 M − 1 M^{−1} M1,并将 Z c Z_c Zc移到右侧,记 w = 1 / Z c w=1/Z_c w=1/Zc P = M − 1 P=M^{−1} P=M1 Z c [ μ ν 1 ] = [ M 1 M 2 M 4 M 5 M 6 M 8 M 9 M 10 M 12 ] [ x y 1 ] {Z_c}\left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = \left[ {\begin{array}{ccccccccccccccc}{{M_1}}&{{M_2}}&{{M_4}}\\{{M_5}}&{{M_6}}&{{M_8}}\\{{M_9}}&{{M_{10}}}&{{M_{12}}}\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}x\\y\\1\end{array}} \right] Zc μν1 = M1M5M9M2M6M10M4M8M12 xy1 [ p 11 ′ p 12 ′ p 13 ′ p 12 ′ p 22 ′ p 23 ′ p 13 ′ p 23 ′ p 33 ′ ] [ μ ν 1 ] = w [ x y 1 ] \left[ {\begin{array}{ccccccccccccccc}{{p_{11}}^\prime }&{{p_{12}}^\prime }&{{p_{13}}^\prime }\\{{p_{12}}^\prime }&{{p_{22}}^\prime }&{{p_{23}}^\prime }\\{{p_{13}}^\prime }&{{p_{23}}^\prime }&{{p_{33}}^\prime }\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = w\left[ {\begin{array}{ccccccccccccccc}x\\y\\1\end{array}} \right] p11p12p13p12p22p23p13p23p33 μν1 =w xy1
  3. 归一化:将P中各元素除以 p 33 ′ p_{33}′ p33 w w w也除以 p 33 ′ p_{33}′ p33,重新整理得 [ p 11 p 12 p 13 p 12 p 22 p 23 p 13 p 23 1 ] [ μ ν 1 ] = w ′ [ x y 1 ] \left[ {\begin{array}{ccccccccccccccc}{{p_{11}}}&{{p_{12}}}&{{p_{13}}}\\{{p_{12}}}&{{p_{22}}}&{{p_{23}}}\\{{p_{13}}}&{{p_{23}}}&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right] = w'\left[ {\begin{array}{ccccccccccccccc}x\\y\\1\end{array}} \right] p11p12p13p12p22p23p13p231 μν1 =w xy1

在这里插入图片描述
    记点 A A A在图片中坐标( u A , v A u_A, v_A uA,vA),真实世界坐标( x A , y A x_A, y_A xA,yA),则有 [ w x A w y A w ] = [ p 11 p 12 p 13 p 12 p 22 p 23 p 13 p 23 1 ] [ u A ν A 1 ] \left[ {\begin{array}{ccccccccccccccc}{w{x_A}}\\{w{y_A}}\\w\end{array}} \right] = \left[ {\begin{array}{ccccccccccccccc}{{p_{11}}}&{{p_{12}}}&{{p_{13}}}\\{{p_{12}}}&{{p_{22}}}&{{p_{23}}}\\{{p_{13}}}&{{p_{23}}}&1\end{array}} \right]\left[ {\begin{array}{ccccccccccccccc}{{u_A}}\\{{\nu _A}}\\1\end{array}} \right] wxAwyAw = p11p12p13p12p22p23p13p231 uAνA1     用第三行消去 w w w,得 x A = p 11 u A + p 12 v A + p 13 p 31 u A + p 32 v A + 1 {x_A} = \frac{{{p_{11}}{u_A} + {p_{12}}{v_A} + {p_{13}}}}{{{p_{31}}{u_A} + {p_{32}}{v_A} + 1}} xA=p31uA+p32vA+1p11uA+p12vA+p13 y A = p 21 u A + p 22 v A + p 23 p 31 u A + p 32 v A + 1 {y_A} = \frac{{{p_{21}}{u_A} + {p_{22}}{v_A} + {p_{23}}}}{{{p_{31}}{u_A} + {p_{32}}{v_A} + 1}} yA=p31uA+p32vA+1p21uA+p22vA+p23    矩阵方程形成以 p i j p_{ij} pij作为未知数的2个方程
    对 B C D BCD BCD重复上述操作,形成8个方程,就能求解出全部8个未知数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/179841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS之精灵图

1. 精灵图 1.1 为什么需要精灵图 一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。 为什么使用精灵图&#xff…

9、断点调试

文章目录9、断点调试9.1 为什么需要Debug9.2 Debug的步骤1 添加断点2 启动调试3 单步调试工具介绍9.3 多种Debug情况介绍1 行断点2 方法断点3 字段断点4 条件断点5 异常断点6 线程断点7 强制结束9.4 自定义调试数据视图9.5 常见问题【尚硅谷】idea实战教程-讲师:宋红…

Linux安装mysql--CentOS系统

Linux安装mysql 安装包: https://pan.baidu.com/s/10xvFpfl4nTktaEdhKbY3og 首先启动虚拟机,我是用FinalShell连接的 然后将下载的安装包上传至Linux系统中,直接rz回车就会跳出选择文件的窗口,选择需要上传的安装包即可等待上传…

计算机网络01_---软考高级系统架构师010

计算机网络知识点汇总: IPV4中有单播,组播,广播.IPV6没有广播 网络标准喝协议中要知道有IEEE802.3 以太网协议 局域网是以太网的一种 然后,IEEE802.11是无线局域网协议. TCP/IP协议族,这里,要知道从网络层开始,这里到传输层,然后传输层有个 TCP协议,这里TCP链接的时候有…

【沐风老师】3DMAX地板生成器插件FloorGenerator使用教程

FloorGenerator地板生成器插件,创建任何形状的地板几何图形,你可以完全控制从斜边到木板倾斜的所有参数。 伴随该地板的是”多重纹理贴图(MultiTexture)“插件,它使你能够将任意数量的位图随机指定给生成的地板。还提…

听障人士亲述:我们在VRChat用手语交流,成员规模5000人

如果你在B站上搜索VRChat,排在前面的热门视频几乎都是与老外聊天的内容。除了练习语言、交文化流外,你还能在VRChat上遇到不少哇哇乱叫的小孩。作为一款VR社交应用,除了有趣的小游戏外,说话聊天也是VRChat关键的玩法之一。而有这么…

离线ctr特征中心更新

3.8 离线ctr特征中心更新 学习目标 目标 了解特征服务中心的作用应用 无 3.8.1 特征服务中心 特征服务中心可以作为离线计算用户与文章的高级特征,充当着重要的角色。可以为程序提供快速的特征处理与特征结果,而且不仅仅提供给离线使用。还可以作为实时…

【My Electronic Notes系列——直流稳压电源】

目录 序言: 🏆🏆人生在世,成功并非易事,他需要破茧而出的决心,他需要永不放弃的信念,他需要水滴石穿的坚持,他需要自强不息的勇气,他需要无畏无惧的凛然。要想成功&…

快速安装OpenShift在Ubuntu系统上并使用

目录 OpenShift简介: 服务器信息 安装Docker 安装OpenShift 访问Dashboard oc常用命令 附 OpenShift简介: OpenShift 是一个开源容器应用平台,由 Red Hat 开发。它建立在 Kubernetes 之上,并提供用于部署、扩展和管理容器…

【Linux】基础:线程的同步与互斥

【Linux】基础:线程的同步与互斥 摘要:本文主要介绍线程的同步与互斥方面的内容,分为理论与实现两部分完成。首先从整体上介绍线程同步与互斥相关概念,在理解概念后对两者分开介绍。在互斥方面,主要介绍内容为互斥量的…

LinuxC—线程

线程 1 线程的基本概念 什么是线程 进程其实是一个容器,当我们在编程的时候实际上是在以线程为单位进行编程,包括处理器的调度也是以线程为单位的,一个进程可以有多个线程,一个进程的多个线程共享相同的进程空间,所以…

设计模式 - 创建型模式_抽象工厂模式

文章目录创建型模式概述Case场景模拟工程模拟早期单机Redis的使用Bad ImplBetter Impl (抽象⼯⼚模式重构代码)定义适配接⼝实现集群适配器接口代理方式的抽象工厂类单元测试小结创建型模式 创建型模式提供创建对象的机制, 能够提升已有代码…

0、Spring工程构建Spring快速入门Spring配置文件详解注入Sprint相关API

1、Spring工程构建 创建工程项目目录文件夹 IDEA选择项目new一个module 配置案例 aop创建 创建并下载完毕后,点击file选择projert 选择按照的jdk版本 output选择当前目录, 点击右下方apply 选择facets,点击""号选择web 选择当前…

Pinia状态管理

1、Pinia和Vuex的对比 1.1、什么是Pinia呢? Pinia(发音为/piːnjʌ/,如英语中的“peenya”)是最接近pia(西班牙语中的菠萝)的词; Pinia开始于大概2019年,最初是作为一个实验为Vue…

Linux使用操作

文章目录各类小技巧(快捷键)软件安装systemctl软连接日期、时区IP地址、主机名IP地址和主机名虚拟机配置固定IP网络传输下载和网络请求端口进程管理主机状态环境变量上传、下载压缩、解压各类小技巧(快捷键) 强制停止 Linux某些程…

python语法 dot函数

dot是numpy里的函数,主要用于求向量相乘,矩阵乘法,矩阵与向量乘法一、一维向量相乘要求元素个数相同,相当于求内积,对应元素相乘再相加,“1*3 2*4 11”二、矩阵和矩阵相乘遵循矩阵乘法法则“左行 * 右列”…

高通平台开发系列讲解(WIFI篇)什么是WLAN无线局域网

文章目录 一、什么是WLAN1.1、WLAN发展史1.2、WLAN工作频段二、高通相关文件2.1、配置文件2.2、开机启动2.3、wpa_supplicant沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文将基于高通平台介绍什么是无线局域网。 一、什么是WLAN 在WLAN领域被大规模推广和商用的是…

【编程入门】开源记事本(鸿蒙Java版)

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记,将更为简化,去掉了网络调用&#xff0…

WebSocket 入门:简易聊天室

大家好,我是前端西瓜哥,今天我们用 WebSocket 来实现一个简单的聊天室。 WebSocket 是一个应用层协议,有点类似 HTTP。但和 HTTP 不一样的是,它支持真正的全双工,即不仅客户端可以主动发消息给服务端,服务…

基于Tkinter制作简易的串口bootloader上位机

文章目录前言1.测试设备1.1 UART Bootloaer软件架构图1.2 UART Bootloader流程图1.3 通信数据处理1.3.1 S19文件的简单介绍1.3.2 S19文件的传输方式1.3.2 接收数据之后的处理1.4 链接文件设置1.4.1 Bootloader设置1.4.2 Application设置2.上位机2.1 参考资料2.2 Tkinter简介2.3…