双目视觉原理(万字总结,包含Halcon代码)

  • Post author:
  • Post category:其他



相关资源:



双目视觉根据标定版计算摄像机内参(Halcon代码实现)



双目视觉已知摄像机参数根据左右图片生成点云数据(Halcon代码)



双目视觉万字总结原版markdown文件



双目视觉测距原理(word)



1. 双目视觉的视差与深度



1.1 总览

在这里插入图片描述

在这里插入图片描述



2. 视差原理

人类具有一双眼睛,对同一目标可以形成视差,因而能清晰地感知到三维世界。因此,计算机的一双眼睛通常用双目视觉来实现,双目视觉就是通过两个摄像头获得图像信息,计算出视差,从而使计算机能够感知到三维世界。一个简单的双目立体视觉系统原理图如图 1 所示。

640.png

两个相机的投影中心的连线的距离为 b,也叫做

基线

,三维空间任意一点 P 在左相机的成像点为 PL,在右相机的成像点为PR。根据光的直线传播的原理可知,三维空间点 P 就是两个相机的投影中心点与成像点连线的交点。线段𝑥L和𝑥R分别是左右相机成像点到左成像面的距离,则点 P 在左右相机的视差可以定义如下:

640-1.png

两个成像点PL和PR之间的距离为:

640-2.png

根据相似三角形理论可以得出:

640-3.png

则可以得到点 P 到投影中心平面的距离Z

640-4.png

在这里插入图片描述

三维空间点 P 在相机的成像图如下图所示。由图可以看出,根据相似三角形原理, 有以下关系:

640-5.png

640-6.png

640-7.png


因此,当已知三维空间上任意一点的在不同图像上的视差,再根据相机的参数,就可以知道该点的三维坐标。



2. 双目相机的坐标系



2.1 针孔相机的模型

三维世界中的物体,经过相机成像系统,变成二维图像过程如下所示。

在这里插入图片描述

如何成像:

  1. 在物体和胶片之间,增加一块带有小孔的屏障,这就构成了小孔成像,用数学模型表示就叫做:针孔相机模型,而屏障上的小孔称之为光圈,并且胶片上获得倒立的图像。
  2. object到barrier的距离为Z,也就是深度,film到barrier的距离为f,也就是焦距。
  3. 针孔相机模型: f为焦距,X为三维坐标中点,x为相机坐标系中的点

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-51SH3pEI-1653830729901)(…/typora_photo/209.jpg)]


注意:其实

像素坐标系和图像坐标系是虚拟出来的像平面

,因为在实际的像平面上图像是反向的,而在虚拟的像平面上是同向的

尽管从物理原理来说,小孔成像的像应该是

倒像

,但是由于相机的自身设计,像一般变为正的了。



2.2 四大坐标系

物体的三维信息都是通过二维图像推导而来的。要想明确物体在三维空间的具体位置,除了图像的信息,还需知道相机的具体参数。

相机参数的确定过程就叫做相机的标定

。在双目视觉系统中,除了

对每个相机进行标定外



还需要知道相机间的相互关系以及相机与待测物体的坐标关系

,这一过程叫做系统的标定。

从图像上的物体到三维空间上的物体的映射过程实际上是坐标系的变换。

图像

上的某一点,经过物理关系的转换可以得到现实的物理坐标,然后将图像平面映射成

相机坐标系

的某一平面,得到该点在相机坐标系的坐标,最后通过相机坐标系与

世界坐标系

的旋转平移变换就可以确定该点的实际三维坐标了。所以要想确定点的三维坐标,首先要了解这四个坐标系。

在这里插入图片描述



1 像素坐标系(单位:像素(pixel))



图像的左上角点

为坐标原点,水平方向向右为x轴(u轴),数值方向向下为y轴(v轴)。表示为:
img



2 图像坐标系(单位:mm)



CCD 图像平面的中心

为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。表示为:
img
其 x 轴和 y 轴分别与像素坐标系的 u 轴,v 轴平行。图像上任意一个像素在两个坐标系的映射关系为:

640-8.png

其中,单个像素在 x 轴和 y 轴的实际物理距离为 dx 和 dy,将上式转换成齐次方程式为:

640-9.png



3 相机坐标系(单位:mm)

图像坐标系虽建立起图像与现实世界的物理关系,但这只是二维关系,因此,需要建立与三维世界相关的相机坐标系。图像坐标系是相机坐标系的某一平面,相机坐标系 的 x 轴和 y 轴与图像坐标系对应轴平行,两个坐标系间的距离就是相机的焦距



f

f






f





其以

相机光心

为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,光轴为



z

z






z





轴,可以用**(𝑋c, 𝑌c, 𝑍c )**来表示。



4 世界坐标系(单位:mm)

相机坐标系是以相机为中心的描述现实世界的三维坐标系。在现实空间中,存在无数坐标系可以描述三维空间,为了确定三维空间点的具体位置,需要确定唯一一个基准坐标系来表述空间,这就是世界坐标系,用**(𝑋w, 𝑌w, 𝑍w)**来表示。

640-10.png

其中,R 为 3×3 单位正交矩阵,表示了坐标系的旋转操作;t 为三维平移向量,代表了坐标系的平移操作;0 表示三维零向量。



2.3 四个坐标系之间的关系



1 图像坐标系和相机坐标系


x,y为图像坐标系,Xc,Yc为相机坐标系

首先,我们可以通过两个正的相似三角形可以得到图像坐标系和相机坐标系的关系:

在这里插入图片描述

用齐次坐标系和矩阵表示上述关系:

在这里插入图片描述



2 像素坐标系和图像坐标系

接着,对于像素坐标系和图像坐标系的关系,它们之间相差了一个

缩放

和一个

原点的平移

。我们设像素坐标在 u 轴上缩放了 1/dx倍,在 v 上缩放了 1/dy倍,那么我们可以表示为:

在这里插入图片描述

用矩阵的形式表示:

在这里插入图片描述

两种关系合并:

在这里插入图片描述



3 相机坐标系到世界坐标系的关系

相机坐标系到世界坐标系存在一个位姿的变换,[R|T],写成矩阵的形式如下:

在这里插入图片描述



4 总的关系

在这里插入图片描述

其中, 相机的

内参K


img

R和T分别为世界坐标系和相机坐标系之间的旋转矩阵和平移矩阵,两者组成了相机的

外参矩阵

相机的外参矩阵和内参矩阵构成了相机的投影矩阵



P

P






P




img



3. 双目相机的标定



3.1 相机标定概念

就是要通过一定的方法对特定图像(棋盘格角点检测)计算出这个相机本身的一些参数,包扩:

内参矩阵A,外参矩阵[R|T]、畸变系数[k1,k2,k3,

,p1,p2,

]



内参矩阵各元素意义

:一个像素的物理尺寸



d

x

dx






d


x









d

y

dy






d


y





,焦距



f

f






f





,图像物理坐标的扭曲因子



g

a

m

a

gama






g


a


m


a





,图像原点相对于光心成像点的的纵横偏移量



c

x

cx






c


x









c

y

cy






c


y





(像素为单位)。

外参矩阵

:世界坐标系转换到相机坐标系的旋转



R

R






R





和平移



T

T






T





矩阵。

畸变系数

:包括相机的

径向畸变系数




k

1

,

k

2

,

k

3

k1,k2,k3






k


1


,




k


2


,




k


3





,和相机的

切向畸变系数

p1,p2,。

需要的器材

:一个黑白棋盘格的标定板,一个相机拍摄的不同角度或距离的棋盘格图像至少三张以上。

相机的标定是

根据像素坐标系与世界坐标系的关系,利用一定的约束条件,来求解相机的内外参数以及畸变系数的过程。

相机标定方法可分为两种,第一种是

需要参照物

的传统标定方法;另一种则是

不需参照物

的相机自标定法。

传统的标定方法一般以棋盘格作为参照物,其中每个棋盘格的大小,尺寸以及棋盘格的数量都是已知的。标定过程就是,

将棋盘格的顶点与图像上的对应点建立对应关系,利用棋盘格的已知信息来求得相机模型的内外参数和畸变系数。

这种标定方法通常有张正友标定法和 Tasi 两步标定法等。这种方法容易受到标定物的制作精度的影响,但

精度仍比另一种方法高

相机自标定法是不需要参照物的,通常有

基于 Kruppa 方程的标定法

等。其根据多视图约束几何方程,在不同位置采集多幅同场景的图像,通过相机的约束信息以及对 应点的几何信息来完成相机参数的计算。其最大优点就是不需要制作标定参考物,比较灵活;但由于缺少标定物,鲁棒性和精度都有所欠缺。



3.2 张正友标定法

张正友标定法的基本步骤是:

在不同角度下,对标定参考物(棋盘格)进行拍摄,然后提取出棋盘格的顶点,接着解析出相机的畸变系数和内外参数,最后再根据极大似然估计,对参数进行 优化。

640-15.png

其中,M1为相机内参矩阵。

640.png

设单应性矩阵 H 满足
640-1.png
,其中 λ 是尺度因子,由 于𝑟1和𝑟2正交,所以可得以下约束条件:

640-2.png

由以上两式可以看出,ℎ1和ℎ2是可以通过单应性求解出来的,所以

要求解的参数就变成 𝑀1矩阵中的未知的 5 个参数,可以通过三个单应性矩阵来求解这 5 个参数

,三个单应性矩阵可以通过

三张对同一标定板不同角度和高度的照片获得

640-3.png

相机内参为:

640-4.png

相机外参为:

640-5.png

上述推导的结果都是在理想情况下得到的,没有任何噪声和干扰,但噪声是无法避免的。因此,

在实际标定中,还需要使用极大似然法来对参数进行优化。

至此,单目相机就标定完成,但对于双目视觉系统,

不仅要对每个相机进行标定,同时还要明确相机间的相互关系,因此还要对双目相机进行进一步的标定,即求取相机间的旋转矩阵和平移向量。

640-6.png

640-7.png

由第一式可知左右相机的对应关系,由式第二式和第三式可知,

只需要知道每个相机的 外参数,就可以求得双目相机的旋转矩阵和平移向量。



4. 畸变矫正和平行矫正



4.1 径向畸变(Radial Distortion)

简单来说,由透镜形状(

相机镜头径向曲率的不规则变化

)引起的畸变称为径向畸变,是导致相机成像变形的

主要因素

。径向畸变主要分为

桶形畸变和枕型畸变

。在针孔模型中,一条直线投影到像素平面上还是一条直线。 但在实际中,相机的透镜往往使得真实环境中的一条直线在图片中变成了曲线。越靠近图像的边缘现象越明显。 由于透镜往往是中心对称的,这使得不规则畸变通常径向对称。(

成像中心处的径向畸变最小,距离中心越远,产生的变形越大,畸变也越明显


  • 正向畸变(枕型畸变)

    :从图像中心开始,径向曲率逐渐增加。

  • 负向畸变(桶形畸变)

    :边缘的径向曲率小于中心的径向曲率。(鱼眼相机)

在这里插入图片描述

在这里插入图片描述

实际摄像机的透镜总是在成像仪的边缘产生显著的畸变,这种现象来源于“筒形”或“鱼眼”的影响。如下图,光线在原理透镜中心的地方比靠近中心的地方更加弯曲。对于常用的普通透镜来说,这种现象更加严重。筒形畸变在便宜的网络摄像机中非常厉害,但在高端摄像机中不明显,因为这些透镜系统做了很多消除径向畸变的工作。

img



4. 畸变系数

上述的线性模型并不能准确描述物体与图像的对应关系,这是因为

光学镜头具有透视失真,会导致图像发生偏差,这是镜头的固有属性无法消除。

为了减少图像偏差,需要明确镜头的畸变系数,对图像进行校正。常见的畸变主要有径向畸变和切向畸变。


径向畸变

是指图像像素以畸变中心为原点,沿着径向产生位置偏差,从而导致图像形变。其常用畸变原点周围的泰勒展开式的前两项 k1 和 k2 来表示,如果畸变较大,还可以增加使用第三项 k3 来描述,常用的描述公式为:

640-12.png

其中,(x, y)是校正后像素点的位置;(𝑥0, 𝑦0)是原图上的像素点位置;r 径向距离。

切向畸变是由于在安装时,产生安装偏差,使镜头不完全平行于镜头平面而造成的畸变,其可以使用 p1和 p2 两个参数来描述:

640-13.png

要消除镜头畸变,就是要同时消除径向畸变和切向畸变,所以要知道以下 5 个畸变参数的值

640-14.png

这 5 个参数可以在相机标定的过程中得到。明确这 5 个畸变系数以及相机的内外参数, 就可以完成相机的标定了。



4. 畸变矫正

获取了内参矩阵和畸变系数对图像进行畸变校正时,就是解决图像的畸变问题(径向畸变是因为透镜本身工艺的问题,切向畸变是由于安装问题带来的)。畸变校正的过程是这样的,将源图像像素坐标系通过内参矩阵转化成相机坐标系(和图像物理坐标系比较多了缩放和Z轴),通过畸变系数校正图像的相机坐标,校正后通过内参矩阵将相机坐标系转换成图像像素坐标系,并根据源图像坐标的像素值赋值给新的图像坐标。

在这里插入图片描述

其中,k1,k2,k3径向畸变系数,p1,p2是切向畸变系数。畸变发生在相机坐标系转图像物理坐标系的过程中。操作的对象时相机坐标系。(Xc,Yc,Zc)为相机坐标系坐标。



4.3 双目校正的概念

就是通过一定的方法将两个摄像头拍摄同一个物体的图像进行处理,使得两幅图像最终达到:


目标

:同一个物体在两幅图像中的大小一样,且水平在一条直线上。


需要的设备

:双目摄像头(即两个同规格的摄像头水平放置左右摄像头),拍摄同一个物理的左右图像对,需要已知左右相机的内参矩阵、畸变系数、右相机相对于左相机的旋转矩阵R(通过一定的方法可将此矩阵分解成两个矩阵R1和R2,即左右相机各旋转一半达到水平)。


极线矫正


极线矫正的过程是什么?


双目平行校正,是针对图像对应的相机坐标系进行的,那么极线校正的时候应该注意就是在四中叙述的畸变校正过程中,在转换到相机坐标系后,左右图像对应的相机坐标系分别通过旋转矩阵R1和R2进行平行极线校正。步骤如下:将源图像像素坐标系通过内参矩阵转化成相机坐标系(和图像物理坐标系比较多了缩放和Z轴),通过旋转矩阵R1和R2进行平行极线校正,然后通过畸变系数校正图像的相机坐标,校正后通过内参矩阵将相机坐标系转换成图像像素坐标系,并根据源图像坐标的像素值赋值给新的图像坐标


极线矫正的目的?


为了可以得出视差图。

如下,黄线即为极线

在这里插入图片描述



5. 双目立体匹配

当三维空间与图像的对应关系确定后,要想对视差进行计算,就必须知道三维空间的点在左右图像上的对应关系,这就是立体匹配的目的。

通过立体匹配技术,就可以明确左右图像中的点的对应关系,从而得到视差,恢复点的三维信息。

**对极几何(Epipolar Geometry)**是一个内容非常丰富的范畴(本文不想铺展太多,只是选择几个概念简单描述,详细内容可以参考《计算机视觉中的多视图几何》一书)。对极几何描述的是三维点与两个相机相平面之间的特殊几何关系,我们先看下图的模型。

img

在这里插入图片描述

在这里插入图片描述

img

img



1、立体匹配的基本约束条件

立体匹配技术是双目立体视觉中的重要技术,研究人员提出了许多实用的算法,其中也提出许多基本的约束条件。将这些约束条件运用到匹配算法中,就可以有效降低匹配的难度,提高立体匹配的速度和精度。常用的约束条件如下:


(1) 极线约束。

极线约束是最常用的约束条件。

极线约束是指在左图像中的一点,它在右图像上的 对应匹配点必定在某一条直线上,这条直线就是极线

。使用极线约束就可以让图像的搜索范围由二维下降至一维,只需要在一条直线上进行搜索,这就可以大大减少搜索的复杂度,并提高了匹配的精度。


(2) 相似性约束。

在进行立体匹配时,点、线、块等元素一定具有相同或相似的属性。


(3) 唯一性约束。

对于待匹配图像,在原图像中至多对应一个点。一幅图像上的每个点只能与另一幅 图像上的唯一一个点一一对应,这样

图像上的点至多有一个视差值


(4) 左右一致性约束。

若左图像上的一点 P,其在右图像上的对应点为 Q,则右图像上的点 Q 在左图像上的对应点应该是点 P,如果这两点不是一一对应的,则匹配会不满足唯一性条件,说明匹配失败。在进行立体匹配时,

运用基本约束条件对匹配结果进行检验,可以有效排除很多误匹配的点,减小搜索范围,降低立体匹配计算的复杂度,提高立体匹配的速度和精度, 获得最好的匹配效果。



2、半全局立体匹配算法

半全局匹配算法是一种实用的计算视差图的匹配算法,其较好的中和了局部匹配和全局匹配的优缺点,在保持视差图效果相差不大的前提下,极大地提高了算法的效率,实现了更好的精度和效率的权衡,已广泛应用在现实中。半全局匹配算法可以得到视差图,并且可分为

匹配代价计算、代价聚合、视差计算和视差优化四个步骤


(1) 代价匹配。

代价匹配是

待匹配点与候选匹配点之间的相似度的衡量

。按照匹配度量方式可以分为

互相关性度量方法和差值度量方法。

互相关性度量越大,两个点间的相似度就越高, 两个像素点为对应匹配点的概率就越大,不然两个像素点就越不可能是对应匹配点;同样,差值度量越小,像素点的相似度越高,差值度量越大,像素点的相似度越小。

在搜索匹配点之前,对每个像素都会指定一个视差范围 D,将搜索范围局限在 D 内, 并会使用一个大小为 W×H×D(W, H 为图像的尺寸)的矩阵来记录每个像素与视差范围内的像素的匹配代价值。该矩阵存储了所有的匹配代价值,可以有效减少重复的计算, 提高计算效率。匹配代价计算的方法有很多,如灰度绝对值差,灰度绝对值差之和,归一化系数, 互信息和 Census 变换等。不同的匹配代价计算算法都有其独特的优点,对数据的表现也各不相同,其中,

最常用的方法是互信息和 Census 变换。


(2) 代价聚合。

在初始代价匹配中,其计算范围只限于局部窗口中,只考虑了局部的相关性,对噪声非常敏感。为了得到更优的匹配,必须进行代价聚合操作。在代价聚合中,半全局匹配算法采用了

全局能量最优策略

。该方法设定一个全局能量函数,通过对其进行不断的优化,使该函数逐渐取到最小值,从而保证每个像素是最优匹配。该函数的定义如下:

640-8.png

该函数分为三部分,第一部分是主要部分,主要是对上一步的代价 进行求和;第二,三部分是为了保证匹配满足连续性约束,若像素在一定范围内视差变 化过大,说明匹配出错概率较大,需要进行惩罚,避免这种情况出现。其中,第二部分 是针对视差变化较小的情况,因而其惩罚的参数 P1 的值较小;第三部分是针对相邻像素 视差变化较大的情况,因此,需要加大惩罚,P2 的值一般会比较大。

对邻域内不同的视差变化给予不一样的惩罚,有助于更好地应对各种不同的边缘情况。但由于视差大于 1 的范围很大,如果仅仅使用一个常数项对大视差变化进行惩罚往 往不够,因此,P2 的值需要动态调整,其调整公式如下:

640-9.png

通常,能量函数的最优化很难求得最优解,为了高效解决这个问题,半全局匹配算法提出了路径代价聚合的方法,只在固定的路径上计算匹配代价。对于某一像素,在其邻域内存在多条到达该像素的路径。该方法

首先就某一条路径对匹配代价进行计算,然后对所有路径的匹配代价求和得到代价聚合值。


(3) 视差计算。

在半全局匹配算法中,视差计算的操作较为简单,其采用

赢家通吃的算法

,即

对每个像素来说,其代表的最优视差为最小代价聚合值。

在此步骤中,对每个像素都进行了 视差计算,因而可以得到以原图一样大小的视差图,代表了图像的匹配关系。


(4) 视差优化。

在视差计算步骤中,仅仅只是对代价聚合值进行选择,如果代价聚合不准确,会直接影响匹配结果,因此需要进行视差优化步骤,按照匹配的基本约束条件,对错误匹配 进行剔除并提高视差精度。

视差优化常用的操作有剔除错误匹配,提高视差精度以及抑制噪声等。

错误匹配是指像素在代价聚合后得到的视差值并不是真实的最小的视差值。这种错误匹配的现象在实际中并不少见,图像的噪声、遮挡、弱纹理和重复纹理都会导致这一 现象产生。因此,为了提高匹配的精度,必须要对错误的匹配进行剔除。目前最常用的错误匹配的剔除方法是

左右一致性法,它是根据匹配的唯一性约束条件指定的。

匹配的 唯一性指出对于左图像的某一像素点,在右图像上至多只有一个像素点与之一一对应。左右一致法就是

将左右图像的对应点的视差值进行比较,若两个视差值小于一定的阈值, 则认为匹配成功,否则认为该视差不满足唯一性将被剔除。

除了左右一致性法外,常用的匹配剔除方法还有

剔除小连通区和唯一性检测等方法

。连通区是指连通区内的视差与其邻域的视差之差小于一定的阈值,剔除小连通区是指剔 除视差图中很小的连通区,因为这种连通区通常是由于误匹配造成的;唯一性检测是指 对每个像素,计算其最小代价值和次小代价值,如果它们的差小于一定的阈值,说明匹配不是很准确,应该剔除。每种剔除错误匹配方法,都有其无法识别的情况,在实际应 用中,可以将几种方法结合使用。

在视差计算中,得到的视差图都是整像素的,无法满足精度要求,为了提高视差精度,可以

采用子像素优化技术,使用二次曲线内插的方法获得子像素。

具体做法是

首先将像素点的所有视差标注出来,然后找到最优视差点,接着确定该点周围两个视差点, 按照 3 点确定一条二次曲线的原理,得到过这 3 点的抛物线,

该抛物线的顶点就是最优 子像素。

在计算像素的视差值时,都是基于小窗口进行的,容易产生噪声,因此可以使用

中值滤波和均值滤波

等图像滤波方式对视差图进行滤波,如果

要保持较好的边缘精度,也可以考虑使用双边滤波



6. 视差图获取

视差图是什么?作用是什么?

立体校正后的左右两幅图像得到后,匹配点是在同一行上的,可以使用OpenCV中的BM算法或者SGBM算法计算视差图。由于SGBM算法的表现要远远优于BM算法,因此采用SGBM算法获取视差图。

P为空间中的点,P1和P2是点P在左右像平面上的成像点,f是焦距,OR和OT是左右相机的光心。由下图可见左右两个相机的光轴是平行的。XR和XT是两个成像点在左右两个像面上距离图像左边缘的距离。

在这里插入图片描述

(Xr-Xt)就可以得到P1点,在左视差图中的值,同理可以计算出整幅图像,最终获得左视差图。右视差图同理。

左边为左视差图,右边为右视差图。

在这里插入图片描述



7. 空洞填补

为什么造成空洞?解决办法?

视差图中视差值不可靠的视差大多数是由于遮挡引起,或者光照不均匀引起。既然牛逼如SGBM也觉得不可靠,那与其留着做个空洞,倒不如用附近可靠的视差值填充一下。

空洞填充也有很多方法,在这里我检测出空洞区域,然后用附近可靠视差值的均值进行填充。填充后的视差图如下:

填充后左视差图:

在这里插入图片描述



8. 视差图计算深度图

深度图如何获取?

视差的单位是像素(pixel),深度的单位往往是毫米(mm)表示。而根据平行双目视觉的几何关系(此处不再画图推导,很简单),可以得到下面的视差与深度的转换公式:





d

e

p

t

h

=

(

f

b

a

s

e

l

i

n

e

)

/

d

i

s

p

depth = ( f * baseline) / disp






d


e


p


t


h




=








(


f













b


a


s


e


l


i


n


e


)


/


d


i


s


p







上式中,depth表示深度图;f表示归一化的焦距,也就是内参中的fx; baseline是两个相机光心之间的距离,称作基线距离;disp是视差值。等式后面的均已知,深度值即可算出。



9. 深度图转换点云图

转换过程是什么?

p.z = double(d) / camera_factor;
p.x = (n - camera_cx) * p.z / camera_fx;
p.y = (m - camera_cy) * p.z / camera_fy;


相关资源:



双目视觉根据标定版计算摄像机内参(Halcon代码实现)



双目视觉已知摄像机参数根据左右图片生成点云数据(Halcon代码)



双目视觉万字总结原版markdown文件



双目视觉测距原理(word)



版权声明:本文为m0_46384757原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。