1.本公开涉及计算机视觉技术领域,尤其涉及一种物体三维位置检测方法、装置、电子设备及存储介质。
背景技术:2.随着混合现实(mixed reality,mr)技术的日益发展,可以在现实场景呈现虚拟场景信息,以在现实世界、虚拟世界和用户之间搭起一个交互反馈的信息回路,以增强用户体验的真实感。
3.目前,依靠视觉信息进行三维重建是多种混合现实应用的基础,比如对室内环境中常见的物体进行三维重建。进一步地,可以根据重建物体的三维位置信息对图像或视频叠加特效,以丰富图像或视频的呈现效果。
4.因此,亟需一种能够准确的获取物体的三维位置信息的方案。
技术实现要素:5.本公开提供一种物体三维位置检测方法、装置、电子设备及存储介质,以通过提供一种鲁棒性能更佳、应用范围更广的物体三维位置检测方案,达到实现更加精确的物体位置信息检测的目的。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种物体三维位置检测方法,包括:
7.确定目标视频中每个视频帧对应的物体三维信息,所述目标视频包含至少一个物体;对所述目标视频中所有视频帧对应的物体三维信息进行聚类;根据每个聚类关联的视频帧,对所述目标视频对应的所有聚类进行筛选,得到所述目标视频对应的目标聚类;根据每个目标聚类对应的物体三维信息,确定每个目标聚类对应的物体的初始三维位置;根据相机姿态、每个目标聚类对应的物体三维信息和每个目标聚类对应的物体的初始三维位置,确定每个目标聚类对应的物体的目标三维位置。
8.可选地,所述确定目标视频中每个视频帧对应的物体三维信息,包括:
9.确定所述目标视频中每个视频帧对应的相机姿态;对所述目标视频中每个视频帧分别进行物体检测,得到每个视频帧对应的物体检测结果;根据每个视频帧对应的相机姿态和物体检测结果,得到每个视频帧对应的物体三维信息。
10.可选地,每个视频帧对应的物体检测结果包括每个物体的物理尺寸、每个物体相对相机的姿态和每个物体的特征向量;其中,所述根据每个视频帧对应的相机姿态和物体检测结果,得到每个视频帧对应的物体三维信息,包括:
11.根据每个物体的物理尺寸、每个物体相对相机的姿态和每个视频帧对应的相机姿态,将每个物体投影到世界坐标系,得到每个物体对应的三维包围盒;根据每个物体的特征向量在预设物体模型库中进行检索,得到每个物体对应的三维模型;将每个视频帧中每个物体对应的三维包围盒和三维模型作为每个视频帧对应的所述物体三维信息。
12.可选地,所述根据每个目标聚类对应的物体三维信息,确定每个目标聚类对应的
物体的初始三维位置,包括:
13.根据每个目标聚类内的三维包围盒的尺寸和物体相对相机的姿态,确定每个目标聚类对应的物体的初始三维位置。
14.可选地,所述根据每个目标聚类内对应的三维包围盒的尺寸和物体相对相机的姿态,确定每个目标聚类对应的物体的初始三维位置,包括:
15.将对每个目标聚类内所有的三维包围盒的尺寸的求取平均值的结果、以及对每个目标聚类内所有的物体相对相机的姿态的求取平均值的结果投射到世界坐标系,得到每个目标聚类对应的物体的初始三维位置。
16.可选地,每个视频帧对应的物体检测结果还包括每个物体的第一分割掩码;其中,所述根据相机姿态、每个目标聚类对应的物体三维信息和每个目标聚类对应的物体的初始三维位置,确定每个目标聚类对应的物体的目标三维位置,包括:
17.根据相机姿态和每个目标聚类对应的物体的初始三维位置,将每个目标聚类对应的物体的三维模型投影到每个目标聚类对应的视频帧上,得到每个目标聚类对应的物体的第二分割掩码;根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定每个目标聚类对应的物体的目标三维位置。
18.可选地,所述根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定每个目标聚类对应的物体的目标三维位置,包括:
19.根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定所有目标聚类对应的目标函数,所述目标函数用于表征物体位置和姿态;对所述目标函数进行最小化处理,得到最小化处理的结果,其中,所述最小化处理的结果与每个目标聚类对应的物体的目标三维位置对应。
20.可选地,所述目标函数为:-log
loss
,其中,其中,n代表所述至少一个物体的总数,m代表所述目标视频中所有视频帧的总数,代表第i个物体在第j帧视频上的第一分割掩码,代表第i个物体在第j帧视频上的第二分割掩码,iou代表交并比,代表各个物体之间的碰撞体积;i取1,
…
,n,j取1,
…
,m。
21.可选地,所述对所述目标视频中所有视频帧对应的物体三维信息进行聚类,包括:
22.根据所述目标视频中所有视频帧对应的三维包围盒中每两个三维包围盒之间的交并比,对所述目标视频中所有视频帧对应的三维包围盒进行聚类。
23.可选地,所述根据每个聚类关联的视频帧,对所述目标视频对应的所有聚类进行筛选,得到所述目标视频对应的目标聚类,包括:
24.将所述目标视频对应的所有聚类中关联的视频帧的帧数小于预设阈值的聚类剔除,得到所述目标视频对应的目标聚类。
25.根据本公开实施例的第二方面,提供一种物体三维位置检测装置,包括:
26.第一确定模块,被配置为执行确定目标视频中每个视频帧对应的物体三维信息,所述目标视频包含至少一个物体;聚类模块,被配置为执行对所述目标视频中所有视频帧对应的物体三维信息进行聚类;筛选模块,被配置为执行根据每个聚类关联的视频帧,对所述目标视频对应的所有聚类进行筛选,得到所述目标视频对应的目标聚类;第二确定模块,被配置为执行根据每个目标聚类对应的物体三维信息,确定每个目标聚类对应的物体的初始三维位置;第三确定模块,被配置为执行根据相机姿态、每个目标聚类对应的物体三维信息和每个目标聚类对应的物体的初始三维位置,确定每个目标聚类对应的物体的目标三维位置。
27.可选地,所述第一确定模块包括:确定单元、检测单元和处理单元;其中,所述确定单元,被配置为执行确定所述目标视频中每个视频帧对应的相机姿态;所述检测单元,被配置为执行对所述目标视频中每个视频帧分别进行物体检测,得到每个视频帧对应的物体检测结果;所述处理单元,被配置为执行根据每个视频帧对应的相机姿态和物体检测结果,得到每个视频帧对应的物体三维信息。
28.可选地,所述处理单元,在每个视频帧对应的物体检测结果包括每个物体的物理尺寸、每个物体相对相机的姿态和每个物体的特征向量的情况下,被配置为具体执行:
29.根据每个物体的物理尺寸、每个物体相对相机的姿态和每个视频帧对应的相机姿态,将每个物体投影到世界坐标系,得到每个物体对应的三维包围盒;根据每个物体的特征向量在预设物体模型库中进行检索,得到每个物体对应的三维模型;将每个视频帧中每个物体对应的三维包围盒和三维模型作为每个视频帧对应的所述物体三维信息。
30.可选地,所述第二确定模块,被配置为具体执行:根据每个目标聚类内的三维包围盒的尺寸和物体相对相机的姿态,确定每个目标聚类对应的物体的初始三维位置。
31.可选地,所述第二确定模块,被配置为具体执行:将对每个目标聚类内所有的三维包围盒的尺寸的求取平均值的结果、以及对每个目标聚类内所有的物体相对相机的姿态的求取平均值的结果投射到世界坐标系,得到每个目标聚类对应的物体的初始三维位置。
32.可选地,所述第三确定模块,在每个视频帧对应的物体检测结果还包括每个物体的第一分割掩码的情况下,被配置为具体执行:
33.根据相机姿态和每个目标聚类对应的物体的初始三维位置,将每个目标聚类对应的物体的三维模型投影到每个目标聚类对应的视频帧上,得到每个目标聚类对应的物体的第二分割掩码;根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定每个目标聚类对应的物体的目标三维位置。
34.可选地,所述第三确定模块,被配置为具体执行:
35.根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定所有目标聚类对应的目标函数,所述目标函数用于表征物体位置和姿态;对所述目标函数进行最小化处理,得到最小化处理的结果,其中,所述最小化处理的结果与每个目标聚类对应的物体的目标三维位置对应。
36.可选地,所述目标函数为:-log
loss
,其中,其中,n代
表所述至少一个物体的总数,m代表所述目标视频中所有视频帧的总数,代表第i个物体在第j帧视频上的第一分割掩码,代表第i个物体在第j帧视频上的第二分割掩码,iou代表交并比,代表各个物体之间的碰撞体积;i取1,
…
,n,j取1,
…
,m。
37.可选地,所述聚类模块,被配置为具体执行:根据所述目标视频中所有视频帧对应的三维包围盒中每两个三维包围盒之间的交并比,对所述目标视频中所有视频帧对应的三维包围盒进行聚类。
38.可选地,所述筛选模块,被配置为具体执行:将所述目标视频对应的所有聚类中关联的视频帧的帧数小于预设阈值的聚类剔除,得到所述目标视频对应的目标聚类。
39.根据本公开实施例的第三方面,提供一种电子设备,包括:
40.处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如前述的物体三维位置检测方法。
41.根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备中的处理器执行时,使得所述电子设备能够执行如前述的物体三维位置检测方法。
42.根据本公开实施例的第五方面,提供一种计算机程序产品,包括至少一种非临时性的计算机可读介质,存储由至少一个处理器可翻译的指令,用于实施前述的物体三维位置检测方法。
43.本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
44.当需要对某一场景中的至少一个物体进行三维重建时,可以获取对应的目标视频,并可以对该目标视频进行逐帧分析,确定该目标视频中包含的每个视频帧对应的物体三维信息,以实现单视角图像上的物体三维信息的获取。进一步地,则可以综合分析该目标视频对应的多个单视角图像即该目标视频中包含的所有视频帧对应的物体三维信息,即通过对目标视频中所有视频帧对应的物体三维信息进行聚类,并进一步对聚类的结果进行筛选,以可以根据筛选出的每个目标聚类对应的物体三维信息首先确定各目标聚类对应的物体的初始三维位置,然后根据相机姿态、每个目标聚类对应的初始三维位置和物体三维信息准确地确定出该目标视频中与各目标聚类对应的物体的最终的目标三维位置。如此,通过提供一种鲁棒性能更佳、应用范围更广的且不局限于图像上需要具有丰富的纹理信息的物体三维位置检测方案,实现更加精确的物体位置信息检测的目的。
45.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
46.此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
47.图1是根据一示例性实施例示出的一种物体三维位置检测方法的流程图。
48.图2是根据另一示例性实施例示出的一种物体三维位置检测方法的流程图。
49.图3是根据一示例性实施例示出的物体的三维包围盒的示意图。
50.图4是根据另一示例性实施例示出的物体的三维包围盒的示意图。
51.图5是根据一示例性实施例示出的进行三维模型检索前的示意图。
52.图6是对图5进行三维模型检索后的结果示意图。
53.图7是根据一示例性实施例示出的对视频帧进行物体检测后的物体分割效果的示意图。
54.图8是根据一示例性实施例示出的一种物体三维位置检测装置的框图。
55.图9是根据一示例性实施例示出的一种电子设备的框图。
56.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
具体实施方式
57.为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开具体实施例及相应的附图对本公开技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
58.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
59.以下结合附图,详细说明本公开各实施例提供的技术方案。
60.实施例一
61.请1参阅图1,是根据一示例性实施例示出的一种物体三维位置检测方法的流程图,参照图1,该物体三维位置检测方法可以包括如下所示的步骤:
62.s11,确定目标视频中每个视频帧对应的物体三维信息,所述目标视频包含至少一个物体。
63.可选地,上述目标视频基于单目相机进行拍摄得到,比如对某一室内场景进行拍摄,该场景中可以包括桌、椅子、沙发等常见的物体。
64.s13,对所述目标视频中所有视频帧对应的物体三维信息进行聚类。
65.进一步可选地,在该实施例中,上述s13的实现过程可以包括以下内容:
66.根据所述目标视频中所有视频帧对应的三维包围盒中每两个三维包围盒之间的交并比,对所述目标视频中所有视频帧对应的三维包围盒进行聚类。
67.其中,将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。当两个三维包围盒之间的交并比(intersection over union,iou)较高时,说明两个三维包围盒对应的物体相似度高,则可以归为同一聚类。也就
是说,通过将三维包围盒之间的iou作为距离度量可以实现对各视频帧对应的三维包围盒的准确聚类,进而实现对目标视频中包含的各个物体的分类。
68.s15,根据每个聚类关联的视频帧,对所述目标视频对应的所有聚类进行筛选,得到所述目标视频对应的目标聚类。
69.进一步可选地,在该实施例中,上述s15的实现过程可以包括以下内容:
70.将所述目标视频对应的所有聚类中关联的视频帧的帧数小于预设阈值的聚类剔除,得到所述目标视频对应的目标聚类。也就是说,通过统计得到每个聚类中包含的观测数量(即视频帧的总帧数),进一步基于统计结果滤除观测数量过小的聚类,实现对目标视频对应的所有聚类的筛选精简,进而便于明确需要进行物体三维位置检测的物体,即可以使得一个聚类更加准确地对应一个物体。
71.可选地,上述预设阈值的取值可以基于目标场景中包含的物体的数量、具体类别等,以及目标视频包含的视频帧的总帧数等具体情况确定。
72.s17,根据每个目标聚类对应的物体三维信息,确定每个目标聚类对应的物体的初始三维位置。
73.s19,根据相机姿态、每个目标聚类对应的物体三维信息和每个目标聚类对应的物体的初始三维位置,确定每个目标聚类对应的物体的目标三维位置。
74.在该实施例中,当需要对某一场景中的至少一个物体进行三维重建时,可以获取对应的目标视频,并可以对该目标视频进行逐帧分析,确定该目标视频中包含的每个视频帧对应的物体三维信息,以实现单视角图像上的物体三维信息的获取。进一步地,则可以综合分析该目标视频对应的多个单视角图像即该目标视频中包含的所有视频帧对应的物体三维信息,即通过对目标视频中所有视频帧对应的物体三维信息进行聚类,并进一步对聚类的结果进行筛选,以可以根据筛选出的每个目标聚类对应的物体三维信息首先确定各目标聚类对应的物体的初始三维位置,然后根据相机姿态、每个目标聚类对应的初始三维位置和物体三维信息准确地确定出该目标视频中与各目标聚类对应的物体的最终的目标三维位置。如此,通过提供一种鲁棒性能更佳、应用范围更广的且不局限于图像上需要具有丰富的纹理信息的物体三维位置检测方案,实现更加精确的物体位置信息检测的目的。
75.进一步地,上述s11的实现过程可以包括以下内容:
76.步骤a,确定所述目标视频中每个视频帧对应的相机姿态。
77.其中,相机姿态可以指单目相机相对于已知物体的三维姿态欧式角,即俯仰角、偏航角和滚轮角。在一个示例中,当单目相机为智能手机时,可以借助手机内置的即时定位与地图构建(simultaneous localization and mapping,slam)算法计算并导出每个视频帧对应的相机姿态。在另一个示例中,在算力充裕的情况下也可以使用离线的多视角三维重建算法计算每个视频帧对应的相机姿态。可选地,上述目标视频中每个视频帧对应的相机姿态可以相同,也可以有所区别。进一步可选地,上述目标视频中每个视频帧对应的相机姿态相同。
78.步骤b,对所述目标视频中每个视频帧分别进行物体检测,得到每个视频帧对应的物体检测结果。
79.可选地,通过将目标视频包含的每个视频帧分别输入用于物体检测的深度神经网络,输出得到每个视频帧对应的物体检测结果。其中,该用于物体检测的深度神经网络可以
为卷积神经网络(convolutional neuron network,cnn)。
80.其中,深度神经网络(deep neural network,dnn)也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。每一层仅仅是对输入向量经过如此简单的操作得到输出向量,由于dnn层数多,则系数w(也称权重矩阵)和偏移向量的数量也会多。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
81.另外,cnn是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
82.进一步地,训练上述用于物体检测的深度神经网络的方法,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本公开实施例中的物体的图像和物体的类别等)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的用于物体检测的深度神经网络。
83.步骤c,根据每个视频帧对应的相机姿态和物体检测结果,得到每个视频帧对应的物体三维信息。
84.在该实施例中,可以逐帧确定目标视频中每个视频帧对应的相机姿态,逐帧对目标视频中的每个视频帧进行物体检测,并基于每个视频帧对应的相机姿态和物体检测结果中的至少一个,确定每个视频帧对应的物体三维信息,以准确地实现单视角图像上的物体三维信息的获取。
85.进一步地,在该实施例中,在上述每个视频帧对应的物体检测结果包括每个物体的物理尺寸、每个物体相对相机的姿态和每个物体的特征向量的情况下,上述步骤c的实现过程可以包括以下内容:
86.根据每个物体的物理尺寸、每个物体相对相机的姿态和每个视频帧对应的相机姿态,将每个物体投影到世界坐标系,得到每个物体对应的三维包围盒;根据每个物体的特征
向量在预设物体模型库中进行检索,得到每个物体对应的三维模型;将每个视频帧中每个物体对应的三维包围盒和三维模型作为每个视频帧对应的所述物体三维信息。
87.可以理解,每个视频帧对应的所述物体三维信息包括但不限于每个物体对应的三维包围盒和三维模型。其中,各物体对应的三维包围盒可以为bbox(bounding box)包围盒,包围盒是一种求解离散点集最优包围空间的算法,可以用于描述物体的3d姿态,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象(即物体);该三维包围盒可以为包含对应物体的最小的六面体、球体或长方体等,如图3和图4所示,三维包围盒具体为长方体。各物体对应的三维模型,可以用于描述物体几何形状的先验信息。
88.在该实施例中,通过结合每个视频帧中每个物体自身的物理尺寸、物体相对相机的姿态以及每个视频帧对应的相机姿态,可以准确地得到能够描述每个视频帧中每个物体的三维姿态的三维包围盒。其中,每个物体的物体尺寸可以包括物体的长、宽、高等可测量的尺寸。每个物体相对相机的姿态可以包括每个物体相对于单目相机的三维姿态欧式角,即俯仰角、偏航角和滚轮角。
89.另外,还可以利用利用体现物体的类别信息的特征向量从已有的常见物体模型库(即预设物体模型库,比如基于计算机辅助设计的cad模型库)中进行检索,以检索出每个物体对应的三维模型,例如,在对图5中的物体进行检索后,检索出的椅子、沙发对应的三维模型如图6所示。如此,通过充分利用物体的类别信息获取物体几何形状的先验信息,以利于更加准确地实现对物体的三维重建,从而实现更加精确的物体三维位置检测。
90.其中,一个物体的特征向量中的每个元素可以代表该物体所属类别的通用特征,比如,椅子的特征向量为(a,b,c),其中a用于表征椅子的形状的特征,b用于表征椅子的尺寸的特征,c用于表征椅子的基本构造的特征,等等。
91.进一步地,在该实施例中,上述s17的实现过程可以包括以下内容:
92.根据每个目标聚类内的三维包围盒的尺寸和物体相对相机的姿态,确定每个目标聚类对应的物体的初始三维位置。
93.在该实施例中,可度量的每个目标聚类内的三维包围盒的具体尺寸信息可以用于预估各目标聚类对应的物体的尺寸,以及进一步结合各物体相对相机的位置和姿态信息,实现对各物体的初始三维位置的准确轨迹。
94.进一步地,在该实施例中,上述根据每个目标聚类内对应的三维包围盒的尺寸和物体相对相机的姿态,确定每个目标聚类对应的物体的初始三维位置的步骤,其实现过程可以包括以下内容:
95.将对每个目标聚类内所有的三维包围盒的尺寸的求取平均值的结果、以及对每个目标聚类内所有的物体相对相机的姿态的求取平均值的结果投射到世界坐标系,得到每个目标聚类对应的物体的初始三维位置。
96.在该实施例中,可以首先将聚类内的三维包围盒的尺寸和物体相对相机的姿态,进行平均,然后通过将平均的结果投射到世界坐标系完成对目标视频内各物体的三维位置准确的初始估计。进一步地,还可以确定基于各聚类重建出的物体对应的所有视频帧。进一步需要说明的是,在本公开的其他实施例中,还可以通过投射到其他类型的坐标系中,实现对物体三维位置的检测。
97.进一步地,在该实施例中,在上述每个视频帧对应的物体检测结果还包括每个物
体的第一分割掩码的情况下,上述s19的实现过程可以包括以下内容:
98.步骤d,根据相机姿态和每个目标聚类对应的物体的初始三维位置,将每个目标聚类对应的物体的三维模型投影到每个目标聚类对应的视频帧上,得到每个目标聚类对应的物体的第二分割掩码。
99.步骤e,根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定每个目标聚类对应的物体的目标三维位置。
100.可以理解,通过融合目标视频中所有视频帧对应的物体三维信息,滤除基于单视角视频帧进行物体检测时的错误信息,即通过多个视角之间的相对位置关系进行交叉验证,能够消除单视角物体识别信息中的噪声,从而可以提高对物体的三维位置的估计结果的准确性。
101.其中,每个视频帧包含的每个物体的第一分割掩码可以为每个物体在对应的二维平面(2d)图像上的分割掩码,以体现出视频帧图像中属于各物体的像素,分割效果的一个示例如图7所示。如此,考虑到准确的物体三维位置在2d图像上的投影应该与物体检测的分割掩码一致并且三维物体之间应该互相不能交叠,则可以通过联合优化物体在多视角图像上的投影与单视角物体分割的一致性获取更精确的物体位置信息。
102.进一步地,在该实施例中,上述步骤e的实现过程可以包括以下内容:
103.根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定所有目标聚类对应的目标函数,所述目标函数用于表征物体位置和姿态;对所述目标函数进行最小化处理,得到最小化处理的结果,其中,所述最小化处理的结果与每个目标聚类对应的物体的目标三维位置对应。
104.可以理解,通过对目标视频中包含的各物体对应的所有目标聚类对应的目标函数的最小化处理,实现对每个目标聚类对应的物体的三维位置的较优或最优处理,得到各物体最终的目标三维位置。
105.进一步地,在该实施例中,上述目标函数为:-log
loss
,其中,,其中,其中,n代表所述至少一个物体的总数,m代表所述目标视频中所有视频帧的总数,代表第i个物体在第j帧视频上的第一分割掩码,代表第i个物体在第j帧视频上的第二分割掩码,iou代表交并比,代表各个物体之间的碰撞体积;i取1,
…
,n,j取1,
…
,m。
106.由上可知,通过最小化上述目标函数-log(loss),可以求解出目标视频中的各物体的最优的三维位置{x_optim1,_optim2,...._optimn}。也就是说,通过最小化目标函数即通过调整物体的三维位置,可以使物体三维位置在2d图像上的投影与物体检测的分割掩码间的一致性变高,从而可以得到更准确的三维位置。
107.参照图2,是根据又一示例性实施例示出的一种物体三维位置检测方法的流程图,该物体三维位置检测方法可以包括如下所示的步骤:
108.s21,计算拍摄的视频中每个视频帧对应的相机姿态。
109.可选地,通过单目相机拍摄视频,视频中可以包括某一室内场景中的桌、椅子、沙发、水杯、花瓶等常见的物体。在一个示例中,当通过手机等移动设备拍摄视频时,通常可以借助手机中内置的slam算法计算并导出视频中各视频帧对应的相机姿态;另外,在算力充裕的情况下也可以考虑使用离线的多视角三维重建算法计算上述相机姿态。
110.s23,对视频逐帧进行物体检测,得到物体分割信息、三维包围盒以及相似的三维模型。
111.可选地,通过将视频包含的每个视频帧逐帧输入用于物体检测的深度神经网络,该深度神经网络输出检测到的物体分割信息,即每个物体对应的2d图像上的分割掩码,以体现出视频帧图像中属于各物体的像素,分割效果的一个示例如图7所示。另外,通过对视频逐帧进行物体检测,可以回归物体的物理尺寸以及相对于相机的姿态,进一步结合上述s21中的相机姿态可以将各物体投影到世界坐标系下得到各物体的3d bbox,如图3和图4所示,三维包围盒具体为长方体。另外,通过对视频逐帧进行物体检测,该深度神经网络还可以同时输出物体的特征向量,以用于从cad模型库中检索出各物体对应的最相似的三维模型,如对图5中的物体进行检索后,检索出的椅子、沙发对应的如图6所示的三维模型。
112.s25,融合视频包中的多个视频帧对应的信息,滤除单帧物体检测中的错误信息后,完成对视频中各物体的三维位置的初始估计
113.可选的,各视频帧对应的信息可以至少包括上述步骤中得到的3d bbox、物体相对相机的姿态等。进一步地,使用不同的3d bbox之间的iou作为距离度量,对各视频帧进行物体检测得到的3d bbox进行聚类,并统计每个聚类中包含的观测数量(即视频帧的数量),然后通过滤除观测数量过小的聚类实现精简筛选。进而,可以通过将经过精简筛选后的各聚类对应的3d bbox的尺寸和物体相对相机的姿态分别进行平均,并通过将平均的结果投影到世界坐标系下得到场景内各物体的三维位置的初始估计;同时,在经过聚类精简筛选后,还可以得到每个重建出的物体对应的视频帧。
114.s27,根据对视频中各物体的三维位置的初始估计结果、各视频帧对应的物体分割信息和相机姿态优化各物体的三维位置。
115.可选的,根据s25中重建的物体的初始三维位置估计结果{x1,x2,....xn}和相机姿态,可以将物体的3d模型投影到它的观测视角(即物体对应的聚类对应的视频帧)上得到分割掩码(代表第i个物体在第j帧视频上的投影)。然后构建目标函数-log
loss
,并通过最小化上述目标函数-log(loss),实现对物体的三维位置的调整,可以使物体三维位置在2d图像上的投影与物体检测的分割掩码间的一致性变高,从而可以得到更准确的三维位置。
116.其中,其中,n代表所述至少一个物体的总数,m代表所述目标视频中所有视频帧的总数,代表第i个物体在第j帧视频上的2d图像上的分割掩码,iou代表交并比,代表各个物体之间的碰撞体积;i取1,
…
,n,j取1,
…
,m。
117.该实施例,使用神经网络在单视角图像上检索物体实例及其相对于相机的位置姿
态,通过多视角信息过滤消除单视角物体检测中的错误信息,提升算法鲁棒性。接着通过多个视角之间的相对位置关系进行交叉验证,能够消除单视角物体识别信息中的噪声,通过联合优化物体在多视角图像上的投影与单视角物体分割的一致性获取更精确的物体位置信息。
118.实施例二
119.图8为一示例性实施例提供的物体三维位置检测装置300的框图,该物体三维位置检测装置300用于实现前述实施例一中的物体三维位置检测方法。参照图8,该物体三维位置检测装置300包括第一确定模块31、聚类模块33、筛选模块35、第二确定模块37和第三确定模块39。
120.其中,第一确定模块31,被配置为执行确定目标视频中每个视频帧对应的物体三维信息,所述目标视频包含至少一个物体;聚类模块33,被配置为执行对所述目标视频中所有视频帧对应的物体三维信息进行聚类;筛选模块35,被配置为执行根据每个聚类关联的视频帧,对所述目标视频对应的所有聚类进行筛选,得到所述目标视频对应的目标聚类;第二确定模块37,被配置为执行根据每个目标聚类对应的物体三维信息,确定每个目标聚类对应的物体的初始三维位置;第三确定模块39,被配置为执行根据相机姿态、每个目标聚类对应的物体三维信息和每个目标聚类对应的物体的初始三维位置,确定每个目标聚类对应的物体的目标三维位置。
121.在该实施例中,当需要对某一场景中的至少一个物体进行三维重建时,可以获取对应的目标视频,并可以对该目标视频进行逐帧分析,确定该目标视频中包含的每个视频帧对应的物体三维信息,以实现单视角图像上的物体三维信息的获取。进一步地,则可以综合分析该目标视频对应的多个单视角图像即该目标视频中包含的所有视频帧对应的物体三维信息,即通过对目标视频中所有视频帧对应的物体三维信息进行聚类,并进一步对聚类的结果进行筛选,以可以根据筛选出的每个目标聚类对应的物体三维信息首先确定各目标聚类对应的物体的初始三维位置,然后根据相机姿态、每个目标聚类对应的初始三维位置和物体三维信息准确地确定出该目标视频中与各目标聚类对应的物体的最终的目标三维位置。如此,通过提供一种鲁棒性能更佳、应用范围更广的且不局限于图像上需要具有丰富的纹理信息的物体三维位置检测方案,实现更加精确的物体位置信息检测的目的。
122.作为一种可能的实现方式,上述第一确定模块31包括:确定单元、检测单元和处理单元;
123.其中,所述确定单元,被配置为执行确定所述目标视频中每个视频帧对应的相机姿态;所述检测单元,被配置为执行对所述目标视频中每个视频帧分别进行物体检测,得到每个视频帧对应的物体检测结果;所述处理单元,被配置为执行根据每个视频帧对应的相机姿态和物体检测结果,得到每个视频帧对应的物体三维信息。
124.在该实施例中,可以逐帧确定目标视频中每个视频帧对应的相机姿态,逐帧对目标视频中的每个视频帧进行物体检测,并基于每个视频帧对应的相机姿态和物体检测结果中的至少一个,确定每个视频帧对应的物体三维信息,以准确地实现单视角图像上的物体三维信息的获取。
125.进一步地,作为一种可能的实现方式,上述处理单元,在每个视频帧对应的物体检测结果包括每个物体的物理尺寸、每个物体相对相机的姿态和每个物体的特征向量的情况
下,被配置为具体执行:
126.根据每个物体的物理尺寸、每个物体相对相机的姿态和每个视频帧对应的相机姿态,将每个物体投影到世界坐标系,得到每个物体对应的三维包围盒;根据每个物体的特征向量在预设物体模型库中进行检索,得到每个物体对应的三维模型;将每个视频帧中每个物体对应的三维包围盒和三维模型作为每个视频帧对应的所述物体三维信息。
127.在该实施例中,通过结合每个视频帧中每个物体自身的物理尺寸、物体相对相机的姿态以及每个视频帧对应的相机姿态,可以准确地得到能够描述每个视频帧中每个物体的三维姿态的三维包围盒。其中,每个物体的物体尺寸可以包括物体的长、宽、高等可测量的尺寸。每个物体相对相机的姿态可以包括每个物体相对于单目相机的三维姿态欧式角,即俯仰角、偏航角和滚轮角。
128.另外,还可以利用利用体现物体的类别信息的特征向量从已有的常见物体模型库中进行检索,以检索出每个物体对应的三维模型。如此,通过充分利用物体的类别信息获取物体几何形状的先验信息,以利于更加准确地实现对物体的三维重建,从而实现更加精确的物体三维位置检测。
129.作为一种可能的实现方式,上述第二确定模块37,被配置为具体执行:
130.根据每个目标聚类内的三维包围盒的尺寸和物体相对相机的姿态,确定每个目标聚类对应的物体的初始三维位置。
131.在该实施例中,可度量的每个目标聚类内的三维包围盒的具体尺寸信息可以用于预估各目标聚类对应的物体的尺寸,以及进一步结合各物体相对相机的位置和姿态信息,实现对各物体的初始三维位置的准确轨迹。
132.进一步地,作为一种可能的实现方式,上述第二确定模块37,被配置为具体执行:
133.将对每个目标聚类内所有的三维包围盒的尺寸的求取平均值的结果、以及对每个目标聚类内所有的物体相对相机的姿态的求取平均值的结果投射到世界坐标系,得到每个目标聚类对应的物体的初始三维位置。
134.在该实施例中,可以首先将聚类内的三维包围盒的尺寸和物体相对相机的姿态,进行平均,然后通过将平均的结果投射到世界坐标系完成对目标视频内各物体的三维位置准确的初始估计。进一步地,还可以确定基于各聚类重建出的物体对应的所有视频帧。
135.作为一种可能的实现方式,上述第三确定模块39,在每个视频帧对应的物体检测结果还包括每个物体的第一分割掩码的情况下,被配置为具体执行:
136.根据相机姿态和每个目标聚类对应的物体的初始三维位置,将每个目标聚类对应的物体的三维模型投影到每个目标聚类对应的视频帧上,得到每个目标聚类对应的物体的第二分割掩码;根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定每个目标聚类对应的物体的目标三维位置。
137.在该实施例中,通过融合目标视频中所有视频帧对应的物体三维信息,滤除基于单视角视频帧进行物体检测时的错误信息,即通过多个视角之间的相对位置关系进行交叉验证,能够消除单视角物体识别信息中的噪声,从而可以提高对物体的三维位置的估计结果的准确性。
138.进一步地,作为一种可能的实现方式,上述第三确定模块39,被配置为具体执行:
139.根据每个物体的第一分割掩码、每个目标聚类对应的物体的第二分割掩码、以及每个目标聚类对应的三维包围盒的交并比,确定所有目标聚类对应的目标函数,所述目标函数用于表征物体位置和姿态;对所述目标函数进行最小化处理,得到最小化处理的结果,其中,所述最小化处理的结果与每个目标聚类对应的物体的目标三维位置对应。
140.在该实施例中,通过对目标视频中包含的各物体对应的所有目标聚类对应的目标函数的最小化处理,实现对每个目标聚类对应的物体的三维位置的较优或最优处理,得到各物体最终的目标三维位置。
141.进一步地,作为一种可能的实现方式,上述目标函数为:-log
loss
,其中,其中,n代表所述至少一个物体的总数,m代表所述目标视频中所有视频帧的总数,代表第i个物体在第j帧视频上的第一分割掩码,代表第i个物体在第j帧视频上的第二分割掩码,iou代表交并比,代表各个物体之间的碰撞体积;i取1,
…
,n,j取1,
…
,m。
142.在该实施例中,通过最小化目标函数即通过调整物体的三维位置,可以使物体三维位置在2d图像上的投影与物体检测的分割掩码间的一致性变高,从而可以得到更准确的三维位置。
143.作为一种可能的实现方式,上述聚类模块33,被配置为具体执行:
144.根据所述目标视频中所有视频帧对应的三维包围盒中每两个三维包围盒之间的交并比,对所述目标视频中所有视频帧对应的三维包围盒进行聚类。
145.在该实施例中,通过将三维包围盒之间的iou作为距离度量可以实现对各视频帧对应的三维包围盒的准确聚类,进而实现对目标视频中包含的各个物体的分类。
146.作为一种可能的实现方式,上述筛选模块35,被配置为具体执行:
147.将所述目标视频对应的所有聚类中关联的视频帧的帧数小于预设阈值的聚类剔除,得到所述目标视频对应的目标聚类。
148.在该实施例中,通过统计得到每个聚类中包含的观测数量(即视频帧的总帧数),进一步基于统计结果滤除观测数量过小的聚类,实现对目标视频对应的所有聚类的筛选精简,进而便于明确需要进行物体三维位置检测的物体,即可以使得一个聚类更加准确地对应一个物体。
149.由于上述物体三维位置检测装置300中所涉及的模块、单元或子单元具有与前述实施例一中的物体三维位置检测方法相同或相应的技术特征,因此,关于本实施例中的各模块、单元或子单元的详细描述可参照前述实施例一中对物体三维位置检测方法的描述,本实施例在此不再赘述。例如,关于第一确定模块31的详细描述可参照实施例一中对s11的详细介绍、关于聚类模块33的详细描述可参照实施例一中对s13的详细介绍、关于筛选模块35的详细描述可参照实施例一中对s15的详细介绍、关于第二确定模块37的详细描述可参照实施例一中对s17的详细介绍以及关于第三确定模块39的详细描述可参照实施例一中对s19的详细介绍等。
150.实施例三
151.图9是根据一示例性实施例示出的一种电子设备400的框图。该电子设备400可以执行,但不限于,本公开实施例提供的物体三维位置检测方法。应注意,由于本实施例中由电子设备400执行的物体三维位置检测方法具有与前述实施例一中的物体三维位置检测方法相同或相应的技术特征,因此,关于本实施例中的物体三维位置检测方法的详细描述可参照前述实施例一中对物体三维位置检测方法的描述,本实施例在此不再赘述。
152.进一步,在一种可能的实现方式中,电子设备400可以包括,但不限于,图9所示的处理器41及存储器43。处理器41、存储器43之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
153.其中,存储器43用于存储程序或者数据,如存储处理器41可执行指令。该存储器43可以是,但不限于,随机存取存储器(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)等。
154.处理器41用于读/写存储器中存储的数据或程序,并执行相应地功能。
155.作为一种可能的实现方式,电子设备300还可以包括一个电源组件被配置为执行电子设备400的电源管理,一个有线或无线网络接口被配置为将电子设备400连接到网络,和一个输入输出(i/o)接口。电子设备400可以操作基于存储在存储器33的操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm或类似。
156.应当理解的是,图9所示的结构仅为电子设备400的结构示意图,该电子设备400还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。图9中所示的各组件可以采用硬件、软件或其组合实现。另外,在本公开实施例中,上述电子设备400可以是、但不限于,计算机、手机、ipad、移动上网设备等。
157.实施例四
158.在示例性实施例中,还提供了一种存储介质,当存储介质中的指令由电子设备400中的处理器41执行时,使得所述电子设备400能够执行以实现实施例一中的物体三维位置检测方法。可选地,存储介质可以是非临时性存储介质,例如,非临时性存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。
159.应注意,由于本实施例中由电子设备400执行的物体三维位置检测方法具有与前述实施例一中的物体三维位置检测方法相同或相应的技术特征,因此,关于本实施例中的物体三维位置检测方法的详细描述可参照前述实施例一中对物体三维位置检测方法的描述,本实施例在此不再赘述。
160.实施例五
161.在示例性实施例中,还提供了一种计算机程序产品,包括至少一种非临时性的计算机可读介质,存储由至少一个处理器可翻译的指令,用于执行实施例一中的物体三维位置检测方法。
162.应注意,由于本实施例中由电子设备400执行的物体三维位置检测方法具有与前述实施例一中的物体三维位置检测方法相同或相应的技术特征,因此,关于本实施例中的物体三维位置检测方法的详细描述可参照前述实施例一中对物体三维位置检测方法的描述,本实施例在此不再赘述。
163.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
164.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
165.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
166.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。