一种目标3D框转换成2D框的方法及相关装置
文献发布时间:2023-06-19 19:30:30
技术领域
本申请涉及数据融合技术领域,尤其涉及一种目标3D框转换成2D框的方法及相关装置。
背景技术
自动驾驶/辅助驾驶是人工智能领域的一种主流应用,机动车辆通过摄像机、雷达、监控装置等传感器来感知环境信息,感知的重要环节是对场景中感兴趣的目标(如车辆、行人等)进行检测,因此需要通过合理的边界框来标注目标。
现阶段,完成上述任务主要采用的是基于BEV的神经网络学习,相比与传统的2d框下的目标检测,BEV下的目标检测引入了空间感知的特征;在现阶段的BEV神经网络训练中,往往采用3d框来作为学习的监督目标,但在最近的研究中,也有引入3d框对应的2d框辅助完成学习监督,从而起到了更好的效果;在现在的3d框转2d框时,会出现转化的2d框不准确的情况,往往使用已有方法转化的2d框回明显大于目标物体本身,从而影响深度学习网络的稳定性,为此产生了“需要将3D框转换成的2D框”各种场景下的需求。
关于3D框转换成2D框,现有技术的主要做法为直接将3D框映射至2d图像平面,然后取像素坐标系中的3d bbox框的4方向上的最值规定生成的2d框。但所生成的2D框明显超过目标实际的2D框的范围,且对于遮挡物体(部分遮挡和阴影遮挡)均出现漏标和超范围标注情况(如图1的A框),而当2D框与目标实际存在较大误差,将严重影响后处理结果(如网络学习训练)。
发明内容
本申请要解决的技术问题在于,针对现有技术的不足,提供一种目标3D框转换成2D框的方法及相关装置。
为了解决上述技术问题,本申请实施例第一方面提供了一种目标3D框转换成2D框的方法,所述的方法包括:
获取图像数据、原始点云数据、标定数据以及目标在雷达坐标系下的3D框;
提取所述原始点云数据中归属于所述目标的点云数据,以生成目标点云数据,所述目标点云数据不包含离散点;
基于所述标定数据,将所述目标点云数据映射到所述图像数据对应的图像空间以得到映射点云数据;
提取所述所述映射点云数据的4个最值点,所述4个最值点分别为所述目标点云数据映射到所述图像空间的最左、最右、最下、最上4个边界点;
基于所述4个最值点生成所述目标的2D框。
所述3D框转换成2D框的方法,其中,在获取所述3D框之后,还包括:
选取所述3D框的中心点和所述3D框的参数,所述参数包含所述3D框的长度信息、宽度信息以及高度信息;
根据所述中心点及所述参数获取所述3D框8个顶点的坐标信息。
根据权利要求2所述的方法,其特征在于,所述提取所述原始点云数据中归属于所述目标的点云数据,以生成目标点云数据,包括:
将所述3D框的8个顶点基于BEV视角生成4个映射顶点;
基于横轴坐标信息和纵轴坐标信息计算每个所述原始点云数据与所述4个映射顶点的角度和;
若所述角度和等于360°,设置该原始点云数据为目标候选点云数据;
根据所述8个顶点的竖轴坐标信息设置竖轴坐标阈值,并基于所述竖轴坐标阈值筛选所述目标候选点云数据,生成目标点云数据。
所述3D框转换成2D框的方法,其中,所述标定数据包含联合标定和相机标定数据,所述基于所述标定数据,将所述目标点云数据映射到所述图像数据对应的图像空间以得到映射点云数据,包括:
将雷达坐标系下的目标点云数据根据所述联合标定数据转换到相机坐标系下;
将相机坐标系下的目标点云数据根据所述相机标定数据转换到图像坐标系下。
所述3D框转换成2D框的方法,其中,所述基于所述标定数据,将所述目标点云数据映射到所述图像数据对应的图像空间以得到映射点云数据之前,所述方法还包括:
若所述目标点云数据低于预设条件,修正所述3D框;
获取所述修正3D框的顶点信息,并将所述修正后的3D框顶点作为所述目标点云数据。
所述3D框转换成2D框的方法,其中,所述预设阈值根据目标点云密度和/或目标距离设定。
所述3D框转换成2D框的方法,其中,若所述目标为机动车辆类型目标,根据所述机动车辆参数进行修正,所述机动车辆参数至少包含所述机动车辆的后视镜参数以及车型参数。
本申请实施例第二方面提供了一种目标3D框转换成2D框的装置,所述装置包括:
获取模块,用于获取图像数据、原始点云数据、标定数据以及目标在雷达坐标系下的3D框。
生成模块,用于通过提取归属于所述目标的原始点云数据生成目标点云数据,其中,所若所述目标点云数据低于预设条件,修正所述目标的3D框,并将所述修正后的3D框顶点作为所述目标点云数据。
转换模块,用于将目标在雷达坐标系下的3D框转换为目标在图像坐标系下的2D框,其中,将通过生成模块获得的目标点云数据映射到所述图像数据对应的图像空间,并基于4个最值点生成所述的2D框。
本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的目标3D框转换成2D框的方法中的步骤。
本申请实施例第四方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的目标3D框转换成2D框的方法中的步骤。
有益效果:与现有技术相比,本申请通过利用点云的离散特性,使用点云自身联系3D框与2D框,摆脱了直接使用映射关系将3D框变化为2D框时带来的不对应性(转换所得2D框明显大于目标物),提高了2D框生成的拟合度,从而基于点云融合提高了目标3D框转换成2D框的精确度,贴近物理极限。所述生成的2D框,可应用于后续各种任务(如辅助驾驶场景下的目标检测等),提高后处理的精确度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不符创造性劳动的前提下,还可以根据这些附图获得其他的结构原理图。
图1为3D框转换成2D框的效果示意图。
图2为本申请提供的一种实施例流程图。
图3为本申请提供的另一种实施例流程图。
图4为本申请提供的目标3D框转换成2D框装置的结构原理图。
图5为本申请提供的终端设备的结构原理图。
具体实施方式
本申请提供一种目标3D框转换成2D框的方法及相关装置,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
以下,对本申请中涉及的部分术语进行解释说明:
2D框:本申请所述的“2D框”指用于在图像数据上标注目标的二维标注框,其中,“2D框”的“框”,应理解为英文的“bonding box”,可解释为标注框、边界框或者检测框。
3D框:本申请所述的“3D框”指用于在点云数据上标注目标的三维标注框,其中,“3D框”的“框”,应理解为英文的“bonding box”,可解释为标注框、边界框或者检测框。
点云融合:本申请所述的“点云融合”指点云与图像融合,广泛意义上可以理解为将点云数据与图像数据通过映射关系关联起来。
联合标定:指通过标定得到激光雷达坐标系到相机坐标系的外参。当相机和激光经过联合标定后,可以将激光雷达的测量值准确地投影到相机图像中,从而实现激光点与三通道颜色信息的关联。相反,相机图像中的像素可以通过查询最近的激光得到深度值。
BEV:是鸟瞰图(Bird’s Eye View)的简称,也被称为上帝视角,是一种用于描述感知世界的视角或坐标系(3D),BEV也用于代指在计算机视觉领域内的一种端到端的、由神经网络将视觉信息,从图像空间转换到BEV空间的技术。
应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
本实施例提供了一种目标3D框转换成2D框的方法,如图2所示,所述方法包括:
S10、获取图像数据、原始点云数据、标定数据以及目标在雷达坐标系下的3D框。
具体地,上述4项为本方法所需的所有输入项。其中,由于本方法基于点云融合技术,因此需要所述图像数据和原始点云数据;所述标定数据包含联合标定数据和相机内外参数据,联合标定数据为雷达坐标系与相机坐标系的坐标转换关系,可用矩阵表示;所述目标在雷达坐标系下的3D框(下文统一简称“3D框”)内仅包含所述目标的点云数据,包含于所述原始点云数据中;
进一步,为在所述原始点云数据中准确获取所述目标的点云数据,在一个实现方式中,需要准确所述3D框的顶点信息,对于一个3D框而言,具有8个顶点,因此,需要获取该8个顶点的坐标信息。
基于此,在一个实现方式中,所述3D框顶点信息的方法,具体包括:
S11、选取所述3D框的中心点和所述3D框的参数,所述参数包含所述3D框的长度信息、宽度信息以及高度信息;
S12、根据所述中心点及所述参数获取所述3D框8个顶点的坐标信息。
具体地,在获取所述3D框的中心点以及3D框的长度信息、宽度信息以及高度信息后,通过两者相乘即可获得所述3D框的8个顶点,此时8个顶点的坐标信息在雷达坐标系下,可用(x
值得说明的是,在不同坐标系下可以有不同的坐标表达方式,如相机坐标系下为(x
S20、提取所述原始点云数据中归属于所述目标的点云数据,以生成目标点云数据,所述目标点云数据不包含离散点。
具体地,以所述目标为分类依据,所述原始点云中存在的若干点云点可分为目标点云数据以及目标外点云数据。本申请实施例的最终目的是为了获取高度贴合目标的2D框,该2D框应高度贴合物理极限,即高度贴合所述目标,因此需要准确提取所述原始点云中归属于所述目标的点云数据。由于此时的点云数据为雷达坐标系下的,即(x
在一个实施方式中,所述生成目标点云数据的方法,具体包括:
S21将所述3D框的8个顶点基于BEV视角生成4个映射顶点;
S22基于横轴坐标信息和纵轴坐标信息计算每个所述原始点云与所述4个映射顶点的角度和;
S23若所述角度和等于360°,设置该点云为目标候选点云数据;
S24根据所述8个顶点的竖轴坐标信息设置竖轴坐标阈值,并基于所述阈值筛选所述目标候选点云数据,生成目标点云数据。
在获取3D框的8个顶点后,基于BEV视角映射所述8个顶点,BEV视角为鸟瞰视角,可理解为俯视角度看8个点顶点,会从原来的8个顶点变成4个映射顶点;
在一个实施例中,首先仅考虑投射在BEV视角下的(x,y),即不考虑高度信息(竖轴坐标信息z)计算每个点云分别与所述4个顶点的角度的和,若4个角度之和(即“角度和”)为360°,则该点为内点(即权利要求3的“目标候选点云数据”),若4个角度之和(即“角度和”)不为360°,则该点为外点(即非权利要求3的“目标候选点云数据”)。计算结果为分布在bev视角下的高度不限制的,在上述4点围成的矩形内的点的集合,然后通过设置高度阈值,即可筛选出目标物上的点。在一个实施例中,针对高度设置阈值的方法根据之前所述的8个顶点位置即可找到竖轴z的最小值z
此外,为获取最终的目标点云数据,所述目标物点云数据经过预先处理,已经去除目标物上的点云数据中的离散点,作用在于为了提高后续2D框的精确度,延续上一个段落的例子,假设目标物点云数据为2500个,在预处理(降噪处理)过程中去除了200个点云,则最终的目标点云数据为2300个。
S30、基于所述标定数据,将所述目标点云数据映射到所述图像数据对应的图像空间以得到映射点云数据。
具体地,所述目标点云数据映射到图像空间的步骤为先将雷达坐标系下的目标点云数据根据联合标定数据转换到相机坐标系下,再将相机坐标系下的目标点云数据根据相机标定数据转换到图像坐标系下。相机标定数据包括相机内参和相机外参,相机内参的作用是从相机坐标系转换到像素坐标系中,相机外参的作用是从世界坐标系转换到相机坐标系中。
在一个实施例中,所述目标点云数据低于预设阈值,则修正所述3D框,具体包括:
S31获取所述修正3D框的顶点信息;
S32将所述修正后的3D框顶点替换所述目标点云数据;
S33基于所述标定数据,将所述修正后的3D框顶点映射到图像空间。
在一种实施方式中,所述预设阈值根据目标点云密度和/或目标距离设定。在一个实施例中,优先根据(欧氏)距离做出初步限定,假设初步限定值为25m,若目标距离>25m,则直接修正所述3D框;若目标距离<25m,先判断(目标点云数据的)目标点云密度是否可靠,若点云密度低于可靠值则修正所述3D框,若点云密度大于或等于可靠值,则不需要修正。可靠值可根据不同任务以及不同场景设定,也可以通过经验值设定,设定方法不做限定。
根据目标点云密度和目标距离设定预设阈值可先通过目标点云密度初步限定,再限定距离;也可仅仅通过目标点云数据的密度设定预设阈值;对于预设阈值的设定步骤和组合不做限制,此处不再列举。
此外,在一种实施方式中,如图3,根据目标距离/目标点云密度设置预设条件,当满足条件时,选择直接将目标点云数据映射到图像空间,当不满足条件时,选择修正3D框后再做映射处理。值得注意的是,在另一种实施例中,当不满足条件时,也可以选择直接将目标点云数据映射到图像空间,不过,最终2D框的效果(比如精度)会降低。因此,是否满足预设条件并非为必要项,为了追求高精度的2D框,可以选择在满足预设条件下和不满足预设条件下进行分类处理,当然也可以选择其他处理方式,特此说明。
在一实施例中,比如车辆驾驶场景,对于自车而言,目标可以为行人、机动车辆以及交通标志等,由于机动车辆为主要目标类型之一,特此说明一下当机动车辆为目标时,3D框如何修正。
在一种实施方式中,若所述目标为机动车辆类型目标,根据所述机动车辆参数进行修正,所述机动车辆参数至少包含所述机动车辆的后视镜参数以及车型参数。具体地,机动车辆车型普遍存在左右2个外侧后视镜以及前后车身的流线,导致机动车辆在映射到图像空间容易出现该2D框明显大于实际范围。
在一种实施例中,具体方法包括:根据车的后视镜对3d框的宽进行裁剪;根据车型对3d框的宽进行裁剪;对修正后的点云进行重投影变换。
在另一种实施例中,具体方法包括:基于车头修正幅度>车尾修正幅度的修正条件进行初始修正,获得所述修正后的3D框的左极值点和右极值点;基于相机以及点到相机的轴距选取最低点和最高点;根据所述左极值点、右极值点、最低点和最高点修正所述3D框。
针对车头和车尾宽度一般小于车身宽度,可在投影在相机坐标系下时,使用经验值对误差进行修正,由于主要增加了车辆辆后视镜宽度,以及大部分车头会有额外的流线型设计,因此车头的修正>车尾的修正,并取得最左点及最右点;高度方向上,最靠近相机的轴中的最低点的修正极为最低点,远离车方向上的轴的最高值极为最高点。最后再使用相机内参重投影回图像坐标系下极为四个方向上的2D框限制值。
S40、提取所述映射点云数据的4个最值点,所述4个最值点分别为所述目标点云数据映射到所述图像空间的最左、最右、最下、最上4个边界点。
具体地,所述4个最值点分别为所述目标点云数据映射到所述图像空间的最左、最右、最下、最上4个边界点。进一步,若所述目标点云数据低于预设阈值,则此时映射结果为修正后的3D框的雷达坐标系下8个顶点先映射到相机坐标系下,再映射到图像空间里的图像坐标系下8个顶点,该过程顶点的坐标关系变换可表达成(x
若所述目标点云数据达到预设阈值,则此时映射结果为目标点云数据最终映射到图像空间里的图像坐标系下的若干个目标点云,映射过程同上,此处不再赘述,最后根据(u,v)选取四个方向上(上下左右)的最值点。
S50、基于所述4个最值点生成所述目标的2D框。
具体地,在图像空间中,当获取到4个方向上的最值点,以此作为4个边界点,即可形成一个2D框。如图5所示,为申请提供的目标3D框转换成2D框方法的效果,完整地贴合目标;对比如图1所示的现有技术的效果示意图,通过对比明显可以看出,本方法可以实现准确实现目标3D框转换成2D框,并且不会出现有遮挡或者标准范围过大的情形。如图1所示,A框为本方法转化后的效果,B框为现有技术普遍转化的效果,明显可以看出,A框贴近物理极限,而B框明显不符合实际,转化的效果具有显著性进步。
综上所述,本申请公开了一种目标3D框转换成2D框的方法及相关装置,方法包括获取图像数据、原始点云数据、标定数据以及目标在雷达坐标系下的3D框,提取所述目标在原始点云数据中的点云数据,根据标定数据将所述目标点云数据投影到图像空间,基于投影结果中的4个最值点生成2D框。本申请通过利用点云的离散特性,使用点云自身联系3D框与2D框,摆脱了直接使用映射关系将3D框变化为2D框时带来的不对应性(转换所得2D框明显大于目标物),提高了2D框生成的拟合度,从而基于点云融合提高了目标3D框转换成2D框的精确度,贴近物理极限。
基于上述目标3D框转换成2D框的方法,本实施例提供了一种目标3D框转换成2D框的装置,如图4所示,所述的系统包括:
获取模块,用于获取图像数据、原始点云数据、标定数据以及目标在雷达坐标系下的3D框。
生成模块,用于通过提取归属于所述目标的原始点云数据生成目标点云数据,其中,所若所述目标点云数据低于预设阈值,修正所述目标的3D框,生成修正后的3D框。
转换模块,用于将目标在雷达坐标系下的3D框转换为目标在图像坐标系下的2D框,其中,将通过生成模块获得的目标点云数据或修正后的3D框顶点映射到图像空间,并基于4个最值点生成所述的2D框。
基于上述目标3D框转换成2D框的方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的目标3D框转换成2D框方法中的步骤。
基于上述目标3D框转换成2D框的方法,本申请还提供了一种终端设备,如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
- 一种手机中框加工专用固定装置及手机中框加工固定方法
- 一种快速分框装置及分框方法
- 一种框绞机上下盘装置及其控制方法
- 一种非晶合金手机中框成型装置及其成型方法
- 通过回归分析从2D边界框获取伪3D框的方法以及使用该方法的学习装置和测试装置
- 一种BSD中基于2D检测框估计3D框的方法