一种相机标定方法、测距方法、设备及存储介质与流程

文档序号:32441292发布日期:2022-12-06 21:54阅读:23来源:国知局
一种相机标定方法、测距方法、设备及存储介质与流程

1.本技术涉及相机标定技术领域,尤其涉及一种相机标定方法、测距方法、设备及存储介质。


背景技术:

2.在驾校里,学员考试或练车的过程中需要对车辆进行gps定位,以提示车辆是否正确到达指定位置。
3.但是,车辆经常因顶棚或树木遮挡等因素发生gps定位失锁问题,导致车辆定位出现错误,甚至无法定位。


技术实现要素:

4.本技术的多个方面提供一种相机标定方法、测距方法、设备及存储介质,用以提高相机标定的精度和/或测距精度。
5.本技术实施例提供一种测距方法,包括:
6.利用单目相机拍摄包含第一对象和第二对象的实景图像,所述单目相机固定装配在所述第一对象上,且所述单目相机的标定参数包括标定过程所用棋盘格中每个格子下的仿射矩阵;
7.分别计算所述第一对象和所述第二对象上的关键点在所述实景图像对应的像素坐标系中的像素坐标;
8.根据所述棋盘格中每个格子在所述像素坐标系中所对应的像素坐标范围和所述第一对象和所述第二对象上的关键点各自对应的像素坐标,确定所述第一对象上的关键点所落入的第一格子和所述第二对象上的关键点所落入的第二格子;
9.按照所述第一格子下的仿射矩阵和所述第一对象上的关键点对应的像素坐标,计算所述第一对象上的关键点在世界坐标系中的世界坐标,其中,所述世界坐标系为按照所述棋盘格的尺寸建立的;
10.按照所述第二格子下的仿射矩阵和所述第二对象上的关键点对应的像素坐标,计算所述第二对象上的关键点在世界坐标系中的世界坐标;
11.基于所述第一对象和所述第二对象上的关键点各自对应的世界坐标,计算所述第一对象和所述第二对象之间的距离。
12.本技术实施例还提供一种相机标定方法,包括:
13.在单目相机固定后,利用所述单目相机对放置于相机视野内的棋盘格进行拍照,以获得标定图像;
14.根据所述棋盘格的尺寸建立世界坐标系;
15.在所述棋盘格包含的每个格子下,根据格子在所述世界坐标系和所述标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;
16.将所述棋盘格包含的每个格子各自对应的仿射矩阵,作为所述单目相机的标定参
数。
17.本技术实施例还提供一种计算设备,包括存储器和处理器;
18.所述存储器用于存储一条或多条计算机指令;
19.所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于:
20.利用单目相机拍摄包含第一对象和第二对象的实景图像,所述单目相机固定装配在所述第一对象上,且所述单目相机的标定参数包括标定过程所用棋盘格中每个格子下的仿射矩阵;
21.分别计算所述第一对象和所述第二对象上的关键点在所述实景图像对应的像素坐标系中的像素坐标;
22.根据所述棋盘格中每个格子在所述像素坐标系中所对应的像素坐标范围和所述第一对象和所述第二对象上的关键点各自对应的像素坐标,确定所述第一对象上的关键点所落入的第一格子和所述第二对象上的关键点所落入的第二格子;
23.按照所述第一格子下的仿射矩阵和所述第一对象上的关键点对应的像素坐标,计算所述第一对象上的关键点在世界坐标系中的世界坐标,其中,所述世界坐标系为按照所述棋盘格的尺寸建立的;
24.按照所述第二格子下的仿射矩阵和所述第二对象上的关键点对应的像素坐标,计算所述第二对象上的关键点在世界坐标系中的世界坐标;
25.基于所述第一对象和所述第二对象上的关键点各自对应的世界坐标,计算所述第一对象和所述第二对象之间的距离
26.本技术实施例还提供一种计算设备,包括存储器和处理器;
27.所述存储器用于存储一条或多条计算机指令;
28.所述处理器与所述存储器耦合,用于执行所述一条或多条计算机指令,以用于:
29.在单目相机固定后,利用所述单目相机对放置于相机视野内的棋盘格进行拍照,以获得标定图像;
30.根据所述棋盘格的尺寸建立世界坐标系;
31.在所述棋盘格包含的每个格子下,根据格子在所述世界坐标系和所述标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;
32.将所述棋盘格包含的每个格子各自对应的仿射矩阵,作为所述单目相机的标定。
33.本技术实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的测距方法或相机标定方法。
34.在本技术实施例中,提出了一种全新的单目相机标定方案,可根据标定用的棋盘格的尺寸建立世界坐标系,在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定。这样,可实现对单目相机的不同成像区域进行精细化标定,从而有效提高标定精度。在此基础上,可利用标定好的单目相机进行测距工作,在测距的过程中,可确定测距的两个对象各自所落入到棋盘格中的哪个格子中,从而使用对应格子的仿射矩阵来计算对象的世界坐标,进而计算对象之间的距离。由于格子的相对位置和世界坐标等参数不受图像畸变的影响,因此,基于本实施例提供的相机标定
方案而进行测距的过程中,可有效降低图像畸变等带来的误差,提高测距精度。另外,基于测距功能还可在不依赖gps定位设备的情况下,实现对指定对象的精准定位。
附图说明
35.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
36.图1为本技术一示例性实施例提供的一种测距方法的流程示意图;
37.图2为本技术一示例性实施例提供的一种实景图像的示意图;
38.图3为本技术一示例性实施例提供的一种世界坐标系的构建方案示意图;
39.图4为本技术另一示例性实施例提供的一种相机标定方法的流程示意图;
40.图5为本技术又一示例性实施例提供的一种计算设备的结构示意图。
具体实施方式
41.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.目前,车辆经常因顶棚或树木遮挡等因素发生gps定位失锁问题,导致车辆定位出现错误,甚至无法定位。为此,本技术的一些实施例中:提出了一种全新的单目相机标定方案,可根据标定用的棋盘格的尺寸建立世界坐标系,在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定。这样,可实现对单目相机的不同成像区域进行精细化标定,从而有效提高标定精度。在此基础上,可利用标定好的单目相机进行测距工作,在测距的过程中,可确定测距的两个对象各自所落入到棋盘格中的哪个格子中,从而使用对应格子的仿射矩阵来计算世界坐标,进而计算对象之间的距离。由于格子的相对位置和世界坐标等参数不受图像畸变的影响,因此,基于本实施例提供的相机标定方案而进行测距的过程中,可有效降低图像畸变等带来的误差,提高测距精度。另外,基于测距功能还可在不依赖gps定位设备的情况下,实现对指定对象的精准定位。
43.以下结合附图,详细说明本技术各实施例提供的技术方案。
44.图1为本技术一示例性实施例提供的一种测距方法的流程示意图,该方法可由数据处理装置执行,该数据处理装置可实现为软件和/或硬件的结合,该数据处理装置可集成在计算设备中。参考图1,该方法包括:
45.步骤100、利用单目相机拍摄包含第一对象和第二对象的实景图像,单目相机固定装配在第一对象上,且单目相机的标定参数包括标定过程所用棋盘格中每个格子下的仿射矩阵;
46.步骤101、分别计算第一对象和第二对象上的关键点在实景图像对应的像素坐标系中的像素坐标;
47.步骤102、根据棋盘格中每个格子在像素坐标系中所对应的像素坐标范围和第一
对象和第二对象上的关键点各自对应的像素坐标,确定第一对象上的关键点所落入的第一格子和第二对象上的关键点所落入的第二格子;
48.步骤103、按照第一格子下的仿射矩阵和第一对象上的关键点对应的像素坐标,计算第一对象上的关键点在世界坐标系中的世界坐标,其中,世界坐标系为按照棋盘格的尺寸建立的;
49.步骤104、按照第二格子下的仿射矩阵和第二对象上的关键点对应的像素坐标,计算第二对象上的关键点在世界坐标系中的世界坐标;
50.步骤105、基于第一对象和第二对象上的关键点各自对应的世界坐标,计算第一对象和第二对象之间的距离。
51.本实施例提供的测距方法可应用于各种需要进行测距的场景中。例如,自动驾驶、驾校考试等,本实施例对应用场景不做具体限定。在不同的应用场景中,被测距的对象可以是多种多样的,例如,在自动驾驶场景中,被测距的对象可以是本车和相邻车;又例如,在驾校考试场景中,被测距的对象可以是本车和地面上的白线。当然,这仅是示例性的,本实施例对被测距的对象的属性不做限定。
52.本实施例中,可将单目相机固定装配在第一对象上,并进行相机标定,而且,在完成相机标定后,单目相机也不再移动,以保证单目相机的标定参数的有效性。本实施例可采用棋盘格进行相机标定。可选地,在单目相机固定好后,可测量单目相机的视野范围,选用一张刚好可以铺满相机视野的棋盘格,棋盘格中格子的尺寸和数量可按需设定,当然,这仅是示例性的,本实施例并不限于此。
53.在此基础上,可利用单目相机对棋盘格进行拍照,以获得标定图像,之后可根据标定对象和棋盘格对单目相机进行标定,具体的标定过程将在后文中进行详述。本实施例中,在相机标定过程中,可为棋盘格中的每个格子计算仿射矩阵,并将棋盘格中每个格子下的仿射矩阵作为单目相机的标定参数。其中,仿射矩阵用于表征像素坐标系与世界坐标系之间的仿射关系,像素坐标系可以是根据单目相机拍摄到的图像的尺寸建立的,而世界坐标系则可以是按照棋盘格的尺寸建立的。
54.在完成相机标定后,单目相机可随第一对象同步运动,且单目相机可拍摄到包含第一对象和第二对象的实景图像。其中,第二对象可以是实景中需要与第一对象进行测距的任意对象,例如,在自动驾驶场景中,第一对象可以是本车,第二对象可以是前车;又例如,在驾校考试场景中,第一对象可以是本车,第二对象可以是地面上的白线。图2为本技术一示例性实施例提供的一种实景图像的示意图。参考图2,在该示例性的实景图像中,第一对象为车辆,第二对象为地面上的白线。
55.本实施例中,可分别在第一对象和第二对象上选取关键点,关键点可用于代表其所在对象,例如,可使用关键点的位置表征其所在对象的位置,这样,可通过计算第一对象和第二对象上的关键点之间的距离,来实现对第一对象和第二对象进行测距。本实施例中,可按需自定义关键点的选取位置,例如,可选择对象上的中心点作为关键点,也可选择对象上的指定点或者随机点作为关键点,本实施例对此不做限定。
56.参考图1,在步骤101中,可分别计算第一对象和第二对象的关键点在实景图像对应的像素坐标系中的像素坐标。其中,本实施例中,可采用opencv等方式在实景图像中获取像素坐标,当然,这仅是示例性的,本实施例中可使用现在或者将来提出的任意在图像中获
取像素坐标的技术方案来计算第一对象和第二对象的关键点在实景图像对应的像素坐标系中的像素坐标,在此不再展开详述。
57.对于第一对象上的关键点来说,优选地,可在单目相机固定装配完成后,即计算第一对象上的关键点对应的像素坐标,并进行存储。预先计算的过程可包括:利用单目相机拍摄第一对象上的关键点,以获得测试图像;在测试图像中,计算并存储第一对象上的关键点在像素坐标系中的像素坐标。而在测距过程中,由于单目相机与第一对象的相对位置保持不变,因此,单目相机拍摄到的任意实景图像中,第一对象上的关键点对应的像素坐标是保持不变的,这样,可在测距过程中,直接获取并使用预先存储的第一对象上关键点在像素坐标系中的像素坐标。
58.而对于第二对象上的关键点来说,由于第二对象是灵活可变的,因此,还是采用实时计算的方式来获得第二对象上关键点在像素坐标系中的像素坐标。为了进一步提高第二对象上关键点的像素坐标的准确性,本实施例中,可对实景图像进行目标检测,以框出第二对象在实景图像中的位置区域;在位置区域中,计算第二对象上的关键点的像素坐标。其中,对实景图像进行目标检测的过程中,可采用深度学习模型来执行,而深度学习模型中则可采用现在或将来提出的各种目标检测算法,本实施例对此不做限定。例如,若第二对象为地面上的白线,则可先使用深度学习模型在实景图像中框出白线区域,之后,在白线区域中采用上述的opencv等方式来计算白线上关键点的像素坐标,加入目标检测处理后,可有效提高关键点的像素坐标的准确性。
59.正如前文提及的,在相机标定过程中,可获得标定图像,而在标定图像中可按照上述提及的像素坐标的获取方式,确定棋盘格中每个格子在像素坐标系中对应的像素坐标范围。举例来说,针对其中的一个格子来说,可分别计算该格子的四个角点对应的像素坐标,基于四个角点对应的像素坐标可确定出该格子所覆盖的像素坐标范围。
60.基于此,参考图1,在步骤102中,可根据棋盘格中每个格子在像素坐标系中所对应的像素坐标范围和第一对象和第二对象上的关键点各自对应的像素坐标,确定第一对象上的关键点所落入的第一格子和第二对象上的关键点所落入的第二格子。实际应用中,可为棋盘格中的每个格子配置唯一标识,并可记录格子之间的相对位置关系,这样可在棋盘格中准确地确定出第一对象上的关键点所落入的第一格子和第二对象上的关键点所落入的第二格子。
61.参考图1,在确定出第一对象上的关键点所落入的第一格子和第二对象上的关键点所落入的第二格子,可从单目相机的标定参数中,获取第一格子和第二格子各自对应的仿射矩阵。
62.在步骤103和104中,可按照第一格子下的仿射矩阵和第一对象上的关键点对应的像素坐标,计算第一对象上的关键点在世界坐标系中的世界坐标;按照第二格子下的仿射矩阵和第二对象上的关键点对应的像素坐标,计算第二对象上的关键点在世界坐标系中的世界坐标。这样,可获得第一对象和第二对象上的关键点各自对应的世界坐标。在计算世界坐标的过程中,使用的是关键点所落入的格子下的仿射矩阵,因此,可在关键点位于实景图像不同区域的情况下,使用相适配的仿射矩阵来计算世界坐标,这使得计算出的世界坐标更加准确。
63.参考图1,在步骤105中,可基于第一对象和第二对象上的关键点各自对应的世界
坐标,计算第一对象和第二对象之间的距离。这里,可基于第一对象和第二对象上的关键点各自对应的世界坐标,计算两个关键点之间的距离,作为第一对象和第二对象之间的距离。
64.在一种可选的实现方式中,可根据第一对象上关键点对应的世界坐标,计算第一对象上关键点与世界坐标系中x轴和y轴之间的距离;根据第二对象上关键点对应的世界坐标,计算第二对象上关键点与世界坐标系中x轴和y轴之间的距离;基于第一对象上关键点与世界坐标系中x轴和y轴之间的距离和第二对象上关键点与世界坐标系中x轴和y轴之间的距离,计算第一对象和第二对象上的关键点之间欧氏距离,作为第一对象与第二对象之间的距离。
65.在该实现方式中,计算两个关键点之间的欧式距离的过程中,计算了两个关键点各自到世界坐标系中的x轴和y轴的距离,以第二对象上的关键点为例,在一种示例性的方案中,可将世界坐标系中的x轴设置为与棋盘格中指定格子的指定边重合,这样,计算关键点到世界坐标系中x轴的距离过程中:可计算第二对象上的关键点与其所落入的第二格子中离世界坐标系中的x轴最近的第一边之间的第一距离;获取第一边与世界坐标系中的x轴之间的第二距离;将第一距离和第二距离之和,作为第二对象上的关键点与世界坐标系中的x轴之间的距离。在该示例性方案中,第一边与世界坐标系中的x轴之间的第二距离可采用第一边与x轴之间的格子数乘以单个格子边长而获得,而由于格子数和格子边长这两个参数值不会因图像畸变而发生变化,因此,无论实景图像中是否存在畸变,这里的第一边与世界坐标系中的x轴之间的第二距离将不会存在误差,这样,对于第二对象上的关键点到世界坐标系中x轴之间的距离中,只有上述的第一距离可能导致误差,而第二距离不会存在误差,这大大降低了整体的计算误差,尤其是在实景图像中存在畸变的情况下,可有效改善畸变导致的测距误差。这可有效克服现有的张氏标定等相机标定方案无法应对倾斜角度、图像畸变的技术难题。另外,在该示例性的方案中,还可采用同样的方式,计算出第二对象上关键点到世界坐标系中y轴的距离,以及计算第一对象上关键点到世界坐标系中x轴和y轴的距离,在此不再重复赘述。在到坐标轴的距离更加准确的情况下,可有效提高计算出的欧式距离的准确性,进而提高测距准确性。
66.据此,本实施例中,可将用于标定的棋盘格中每个格子下的仿射矩阵,作为单目相机的标定参数,基于此,可利用标定好的单目相机进行测距工作,在测距的过程中,可确定测距的两个对象各自所落入到棋盘格中的哪个格子中,从而使用对应格子的仿射矩阵来计算世界坐标,进而计算对象之间的距离。由于格子的相对位置和世界坐标等参数不受图像畸变的影响,因此,基于本实施例提供的测距方案,可有效降低图像畸变等带来的误差,提高测距精度。
67.在上述或下述实施例中,基于上述的测距方案,还可获取第二对象上的关键点对应的gps数据;根据第二对象上的关键点对应的gps数据和第一对象和第二对象之间的距离,计算第一对象上的关键点对应的gps数据,以对第一对象进行定位。
68.本实施例提出了以上述测距方案作为基础的定位方案。本实施例中,在确定出第一对象和第二对象之间的距离后,可获取第二对象的gps数据,在已知一方的gps数据和双方之间的距离的情况下,可快速准确地计算出另一方的gps数据。举例来说,第一对象可以是车辆,第二对象可以是地面上的白线,其中,白线的gps数据可预先获知,在已知白线的gps数据的基础和车辆与白线之间距离的情况下,可计算出车辆的gps数据,从而实现车辆
定位。
69.为了提高定位准确性,本实施例中,还提出,在第一对象上固定装配至少两个单目相机。其中,至少两个单目相机可分别装配在第一对象的不同位置。例如,第一对象为车辆,至少两个单目相机分布在车辆的前方、后方和/或侧方。
70.在此基础上,可分别获取至少两个单目相机各自拍摄到的第二对象上的关键点对应的gps数据,不同单目相机拍摄到的第二对象不完全相同;根据至少两个单目相机各自拍摄到的第二对象上的关键点对应的gps数据和第一对象和至少两个单目相机各自拍摄到的第二对象之间的距离,计算第一对象上的关键点对应的gps数据。
71.对此,可在每个单目相机下,均可采用上述实施例中提出的测距方案,计算第一对象与单目相机拍摄到的第二对象之间的距离,值得说明的是,不同单目相机拍摄到的第二对象可能不完全相同。举例来说,可在车辆的前方和后方分别装配一单目相机并进行标定,在此基础上,可利用装配于车辆前方的单目相机拍摄车头和前方白线,而利用装配于车辆后方的单目相机拍摄车尾和后方白线,这样,可在两个单目相机下分别计算车头与前方白线之间的距离以及车尾与后方白线之间的距离。前方白线和后方白线的gps数据已知,则可快速准确地计算出车头和车尾的gps数据,车头和车尾的gps数据相互校正、融合,可准确地确定出车辆的gps数据。
72.本实施例中,可基于上述实施例中提出的测距功能,在不依赖gps定位设备的情况下,实现对指定对象的精准定位。
73.在上述或下述实施例中,可预先对单目相机进行标定,一种可选的标定过程可以是:
74.在单目相机固定后,利用单目相机对放置于相机视野内的棋盘格进行拍照,以获得标定图像;
75.根据棋盘格的尺寸建立世界坐标系;
76.在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;
77.将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定参数。
78.其中,在建立世界坐标系的过程中,可将世界坐标系中的x轴设置为与棋盘格中指定格子的指定边重合。这样,世界坐标系的坐标轴将落在棋盘格中相关格子的边上。图3为本技术一示例性实施例提供的一种世界坐标系的构建方案示意图。如图3所示例地,可以棋盘格中左上角的格子中左上角的角点作为原点,使x轴与该格子的顶边重合,使y轴与该格子的左边重合,从而构建世界坐标系。在世界坐标系中,根据每个格子的尺寸,可确定出每个格子中角点的世界坐标、与坐标轴之间所跨过的格子数量、所覆盖的世界坐标范围以及其它在测距方案中可能使用到的参数,本实施例中可记录这些参数,并在前述的测距方案中直接调用这些参数。
79.本实施例中,还可根据拍摄到的标定图像的尺寸建立像素坐标系。图像都是由像素组成的,像素坐标可用于表示是像素在图像中的位置。基于像素坐标系,可采用前文提及的目标检测及opencv等技术,在标定图像中确定棋盘格中每个格子中角点的像素坐标、所覆盖的像素坐标范围以及其它在测距方案中可能使用到的参数,本实施例中可记录这些参数,并在前述的测距方案中直接调用这些参数。
80.在此基础上,可以格子为单位,根据棋盘格中每个格子在世界坐标系中的各种参数和在像素坐标系中的各种参数,来表征格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,进而计算格子对应的仿射矩阵。以其中一个目标格子为例,目标格子的角点a的世界坐标为(m1,n1),在标定图像中目标格子发生了翻转,角点a的像素坐标记为(x1,y1),则必然存在如下的矩阵关系:
[0081][0082]
其中,在角点a的世界坐标和像素坐标已知的情况下,可准确计算出目标格子的仿射矩阵。
[0083]
当然,目标格子在标记图像上可能不止在二维空间中发生旋转,还可能在三维空间中发生旋转,这种情况下,可在仿射矩阵中增加维度。角点a的世界坐标和像素坐标之间的矩阵关系相应地变为:
[0084][0085]
其中,像素坐标矩阵[x1,y1,x1*y1,1]中的第三个元素并不限于x1*y1,该元素可采用能够满足矩阵不可逆要求的任意数值(例如,不为0、不等于x1或y1、不与x1或y1存在其它倍数关系的任意数值)。另外,实际应用中,通过对角点a进行多次翻转,或者加入目标格子其它角点的翻转数据,可如下计算出目标格子的仿射矩阵。
[0086][0087]
同样的方式,可计算出棋盘格中其它格子下的仿射矩阵,并将每个格子的仿射矩阵,作为单目相机的标定参数。
[0088]
据此,本实施例中,提出了一种全新的单目相机标定方案,可根据标定用的棋盘格的尺寸建立世界坐标系,在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定。这样,可实现对单目相机的不同成像区域进行精细化标定,从而有效提高标定精度。
[0089]
图4为本技术另一示例性实施例提供的一种相机标定方法的流程示意图。该方法可由数据处理装置执行,该数据处理装置可实现为软件和/或硬件的结合,该数据处理装置可集成在计算设备中。参考图4,该方法包括:
[0090]
步骤400、在单目相机固定后,利用单目相机对放置于相机视野内的棋盘格进行拍照,以获得标定图像;
[0091]
步骤401、根据棋盘格的尺寸建立世界坐标系;
[0092]
步骤402、在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;
[0093]
步骤403、将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定参数。
[0094]
本实施例提供的相机标定方案可应用于对需要对单目相机进行标定的场景中,本实施例对应用场景不做限定。
[0095]
本实施例提供的相机标定方案,可作为单目相机参与其它应用工作的基础,单目相机可参与的应用工作包括但不限于上述实施例中提及的测距工作、定位工作等,本实施例对相机标定方案之后的应用领域不做限定。
[0096]
在一可选实施例中,计算仿射矩阵的过程可包括:
[0097]
在目标格子下,计算目标格子的至少一个目标角点在标定图像对应的像素坐标系中的像素坐标;
[0098]
在世界坐标系下,确定至少一个目标角点各自对应的世界坐标;
[0099]
基于至少一个目标角点格子对应的世界坐标和像素坐标,计算目标格子对应的仿射矩阵。
[0100]
在一可选实施例中,可将世界坐标系的坐标轴分别设置为与棋盘格中指定格子的指定边重合。
[0101]
值得说明的是,上述关于相机标定方案各实施例中的技术细节,可参考前述的测距方案实施例中关于相机标定过程的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
[0102]
据此,本实施例中,提出了一种全新的单目相机标定方案,可根据标定用的棋盘格的尺寸建立世界坐标系,在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定。这样,可实现对单目相机的不同成像区域进行精细化标定,从而有效提高标定精度。
[0103]
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤100至步骤105的执行主体可以为设备a;又比如,步骤101和102的执行主体可以为设备a,步骤103的执行主体可以为设备b;等等。
[0104]
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的关键点、格子等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0105]
图5为本技术又一示例性实施例提供的一种计算设备的结构示意图。如图5所示,该计算设备包括:存储器50和处理器51。
[0106]
处理器51,与存储器50耦合,用于执行存储器50中的计算机程序,以用于:
[0107]
利用单目相机拍摄包含第一对象和第二对象的实景图像,单目相机固定装配在第一对象上,且单目相机的标定参数包括标定过程所用棋盘格中每个格子下的仿射矩阵;
[0108]
分别计算第一对象和第二对象上的关键点在实景图像对应的像素坐标系中的像素坐标;
[0109]
根据棋盘格中每个格子在像素坐标系中所对应的像素坐标范围和第一对象和第二对象上的关键点各自对应的像素坐标,确定第一对象上的关键点所落入的第一格子和第二对象上的关键点所落入的第二格子;
[0110]
按照第一格子下的仿射矩阵和第一对象上的关键点对应的像素坐标,计算第一对象上的关键点在世界坐标系中的世界坐标,其中,世界坐标系为按照棋盘格的尺寸建立的;
[0111]
按照第二格子下的仿射矩阵和第二对象上的关键点对应的像素坐标,计算第二对象上的关键点在世界坐标系中的世界坐标;
[0112]
基于第一对象和第二对象上的关键点各自对应的世界坐标,计算第一对象和第二对象之间的距离。
[0113]
在一可选实施例中,处理器51还可用于:
[0114]
获取第二对象上的关键点对应的gps数据;
[0115]
根据第二对象上的关键点对应的gps数据和第一对象和第二对象之间的距离,计算第一对象上的关键点对应的gps数据,以对第一对象进行定位。
[0116]
在一可选实施例中,第一对象上固定装配有至少两个单目相机,处理器51在根据第二对象上的关键点对应的gps数据和第一对象和第二对象之间的距离,计算第一对象上的关键点对应的gps数据过程中,可用于:
[0117]
分别获取至少两个单目相机各自拍摄到的第二对象上的关键点对应的gps数据,不同单目相机拍摄到的第二对象不完全相同;
[0118]
根据至少两个单目相机各自拍摄到的第二对象上的关键点对应的gps数据和第一对象和至少两个单目相机各自拍摄到的第二对象之间的距离,计算第一对象上的关键点对应的gps数据。
[0119]
在一可选实施例中,第一对象为车辆,至少两个单目相机分布在车辆的前方、后方和/或侧方。
[0120]
在一可选实施例中,处理器51在计算第二对象上的关键点在像素坐标系中的像素坐标过程中,可用于:
[0121]
对实景图像进行目标检测,以框出第二对象在实景图像中的位置区域;
[0122]
在位置区域中,计算第二对象上的关键点的像素坐标。
[0123]
在一可选实施例中,处理器51在计算第一对象上的关键点在像素坐标系中的像素坐标过程中,可用于:
[0124]
获取预先存储的第一对象上的关键点在像素坐标系中的像素坐标;
[0125]
其中,预先确定第一对象上的关键点在像素坐标系中的像素坐标的过程,包括:
[0126]
在第一对象上选取关键点;
[0127]
利用单目相机拍摄第一对象上的关键点,以获得测试图像;
[0128]
在测试图像中,计算并存储第一对象上的关键点在像素坐标系中的像素坐标。
[0129]
在一可选实施例中,处理器51在对单目相机进行标定的过程中,可用于:
[0130]
在单目相机固定后,利用单目相机对放置于相机视野内的棋盘格进行拍照,以获得标定图像;
[0131]
根据棋盘格的尺寸建立世界坐标系;
[0132]
在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;
[0133]
将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定参数。
[0134]
在一可选实施例中,处理器51根据棋盘格的尺寸建立世界坐标系过程中,可用于:
[0135]
将世界坐标系中的坐标轴分别设置为与棋盘格中指定格子的指定边重合。
[0136]
在一可选实施例中,处理器51基于第一对象和第二对象上的关键点各自对应的世界坐标,计算第一对象和第二对象之间的距离过程中,可用于:
[0137]
根据第一对象上关键点对应的世界坐标,计算第一对象上关键点与世界坐标系中x轴和y轴之间的距离;
[0138]
根据第二对象上关键点对应的世界坐标,计算第二对象上关键点与世界坐标系中x轴和y轴之间的距离;
[0139]
基于第一对象上关键点与世界坐标系中x轴和y轴之间的距离和第二对象上关键点与世界坐标系中x轴和y轴之间的距离,计算第一对象和第二对象上的关键点之间欧氏距离,作为第一对象与第二对象之间的距离。
[0140]
在一可选实施例中,世界坐标系中的x轴设置为与棋盘格中指定格子的指定边重合,处理器51在计算第二对象上关键点与世界坐标系中x轴之间的距离过程中,可用于:
[0141]
计算第二对象上的关键点与其所落入的第二格子中离世界坐标系中的x轴最近的第一边之间的第一距离;
[0142]
获取第一边与世界坐标系中的x轴之间的第二距离;
[0143]
将第一距离和第二距离之和,作为第二对象上的关键点与世界坐标系中的x轴之间的距离。
[0144]
进一步,如图5所示,该计算设备还包括:通信组件52、显示器53、电源组件54、音频组件55等其它组件。图5中仅示意性给出部分组件,并不意味着计算设备只包括图5所示组件。
[0145]
值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的测距方案实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
[0146]
基于图5中提供的计算设备的结构,本技术的又一示例性实施例中还可基于计算设备实施前述的相机标定方案。
[0147]
在该实施例中,处理器51可用于:
[0148]
在单目相机固定后,利用单目相机对放置于相机视野内的棋盘格进行拍照,以获得标定图像;
[0149]
根据棋盘格的尺寸建立世界坐标系;
[0150]
在棋盘格包含的每个格子下,根据格子在世界坐标系和标定图像对应的像素坐标系之间的坐标变化状态,计算格子对应的仿射矩阵;
[0151]
将棋盘格包含的每个格子各自对应的仿射矩阵,作为单目相机的标定参数。
[0152]
可选地,处理器51在计算仿射矩阵的过程中,可用于:
[0153]
在目标格子下,计算目标格子的至少一个目标角点在标定图像对应的像素坐标系中的像素坐标;
[0154]
在世界坐标系下,确定至少一个目标角点各自对应的世界坐标;
[0155]
基于至少一个目标角点格子对应的世界坐标和像素坐标,计算目标格子对应的仿射矩阵。
[0156]
可选地,处理器51在根据棋盘格的尺寸建立世界坐标系过程中,可用于:
[0157]
将世界坐标系中的坐标轴分别设置为与棋盘格中指定格子的指定边重合。
[0158]
值得说明的是,上述关于计算设备各实施例中的技术细节,可参考前述的相机标定方案实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本技术保护范围的损失。
[0159]
相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算设备执行的各步骤。
[0160]
上述图5中的存储器,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0161]
上述图5中的通信组件,被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0162]
上述图5中的显示器,包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
[0163]
上述图5中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
[0164]
上述图5中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信
号。
[0165]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0166]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0167]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0168]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0169]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0170]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0171]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0172]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0173]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员
来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1