1.本技术实施例涉及图像处理技术领域,涉及但不限于一种六维姿态估计方法、网络训练方法、装置、设备及介质。
背景技术:2.彩色-深度(red green blue-depth,rgb-d)传感器提供了物体的表面纹理和几何形状的特征,并且随着rgb-d传感器的价格下降,rgb-d图像成为六维姿态估计的主流输入形式。相关技术中采用两个神经网络,分别提取彩色图像和深度图像的特征;将彩色图像和深度图像的特征进行融合,再加上复杂的后处理,得到物体的位移和旋转。这样,六维姿态估计的方案过于复杂,不简洁,且无法用一个统一的神经网络实现六维姿态估计。
技术实现要素:3.本技术实施例提供一种六维姿态估计技术方案。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供一种六维姿态估计方法,所述方法包括:
6.获取包括待估计对象的图像数据;
7.确定所述待估计对象在所述图像数据中深度图像上的坐标关联信息;
8.基于所述图像数据和所述坐标关联信息,确定所述待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息;
9.基于所述旋转信息和所述平移信息,确定所述待估计对象在所述相机坐标系的六维姿态。
10.在一些实施例中,所述基于所述图像数据和所述坐标关联信息,确定所述待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息,包括:将所述图像数据和所述坐标关联信息进行融合,得到融合数据;基于所述融合数据,确定所述待估计对象从所述世界坐标系到所述相机坐标系的所述旋转信息和所述平移信息。如此,能够使得神经网络中的空间变换不会改变待估计对象的世界坐标与深度图像中二维坐标之间的映射关系。
11.在一些实施例中,所述基于所述融合数据,确定所述待估计对象从所述世界坐标系到所述相机坐标系的所述旋转信息和所述平移信息,包括:对所述融合数据进行特征提取,得到融合特征图;基于所述融合特征图对所述待估计对象进行检测,确定所述待估计对象的至少一个检测框;对所述每一检测框进行处理,得到所述每一检测框中所述待估计对象的所述旋转信息和所述平移信息。如此,通过采用六维姿态估计网络中的基础子网络和旋转平移子网络,能够更加准确地预测每一个检测框中的待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息,进而使估计到的待估计对象的六维姿态更加准确。
12.在一些实施例中,所述对所述每一检测框进行处理,得到所述每一检测框中所述待估计对象的所述旋转信息和所述平移信息,包括:对所述每一检测框进行至少一次的特征空间变换,得到第一变换特征;其中,上一次的特征空间变换的输出为下一次特征空间变
换的输入;分别对所述第一变换特征进行不同空间维度的特征空间变换,得到所述旋转信息和所述平移信息。如此,通过两个共享的全连接层和两个独立的全连接层以获得旋转信息和三维的平移信息,进而能够基于此准确估计待估计对象的六维姿态。
13.在一些实施例中,所述确定所述待估计对象在所述图像数据中深度图像上的坐标关联信息,包括:在所述深度图像所在平面的直角坐标系中,确定所述待估计对象的世界坐标投影至所述深度图像上的第一坐标;对所述第一坐标进行坐标系转换,确定所述待估计对象在所述相机坐标系下的第二坐标;采用预设三角函数对所述第一坐标进行编码,得到编码信息;将所述第一坐标、所述第二坐标和所述编码信息中的至少之一,确定为所述坐标关联信息。如此,通过多种方式确定坐标关联信息,从而便于在图像数据中引入引入坐标关联信息,以解决采用同一神经网络处理彩色图像和深度图像时存在的投影分解的问题。
14.在一些实施例中,所述将所述图像数据和所述坐标关联信息进行融合,得到融合数据,包括:在所述坐标关联信息包括所述第一坐标和所述第二坐标中至少之一的情况下,将所述第一坐标和所述第二坐标中的至少之一,和所述图像数据进行拼接,得到所述融合数据。如此,将该关联信息与图像数据进行拼接,能够缓解由于卷积破坏深度图像中的坐标与世界坐标之间的映射关系。
15.在一些实施例中,所述将所述图像数据和所述坐标关联信息进行融合,得到融合数据,包括:在所述坐标关联信息包括所述编码信息的情况下,将所述图像数据和所述编码信息进行逐元素相加,得到所述融合数据。如此,将编码信息与图像数据进行相加,能够增加融合数据的通道,缓解由于卷积破坏深度图像中的坐标与世界坐标之间的映射关系。
16.在一些实施例中,所述获取包括待估计对象的图像数据,包括:获取所述待估计对象的彩色图像和深度图像;将所述彩色图像和所述深度图像进行拼接,得到所述图像数据。如此,通过将拼接后的图像数据输入到六维姿态估计网络中,能够实现通过同一网络对深度图像和彩色图像进行特征提取等处理。
17.本技术实施例提供一种六维姿态估计网络的训练方法,其特征在于,所述六维姿态估计网络是经过对待训练的六维姿态估计网络进行训练得到的,所述待训练的六维姿态估计网络至少包括:待训练的旋转平移子网络和待训练的基础子网络,所述方法包括:获取已标注六维姿态的样本对象的样本融合数据;其中,所述样本融合数据包括所述样本对象的训练图像数据和训练坐标关联信息;采用所述待训练的基础子网络,对所述融合数据进行特征提取,得到样本融合特征图;采用所述待训练的旋转平移子网络基于所述样本融合特征图,确定所述样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息;基于所述预测旋转信息和所述预测平移信息,以及,所述样本对象的真实旋转信息和真实平移信息,确定第一损失;至少基于所述第一损失和所述预测感兴趣区域的基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整,以使调整后的六维姿态估计网络输出的损失满足收敛条件。如此,通过在网络中引入旋转平移子网络预测样本对象的旋转信息和平移信息,简化了网络结构,而且通过在训练图像数据中引入训练坐标关联信息,能够在一个卷积神经网络实现了端到端的训练。
18.在一些实施例中,所述获取已标注六维姿态的样本对象的样本融合数据,包括:将所述训练图像数据和所述训练坐标关联信息进行融合,得到所述样本融合数据。
19.在一些实施例中,所述采用所述待训练的旋转平移子网络基于所述样本融合特征
图,确定所述样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息,包括:采用所述待训练的旋转平移子网络基于所述样本融合特征图,对所述样本对象进行检测,确定所述样本对象的至少一个检测框;采用所述待训练的旋转平移子网络对所述每一检测框进行处理,得到所述每一检测框中所述样本对象的所述预测旋转信息和所述预测平移信息。如此,在训练的过程中通过引入基础子网络和旋转平移子网络,能够更加准确地预测每一个检测框中的样本对象从世界坐标系到相机坐标系的旋转信息和平移信息,进而使估计到的样本对象的6d姿态更加准确。
20.在一些实施例中,所述待训练的旋转平移子网络包括:两个相连接的第一全连接层、第二全连接层和第三全连接层,所述采用所述待训练的旋转平移子网络对所述每一检测框进行处理,得到所述每一检测框中所述样本对象的所述预测旋转信息和所述预测平移信息,包括:采用所述两个相连接的第一全连接层对所述每一检测框进行特征空间变换,得到第一变换样本特征;采用所述第二全连接层和所述第三全连接层分别对所述第一变换样本特征进行特征空间变换,得到所述预测旋转信息和所述预测平移信息。如此通过待训练的旋转平移子网络中两个共享的全连接层和两个独立的全连接层以获得旋转信息和三维的平移信息,进而能够基于此准确估计样本对象的6d姿态。
21.在一些实施例中,所述待训练的六维姿态估计网络还包括世界坐标子网络,所述方法还包括:采用所述待训练的世界坐标子网络,基于所述预测感兴趣区域,确定所述样本对象在所述世界坐标系中的预测世界坐标;基于所述预测世界坐标和所述样本对象的真实世界坐标,确定第二损失;所述至少基于所述第一损失和所述待训练的基础子网络的基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整,包括:基于所述第一损失、所述第二损失和所述基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整。如此,在训练的六维姿态网络中引入三维坐标的子网络,以辅助该网络预测对象的三维坐标,能够提高对训练的六维姿态网络进行训练的效率,使得训练好的六维姿态网络的鲁棒性更强。
22.在一些实施例中,所述基于所述预测旋转信息和所述预测平移信息,以及,所述样本对象的真实旋转信息和真实平移信息,确定第一损失,包括:将所述样本对象上任一点的所述预测旋转信息和所述预测平移信息进行融合,得到预测六维姿态;将所述任一点的所述真实旋转信息和所述真实平移信息进行融合,得到真实六维姿态;基于所述预测六维姿态和所述真实六维姿态,确定所述第一损失。如此,通过分析待估计对象中每一采样点的预测六维姿态和真实六维姿态之间的差值,能够有效确定旋转平移子网络预测旋转信息和平移信息的损失。
23.在一些实施例中,所述基于所述预测世界坐标和所述样本对象的真实世界坐标,确定第二损失,包括:确定所述所述预测世界坐标和所述真实世界坐标在每一坐标维度上的差值;将多个坐标维度上的差值进行融合,得到所述第二损失。如此,通过确定每一坐标维度上的预测世界坐标和真实世界坐标之间的差值能够得到更加准确的第二损失,而且能够在训练待训练的六维姿态估计网络的过程中起到辅助作用。
24.在一些实施例中,所述采用所述待训练的基础子网络,确定所述样本融合数据中的预测感兴趣区域之后,所述方法还包括:采用所述待训练的基础子网络中的检测子网络,确定在所述预测感兴趣区域中对所述样本对象进行检测的第三损失;采用所述待训练的基
础子网络中的掩模子网络,基于所述预测感兴趣区域确定对所述样本对象进行实例分割的第四损失;基于所述第三损失和所述第四损失,得到所述基础损失。如此,能够在训练待训练的六维姿态估计网络的过程中充分考虑到对象检测和实例分割,从而使得已训练的六维姿态估计网络中的基础子网络的性能较高。
25.本技术实施例提供一种六维姿态估计装置,所述装置包括:
26.第一获取模块,用于获取包括待估计对象的图像数据;
27.第一确定模块,用于确定所述待估计对象在所述图像数据中深度图像上的坐标关联信息;
28.第二确定模块,用于基于所述图像数据和所述坐标关联信息,确定所述待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息;
29.第三确定模块,用于基于所述旋转信息和所述平移信息,确定所述待估计对象在所述相机坐标系的六维姿态。
30.本技术实施例提供一种六维姿态网络的训练装置,所述六维姿态估计网络是经过对待训练的六维姿态估计网络进行训练得到的,所述待训练的六维姿态估计网络至少包括:待训练的旋转平移子网络和待训练的基础子网络,所述装置包括:
31.第二获取模块,用于获取已标注六维姿态的样本对象的样本融合数据;其中,所述样本融合数据包括所述样本对象的训练图像数据和训练坐标关联信息;
32.第一特征提取模块,用于采用所述待训练的基础子网络,对所述融合数据进行特征提取,得到样本融合特征图;
33.第一预测模块,用于采用所述待训练的旋转平移子网络基于所述样本融合特征图,确定所述样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息;
34.第四确定模块,用于基于所述预测旋转信息和所述预测平移信息,以及,所述样本对象的真实旋转信息和真实平移信息,确定第一损失;
35.第一调整模块,用于至少基于所述第一损失和所述预测感兴趣区域的基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整,以使调整后的六维姿态估计网络输出的损失满足收敛条件。
36.本技术实施例提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,该计算机可执行指令被执行后,能够实现上述方法的步骤。
37.本技术实施例提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器上存储有计算机可执行指令,所述处理器运行所述存储器上的计算机可执行指令时能够实现上述方法的步骤。
38.本技术实施例提供一种六维姿态估计方法、网络训练方法、装置、设备及介质,对于获取的待估计对象的图像数据,首先,通过确定该待估计对象在图像数据中深度图像上的坐标关联信息;然后,将该坐标关联信息与图像数据相结合,来确定待估计对象从世界坐标系到相机坐标系的选择信息和平移信息;这样,能够在不破坏待估计对象的世界坐标与深度图像上的坐标之间的投影关系的情况下,采用同一神经网络处理包括深度图像和彩色图像的图像数据,使得进行六维姿态估计的网络更加简洁。最后,通过确定出的旋转信息和平移信息,即可确定待估计对象在相机坐标系的六维姿态;如此,既能够简化进行六维姿态估计的神经网络,还能够提高六维姿态估计的效率。
附图说明
39.图1为本技术实施例提供的六维姿态估计方法的实现流程示意图;
40.图2为本技术实施例提供的六维姿态估计方法的另一实现流程示意图;
41.图3为本技术实施例提供的六维姿态估计网络的训练方法的实现流程示意图;
42.图4为本技术实施例提供的彩色图像与深度图像的投影示意图;
43.图5为本技术实施例提供的六维姿态估计方法的网络架构示意图;
44.图6为本技术实施例提供的子网络的架构图示意图;
45.图7为本技术实施例提供的六维姿态估计方法的应用场景示意图;
46.图8为本技术实施例提供的六维姿态估计装置的结构组成示意图;
47.图9为本技术实施例提供的六维姿态估计网络的训练装置的结构组成示意图
48.图10为本技术实施例计算机设备的组成结构示意图。
具体实施方式
49.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本技术,但不用来限制本技术的范围。
50.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
51.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的实例,不代表针对实例的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
52.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
53.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
54.1)六维姿态估计是对物体的3d位置和3d方向信息进行准确的估计。六维位姿估计,是指估计相机坐标系下物体的六维位姿,即3d位置和3d姿态,此时原始物体本身的坐标系可以看作是世界坐标系,也即得到原始物体所在世界系到相机系的物体的位移和旋转变换。
55.2)rgb-d图像是两幅图像:一个是普通的三通道彩色图像,另一个是深度图像。图像类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离。通常彩色图像和深度图像是配准的,因而像素点之间具有一对一的对应关系。
56.下面说明本技术实施例提供的姿态估计的设备的示例性应用,本技术实施例提供的设备可以实施为具有图像采集功能的笔记本电脑,平板电脑,台式计算机,相机,移动设备(例如,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为终端或服务器时示例性应用。
57.该方法可以应用于计算机设备,该方法所实现的功能可以通过计算机设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算机设备至少包括处理器和存储介质。
58.随着rgb-d传感器更易于实现,使用rgb-d图像获得高精度六维姿态估计结果成为更好的选择。在深度图像平面中,物理世界的投影3d结构由1d深度值及其内置的平面像素坐标(u,v)保留。任何空间变换都会改变(u,v);例如,卷积神经网络(convolutional neural networks,cnn)框架中的调整大小、翻转、裁剪或池化操作,会破坏像素值和(u,v)坐标之间的绑定。因此,修改后的深度图像或特征不再保留3d结构。
59.基于此,本技术实施例提供一种六维姿态估计方法,将坐标关联信息与rgb-d图像一起作为输入,使用单个cnn主干网络即可进行六维姿态估计。该六维姿态估计方法可以通过已训练的六维姿态估计网络实现,如图1所示,结合如图1所示步骤进行说明:
60.步骤s101,获取包括待估计对象的图像数据。
61.在一些实施例中,该待估计对象可以是任意场景下的物体、行人、车辆、树木或建筑物等。待估计对象的图像数据为针对该待估计对象采集到的彩色-深度图像,包括对该待估计对象采集的彩色图像和深度图像。其中,彩色图像可以是(red green blue,rgb)rgb图像,彩色图像和深度图像的像素点之间具有一对一的对应关系。在该图像数据中待估计对象和其他对象之间可以是互相遮挡的,可以是互不遮挡的;比如,图像数据为采集放置多个茶具的餐桌得到的,如果待估计对象为其中的茶壶,那么茶壶和茶杯之间可以是存在遮挡的,可以是互不遮挡的。
62.在一些实施例中,待估计对象的数量可以是一个、两个及以上。同时在包括的待估计对象的数量为两个及以上时,不同待估计对象在图像数据中所处的区域可以相邻、远离或部分重叠等,且不同待估计对象在图像数据中所占区域面积可以相同,也可不同。
63.在一些可能的实现方式中,可以通过图像采集设备对该待估计对象进行图像采集,得到该图像数据中的彩色图像和深度图像;还可以是接收其他设备发送的包括待估计对象的彩色图像和深度图像。还可以是通过对待估计对象采集rgb图像,再对该rgb图像进行深度投影,得到该待估计对象的深度图像。这样,图像数据的彩色图像和深度图像中的画面是相对应的。
64.步骤s102,确定所述待估计对象在所述图像数据中深度图像上的坐标关联信息。
65.在一些实施例中,坐标关联信息用于表示待估计对象的三维世界坐标投影到深度图像上的坐标信息,还可以表示待估计对象的三维世界坐标与深度图像上的二维坐标之间的对应关系。确定出待估计对象的每一点在深度图像上的坐标关联信息;或者,首先确定待估计对象的关键点,然后,确定每一关键点在深度图像上的坐标关联信息。待估计对象的坐标关联信息至少包括以下之一:待估计对象的三维世界坐标投影到深度图像上的第一坐标、通过对二维坐标进行反投影确定该第一坐标在相机坐标下的横纵坐标(x,y)(即第二坐标)、通过三角函数对该第一坐标进行编码得到编码信息等。
66.由于图像数据是针对待估计对象采集得到的,所以该估计对象的三维世界坐标是已知的,而且通过以深度图像为平面建立二维直角坐标系,那么可以得到待估计对象在深度图像上每一点的第一坐标。这样,能够通过对第一坐标进行反投影得到在相机坐标下的第二坐标,以及通过三角函数对该第一坐标进行编码得到编码信息。
67.步骤s103,基于所述图像数据和所述坐标关联信息,确定所述待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息。
68.在一些实施例中,将图像数据和坐标关联信息进行结合,采用结合后的信息进行全局分析,确定该待估计对象的旋转信息和平移信息。如果坐标关联信息中包括第一坐标、第二坐标和编码信息中的之一,那么将该一坐标关联信息与待估计对象的彩色图像和深度图像进行结合;如果坐标关联信息中包括第一坐标、第二坐标和编码信息中的两个,那么将这两个信息与待估计对象的彩色图像和深度图像进行结合。
69.在一些可能的实现方式中,通过将图像数据与坐标关联信息相结合之后,通过对结合后的数据进行特征提取,以确定多个感兴趣区域。采用多个全连接层多个感兴趣区域进行融合,以确定该待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息。该旋转信息表示待估计对象中每一采样点的空间旋转情况,以确定该采样点的三维姿态,可以采用1
×
4的四元数旋转矩阵来表示。平移信息表示待估计对象中每一采样点的三维位置,可以采用1
×
3的平移矩阵来表示。
70.步骤s104,基于所述旋转信息和所述平移信息,确定所述待估计对象的六维姿态。
71.在一些实施例中,述待估计对象的六维姿态(6-dimension,6d)包括相机坐标下的该待估计对象的每一采样点的三维位置和该采样点在三维相机空间的三维方向信息。待估计对象本身的坐标系可以看作是世界坐标系,也即得到待估计对象所在世界坐标系到相机坐标系的rt变换。
72.在一些可能的实现方式中,通过将该旋转信息中的四元数旋转矩阵与对应的采样点的齐次坐标进行相乘,从而得到该采样点的齐次坐标旋转后的三维向量;该三维向量即可表示该采样点在三维相机空间的姿态。通过将平移信息中的平移矩阵与对应的采样点的世界坐标进行相乘,得到该采样点的在相机坐标系的三维位置;将该采样点在在三维相机空间的姿态和三维位置进行结合,即可得到该采样点的6d姿态。
73.在本技术实施例中,对于获取的待估计对象的图像数据,首先,通过确定该待估计对象在图像数据中深度图像上的坐标关联信息;然后,将该坐标关联信息与图像数据相结合,来确定待估计对象从世界坐标系到相机坐标系的选择信息和平移信息;这样,能够在不破坏待估计对象的世界坐标与深度图像上的坐标之间的投影关系的情况下,采用同一神经网络处理包括深度图像和彩色图像的图像数据,使得进行6d姿态估计的网络更加简洁。最后,通过确定出的旋转信息和平移信息,即可确定待估计对象在相机坐标系的6d姿态;如此,既能够简化进行6d姿态估计的神经网络,还能够提高6d姿态估计的效率。
74.在一些实施例中,将图像数据和坐标关联信息进行融合,从而能够采用同一神经网络对图像数据中的rgb图像和深度图像进行处理,即上述步骤s103可以通过图2所述的步骤实现:
75.步骤s201,将所述图像数据和所述坐标关联信息进行融合,得到融合数据。
76.在一些实施例中,如果该坐标关联信息中可以是仅包括待估计对象上的任一采样点在深度图像上的二维坐标,将该二维坐标与图像数据进行拼接,得到融合数据。
77.该坐标关联信息还可以包括通过对该二维坐标进行反投影得到该采样点在相机坐标系中的横纵坐标值,将该二维坐标、横纵坐标值以及图像数据进行拼接,得到融合数据。
78.该坐标关联信息还可以包括对该二维坐标进行编码得到的编码信息,在拼接后的该二维坐标、横纵坐标值以及图像数据的基础上,融合该编码信息,得到融合数据。
79.在一些可能的实现方式中,通过在包括彩色图像和深度图像的图像数据中引入坐标关联信息,解决采用同一神经网络处理彩色图像和深度图像时存在的投影分解的问题,该坐标关联信息可以包括以下多种形式:
80.方式一:在所述深度图像所在平面的直角坐标系中,确定所述待估计对象的世界坐标投影至所述深度图像上的第一坐标。
81.这里,以该图像数据中深度图像所在的平面建立直角坐标系,比如,以该深度图像的某一顶点为原点,建立直角坐标系。对于待估计对象上的任一采样点,确定该采样点在世界坐标系上的世界坐标投影到该深度图像所在直角坐标系中的二维坐标,即得到该第一坐标(u,v)。深度图像上的第一坐标与图像数据具有相同的高度和宽度。第一坐标有两个通道,一个通道u存储u的坐标,另一个通道v存储v的坐标,即u通道中存储像素(u,v)处的值为u,v通道中存储像素(u,v)处的v。
82.方式二:对所述第一坐标进行坐标系转换,确定所述待估计对象在所述相机坐标系下的第二坐标。
83.这里,通过对待估计对象上所有采样点的第一坐标进行反投影,将深度图像所在坐标系下的二维坐标反投影至相机坐标系下,得到该相机坐标下的横纵坐标,即该第二坐标。该第二坐标为每一采样点对应的坐标。该第二坐标也有两个通道,该第二坐标与与图像数据具有相同的高度和宽度。
84.在一些可能的实现方式中,如果将第一坐标和第二坐标中的至少一个作为坐标关联信息,那么上述步骤s201可以通过以下过程实现:
85.在所述坐标关联信息包括所述第一坐标和所述第二坐标中至少之一的情况下,将所述第一坐标和所述第二坐标中的至少之一,和所述图像数据进行拼接,得到所述融合数据。
86.这里,如果坐标关联信息为第一坐标或第二坐标,那么将第一坐标或第二坐标按照图像数据的通道维度与该图像数据拼接在一起,得到该融合数据;这样,融合数据中包括图像数据和坐标关联信息中的第一坐标或第二坐标。
87.如果坐标关联信息为第一坐标和第二坐标,那么将该待估计对象中每一采样点对应的第一坐标、第二坐标以及该图像数据按照通道维度进行拼接,得到该融合数据。这样,融合数据中包括图像数据、第一坐标和第二坐标。如此,通过在坐标关联信息包括第一坐标和第二坐标中至少之一的情况下,将该关联信息与图像数据进行拼接,能够缓解由于卷积破坏深度图像中的坐标与世界坐标之间的映射关系。
88.方式三:采用预设三角函数对所述第一坐标进行编码,得到编码信息。
89.这里,通过transfomer的编码方式,将第一坐标用三角函数进行编码后添加到输入中。由于编码信息是多通道的,所以该编码信息能够和其他通道进行相加融合。
90.在一些可能的实现方式中,如果坐标关联信息为编码信息,那么上述步骤s201可以通过以下过程实现:
91.在所述坐标关联信息包括所述编码信息的情况下,将所述图像数据和所述编码信息进行逐元素相加,得到所述融合数据。
92.这里,如果坐标关联信息中包括该编码信息,那么将该编码信息与图像数据进行逐元素相加,即可得到该融合数据。
93.如果坐标关联信息中包括编码信息以及第一坐标和第二坐标中的至少之一,那么将第一坐标和第二坐标中的至少之一按照通道维度与图像数据拼接之后,将拼接的数据与该编码信息进行相加,得到该融合数据。如此,将编码信息与图像数据进行相加,能够增加融合数据的通道。
94.通过上述方式一至三,能够得到信息丰富的坐标关联信息,从而使得坐标关联信息与图像数据融合后的融合数据更加丰富。
95.步骤s202,基于所述融合数据,确定所述待估计对象从所述世界坐标系到所述相机坐标系的所述旋转信息和所述平移信息。
96.在一些实施例中,将坐标关联信息与图像数据进行融合后的融合数据作为六维姿态估计网络的输入,采用这样同一网络对融合数据中的彩色图像和深度图像进行处理,既不会因为网络中的卷积影响待估计对象的世界坐标与深度图像上的坐标之间的映射关系,还能够更加准确的预测待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息。
97.通过上述步骤s201和步骤s202,将待估计对象的彩色图像-深度图像与坐标关联信息相融合后,作为同一神经网络的输入,能够使得神经网络中的空间变换不会改变待估计对象的世界坐标与深度图像中二维坐标之间的映射关系,
98.在一些实施例中,通过将融合数据输入到同一六维姿态估计网络中,进行六维姿态的估计,该六维姿态估计网络包括基础子网络和旋转平移子网络,上述步骤s202可以通过以下步骤s221至s223(图示未示出)实现:
99.步骤s221,对所述融合数据进行特征提取,得到融合特征图。
100.在一些实施例中,采用所述基础子网络对所述融合数据进行特征提取,得到融合特征图。在采用该六维姿态估计网络对待待估计对象进行6d姿态估计时,该基础子网络中包括主干网络、区域生成网络(regionproposal network,rpn)以及检测子网络;其中,主干网络可以通过残差网络(resnet50)+特征金字塔网络(feature pyramid networks,fpn)实现,用于对图像数据进行特征提取,以及得到该图像数据的特征金字塔。区域生成网络用于对特征金字塔中每一尺寸的特征图进行候选框选取,以确定感兴趣区域;检测子网络用于在感兴趣区域进行对象检测,以输出检测框。这样,采用基础子网络中的主干网络进行特征提取,得到融合特征图,融合特征图为金字塔特征图,即融合特征图包括多个不同尺寸的特征图。
101.步骤s222,基于所述融合特征图对所述待估计对象进行检测,确定所述待估计对象的至少一个检测框。
102.在一些实施例中,可以采用基础子网络中的检测子网络(比如,bbox网络)基于融合特征图,确定图像数据中的感兴趣区域;通过对每一感兴趣区域进行对象检测,得到每一感兴趣区域中的检测框,从而得到至少一个检测框。
103.在一些实施例中,采用基础子网络中的区域生成网络,对包括多个不同尺寸的融合特征图中的待估计对象进行候选框选取,并通过对提取到的候选框进行感兴趣区域对齐,得到该感兴趣区域。如此,能够得到每一尺寸的融合特征图中的感兴趣区域,即得到多个感兴趣区域。
104.在一些实施例中,还可以通过转换器(transformer)模型基于融合特征图对待估计对象进行检测,确定待估计对象的至少一个检测框;这样,将融合特征图作为transformer模型的输入,能够实现对待估计对象的检测,从而输出待估计对象的检测框。
105.上述步骤s221和步骤s222首先,对融合数据进行特征提取以及特征金字塔网络的处理,得到融合特征图;然后,将得到的多个尺寸的融合特征图输入区域选取网络进行候选框的选取,以及对选取的候选框进行感兴趣区域对齐,得到感兴趣区域;最后,经过检测子网络对感兴趣区域进行对象检测。
106.步骤s223,对每一检测框进行处理,得到所述每一检测框中所述待估计对象的所述旋转信息和所述平移信息。
107.这里,采用旋转平移子网络对每一检测框进行处理,得到所述每一检测框中所述待估计对象的所述旋转信息和所述平移信息。旋转平移子网络用于确定待估计对象的空间旋转和三维平移。将上述步骤s222检测到的每一检测框均输入到旋转平移子网络中;采用旋转平移子网络对所述每一检测框对应的感兴趣区域进行处理,得到每一检测框中的待估计对象的旋转信息和平移信息,即确定出该待估计对象的空间旋转和三维位置。如此,通过采用六维姿态估计网络中的基础子网络和旋转平移子网络,能够更加准确地预测每一个检测框中的待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息,进而使估计到的待估计对象的6d姿态更加准确。
108.在一些可能的实现方式中,通过对图像数据中每个检测框进行处理,得到该待估计对象的旋转信息和平移信息,即上述步骤s223可以通过以下步骤实现:
109.第一步,对所述每一检测框进行至少一次的特征空间变换,得到第一变换特征。
110.在一些可能的实现方式中,上一次的特征空间变换的输出为下一次特征空间变换的输入。可以采用所述两个相连接的第一全连接层对所述每一检测框进行特征空间变换,得到第一变换特征。这样,相连接的第一全连接层中前一个第一全连接层实现了上一次的特征空间变换,后一个第一全连接层实现了下一次特征空间变换。
111.第二步,分别对所述第一变换特征进行不同空间维度的特征空间变换,得到所述旋转信息和所述平移信息。
112.在一些可能的实现方式中,采用所述第二全连接层和所述第三全连接层分别对所述第一变换特征进行不同空间维度的特征空间变换,得到所述旋转信息和所述平移信息。第二全连接层和第三全连接的输入维度相同,均为n;第二全连接层的输出维度为4,第三全连接的输出维度为3。分别将第一变换特征输入到第二全连接层和第三全连接层;通过第二全连接层对输入的多个第一变换特征进行加权求和,实现特征空间变换,得到维度为1
×
4的旋转矩阵,即旋转信息。这样,采用四元数表示该待估计对象的旋转,能够有效刻画待估计对象在空间的旋转。通过第三全连接层对输入的多个第一变换特征进行加权求和,实现特征空间变换,得到维度为1
×
3的平移矩阵,即平移信息,能够有效表示待估计对象的空间位置。如此,通过上述第一步和第二步,能够基于此准确估计待估计对象的6d姿态。
113.在一些实施例中,通过将待估计对象的深度图像和彩色图像进行拼接,得到该待估计对象的图像数据,即上述步骤s101可以通过以下步骤s111和s112(图示未示出)实现:
114.步骤s111,获取所述待估计对象的彩色图像和深度图像。
115.在一些实施例中,对于任一待估计对象,通过图像采集装置采集该待估计对象的
彩色图像以及深度图;或者,接收其他设备发送的待估计对象的彩色图像和深度图像。
116.步骤s112,将所述彩色图像和所述深度图像进行拼接,得到所述图像数据。
117.在一些实施例中,将彩色图像和深度图像按照图像通道维度进行拼接,得到图像数据。在一些可能的实现方式中,彩色图像可以是rgb图像,将rgb图像和深度图像按照图像通道维度拼接在一起,得到rgb-d图像数据。
118.通过上述步骤s111和s112,将深度图像和彩色图像按照通道维度进行拼接,使得到的图像数据中既包括待估计对象的二维彩色信息还包括该深度信息,进而通过将拼接后的图像数据输入到六维姿态估计网络中,便于通过同一网络对深度图像和彩色图像进行特征提取等处理。
119.本技术实施例提供一种六维姿态估计网络的训练方法,六维姿态估计网络是经过对待训练的六维姿态估计网络进行训练得到的,所述待训练的六维姿态估计网络包括:待训练的旋转平移子网络、待训练的世界坐标子网络和用于预测感兴趣区域的待训练的基础子网络,待训练的六维姿态估计网络的训练过程如图3所示,结合图3所示的步骤进行以下说明:
120.步骤s301,获取已标注六维姿态的样本对象的样本融合数据。
121.在一些实施例中,样本融合数据包括所述样本对象的训练图像数据和训练坐标关联信息。通过将所述训练图像数据和所述训练坐标关联信息进行融合,得到所述样本融合数据。
122.首先,获取包括已标注六维姿态的样本对象的训练图像数据。
123.这里,所述训练图像数据包括所述样本对象的彩色训练图像和深度训练图像。该样本对象可以是任一类型的对象,比如,物体、行人、车辆、树木或建筑物等;该训练图像数据的样本对象已标注六维姿态。通过将样本对象的彩色训练图像和深度训练图像按照通道维度拼接在一起,即可得到该训练图像数据。训练图像数据可以是样本对象的rgb-d图像数据。
124.然后,确定所述样本对象在所述训练图像数据中的深度训练图像上的训练坐标关联信息。
125.这里,该坐标关联信息用于表示样本对象的三维世界坐标投影到深度图像上的坐标信息,还可以表示样本对象的三维世界坐标与深度图像上的二维坐标之间的对应关系。这里,确定样本对象在深度训练图像上的训练坐标关联信息,与步骤s102中确定待估计对象在深度图像上的坐标关联信息的实现过程相同。即该训练坐标关联信息中至少包括以下一种:在所述深度训练图像所在平面的直角坐标系中,确定所述样本对象的世界坐标投影至所述深度训练图像上的二维坐标;对该二维坐标进行坐标系转换,确定所述样本对象在相机坐标系下的横纵坐标;以及,采用预设三角函数对所述深度训练图像上的二维坐标进行编码,得到编码信息。
126.步骤s302,采用所述待训练的基础子网络,对所述融合数据进行特征提取,得到样本融合特征图。
127.在一些实施例中,确定训练坐标关联信息之后,将训练坐标关联信息与训练图像数据进行组合,将组合后的数据输入到待训练的六维姿态估计网络中。所述待训练的六维姿态估计网络至少包括:待训练的旋转平移子网络和用于预测感兴趣区域的待训练的基础
子网络。
128.将训练图像数据和训练坐标关联信息组合之后,输入到待训练的基础子网络中;该待训练的基础子网络包括主干网络、检测子网络和掩模子网络。通过采用该基础子网络实现对训练图像数据和训练坐标关联信息的对象检测和实例分割,这样,基础损失包括检测损失和实例分割的损失。通过主干网络对训练图像数据和训练坐标关联信息进行特征提取,得到样本融合特征图。
129.步骤s303,采用所述待训练的旋转平移子网络基于所述样本融合特征图,确定所述样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息。
130.在一些实施例中,通过采用所述待训练的基础子网络,确定所述样本融合数据中的预测感兴趣区域;并采用所述待训练的旋转平移子网络基于所述预测感兴趣区域,确定所述样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息。确定感兴趣区域之后,采用检测子网络对感兴趣区域进行对象检测,得到多个检测框,并确定每一检测框的损失;采用实例分割子网络基于检测框进行实例分割,得到实例分割的损失。
131.通过待训练的旋转平移子网络基于每一尺寸的预测感兴趣区域,预测样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息。预测旋转信息表示预测的样本对象的在相机坐标系下的旋转,预测平移信息表示预测的样本对象在相机坐标下的空间位置。
132.步骤s304,基于所述预测旋转信息和所述预测平移信息,以及,所述样本对象的真实旋转信息和真实平移信息,确定第一损失。
133.在一些实施例中,通过将预测旋转信息和预测平移信息,与该样本对象的真实旋转信息和真实平移信息之间的差值,确定采用待训练的旋转平移子网络预测样本对象的预测旋转信息和预测平移信息的损失,即第一损失。
134.在一些可能的实现方式中,通过分析预测六维姿态和真实六维姿态之间的差,确定第一损失,即上述步骤s304可以通过以下步骤s341至s343(图示未示出)实现:
135.步骤s341,将所述样本对象上任一点的所述预测旋转信息和所述预测平移信息进行融合,得到预测六维姿态。
136.这里,样本对象上任一点,可以是样本对象上的任一像素点。先将该点的特征信息与预测旋转信息进行逐元素相乘,再将相乘结果与预测平移信息进行逐元素求和,得到该预测六维姿态。
137.步骤s342,将所述任一点的所述真实旋转信息和所述真实平移信息进行融合,得到真实六维姿态。
138.这里,将该点的特征信息与该点的真实旋转信息进行逐元素相乘,再将相乘结果与真实平移信息进行逐元素求和,得到该真实六维姿态。
139.步骤s343,基于所述预测六维姿态和所述真实六维姿态,确定所述第一损失。
140.这里,确定样本对象中每一点的预测六维姿态和真实六维姿态的差值,并确定多个点的差值平均值作为该第一损失。
141.上述步骤s341至s343,通过分析待估计对象中每一采样点的预测六维姿态和真实六维姿态之间的差值,能够有效确定旋转平移子网络预测旋转信息和平移信息的损失。
142.步骤s305,至少基于所述第一损失和预测感兴趣区域的基础损失,对所述待训练
的六维姿态估计网络的网络参数进行调整,以使调整后的六维姿态估计网络输出的损失满足收敛条件。
143.这里,基于第一损失和待训练的基础子网络确定的预测感兴趣区域的基础损失,确定总损失;通过总损失对待训练的六维姿态估计网络的网络参数进行调整,使得调整后的六维姿态估计网络输出的损失满足收敛条件。该收敛条件可以是调整后的六维姿态估计网络输出的损失的值收敛。
144.在本技术实施例中,在待训练的六维姿态网络的训练过程中,通过将坐标关联信息添加至包括彩色训练图像和深度训练图像的训练图像数据中,使得该待训练的六维姿态网络能够同时对彩色训练图像和深度训练图像进行特征提取;并且在主干网络的基础上添加旋转平移子网络预测样本对象的旋转信息和平移信息,简化了网络结构,这样采用一个卷积神经网络实现了端到端的训练,达到精度和速度之间的良好平衡。
145.在一些实施例中,通过将样本融合数据输入到同一待训练的六维姿态估计网络中,进行六维姿态的估计,该待训练的六维姿态估计网络包括待训练的基础子网络和待训练的旋转平移子网络,上述步骤s303可以通过以下步骤s331和s332(图示未示出)实现:
146.步骤s331,采用所述待训练的旋转平移子网络基于所述样本融合特征图,对所述样本对象进行检测,确定所述样本对象的至少一个检测框。
147.步骤s332,采用所述待训练的旋转平移子网络对所述每一检测框进行处理,得到所述每一检测框中所述样本对象的所述预测旋转信息和所述预测平移信息。
148.上述步骤s331和步骤s332的实现过程与上述步骤s222和步骤s223的实现过程类似,即可以通过步骤s222和步骤s223的实现过程实现上述步骤s331和步骤s332,这样,在训练的过程中通过引入基础子网络和旋转平移子网络,能够更加准确地预测每一个检测框中的样本对象从世界坐标系到相机坐标系的旋转信息和平移信息,进而使估计到的样本对象的6d姿态更加准确。
149.在一些可能的实现方式中,通过对样本图像数据中每个检测框进行处理,得到该样本对象的预测旋转信息和预测平移信息,即上述步骤s332可以通过以下步骤实现:
150.第一步,采用所述两个相连接的第一全连接层对所述每一检测框进行特征空间变换,得到第一变换样本特征。
151.在一些实施例中,其中,待训练的旋转平移子网络包括:两个相连接的第一全连接层、第二全连接层和第三全连接层;其中,两个相连接的第一全连接层的输入输出维度均为n,前一个第一全连接层的输出为后一个第一全连接层的输入。将所有感兴趣区域中的检测框输入到两个相连接的第一全连接层中的前一个第一全连接层,采用该第一全连接层对所有的检测框进行加权求和,将每一检测框从低维度的特征空间转换到高维度的特征空间,实现特征空间变换,得到加权求和的结果;将该加权求和结果输入到后一个第一全连接层,再次进行加权求和,得到第一变换样本特征。
152.第二步,采用所述第二全连接层和所述第三全连接层分别对所述第一变换样本特征进行特征空间变换,得到所述预测旋转信息和所述预测平移信息。
153.这样,通过待训练的旋转平移子网络中两个共享的全连接层和两个独立的全连接层以获得旋转信息和三维的平移信息,进而能够基于此准确估计样本对象的6d姿态。
154.在一些实施例中,为进一步提高该待训练的六维姿态网络的精度,在该待训练的
六维姿态网络中添加辅助预测对象的三维坐标的子网络,即世界坐标子网络,这样待训练的六维姿态网络的训练过程还包括以下步骤s307至s309(图示未示出):
155.步骤s307,采用所述待训练的世界坐标子网络,基于所述预测感兴趣区域,确定所述样本对象在所述世界坐标系中的预测世界坐标。
156.这里,通过将训练图像数据和所述训练坐标关联信息作为输入数据,输入到待训练的基础子网络中,通过该基础子网络对输入数据进行特征金字塔处理,候选框选取,以及感兴趣区域对齐等,得到基础子网络输出的感兴趣区域。将该感兴趣区域输入到待训练的世界坐标子网络中,预测该样本对象在世界坐标系中的坐标,得到预测世界坐标。
157.步骤s308,基于所述预测世界坐标和所述样本对象的真实世界坐标,确定第二损失。
158.这里,将预测世界坐标和样本对象的真实世界坐标中在每一坐标维度上的差值,作为第二损失。
159.在一些可能的实现方式中,通过对每一维度上的预测坐标和真实坐标进行比对,以确定第二损失,即上述步骤s308可以通过以下步骤s381和s382(图示未示出)实现:
160.步骤s381,确定所述所述预测世界坐标和所述真实世界坐标在每一坐标维度上的差值。
161.比如,预测世界坐标为三维的(x,y,z),那么确定坐标在横轴、纵轴和z轴上的差值。
162.步骤s382,将多个坐标维度上的差值进行融合,得到所述第二损失。
163.这里,将多个坐标维度上的差值与权值相乘之后,进行逐元素求和,得到该第二损失。如此,通过确定每一坐标维度上的预测世界坐标和真实世界坐标之间的差值能够得到更加准确的第二损失,而且能够在训练待训练的六维姿态估计网络的过程中起到辅助作用。
164.在确定第二损失之后,上述步骤s305可以通过以下步骤s309实现:
165.步骤s309,基于所述第一损失、所述第二损失和所述基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整。
166.这里,将第一损失、第二损失和基础损失与对应的权重相乘后,逐元素求和,得到总损失;比如,首先,采用不同的调整参数,分别对所述第一损失、所述第二损失和所述基础损失进行调整,得到已调整第一损失、已调整第二损失和已调整基础损失;然后,将所述已调整第一损失、所述已调整第二损失和所述已调整基础网络损失进行融合,得到总损失;最后,基于所述总损失对所述待训练的六维姿态估计网络的网络参数进行调整。
167.通过上述步骤s307至s309,在训练的六维姿态网络中引入三维坐标的子网络,以辅助该网络预测对象的三维坐标,能够提高对训练的六维姿态网络进行训练的效率,使得训练好的六维姿态网络的鲁棒性更强。
168.在一些可能的实现方式中,检测子网络和掩模子网络的损失即为基础损失,可以通过以下过程确定基础损失:
169.第一步,采用所述待训练的基础子网络中的检测子网络,确定在所述预测感兴趣区域中对所述样本对象进行对象检测的第三损失。
170.这里,将待训练的基础子网络中的主干网络确定出的融合数据的预测感兴趣区域
输入检测子网络。该检测子网络对每一感兴趣区域进行对象检测,输出检测框,并确定每一检测框与样本对象的真实检测框之间的差值,得到第三损失。
171.第二步,采用所述待训练的基础子网络中的掩模子网络,基于所述预测感兴趣区域确定对所述样本对象进行实例分割的第四损失。
172.这里,将待训练的基础子网络中的主干网络确定出的融合数据的预测感兴趣区域输入掩模子网络。掩模子网络基于输入的感兴趣区域,对融合数据中的样本对象进行实例分割;并基于实例分割的预测结果和样本对象的真实分割结果,确定第四损失。
173.第三步,基于所述第三损失和所述第四损失,得到所述基础损失。
174.这里,通过将不同的权重分别赋予第三损失和第四损失,得到基础损失。
175.通过上述第一步至第三步,将对象检测的第三损失和实例分割的第四损失作为待训练的基础子网络的基础损失,能够在训练待训练的六维姿态估计网络的过程中充分考虑到对象检测和实例分割,从而使得已训练的六维姿态估计网络中的基础子网络的性能较高。
176.下面,将说明本技术实施例在一个实际的应用场景中的示例性应用,以采用使用同一神经网络处理彩色图像和深度图像进行六维姿态估计为例,进行说明。
177.本技术实施例提供一种六维姿态估计方法,首先,将图像的坐标信息加入神经网络输入。然后,在mask rcnn基础上加入物体的位移和旋转子网络(比如,rt子网络)和物体的世界坐标子网络(比如,abc子网络),进行多任务联合训练。最后,在原有损失的基础上,加入abc损失和rt损失,对卷积神经网络进行训练。采用训练后的网络对输入的图像进行六维姿态估计,得到该图像中对象的六维姿态。
178.在一些实施例中,六维姿态估计在新兴应用中发挥着重要作用,例如,自动驾驶、智能机器人抓取和增强现实。rgb-d传感器能够提供物理三维世界的表面纹理和几何形状。在相关技术中,通过使用不同的主干网络来解释这两种类型的数据的异质性。本技术实施例经过研究发现不能使用单个主干来提取特征的根本原因隐藏在3d视觉投影方程中,如公式(1)所示:
[0179][0180]
在公式(1)中,描述三维对象上的任一点(a,b,c),首先,由旋转矩阵r∈so3旋转并由t∈r3平移到相机坐标系中的位置(x,y,d);然后,将该点投影到具有相机固有矩阵k的图像平面中(u,v)处的像素。从相机视角看到的3d模型中可见点的3d结构由每个像素的深度值(d)及其在深度图像中的坐标(u,v)保留。这意味着单通道深度图像中的每个像素值都链接到该像素的内置坐标。通常(u,v)可用于保留3d结构,更改(u,v)会破坏3d投影方程。然而,卷积算子中的池化、裁剪、感兴趣区域的划分以及数据增强中的调整大小、裁剪和翻转等空间变换,改变了cnn框架中的(u,v)。如图4所示,图4为本技术实施例提供的彩色图像与深度图像的投影示意图,从图4可以看出,由roi变换引起的投影故障,包括裁剪、调整大小和感兴趣区域对齐(roi-align);其中,虚线41连接3d对象42(比如,待估计对象)及其在二维图像平面45(在该平面中横轴表示为u,纵轴表示为v)下的深度图像44中的投影roi 43。roi 43中的任何像素(d,u,v)及其在3d对象42上的对应点(a,b,c)都遵循投影方程。如果
roi-align修改了内置坐标(u,v),则上述公式(1)不再成立,即roi 43被移动到深度图像44的左上角一样。
[0181]
经过这些空间变换处理,深度图像与3d对象之间不能满足投影方程,即“投影分解”。因此,相关技术中cnn框架难以同时处理rgb图像和深度图像。
[0182]
在本技术实施例中,提出了一种简单而有效的方法来解决“投影分解问题”:将uv数据(对应于上述实施例中的坐标关联信息)连同图像数据一起提供给二维的cnn。将图像数据和uv数据相结合作为3d数据,并并将深度值d与其在图像平面中的内置坐标解耦。如此,对于每个像素的像素的值(d,u,v),投影方程在空间变换后仍然成立。因此,可以使用cnn框架从rgb-d图像中提取特征。
[0183]
公式(1)还表明网络应该将rgb-d图像中的可见点映射到,这些可见点在3d对象中的原始坐标。为了实现准确、实时和实用的网络架构,本技术实施例提出了一种端到端的六维姿态估计网络,使用统一的主干网络从基于掩模区域卷积神经网络(mask region-cnn,掩模r-cnn)的rgb-d图像中提取特征。掩模r-cnn使用并行多子网络执行对象检测和实例分割。在此基础上,增加了一个rt子网络(对应于上述实施例中旋转平移子网络)直接预测旋转矩阵r和平移向量t,以及采用abc子网络进行彩色图像上任一点的映射。
[0184]
在一些实施例中,在实现六维姿态估计的过程中,需要进行对象检测和实例分割。在本技术实施例中,使用掩模r-cnn作为基本网络,六维姿态估计网络采用掩模rcnn的基本网络结构。在解决了投影分解问题后,即可实现使用一个主干网络提取两个异构数据的数据特征。同时,在掩模r-cnn的基础上,加入了rt子网络和abc子网络的并行回归任务。rt子网络用于预测六维姿态,并采用abc子网络来引导主干网络将可见点映射到该可见点对应的3d模型。如图5所示,图5为本技术实施例提供的六维姿态估计方法的网络架构示意图,从图5可以看出,输入数据501包括:rgb图像、深度图像、普通uv(对应于上述实施例中的第一坐标)、xy(即,通过公式(1)将每个像素的相应普通uv坐标反投影计算出的坐标值,对应于上述实施例中的第二坐标)、深度法向量以及编码信息(pe);首先,将这些数据输入到残差网络resnet主干网络+fpn502进行特征提取,以及基于提取的特征确定特征金字塔,得到多种尺寸的特征图;其次,采用rpn503在特征图中提取多个候选框,通过对提取的候选框进行感兴趣区域对齐,得到多个感兴趣区域504;最后,采用bbox子网络505基于感兴趣区域504进行对象检测和分类,得到输出结果51;采用掩模子网络506基于感兴趣区域504进行对象分割,得到输出结果52;采用rt子网络507基于感兴趣区域504进行六维姿态估计,得到输出结果53,输出结果53包括对象的旋转矩阵和平移矩阵;采用abc子网络508基于感兴趣区域504预测对象的三维坐标,得到输出结果54。
[0185]
为解决投影分解的问题,将坐标关联信息添加到输入的rgb-d数据中,并将坐标关联信息和rgb-d数据共同输入到统一的主干网络中。对于rgb-d数据,沿通道维度将rgb图像和相应的深度图像组合起来。
[0186]
对于坐标关联信息中的第二坐标,可以根据给定的相机内参矩阵和深度图像,将第一坐标通过公式(1)将每个像素的相应第一坐标(u,v)编码为反投影第二坐标,即xy(x,y)。其中,xy也是两个通道,引入方式也是和对应的输入在通道上进行拼接,即沿通道维度将xy与rgb-d数据连接起来。
[0187]
总的来说,上述三种形式的坐标关联信息各有优势。第一坐标更直接,第二坐标xy
隐藏内部参考信息,编码信息可以添加到其他输入通道,以和其他通道进行相加融合,从而多个坐标关联信息齐心协力,互相完成,得到最好的网络性能。将三种坐标关联信息一起使用,能够极大的缓解卷积破坏(d,u,v)和坐标(a,b,c)之间的映射关系。
[0188]
在本技术实施例中采用rt子网络和abc子网络来预测r矩阵、t矩阵和3d模型的世界坐标点,其中,r是四元数形式的旋转矩阵,t∈r3是平移矩阵。这些子网络作为两个新的并行分支网络添加到掩模r-cnn中,并将通过感兴趣区域对齐提取的所有候选框的特征作为输入。如图6所示,图6为本技术实施例提供的子网络的架构图示意图,从6可以看出,将14
×
14
×
256的roi 60输入rt子网络601;rt子网络601与掩模r-cnn中的边界框(bbox)子网络具有相似的结构,包含两个共享层和两个独立的全连接层(比如,fc 61至fc64,其中,fc 61和fc 62的输入输出维度均为n,fc 63的输入维度为n,输出维度为4,fc 64的输入维度为n,输出维度为3)以获得1
×
4的r矩阵602和1
×
3的t矩阵603。将14
×
14
×
256的roi 60输入到abc子网络604;abc子网络604和掩模子网络类似,是一个全卷积神经网络(fully convolutional network,fcn)结构,包括4个3
×
3的卷积层(比如,卷积层65至68)和1个1
×
1的卷积层67来输出14
×
14
×
3的三维坐标点69(abc)。
[0189]
除了原始掩模r-cnn中的分类、检测和分割损失函数外,还有两个新的rt子网络和abc子网络的损失函数。rt头损失l
rt
的公式如公式(2)所示:
[0190][0191]
其中,o是从对象的3d模型中采样的关键点集,m表示该关键点集中顶点的数量。x表示该关键点集中的任一点,r是预测的旋转矩阵,t是预测的平移向量。r*是真实的旋转矩阵,t*是真实的平移向量。abc子网络的损失如公式(3)所示:
[0192]
l
abc
=|a-a*|+|b-b*|+|c-c*|
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3);
[0193]
其中,(a,b,c)表示像素点的坐标。因此,整体损失函数为:
[0194]
l=λ0+λ1l
abc
+λ2l
mask
+λ3(l
bbox
+l
cls
)+λ4l
rpn
ꢀꢀꢀꢀꢀꢀ
(4);
[0195]
其中,λ0,λ1,λ2,λ3,λ4表示每一损失的权重。
[0196]
在本技术实施例中不使用额外耗时的后处理,而是从rt网络输出估计结果。如此,从rt网络直接输出估计结果以实现姿态估计,显著提高了网络架构的推理效率和实用性。
[0197]
在本技术实施例中,在三维坐标的回归任务中添加一个轻量级的abc子网络来为辅助模型训练引入辅助损失。在推理过程中,将六维姿态估计网络中的abc子网络被移除,直接从rt子网络获得六维姿态估计结果。如此,显著提高了推理效率并降低了工程实现的难度。如图7所示,图7为本技术实施例提供的六维姿态估计方法的应用场景示意图,上面701至705为待估计对象之间存在遮挡的真值图像,下面711至715为采用本技术实施例提供的六维姿态估计网络得到的待估计对象的六维姿态;其中,估计的六维姿态711为对图像701进行姿态估计得到的,六维姿态711为对图像701进行姿态估计得到的,六维姿态712为对图像702进行姿态估计得到的,六维姿态713为对图像703进行姿态估计得到的,六维姿态714为对图像704进行姿态估计得到的,六维姿态715为对图像705进行姿态估计得到的。从六维姿态711至715可以看出,即使输入的图像中各个对象之间存在不同程度的遮挡,仍能够有效估计图像中各个对象的六维姿态。
[0198]
在本技术实施例中,揭示了隐藏在基于cnn的深度图像处理之下的“投影分解”问
题,通过将uv数据与深度数据一起显式地提供给主干网络来修复投影故障。因此,从rgb-d图像中提取特征只需要一个通用的二维cnn主干网络。基于此,提出了一种基于掩模r-cnn框架的端到端六维姿态估计框架。
[0199]
在该网络框架中,采用resnet和fpn作为主干网络从rgb-d图像中提取特征,不再需要特征融合。从rt子网络获得六维姿态估计结果,具有简单的推理过程,无需耗时的后处理。而且将abc子网络添加到网络框架中作为训练网络的辅助任务。如此,在提高时间效率的同时还能够达到更好的性能和更好的鲁棒性。
[0200]
本技术实施例提供一种六维姿态估计装置,图8为本技术实施例提供的六维姿态估计装置的结构组成示意图,如图8所示,所述六维姿态估计装置800包括:
[0201]
第一获取模块801,用于获取包括待估计对象的图像数据;
[0202]
第一确定模块802,用于确定所述待估计对象在所述图像数据中深度图像上的坐标关联信息;
[0203]
第二确定模块803,用于基于所述图像数据和所述坐标关联信息,确定所述待估计对象从世界坐标系到相机坐标系的旋转信息和平移信息;
[0204]
第三确定模块804,用于基于所述旋转信息和所述平移信息,确定所述待估计对象在所述相机坐标系的六维姿态。
[0205]
在一些实施例中,所述第二确定模块803,包括:
[0206]
第一融合子模块,用于将所述图像数据和所述坐标关联信息进行融合,得到融合数据;
[0207]
第一确定子模块,用于基于所述融合数据,确定所述待估计对象从所述世界坐标系到所述相机坐标系的所述旋转信息和所述平移信息。
[0208]
在一些实施例中,所述第一确定子模块,包括:
[0209]
第一提取单元,用于对所述融合数据进行特征提取,得到融合特征图;
[0210]
第一确定单元,用于基于所述融合特征图,确定所述图像数据中的感兴趣区域;
[0211]
第二确定单元,用于基于所述感兴趣区域对所述待估计对象进行检测,确定所述待估计对象的至少一个检测框;
[0212]
第一处理单元,用于对所述每一检测框进行处理,得到所述每一检测框中所述待估计对象的所述旋转信息和所述平移信息。
[0213]
在一些实施例中,所述第一处理单元,包括:
[0214]
第一变换子单元,用于对所述每一检测框进行至少一次的特征空间变换,得到第一变换特征;其中,上一次的特征空间变换的输出为下一次特征空间变换的输入;
[0215]
第二变换子单元,用于分别对所述第一变换特征进行不同空间维度的特征空间变换,得到所述旋转信息和所述平移信息。
[0216]
在一些实施例中,所述第一确定模块802,包括:
[0217]
第二确定子模块,用于在所述深度图像所在平面的直角坐标系中,确定所述待估计对象的世界坐标投影至所述深度图像上的第一坐标;
[0218]
第三确定子模块,用于对所述第一坐标进行坐标系转换,确定所述待估计对象在所述相机坐标系下的第二坐标;
[0219]
第一编码子模块,用于采用预设三角函数对所述第一坐标进行编码,得到编码信
息;
[0220]
第四确定子模块,用于将所述第一坐标、所述第二坐标和所述编码信息中的至少之一,确定为所述坐标关联信息。
[0221]
在一些实施例中,所述第一融合子模块,还用于:
[0222]
在所述坐标关联信息包括所述第一坐标和所述第二坐标中至少之一的情况下,将所述第一坐标和所述第二坐标中的至少之一,和所述图像数据进行拼接,得到所述融合数据。
[0223]
在一些实施例中,所述第一融合子模块,还用于:
[0224]
在所述坐标关联信息包括所述编码信息的情况下,将所述图像数据和所述编码信息进行逐元素相加,得到所述融合数据。
[0225]
在一些实施例中,所述第一获取模块801,包括:
[0226]
第一获取子模块,用于获取所述待估计对象的彩色图像和深度图像;
[0227]
第一拼接子模块,用于将所述彩色图像和所述深度图像进行拼接,得到所述图像数据。
[0228]
本技术实施例提供一种述六维姿态估计网络的训练装置,图9为本技术实施例提供的六维姿态估计网络的训练装置的结构组成示意图,如图9所示,所述六维姿态估计网络的训练装置900,包括:
[0229]
第二获取模块901,用于获取已标注六维姿态的样本对象的样本融合数据;其中,所述样本融合数据包括所述样本对象的训练图像数据和训练坐标关联信息;
[0230]
第一特征提取模块902,用于采用所述待训练的基础子网络,对所述融合数据进行特征提取,得到样本融合特征图;
[0231]
第一预测模块903,用于采用所述待训练的旋转平移子网络基于所述样本融合特征图,确定所述样本对象从世界坐标系到相机坐标系的预测旋转信息和预测平移信息;
[0232]
第四确定模块904,用于基于所述预测旋转信息和所述预测平移信息,以及,所述样本对象的真实旋转信息和真实平移信息,确定第一损失;
[0233]
第一调整模块905,用于至少基于所述第一损失和所述预测感兴趣区域的基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整,以使调整后的六维姿态估计网络输出的损失满足收敛条件。
[0234]
在一些实施例中,所述第二获取模块901,还用于:
[0235]
将所述训练图像数据和所述训练坐标关联信息进行融合,得到所述样本融合数据。
[0236]
在一些实施例中,所述第一预测模块903,包括:
[0237]
第一检测子模块,用于采用所述待训练的旋转平移子网络基于所述样本融合特征图,对所述样本对象进行检测,确定所述样本对象的至少一个检测框;
[0238]
第一处理子模块,用于采用所述待训练的旋转平移子网络对所述每一检测框进行处理,得到所述每一检测框中所述样本对象的所述预测旋转信息和所述预测平移信息。
[0239]
在一些实施例中,所述待训练的旋转平移子网络包括:两个相连接的第一全连接层、第二全连接层和第三全连接层,所述第一处理子模块,包括:
[0240]
第一变换单元,用于采用所述两个相连接的第一全连接层对所述每一检测框进行
特征空间变换,得到第一变换样本特征;
[0241]
第二变换单元,用于采用所述第二全连接层和所述第三全连接层分别对所述第一变换样本特征进行特征空间变换,得到所述预测旋转信息和所述预测平移信息。
[0242]
在一些实施例中,所述待训练的六维姿态估计网络还包括世界坐标子网络,所述装置还包括:
[0243]
第五确定模块,用于采用所述待训练的世界坐标子网络,基于所述预测感兴趣区域,确定所述样本对象在所述世界坐标系中的预测世界坐标;
[0244]
第六确定模块,用于基于所述预测世界坐标和所述样本对象的真实世界坐标,确定第二损失;
[0245]
所述第一调整模块905,还用于:
[0246]
基于所述第一损失、所述第二损失和所述基础损失,对所述待训练的六维姿态估计网络的网络参数进行调整。
[0247]
在一些实施例中,所述第四确定模块904,包括:
[0248]
第二融合子模块,用于将所述样本对象上任一点的所述预测旋转信息和所述预测平移信息进行融合,得到预测六维姿态;
[0249]
第三融合子模块,用于将所述任一点的所述真实旋转信息和所述真实平移信息进行融合,得到真实六维姿态;
[0250]
第七确定子模块,用于基于所述预测六维姿态和所述真实六维姿态,确定所述第一损失。
[0251]
在一些实施例中,所述第六确定模块,包括:
[0252]
第八确定子模块,用于确定所述所述预测世界坐标和所述真实世界坐标在每一坐标维度上的差值;
[0253]
第四融合子模块,用于将多个坐标维度上的差值进行融合,得到所述第二损失。
[0254]
在一些实施例中,所述装置还包括:
[0255]
第七确定模块,用于采用所述待训练的基础子网络中的检测子网络,确定在所述预测感兴趣区域中对所述样本对象进行检测的第三损失;
[0256]
第八确定模块,用于采用所述待训练的基础子网络中的掩模子网络,基于所述预测感兴趣区域确定对所述样本对象进行实例分割的第四损失;
[0257]
第九确定模块,用于基于所述第三损失和所述第四损失,得到所述基础损失。
[0258]
需要说明的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0259]
需要说明的是,本技术实施例中,如果以软件功能模块的形式实现上述的姿态估计网络的训练方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是终端、服务器等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、运动硬盘、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本技术实施例不限制于任何特
定的硬件和软件结合。
[0260]
对应地,本技术实施例再提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,该计算机可执行指令被执行后,能够实现本技术实施例提供的六维姿态估计方法中的步骤。
[0261]
相应的,本技术实施例再提供一种计算机存储介质,所述计算机存储介质上存储有计算机可执行指令,所述该计算机可执行指令被处理器执行时实现上述实施例提供的六维姿态估计方法的步骤。
[0262]
相应的,本技术实施例提供一种计算机设备,图10为本技术实施例计算机设备的组成结构示意图,如图10所示,所述计算机设备1000包括:一个处理器1001、至少一个通信总线、通信接口1002、至少一个外部通信接口和存储器1003。其中,通信接口1002配置为实现这些组件之间的连接通信。其中,通信接口1002可以包括显示屏,外部通信接口可以包括标准的有线接口和无线接口。其中所述处理器1001,配置为执行存储器中图像处理程序,以实现上述实施例提供的六维姿态估计方法的步骤。
[0263]
以上六维姿态估计装置、计算机设备和存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同相应方法实施例相似的技术描述和有益效果,限于篇幅,可案件上述方法实施例的记载,故在此不再赘述。对于本技术六维姿态估计装置、计算机设备和存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0264]
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列特征的过程、方法、物品或者装置不仅包括那些特征,而且还包括没有明确列出的其他特征,或者是还包括为这种过程、方法、物品或者装置所固有的特征。在没有更多限制的情况下,由语句“包括一个
……”
限定的特征,并不排除在包括该特征的过程、方法、物品或者装置中还存在另外的相同特征。
[0265]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0266]
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本技术各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别
单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(read only memory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。
[0267]
或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。