0


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

文章目录

1. 摄像头的成像原理

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

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

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

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

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

在这里插入图片描述

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

相机坐标系

  1. O
  2. x
  3. y
  4. z
  5. Oxyz
  6. Oxyz 为相机坐标系,在轴指向相机前方,
  7. x
  8. x
  9. x轴向右,
  10. y
  11. y
  12. y轴向下。
  13. O
  14. O
  15. O为摄像机的光心(或摄像头中心)。

物理成像平面

  1. O
  2. x
  3. y
  4. z
  5. O’−x’−y’−z
  6. O’−x’−y’−z’为物理成像平面。物理成像平面到小孔的距离为
  7. f
  8. f
  9. f,称之为焦距。

成像原理:空间点

  1. P
  2. P
  3. P的光束被映射到图像平面,图像平面感光之后形成像素
  4. P
  5. P'
  6. P′。

    接下来看看具体的原理推导:
    首先,已知三维世界中的坐标点

  1. P
  2. =
  3. X
  4. ,
  5. Y
  6. ,
  7. Z
  8. P=(X,Y,Z
  9. P=(X,Y,Z),成像平面中的
  10. P
  11. =
  12. (
  13. X
  14. ,
  15. Y
  16. )
  17. P'=(X',Y')
  18. P′=(X′,Y′),焦距为
  19. f
  20. f
  21. f.由相似三角形原理可得,
  22. X
  23. =
  24. f
  25. X
  26. Z
  27. Y
  28. =
  29. f
  30. Y
  31. Z
  32. \begin{array}{c}X' = - \frac{{f \cdot X}}{Z}\\\\Y' = - \frac{{f \cdot Y}}{Z}\end{array}
  33. X′=−Zf⋅X​Y′=−Zf⋅Y​​    在视觉感知中,常使用等效表达的方式来体现真实图像的输出过程![在这里插入图片描述](https://img-blog.csdnimg.cn/8b6bb8bd7cbe433199cc4c87e8843b1b.png#pic_center)    因此,我们可以将式子改为
  34. X
  35. =
  36. f
  37. X
  38. Z
  39. Y
  40. =
  41. f
  42. Y
  43. Z
  44. \begin{array}{c}X' = \frac{{f \cdot X}}{Z}\\\\Y' = \frac{{f \cdot Y}}{Z}\end{array}
  45. X′=Zf⋅X​Y′=Zf⋅Y​​

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

在这里插入图片描述

    从成像平面坐标到像素坐标:图像是基于像素来表达。像素坐标和成像平面坐标之间,相差了一个缩放和原点的平移。
    假设正向成像平面中

  1. P
  2. =
  3. (
  4. X
  5. ,
  6. Y
  7. )
  8. P’=(X’, Y’)
  9. P’=(X’,Y’), 其像素坐标为
  10. (
  11. u
  12. ,
  13. v
  14. )
  15. (u, v)
  16. (u,v).

    缩放及平移的过程可以由下式来表达:

  1. {
  2. u
  3. =
  4. α
  5. X
  6. +
  7. c
  8. x
  9. v
  10. =
  11. β
  12. Y
  13. +
  14. c
  15. y
  16. \left\{ {\begin{array}{ccccccccccccccc}{u = \alpha X' + {c_x}}\\{v = \beta Y' + {c_y}}\end{array}} \right.
  17. {uX′+cxvY′+cy​​    将
  18. P
  19. P'
  20. P′的坐标代入,
  21. X
  22. =
  23. f
  24. X
  25. Z
  26. Y
  27. =
  28. f
  29. Y
  30. Z
  31. \begin{array}{c}X' = \frac{{f \cdot X}}{Z},Y' = \frac{{f \cdot Y}}{Z}\end{array}
  32. X′=Zf⋅X​,Y′=Zf⋅Y​​,可以得到三维坐标与像素坐标的转换关系
  33. {
  34. u
  35. =
  36. f
  37. x
  38. X
  39. Z
  40. +
  41. c
  42. x
  43. v
  44. =
  45. f
  46. y
  47. Y
  48. Z
  49. +
  50. c
  51. y
  52. f
  53. x
  54. =
  55. α
  56. f
  57. ,
  58. f
  59. y
  60. =
  61. β
  62. f
  63. \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}
  64. {u=fx​ZX​+cx​v=fy​ZY​+cy​​fx​=αf,fy​=βf​    用矩阵的形式表达:
  65. [
  66. μ
  67. ν
  68. 1
  69. ]
  70. =
  71. 1
  72. Z
  73. [
  74. f
  75. x
  76. 0
  77. c
  78. x
  79. 0
  80. f
  81. y
  82. c
  83. y
  84. 0
  85. 0
  86. 1
  87. ]
  88. [
  89. X
  90. Y
  91. Z
  92. ]
  93. \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]
  94. ​μν1​​=Z1​​fx​00​0fy​0​cx​cy​1​​​XYZ​​    其中,
  95. [
  96. μ
  97. ν
  98. 1
  99. ]
  100. \left[ {\begin{array}{ccccccccccccccc}\mu \\\nu \\1\end{array}} \right]
  101. ​μν1​​为像素坐标,
  102. [
  103. X
  104. Y
  105. Z
  106. ]
  107. \left[ {\begin{array}{ccccccccccccccc}X\\Y\\Z\end{array}} \right]
  108. ​XYZ​​为相机坐标系中的三维坐标点,
  109. [
  110. f
  111. x
  112. 0
  113. c
  114. x
  115. 0
  116. f
  117. y
  118. c
  119. y
  120. 0
  121. 0
  122. 1
  123. ]
  124. \left[ {\begin{array}{ccccccccccccccc}{{f_x}}&0&{{c_x}}\\0&{{f_y}}&{{c_y}}\\0&0&1\end{array}} \right]
  125. ​fx​00​0fy​0​cx​cy​1​​为内参矩阵。

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

    相机的三维坐标系(

  1. O
  2. C
  3. O_C
  4. OC​) 并不是一个“稳定”的坐标系,会随着相机的移动而改变坐标的原点和各个坐标轴的方向。在应用中,相机安装在自动驾驶车辆上,随车辆运动相机坐标系实时变化。对一些需要固定特征坐标的应用,比如地图,因此需要引进一个稳定不变的坐标系:世界坐标系(
  5. O
  6. W
  7. O_W
  8. OW​)![在这里插入图片描述](https://img-blog.csdnimg.cn/e92829d0bb674101bd58424c0cf3d1ca.png#pic_center)    从某三维世界坐标系(
  9. O
  10. W
  11. O_W
  12. OW​)到相机的三维坐标系(
  13. O
  14. C
  15. O_C
  16. OC​)的变换,称为**相机的外参**,本质是将世界坐标系中的特征点,转换到相机坐标系。

    三维坐标系的变换是一个刚性平移加旋转的过程,变换包括平移向量(

  1. t
  2. t
  3. t3x1)以及旋转矩阵(
  4. R
  5. R
  6. R3x3)。

    三维坐标变换表达:已知某世界坐标系(

  1. O
  2. W
  3. O_W
  4. OW​)中空间点
  5. P
  6. W
  7. =
  8. (
  9. X
  10. W
  11. ,
  12. Y
  13. W
  14. ,
  15. Z
  16. W
  17. )
  18. P_W =(X_W, Y_W, Z_W)
  19. PW​=(XW​,YW​,ZW​)以及
  20. O
  21. W
  22. O_W
  23. OW​与相机坐标系(
  24. O
  25. C
  26. O_C
  27. OC​)的变换
  28. R
  29. ,
  30. t
  31. R,t
  32. R,t. 求解此空间点在OC坐标系的坐标
  33. P
  34. C
  35. =
  36. (
  37. X
  38. C
  39. ,
  40. Y
  41. C
  42. ,
  43. Z
  44. C
  45. )
  46. P_C =(X_C, Y_C, Z_C)
  47. PC​=(XC​,YC​,ZC​)

    下式即为三维坐标变换:

  1. [
  2. X
  3. c
  4. Y
  5. c
  6. Z
  7. c
  8. ]
  9. =
  10. [
  11. R
  12. 11
  13. R
  14. 12
  15. R
  16. 13
  17. R
  18. 21
  19. R
  20. 22
  21. R
  22. 23
  23. R
  24. 31
  25. R
  26. 32
  27. R
  28. 33
  29. ]
  30. [
  31. X
  32. w
  33. Y
  34. w
  35. Z
  36. w
  37. ]
  38. +
  39. [
  40. t
  41. 1
  42. t
  43. 2
  44. t
  45. 3
  46. ]
  47. \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]
  48. XcYcZc​​​=​R11R21R31​​R12R22R32​​R13R23R33​​​​XwYwZw​​​+​t1t2t3​​​

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

    最后对整个过程进行总结:
世界坐标系(

  1. O
  2. W
  3. O_W
  4. OW​)中空间点
  5. P
  6. W
  7. =
  8. (
  9. X
  10. W
  11. ,
  12. Y
  13. W
  14. ,
  15. Z
  16. W
  17. )
  18. P_W =(X_W, Y_W, Z_W)
  19. PW​=(XW​,YW​,ZW​),成像到相机中得出其像点
  20. p
  21. =
  22. (
  23. u
  24. ,
  25. v
  26. )
  27. p=(u,v)
  28. p=(u,v),需要经过三次变换:
  • 世界坐标系转换到相机三维坐标系→ 刚性变化,平移加旋转
  • 相机三维坐标系转换到相机成像平面坐标系 → 小孔成像模型
  • 相机成像坐标系转换到像素坐标系 →缩放加平移在这里插入图片描述

1.6 单目视觉的特性

在这里插入图片描述

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

2. 视觉传感器的标定

    首先对成像公式进行整理:
在这里插入图片描述

  1. [
  2. μ
  3. ν
  4. 1
  5. ]
  6. =
  7. 1
  8. Z
  9. C
  10. [
  11. f
  12. x
  13. 0
  14. c
  15. x
  16. 0
  17. f
  18. y
  19. c
  20. y
  21. 0
  22. 0
  23. 1
  24. ]
  25. [
  26. X
  27. C
  28. Y
  29. C
  30. Z
  31. C
  32. ]
  33. =
  34. 1
  35. Z
  36. C
  37. K
  38. [
  39. X
  40. C
  41. Y
  42. C
  43. Z
  44. C
  45. ]
  46. =
  47. [
  48. μ
  49. ν
  50. 1
  51. ]
  52. =
  53. 1
  54. Z
  55. C
  56. [
  57. f
  58. x
  59. 0
  60. c
  61. x
  62. 0
  63. f
  64. y
  65. c
  66. y
  67. 0
  68. 0
  69. 1
  70. ]
  71. [
  72. X
  73. C
  74. Y
  75. C
  76. Z
  77. C
  78. ]
  79. =
  80. 1
  81. Z
  82. C
  83. K
  84. (
  85. R
  86. [
  87. X
  88. W
  89. Y
  90. W
  91. Z
  92. W
  93. ]
  94. +
  95. t
  96. )
  97. =
  98. 1
  99. Z
  100. C
  101. K
  102. (
  103. [
  104. R
  105. t
  106. 0
  107. 1
  108. ]
  109. [
  110. X
  111. W
  112. Y
  113. W
  114. Z
  115. W
  116. 1
  117. ]
  118. )
  119. =
  120. M
  121. [
  122. X
  123. W
  124. Y
  125. W
  126. Z
  127. W
  128. 1
  129. ]
  130. =
  131. [
  132. M
  133. 1
  134. M
  135. 2
  136. M
  137. 3
  138. M
  139. 4
  140. M
  141. 5
  142. M
  143. 6
  144. M
  145. 7
  146. M
  147. 8
  148. M
  149. 9
  150. M
  151. 10
  152. M
  153. 11
  154. M
  155. 12
  156. ]
  157. [
  158. X
  159. W
  160. Y
  161. W
  162. Z
  163. W
  164. 1
  165. ]
  166. \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}
  167. ​μν1​​=ZC1​​fx000fy0cxcy1​​​XCYCZC​​​=ZC1​⋅K⋅​XCYCZC​​​=​μν1​​=ZC1​​fx000fy0cxcy1​​​XCYCZC​​​=ZC1​⋅K⋅​R⋅​XWYWZW​​​+t​=ZC1​⋅K⋅​[R0t1​]​XWYWZW1​​​=M⋅​XWYWZW1​​=​M1​​M2​​M3​​M4​​M5​​M6​​M7​​M8​​M9​​M10​​M11​​M12​​​​⋅​XWYWZW1​​​

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

标定的数学表达解释:输入

  1. n
  2. n
  3. n个特征点的世界坐标及像素坐标,输出
  4. M
  5. M
  6. M矩阵

原理:根据一对特征点

  1. P
  2. i
  3. ,
  4. p
  5. i
  6. P_i , p_i
  7. Pi​,pi ,成像公式可以得到两个线性方程:
  8. [
  9. μ
  10. ν
  11. 1
  12. ]
  13. =
  14. [
  15. M
  16. 1
  17. M
  18. 2
  19. M
  20. 3
  21. M
  22. 4
  23. M
  24. 5
  25. M
  26. 6
  27. M
  28. 7
  29. M
  30. 8
  31. M
  32. 9
  33. M
  34. 10
  35. M
  36. 11
  37. M
  38. 12
  39. ]
  40. [
  41. X
  42. i
  43. Y
  44. i
  45. Z
  46. i
  47. 1
  48. ]
  49. {\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]}
  50. ​μν1​​=​M1​​M2​​M3​​M4​​M5​​M6​​M7​​M8​​M9​​M10​​M11​​M12​​​​⋅​XiYiZi1​​

在这里插入图片描述
    每一对特征点可以转换为两个线性方程,共11个自由度
    所以,如果

  1. n
  2. >
  3. =
  4. 6
  5. n>=6
  6. n>=6,即可计算得到
  7. M
  8. M
  9. M矩阵

    实际应用中,一般会用非常多的特征点,基于最小二乘方法求解

  1. M
  2. M
  3. M矩阵。

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

2.2 相机畸变模型

2.2.1 径向畸变

由镜头透镜形状引起的畸变称为径向畸变,径向畸变主要分为桶形畸变枕型畸变
在这里插入图片描述
    在针孔相机模型中,一条直线投影到像素平面上还是一条直线。 但在实际中,相机的透镜使得真实环境中的直线在图片中变成了曲线。由于透镜往往是中心对称的,这使得不规则畸变通常径向对称。径向畸变可由三个参数

  1. k
  2. 1
  3. ,
  4. k
  5. 2
  6. ,
  7. k
  8. 3
  9. k_1,k_2,k_3
  10. k1​,k2​,k3​确定。
  11. x
  12. c
  13. o
  14. r
  15. r
  16. e
  17. c
  18. t
  19. e
  20. d
  21. =
  22. x
  23. (
  24. 1
  25. +
  26. k
  27. 1
  28. r
  29. 2
  30. +
  31. k
  32. 2
  33. r
  34. 4
  35. +
  36. k
  37. 3
  38. r
  39. 6
  40. )
  41. y
  42. c
  43. o
  44. r
  45. r
  46. e
  47. c
  48. t
  49. e
  50. d
  51. =
  52. y
  53. (
  54. 1
  55. +
  56. k
  57. 1
  58. r
  59. 2
  60. +
  61. k
  62. 2
  63. r
  64. 4
  65. +
  66. k
  67. 3
  68. r
  69. 6
  70. )
  71. \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}
  72. xcorrected​=x(1+k1r2+k2r4+k3r6)ycorrected​=y(1+k1r2+k2r4+k3r6)​

2.2.2 切向畸变

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

    产生的影响是图像像素点以畸变中心为中心点,沿着切向产生的位置偏差;
    切向畸变由两个参数

  1. p
  2. 1
  3. ,
  4. p
  5. 2
  6. p_1,p_2
  7. p1​,p2​确定。
  8. x
  9. c
  10. o
  11. r
  12. r
  13. e
  14. c
  15. t
  16. e
  17. d
  18. =
  19. x
  20. +
  21. [
  22. 2
  23. p
  24. 1
  25. x
  26. y
  27. +
  28. p
  29. 2
  30. (
  31. r
  32. 2
  33. +
  34. 2
  35. x
  36. 2
  37. )
  38. ]
  39. y
  40. c
  41. o
  42. r
  43. r
  44. e
  45. c
  46. t
  47. e
  48. d
  49. =
  50. y
  51. +
  52. [
  53. p
  54. 1
  55. (
  56. r
  57. 2
  58. +
  59. 2
  60. y
  61. 2
  62. )
  63. +
  64. 2
  65. p
  66. 2
  67. x
  68. y
  69. ]
  70. \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}
  71. xcorrected​=x+[2p1xy+p2​(r2+2x2)]ycorrected​=y+[p1​(r2+2y2)+2p2xy]​

    结合径向畸变的式子,即可得到畸变矫正的公式:

  1. x
  2. c
  3. o
  4. r
  5. r
  6. e
  7. c
  8. t
  9. e
  10. d
  11. =
  12. x
  13. (
  14. 1
  15. +
  16. k
  17. 1
  18. r
  19. 2
  20. +
  21. k
  22. 2
  23. r
  24. 4
  25. +
  26. k
  27. 3
  28. r
  29. 6
  30. )
  31. +
  32. 2
  33. p
  34. 1
  35. x
  36. y
  37. +
  38. p
  39. 2
  40. (
  41. r
  42. 2
  43. +
  44. 2
  45. x
  46. 2
  47. )
  48. y
  49. c
  50. o
  51. r
  52. r
  53. e
  54. c
  55. t
  56. e
  57. d
  58. =
  59. y
  60. (
  61. 1
  62. +
  63. k
  64. 1
  65. r
  66. 2
  67. +
  68. k
  69. 2
  70. r
  71. 4
  72. +
  73. k
  74. 3
  75. r
  76. 6
  77. )
  78. +
  79. p
  80. 1
  81. (
  82. r
  83. 2
  84. +
  85. 2
  86. y
  87. 2
  88. )
  89. +
  90. 2
  91. p
  92. 2
  93. x
  94. y
  95. \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}
  96. 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 双目相机标定方法

在这里插入图片描述    双面相机两相机间的角度可能存在偏差,因此测距原理

  1. z
  2. =
  3. f
  4. b
  5. u
  6. L
  7. u
  8. R
  9. z = \frac{{fb}}{{{u_L} - {u_R}}}
  10. z=uL​−uRfb​不再适用,需要进行重新标定。具体标定对象则是两相机之间的相对旋转矩阵与平移向量。

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

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

逆透视变换英文为IPM (Inverse Perspective Mapping)
原理:根据图片坐标与世界坐标的关系,将图片像素

  1. u
  2. v
  3. uv
  4. uv对应到路面
  5. x
  6. y
  7. xy
  8. xy![在这里插入图片描述](https://img-blog.csdnimg.cn/43c748624019475b88cff090b0885098.png#pic_center)

难点:一般来说,图片没有距离尺度信息,一个像素点确定一条射线而不能确定是哪个点
解决办法:假设地面平坦且高度已知

  1. z
  2. =
  3. 0
  4. z=0
  5. z=0),就等于将世界坐标降维到二维,实现
  6. u
  7. v
  8. uv
  9. uv
  10. x
  11. y
  12. xy
  13. 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​​=​fx​​0​u0​​0​0​fy​​v0​​0​0​0​1​0​​​[R3×3​0​T3×1​1​]​xyz1​​=​M1​​M2​​M3​​M4​​M5​​M6​​M7​​M8​​M9​​M10​​M11​​M12​​​​⋅​xyz1​​​
  2. 假设地面平坦,令 z = 0 z=0 z=0,就可以去掉 M M M的第三列,两侧左乘 M − 1 M^{−1} M−1,并将 Z c Z_c Zc​移到右侧,记 w = 1 / Z c w=1/Z_c w=1/Zc​, P = M − 1 P=M^{−1} P=M−1 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​​=​M1​M5​M9​​M2​M6​M10​​M4​M8​M12​​​​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] ​p11​′p12​′p13​′​p12​′p22​′p23​′​p13​′p23​′p33​′​​​μν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] ​p11​p12​p13​​p12​p22​p23​​p13​p23​1​​​μν1​​=w′​xy1​​

在这里插入图片描述
    记点

  1. A
  2. A
  3. A在图片中坐标(
  4. u
  5. A
  6. ,
  7. v
  8. A
  9. u_A, v_A
  10. uA​,vA​),真实世界坐标(
  11. x
  12. A
  13. ,
  14. y
  15. A
  16. x_A, y_A
  17. xA​,yA​),则有
  18. [
  19. w
  20. x
  21. A
  22. w
  23. y
  24. A
  25. w
  26. ]
  27. =
  28. [
  29. p
  30. 11
  31. p
  32. 12
  33. p
  34. 13
  35. p
  36. 12
  37. p
  38. 22
  39. p
  40. 23
  41. p
  42. 13
  43. p
  44. 23
  45. 1
  46. ]
  47. [
  48. u
  49. A
  50. ν
  51. A
  52. 1
  53. ]
  54. \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]
  55. wxAwyAw​​=​p11p12p13​​p12p22p23​​p13p231​​​uA​νA1​​    用第三行消去
  56. w
  57. w
  58. w,得
  59. x
  60. A
  61. =
  62. p
  63. 11
  64. u
  65. A
  66. +
  67. p
  68. 12
  69. v
  70. A
  71. +
  72. p
  73. 13
  74. p
  75. 31
  76. u
  77. A
  78. +
  79. p
  80. 32
  81. v
  82. A
  83. +
  84. 1
  85. {x_A} = \frac{{{p_{11}}{u_A} + {p_{12}}{v_A} + {p_{13}}}}{{{p_{31}}{u_A} + {p_{32}}{v_A} + 1}}
  86. xA​=p31uA​+p32vA​+1p11uA​+p12vA​+p13​​
  87. y
  88. A
  89. =
  90. p
  91. 21
  92. u
  93. A
  94. +
  95. p
  96. 22
  97. v
  98. A
  99. +
  100. p
  101. 23
  102. p
  103. 31
  104. u
  105. A
  106. +
  107. p
  108. 32
  109. v
  110. A
  111. +
  112. 1
  113. {y_A} = \frac{{{p_{21}}{u_A} + {p_{22}}{v_A} + {p_{23}}}}{{{p_{31}}{u_A} + {p_{32}}{v_A} + 1}}
  114. yA​=p31uA​+p32vA​+1p21uA​+p22vA​+p23​​    矩阵方程形成以
  115. p
  116. i
  117. j
  118. p_{ij}
  119. pij​作为未知数的2个方程

    对

  1. B
  2. C
  3. D
  4. BCD
  5. BCD重复上述操作,形成8个方程,就能求解出全部8个未知数

声明

本人所有文章仅作为自己的学习记录,若有侵权,联系立删。本系列文章主要参考了清华大学、北京理工大学、哈尔滨工业大学、深蓝学院、百度Apollo等相关课程。


本文转载自: https://blog.csdn.net/sinat_52032317/article/details/128762095
版权归原作者 yuan〇 所有, 如有侵权,请联系我们删除。

“自动驾驶环境感知——视觉传感器技术”的评论:

还没有评论