掌桥专利:专业的专利平台
掌桥专利
首页

三维包络框的构建方法、装置、计算机设备、存储介质

文献发布时间:2024-04-18 19:59:31


三维包络框的构建方法、装置、计算机设备、存储介质

技术领域

本申请涉及自动驾驶技术领域,特别是涉及一种三维包络框的构建方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

在自动驾驶领域中,通常需要基于自车行驶过程中所遇到的其余车辆、行人、电动车等障碍物目标的速度、位置、加速度等信息进行辅助决策。因此,障碍物目标视觉感知技术在自动驾驶领域中是关键核心技术。尤其是以感知车辆目标信息为目的的车辆目标视觉感知技术,在辅助驾驶中占据了重要的位置。

传统技术中,可以通过在自车上安装视觉感知系统来采集自车行驶方向上其余车辆的图像二维信息。利用视觉感知系统的像素坐标系与现实世界坐标系之间的转换关系或预训练的神经网络模型,将图像二维信息映射到现实世界的三维空间下,从而构建其余车辆的三维包络框。但采用上述传统技术中的手段时,由于视觉感知系统缺失深度信息,对于距离自车较远的车辆的测距误差较大,从而导致最终得到的三维包络框精度较低。

发明内容

基于此,有必要针对上述技术问题,提供一种高精度的三维包络框的构建方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种三维包络框的构建方法。所述方法包括:

获取待检测图像,对所述待检测图像中的车辆目标进行检测得到所述车辆目标所在的全域检测框以及所述车辆目标的预设部件所在的局域检测框;

根据所述全域检测框和所述局域检测框之间的位置关系,确定与所述待检测图像对应的检测场景类别;

根据所述待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定所述待检测图像的消失线;

根据所述检测场景类别确定所述车辆目标的底部包络角点,根据所述底部包络角点到所述消失线的距离确定与所述底部包络角点对应的顶部包络角点;

利用所述底部包络角点和顶部包络角点,构建所述车辆目标的三维包络框。

在其中一个实施例中,所述根据所述检测场景类别确定所述车辆目标的底部包络角点,包括:

根据所述检测场景类别,从所述全域检测框或所述局域检测框中确定出所述车辆目标的底部第一角点;

根据所述检测场景类别和所述车辆目标在所述自车坐标系中的朝向方向,确定与所述底部第一角点对应的底部第二角点和底部第三角点;

根据所述底部第一角点、所述底部第二角点和所述底部第三角点形成的矩形约束,确定所述车辆目标的底部第四角点;

将所述底部第一角点、所述底部第二角点、所述底部第三角点和所述底部第四角点作为所述底部包络角点。

在其中一个实施例中,所述根据所述底部包络角点到所述消失线的距离确定与所述底部包络角点对应的顶部包络角点,包括:

以所述局域检测框的高度作为角点高度差,确定与所述底部第一角点对应的顶部第一角点;

根据所述底部第一角点到所述消失线的第一距离和所述底部第二角点到所述消失线的第二距离确定第一相似参数,利用所述第一相似参数、所述角点高度差以及所述底部第二角点,确定与所述底部第二角点对应的顶部第二角点;

根据所述第一距离和所述底部第三角点到所述消失线的第三距离确定第二相似参数,利用所述第二相似参数、所述角点高度差以及所述底部第三角点,确定与所述底部第三角点对应的顶部第三角点;

根据所述第一距离和所述底部第四角点到所述消失线的第四距离确定第三相似参数,利用所述第三相似参数、所述角点高度差以及所述底部第四角点,确定与所述底部第四角点对应的顶部第四角点;

将所述顶部第一角点、所述顶部第二角点、所述顶部第三角点、所述顶部第四角点作为所述顶部包络角点。

在其中一个实施例中,所述检测场景类别属于两侧检测类别;

所述根据所述检测场景类别,从所述全域检测框或所述局域检测框中确定出所述车辆目标的底部第一角点,包括:

在所述检测场景类别属于所述两侧检测类别的情况下,将所述局域检测框的预设角点作为所述底部第一角点;

所述根据所述检测场景类别和所述车辆目标在所述自车坐标系中的朝向方向,确定与所述底部第一角点对应的底部第二角点和底部第三角点,包括:

在所述检测场景类别属于所述两侧检测类别的情况下,根据所述底部第一角点在所述自车坐标系中的投影位置,以及所述车辆目标在所述自车坐标系中的朝向方向,确定第一投影直线和第二投影直线,所述第一投影直线的方向与所述朝向方向一致,所述第二投影直线的方向与所述朝向方向垂直;

将所述第一投影直线投影至所述像素坐标系与所述全域检测框相交得到所述底部第二角点,将所述第二投影直线投影至所述像素坐标系与所述全域检测框相交得到所述底部第三角点。

在其中一个实施例中,所述检测场景类别属于中心检测类别;

所述根据所述检测场景类别,从所述全域检测框或所述局域检测框中确定出所述车辆目标的底部第一角点,包括:

在所述检测场景类别属于所述中心检测类别的情况下,将所述局域检测框的右下角点作为所述底部第一角点;

所述根据所述检测场景类别和所述车辆目标在所述自车坐标系中的朝向方向,确定与所述底部第一角点对应的底部第二角点和底部第三角点,包括:

在所述检测场景类别为所述中心检测类别的情况下,根据所述底部第一角点在所述自车坐标系中的投影位置,以及所述车辆目标在所述自车坐标系中的朝向方向,确定第一投影直线和第二投影直线,所述第一投影直线的方向与所述朝向方向一致,所述第二投影直线的方向与所述朝向方向垂直;

根据所述车辆目标在所述自车坐标系中的车辆长度和所述第一投影直线,确定在所述自车坐标系中的第二角点投影位置,根据所述映射关系和所述第二角点投影位置确定所述底部第二角点;

根据所述车辆长度和所述第二投影直线,确定在所述自车坐标系中的第三角点投影位置,根据所述映射关系和所述第三角点投影位置确定所述底部第三角点。

在其中一个实施例中,所述检测场景类别属于边缘检测类别;

所述根据所述检测场景类别,从所述全域检测框或所述局域检测框中确定出所述车辆目标的底部第一角点,包括:

在所述检测场景类别属于所述边缘检测类别的情况下,将所述全域检测框的右下角点作为所述底部第一角点;

所述根据所述检测场景类别和所述车辆目标在所述自车坐标系中的朝向方向,确定与所述底部第一角点对应的底部第二角点和底部第三角点,包括:

在所述检测场景类别为所述边缘检测类别的情况下,将所述全域检测框的左下角点作为所述底部第二角点;

根据所述底部第一角点在所述自车坐标系中的投影位置,以及所述车辆目标在所述自车坐标系中的朝向方向,确定第一投影直线,所述第一投影直线的方向与所述朝向方向一致;

根据所述车辆目标在所述自车坐标系中的车辆长度和所述第一投影直线,确定在所述自车坐标系中的第三角点投影位置,根据所述映射关系和所述第三角点投影位置确定底部第三角点。

在其中一个实施例中,所述根据所述全域检测框和所述局域检测框之间的位置关系,确定与所述待检测图像对应的检测场景类别,包括:

在所述局域检测框位于所述全域检测框的左侧或右侧的情况下,确定所述检测场景类别属于两侧检测类别;

在所述局域检测框在所述全域检测框中的占比满足预设区域阈值的情况下,确定所述检测场景类别属于中心检测类别;

在所述局域检测框的宽度小于预设宽度阈值,且所述全域检测框的宽度大于预设数量个所述局域检测框的宽度之和的情况下,确定所述检测场景类别属于边缘检测类别。

在其中一个实施例中,所述待检测图像包括连续多帧图像;

所述方法还包括:

根据与每一帧图像对应的三维包络框对所述车辆目标进行重定位,得到重定位后的所述三维包络框。

第二方面,本申请还提供了一种三维包络框的构建装置。所述装置包括:

目标检测模块,用于获取待检测图像,对所述待检测图像中的车辆目标进行检测得到所述车辆目标所在的全域检测框以及所述车辆目标的预设部件所在的局域检测框;

类别确定模块,用于根据所述全域检测框和所述局域检测框之间的位置关系,确定与所述待检测图像对应的检测场景类别;

消失线确定模块,用于根据所述待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定所述待检测图像的消失线;

角点确定模块,用于根据所述检测场景类别确定所述车辆目标的底部包络角点,根据所述底部包络角点到所述消失线的距离确定与所述底部包络角点对应的顶部包络角点;

信息重构模块,用于利用所述底部包络角点和顶部包络角点,构建所述车辆目标的三维包络框。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项实施例所述的三维包络框的构建方法。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项实施例所述的三维包络框的构建方法。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项实施例所述的三维包络框的构建方法。

上述三维包络框的构建方法、装置、计算机设备、存储介质和计算机程序产品,通过获取待检测图像,对待检测图像中的车辆目标进行检测得到车辆目标所在的全域检测框以及车辆目标的预设部件所在的局域检测框;根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别;根据待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定待检测图像的消失线;根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点;利用底部包络角点和顶部包络角点,构建车辆目标的三维包络框,能够利用消失线补偿待检测图像中缺失的深度信息,从而提高三维包络框的构建精度。此外,采用本申请中提供的上述三维包络框的构建方法,由于结合检测场景类别以及消失线确定车辆目标的底部包络角点和顶部包络角点,还能够提高底部包络角点和顶部包络角点的确定精度以及鲁棒性,进一步提高后续三维包络框的精度。

附图说明

图1为一个实施例中三维包络框的构建方法的应用环境图;

图2为一个实施例中三维包络框的构建方法的流程示意图;

图3A为一个实施例中像素坐标系的示意图;

图3B为一个实施例中自车坐标系的示意图;

图3C为一个实施例中消失线的示意图;

图4为一个实施例中底部包络角点确定步骤的流程示意图;

图5为一个实施例中顶部包络角点确定步骤的流程示意图;

图6A为一个实施例中顶部第二角点确定步骤的示意图;

图6B为一个实施例中顶部第三角点确定步骤的示意图;

图6C为一个实施例中顶部第四角点确定步骤的示意图;

图7为一个实施例检测场景类别确定步骤的流程示意图;

图8A为一个实施例中左侧检测场景的示意图;

图8B为一个实施例中右侧检测场景的示意图;

图8C为一个实施例中中心检测场景的示意图;

图8D为一个实施例中左边缘检测场景的示意图;

图8E为一个实施例中右边缘检测场景的示意图;

图9为一个实施例中在两侧检测类别下的底部包络角点确定步骤的流程示意图;

图10A为一个实施例中左侧检测场景下的底部第一角点示意图;

图10B为一个实施例中左侧检测场景下的底部第二角点示意图;

图10C为一个实施例中左侧检测场景下的底部第三角点示意图;

图10D为一个实施例中左侧检测场景下的底部第四角点示意图;

图10E为一个实施例中右侧检测场景下的底部第一角点示意图;

图10F为一个实施例中右侧检测场景下的底部第二角点示意图;

图10G为一个实施例中右侧检测场景下的底部第三角点示意图;

图10H为一个实施例中右侧检测场景下的底部第四角点示意图;

图11为一个实施例中在中心检测类别下的底部包络角点确定步骤的流程示意图;

图12A为一个实施例中中心检测场景下的底部第一角点示意图;

图12B为一个实施例中中心检测场景下的底部第二角点示意图;

图12C为一个实施例中中心检测场景下的底部第二角点确定步骤的示意图;

图12D为一个实施例中中心检测场景下的底部第三角点示意图;

图12E为一个实施例中中心检测场景下的底部第四角点示意图;

图13为一个实施例中边缘检测类别下的底部包络角点确定步骤的流程示意图;

图14A为一个实施例左边缘检测场景下底部第一角点和底部第二角点的示意图;

图14B为一个实施例左边缘检测场景下底部第三角点的示意图;

图14C为一个实施例左边缘检测场景下底部第四角点的示意图;

图14D为一个实施例右边缘检测场景下底部第三角点确定步骤的示意图;

图14E为一个实施例右边缘检测场景下底部第四角点确定步骤的示意图;

图15为另一个实施例中三维包络框的构建方法的流程示意图;

图16A为一个实施例中局域检测框和全域检测框的示意图;

图16B为一个实施例中消失线的示意图;

图16C为一个实施例中左侧检测场景下底部包络角点的示意图;

图16D为一个实施例中右侧检测场景下底部包络角点的示意图;

图16E为一个实施例中中心检测场景下底部包络角点的示意图;

图16F为一个实施例中三维包络框的示意图;

图17为一个实施例中三维包络框的构建装置的结构框图;

图18为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。

本申请实施例提供的三维包络框的构建方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102可以与车辆上搭载的视觉感知系统连接。具体地,服务器104可以从终端102获取待检测图像,对待检测图像中的车辆目标进行检测得到该车辆目标所在的全域检测框以及车辆目标的预设部件所在的局域检测框。根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别。根据待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定待检测图像的消失线。根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点。利用底部包络角点和顶部包络角点,构建车辆目标的三维包络框。

其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能电视、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种三维包络框的构建方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:

步骤S202,获取待检测图像,对待检测图像中的车辆目标进行检测得到车辆目标所在的全域检测框以及车辆目标的预设部件所在的局域检测框。

其中,车辆目标可以表示除了自车以外的其他车辆。

全域检测框可以表示容纳整个车辆目标的检测框。

局域检测框可以表示仅容纳车辆目标的预设部件的检测框。预设部件可以包括但不仅限于车辆目标的车头部件、车尾部件、前车窗部件、车牌部件等多种部件中的任一种或多种。

具体地,服务器可以获取自车搭载的视觉感知系统针对自车行驶方向上的道路图像进行感知成像生成的待检测图像。以待检测图像中的车辆目标为检测对象,对待检测图像进行检测得到车辆目标所在的全域检测框。以车辆目标的预设部件为检测对象,对待检测图像进行检测得到预设部件所在的局域检测框。

可选地,在一些实施方式中,服务器中可以部署有基于车辆目标预训练得到的神经网络模型,以及基于车辆目标的预设部件预训练得到的神经网络模型。通过将待检测图像分别输入不同的神经网络模型,可以得到车辆目标所在的全域检测框以及车辆目标的预设部件所在的局域检测框。

步骤S204,根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别。

其中,检测场景类别可以包括但不仅限于两侧检测类别(譬如左侧检测类别或右侧检测类别)、中心检测类别或边缘检测类别(譬如左边缘检测类别或右边缘检测类别)中的任一种。

具体地,服务器可以通过比较全域检测框的中心点和局域检测框的中心点的位置关系、全域检测框覆盖的区域和局域检测框覆盖的区域,或全域检测框的宽度和局域检测框的宽度,来确定局域检测框位于全域检测框的两侧、中心或边缘。根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别属于两侧检测类别、中心检测类别或边缘检测类别。

步骤S206,根据待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定待检测图像的消失线。

其中,像素坐标系可以表示待检测图像中的图像像素所在的坐标系。可选地,在一个实施方式中,如图3A所示,服务器可以将待检测图像的左上角作为像素坐标系的坐标原点,从待检测图像的左上角开始在水平方向上向右延伸得到像素坐标系的横轴(也即,以向右为横轴的正方向),从待检测图像的左上角开始在垂直方向上向下延伸得到像素坐标系的纵轴(也即,以向下为纵轴的正方向),从而形成与待检测图像对应的像素坐标系。

自车坐标系可以表示基于自车构建的坐标系(Vehicle Coordinate System,简称VCS坐标系)。可选地,在一种实施方式中,如图3B所示,服务器可以以自车后轴中心为自车坐标系的坐标原点,从自车后轴中心开始朝着车头中心的方向向前延伸得到自车坐标系的横轴(也即,以朝向车头中心的方向为横轴的正方向),从自车后轴中心开始沿着垂直与车头中心向左延伸得到自车坐标系的纵轴(也即,以垂直车头中心向左的方向为纵轴的正方向),从而形成自车坐标系。

消失线表示在像素坐标系中经过消失点的一条直线,且这条直线在自车坐标系下的投影结果垂直于视觉感知系统的相机偏航角的方向。消失点可以表示在自车坐标系下两条平行线在无穷远处投影到像素坐标系中的点,同时也是世界坐标系下的两条平行线经过视觉感知系统的相机透视变换后在像素坐标系下的交点。消失点在待检测图像中可以认为是无穷远处的点。

具体地,服务器可以根据视觉感知系统的相机内参(譬如视觉感知系统的光心位置、水平焦距或垂直焦距等参数)和相机外参(譬如视觉感知系统的旋转矩阵、平移向量等),构建视觉感知系统的相机投影矩阵。

基于仿射变换的原理,利用相机投影矩阵确定待检测图像对应的像素坐标系与自车坐标系之间的映射关系。根据映射关系将自车坐标系中的多条平行线投影至像素坐标系中,基于消失点在像素坐标系中位于无穷远处的特点,求解得到在像素坐标系下的消失点。

根据视觉感知系统的相机外参标定得到视觉感知系统在自车坐标系下的偏航角。将消失点投影至自车坐标系中并沿着偏航角的方向构建直线,将构建的直线投影至像素坐标系下,得到待检测图像的消失线。

可选地,在一些实施方式中,服务器可以参照以下公式构建相机投影矩阵P:

其中,Z

可选地,在一些实施方式中,服务器可以参照以下公式确定映射关系(本申请中所述的映射关系包括像素坐标系到自车坐标系的变换矩阵以及自车坐标系变换到像素坐标系的变换矩阵,本领域技术人员可以理解的是像素坐标系到自车坐标系的变换矩阵也可以视为是自车坐标系到像素坐标系的变换矩阵的逆矩阵):

其中,vcs的意思是车辆坐标系vehicle coordinate system,也即本申请中所述的自车坐标系。(X

也即,像素坐标系变换到自车坐标系的变换矩阵为Q的逆矩阵:

TX_IMG_VCS=Q.inv(),

其中,TX_IMG_VCS表示像素坐标系变换到自车坐标系的变换矩阵。Q.inv()表示Q的逆矩阵。

可选地,在一些实施方式中,服务器可以采用以下公式计算消失点:

首先,利用上述实施例中提供的相机投影矩阵P。将自车坐标系下的点投影到像素坐标系中,得到:

由于消失点是无穷远处的点,令X

由于消失线在像素坐标系中经过上述消失点,且在自车坐标系下垂直于相机偏航角的方向。如图3C所示,将上述消失点投影至自车坐标系中,得到经过上述消失点的消失线为:

-cos(cam_yaw)*x-sin(cam_yaw)*y+cos(cam_yaw)*vp_x

+sin(cam_yaw)*vp_y=0

其中,cam_yaw表示视觉感知系统的相机在自车坐标系VCS下的偏航角。(vp_x,vp_y)表示消失点在像素坐标系的坐标。根据变换矩阵Q将消失线投影至像素坐标系下,从而得到在像素坐标系下的消失线。

步骤S208,根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点。

其中,底部包络角点是相对于顶部包络角点而言的,位于车辆目标底部的角点。顶部包络角点可以表示位于底部包络角点上方的角点。

具体地,由于车辆目标在不同检测场景类别下的角点分布位置不同,譬如,在待检测图像属于两侧检测类别的情况下,车辆目标的底部包络角点一般位于全域检测框和局域检测框上。在待检测图像属于中心检测类别的情况下,车辆目标的底部包络角点一般位于局域检测框上以及局域检测框内部。在待检测图像属于边缘检测类别的情况下,车辆目标的底部包络角点一般位于全域检测框上、全域检测框内部或全域检测框外部。

因此,服务器中可以存储有与不同检测场景类别对应的角点分布位置。根据检测场景类别对应的角点分布位置,可以确定出车辆目标在像素坐标系下的底部包络角点。根据局域检测框的高度,确定位于局域检测框上的底部包络角点与对应的顶部包络角点之间的高度差。基于相似三角形的原理,根据各个底部包络角点到消失线的距离以及位于局域检测框上的底部包络角点与对应的顶部包络角点之间的高度差,可以计算得到其余底部包络角点与顶部包络角点在垂直方向上的高度差。利用其余底部包络角点的位置以及对应的高度差,可以计算得到与其余底部包络角点对应的顶部包络角点。

步骤S210,利用底部包络角点和顶部包络角点,构建车辆目标的三维包络框。

具体地,服务器可以依次连接相邻的底部包络角点和顶部包络角点,在像素坐标系中构建车辆目标的三维包络框。后续服务器可以利用三维包络框计算得到车辆目标在像素坐标系下的尺寸、形状、所在位置等图像二维信息;或者,根据映射关系将三维包络框还原至自车坐标系下,从而计算车辆目标距离自车的距离、车辆目标的三维尺寸、车辆目标的三维形状等空间三维信息。

上述三维包络框的构建方法中,通过获取待检测图像,对待检测图像中的车辆目标进行检测得到车辆目标所在的全域检测框以及车辆目标的预设部件所在的局域检测框;根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别;根据待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定待检测图像的消失线;根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点;利用底部包络角点和顶部包络角点,构建车辆目标的三维包络框,能够利用消失线补偿待检测图像中缺失的深度信息,从而提高三维包络框的构建精度。此外,采用本申请中提供的上述三维包络框的构建方法,由于根据检测场景类别以及消失线,确定车辆目标的底部包络角点和顶部包络角点,还能够提高底部包络角点和顶部包络角点的确定精度以及鲁棒性,进一步提高后续构建的三维包络框的精度。

在一个实施例中,如图4所示,步骤S208,根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点,包括:

步骤S402,根据检测场景类别,从全域检测框或局域检测框中确定出车辆目标的底部第一角点。

其中,底部第一角点可以表示在底部包络角点的检测过程中第一个确定出的角点。

具体地,服务器可以根据检测场景类别对应的角点分布位置,从全域检测框的左下角点、全域检测框的右下角点、局域检测框的左下角点或局域检测框的右下角点中确定出车辆目标的底部第一角点。

步骤S404,根据检测场景类别和车辆目标在自车坐标系中的朝向方向,确定与底部第一角点对应的底部第二角点和底部第三角点。

具体地,服务器可以通过预训练的卷积神经网络对待检测图像中车辆目标的前轮关键点和后轮关键点进行检测,根据检测得到的前轮关键点和后轮关键点,确定车辆目标的朝向方向。或者,也可以根据待检测图像中的前后帧图像中车辆目标的运动姿态,计算得到当前处理的这帧图像中车辆目标的朝向方向。

从底部第一角点在自车坐标系中的投影位置出发,沿着车辆目标的朝向方向延伸,根据与检测场景类别对应的角点分布位置,确定与底部第一角点对应的底部第二角点。从底部第一角点在自车坐标系中的投影位置出发,沿着车辆目标的朝向方向的垂直方向延伸,根据与检测场景类别对应的角点分布位置,确定与底部第一角点对应的底部第三角点。

步骤S406,根据底部第一角点、底部第二角点和底部第三角点形成的矩形约束,确定车辆目标的底部第四角点。

步骤S408,将底部第一角点、底部第二角点、底部第三角点和底部第四角点作为底部包络角点。

具体地,服务器可以根据像素坐标系与自车坐标系之间的映射关系,将底部第一角点、底部第二角点和底部第三角点投影至自车坐标系中。利用底部第一角点、底部第二角点和底部第三角点在自车坐标系中的投影位置形成矩形约束,从而确定出在自车坐标系下符合矩形约束的约束投影位置。将约束投影位置投影至像素坐标系下,得到车辆目标在像素坐标系下的底部第四角点。将底部第一角点、底部第二角点、底部第三角点和底部第四角点作为底部包络角点。

其中,矩形约束可以包括但不仅限于:在自车坐标系中,底部第一角点的投影到底部第二角点的投影之间的距离等于底部第三角点的投影到底部第四角点的投影之间的距离,底部第一角点的投影到底部第二角点的投影之间的连线与底部第三角点的投影到底部第四角点的投影之间的连线平行等。

本实施例中,通过根据检测场景类别确定底部第一角点,利用车辆目标在自车坐标系下的朝向方向,确定与底部第一角点对应的底部第二角点和底部第三角点,根据底部第一角点、底部第二角点和底部第三角点在自车坐标系下的矩形约束确定底部第四角点,能够确定出不同检测场景类别下的底部包络角点,从而提高底部包络角点的确定精度和鲁棒性。

在一个实施例中,如图5所示,步骤S208,根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点,包括:

步骤S502,以局域检测框的高度作为角点高度差,确定与底部第一角点对应的顶部第一角点。

具体地,由于底部包络角点与其对应的顶部包络角点处于同一垂直线上,服务器可以采用底部第一角点的横坐标作为顶部第一角点的横坐标。以局域检测框的高度作为底部第一角点和顶部第一角点之间的角点高度差,结合底部第一角点的纵坐标,可以计算得到顶部第一角点的纵坐标。从而确定与底部第一角点对应的顶部第一角点。可选地,在一些实施方式中,局域检测框的高度可以和全域检测框的高度不一致。在另一些实施方式中,局域检测框的高度也可以和全域检测框的高度一致。

可选地,在一些实施方式中,服务器可以采用以下公式确定顶部第一角点:

up_first.x=first.x

first_height=sub.height

up_first.y=first.y-first_height

其中,up_first.x为顶部第一角点的横坐标。first.x为底部第一角点的横坐标。first_height为底部第一角点和顶部第一角点之间的角点高度差。sub.height为局域检测框的高度。up_first.y为顶部第一角点的纵坐标。first.y为底部第一角点的纵坐标。可以理解的是,由于在本申请提供的像素坐标系中,纵坐标的正方向是向下的方向。因此此处采用了相减的方式来计算顶部第一角点的纵坐标。当纵坐标的正方向是向上的方向时,此处应采用相加的方式来计算顶部第一角点的纵坐标。

步骤S504,根据底部第一角点到消失线的第一距离和底部第二角点到消失线的第二距离确定第一相似参数,利用第一相似参数、角点高度差以及底部第二角点,确定与底部第二角点对应的顶部第二角点。

具体地,如图6A所示,底部第一角点(first)M、顶部第一角点(up_first)N、底部第二角点(second)S、与底部第二角点S对应的顶部第二角点(up_second)R以及底部第一角点M和底部第二角点S的连线与消失线的交点P,在图6A中可以构成相似三角形PNM和PRS。底部第一角点M、底部第二角点S、底部第一角点M在消失线上的投影点M’、底部第二角点S在消失线上的投影点S’以及交点P,在图6A中可以构成相似三角形PMM和PS’S。

基于相似三角形的原理,可以得到以下比例关系:

/>

其中,RS表示顶部第二角点R与底部第二角点S之间的距离。NM表示顶部第一角点N与底部第一角点M之间的距离,也即角点高度差。PS表示交点P与底部第二角点S之间的距离。PM表示交点P与底部第一角点M之间的距离。SS′表示底部第二角点S与投影点S’之间的距离,也即底部第二角点S到消失线的第二距离。MM'表示底部第一角点M与投影点M’之间的距离,也即底部第一角点M到消失线的第一距离。λ表示第一相似参数。

因此,服务器可以对底部第二角点到消失线的第二距离和底部第一角点到消失线的第一距离,采用相除求商的方式进行运算处理,将得到的第二距离和第一距离的商作为第一相似参数。利用第一相似参数和角点高度差,可以计算得到底部第二角点和顶部第二角点之间的高度差。进而利用底部第二角点和顶部第二角点的高度差和底部第二角点的纵坐标,可以计算得到顶部第二角点的纵坐标。将底部第二角点的横坐标作为顶部第二角点的横坐标。从而确定顶部第二角点的坐标位置。

可选地,在一些实施方式中,服务器可以采用以下公式确定顶部第二角点:

up_second.x=second.x

up_second.y=second.y-λ*first_height

其中,up_second.x表示顶部第二角点的横坐标。second.x表示底部第二角点的横坐标。up_second.y表示顶部第二角点的纵坐标。second.y表示底部第二角点的纵坐标。λ表示第一相似参数。first_height表示角点高度差。同理地,由于在本申请提供的像素坐标系中,纵坐标的正方向是向下的方向。因此此处采用了相减的方式来计算顶部第二角点的纵坐标。当纵坐标的正方向是向上的方向时,此处应采用相加的方式来计算顶部第二角点的纵坐标。

步骤S506,根据第一距离和底部第三角点到消失线的第三距离确定第二相似参数,利用第二相似参数、角点高度差以及底部第三角点,确定与底部第三角点对应的顶部第三角点。

具体地,如图6B所示,底部第一角点(first)M、顶部第一角点(up_first)N、底部第三角点(third)S、与底部第三角点S对应的顶部第三角点R以及底部第一角点M和底部第三角点S的连线与消失线的交点P,在图6B中可以构成相似三角形PNM和PRS。底部第一角点M、底部第三角点S、底部第一角点M在消失线上的投影点M’、底部第三角点S在消失线上的投影点S’以及交点P,在图6B中可以构成相似三角形PM'M和PS’S。

基于相似三角形的原理,可以得到以下比例关系:

其中,RS表示顶部第三角点R与底部第三角点S之间的距离。NM表示顶部第一角点N与底部第一角点M之间的距离,也即角点高度差。PS表示交点P与底部第三角点S之间的距离。PM表示交点P与底部第一角点M之间的距离。SS′表示底部第三角点S与投影点S’之间的距离,也即底部第三角点S到消失线的第三距离。MM′表示底部第一角点M与投影点M’之间的距离,也即底部第一角点M到消失线的第一距离。λ表示第二相似参数。

因此,服务器可以对底部第三角点到消失线的第三距离和底部第一角点到消失线的第一距离,采用相除求商的方式进行运算处理,将得到的第三距离和第一距离的商作为第二相似参数。利用第二相似参数和角点高度差,可以计算得到底部第三角点和顶部第三角点之间的高度差。进而利用底部第三角点和顶部第三角点的高度差和底部第三角点的纵坐标,可以计算得到顶部第三角点的纵坐标。将底部第三角点的横坐标作为顶部第三角点的横坐标。从而确定顶部第三角点的坐标位置。

可选地,在一些实施方式中,服务器可以采用以下公式确定顶部第三角点:

up_third.x=third.x

up_third.y=third.y-λ*first_height

其中,up_third.x表示顶部第三角点的横坐标。third.x表示底部第三角点的横坐标。up_third.y表示顶部第三角点的纵坐标。third.y表示底部第三角点的纵坐标。λ表示第二相似参数。first_height表示角点高度差。同理地,由于在本申请提供的像素坐标系中,纵坐标的正方向是向下的方向。因此此处采用了相减的方式来计算顶部第三角点的纵坐标。当纵坐标的正方向是向上的方向时,此处应采用相加的方式来计算顶部第三角点的纵坐标。

步骤S508,根据第一距离和底部第四角点到消失线的第四距离确定第三相似参数,利用第三相似参数、角点高度差以及底部第四角点,确定与底部第四角点对应的顶部第四角点。

具体地,如图6C所示,底部第一角点(first)M、顶部第一角点(up_first)N、底部第四角点(forth)S、与底部第四角点S对应的顶部第四角点R以及底部第一角点M和底部第四角点S的连线与消失线的交点P,在图6C中可以构成相似四角形PNM和PRS。底部第一角点M、底部第四角点S、底部第一角点M在消失线上的投影点M’、底部第四角点S在消失线上的投影点S’以及交点P,在图6C中可以构成相似四角形PM'M和PS’S。

基于相似四角形的原理,可以得到以下比例关系:

其中,RS表示顶部第四角点R与底部第四角点S之间的距离。NM表示顶部第一角点N与底部第一角点M之间的距离,也即角点高度差。PS表示交点P与底部第四角点S之间的距离。PM表示交点P与底部第一角点M之间的距离。SS′表示底部第四角点S与投影点S’之间的距离,也即底部第四角点S到消失线的第四距离。MM'表示底部第一角点M与投影点M’之间的距离,也即底部第一角点M到消失线的第一距离。λ表示第三相似参数。

因此,服务器可以对底部第四角点到消失线的第四距离和底部第一角点到消失线的第一距离,采用相除求商的方式进行运算处理,将得到的第四距离和第一距离的商作为第三相似参数。利用第三相似参数和角点高度差,可以计算得到底部第四角点和顶部第四角点之间的高度差。进而利用底部第四角点和顶部第四角点的高度差和底部第四角点的纵坐标,可以计算得到顶部第四角点的纵坐标。将底部第四角点的横坐标作为顶部第四角点的横坐标。从而确定顶部第四角点的坐标位置。

可选地,在一些实施方式中,服务器可以采用以下公式确定顶部第四角点:

up_forth.x=rorth.x

up_forth.y=forth.y-λ*first_height

其中,up_forth.x表示顶部第四角点的横坐标。forth.x表示底部第四角点的横坐标。up_forth.y表示顶部第四角点的纵坐标。forth.y表示底部第四角点的纵坐标。λ表示第三相似参数。first_height表示角点高度差。同理地,由于在本申请提供的像素坐标系中,纵坐标的正方向是向下的方向。因此此处采用了相减的方式来计算顶部第四角点的纵坐标。当纵坐标的正方向是向上的方向时,此处应采用相加的方式来计算顶部第四角点的纵坐标。

步骤S510,将顶部第一角点、顶部第二角点、顶部第三角点、顶部第四角点作为顶部包络角点。

具体地,服务器可以将顶部第一角点、顶部第二角点、顶部第三角点和顶部第四角点作为车辆目标在像素坐标系下的顶部包络角点。

本实施例中,通过采用相似三角形的原理以及底部包络角点到消失线的距离,求解得到底部第一角点与顶部第一角点之间的角点高度差与其余底部包络角点到其对应的顶部包络角点之间的高度差之间的相似参数,进而基于其余底部包络角点的坐标求解得到对应的顶部包络角点坐标,能够提高顶部包络角点的确定效率以及准确性。

在一个实施例中,如图7所示,步骤S204,根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别,包括:

步骤S702,在局域检测框位于全域检测框的左侧或右侧的情况下,确定检测场景类别属于两侧检测类别。

具体地,服务器可以获取全域检测框的横坐标与局域检测框的横坐标之间的坐标差异。当全域检测框的横坐标减去局域检测框的横坐标得到的坐标差异大于预设阈值(一个正值,譬如30像素)时,可以确定局域检测框位于全域检测框的左侧。当局域检测框的横坐标减去全域检测框的横坐标得到的坐标差异大于预设阈值时,可以确定局域检测框位于全域检测框的右侧。在局域检测框位于全域检测框的左侧或右侧的情况下,确定检测场景类别属于两侧检测类别。

可选地,在一些实施方式中,上述全域检测框的横坐标可以为全域检测框中心点的横坐标。上述局域检测框的横坐标可以为局域检测框中心点的横坐标。

可选地,在一些实施方式中,两侧场景类别还可以进一步划分为与图8A所示的左侧检测场景(较小的检测框为局域检测框,较大的检测框为全域检测框)对应的左侧检测类别,以及与图8B所示的右侧检测场景(较小的检测框为局域检测框,较大的检测框为全域检测框)对应的右侧检测类别。服务器可以根据以下公式确定当前待检测图像属于左侧检测类别或右侧检测类别:

CASE_LEFT:main.x-sub.x>left_thresh

CASE_RIGHT:sub.x-main.x>right_thresh

其中,CASE_LEFT表示左侧检测类别。CASE_RIGHT表示右侧检测类别。main.x表示全域检测框中心点的横坐标。sub.x表示局域检测框中心点的横坐标。left_thresh表示与左侧检测类别对应的预设阈值。right_thresh表示与右侧检测类别对应的预设阈值。

步骤S704,在局域检测框在全域检测框中的占比满足预设区域阈值的情况下,确定检测场景类别属于中心检测类别。

具体地,服务器可以根据全域检测框覆盖的区域以及局域检测框覆盖的区域,确定局域检测框在全域检测框中的占比。当局域检测框在全域检测框中的占比满足预设区域阈值(一个正值,譬如0.8)时,可以确定局域检测框位于全域检测框的中心。从而确定当前的检测场景类别属于中心检测类别。

可选地,在一些实施方式中,当待检测图像中的局域检测框和全域检测框处于图8C中所示的中心检测场景(较小的检测框为局域检测框,较大的检测框为全域检测框)下,服务器可以确定当前的检测场景类别属于中心检测类别。

可选地,在一些实施方式中,服务器可以根据以下公式确定当前待检测图像属于中心检测类别:

CASE_CENTER:sub.area/main.area>area_thresh

其中,CASE_CENTER表示中心检测类别。sub.area表示局域检测框覆盖的区域。main.area表示全域检测框覆盖的区域。area_thresh表示预设区域阈值。

步骤S706,在局域检测框的宽度小于预设宽度阈值,且全域检测框的宽度大于预设数量个局域检测框的宽度之和的情况下,确定检测场景类别属于边缘检测类别。

具体地,服务器可以将局域检测框的宽度与预设宽度阈值进行比较。在局域检测框的宽度小于预设宽度阈值的情况下,比较全域检测框的宽度与预设数量个(譬如4个)局域检测框的宽度之和。在局域检测框的宽度小于预设宽度阈值,且全域检测框的宽度大于预设数量个局域检测框的宽度之和的情况下,确定局域检测框位于全域检测框的边缘,从而确定检测场景类别属于边缘检测类别。

可选地,在一些实施方式中,还可以将边缘检测类别划分为与图8D所示的左边缘检测场景(较小的检测框为局域检测框,较大的检测框为全域检测框)对应的左边缘检测类别,以及与图8E所示的右边缘检测场景(较小的检测框为局域检测框,较大的检测框为全域检测框)对应的右边缘检测类别。

可选地,在一些实施方式中,服务器可以根据以下公式确定当前待检测图像属于左边缘检测类别或右边缘检测类别:

CASE_CORNER_LEFT:sub.width<left_width_thresh,

且main.width>comer_ratio*sub.width,

且sub.x<main.x。

CASE_CORNER_RIGHT:sub.width<left_width_thresh,

且main.width>corner_ratio*suub.width,

且sub.x>main.x。

其中,CASE_CORNER_LEFT表示左边缘检测类别。CASE_CORNER_RIGHT表示右边缘检测类别。sub.width表示局域检测框的宽度。left_width_thresh表示预设宽度阈值。main.width表示全域检测框的宽度。corner_ratio表示预设数量,可以取值为4。sub.x可以表示局域检测框中心点的横坐标。main.x可以表示全域检测框中心点的横坐标。

本实施例中,通过全域检测框和局域检测框的横坐标差异、覆盖面积的占比、检测框宽度,来划分当前待检测图像所述的检测场景类别,能够覆盖大多数待检测图像的检测场景,有助于提高三维包络框构建方法的鲁棒性。

在一个实施例中,检测场景类别属于两侧检测类别。

如图9所示,底部包络角点的确定步骤包括:

步骤S902,在检测场景类别属于两侧检测类别的情况下,将局域检测框的预设角点作为底部第一角点。

其中,预设角点可以包括局域检测框的左下角点或右下角点。

具体地,从图8A中所示的左侧检测场景和图8B中所示的右侧检测场景可以看出,在两侧检测场景下的局域检测框与全域检测框可以采用直线相交求交点的方式来计算车辆目标底部的包络角点。因此,在检测场景类别属于两侧检测类别的情况下,服务器可以将局域检测框的预设角点作为底部第一角点。

步骤S904,在检测场景类别属于两侧检测类别的情况下,根据底部第一角点在自车坐标系中的投影位置,以及车辆目标在自车坐标系中的朝向方向,确定第一投影直线和第二投影直线。

其中,第一投影直线的方向与朝向方向一致,第二投影直线的方向与朝向方向垂直。

具体地,在检测场景类别属于两侧检测类别的情况下,服务器可以根据像素坐标系与自车坐标系之间的映射关系,将底部第一角点投影至自车坐标系中,得到底部第一角点在自车坐标系中的投影位置。利用预训练的卷积神经网络获取辆目标在自车坐标系下的朝向方向。从底部第一角点在自车坐标系中的投影位置出发沿着车辆目标的朝向方向延伸构建第一投影直线。从底部第一角点在自车坐标系中的投影位置出发沿着车辆目标的朝向方向的垂直方向延伸构建第二投影直线。具体的朝向方向确定操作可以参照上述实施例中提供的朝向方向的确定手段实现,在此不作具体阐述。

步骤S906,将第一投影直线投影至像素坐标系与全域检测框相交得到底部第二角点,将第二投影直线投影至像素坐标系与全域检测框相交得到底部第三角点。

具体地,服务器可以根据自车坐标系投影至像素坐标系的变换矩阵,将第一投影直线投影至像素坐标系下,将第一投影直线在像素坐标系下的投影结果与全域检测框相交的交点作为车辆目标在像素坐标系下的底部第二角点。参照上述底部第二角点的确定方法,将第二投影直线也投影至像素坐标系下,将第二投影直线在像素坐标系下的投影结果与全域检测框相交的交点作为车辆目标在像素坐标系下的底部第三角点。

本实施例中,通过在两侧检测类别下,将局域检测框的预设角点作为底部第一角点,采用直线相交求交点的方式求解得到与底部第一角点对应的底部第二角点、底部第三角点,能够提高底部包络角点的确定效率。

可选地,在一些实施方式中,如图10A所示,服务器还可以在局域检测框位于全域检测框左侧的情况下,将局域检测框的右下角点作为底部第一角点(first)。将图10A中的底部第一角点(first)投影至自车坐标系下,沿着车辆目标的朝向方向构建第一投影直线。如图10B所示,将第一投影直线投影至像素坐标系下,与全域检测框相交于底部第二角点(second)。从图10A中的底部第一角点(first)在自车坐标系下的投影位置出发,沿着车辆目标的朝向方向的垂直方向构建第二投影直线。如图10C所示,将第二投影直线投影至像素坐标系下,与全域检测框相交于底部第三角点(third)。根据底部第一角点(first)、底部第二角点(second)和底部第三角点(third)在自车坐标系下的投影位置构成的矩形约束,确定底部第四角点(forth)在自车坐标系下的投影位置。如图10D所示,根据自车坐标系与像素坐标系之间的变换矩阵,将底部第四角点(forth)在自车坐标系下的投影位置投影至像素坐标系下,确定底部第四角点(forth)。

在另一些实施方式中,如图10E所示,服务器还可以在局域检测框位于全域检测框右侧的情况下,将局域检测框的左下角点作为底部第一角点(first)。将图10E中的底部第一角点(first)投影至自车坐标系下,沿着车辆目标的朝向方向构建第一投影直线。如图10F所示,将第一投影直线投影至像素坐标系下,与全域检测框相交于底部第二角点(second)。从图10E中的底部第一角点(first)在自车坐标系下的投影位置出发,沿着车辆目标的朝向方向的垂直方向构建第二投影直线。如图10G所示,将第二投影直线投影至像素坐标系下,与全域检测框相交于底部第三角点(third)。根据底部第一角点(first)、底部第二角点(second)和底部第三角点(third)在自车坐标系下的投影位置构成的矩形约束,确定底部第四角点(forth)在自车坐标系下的投影位置。如图10H所示,根据自车坐标系与像素坐标系之间的变换矩阵,将底部第四角点(forth)在自车坐标系下的投影位置投影至像素坐标系下,确定底部第四角点(forth)。

在一个实施例中,检测场景类别属于中心检测类别。

如图11所示,底部包络角点的确定步骤包括:

步骤S1102,在检测场景类别属于中心检测类别的情况下,将局域检测框的右下角点作为底部第一角点。

具体地,从图8C中所示的中心检测场景可以看出,此时的局域检测框与全域检测框基本重合,无法采用直线相交求交点的方式计算车辆目标底部的其余包络角点。因此,需要结合车辆目标的真实信息,譬如车辆目标在自车坐标系的车辆长度来计算车辆目标的底部包络角点。也即,如图12A所示,在检测场景类别属于中心检测类别的情况下,服务器可以将局域检测框的右下角点作为车辆目标在像素坐标系下的底部第一角点(first)。

步骤S1104,在检测场景类别为中心检测类别的情况下,根据底部第一角点在自车坐标系中的投影位置,以及车辆目标在自车坐标系中的朝向方向,确定第一投影直线和第二投影直线。

其中,第一投影直线的方向与朝向方向一致,第二投影直线的方向与朝向方向垂直。

具体地,在检测场景类别为中心检测类别的情况下,参照上述实施例中所述的方法,服务器可以从底部第一角点在自车坐标系中的投影位置出发,沿着朝向方向构建第一投影直线,沿着朝向方向的垂直方向构建第二投影直线。

步骤S1106,根据车辆目标在自车坐标系中的车辆长度和第一投影直线,确定在自车坐标系中的第二角点投影位置,根据映射关系和第二角点投影位置确定底部第二角点。

具体地,服务器可以根据车辆目标在自车坐标系中的车辆长度,在第一投影直线上确定出与底部第二角点对应的第二角点投影位置。如图12B所示,根据映射关系将第二角点投影位置投影至像素坐标系下得到底部第二角点(second)

可选地,如图12C所示,底部第一角点在自车坐标系下的投影位置a(x1,y1)和底部第二角点在自车坐标系下的投影位置,也即第二角点投影位置b(x2,y2)之间的夹角与车辆目标的朝向方向θ一致。服务器可以采用以下公式确定第二角点投影位置:

x2=x1+cosθ*length

y2=y1+sinθ*length

其中,x2表示第二角点投影位置的横坐标。y2表示第二角点投影位置的纵坐标。x1表示底部第一角点在自车坐标系下的投影位置的横坐标。y1表示底部第一角点在自车坐标系下的投影位置的纵坐标。θ表示车辆目标的朝向方向。length表示车辆目标的车辆长度。

步骤S1108,根据车辆长度和第二投影直线,确定在自车坐标系中的第三角点投影位置,根据映射关系和第三角点投影位置确定底部第三角点。

具体地,参照上述底部第二角点的确定方式,服务器可以根据车辆长度在第二投影直线上确定出在自车坐标系中的第三角点投影位置。如图12D所示,根据映射关系将第三角点投影位置投影至像素坐标系中确定底部第三角点(third)。

可选地,在一些实施例,根据图12D中的底部第一角点(first)、底部第二角点(second)和底部第三角点(third)在自车坐标系下的矩形约束,可以确定底部第四角点在自车坐标系中的第四角点投影位置。根据映射关系,将第四角点投影位置投影至像素坐标系下,可以得到如图12E所示的底部第四角点(forth)。

本实施例中,通过在中心检测类别下,将局域检测框的右下角点作为底部第一角点,根据车辆目标的车辆长度和朝向方向确定出与底部第一角点对应的底部第二角点和底部第三角点,能够提高底部包络角点的确定准确率。

在一个实施例中,检测场景类别属于边缘检测类别。

如图13所示,底部包络角点的确定步骤包括:

步骤S1302,在检测场景类别属于边缘检测类别的情况下,将全域检测框的右下角点作为底部第一角点。

步骤S1304,在检测场景类别为边缘检测类别的情况下,将全域检测框的左下角点作为底部第二角点。

具体地,从图8D所示的左边缘检测场景和图8E中所示的右边缘检测场景可以看出,在边缘检测场景中局域检测框的占比过小,此时几乎只能看到车辆的侧面所在的全域检测框。因此,在检测场景类别属于边缘检测类别下,如图8A所示,服务器可以将全域检测框的右下角点作为车辆目标在像素坐标系下的底部第一角点,将全域检测框的左下角点作为车辆目标在像素坐标系下的底部第二角点。

步骤S1306,在检测场景类别为边缘检测类别的情况下,根据底部第一角点在自车坐标系中的投影位置,以及车辆目标在自车坐标系中的朝向方向,确定第一投影直线。

步骤S1308,根据车辆目标在自车坐标系中的车辆长度和第一投影直线,确定在自车坐标系中的第三角点投影位置,根据映射关系和第三角点投影位置确定底部第三角点。

其中,第一投影直线的方向与朝向方向一致。

具体地,在检测场景类别为边缘检测类别的情况下,服务器可以参照上述实施例中提供的第一投影直线的构建方式,生成从底部第一角点在自车坐标系下的投影位置出发,沿着车辆目标的朝向方向延伸的第一投影直线。根据车辆目标的车辆长度在第一投影直线上确定出在自车坐标系中的第三角点投影位置,根据映射关系将第三角点投影位置投影至像素坐标系,得到底部第三角点。

后续服务器根据步骤S1302中的底部第一角点、步骤S1304中的底部第二角点以及步骤S1308中的底部第三角点在自车坐标系中的矩形约束,可以确定出车辆目标的底部第四角点。

本实施例中,通过在边缘检测类别下,采用全域检测框的右下角点作为底部第一角点,采用全域检测框的左下角点作为底部第二角点,结合车辆目标的车辆长度和朝向方向,确定与底部第一角点对应的底部第三角点,能够提高底部包络角点的确定效率。

可选地,在一些实施方式中,如图14A所示,在局域检测框位于全域检测框左边缘的场景下,服务器可以确定检测场景类别属于边缘检测类别,将全域检测框的右下角点作为底部第一角点(first),将全域检测框的左下角点作为底部第二角点(second)。从底部第一角点(first)的投影位置出发,沿着车辆目标的朝向方向延伸得到第一投影直线。根据车辆目标的车辆长度确定在第一投影直线上的第三角点投影位置。如图14B所示,将第三角点投影位置投影至像素坐标系下,得到底部第三角点(third)。如图14C所示,根据底部第一角点(first)、底部第二角点(second)和底部第三角点(third)在自车坐标系下的投影位置构成的矩形约束,确定底部第四角点(forth)在自车坐标系下的投影位置。在另一些实施方式中,在局域检测框位于全域检测框右边缘的情况下,确定出的底部第三角点(third)如图14D所示,底部第四角点(forth)如图14E所示。

在一个实施例中,待检测图像包括连续多帧图像。本申请提供的三维包络框的构建方法还包括:根据与每一帧图像对应的三维包络框对车辆目标进行重定位,得到重定位后的三维包络框。

具体地,服务器可以根据连续多帧图像中,与每一帧图像对应的同一车辆目标的三维包络框,计算得到三维包络框的均值坐标。根据均值坐标对车辆目标进行重定位,采用均值坐标作为车辆目标重定位后的三维包络角点的位置,得到重定位后的三维包络框。

本实施例中,通过依据连续多帧图像对三维包络框进行重定位,能够减少来自车颠簸时带来的待检测图像的检测误差,从而提高三维包络框的确定精度。

在一个实施例中,如图15所示,三维包络框的构建方法还包括:

步骤S1502,获取待检测图像,对待检测图像中的车辆目标进行检测得到车辆目标所在的全域检测框以及车辆目标的车头或车尾所在的局域检测框。

具体地,服务器获取待检测图像,可以采用预训练的神经网络模型对待检测图像中的车辆目标进行检测得到车辆目标所在的全域检测框以及车辆目标的车头或车尾所在的局域检测框。在一种实施方式中,如图16A所示,示出了一种针对车头检测到的局域检测框以及针对整个车辆检测得到的全域检测框。

步骤S1504,根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别。

具体地,服务器可以在全域检测框的中心点与局域检测框的中心点在水平方向上横坐标差异大于预设阈值的情况下,确定局域检测框位于全域检测框左侧,确定与待检测图像对应的检测场景类别为左侧检测类别。在局域检测框的中心点与全域检测框的中心点的横坐标差异大于预设阈值的情况下,确定局域检测框位于全域检测框右侧,确定检测场景类别为右侧检测类别。

在局域检测框覆盖的区域在全域检测框中的占比超过预设区域阈值的情况下,确定局域检测框位于全域检测框的中心,确定检测场景类别为中心检测类别。

在局域检测框的宽度小于预设宽度阈值,全域检测框的宽度大于预设数量个的局域检测框的宽度之和,且局域检测框的中心点位于全域检测框中心点左侧的情况下,确定局域检测框位于全域检测框的左边缘。确定检测场景类别为左边缘检测类别。

在局域检测框的宽度小于预设宽度阈值,全域检测框的宽度大于预设数量个的局域检测框的宽度之和,且局域检测框的中心点位于全域检测框中心点右侧的情况下,确定局域检测框位于全域检测框的右边缘。确定检测场景类别为右边缘检测类别。

步骤S1506,根据待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定待检测图像的消失线。

具体地,服务器可以根据采集待检测图像的视觉感知系统的相机内参和相机外参构建相机投影矩阵。基于仿射变换的原理,采用相机投影矩阵确定像素坐标系与自车坐标系之间的变换矩阵,以及自车坐标系与像素坐标系之间的变换矩阵,从而得到映射关系。利用映射关系,可以确定出如图16B所示的消失线。

步骤S1508,根据检测场景类别以及车辆目标的朝向方向,确定车辆目标的底部包络角点。

具体地,参照上述实施例中提供的底部包络角点的确定手段,服务器可以根据待检测图像中与车辆目标的局域检测框和全域检测框的位置关系对应的检测场景类别(同一待检测图像中不同车辆目标对应的检测场景类别可能不同),确定车辆目标的底部第一角点。基于车辆目标的朝向方向,可以在检测场景类别属于左侧检测类别的情况下,得到如图16C中所示的底部包络角点。在检测场景类别属于右侧检测类别的情况下,得到如图16D中所示的底部包络角点。

基于车辆目标的朝向方向以及车辆目标的车辆长度,可以在检测场景类别属于中心检测类别的情况下,得到如图16E中所示的底部包络角点。

基于车辆目标的朝向方向以及车辆目标的车辆长度,可以在检测场景类别属于左边缘检测类别或右边缘检测类别的情况下,将全域检测框的右下角点作为底部第一角点,将全域检测框的左下角点作为底部第二角点。从底部第一角点出发沿着车辆目标的朝向方向确定与车辆长度对应的第三角点投影位置,从而得到底部第三角点。基于底部包络角点之间的矩形约束,确定底部第四角点。

步骤S1510,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点。

步骤S1512,利用底部包络角点和顶部包络角点,构建车辆目标的三维包络框。

具体地,服务器可以获取各个底部包络角点到消失线的距离。参照上述实施例中提供的顶部包络角点的确定方式,基于相似三角形的原理,计算得到与各个底部包络角点对应的顶部包络角点。利用底部包络角点和顶部包络角点,构建如图16F所示的车辆目标的三维包络框。

本实施例中,通过基于车辆目标对应的局域检测框和全域检测框的位置关系,确定与车辆目标对应的检测场景类别,进而针对不同的检测场景类别采用不同的底部包络角点确定手段,计算得到车辆目标底部的四个角点。利用坐标系之间的映射关系确定待检测图像的消失线,基于相似三角形原理以及各个底部包络角点到消失线的距离确定与各个底部包络角点对应的顶部包络角点,能够利用消失线补偿待检测图像中缺失的深度信息,使得利用底部包络角点和顶部包络角点构建的三维包络框更贴合车辆目标。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其他的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的三维包络框的构建方法的三维包络框的构建装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个三维包络框的构建装置实施例中的具体限定可以参见上文中对于三维包络框的构建方法的限定,在此不再赘述。

在一个实施例中,如图17所示,提供了一种三维包络框的构建装置1000,包括:目标检测模块1002、类别确定模块1004、消失线确定模块1006、角点确定模块1008和信息重构模块1010,其中:

目标检测模块1002,用于获取待检测图像,对待检测图像中的车辆目标进行检测得到车辆目标所在的全域检测框以及车辆目标的预设部件所在的局域检测框。

类别确定模块1004,用于根据全域检测框和局域检测框之间的位置关系,确定与待检测图像对应的检测场景类别。

消失线确定模块1006,用于根据待检测图像对应的像素坐标系与预设的自车坐标系之间的映射关系,确定待检测图像的消失线。

角点确定模块1008,用于根据检测场景类别确定车辆目标的底部包络角点,根据底部包络角点到消失线的距离确定与底部包络角点对应的顶部包络角点。

信息重构模块1010,用于利用底部包络角点和顶部包络角点,构建车辆目标的三维包络框。

在一个实施例中,角点确定模块1008,包括:底部角点确定单元,用于根据检测场景类别,从全域检测框或局域检测框中确定出车辆目标的底部第一角点;根据检测场景类别和车辆目标在自车坐标系中的朝向方向,确定与底部第一角点对应的底部第二角点和底部第三角点;根据底部第一角点、底部第二角点和底部第三角点形成的矩形约束,确定车辆目标的底部第四角点;将底部第一角点、底部第二角点、底部第三角点和底部第四角点作为底部包络角点。

在一个实施例中,角点确定模块1008,包括:顶部角点确定单元,用于以局域检测框的高度作为角点高度差,确定与底部第一角点对应的顶部第一角点;根据底部第一角点到消失线的第一距离和底部第二角点到消失线的第二距离确定第一相似参数,利用第一相似参数、角点高度差以及底部第二角点,确定与底部第二角点对应的顶部第二角点;根据第一距离和底部第三角点到消失线的第三距离确定第二相似参数,利用第二相似参数、角点高度差以及底部第三角点,确定与底部第三角点对应的顶部第三角点;根据第一距离和底部第四角点到消失线的第四距离确定第三相似参数,利用第三相似参数、角点高度差以及底部第四角点,确定与底部第四角点对应的顶部第四角点;将顶部第一角点、顶部第二角点、顶部第三角点、顶部第四角点作为顶部包络角点。

在一个实施例中,检测场景类别属于两侧检测类别。

底部角点确定单元,还用于在检测场景类别属于两侧检测类别的情况下,将局域检测框的预设角点作为底部第一角点;在检测场景类别属于两侧检测类别的情况下,根据底部第一角点在自车坐标系中的投影位置,以及车辆目标在自车坐标系中的朝向方向,确定第一投影直线和第二投影直线,第一投影直线的方向与朝向方向一致,第二投影直线的方向与朝向方向垂直;将第一投影直线投影至像素坐标系与全域检测框相交得到底部第二角点,将第二投影直线投影至像素坐标系与全域检测框相交得到底部第三角点。

在一个实施例中,检测场景类别属于中心检测类别。

底部角点确定单元,还用于在检测场景类别属于中心检测类别的情况下,将局域检测框的右下角点作为底部第一角点;在检测场景类别为中心检测类别的情况下,根据底部第一角点在自车坐标系中的投影位置,以及车辆目标在自车坐标系中的朝向方向,确定第一投影直线和第二投影直线,第一投影直线的方向与朝向方向一致,第二投影直线的方向与朝向方向垂直;根据车辆目标在自车坐标系中的车辆长度和第一投影直线,确定在自车坐标系中的第二角点投影位置,根据映射关系和第二角点投影位置确定底部第二角点;根据车辆长度和第二投影直线,确定在自车坐标系中的第三角点投影位置,根据映射关系和第三角点投影位置确定底部第三角点。

在一个实施例中,检测场景类别属于边缘检测类别。

底部角点确定单元,还用于在检测场景类别属于边缘检测类别的情况下,将全域检测框的右下角点作为底部第一角点;在检测场景类别为边缘检测类别的情况下,将全域检测框的左下角点作为底部第二角点;根据底部第一角点在自车坐标系中的投影位置,以及车辆目标在自车坐标系中的朝向方向,确定第一投影直线,第一投影直线的方向与朝向方向一致;根据车辆目标在自车坐标系中的车辆长度和第一投影直线,确定在自车坐标系中的第三角点投影位置,根据映射关系和第三角点投影位置确定底部第三角点。

在一个实施例中,类别确定模块1004还用于在局域检测框位于全域检测框的左侧或右侧的情况下,确定检测场景类别属于两侧检测类别;在局域检测框在全域检测框中的占比满足预设区域阈值的情况下,确定检测场景类别属于中心检测类别;在局域检测框的宽度小于预设宽度阈值,且全域检测框的宽度大于预设数量个局域检测框的宽度之和的情况下,确定检测场景类别属于边缘检测类别。

在一个实施例中,待检测图像包括连续多帧图像。信息重构模块1010,还用于根据与每一帧图像对应的三维包络框对车辆目标进行重定位,得到重定位后的三维包络框。

上述三维包络框的构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图18所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待检测图像、全域检测框、局域检测框、检测场景类别、映射关系、消失线、底部包络角点和顶部包络角点等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种三维包络框的构建方法。

本领域技术人员可以理解,图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可以存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其他介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以作出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • 用于冲击工具的减震把手及冲击工具
  • 一种冲击工具的辅助手柄和冲击工具
技术分类

06120116524429