目标检测方法、计算机程序产品、存储介质及电子设备与流程

文档序号:31953478发布日期:2022-10-28 21:37阅读:66来源:国知局
目标检测方法、计算机程序产品、存储介质及电子设备与流程

1.本技术涉及人工智能技术领域,具体而言,涉及一种深度估计方法、目标检测方法及对应装置、计算机程序产品、存储介质及电子设备。


背景技术:

2.单目相机由于具有成本低、适用范围广的优势,受到了学术界和工业界的广泛关注,目前也有基于单目相机采集的图像进行3d目标检测的方法,但这些方法普遍检测精度较低。


技术实现要素:

3.本技术实施例的目的在于提供一种深度估计方法、目标检测方法及对应装置、计算机程序产品、存储介质及电子设备,以改善上述技术问题。
4.为实现上述目的,本技术提供如下技术方案:
5.第一方面,本技术实施例提供一种深度估计方法,包括:获取目标相机采集的目标图像;利用特征提取网络对所述目标图像进行特征提取,得到第一特征图;基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图或所述目标图像中各个像素点的深度信息。
6.在上述方法中,除了目标图像本身的特征(第一特征图)以外,还将目标相机的参数也输入到深度估计网络中,相当对相机参数进行了建模,充分考虑了其对深度估计结果可能产生的影响,从而估计出的深度信息具有较高的精度,并且还有利于提高深度估计结果的鲁棒性。
7.在第一方面的一种实现方式中,所述深度估计网络包括第一分支网络、第二分支网络以及深度修正结构,基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图中各个像素点的深度信息,包括:基于所述第一特征图,或者,基于所述第一特征图以及所述目标相机的内参和/或外参,利用所述第一分支网络估计所述第一特征图中各个像素点的原始深度信息;基于所述目标相机的内参和/或外参,利用所述第二分支网络计算所述第一特征图中各个像素点的深度修正项;基于所述第一特征图中各个像素点的深度修正项,利用所述深度修正结构对所述第一特征图中各个像素点的原始深度信息进行修正,得到所述第一特征图中各个像素点的深度信息。
8.在上述实现方式中,深度估计网络分为两个分支网络,第一分支网络直接估计深度信息,第二分支网络则利用相机参数对第一分支网络的估计结果进行修正,相当于在一定程度上弥补了相机参数变化对深度估计结果的影响,从而有利于提高深度估计的精度和鲁棒性。
9.此外,第一分支网络在估计深度信息时可以只考虑第一特征图,也可以将目标相机的内参和/或外参考虑在内,有利于进一步提高深度估计的精度和鲁棒性。
10.在第一方面的一种实现方式中,所述深度估计网络包括注意力模块,所述注意力
模块包括第三分支网络、第四分支网络以及加权结构,所述第三分支网络用于根据该分支网络的输入特征确定待加权特征,所述第四分支网络用于根据该分支网络的输入特征计算权重,所述加权结构用于利用所述权重对所述待加权特征进行加权,得到加权特征;其中,所述第三分支网络的输入特征根据所述第一特征图确定,所述第四分支网络的输入特征根据所述目标相机的内参和/或外参确定。
11.在上述实现方式中,通过注意力模块中的加权运算来建模相机参数对图像特征的影响效果,使得这种影响得以直观量化表示。
12.在第一方面的一种实现方式中,所述基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图中各个像素点的深度信息,包括:基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图中各个像素点在对数尺度下的深度信息。
13.在对数尺度下,对于近处的深度划分粒度细,远处的深度划分粒度粗,符合相机的成像特点,使得上述实现方式中的深度估计相对容易,估计结果精度也更高。
14.第二方面,本技术实施例提供一种目标检测方法,包括:利用第一方面或第一方面的任意一种可能的实现方式提供的深度估计方法得到所述第一特征图中各个像素点的深度信息;根据所述第一特征图、所述第一特征图中各个像素点的深度信息以及所述目标相机的内参,计算所述目标相机的相机坐标系下的特征点云;基于所述相机坐标系下的特征点云,利用目标检测网络计算所述目标图像的3d目标检测结果。
15.上述方法在进行3d目标检测时,由于用到的深度信息是利用第一方面或其任意一种可能的实现方式提供的深度估计方法估计出来的,所以其精度和鲁棒性较高,从而3d目标检测结果的精度和鲁棒性也随之提高。
16.在第二方面的一种实现方式中,所述基于所述相机坐标系下的特征点云,利用目标检测网络计算所述目标图像的3d目标检测结果,包括:根据所述相机坐标系下的特征点云以及所述目标相机的外参,计算世界坐标系下的特征点云,并基于所述世界坐标系下的特征点云,利用所述目标检测网络计算所述目标图像在所述世界坐标系下的所述3d目标检测结果;或者,基于所述相机坐标系下的特征点云,利用所述目标检测网络计算所述目标图像在所述相机坐标系下的原始3d目标检测结果,并根据所述原始3d目标检测结果以及所述目标相机的外参,计算所述目标图像在所述世界坐标系下的所述3d目标检测结果。
17.在上述实现方式中,根据实际需求,既可以在世界坐标系下进行3d目标检测,也可以在相机坐标系下进行3d目标检测,再将结果转换到世界坐标系下,其检测方式十分灵活。
18.在第二方面的一种实现方式中,所述根据所述相机坐标系下的特征点云以及所述目标相机的外参,计算世界坐标系下的特征点云,包括:基于所述第一特征图,或者,基于所述第一特征图以及所述目标相机的内参和/或外参,利用相机外参修正网络计算所述目标相机的外参修正项;根据所述目标相机的外参修正项,对所述目标相机的外参进行修正,得到修正后的所述目标相机的外参;根据所述相机坐标系下的特征点云以及修正后的所述目标相机的外参,计算所述世界坐标系下的特征点云。
19.在上述实现方式中,由于利用相机外参修正网络预测外参修正项并对相机外参进行了修正,相当于在一定程度上弥补了相机外参变化对特征点云计算的影响,因此有利于提高世界坐标系下的特征点云的计算精度和鲁棒性,进而改善目标检测结果的精度和鲁棒
性。
20.此外,相机外参修正网络在计算外参修正项时可以只考虑第一特征图,也可以将目标相机的内参和/或外参考虑在内,有利于进一步提高外参修正项的计算精度和鲁棒性。
21.在第二方面的一种实现方式中,所述根据所述相机坐标系下的特征点云以及所述目标相机的外参,计算世界坐标系下的特征点云,包括:在所述目标相机的外参中加入随机噪声,得到扰动后的所述目标相机的外参;根据所述相机坐标系下的特征点云以及扰动后的所述目标相机的外参,计算所述世界坐标系下的特征点云。
22.在上述实现方式中,由于在网络训练时将随机噪声加入到相机外参中,用于模拟实际环境中相机外参的扰动,因此训练出的网络将具有良好的鲁棒性,可以在一定程度上抵抗相机外参的扰动对于世界坐标系下的特征点云的计算结果的影响,从而也就是削弱了相机外参的扰动对于3d目标检测结果的影响。当相机安装在运动载体(例如,车辆、机器人)上时,相机外参的扰动是常见的,因此此种实现方式具有较高的实用价值。
23.第三方面,本技术实施例提供一种深度估计装置,包括:图像获取单元,用于获取目标相机采集的目标图像;特征提取单元,用于利用特征提取网络对所述目标图像进行特征提取,得到第一特征图;第一深度估计单元,用于基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图或所述目标图像中各个像素点的深度信息。
24.第四方面,本技术实施例提供一种目标检测装置,包括:第二深度估计单元,用于利用第一方面或第一方面的任意一种可能的实现方式提供的深度估计方法得到所述第一特征图中各个像素点的深度信息;特征点云计算单元,用于根据所述第一特征图、所述目标图像中各个像素点的深度信息以及所述目标相机的内参,计算所述目标相机的相机坐标系下的特征点云;目标检测单元,用于基于所述相机坐标系下的特征点云,利用目标检测网络计算所述目标图像的3d目标检测结果。
25.第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面、第二方面或这两方面的任意一种可能的实现方式提供的方法。
26.第六方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面、第二方面或这两方面的任意一种可能的实现方式提供的方法。
27.第七方面,本技术实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面、第二方面或这两方面的任意一种可能的实现方式提供的方法。
附图说明
28.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
29.图1示出了本技术实施例提供的深度估计方法的步骤;
30.图2示出了一种适用于图1中方法的模型结构;
31.图3示出了图2中深度估计网络可采用的一种结构;
32.图4示出了图2中深度估计网络可采用的另一种结构;
33.图5示出了本技术实施例提供的目标检测方法的步骤;
34.图6示出了一种适用于图5中方法的模型结构;
35.图7示出了图6中视角转换器可采用的一种结构;
36.图8示出了图6中视角转换器可采用的另一种结构;
37.图9示出了本技术实施例提供的深度估计装置包含的功能模块;
38.图10示出了本技术实施例提供的目标检测装置包含的功能模块;
39.图11示出了本技术实施例提供的电子设备可能具有的结构。
具体实施方式
40.近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(artificial intelligence,简称ai)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图构建、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。本技术实施例中的深度估计方法、目标检测方法也利用了人工智能的相关技术。
41.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
42.术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
43.术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
44.图1示出了本技术实施例提供的深度估计方法的步骤。该方法可以但不限于由图11中的电子设备执行,关于该电子设备可能的结构可以参考后文关于图11的阐述。参照图
1,深度估计方法包括:
45.步骤s110:获取目标相机采集的目标图像。
46.目标图像是指用于估计深度信息的图像,目标图像既可以是单张的照片,也可以是视频中的一帧。目标图像的格式不限,例如可以是rgb图像,可以是yuv图像等。采集目标图像的相机称为目标相机,目标相机可以是单目相机,从而图1中的深度估计方法也可以视为一种改进的、基于单目相机的深度估计方法。
47.为采集目标图像,可将目标相机安装在某一载体上,该载体的状态可能是静止的(例如,房屋、路灯、柜员机等),也可能是运动的(例如,车辆、无人机、手机等)。
48.目标相机包括内部参数(简称内参)和外部参数(简称外参),其中内参为目标相机的相机坐标系到像素坐标系的转换参数,外参为目标相机的相机坐标系到世界坐标系的转换参数。世界坐标系可以根据需求从相机外部的世界中选择,若相机安装在某一载体上,则世界坐标系可以根据该载体选择,例如,若该载体为车辆,则世界坐标系可以是车辆坐标系,比如采用车辆上安装的惯性测量单元(inertial measurement unit,简称imu)的坐标系,或者采用车辆上安装的激光雷达的坐标系,等等。
49.目标相机的内参可以用矩阵k表示,其中可以包括焦距、光心在像素坐标系下的坐标、畸变系数等参数;目标相机的外参可以用矩阵t表示,其中可以包括平移量、旋转量等参数。目标相机的内参和外参都可以通过标定得到,对于特定的相机,内参通常不易发生变化,而外参则会随相机相对于载体的运动发生变化。即使目标相机是固定在载体上的,表面上看其相对于载体静止,但实际上若载体发生移动,目标相机的外参很可能会产生一定的扰动:例如,若目标相机安装在车头上,随着车辆的颠簸,目标相机和车辆之间的相对位置关系也会产生微小的改变,即使得真实的相机外参和标定值之间存在差异。
50.步骤s110中获取目标图像的方式有多种:例如,从目标相机处实时获取目标图像;又例如,从存储器中读取目标图像,该图像是之前由目标相机采集并保存至存储器中的,等等。注意,目标相机不一定安装在执行步骤s110~s130中的电子设备上,例如,该电子设备可能只是从网络上下载了目标图像(及目标相机的参数信息),本身并不具有图像采集功能。
51.步骤s120:利用特征提取网络对所述目标图像进行特征提取,得到第一特征图。
52.特征提取网络可以是一个训练好的神经网络,其具体结构不限:例如,可采用骨干网络(backbone)加上多尺度特征融合网络的结构,其中骨干网络可采用resnet、vgg、mobilenet等卷积神经网络,多尺度特征融合网络可采用fpn等卷积神经网络;又例如,特征提取网络也可以只采用上述骨干网络,不进行多尺度特征融合,等等。
53.将目标图像输入特征提取网络,经特征提取网络计算后,输出目标图像对应的特征图,称为第一特征图。可选的,第一特征图的分辨率可以小于目标图像,使得后续基于第一特征图的运算计算量较小,例如,第一特征图的高和宽可以分别只有目标图像的1/16。可选的,在将目标图像输入特征提取网络之前还可以对其进行一定的预处理,例如,缩放、归一化等。
54.步骤s130:基于第一特征图以及目标相机的内参和/或外参,利用深度估计网络估计第一特征图或目标图像中各个像素点的深度信息。
55.先考虑利用深度估计网络估计第一特征图中各个像素点的深度信息的情况,深度
估计网络可以是一个训练好的神经网络,其具体结构不限,稍后会给出一些例子,此处暂不展开阐述。
56.深度估计网络的输入包括第一特征图以及目标相机的内参和/或外参,注意,这里所说的目标相机的内参,可以是目标相机所有的内参,也可以只是目标相机部分的内参,这里所说的目标相机的外参,可以是目标相机所有的外参,也可以只是目标相机部分的外参,但在后文中,为简单起见,凡是提到相机内参或相机外参,可以理解为相机的全部内参或全部外参,但这不应当视为对本技术保护范围的限制。
57.以上提到的几项信息可以分别输入深度估计网络,但也不排除在将这几项信息输入深度估计网络之前,先对这几项信息进行一定的变换或者整合,比如将其拼接在一起后再输入网络,等等。
58.深度估计网络的输出为深度估计结果,深度估计结果包括第一特征图中各个像素点的深度信息,根据实现方式的不同,该深度信息可以具有不同的形式:
59.例1:深度估计网络可以实现为一个分类网络,将预设深度范围(例如[0m,80m])划分为nd个深度区间(对应nd个类别),比如[0m,10m]、[10m,20m]、[20m,30m]等,此时深度估计网络输出的深度估计结果可以是一个形状为nd×h×
w的张量,其中h和w分别为第一特征图的高和宽,即第一特征图的每个像素点的深度信息都是一个nd维的向量,该向量中的每个数值对应一个深度区间,并表征该像素点处的深度属于此深度区间的概率。
[0060]
例2:深度估计网络可以实现为一个分类网络,将预设深度范围在对数尺度下(例1中可以认为是在自然尺度下)划分为nd个深度区间,比如,[0,1]、[1,2]、[2,3]等,其代表实际深度区间[0m,21m]、[21m,22m]、[22m,23m]等(即实际深度区间取对数可以得到相应的深度区间),2为一个预设的底数,此时深度估计网络输出的深度估计结果可以是一个形状为nd×h×
w的张量,第一特征图的每个像素点的深度信息都是一个nd维的向量,该向量中的每个数值对应一个深度区间,并表征该像素点处的深度属于此深度区间的概率。相较于例1,例2在对数尺度下,对于近处的深度划分粒度细,远处的深度划分粒度粗,符合相机的成像特点,使得深度估计相对容易。
[0061]
例3:深度估计网络可以实现为一个回归网络,此时深度估计网络输出的深度估计结果可以是一个形状为h
×
w的张量,第一特征图的每个像素点的深度信息都是一个估计出的深度值。
[0062]
例4:深度估计网络可以实现为一个回归网络,此时深度估计网络输出的深度估计结果可以是一个形状为h
×
w的张量,第一特征图的每个像素点的深度信息都是一个估计出对数尺度下(例3中可以认为是在自然尺度下)的深度值,该深度值进行幂运算后可以得到对应的实际深度值。相较于例3,例4在对数尺度下,对于近处的深度划分粒度细,远处的深度划分粒度粗,符合相机的成像特点,使得深度估计相对容易。
[0063]
总结例1~例4,例1和例3估计的是自然尺度下的深度信息,例2和例4估计的是对数尺度下的深度信息,后者的估计精度可能会比前者更高,但后续在使用深度信息时,可能需要从对数尺度到自然尺度的转换,所以操作上稍微复杂一点。
[0064]
可以理解的,深度信息还可以具有除例1~例4之外的形式,不再逐一说明。对于例1和例2而言,也可以认为深度估计结果是第一特征图中每个像素点的深度分布。
[0065]
深度估计结果的用途不限,例如,可以用于存储,可以用于显示,可以用于执行一
些特定的任务,比如后文会介绍的3d目标检测任务,或者场景分割、场景重建等任务。根据用途的不同,可能会对深度估计结果进行适当的转换,例如,上面的例1和例2得到的深度估计结果只是第一特征图中每个像素点的深度分布,并非具体的深度值,但可以根据需求将其转化为深度值,比如针对例1,对于每个像素点对应的nd维向量,可将其中最大的数值对应的深度区间的中点作为该像素点处的深度值。
[0066]
在某些任务中,也可能要估计的是目标图像中各个像素点的深度信息而非第一特征图中各个像素点的深度信息,但其估计方法与第一特征图中各个像素点的深度信息是类似的,只是深度估计网络的输出为目标图像中各个像素点的深度信息,类似的内容不再重复阐述。应当理解,为估计目标图像中各个像素点的深度信息,深度估计网络的内部结构也需要相应地调整。
[0067]
此外,还需要注意,若深度估计网络输出的是第一特征图中各个像素点的深度信息,通过上采样,也可以得到目标图像中各个像素点的深度信息,但此种实现方式并不完全等价于深度估计网络直接输出目标图像中各个像素点的深度信息,对于后者,在深度估计网络内部不一定会计算第一特征图中各个像素点的深度信息。
[0068]
可以将特征提取网络和深度估计网络视为一个深度估计模型,该深度估计模型的训练过程也包括上面的步骤s110~s130(当然,在训练时,特征提取网络、深度估计网络都是正在训练的网络而非前文所说的训练好的网络),只是此时的目标图像为训练集中的训练样本,此外,训练中得到第一特征图或目标图像的深度估计结果后还要和真实深度值(监督信号)计算损失,并更新深度估计模型的参数。
[0069]
图2示出了上述深度估计模型的一种可能的结构,其中,深度估计网络中包括相机参数编码网络,该网络为深度估计网络的子网络,用于对步骤s130中提到的目标相机的内参和/或外参进行编码,编码结果可与目标图像的特征一同进行深度估计,关于相机参数编码网络,后文在阐述图3和图4时还会介绍。
[0070]
简单总结图1中的方法,该方法在进行深度估计时,除了目标图像本身的特征(指第一特征图)以外,还将目标相机的参数(内参和/或外参)也输入到深度估计网络中,相当在深度估计网络中对相机参数进行了建模,充分考虑了其对深度估计结果可能产生的影响,从而估计出的深度信息具有较高的精度,并且还有利于提高深度估计结果的鲁棒性。
[0071]
具体而言,同一相机的内参虽然一般不会发生变化,但不同的相机具有不同的内参,可能对深度估计结果产生不同的影响。相机的外参则如之前所述,会随着相机和载体之间的相对运动而发生变化,同样可能对深度估计结果产生影响。然而,真实场景深度显然是和相机本身的参数无关的,即相机参数对深度估计结果的影响是负面的,这种负面影响通过相机的成像(即所采集的图像)体现出来,从而直接基于图像本身进行深度估计精度不高。然而,在上述方法中,由于将相机的内参和/或外参作为深度估计网络的输入,从而网络将学习到相机参数对于深度估计结果的影响,进而会自动尽量地从深度估计结果中消除这种影响,提高深度估计结果的精度和鲁棒性。
[0072]
下面,在以上实施例的基础上,继续介绍深度估计网络可能采用的结构。为简单起见,在介绍时是以深度估计网络用于估计第一特征图中各个像素点的深度信息的情况为例,对于估计目标图像中各个像素点的深度信息的情况是类似的(主要是网络的输出不同)。
[0073]
结构1:
[0074]
深度估计网络包括第一分支网络、第二分支网络以及深度修正结构。其中,第一分支网络用于根据第一特征图估计目标图像中各个像素点的原始深度信息,第二分支网络用于根据目标相机的内参和/或外参计算第一特征图中各个像素点的深度修正项,深度修正结构则用于根据第一特征图中各个像素点的深度修正项,对第一特征图中各个像素点的原始深度信息进行修正,得到第一特征图中各个像素点的深度信息(原始深度信息和深度修正项一一对应,即进行一对一修正)。但需要注意,原始深度信息经修正后,可能、但并不一定会直接得到对应的深度信息,还可能会经过一定的转换。
[0075]
第一分支网络和第二分支网络是深度估计网络中的两个子网络,而深度修正结构根据采用的修正方式(或者说深度修正项代表的含义)的不同可采用不同的实现方式。
[0076]
例如,对于第一特征图中的每个像素点,若其对应的原始深度信息为nd维的向量x,该向量中的每个数值对应一个深度区间,并表征该像素点处的深度属于此深度区间的概率,则其对应的深度修正项也是nd维的向量x’,该向量中的每个数值对应一个深度区间,并表征该像素点处的深度修正值。若采用加法修正,则深度修正值为调整值,深度修正结构为加法器,用于将向量x和x’相加,得到该像素点处的深度信息(也是一个nd维的向量);若采用乘法修正,则深度修正值为调整系数,则深度修正结构为乘法器,用于将向量x和x’对应位置的数值相乘,得到该像素点处的深度信息(也是一个nd维的向量),等等。
[0077]
在结构1中,第一分支网络直接估计深度信息,第二分支网络则利用相机参数对第一分支网络的估计结果进行修正,相当于在一定程度上弥补了相机参数变化对深度估计结果的影响,从而有利于提高深度估计的精度和鲁棒性。
[0078]
可选的,第一分支网络除了可以基于第一特征图自身估计第一特征图中各个像素点的原始深度信息之外,还可以基于第一特征图以及目标相机的内参和/或外参估计第一特征图中各个像素点的原始深度信息。即第一分支网络在估计深度信息时就直接将相机参数考虑在内,从而有利于提高深度估计的精度和鲁棒性。但需要注意,此时第一分支网络中输入的相机参数和第二分支网络中输入的相机参数可能相同,也可能不同,例如,可以两个分支网络中输入的都是相机的内参和外参,也可能第一分支网络只输入相机的内参,第二分支网络则输入相机的内参和外参,等等。
[0079]
图3示出了上述结构1的一种具体实现,图3中的虚线方框表示深度估计网络,左侧的灰色方框为网络输入,分别是第一特征图、目标相机的内参和目标相机的外参,右侧的灰色方框为网络输出,即第一特征图中各个像素点的深度信息。
[0080]
第一分支网络包括卷积模块1、多层感知机1、注意力模块、卷积模块2以及空洞卷积金字塔池化层(atrous spatial pyramid pooling,简称aspp)几个组件,第一分支网络的输入为第一特征图和目标相机的内参,输出为第一特征图中各个像素点的原始深度信息。其中,卷积模块表示包含至少一个卷积层、但也可能包含其他层的网络模块,卷积模块主要用于提取特征,空洞卷积金字塔池化层主要用于多尺度的信息融合,注意力模块用于融合卷积模块1的输出结果(代表图像特征)以及多层感知机1的输出结果(代表目标相机的内参),关于注意力模块,稍后还会进一步介绍。
[0081]
第二分支网络包括多层感知机2,第二分支网络的输入为目标相机的内参和外参,输出为第一特征图中各个像素点的深度修正项。
[0082]
深度修正结构为加法器(带有加号的圆圈),用于将第一特征图中每个像素点的原始深度信息和深度修正项叠加并输出。若深度信息实现为深度分布,则加法器的输出结果还不是最终的结果,还可以利用一个softmax分类器将加法器的输出结果映射到区间(0,1)中,即转化为概率的形式。
[0083]
图3中的多层感知机1和多层感知机2可以视为图2中的相机参数编码网络。
[0084]
显然,图3仅为结构1的一个示例,结构1还可以采取其他实现方式,例如,相机外参也可以输入到多层感知机1中;又例如,也可以去掉多层感知机1,即第一分支网络中不输入相机参数,此时注意力模块可以去掉,卷积模块1和卷积模块2可以合并为一个卷积模块,等等。
[0085]
结构2:
[0086]
深度估计网络只有一个分支网络(此时,也可以不将其称为“分支”),该分支网络用于根据第一特征图以及目标相机的内参和/或外参估计第一特征图中各个像素点的深度信息。简单来说,结构2舍弃了结构1中修正深度的思路,直接估计出最终的结果,其网络结构更加简单。
[0087]
图4示出了上述结构2的一种具体实现,图4中的虚线方框表示深度估计网络,左侧的灰色方框为网络输入,分别是第一特征图、目标相机的内参和目标相机的外参,右侧的灰色方框为网络输出,即第一特征图中各个像素点的深度信息。深度估计网络包括卷积模块1、多层感知机1、注意力模块、卷积模块2、空洞卷积金字塔池化层以及softmax分类器几个组件,连接关系如图所示,各模块和图3中的同名模块具有类似的功能。
[0088]
图4中的多层感知机1可以视为图2中的相机参数编码网络。
[0089]
显然,图4仅为结构2的一个示例,结构2还可以采取其他实现方式,例如,多层感知机1的输入也可以只包括目标相机的内参,或者只包括目标相机的外参;又例如,也可以去掉注意力模块,改用不带注意力机制的其他模块对卷积模块1的输出结果(代表图像特征)以及多层感知机1的输出结果(代表目标相机的内参和外参)进行融合,比如可以直接对二者进行简单的拼接,等等。
[0090]
下面,在以上实施例的基础上,继续介绍深度估计网络中的注意力模块:
[0091]
注意力模块是指具有注意力机制的神经网络模块。针对某个特定的图像处理任务而言,图像中不同部分的特征在重要性上是不同的,所谓注意力机制,就是通过某些技术手段,来表达图像中的不同部分的特征在重要性上的差异。例如,对图像中的不同部分的特征赋予不同的权重,被赋予权重较大的特征表明其重要性较高,被赋予权重较小的特征表明其重要性较低。
[0092]
在注意力模块中,可以采用两个分支网络和一个加权结构来实现注意力机制,两个分支网络中的一个用于将特征图输入至乘法器,另一个则用于计算特征图中不同部分的特征的权重,并将这些权重输入至乘法器,加权结构(可以是一个乘法器)用于实现特征的加权。如何划分特征图中不同的部分,将形成不同类型的注意力机制:例如,通道注意力机制,是指对特征图的不同通道中的数据赋予相应的权重;空间注意力机制,是指对特征图的不同空间位置处的数据赋予相应的权重,等等。
[0093]
具体到本技术的方案,可选的,深度估计网络中包括注意力模块,该注意力模块采用的注意力机制的类型不限,例如可能是上面提到的通道注意力机制、空间注意力机制或
者多种注意力机制的结合。为了便于和上文提到的第一分支网络、第二分支网络区分,将注意力模块中的两个分支网络称为第三分支网络和第四分支网络,当然除此之外注意力模块还包括加权结构。
[0094]
其中,第三分支网络用于根据该分支网络的输入特征确定待加权特征(形式上可以是特征图),例如,可以直接将第三分支网络的输入特征确定为待加权特征,或者,也可以对第三分支网络的输入特征进行进一步运算(例如,降维)后得到待加权特征。第三分支网络的输入特征也是注意力模块的一项输入,该特征根据第一特征图确定,例如可以直接将第一特征图确定为第三分支网络的输入特征,或者,也可以对第一特征图进行进一步运算(例如,卷积)后得到第三分支网络的输入特征。
[0095]
第四分支网络用于根据该分支网络的输入特征计算对待加权特征进行加权的权重。第四分支网络的输入特征是注意力模块的另一项输入,该特征根据目标相机的内参和/或外参确定,例如可以直接将目标相机的内参和/或外参确定为第四分支网络的输入特征,或者,也可以对目标相机的内参和/或外参进行进一步运算后得到第四分支网络的输入特征。
[0096]
加权结构则用于利用第四分支网络得到的权重对第三分支网络得到的待加权特征进行加权,得到加权特征,加权特征可以作为注意力模块的输出。其中,加权的方式取决于采用何种注意力机制,例如,若采用通道注意力机制,则第四分支网络将计算出c个权重,用于分别对待加权特征的c个通道进行加权。
[0097]
注意力模块既可以和上面提到的深度估计网络的结构1相结合,也可以和深度估计网络的结构2相结合,在与结构1结合时,注意力模块可以设置在第一分支网络中,并且此时第一分支网络的输入包括目标相机的内参和/或外参。例如,参照图3,在与结构1结合时,注意力模块的第一输入特征为图3中卷积模块1的输出结果(根据第一特征图确定),第二输入特征为图3中多层感知机模块1的输出结果(根据目标相机的外参确定),注意力模块输出的加权特征作为图3中卷积模块2的输入。又例如,参照图4,在与结构2结合时,注意力模块的第一输入特征为图4中卷积模块1的输出结果(根据第一特征图确定),第二输入特征为图4中多层感知机模块1的输出结果(根据目标相机的外参确定),注意力模块输出的加权特征作为图4中卷积模块2的输入。
[0098]
总结来说,上面的实现方式通过注意力模块中的加权运算来建模相机参数对图像特征的影响效果,使得这种影响得以直观量化表示,从而有利于改善深度估计结果的精度和鲁棒性。
[0099]
图5示出了本技术实施例提供的目标检测方法的步骤。该方法可以但不限于由图11中的电子设备执行,关于该电子设备可能的结构可以参考后文关于图11的阐述。参照图5,目标检测方法包括:
[0100]
步骤s210:利用本技术实施例提供的深度估计方法(包含其任意一种可能的实现方式)得到第一特征图中各个像素点的深度信息。
[0101]
步骤s210的内容在前文已经介绍,不再重复阐述。
[0102]
步骤s220:根据第一特征图、第一特征图中各个像素点的深度信息以及目标相机的内参,计算目标相机的相机坐标系下的特征点云。
[0103]
步骤s220即利用目标相机的内参,将第一特征图(即目标相机的像素坐标系下的
图像特征)转换为目标相机的相机坐标系下的特征点云的过程,也称第一次视角转换过程(后文还会介绍第二次视角转换)。注意,步骤s220中“根据第一特征图”,在不同的实现方式中,可能是直接对第一特征图进行视角转换,也可能是对第一特征图进行进一步运算(例如,卷积)后,再对运算得到的特征图进行视角转换。
[0104]
例如,第一特征图的形状为ci×h×
w,其中h和w分别为第一特征图的高和宽,ci为第一特征图的通道数,利用卷积对其进行降维,得到形状为c
p
×h×
w的特征图,作为视角转换的对象,其中,c
p
<ci,该特征图也可以视为针对第一特征图中的每个像素点都计算了一个c
p
维的图像特征。步骤s210得到的深度估计结果是一个形状为nd×h×
w的张量,其中,nd为预先划分的深度区间的数量,该张量也可以视为针对第一特征图中的每个像素点都估计了一个nd维的深度分布(参考步骤s130中的例1、例2)。目标相机的内参用矩阵k表示。则第一次视角转换可以采用如下方式实现:
[0105]
其一,是特征的转换:
[0106]
首先,对于上述形状为c
p
×h×
w的特征图,先将其中的图像特征广播到nd个深度区间上(就是把每个c
p
维的图像特征在原像素点位置复制nd份),得到相机坐标系下的原始特征集p
raw
,p
raw
是一个形状为c
p
×
nd×h×
w的张量,即针对第一特征图中的每个像素点、在每个深度区间上都计算了一个c
p
维的图像特征,且对于第一特征图中的同一个像素点,在不同深度区间上的c
p
维的图像特征是相同的。
[0107]
然后,将形状为nd×h×
w的深度估计结果中每个深度区间对应的概率作为权重,对该深度区间中的图像特征进行加权(乘上权重),得到相机坐标系下的特征集p
cam
,p
cam
也一个形状为c
p
×
nd×h×
w的张量,只是在p
cam
中,对于第一特征图中的同一个像素点,在不同深度区间上的c
p
维的图像特征可能是不同的(因为经过了加权)。
[0108]
其二,是坐标的转换:
[0109]
目标相机的像素坐标系和目标相机的相机坐标系下的坐标换算可以采用如下公式:
[0110][0111]
其中,[a,b,c]表示目标相机的相机坐标系下的坐标,[u,v]表示目标相机的像素坐标系下的坐标,d表示[u,v]处的深度值。
[0112]
对于p
cam
中的每个c
p
维的图像特征,其都对应一个像素点和一个深度区间,将该像素点的坐标作为上面公式中的[u,v],将该深度区间中点的深度值(如果深度区间是对数尺度下的,要转换为自然尺度)作为上面公式中的d,就可以计算出该图像特征在相机坐标系下的坐标[a,b,c]。从而,基于p
cam
和上面的坐标换算公式就可以计算出相机坐标系下的特征点云,记为pc′
am

[0113]
应当理解,第一次视角转换过程不限于采用上面例子中的方法,例如,若深度估计结果不是深度分布的形式而是直接估计出的深度值,则上面的方法也需要相应地调整。
[0114]
步骤s230:基于目标相机的相机坐标系下的特征点云,利用目标检测网络计算目标图像的3d目标检测结果。
[0115]
对于步骤s230,根据对检测结果需求的不同,存在多种不同的实现方式,下面列举
其中三种:
[0116]
方式1:
[0117]
基于相机坐标系下的特征点云,利用目标检测网络进行3d目标检测,得到目标图像在相机坐标系下的3d目标检测结果。
[0118]
其中,目标检测网络可以是一个训练好的用于3d目标检测的神经网络,其具体结构不限,例如可以采用centerpoint、ssd3d等检测头。3d目标检测结果至少包括目标的检测框(中心位置以及长宽高)以及目标的朝向,还可能包括目标的瞬时速度和/或类别。例如,对于centerpoint检测头,会先预测出表示目标中心位置的热力图,然后再回归出目标的检测框、朝向、瞬时速度和类别,即初步的检测结果,最后利用非极大值抑制的方法对初步的检测结果进行优化,得到最终的3d目标检测结果。
[0119]
相机坐标系下的特征点云可能会直接输入目标检测网络,也可能会经过进一步运算(例如,编码)后才输入目标检测网络。
[0120]
方式2
[0121]
步骤21:根据目标相机的相机坐标系下的特征点云以及目标相机的外参,计算世界坐标系下的特征点云。
[0122]
步骤22:基于世界坐标系下的特征点云,利用目标检测网络计算目标图像在世界坐标系下的3d目标检测结果。
[0123]
步骤21即利用目标相机的外参,将目标相机的相机坐标系下的特征点云转换为世界坐标系下的特征点云的构成,也称第二次视角转换过程。
[0124]
例如,若目标相机的外参用矩阵t表示,则第二次视角转换可以采用如下方式实现:
[0125]
对于点云pc′
am
中的每个点对应的c
p
维的图像特征,无需进行转换,只需对特征的坐标进行转换,而目标相机的相机坐标系和世界坐标系下的坐标换算可以采用如下公式:
[0126][0127]
其中,[a,b,c]表示目标相机的相机坐标系下的坐标,[x,y,z]表示世界坐标系下的坐标,转换后得到的世界坐标系下的特征点云可以记为p
ego

[0128]
之所以先转换到世界坐标系下,再进行3d目标检测,主要是出于任务需求,例如,目标相机安装在车辆上,需要根据3d目标检测结果识别出前方的其他车辆或者障碍物,以便进行预警或者规划自动驾驶路线,因此希望得到的是车辆坐标系(此时的世界坐标系)下的3d目标检测结果而非相机坐标系下的3d目标检测结果。
[0129]
第二次视角转换和前面介绍的第一次视角转换可以统称为视角转换,视角转换操作可以利用一个单独的网络模块来实现,不妨称为视角转换器,关于视角转换器的结构,后文还会进一步介绍。
[0130]
步骤22中的目标检测网络可以是一个训练好的用于3d目标检测的神经网络,其具体结构不限,例如可以采用centerpoint、ssd3d等检测头。世界坐标系下的特征点云可能会直接输入目标检测网络,也可能会经过进一步运算(例如,编码)后才输入目标检测网络。
[0131]
图6示出了采用方式2时,实现图5中方法的一种模型结构,不妨称图6中的模型为
目标检测模型。目标检测模型中的图像特征提取网络和深度估计网络和图2中的类似,不再重复阐述。
[0132]
与深度估计网络连接的是上面提到的视角转换器,视角转换器中包含一个称为相机外参修正网络的子网络,用于对目标相机的外参进行修正。相机外参修正网络是可选的,下面先结合图7说明视角转换器的基本结构(不含相机外参修正网络),关于相机外参修正网络稍后再介绍。
[0133]
参照图7,图7中的虚线方框表示视角转换器,左侧的灰色方框为视角转换器的输入,右侧的灰色方框为视角转换器的输出。转换器1用于执行第一次视角转换,其输入包括第一特征图经卷积模块3降维后的输出(例如,前文提到的从ci维降为c
p
维),第一深度特征中各个像素点的深度信息以及目标相机的内参,其输出包括相机坐标系下的特征点云,转换器2用于执行第二次视角转换,其输入包括相机坐标系下的特征点云以及目标相机的外参,其输出包括世界坐标系下的特征点云。显然,图7中的视角转换器还可以设计为其他结构,例如省略卷积模块3,等等。
[0134]
与视角转换器连接的是鸟瞰视角(bird’s eye view,简称bev)特征编码器,用于将世界坐标系下的特征点云编码为bev平面上的特征(也可以称为bev特征图),然后将bev特征图送入目标检测网络进行3d目标检测,并得到世界坐标系下的3d目标检测结果。下面简单说明bev特征编码器的功能:
[0135]
首先,将世界坐标系下的特征点云所在的空间划分成128
×
128个(也可以是其他分辨率)柱体,每个柱体对应bev特征图中的一个像素点,共128
×
128个像素点;然后,对特征点云中落入每个柱体内的特征点进行聚合(例如,最大池化或平均池化),得到该柱体的特征表示,也就是bev特征图中与该柱体对应的像素点处的特征,如此操作之后,bev特征图中的每个像素点处的特征就计算好了。
[0136]
应当理解,bev特征编码器也可以替换为其他编码器,例如,也可以将世界坐标系下的特征点云所在的空间划分成若干个体素(即voxel,之前的柱体在纵向没有划分),对每个体素内的特征点进行聚合,得到特征编码结果。或者,也可以省略bev特征编码器,直接将世界坐标系下的特征点云输入到目标检测网络中进行3d目标检测,等等。
[0137]
目标检测模型的训练过程也包括上面的步骤s210~s230(当然,在训练时,特征提取网络、深度估计网络、相机外参修正网络、目标检测网络都是正在训练的网络而非前文所说的训练好的网络),只是此时的目标图像为训练集中的训练样本,此外,训练中得到第一特征图的深度估计结果后还要和真实深度值(监督信号)计算损失,训练中得到的3d目标检测结果也要和真实检测结果(监督信号)计算损失,可以综合这两项损失更新目标检测模型的参数,当然,训练时只计算后一项损失也是可以的。
[0138]
方式3:
[0139]
步骤31:基于相机坐标系下的特征点云,利用目标检测网络计算目标图像在相机坐标系下的原始3d目标检测结果。
[0140]
步骤32:根据原始3d目标检测结果以及目标相机的外参,计算目标图像在世界坐标系下的3d目标检测结果。
[0141]
步骤31和方式1执行的操作类似,只是此时得到的检测结果并非最终的检测结果,所以将其命名为原始3d目标检测结果。步骤32类似于第二次视角转换,只是转换的对象是
3d目标检测结果而非特征点云,其细节不再阐述。
[0142]
概括来说,方式2是先从相机坐标系转换到世界坐标下,然后再世界坐标系下进行3d目标检测,方式3是先在相机坐标系下进行3d目标检测,再将检测结果转换到世界坐标系下。
[0143]
简单总结图5中的方法,该方法在进行3d目标检测时,由于用到的深度信息是利用本技术实施例提供的深度估计方法估计出来的,所以其精度和鲁棒性较高,从而3d目标检测结果的精度和鲁棒性也随之提高。
[0144]
以方式2为例,在进行视角转换的过程中,会用到目标相机的内参和外参,其中,对于特定的相机,内参基本是固定的,不会影响视角转换的精度,而外参在相机使用的过程中则比较容易发生扰动,这种扰动则会影响视角转换的精度,即导致世界坐标系下的特征点云计算不准确,从而影响3d目标检测结果的精度。可选的,可以在视角转换的过程中,采取一些策略来抑制外参扰动的影响,使得视角转换对于相机外参的扰动具有鲁棒性,从而也就能够提高3d目标检测结果的精度和鲁棒性。
[0145]
策略1:
[0146]
设置一个相机外参修正网络,对相机外参进行一定的修正,在一定程度上抵消相机外参变化对特征点云计算的影响。相机外参修正网络可以是一个训练好的神经网络,其具体结构不限。
[0147]
具体而言,基于第一特征图,可以先利用相机外参修正网络计算目标相机的外参修正项,然后根据目标相机的外参修正项,对目标相机的外参进行修正,得到修正后的目标相机的外参,最后根据相机坐标系下的特征点云以及修正后的目标相机的外参,计算世界坐标系下的特征点云。
[0148]
其中,外参修正可以采用不同的方式,例如,将外参修正项记为矩阵t
correction
,则可以采用加法方式(矩阵加法)修正外参t,即t
*
=t
correction
+t,其中t
*
为修正后的目标相机的外参,或者,也可以采用乘法方式(矩阵乘法)修正外参t,即t
*
=t
correction
t,等等。修正外参的结构(例如,加法器或乘法器)可以视为相机外参修正网络的一部分,也可以视为单独的网络结构。得到修正后的目标相机的外参后,计算世界坐标系下的特征点云的方法前文已经介绍,无非就是把方法中的t替换为t
*
,不再重复阐述。
[0149]
可选的,相机外参修正网络除了可以基于第一特征图计算目标相机的外参修正项之外,还可以基于第一特征图以及目标相机的内参和/或外参计算目标相机的外参修正项。即相机外参修正网络在预测外参修正项时还可以将相机参数考虑在内,此举有利于进一步提高外参修正项的计算精度和鲁棒性。
[0150]
图8示出了一种符合策略1描述的视角转换器的结构,参照图8,虚线方框表示视角转换器,左侧的灰色方框为视角转换器的输入,右侧的灰色方框为视角转换器的输出。图8和图7的主要区别在于下方增加了一个相机外参修正网络,该网络的输入包括第一特征图以及目标相机的内参和外参,该网络的输出包括目标相机的外参修正项,此修正项通过矩阵乘法(带有乘号的圆圈)的方式作用到目标相机的外参上,得到修正后的目标相机的外参,然后再将修正后的目标相机的外参输入到转换器2中,进行第二次视角转换。显然,图8中的视角转换器还可以设计为其他结构,例如相机外参修正网络只输入第一特征图和目标相机的外参,等等。
[0151]
策略2
[0152]
在目标检测模型的训练过程中,模拟相机外参的扰动,提高网络本身的对于外参扰动的鲁棒性。
[0153]
具体而言,在训练过程中进行第二次视角转换之前,可以先在目标相机的外参中加入随机噪声(例如,随机高斯噪声,针对不同的训练样本可以添加不同的噪声),得到扰动后的目标相机的外参,然后再执行第二次视角转换,即根据相机坐标系下的特征点云以及扰动后的目标相机的外参,计算世界坐标系下的特征点云。
[0154]
策略1和策略2可以同时采用,也可以只采用其中一种策略。对于方式3,也可以采取和方式2类似的策略来抑制外参扰动的影响,不再重复阐述。
[0155]
图9示出了本技术实施例提供的深度估计装置300包含的功能模块。参照图9,深度估计装置300包括:
[0156]
图像获取单元310,用于获取目标相机采集的目标图像;
[0157]
特征提取单元320,用于利用特征提取网络对所述目标图像进行特征提取,得到第一特征图;
[0158]
第一深度估计单元330,用于基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图或所述目标图像中各个像素点的深度信息。
[0159]
在所述深度估计装置300的一种实现方式中,所述深度估计网络包括第一分支网络、第二分支网络以及深度修正结构,所述第一深度估计单元330基于所述第一特征图以及所述目标相机的内参和/或外参,利用深度估计网络估计所述第一特征图中各个像素点的深度信息,包括:基于所述第一特征图,或者,基于所述第一特征图以及所述目标相机的内参和/或外参,利用所述第一分支网络估计所述第一特征图中各个像素点的原始深度信息;基于所述目标相机的内参和/或外参,利用所述第二分支网络计算所述第一特征图中各个像素点的深度修正项;基于所述第一特征图中各个像素点的深度修正项,利用所述深度修正结构对所述第一特征图中各个像素点的原始深度信息进行修正,得到所述第一特征图中各个像素点的深度信息。
[0160]
在所述深度估计装置300的一种实现方式中,所述深度估计网络包括注意力模块,所述注意力模块包括第三分支网络、第四分支网络以及加权结构,所述第三分支网络用于根据该分支网络的输入特征确定待加权特征,所述第四分支网络用于根据该分支网络的输入特征计算权重,所述加权结构用于利用所述权重对所述待加权特征进行加权,得到加权特征;其中,所述第三分支网络的输入特征根据所述第一特征图确定,所述第四分支网络的输入特征根据所述目标相机的内参和/或外参确定。
[0161]
本技术实施例提供的深度估计装置300可用于执行本技术实施例提供的深度估计方法,该装置的实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
[0162]
图10示出了本技术实施例提供的深度估计装置400包含的功能模块。参照图10,深度估计装置400包括:
[0163]
第二深度估计单元410,用于利用本技术实施例提供的深度估计方法得到所述第一特征图中各个像素点的深度信息;
[0164]
特征点云计算单元420,用于根据所述第一特征图、所述第一特征图中各个像素点
的深度信息以及所述目标相机的内参,计算所述目标相机的相机坐标系下的特征点云;
[0165]
目标检测单元430,用于基于所述相机坐标系下的特征点云,利用目标检测网络计算所述目标图像的3d目标检测结果。
[0166]
在所述深度估计装置400的一种实现方式中,所述目标检测单元430基于所述相机坐标系下的特征点云,利用目标检测网络计算所述目标图像的3d目标检测结果,包括:根据所述相机坐标系下的特征点云以及所述目标相机的外参,计算世界坐标系下的特征点云,并基于所述世界坐标系下的特征点云,利用所述目标检测网络计算所述目标图像在所述世界坐标系下的所述3d目标检测结果;或者,基于所述相机坐标系下的特征点云,利用所述目标检测网络计算所述目标图像在所述相机坐标系下的原始3d目标检测结果,并根据所述原始3d目标检测结果以及所述目标相机的外参,计算所述目标图像在所述世界坐标系下的所述3d目标检测结果。
[0167]
在所述深度估计装置400的一种实现方式中,所述目标检测单元430根据所述相机坐标系下的特征点云以及所述目标相机的外参,计算世界坐标系下的特征点云,包括:基于所述第一特征图,或者,基于所述第一特征图以及所述目标相机的内参和/或外参,利用相机外参修正网络计算所述目标相机的外参修正项;根据所述目标相机的外参修正项,对所述目标相机的外参进行修正,得到修正后的所述目标相机的外参;根据所述相机坐标系下的特征点云以及修正后的所述目标相机的外参,计算所述世界坐标系下的特征点云。
[0168]
在所述深度估计装置400的一种实现方式中,所述目标图像为训练样本,所述目标检测单元430根据所述相机坐标系下的特征点云以及所述目标相机的外参,计算世界坐标系下的特征点云,包括:在所述目标相机的外参中加入随机噪声,得到扰动后的所述目标相机的外参;根据所述相机坐标系下的特征点云以及扰动后的所述目标相机的外参,计算所述世界坐标系下的特征点云。
[0169]
本技术实施例提供的深度估计装置400可用于执行本技术实施例提供的目标检测方法,该装置的实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中相应内容。
[0170]
图11示出了本技术实施例提供的电子设备500的结构。参照图11,电子设备500包括:处理器510、存储器520以及相机530,这些组件通过通信总线540和/或其他形式的连接机构(未示出)互连并相互通讯。
[0171]
其中,处理器510包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器510可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、微控制单元(micro controller unit,简称mcu)、网络处理器(network processor,简称np)或者其他常规处理器;还可以是专用处理器,包括图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing unit,简称npu)、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuits,简称asic)、现场可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。并且,在处理器510为多个时,其中的一部分可以是通用处理器,另一部分可以是专用处理器。
[0172]
存储器520包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存
储器(random access memory,简称ram),只读存储器(read only memory,简称rom),可编程只读存储器(programmable read-only memory,简称prom),可擦除可编程只读存储器(erasable programmable read-only memory,简称eprom),电可擦除可编程只读存储器(electric erasable programmable read-only memory,简称eeprom)等。
[0173]
处理器510以及其他可能的组件可对存储器520进行访问,读和/或写其中的数据。特别地,在存储器520中可以存储一个或多个计算机程序指令,处理器510可以读取并运行这些计算机程序指令,以实现本技术实施例提供的深度估计方法和/或目标检测方法。
[0174]
相机530包括一个或多个(图中仅示出一个),其可以是一种用于采集图像和/或视频的设备,例如,相机530可以是摄像头,用于采集目标图像(步骤s110),目标图像可以保存在存储器520中。
[0175]
可以理解,图11所示的结构仅为示意,电子设备500还可以包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。例如,电子设备500还可能包括通信模块,用于与其他设备进行通信。又例如,电子设备500还可能不包括相机530,目标图像是通过其他渠道保存到存储器520中的。
[0176]
图11中所示的各组件可以采用硬件、软件或其组合实现。电子设备500可能是实体设备,例如车辆(或安装在车辆上的车载设备)、无人机、工业机器人、手机、抓拍机、pc机、笔记本电脑、平板电脑、服务器等,也可能是虚拟设备,例如虚拟机、容器等。并且,电子设备500也不限于单台设备,也可以是多台设备的组合或者大量设备构成的集群。
[0177]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本技术实施例提供的深度估计方法和/或目标检测方法。例如,计算机可读存储介质可以实现为图11中电子设备500中的存储器520。
[0178]
本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序指令,这些计算机程序指令被处理器读取并运行时,执行本技术实施例提供的深度估计方法和/或目标检测方法。
[0179]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1