自动驾驶车辆的激光雷达和图像校准的制作方法

文档序号:32424381发布日期:2022-12-02 23:36阅读:49来源:国知局
自动驾驶车辆的激光雷达和图像校准的制作方法
自动驾驶车辆的激光雷达和图像校准
交叉引用
1.本技术要求2020年7月8日提交的申请号为16/924,000的美国非临时专利申请的优先权,在此通过引用将其全部内容并入本技术。


背景技术:

2.光转向通常涉及在预定方向上投射光,以促进,例如,物体的检测和测距、物体的照明和扫描等。光转向可用于许多不同的应用领域包括,例如,自动驾驶车辆、医疗诊断设备等。
3.现代车辆通常配备一套环境检测传感器,旨在实时检测车辆周围的物体和景观特征,这些传感器可用作许多现有和新兴技术的基础,例如辅助变道、防撞和自动驾驶功能。一些常用的传感系统包括光学传感器(例如,红外线、相机等)、用于检测其他车辆或物体的存在、方向、距离和速度的无线电探测和测距(雷达)、磁力计(例如,大型铁质物体的无源传感,如卡车、汽车或轨道车),以及光探测和测距(激光雷达)。
4.激光雷达通常使用脉冲光源和检测系统来估计与环境特征(例如,车辆、结构等)的距离。在一些系统中,激光或光脉冲(脉冲)通过透镜组件发射和聚焦,并且由接收器收集从物体上反射的脉冲。可以测量脉冲从发射时间到接收反射时间的飞行时间(tof),和/或可以计算相位差,这可以表现为单个数据点。这个过程可以在任何所需的范围内非常快速地重复(对于地面车辆来说,通常是360
°
的2d平面,而对于飞机来说则是3d区域),以形成实时动态和连续更新的点集合,形成“点云”。点云数据可用于估计物体相对于激光雷达系统的距离、尺寸和位置,通常具有非常高的保真度(例如,在5厘米以内)。
5.尽管激光雷达和其他传感系统为全自动交通的持续发展带来了希望,但仍还有一些挑战限制了它的广泛采用。激光雷达系统通常昂贵、庞大且笨重。在一些情况下,可能需要多个发射器来准确跟踪场景,特别是对于需要在大范围和视场(fov)上的精度的系统。尽管在将自动驾驶车辆技术推向更大的商业应用方面取得了重大进展,但仍需要进一步改进。


技术实现要素:

6.在一些实施例中,本技术公开了一种不使用专门目标而使用激光雷达系统校准相机的方法。
7.在一些实施例中,用于校准带有多维测距装置的视觉装置的系统包括扫描仪(例如,激光雷达模块)、包括一个或多个图像传感器的相机;和一个或多个处理器。一个或多个处理器被配置为使用所述相机获取第一图像;基于所述第一图像计算所述相机的第一姿态;使用所述相机获取第二图像;基于所述第二图像计算所述相机的第二姿态;基于所述相机的所述第一姿态和所述相机的所述第二姿态计算第一姿态变化;使用所述激光雷达模块生成场景的第一三维图;基于所述场景的所述第一三维图计算所述激光雷达模块的第一姿态;使用所述激光雷达模块生成所述场景的第二三维图;基于所述场景的所述第二三维图
计算所述激光雷达模块的第二姿态;基于所述激光雷达模块的所述第一姿态和所述激光雷达模块的所述第二姿态计算第二姿态变化;使用旋转向量将所述第一姿态变化的旋量与所述第二姿态变化的旋量关联起来;基于缩放旋转向量的初始值加上缩放值定义缩放旋转向量;分析所述第一姿态变化、所述第二姿态变化和所述缩放旋转向量之间的关系,以求解所述相机的所述第一姿态和所述激光雷达模块的所述第一姿态之间的旋量;以及,基于所述相机的所述第一姿态和所述激光雷达模块的所述第一姿态之间的旋量,使用所述激光雷达模块校准所述相机。在一些实施例中,激光雷达模块安装在车辆上;阻止所述相机和所述激光雷达模块之间的相对运动和旋转;在将所述缩放值与所述缩放旋转向量的所述初始值相加之前,将所述缩放值乘以所述第一姿态变化的所述旋量和所述第二姿态变化的所述旋量的总和;和/或分析是最小二乘法分析。
8.在一些实施例中,用于校准带有多维距离测量装置的视觉装置的方法包括使用相机获取第一图像;基于所述第一图像计算所述相机的第一姿态;使用所述相机获取第二图像;基于所述第二图像计算所述相机的第二姿态;基于所述相机的所述第一姿态和所述相机的所述第二姿态计算第一姿态变化;使用扫描仪生成场景的第一三维图;基于所述场景的所述第一三维图计算所述扫描仪的第一姿态;使用所述扫描仪生成所述场景的第二三维图;基于所述场景的所述第二三维图计算所述扫描仪的第二姿态;基于所述扫描仪的所述第一姿态和所述扫描仪的所述第二姿态计算第二姿态变化;使用旋转向量将所述第一姿态变化的旋量与所述第二姿态变化的旋量关联起来;基于缩放旋转向量的初始值加上缩放值定义缩放旋转向量;分析所述第一姿态变化、所述第二姿态变化和所述缩放旋转向量之间的关系,以求解所述相机的所述第一姿态和所述扫描仪的所述第一姿态之间的旋量;以及基于所述相机的所述第一姿态和所述扫描仪的所述第一姿态之间的旋量,使用所述扫描仪校准所述相机。在一些实施例中,所述相机和所述扫描仪的运动被限制在一个平面内,以使围绕第一轴的旋量远大于围绕第二轴的旋量;以及所述第二轴与所述第一轴正交;围绕所述第一轴的旋量是围绕所述第二轴线的旋量的两倍以上;所述相机和所述扫描仪的运动来自在平坦地面上行驶的车辆;还包括用所述扫描仪同时校准四个或更多个相机,求解所述缩放值以求解所述相机的所述第一姿态和所述扫描仪的所述第一姿态之间的旋量,和/或将所述第一姿态变化的时间与所述第二姿态变化的时间同步在将所述缩放值与所述缩放旋转向量的初始值相加之前,将所述缩放值乘以所述第一姿态变化的所述旋量和所述第二姿态变化的所述旋量的总和;所述分析是最小二乘法分析;和/或所述扫描仪是激光雷达模块的一部分。
9.从下文提供的详细描述中,本说明书的其他应用领域将变得显而易见。应当理解的是,详细描述和具体示例虽然指示了各种实施例,但仅旨在用于说明的目的,而不旨在限制本说明书的范围。
附图说明
10.参照附图进行详细描述。
11.图1示出了利用所公开技术的一些实施例的某些方面的自动驾驶车辆。
12.图2示出了相机的中心和激光雷达的中心。
13.图3示出了相机与激光雷达的未对准以及相机与激光雷达的对准。
14.图4示出了对准计算的流程图。
15.图5示出了相应的矩阵。
16.图6示出了不同坐标系下的旋转向量。
17.图7示出了估计用激光雷达系统校准相机系统的旋转向量的方法的实施例的流程图。
18.图8示出了用激光雷达系统校准相机系统的方法的实施例的流程图。
19.图9示出了与相机和激光雷达系统接口的计算机系统的实施例的框图。
20.在附图中,相似的组件和/或特征可以具有相同的参考标记。此外,可以通过在参考标记后加上破折号和区分相似组件的第二标签来区分相同类型的各种组件。如果说明书中仅使用了第一参考标记,则该描述适用于任何具有相同第一参考标记的类似部件,而与第二参考标记无关。
具体实施方式
21.本说明书的各个方面总体上涉及校准两个光学系统。更具体地且非限制性地,本说明书涉及在不使用目标、不使用人类交互或不同时使用目标和人类交互的情况下,利用激光雷达坐标系校准相机坐标系。
22.对于自主和/或半自主车辆,将相机的坐标系校准为激光雷达的坐标系有两种方式:1.基于目标;2.手动。基于目标的方法使用某些形状的对象,通常只能在预定义的位置执行。手动方法通常以某种方式比较激光雷达和相机信息。例如,用户使用交互信息或共同特征来手动将相机图像与激光雷达数据对准。手动方法传统上没有使用相机的视频流。将相机系统校准为激光雷达系统可以在工厂进行,然后每隔一段时间(例如,每月一次)来验证传感器的校准。使用目标来校准坐标系可能需要某些设备和校准知识。在循环中使用人员可能需要时间和/或引入人为错误。此外,还有一些校准技术单独校准相机。需要更好的过程和/或系统来用激光雷达坐标系校准相机坐标系。
23.确定机器人和相机的变换的问题称为手眼校准问题。手眼校准问题采用矩阵形式ax=xb,其中a和b是两个系统,x是一个变换(例如,roger y.ysai and reimar k.lenz,“real time versatile robotics hand/eye calibration using3d machine vision,”1988;以及https://en.wikipedia.org/wiki/hand_eye_calibration_problem,最后访问时间为2020年5月25日)。在相机/激光雷达系统中,矩阵a可以用来表示相机的姿态变化,矩阵b可以用来表示激光雷达的姿态变化,矩阵x是相机系统的姿态与激光雷达系统的姿态关系。
24.在车辆中,相机和激光雷达是刚性耦合的,因此相机和激光雷达之间没有相对运动或旋量。使用传统的手眼系统来校准带有激光雷达系统的相机系统的问题在于,车辆中的姿态变化可能包括主要或仅围绕一个轴的旋量(例如,围绕y轴的旋量》》围绕x轴和z轴的旋量,其中y轴基本上平行于重力方向)。在两个旋量中出现退化会使手眼问题难以解决。
25.为了解决手眼问题的退化问题,使用了带有缩放器的方向向量。方向向量允许通过使用最小二乘法拟合来求解旋转值。通过使用自动化的校准过程,可以减少人力(例如,没有校准板;没有特定目标等环境要求;可以使用普通道路进行校准等)。
26.在某些配置中,无目标方法使用相机视频流,而不是提取一些明确的几何信息(例如,类平面和法线方向);运行slam(同时定位和映射)算法来估计相机的姿态变化;使用姿态变化进行校准(例如,而不是仅使用一张图像);将相机的姿态变化与激光雷达的姿态变化(例如,通过手眼校准)进行比较,以便自动处理时间同步(例如,因为姿态可以相对容易地在姿态变化内插值);和/或可以与非旋转丰富的运动一起使用(例如,经典的手眼校准使用旋转丰富的运动来求解手眼方程ax=xb)。
27.在以下描述中,描述了校准两个局部坐标系的各种示例。出于解释的目的,阐述了具体配置和细节以便提供对实施例的透彻理解。然而,对于本领域技术人员来说,显而易见的是,可以在不公开每个细节的情况下实践或实施某些实施例。此外,可以省略或简化众所周知的特征,以防止任何对本文描述的新颖特征的混淆。
28.图1描述了可以实施所公开的技术的车辆100(例如,自主车辆或包括驾驶员的车辆)的实施例。车辆100包括激光雷达模块102。激光雷达模块102允许车辆100在周围环境中执行物体检测和测距。基于物体检测和测距的结果,车辆100可以制动以避免与物体碰撞。激光雷达模块102可以包括用于光转向的发射器104(例如,激光器)和接收器106(例如,检测器)。发射器104可以在不同时间以扫描模式在不同方向上投射一个或多个光脉冲108,而接收器106可以监测光脉冲110,该光脉冲110由物体反射光脉冲108而产生。激光雷达模块102可以基于接收的光脉冲110来检测物体,并且可以基于光脉冲108和光脉冲110之间的时间差和/或基于光脉冲108和光脉冲110之间的相位差来执行距离确定(例如,物体的距离)。例如,如图1所示,激光雷达模块102可以在车辆100正前方的方向发射光脉冲108并接收由物体112(例如,另一车辆)反射的光脉冲110。基于接收的光脉冲110,激光雷达模块102可以确定物体112在车辆100的正前方。通过每秒传输和检测许多光脉冲,激光雷达模块102可以生成点云,该点云是环境中物体112的三维表示。此外,基于光脉冲108和110之间的时间差,激光雷达模块102还可以确定车辆100和物体112之间的距离114。基于激光雷达模块102对物体112的检测和测距,车辆100可以调整其速度(例如,减速或停止)以避免与物体112碰撞。
29.车辆100还包括相机116。相机116被配置为使用图像传感器获取场景的多个图像。图像传感器对可见光敏感。相机116可以是激光雷达模块102的一部分或与激光雷达模块102分离。相机116可以用于获取图像以进行图像分析和/或显示给车辆用户、远程观看的人或驾驶结束后观看的人。在一些实施例中,存在与车辆100集成的多个相机116(例如,2、3、4、5、10或更多相机)。
30.图2描述了相机中心和激光雷达中心的实施例。图2描绘了相机中心204和激光雷达中心208。相机中心204被定义为第一局部坐标系(x,y,z)。激光雷达中心208被定义为第二局部坐标系(x,y,z)。
31.相机中心204可以定义为通过相机的图像传感器212的中心的z轴,其中z轴垂直于图像传感器212,z轴通过图像传感器212的中心,相机中心204与图像传感器212的距离为f,和/或距离f是相机镜头的焦距。因此,图像传感器212获取x/y平面中的图像。相机中心204是图1中相机116的中心。
32.激光雷达中心208也可以是激光雷达系统所属的汽车的局部坐标系。y轴可以被认为是汽车的垂直轴(例如,当汽车在水平面上时,y轴与重力方向平行)。当汽车在水平面上
转弯时,激光雷达围绕y轴旋转。在一些实施例中,激光雷达中心208的z轴是汽车前部所指向的方向。激光雷达中心208是图1中激光雷达模块102的中心。
33.在本说明书中,相机中心204的位置和激光雷达中心208的位置是在三个平移自由度下测量的。例如,如果汽车向前移动5米,则激光雷达中心208将在z方向移动5米。相机中心204的方向和激光雷达中心208的方向是在三个旋转自由度下测量的。例如,测量方向为滚动、俯仰和偏航,其中滚动是相机中心204围绕z轴旋转和激光雷达中心208围绕z轴旋转;俯仰是相机中心204围绕x轴旋转和激光雷达中心208围绕x轴旋转;偏航是相机中心204围绕y轴旋转和激光雷达中心208围绕y轴旋转。相机的姿态和激光雷达的姿态在六个自由度下进行测量,其中姿态是三个位置自由度和三个方向自由度的组合。尽管位置、方向和姿态的示例以笛卡尔坐标给出,但也可以使用其他坐标系(例如,球坐标或圆柱坐标;相机姿态可以在笛卡尔坐标中定义,而激光雷达的姿态可以在圆柱坐标中定义)。
34.图3描绘了叠加在图像316(例如,由图1的相机116获取的多个图像之一)上的激光雷达数据302(例如,从由图1中的激光雷达模块102生成的点云)的实施例的第一帧300-1和第二帧300-2。在第一帧300-1中,激光雷达数据302与图像316未对准。例如,激光雷达数据302对应于图像316中的极点320的位置,然而,激光雷达数据302未与图像316中第一帧300-1的极点320对准。
35.在第二帧300-2中,激光雷达数据302与图像316正对准。例如,与极点320的位置对应的激光雷达数据302与极点320对准。通过将图2中的相机中心204校准到激光雷达中心208,使激光雷达数据302与图像正对准。
36.图4描述了用于将相机与激光雷达对准的对准计算的实施例的流程图400。在一些实施例中,相机与汽车的坐标系对准(例如,激光雷达系统已经用车辆的坐标系校准),和/或通过将相机和激光雷达都对准公共参考系(例如,车辆),将相机与激光雷达对准。尽管描述了将相机与激光雷达系统对准,但该描述可适用于其他坐标系(例如,带有imu的相机、第一相机到第二相机、第一激光雷达系统到第二激光雷达系统、激光雷达系统到imu,和/或第一imu到第二imu)的对准。
37.在一些实施例中,校准技术是准确的、自动的和/或可以通过解决图4中的手眼问题来同时校准多个相机。在图4中,将相机(例如,图1中的相机116)坐标系的变化与扫描仪(例如,激光雷达模块102)的坐标系的变化进行比较。该相机包括图像传感器(例如,图2中的图像传感器212)。扫描仪包括激光器和检测器(例如,图1中的发射器104和接收器106)。相机和扫描仪与车辆(例如,图1中的车辆100)集成在一起,使得相机和扫描仪之间没有相对运动。
38.相机使用图像传感器获取多个图像,包括第一图像和第二图像。在第一时间t-1获取第一图像,在第二时间t-2获取第二图像。扫描仪产生多个点云,包括第一点云和第二点云。点云是场景的三维图。第一点云在第一时间t-1生成,第二点云在第二时间t-2生成。在一些实施例中,第二点云包括在第一时间t-1期间计算的一个或多个数据点。
39.基于第一图像计算相机a-1的第一姿态。基于第二图像计算相机a-2的第二姿态。变换a,即相机的姿态变化(有时称为第一姿态变化),是基于相机a-1的第一姿态和相机a-2的第二姿态来计算的。变换a是从相机a-1的第一姿态到相机a-2的第二姿态的变换。
40.基于第一点云计算扫描仪b-1的第一姿态。基于第二点云计算扫描仪b-2的第二姿
态。变换b,即扫描仪的姿态变化(有时称为第二姿态变化),是根据扫描仪b-1的第一姿态和扫描仪b-2的第二姿态来计算的。变换b是从扫描仪b-1的第一姿态到扫描仪b-2的第二姿态的变换。变换x是相机和扫描仪之间的姿态差异。变换a、b和x是包含有关旋量和平移信息的矩阵。
41.第一姿态变化、变换a、与第二姿态变化、变换b(例如,使用第一时间t-1和第二时间t-2)在时间上同步。变换a、变换b和变换x由以下等式关联:xa=bx。在一些实施例中,计算变换a,计算变换b,然后使用等式xa=bx求解变换x。
42.可以使用视觉slam算法计算变换a。然而,单眼视觉冲击可能难以解决。slam可以分为初始化和跟踪两部分。在一些实施例中,为了计算转换a,使用以下一项或多项进行初始化:提取具有描述符的特征(例如,函数cv::goodfeaturestotrack(例如,参见https://docs.opencv.org/2.4/modules/imgproc/doc/feature_detection.html#goodfeaturestotrack)+brief描述符);匹配特征描述符(低比率+双向+最大距离);估计姿态(函数cv:findessentialmat+最小化对称对极点距离);三角化(函数cv::triangulatepoint+最小视差);和/或如果质量低则丢弃(差异大的点》失败+差异小的点)。在一些实施例中,为了计算变换a,使用以下一项或多项进行跟踪:与参考帧匹配(低比率+双向+最大距离);估计姿态(最小化重投影损失);如果不是关键帧则跳过(小移动且与参考帧相似);与先验点匹配(基于初始值过滤总异常点);估计姿态(最小化投影损失);和/或对更多点进行三角化(例如,选择3个具有最大共通性的帧)。
43.图5描绘了图4中排列为方程xa=bx的变换a、变换b和变换x的对应矩阵。求解方程xa=bx的一个挑战来自退化运动。例如,如果汽车在相对平坦的地面上行驶,则存在围绕y轴的旋转,而围绕x轴或z轴的旋转次数较少(例如,在平面运动中退化)。因此,围绕x轴和z轴的旋量可能会退化,这会使求解方程xa=bx变得具有挑战性。
44.如图5所示,变换矩阵a、b、x可以分为旋量r的分量(3
×
3矩阵)和平移t分量(3x1矩阵),其中r_x为变换x的旋量,t_x为变换x的平移;r_a是变换a的旋量,t_a是变换a的平移;r_b是变换b的旋量,t_b是变换b的平移。值得注意的是,比例模糊度v乘以变换a的平移t_a。使用比例模糊度v是因为单目相机slam不知道两点之间的实际长度;相反,单目相机slam知道点与点之间的相对距离。以下公式涉及各种旋量r和平移t:公式1:r_x*r_a=r_b*r_x公式2:(i-r_b)*t_x=t_b

r_x*t_a*v
45.可以通过计算r_x和t_x来将相机校准到扫描仪,其中相机和扫描仪之间存在固定的相对旋转和平移。
46.图6描述了不同坐标系中的旋转向量e。图6示出了相机中心204和激光雷达中心208。在一些实施例中,测量t_x(例如,测量相机中心204到激光雷达中心208的偏移)。图6还描述了变换a相对于相机中心204的旋转向量e_a和变换b相对于激光雷达中心208的旋转向量e_b。由于相机中心204和激光雷达中心208之间的相对运动(旋转和平移)是固定的,e_a和e_b都有相同的θ旋量,公式1可以改写为:公式3:e_b=r_x*e_a
47.公式3使用旋转向量r_x将第一姿态变化的旋量与第二姿态变化的旋量关联起来,其中旋转向量r_x是相机坐标系和扫描仪坐标系之间的旋量差。另外:
公式4:(e_a+e_b)
×
e_x=e_a-e_b,其中(e_a+e_b)是等级2;以及公式5:e_x=e_0+u*(e_a+e_b)。
48.在公式5中,e_x是基于旋转向量e_0的初始值加上缩放值u乘以第一姿态的旋量e_a和第二姿态的旋量e_b之和的缩放旋转向量。缩放值u是1个旋转自由度。将公式5与公式2结合可得出:公式6:(i-r_b)*t=t_b

v*r_x(u)*t_a,其中r_x是缩放值u的函数。
49.公式6是一个非线性方程,可以通过应用非线性最小二乘法拟合分析来求解u(缩放值)和r_x(相机的第一姿态和激光雷达系统的第一姿态之间的旋转向量)。例如,非线性最小二乘法拟合用于最小化残差以获得u和r_x。
50.在一些实施例中,可以估计比例模糊度v(例如,用于设置比例模糊度v的初始条件)。在用于估计比例模糊度v的第一个示例中,相机在地面上的高度是已知的(例如,1.5米)。点云由相机slam生成。运行地面检测算法(例如,平面拟合坐标系中y较小的点),它可以提供没有比例的地面高度(例如,地面高度归一化为1.0)。使用已知高度可以估计地面高度的比例(例如,1.0=1.5米)。
51.在用于估计比例模糊度v的第二个示例中,车辆沿直线移动。激光雷达模块可以报告移动距离(例如3米)。相机slam也会报告移动距离(例如,归一化为1.0)。激光雷达模块的移动距离用于为相机slam的比例模糊度提供比例估计(例如,1.0=3米)。申请人发现第二个例子在某些情况下更加稳定。
52.图7描述了用激光雷达系统校准相机系统的估计旋量过程700的实施例的流程图。过程700以获取多个图像的步骤704开始。多个图像由图1中的一个或多个相机116获取。在步骤708中,对多个图像运行slam算法。图4描述了一些示例slam算法的步骤。在步骤712,计算相机姿态。例如,基于对多幅图像运行slam算法,计算图4中的第一相机姿态a-1和第二相机姿态a-2。
53.在步骤716,获取多个点云。可以使用图1的激光雷达模块102获取多个点云。步骤720,在多个点云上运行激光雷达slam算法,在步骤724计算激光雷达姿态。例如,基于在多个点云上运行激光雷达slam算法来计算第一扫描仪姿态b-1和第二扫描仪姿态b-2。在一些实施例中,步骤716、720和724与步骤704、708和712可以同时执行。在一些实施例中,基于视频图像重复步骤704、708和712(连同步骤716、720、724)。
54.在步骤728,执行姿态队列插值。可以从第一时间的第一姿态和第二时间的第二姿态对姿态进行插值,其中插值提供第一时间和第二时间之间的姿态。(例如,使用样条插值,https://math.stackexchange.com/questions/2092456/spline-interpolation-in-se3)。姿态(例如姿态a-1和b-1;以及a-2和b-2)是时间同步的,步骤732。在步骤736中,求解方程xa=bx的退化运动(例如,参见图5和图6以及对在平面上移动的汽车求解xa=bx的相应描述)。从求解方程xa=bx、估计旋转向量r_x,步骤740,指示相机中心和激光雷达中心如何在三个旋转自由度中关联。相机中心和激光雷达中心之间的距离(例如,t_x)可以在三个平移自由度中测量(例如,用尺子或电子测量设备)。
55.图8描述了用扫描仪校准相机的过程800的实施例的流程图。过程800开始于使用相机获取第一图像的步骤804。例如,第一图像由图1的相机116获取。基于第一图像计算相
机的第一姿态(例如,图4中的第一姿态a-1),步骤808。例如,使用slam算法计算相机的第一姿态。使用相机获取第二图像,步骤812,并且基于第二图像计算相机的第二姿态(例如,图4中的第二姿态a-2),步骤816。基于相机的第一姿态和相机的第二姿态计算第一姿态变化(例如,图4中的变换a),步骤820。
56.在步骤824,扫描仪(例如,图1中的激光雷达模块102)用于生成场景的第一三维图。从第一三维图计算扫描仪的第一姿态(例如,图4中的第一姿态b-1),步骤828。例如,使用slam算法基于第一三维图计算扫描仪的第一姿态。由扫描仪生成第二三维图,步骤832,并且使用第二三维图计算扫描仪的第二姿态(例如,图4中的b-2),步骤836。基于扫描仪的第一姿态和扫描仪的第二姿态计算第二姿态变化(例如,图4中的变换b),步骤840。步骤824-840可以与步骤804-820同时执行。
57.第一姿态变化与第二姿态变化时间同步,步骤844。例如,在图4中,从时间t-1到时间t-2计算相机的第一姿态变化和扫描仪的第二姿态变化。在步骤848中,第一姿态变化的旋量与第二姿态变化的旋量关联。例如,e_b=r_x*e_a(公式3)。在步骤852中定义缩放旋转向量。例如,e_x(缩放旋转向量)是初始值e_0、缩放值u、e_a和e_b(公式5)的函数。在步骤856中,求解相机和扫描仪之间的旋量(例如,r_x)以及缩放值(例如,缩放值u)。例如,公式6通过对第一姿态变化、第二姿态变化和缩放的旋转向量之间的关系应用非线性最小二乘法拟合分析来求解缩放值u和r_x(u)。通过求解旋量r_x(因为t_x是先前已知的和/或可以测量的),相机可以校准到扫描仪上。
58.在一些实施例中,相机和扫描仪的运动被限制在一个平面内,因此围绕第一轴的旋量远大于围绕第二轴的旋量。例如,运动是车辆在x/z平面上行驶,因此围绕y轴的旋量大于(例如,等于或大于2、5、10、15、20或24倍)围绕x和/或z轴的旋量。例如,汽车可以绕y轴旋转360
°
,绕x轴旋转不超过5
°
、10
°
或15
°
。在一些实施例中,平坦地面具有等于或小于1
°
、2
°
或5
°
的坡度。y轴与x轴和z轴正交。在一些实施例中,可以一次将多个相机校准到扫描仪。例如,与车辆集成的两个、三个、四个或更多相机可以同时校准到扫描仪(校准到车辆)。
59.图9是计算设备900的简化框图。计算设备900可以实现上述使用电子存储或处理的部分或全部功能、行为和/或能力,以及其他未明确描述的功能、行为或能力。计算设备900包括处理子系统902、存储子系统904、用户接口906和/或通信接口908。计算设备900还可以包括其他组件(未明确示出),例如电池、电源控制器和其他可操作以提供各种增强功能的组件。在各种实施例中,计算设备900可以在车辆、膝上型计算机、移动设备(例如,平板电脑、智能手机、移动电话)、可穿戴设备、媒体设备、专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器或设计用于执行上述功能或功能组合的电子单元。
60.存储子系统904可以使用本地存储和/或可移动存储介质来实现,例如,使用磁盘、闪存(例如,安全数字卡、通用串行总线闪存驱动器)或任何其他非临时存储介质,或它们的组合介质,并且可以包括易失性和/或非易失性存储介质。本地存储可以包括随机存取存储器(ram),包括动态ram(dram)、静态ram(sram)或电池备份ram。在一些实施例中,存储子系统904可以存储要由处理子系统902执行的一个或多个应用程序和/或操作系统程序,包括用于实现上述将使用计算机执行的一些或所有操作的程序。例如,存储子系统904可以存储一个或多个代码模块910,用于实现上述一个或多个方法步骤。
61.固件和/或软件实现可以用模块(例如,过程、功能等)来实现。有形地体现指令的机器可读介质可用于实现本文所述的方法。代码模块910(例如,存储在存储器中的指令)可以在处理器内或处理器外部实现。如本文所用,术语“存储器”是指一种类型的长期、短期、易失性、非易失性或其他存储介质,并且不限于任何特定类型的存储器或存储器数量或在其上的介质类型内存被存储。
62.此外,术语“存储介质”或“存储设备”可以表示用于存储数据的一个或多个存储器,包括只读存储器(rom)、ram、磁ram、核心存储器、磁盘存储介质、光存储介质、闪存用于存储信息的设备和/或其他机器可读介质。术语“机器可读介质”包括但不限于便携式或固定存储设备、光存储设备、无线信道和/或能够存储指令和/或数据的各种其他存储介质。
63.此外,实施例可以通过硬件、软件、脚本语言、固件、中间件、微代码、硬件描述语言和/或它们的任何组合来实现。当以软件、固件、中间件、脚本语言和/或微代码实现时,用于执行任务的程序代码或代码段可以存储在诸如存储介质的机器可读介质中。代码段(例如,代码模块910)或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、脚本、类或指令、数据结构和/或程序语句的组合。通过传递和/或接收信息、数据、自变量、参数和/或存储器内容,代码段可以耦合到另一个代码段或硬件电路。信息、命令行参数、参数、数据等可以通过合适的方式传递、转发或传输,包括内存共享、消息传递、令牌传递、网络传输等。
64.上述技术、块、步骤和装置的实施可以以各种方式完成。例如,这些技术、块、步骤和装置可以在硬件、软件或其组合中实现。对于硬件实现,处理单元可以在一个或多个asic、dsp、dspd、pld、fpga、处理器、控制器、微控制器、微处理器、设计用于执行上述功能的其他电子单元和/或的组合中实现。
65.每个代码模块910可以包括体现在计算机可读介质上的指令组(代码),其指导计算设备900的处理器执行相应的动作。指令可以被配置为按顺序、并行(例如在不同的处理线程下)或以它们的组合运行。在通用计算机系统上加载代码模块910之后,通用计算机被转换为专用计算机系统。
66.结合本文所述的各种特征(例如,在一个或多个代码模块910中)的计算机程序可以被编码并存储在各种计算机可读存储介质上。用程序代码编码的计算机可读介质可以与兼容的电子设备一起打包,或者程序代码可以与电子设备分开提供(例如,通过互联网下载或作为单独打包的计算机可读存储介质)。存储子系统904还可以存储对使用通信接口908建立网络连接有用的信息。
67.用户接口906可以包括输入设备(例如,触摸板、触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等),以及输出设备(例如,视频屏幕、指示灯、扬声器、耳机插孔、虚拟或增强现实显示器等),以及支持电子设备(例如,数模或模数转换器、信号处理器等)。用户可以操作用户接口906的输入设备来调用计算设备900的功能并且可以通过用户接口906的输出设备查看和/或听到来自计算设备900的输出。对于一些实施例,用户接口906可能不存在(例如,对于使用asic的进程)。
68.处理子系统902可以实现为一个或多个处理器(例如,集成电路、一个或多个单核或多核微处理器、微控制器、中央处理单元、图形处理单元等)。在操作中,处理子系统902可以控制计算设备900的操作。在一些实施例中,处理子系统902可以响应于程序代码执行各
种程序并且可以维持多个同时执行的程序或进程。在给定时间,要执行的一些或全部程序代码可以驻留在处理子系统902和/或存储介质中,例如存储子系统904。通过编程,处理子系统902可以为计算设备900提供各种功能。处理子系统902还可以执行其他程序来控制计算设备900的其他功能,包括可以存储在存储子系统904中的程序。
69.处理子系统902与相机系统912和扫描仪916进行电子通信(有线或无线)。例如,相机系统912是图1中的相机116。扫描仪916是图1中的激光雷达模块102。
70.通信接口908可以为计算设备900提供语音和/或数据通信能力。在一些实施例中,通信接口908可以包括用于访问无线数据网络(例如,wi-fi网络;3g、4g/lte;等)、移动通信技术、用于短距离无线通信的组件(例如,使用蓝牙通信标准、nfc等)、其他组件或技术组合。在一些实施例中,除了或代替无线接口,通信接口908可以提供有线连接(例如,通用串行总线、以太网、通用异步接收器/发送器等)。通信接口908可以使用硬件(例如,驱动器电路、天线、调制器/解调器、编码器/解码器和其他模拟和/或数字信号处理电路)和软件组件的组合来实现。在一些实施例中,通信接口908可以同时支持多个通信信道。在一些实施例中,不使用通信接口908。
71.应当理解,计算设备900是说明性的,并且可以变化和修改。计算设备可以具有未具体描述的各种功能(例如,经由蜂窝电话网络的语音通信)并且可以包括适合于这种功能的组件。
72.此外,虽然参考特定块描述了计算设备900,但是应当理解,这些块是为了描述方便而定义的并且不意味着组件部件的特定物理布置。例如,处理子系统902、存储子系统904、用户接口906和/或通信接口908可以在一个设备中或分布在多个设备中。
73.此外,块不需要对应于物理上不同的组件。块可以被配置为执行各种操作,例如,通过对处理器进行编程或提供适当的控制电路,并且根据如何获得初始配置,各种块可能是可重新配置的,也可能是不可重新配置的。本发明的实施例可以在包括使用电路和软件的组合实现的电子设备的各种设备中实现。本文所述的电子设备可以使用计算设备900来实现。
74.本文描述的各种特征,例如方法、装置、计算机可读介质等,可以使用专用组件、可编程处理器和/或其他可编程设备的组合来实现。这里描述的过程可以在相同的处理器或不同的处理器上实现。在将组件描述为被配置为执行某些操作的情况下,可以通过例如设计电子电路来执行操作、通过对可编程电子电路(例如微处理器)进行编程来执行操作、或它们的组合来实现这种配置。此外,虽然上述实施例可以参考特定的硬件和软件组件,但本领域技术人员可以理解,也可以使用硬件和/或软件组件的不同组合,并且描述为在硬件中实现的特定操作可以是在软件中实现,反之亦然。
75.在以上描述中给出了具体细节以提供对实施例的理解。然而,应当理解,可以在没有这些具体细节的情况下实施实施例。在一些情况下,可以在没有不必要的细节的情况下描述众所周知的电路、过程、算法、结构和技术,以避免混淆实施例。
76.随后的描述仅提供优选的示例性实施例,并不旨在限制本说明书的范围、适用性或配置。相反,优选示例性实施例的后续描述将为本领域技术人员提供用于实现优选示例性实施例的有效描述。应当理解,在不脱离所附权利要求中阐述的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
77.在不脱离本发明实施例的精神和范围的情况下,可以以任何合适的方式组合特定实施例的具体细节。然而,本发明的其他实施例可以针对与每个单独方面或这些单独方面的特定组合有关的特定实施例。
78.此外,应当注意的是,实施例可被描述为作业图、流程图、数据流程图、结构图或框图的过程。尽管流程图可以将操作描述为顺序过程,但许多操作可以并行或同时执行。此外,可以重新安排操作的顺序。一个进程在其操作完成时终止,但可能有图中未包括的其他步骤。过程可以对应于方法、函数、过程、子例程、子程序等。
79.除非有明确相反的说明,否则“一个”、“一”或“该”的引用旨在表示“一个或多个”。
80.此处提及的所有专利、专利申请、出版物和描述出于所有目的通过引用整体并入。没有一个是现有技术。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1