CN117911520A - 相机内参标定方法和自动驾驶设备 - Google Patents
相机内参标定方法和自动驾驶设备 Download PDFInfo
- Publication number
- CN117911520A CN117911520A CN202211251040.4A CN202211251040A CN117911520A CN 117911520 A CN117911520 A CN 117911520A CN 202211251040 A CN202211251040 A CN 202211251040A CN 117911520 A CN117911520 A CN 117911520A
- Authority
- CN
- China
- Prior art keywords
- camera
- calibration plate
- radar
- coordinate system
- point cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000005457 optimization Methods 0.000 claims abstract description 13
- 230000036544 posture Effects 0.000 claims abstract description 13
- 230000033001 locomotion Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 16
- 230000009471 action Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Studio Devices (AREA)
Abstract
本申请公开了一种相机内参标定方法和自动驾驶设备,属于计算机技术领域。方法包括:基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;基于雷达获取的点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,确定点云重投影误差值;对所述相机重投影误差和所述点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。该方法利用雷达增加了相机内参的求解约束,即便未获取到标定板在各种不同姿态下的图像数据,也可以确定比较准确的相机内参。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种相机内参标定方法和自动驾驶设备。
背景技术
在图像测量过程以及机器视觉应用中,为确定空间物体三维坐标点与其在相机拍摄图像中二维坐标点之间的相互关系,必须建立相机成像的几何模型。其中,几何模型的参数就是相机参数,求解相机参数的过程称之为相机标定。相机参数包括相机内参和相机外参,其中,相机内参表示相机的内部属性,例如相机的焦距等;相机外参表示相机相对于所拍摄物体的相位位姿。由于相机的外参与相机的位置有关,不属于相机的固定属性,因此,相机标定主要是获得相机内参。
目前,相机标定方法大多采用张氏标定法,具体的,采集标定板在不同姿态下的图像数据,对于每帧图像数据,确定相机坐标系中标定板与标定板坐标系中标定板的对应关系,基于确定的多个对应关系进行标定,得到相机内参和每帧图像数据对应的相机外参,输出该相机内参。
但是张氏标定法需要采集标定板在各种姿态下的图像数据,然而,实际应用中,很多情况下难以实现采集标定板在各种姿态下的图像数据。例如,自动驾驶设备场景下,自动驾驶设备只能完成前后移动、左右旋转等动作,无法采集标定板在不同俯仰角度、不同旋转角度下的图像数据,从而张氏标定法在自动驾驶设备场景下无法确定出比较准确的相机内参,因此,目前亟需一种新的相机标定方法。
发明内容
本申请实施例提供了一种相机内参标定方法和自动驾驶设备,即便未获取到标定板在各种不同姿态下的图像数据,也可以确定比较准确的相机内参。该技术方案如下:
一方面,提供了一种相机内参标定方法,所述方法包括:
基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;
基于雷达获取的点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,确定点云重投影误差值;
对所述相机重投影误差和所述点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。
一方面,提供了一种相机内参标定装置,所述装置包括:
第一确定模块,用于基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;
第二确定模块,用于基于雷达获取的点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,确定点云重投影误差值;
迭代模块,用于对所述相机重投影误差和所述点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。
在一种可能的实现方式中,所述第一确定模块,包括:
投影单元,用于基于所述图像数据、相机初始外参和相机初始内参,将所述标定板从标定板坐标系投影到相机坐标系,得到第一投影坐标;
确定单元,用于基于所述第一投影坐标与所述标定板在所述标定板坐标系下的真实坐标之间的差异,确定所述相机重投影误差。
在一种可能的实现方式中,确定所述相机重投影误差值时,所述相机初始外参通过雷达初始外参和所述雷达相对于所述相机的相对位姿来表示;确定所述点云重投影误差值时,所述相机初始外参和所述雷达相对于所述相机的相对位姿通过所述雷达初始外参来表示。
在一种可能的实现方式中,所述第二确定模块,包括:
第一确定单元,用于基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,从所述点云数据中确定位于所述标定板的多个目标点;
第二确定单元,用于基于所述多个目标点在所述雷达坐标系下的坐标和在所述标定板坐标系下的坐标,确定所述雷达初始外参。
在一种可能的实现方式中,所述第一确定单元,用于基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,将所述标定板的中心点从所述标定板坐标系投影到所述雷达坐标系,得到第一参考点;从所述点云数据中以所述第一参考点为中心的目标范围内的多个第二参考点中,筛选出位于所述标定板的多个目标点。
在一种可能的实现方式中,第二确定单元,用于基于所述多个目标点的中心点在所述雷达坐标系中的坐标和所述标定板坐标系下标定板中心的坐标,确定所述雷达初始外参。
在一种可能的实现方式中,所述装置还包括第三确定模块;
所述第三确定模块,用于基于所述相机的型号,确定所述相机初始内参;和/或,基于所述标定板在所述标定板坐标系的坐标和在所述相机坐标系的坐标,确定所述相机初始外参。
在一种可能的实现方式中,所述第三确定模块,用于基于所述标定板的多个角点在所述标定板坐标系的第一角点坐标和在所述相机坐标系的第二角点坐标,确定所述相机初始外参。
在一种可能的实现方式中,所述点云数据是扫描标定板得到的点云数据;所述第二确定模块,包括:
投影单元,用于基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述标定板从雷达坐标系投影到标定板坐标系,得到第二投影坐标;
第二确定单元,用于基于第二投影坐标与所述标定板在所述标定板坐标系中的真实坐标之间的差异,确定所述点云重投影误差。
在一种可能的实现方式中,所述点云数据包括位于所述标定板的多个目标点;所述投影单元,用于基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述多个目标点从所述雷达坐标系投影到所述标定板坐标系,得到所述多个目标点的第二投影坐标;
所述第二确定单元,用于基于所述多个目标点的第二投影坐标,确定投影后的目标点中不属于所述标定板在所述标定板坐标系下真实坐标范围的目标点;基于确定的目标点与所述标定板坐标系下标定板的最短距离,确定所述点云重投影误差。
在一种可能的实现方式中,所述第二确定单元,用于基于确定的目标点,与所述标定板坐标系中标定板的最短横向距离、最短纵向距离和最短竖向距离,确定所述点云重投影误差。
在一种可能的实现方式中,所述装置还包括:
控制模块,用于控制自动驾驶设备执行目标移动动作,以使所述自动驾驶设备与所述标定板之间的相对位姿发生变化;
所述控制模块,还用于在控制所述自动驾驶设备执行所述目标移动动作的过程中,控制所述自动驾驶设备的所述相机和所述雷达针对所述标定板,获取多组标定数据,以使获取的多组所述标定数据中的所述标定板的位姿不同,每组标定数据包括一帧图像数据和一帧点云数据。
一方面,提供了一种自动驾驶设备,所述自动驾驶设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如上述任一种可能实现方式的相机内参标定方法所执行的操作。
一方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行以实现如上述任一种可能实现方式的相机内参标定方法所执行的操作。
一方面,提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品包括:计算机程序代码,所述计算机程序代码被计算机执行时,使得所述计算机实现如上述任一种可能实现方式的相机内参标定方法所执行的操作。
本申请实施例提供的相机内参标定方法和自动驾驶设备,对相机进行标定时,将相机重投影误差和点云重投影误差之和作为约束条件,相当于利用雷达增加了相机内参的求解约束,由于增加了求解约束,因此,即便未获取到标定板在各种不同姿态下的图像数据,也可以确定比较准确的相机内参。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种相机内参标定方法的流程图;
图3是本申请实施例提供的一种相机内参标定方法的流程图;
图4是本申请实施例提供的一种相机内参标定方法的流程图;
图5是本申请实施例提供的一种相机内参标定装置的结构示意图;
图6是本申请实施例提供的另一种相机内参标定装置的结构示意图;
图7是本申请实施例提供的自动驾驶设备的结构示意图;
图8是本申请实施例提供的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一订单称为第二订单,将第二订单称为第一订单。
本申请所使用的术语“至少一个”、“多个”、“每个”、“任一”,至少一个包括一个、两个或者两个以上,多个包括两个或者两个以上,而每个是指对应的多个中的每一个,任一是指多个中的任意一个,举例来说,多个角点包括3个角点,而每个是指这3个角点中的每一个角点,任一是指这3个角点中的任意一个,可以是第一个,也可以是第二个,还可以是第三个。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的图像数据、点云数据等都是在充分授权的情况下获取的。且上述信息、数据经过加工处理后使用于大数据应用场景,无法识别至任意自然人或与其产生特定关联。
本申请实施例提供的相机内参标定方法在确定出相机内参之后,可以将相机内参存储在相机本地或者相机所在设备的本地,之后,基于相机内参可以进行图像处理。例如,在自动驾驶场景下,自动驾驶设备通过本申请实施例提供的相机内参标定方法确定出相机内参之后,可以将相机内参存储在本地;自动驾驶设备在自动驾驶过程中,会获取周围环境的图像数据,基于该图像数据感知周围环境,调整行驶策略。其中,自动驾驶设备基于该图像数据感知周围环境时,可以参考本地的相机内参,基于该相机内参和当前的相机外参,能够还原图像数据中二维坐标点与周围环境中物体的三维坐标点之间的相互关系,从而能够更加准确地感知到周围环境,提高了自动驾驶设备自动驾驶的准确性。
在一些实施例中,本申请实施例提供的相机内参标定方法由终端执行,该终端是手机、电脑、平板电脑等任一种类型的终端。
在一些实施例中,本申请实施例提供的相机内参标定方法由自动驾驶设备执行。在一些实施例中,该自动驾驶设备包括在地面上行驶的车辆(例如,汽车、卡车、公交车等),也可以包括在空中行驶的车辆(例如,无人机、飞机、直升机等),也可以包括在水上或者水中行驶的车辆(例如,船、潜艇等)。该自动驾驶设备可以容纳或者不容纳一个或者多个乘客。另外,该自动驾驶设备可以应用于无人配送领域,例如,快递物流领域、外卖送餐领域等。
在另一些实施例中,本申请实施例提供的相机内参标定方法由自动驾驶设备和服务器执行。该服务器可以为一台服务器,或者由若干服务器组成的服务器集群,或者是一个云计算服务中心。
需要说明的是,本申请实施例对相机内参标定方法的执行主体不做限定。
图1是本申请实施例提供的一种实施环境的示意图,如图1所示,该实施环境包括自动驾驶设备101和服务器102,该自动驾驶设备101与服务器102之间通过无线或者有线网络连接。
在一些实施例中,该自动驾驶设备101安装有相机和雷达,该自动驾驶设备101通过相机获取图像数据,通过雷达获取点云数据。
在一些实施例中,该自动驾驶设备101针对标定板,通过相机和雷达获取多组标定数据,将该多组标定数据发送到服务器102。服务器102接收该多组标定数据,基于该多组标定数据进行标定,得到相机内参,服务器102将该相机内参发送到自动驾驶设备101,自动驾驶设备101将该相机内参保存到本地。
图2是本申请实施例提供的一种相机内参标定方法的流程图。本申请实施例以执行主体为自动驾驶设备为例进行示例性说明,该实施例包括:
201、自动驾驶设备基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差。
上述步骤201中的相机外参和相机内参并不是真实的相机外参和真实的相机内参,而是通过任一种方式估计或者计算出的相机外参和相机内参。
相机投影是指:相机对某一物体进行拍摄,将该物体投影到相机坐标系中,得到拍摄的图像。相机重投影是指:在得到拍摄的图像之后,基于估计或者计算出的相机外参和相机内参,重新将被拍摄的物体投影到相机坐标系中。也就是说,相机重投影过程就是基于估计或者计算出的相机外参和相机内参模拟相机拍照的过程。
相机重投影误差是指:相机拍摄的图像中被拍摄物体在相机坐标系中的坐标与该被拍摄物体重投影得到的坐标之间的差异。如果相机拍摄的图像中被拍摄物体在相机坐标系中的坐标与该被拍摄物体重投影得到的坐标相同,则说明估计或者计算出的相机外参和相机内参与真实的相机外参和真实的相机内参相符。
其中,相机坐标系可以是以图像数据中任一点为原点建立的坐标系,例如,该相机坐标系是以图像数据中标定板的左下角为原点建立的坐标系。
相机获取的图像数据可以是对任一个或多个物体进行拍摄得到的图像数据,本申请实施例对该图像数据不做限定。
202、自动驾驶设备基于雷达获取的点云数据、雷达相对于相机的相对位姿和相机外参,确定点云重投影误差。
雷达对任一物体进行拍摄,将该物体从世界坐标系下投影到雷达坐标系下,得到点云数据,这个过程可以看做是点云投影过程,或者是雷达投影过程。其中,雷达将物体从世界坐标系下投影到雷达坐标系下,得到的物体在雷达坐标系下的坐标是由雷达与该物体的相对位姿决定的。
点云重投影是指:将点云数据从雷达坐标系还原到世界坐标系。还原过程需要基于雷达外参进行还原。其中,在相机外参的基础上叠加雷达相对于相机的相对位姿,相当于雷达外参。因此,可以基于相机外参和雷达相对于相机的相对位姿进行点云重投影。
点云重投影误差是指:将点云数据从雷达坐标系还原到世界坐标系后,还原得到的坐标与点云数据对应的物体在世界坐标系的真实坐标之间的差异。如果还原得到的坐标与点云数据对应的物体在世界坐标系的真实坐标相同,则说明采用的雷达外参正确,也即是相机外参和雷达相对于相机的相对位姿正确,由于雷达相对于相机的相对位姿很好确定,因此,可以说明采用的相机外参正确。由于相机投影和重投影受到相机外参和相机内参的双重影响,因此,如果能够确定准确的相机外参,那么就可以确定准确的相机内参。
203、自动驾驶设备对相机重投影误差和点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。
其中,点云重投影误差越大,则说明确定的相机外参越不准确。相机重投影误差越大,则说明确定的相机外参和/或相机内参越不准确。对相机重投影误差和点云重投影误差之和进行迭代优化,是指:重新确定相机外参和相机内参,以使基于该相机外参和相机内参重新确定的相机重投影误差和点云重投影误差之和变小。
相机重投影误差和点云重投影误差之和越小,确定的相机外参和相机内参越准确,因此,可以将最小误差之和对应的相机内参作为标定结果。
需要说明的是,本申请实施例得到的相机内参可以包括畸变参数。相机在拍摄物体时,得到的图像数据中该物体可能会发生畸变。相机标定时确定畸变参数,可以使得图像数据中发生畸变的物体通过畸变参数的处理而还原。
本申请实施例提供的相机内参标定方法,对相机进行标定时,将相机重投影误差和点云重投影误差之和作为约束条件,相当于利用雷达增加了相机内参的求解约束,由于增加了求解约束,因此,即便未获取到标定板在各种不同姿态下的图像数据,也可以确定比较准确的相机内参。
图3是本申请实施例提供的一种相机内参标定方法的流程图。本申请实施例以执行主体为自动驾驶设备为例进行示例性说明,该实施例包括:
301、自动驾驶设备针对标定板,通过相机和雷达获取多组标定数据,每组标定数据包括一帧图像数据和一帧点云数据,且每组标定数据中标定板的位姿不同。
其中,标定板可以是带有固定间距图案阵列的平板,例如,该标定板可以是棋盘格标定板。该标定板也可以是带有特定标志的平板,例如,该标定板可以是Apriltag标定板(一种类似于二维码的标定板)。
针对标定板,通过相机和雷达获取多组标定数据,就是通过相机和雷达对该标定板进行拍摄,且每次拍摄的标定板的位姿不同。
在一些实施例中,为了降低人工成本,可以将标定板放置在某一位置,控制自动驾驶设备移动在不同的位置、不同的角度通过相机和雷达对该标定板进行拍摄,以得到标定板位姿不同的多组标定数据。可选地,自动驾驶设备针对标定板,通过相机和雷达获取多组标定数据,包括:控制所述自动驾驶设备执行目标移动动作,以使自动驾驶设备与标定板之间的相对位姿发生变化;在控制自动驾驶设备执行目标移动动作的过程中,控制自动驾驶设备的相机和雷达针对标定板,获取多组标定数据,以使获取的多组所述标定数据中的所述标定板的位姿不同。
其中,目标移动动作可以是任一种或多种动作的组合。例如,目标移动动作可以是前后移动动作,也可以是弧线移动动作,还可以是先前后移动再弧线移动,还可以是先弧线移动再前后移动。其中,在控制自动驾驶设备执行目标移动动作的过程中,控制自动驾驶设备的相机和雷达针对标定板,获取多组标定数据,可以是控制自动驾驶设备每隔目标时长,执行一次获取标定数据的步骤。其中,目标时长可以是1秒,2秒等任一时长,本申请实施例对目标时长不做限定。
在另一些实施例中,该自动驾驶设备保持不动,相关人员将标定板移动至不同的位置,摆出不同的角度,由自动驾驶设备通过相机和雷达对该标定板进行拍摄,以得到标定板位姿不同的多组标定数据。
302、自动驾驶设备基于多帧图像数据、相机初始外参和相机初始内参,将标定板从标定板坐标系投影到相机坐标系,得到第一投影坐标。
相机初始外参和相机初始内参是指在对相机重投影误差和点云重投影误差之和进行迭代优化之前,通过其他方法确定的相机外参和相机内参。
相机内参表示该相机的内部属性,是由该相机的制作工艺等决定的,但是即便相同制作工艺制作出的一批相机,这些相机的相机内参之间也是存在微小差异的,因此,可以基于相机的型号,粗略估计该相机内参,将估计的相机内参作为相机初始内参。也即是,基于相机的型号,确定相机初始内参。
由于相机外参表示相机相对于标定板的相对位姿,因此,可以基于真实世界中的标定板的多个点与图像数据中标定板的多个点之间的第一对应关系,来粗略确定相机初始外参,也即是,对于任一帧图像数据,基于图像数据对应的第一对应关系,确定图像数据对应的相机参考外参,将该相机参考外参,确定为相机初始外参。需要说明的是,在估计相机初始外参时,可以根据一帧图像数据的第一对应关系来估计,也可以根据多帧图像数据的第一对应关系来估计,参考的第一对应关系越多,估计的相机初始外参越准确。
在一种可能的实现方式中,第一对应关系包括标定板的多个角点在相机坐标系下的第一角点坐标和在标定板坐标系下的第二角点坐标。因此,基于图像数据对应的第一对应关系,确定图像数据对应的相机参考外参,包括:基于多个第一角点坐标和多个第二角点坐标的对应关系,确定相机参考外参。可选地,自动驾驶设备基于多个第一角点坐标和多个第二角点坐标的对应关系,确定相机参考外参时,利用PnP(Perspective-n-Point,n点透视)算法来确定。
标定板坐标系是一种世界坐标系,该标定板坐标系是以真实世界中标定板中的任一点为原点建立的坐标系,例如,该标定板坐标系是以真实世界中标定板的左下角为原点建立的坐标系。相机坐标系可以是以图像数据中任一点为原点建立的坐标系,例如,该相机坐标系是以图像数据中标定板的左下角为原点建立的坐标系。
在一些实施例中,将标定板从标定板坐标系投影到相机坐标系,是将标定板上的至少一个点从标定板坐标系投影到相机坐标系。可选地,将标定板的中心点从标定板坐标系投影到相机坐标系。可选地,将标定板的顶点从标定板坐标系投影到相机坐标系。可选地,将标定板的角点从标定板坐标系投影到相机坐标系。
其中,角点是与邻点相比,亮度对比足够大的点。以棋盘格标定板为例,角点是棋盘格中每个白块的顶点。
需要说明的是,在将标定板上的多个点从标定板坐标系投影到相机坐标系时,会得到多个第一投影坐标,后续在确定相机重投影误差时,需要将任一点的第一投影坐标与真实坐标进行比较,因此,需要明确第一投影坐标与真实坐标的对应关系。在一些实施例中,在执行上述步骤302之前,先基于多帧图像数据确定第一对应关系,第一对应关系表示真实世界中的标定板的多个点与图像数据中标定板的多个点之间的对应关系,该第一对应关系中包括标定板的多个点在标定板坐标系下的坐标和在相机坐标系下的坐标。这样,在将标定板的第一点从标定板坐标系重投影到相机坐标系之后,可以基于第一对应关系,找到第一点在拍摄得到的图像数据中的坐标,将重投影的坐标与第一点在拍摄得到的图像数据中的坐标进行对比,以得到相机重投影误差。
以该标定板的坐标是标定板中角点的坐标为例,对确定第一对应关系的过程进行示例性说明。在一种可能的实现方式中,自动驾驶设备基于多帧图像数据,确定第一对应关系,包括:自动驾驶设备对于任一帧图像数据,对该图像数据进行角点提取,得到多个角点在相机坐标系下的第一角点坐标;根据标定板的尺寸,确定多个角点在标定板坐标系下的第二角点坐标;基于多个角点在相机坐标系下的第一角点坐标和在标定板坐标系下的第二角点坐标,确定第一对应关系。
需要说明的是,多个角点在标定板坐标系下的第二角点坐标是不变的,因此,只需确定一次第二角点坐标即可。需要说明的另一点是,多个角点在相机坐标系下和在标定板坐标系下的具体坐标虽然不同,但是角点之间的排列关系是相同的。例如,多个角点在相机坐标系下和在标定板坐标系下都是按照7排8列的方式排列,因此,相机坐标系下第一排第一列的第一角点坐标对应标定板坐标系下第一排第一列的第二角点坐标,相机坐标系下第一排第二列的第一角点坐标对应标定板坐标系下第一排第二列的第二角点坐标。
需要说明的另一点是,以棋盘格标定板为例,标定板中每个格子的尺寸都是相同的,多个角点是标定板中每个白格的顶点,因此,可以根据标定板的尺寸,直接确定多个角点在标定板坐标系下的第二角点坐标。
需要说明的另一点是,在对图像数据进行角点提取时,可以采用任一种角点提取方法,也可以根据标定板的类型,选取与该类型匹配的角点提取方法,本申请实施例对采用的角点提取方法不做限定。
303、自动驾驶设备基于第一投影坐标与标定板在相机坐标系下的真实坐标之间的差异,确定该相机重投影误差。
其中,基于第一投影坐标与标定板在相机坐标系下的真实坐标之间的差异,确定该相机重投影误差,可以是将第一投影坐标与标定板在相机坐标系下的真实坐标之间差值,作为该相机重投影误差;也可以是通过目标函数对第一投影坐标与标定板在相机坐标系下的真实坐标之间差值进行处理,得到相机重投影误差。其中,目标函数可以是任一函数,本申请实施例对此不做限定。
需要说明的一点是,上述步骤302中将标定板从标定板坐标系投影到相机坐标系,得到第一投影坐标时,若将标定板的多个点从标定板坐标系投影到相机坐标系,那么针对每帧图像数据,可以得到多个第一投影坐标。基于每帧图像数据对应的多个第一投影坐标,与标定板在该帧图像数据中的真实坐标之间的差异,确定该帧图像数据对应的相机重投影误差。例如,将多个第一投影坐标与标定板在图像数据中的真实坐标之间的差值和,作为该帧图像数据对应的相机重投影误差;又如,通过目标函数对多个第一投影坐标与标定板在图像数据中的真实坐标之间的差值和进行处理,得到该帧图像数据对应的相机重投影误差。
需要说明的另一点是,基于每一帧图像数据可以确定一个相机重投影误差,上述步骤303中的相机重投影误差是多帧图像数据对应的相机重投影误差之和。
在一种可能的实现方式中,任一帧图像数据的重投影误差值通过如下公式计算得到。
ecamera(Pc)=ρ(||π(Tt,c*pt|k)-pc||)
其中,ecamera(Pc)表示任一帧图像的重投影误差值,ρ为一经验系数,π表示投影函数,Tt,c表示相机外参,Pt表示标定板在标定板坐标系下的坐标,Pc表示标定板在相机坐标系下的坐标,k表示相机内参,(||π(Tt,c*pt|k)-pc||)表示投影函数π基于相机内参k和相机外参Tt,c,将标定板从标定板坐标系下投影到相机坐标系下之后,得到的投影坐标与标定板在相机坐标系下的坐标(也即是真实投影坐标)之间的差值。
304、自动驾驶设备基于雷达获取的点云数据、雷达相对于相机的相对位姿和相机外参,确定点云重投影误差。
由于相机标定时,存在相机外参和相机内参两个变量,因此,需要获取大量不同视角的标定板图像数据,才能够确定出相对准确的相机内参。
但是自动驾驶设备只能完成前后移动、左右旋转等动作,无法获取到大量不同视角的标定板图像数据,如果通过人工移动标定板来实现获取大量不同视角的标定板图像数据,则人工成本太大,不利于广泛应用。
而本申请实施例考虑到自动驾驶设备上还安装有雷达,且相机和雷达的安装位置是固定的,因此,雷达相对于相机的相对位姿也是固定的。并且,自动驾驶设备通过雷达拍摄标定板时,点云数据中标定板与真实世界中标定板之间的对应关系是由雷达相对于该标定板的相对位姿(也即是雷达外参)决定的。因此,可以基于雷达相对于相机的相对位姿,利用点云数据,对相机外参进行约束,也即是,在计算出相机外参和相机内参之后,可以根据该相机外参和雷达相对于相机的相对位姿,将多帧点云数据的标定板从雷达坐标系下投影到标定板坐标系,如果标定板的投影坐标与该标定板的真实坐标匹配,则说明计算出的相机外参准确,从而计算出的相机内参也准确。
例如,基于雷达获取的点云数据、雷达相对于相机的相对位姿和相机外参,确定点云重投影误差,包括:基于点云数据、雷达相对于相机的相对位姿和相机外参,将标定板从雷达坐标系投影到标定板坐标系,得到第二投影坐标;基于第二投影坐标与标定板在标定板坐标系中的真实坐标之间的差异,确定点云重投影误差。其中,确定点云重投影误差与确定相机重投影误差同理,在此不再一一赘述。
需要说明的是,本申请实施例中雷达相对于相机的相位位姿是固定的,因此,雷达外参可以基于相机外参表示,相机外参也可以基于雷达外参表示,本申请实施例仅是以“基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;基于雷达获取的点云数据、雷达相对于相机的相对位姿和相机外参,确定点云重投影误差”为例进行示例性说明,其中,相机初始外参和雷达相对于相机的相对位姿还可以通过雷达初始外参来表示。也即是,确定相机重投影误差值时,相机外参通过雷达外参和雷达相对于相机的相对位姿来表示;确定点云重投影误差值时,相机外参和雷达相对于相机的相对位姿通过雷达外参来表示。
其中,雷达初始外参可以基于点云数据确定,也可以基于图像数据确定。本申请实施例以基于点云数据确定为例进行示例性说明。在一种可能实现的方式中,雷达初始外参的确定过程包括:对于任一帧点云数据,基于标定板的形状,从点云数据中确定与该形状匹配的第一点云数据,基于该第一点云数据中点的坐标,确定雷达相对于标定板的相对位姿,将该相对位姿确定为雷达初始外参。
接下来,本申请实施例以基于图像数据确定为例进行示例性说明。
本申请实施例先基于图像数据粗略估计一个相机外参,基于该相机外参,从点云数据中确定位于标定板的点,再基于点云数据中位于标定板的点,确定比较准确的雷达外参。在另一种可能实现的方式中,雷达外参的确定过程包括:基于相机初始外参和雷达相对于相机的相对位姿,从点云数据中确定位于标定板的多个目标点;基于多个目标点在雷达坐标系下的坐标和在标定板坐标系下的坐标,确定雷达初始外参。其中,基于多个目标点在雷达坐标系下的坐标和在标定板坐标系下的坐标,确定雷达初始外参,可以是基于每个目标点在雷达坐标系下的坐标和在标定板坐标系下的坐标的,确定雷达初始外参;也可以是基于多个目标点,确定该多个目标点的中心点,基于该多个目标点的中心点在雷达坐标系中的坐标和标定板坐标系下标定板中心的坐标,确定雷达初始外参。
可选地,基于相机初始外参和雷达相对于相机的相对位姿,从点云数据中确定位于标定板的多个目标点,包括:基于相机初始外参和雷达相对于相机的相对位姿,将标定板的顶点从标定板坐标系投影到雷达坐标系,得到顶点对应的第三投影坐标,基于顶点对应的第三投影坐标,确定点云数据中确定与该形状匹配的第一点云数据,将第一点云数据中的点作为位于标定板的多个目标点。
可选地,基于相机初始外参和雷达相对于相机的相对位姿,从点云数据中确定位于标定板的多个目标点,包括:基于相机初始外参和雷达相对于相机的相对位姿,将标定板的中心点从标定板坐标系投影到雷达坐标系,得到第一参考点;从点云数据中以第一参考点为中心的目标范围内的多个第二参考点中,筛选出位于标定板的多个目标点。
其中,目标范围可以是任一范围。可选地,该目标范围与标定板的形状和尺寸相关。可选地,该目标范围为技术人员设置的范围。本申请实施例对目标范围不做限定。
在一些实施例中,自动驾驶设备从目标点云数据中以第一参考点为中心的目标范围内的多个第二参考点中,筛选出位于标定板的多个目标点时,可以通过Plane RANSAC(Plane RANdom SAmple Consensus,平面随机抽样一致)方法来筛选。
另外,本申请实施例对确定雷达重投影误差值的过程进行示例性说明。在一种可能实现的方式中,自动驾驶设备将位于标定板的多个目标点从雷达坐标系下投影到标定板坐标系下,确定投影后的点是否位于标定板,并基于投影后的点与标定板的最短距离,确定雷达重投影误差值。
可选地,点云数据包括位于标定板的多个目标点;基于点云数据、雷达相对于相机的相对位姿和相机外参,将标定板从雷达坐标系投影到标定板坐标系,得到第二投影坐标,包括:基于点云数据、雷达相对于相机的相对位姿和相机外参,将多个目标点从雷达坐标系投影到标定板坐标系,得到多个目标点的第二投影坐标。基于第二投影坐标与标定板在标定板坐标系中的真实坐标之间的差异,确定点云重投影误差,包括:基于多个目标点的第二投影坐标,确定投影后的目标点中不属于标定板在标定板坐标系下真实坐标范围的目标点;基于确定的目标点与标定板坐标系下标定板的最短距离,确定点云重投影误差。
可选地,基于确定的目标点与标定板坐标系下标定板的最短距离,确定点云重投影误差,包括:基于确定的目标点,与标定板坐标系中标定板的最短横向距离、最短纵向距离和最短竖向距离,确定点云重投影误差。
在一些实施例中,在确定雷达重投影误差值时,标定板坐标系以标定板的中心点为原点,这样,方便计算投影后的点是否位于标定板。
例如,重投影误差值通过如下公式确定。
elidar(p)=e(px)+e(py)+e(pz)
e(z)=|z|
其中,elidar(p)表示雷达重投影误差值,x为投影后的目标点p的横坐标,y为投影后的目标点p的纵坐标,z为投影后的目标点p的竖坐标,w为标定板的真实边长。min为取最小值函数,用于从多个数据中选取一个最小的数据。otherwise表示其他情况。e(px)、e(py)、e(pz)分别是投影后的目标点与标定板坐标系中标定板的最短横向距离、最短纵向距离和最短竖向距离。
305、自动驾驶设备对相机重投影误差和点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。
其中,对相机重投影误差和点云重投影误差之和进行迭代优化,就是更新相机重投影误差和点云重投影误差对应的变量,使得相机重投影误差和点云重投影误差之和变小。在“基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;基于雷达获取的点云数据、雷达相对于相机的相对位姿和相机外参,确定点云重投影误差”时,该变量为相机内参和相机外参。在“基于相机获取的图像数据、雷达外参、雷达相对于相机的相对位姿和相机内参,确定相机重投影误差;基于雷达获取的点云数据和雷达外参,确定点云重投影误差”,该变量是雷达外参和相机内参。
本申请实施例,对基于雷达初始外参和相机内参迭代更新相机重投影误差和点云重投影误差之和进行示例性说明,迭代过程可以通过如下公式实现。
其中,i表示图像数据和点云数据的帧号,j表示图像数据中角点的编号,k表示点云数据中目标点的编号,argmin是一种函数,用于表示取值最小时,Tt,1,Tc,1,K的取值,其中,K是相机内参。
Tc,1表示雷达相对于相机的相对位姿,Tt,1表示雷达外参。表示第i帧第j个角点对应的相机重投影误差值。
表示第i帧第k个目标点对应的雷达重投影误差值。
通过对上述公式进行求解,可以得到Tt,1和K,也即是,得到雷达外参和相机内参。
需要说明的是,自动驾驶设备以多帧图像数据的相机重投影误差值和多帧点云数据的雷达重投影误差值之和最小为目标,对多帧图像数据对应的相机初始外参和相机初始内参进行迭代更新或对多帧图像数据对应的雷达初始外参和相机初始内参进行迭代更新的方法是同理的。
本申请实施例提供的相机内参标定方法,对相机进行标定时,将多帧点云数据作为了约束条件,使得基于相机内参对应的多个相机外参,分别将多帧点云数据的标定板从雷达坐标系下投影到标定板坐标系下时所得到的投影坐标与标定板的真实坐标匹配,这样,保证了标定过程中使用的相机外参是准确的,由于第一对应关系受到相机外参和相机内参的影响,因此,在确定的相机外参准确时,可以确定出准确的相机内参。换言之,本申请实施例利用雷达增加了相机内参的求解约束,即便未获取到标定板在各种不同姿态下的图像数据,也可以确定比较准确的相机内参。
另外,本申请实施例,通过优化相机对应的相机重投影和点云重投影误差项,来确定相机内参,实现了利用雷达增加相机内参的求解约束。由于增加了额外的优化项,能够有效约束相机内参的计算,提高了相机内参的准确性。
另外,本申请实施例提供的相机内参标定方法对于标定数据的要求较低,无需采集大量的标定数据,可以通过简单的数据采集来完成,降低了标定数据的获取条件,更适合推广,提高了本申请实施例的适用性。
另外,本申请实施例提供的相机内参标定方法可以应用于自动驾驶设备的相机内参标定,无需特定的标定间,可以在室外通过简单的数据采集,即可完成相机内参的准确标定,减少了标定成本。
在一些实施例中,将标定板放到距离无人车5至10米左右处,通过自动驾驶设备前后直线运动或弧线运动来采集相机的标定数据(图像数据和点云数据),进而执行如下算法流程:
1、提取标定板角点:根据采用的标定板的类型,执行对应的标定板角点提取方法,来获取每帧图像数据的角点坐标pc(二维的),同时根据标定板的尺寸,得到标定板在标定板坐标系下的三维角点坐标pt。
2、估计相机初始内参和相机初始外参:根据相机型号来确定相机的粗略内参作为初始,根据每帧图像数据中pc和pt的对应关系,利用PnP算法来确定相机初始外参Tt,c。
3、计算雷达外参:根据雷达相对于相机的相对位姿Tc,1和上述相机初始外参Tt,c,确定雷达外参Tt,1=Tt,c*Tc,1。根据该雷达外参产生种子点(根据雷达外参将标定板中心点从标定板坐标系投影到雷达坐标系,得到的投影点即是种子点),通过查找种子点一定范围内的点,并借助Plane RANSAC方法筛选出处于标定板平面上的点,并基于筛选出的点,更新点云数据中标定板的中心,并基于更新后的中心,重新确定雷达外参。
4、构建相机重投影误差项:根据上述pc和pt对应关系,构建如下误差项作为相机重投影误差项:
5、构建雷达到标定板数据误差项:根据雷达外参将点云数据中位于标定板的点投影到标定板坐标系下,也即是,将点坐标p转换到以标定板中心为原点的标定板坐标系(需要说明的是,在对点云数据进行处理时,标定板坐标系以标定板中心为原点,在对图像数据进行处理时,标定板坐标系以标定板左下角为原点)得到3维坐标(x,y,z)之后,误差项分别为:
e(z)=|z|
其中,w为标定板的边长。综合三个误差项,得到雷达到标定板数据误差项为:
elidar(p)=e(px)+e(py)+e(pz)
6、多帧数据联合优化求解:综合上述两个误差项,最终的优化目标函数为:
通过优化求解上述目标函数,可以得到雷达外参和相机内参,将该相机内参确定为标定结果。
图5是本申请实施例提供的一种相机内参标定装置的结构示意图,参见图5,该装置包括:
第一确定模块501,用于基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;
第二确定模块502,用于基于雷达获取的点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,确定点云重投影误差值;
迭代模块503,用于对所述相机重投影误差和所述点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。
如图6所示,在一种可能的实现方式中,所述第一确定模块501,包括:
投影单元5011,用于基于所述图像数据、相机初始外参和相机初始内参,将所述标定板从标定板坐标系投影到相机坐标系,得到第一投影坐标;
确定单元5012,用于基于所述第一投影坐标与所述标定板在所述标定板坐标系下的真实坐标之间的差异,确定所述相机重投影误差。
在一种可能的实现方式中,确定所述相机重投影误差值时,所述相机初始外参通过雷达初始外参和所述雷达相对于所述相机的相对位姿来表示;确定所述点云重投影误差值时,所述相机初始外参和所述雷达相对于所述相机的相对位姿通过所述雷达初始外参来表示。
在一种可能的实现方式中,所述第二确定模块502,包括:
第一确定单元5021,用于基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,从所述点云数据中确定位于所述标定板的多个目标点;
第二确定单元5022,用于基于所述多个目标点在所述雷达坐标系下的坐标和在所述标定板坐标系下的坐标,确定所述雷达初始外参。
在一种可能的实现方式中,所述第一确定单元5021,用于基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,将所述标定板的中心点从所述标定板坐标系投影到所述雷达坐标系,得到第一参考点;从所述点云数据中以所述第一参考点为中心的目标范围内的多个第二参考点中,筛选出位于所述标定板的多个目标点。
在一种可能的实现方式中,第二确定单元5022,用于基于所述多个目标点的中心点在所述雷达坐标系中的坐标和所述标定板坐标系下标定板中心的坐标,确定所述雷达初始外参。
在一种可能的实现方式中,所述装置还包括第三确定模块;
所述第三确定模块504,用于基于所述相机的型号,确定所述相机初始内参;和/或,基于所述标定板在所述标定板坐标系的坐标和在所述相机坐标系的坐标,确定所述相机初始外参。
在一种可能的实现方式中,所述第三确定模块504,用于基于所述标定板的多个角点在所述标定板坐标系的第一角点坐标和在所述相机坐标系的第二角点坐标,确定所述相机初始外参。
在一种可能的实现方式中,所述点云数据是扫描标定板得到的点云数据;所述第二确定模块502,包括:
投影单元5023,用于基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述标定板从雷达坐标系投影到标定板坐标系,得到第二投影坐标;
第二确定单元5022,用于基于第二投影坐标与所述标定板在所述标定板坐标系中的真实坐标之间的差异,确定所述点云重投影误差。
在一种可能的实现方式中,所述点云数据包括位于所述标定板的多个目标点;所述投影单元5023,用于基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述多个目标点从所述雷达坐标系投影到所述标定板坐标系,得到所述多个目标点的第二投影坐标;
所述第二确定单元5022,用于基于所述多个目标点的第二投影坐标,确定投影后的目标点中不属于所述标定板在所述标定板坐标系下真实坐标范围的目标点;基于确定的目标点与所述标定板坐标系下标定板的最短距离,确定所述点云重投影误差。
在一种可能的实现方式中,所述第二确定单元5022,用于基于确定的目标点,与所述标定板坐标系中标定板的最短横向距离、最短纵向距离和最短竖向距离,确定所述点云重投影误差。
在一种可能的实现方式中,所述装置还包括:
控制模块505,用于控制自动驾驶设备执行目标移动动作,以使所述自动驾驶设备与所述标定板之间的相对位姿发生变化;
所述控制单元505,还用于在控制所述自动驾驶设备执行所述目标移动动作的过程中,控制所述自动驾驶设备的所述相机和所述雷达针对所述标定板,获取多组标定数据,以使获取的多组所述标定数据中的所述标定板的位姿不同,每组标定数据包括一帧图像数据和一帧点云数据。
需要说明的是:上述实施例提供的相机内参标定装置在进行标定时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将自动驾驶设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的相机内参标定装置与相机内参标定方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7示出了本申请一个示例性实施例提供的自动驾驶设备700的结构框图。自动驾驶设备700包括有:处理器701和存储器702。
处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器701所执行以实现本申请中方法实施例提供的相机内参标定方法。
在一些实施例中,自动驾驶设备700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。
外围设备接口703可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它自动驾驶设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置自动驾驶设备700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在自动驾驶设备700的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在自动驾驶设备700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。前置摄像头设置在自动驾驶设备的前面板,后置摄像头设置在自动驾驶设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在自动驾驶设备700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。
定位组件708用于定位自动驾驶设备700的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件708可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源709用于为自动驾驶设备700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,自动驾驶设备700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。
加速度传感器711可以检测以自动驾驶设备700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器712可以检测自动驾驶设备700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对自动驾驶设备700的3D动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器713可以设置在自动驾驶设备700的侧边框和/或显示屏705的下层。当压力传感器713设置在自动驾驶设备700的侧边框时,可以检测用户对自动驾驶设备700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在显示屏705的下层时,由处理器701根据用户对显示屏705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置自动驾驶设备700的正面、背面或侧面。当自动驾驶设备700上设置有物理按键或厂商Logo时,指纹传感器714可以与物理按键或厂商Logo集成在一起。
光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制显示屏705的显示亮度。具体地,当环境光强度较高时,调高显示屏705的显示亮度;当环境光强度较低时,调低显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。
接近传感器716,也称距离传感器,设置在自动驾驶设备700的前面板。接近传感器716用于采集用户与自动驾驶设备700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与自动驾驶设备700的正面之间的距离逐渐变小时,由处理器701控制显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与自动驾驶设备700的正面之间的距离逐渐变大时,由处理器701控制显示屏705从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图7中示出的结构并不构成对自动驾驶设备700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图8是本申请实施例提供的一种服务器的结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)801和一个或一个以上的存储器802,其中,该存储器802中存储有至少一条程序代码,该至少一条程序代码由该处理器801加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
该服务器800用于执行上述方法实施例中服务器所执行的步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由计算机设备中的处理器执行以完成上述实施例中的相机内参标定方法。例如,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括计算机程序代码,该计算机程序代码被计算机执行时,使得计算机实现上述实施例中的相机内参标定方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种相机内参标定方法,其特征在于,所述方法包括:
基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差;
基于雷达获取的点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,确定点云重投影误差;
对所述相机重投影误差和所述点云重投影误差之和进行迭代优化,得到最小误差之和对应的相机内参。
2.根据权利要求1所述的方法,其特征在于,所述图像数据包括标定板;所述基于相机获取的图像数据、相机外参和相机内参,确定相机重投影误差,包括:
基于所述图像数据、相机初始外参和相机初始内参,将所述标定板从标定板坐标系投影到相机坐标系,得到第一投影坐标;
基于所述第一投影坐标与所述标定板在所述相机坐标系下的真实坐标之间的差异,确定所述相机重投影误差。
3.根据权利要求1所述的方法,其特征在于,确定所述相机重投影误差值时,所述相机外参通过雷达外参和所述雷达相对于所述相机的相对位姿来表示;确定所述点云重投影误差值时,所述相机外参和所述雷达相对于所述相机的相对位姿通过所述雷达外参来表示。
4.根据权利要求3所述的方法,其特征在于,所述雷达外参的确定过程包括:
基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,从所述点云数据中确定位于所述标定板的多个目标点;
基于所述多个目标点在所述雷达坐标系下的坐标和在所述标定板坐标系下的坐标,确定所述雷达初始外参。
5.根据权利要求4所述的方法,其特征在于,所述基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,从所述点云数据中确定位于所述标定板的多个目标点,包括:
基于所述相机初始外参和所述雷达相对于所述相机的相对位姿,将所述标定板的中心点从所述标定板坐标系投影到所述雷达坐标系,得到第一参考点;
从所述点云数据中以所述第一参考点为中心的目标范围内的多个第二参考点中,筛选出位于所述标定板的多个目标点。
6.根据权利要求4所述的方法,其特征在于,所述基于所述多个目标点在所述雷达坐标系下的坐标和在所述标定板坐标系下的坐标,确定所述雷达初始外参,包括:
基于所述多个目标点的中心点在所述雷达坐标系中的坐标和所述标定板坐标系下标定板中心的坐标,确定所述雷达初始外参。
7.根据权利要求2所述的方法,其特征在于,所述基于所述图像数据、相机初始外参和相机初始内参,将所述标定板从标定板坐标系投影到相机坐标系,得到第一投影坐标之前,所述方法还包括:
基于所述相机的型号,确定所述相机初始内参;和/或,
基于所述标定板在所述标定板坐标系的坐标和在所述相机坐标系的坐标,确定所述相机初始外参。
8.根据权利要求7所述的方法,其特征在于,所述基于所述标定板在所述标定板坐标系的坐标和在所述相机坐标系的坐标,确定所述相机初始外参,包括:
基于所述标定板的多个角点在所述标定板坐标系的第一角点坐标和在所述相机坐标系的第二角点坐标,确定所述相机初始外参。
9.根据权利要求1所述的方法,其特征在于,所述点云数据是扫描标定板得到的点云数据;所述基于雷达获取的点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,确定点云重投影误差,包括:
基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述标定板从雷达坐标系投影到标定板坐标系,得到第二投影坐标;
基于第二投影坐标与所述标定板在所述标定板坐标系中的真实坐标之间的差异,确定所述点云重投影误差。
10.根据权利要求9所述的方法,其特征在于,所述点云数据包括位于所述标定板的多个目标点;所述基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述标定板从雷达坐标系投影到标定板坐标系,得到第二投影坐标,包括:
基于所述点云数据、所述雷达相对于所述相机的相对位姿和所述相机外参,将所述多个目标点从所述雷达坐标系投影到所述标定板坐标系,得到所述多个目标点的第二投影坐标;
所述基于第二投影坐标与所述标定板在所述标定板坐标系中的真实坐标之间的差异,确定所述点云重投影误差,包括:
基于所述多个目标点的第二投影坐标,确定投影后的目标点中不属于所述标定板在所述标定板坐标系下真实坐标范围的目标点;
基于确定的目标点与所述标定板坐标系下标定板的最短距离,确定所述点云重投影误差。
11.根据权利要求10所述的方法,其特征在于,所述基于确定的目标点与所述标定板坐标系下标定板的最短距离,确定所述点云重投影误差,包括:
基于确定的目标点,与所述标定板坐标系中标定板的最短横向距离、最短纵向距离和最短竖向距离,确定所述点云重投影误差。
12.根据权利要求2或9所述的方法,其特征在于,所述方法由自动驾驶设备执行,所述自动驾驶设备包括所述相机和所述雷达;所述方法还包括:
控制所述自动驾驶设备执行目标移动动作,以使所述自动驾驶设备与所述标定板之间的相对位姿发生变化;
在控制所述自动驾驶设备执行所述目标移动动作的过程中,控制所述自动驾驶设备的所述相机和所述雷达针对所述标定板,获取多组标定数据,以使获取的多组所述标定数据中的所述标定板的位姿不同,每组标定数据包括一帧图像数据和一帧点云数据。
13.一种自动驾驶设备,其特征在于,所述自动驾驶设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至12任一项所述的相机内参标定方法所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211251040.4A CN117911520A (zh) | 2022-10-12 | 2022-10-12 | 相机内参标定方法和自动驾驶设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211251040.4A CN117911520A (zh) | 2022-10-12 | 2022-10-12 | 相机内参标定方法和自动驾驶设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117911520A true CN117911520A (zh) | 2024-04-19 |
Family
ID=90695165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211251040.4A Pending CN117911520A (zh) | 2022-10-12 | 2022-10-12 | 相机内参标定方法和自动驾驶设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117911520A (zh) |
-
2022
- 2022-10-12 CN CN202211251040.4A patent/CN117911520A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11205282B2 (en) | Relocalization method and apparatus in camera pose tracking process and storage medium | |
US11798190B2 (en) | Position and pose determining method, apparatus, smart device, and storage medium | |
CN110148178B (zh) | 相机定位方法、装置、终端及存储介质 | |
CN110992493B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112270718B (zh) | 摄像头标定方法、装置、系统及存储介质 | |
CN111126182A (zh) | 车道线检测方法、装置、电子设备及存储介质 | |
CN110986930B (zh) | 设备定位方法、装置、电子设备及存储介质 | |
CN109558837B (zh) | 人脸关键点检测方法、装置及存储介质 | |
CN109522863B (zh) | 耳部关键点检测方法、装置及存储介质 | |
CN111784841B (zh) | 重建三维图像的方法、装置、电子设备及介质 | |
CN113763228B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN109886208B (zh) | 物体检测的方法、装置、计算机设备及存储介质 | |
CN111680758B (zh) | 图像训练样本生成方法和装置 | |
CN112150560B (zh) | 确定消失点的方法、装置及计算机存储介质 | |
CN112308103B (zh) | 生成训练样本的方法和装置 | |
CN111179628B (zh) | 自动驾驶车辆的定位方法、装置、电子设备及存储介质 | |
CN111369684B (zh) | 目标跟踪方法、装置、设备及存储介质 | |
CN111754564B (zh) | 视频展示方法、装置、设备及存储介质 | |
CN115965936A (zh) | 边缘位置标注方法及设备 | |
CN113432620B (zh) | 误差估计方法、装置、车载终端及存储介质 | |
CN113033590B (zh) | 图像特征匹配方法、装置、图像处理设备及存储介质 | |
CN111583339A (zh) | 获取目标位置的方法、装置、电子设备及介质 | |
CN117911520A (zh) | 相机内参标定方法和自动驾驶设备 | |
CN114093020A (zh) | 动作捕捉方法、装置、电子设备及存储介质 | |
CN113689484B (zh) | 深度信息的确定方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |