三维特征嵌入的图像对象部件级语义分割方法与装置转让专利

申请号 : CN201710818219.6

文献号 : CN107730503B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈小武李甲宋亚斐赵一凡赵沁平

申请人 : 北京航空航天大学

摘要 :

本发明实施例提供一种三维特征嵌入的图像对象部件级语义分割方法与装置,所述方法包括:获取目标二维图像的三维特征信息;根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割。本申请的技术方案,在对图像进行部件级语义分割时,不仅考虑了图像的二维特征信息,同时考虑了图像的三维特征信息,进而提高了图像部件级语义分割的准确性。

权利要求 :

1.一种三维特征嵌入的图像对象部件级语义分割方法,其特征在于,包括:获取目标二维图像的三维特征信息;

根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割;

获取目标二维图像的三维特征信息,具体包括:

获取三维模型库中各三维模型对应的二维图像和所述各三维模型对应的三维体素模型;

将各三维体素模型作为第一神经网络模型的输入,将所述各三维模型对应的三维特征作为所述第一神经网络模型的理想输出,对所述第一神经网络模型进行训练;

将各二维图像作为第二神经网络模型的输入,将训练好的所述第一神经网络模型的每层输出作为所述第二神经网络模型对应层的理想输出,对所述第二神经网络模型进行训练;

向训练好的所述第二神经网络模型中输入所述目标二维图像,获得所述目标二维图像的三维特征信息。

2.根据权利要求1所述的方法,其特征在于,所述第一神经网络模型和所述第二神经网络模型均为基于二维卷积的神经网络模型。

3.根据权利要求2所述的方法,其特征在于,所述将各三维体素模型作为第一神经网络模型的输入之前,所述方法还包括:基于残差网络和有洞卷积设计所述第一神经网络模型;

所述将各二维图像作为第二神经网络模型的输入之前,所述方法还包括:根据所述第一神经网络模型设计所述第二神经网络模型,所述第二神经网络模型逼近所述第一神经网络模型。

4.根据权利要求3所述的方法,其特征在于,所述将各三维体素模型作为第一神经网络模型的输入,具体包括:在所述三维体素模型的深度方向上对所述三维体素模型进分割,获得不同深度方向上的二维体素图像,将各二维体素图像作为所述第一神经网络模型的输入。

5.根据权利要求1所述的方法,其特征在于,所述获取三维模型库中各三维模型对应的二维图像和所述各三维模型对应的三维体素模型,具体包括:根据透视投影法,获得所述各三维模型对应的二维图像;

根据三维透视体素化法,获得所述各三维模型对应的三维体素模型;其中,所述三维透视体素化法包括:当所述三维模型对应的体素在所述三维模型内部或者与所述三维模型表面相交时,将所述体素设置为1,否则将所述体素设置为0。

6.根据权利要求1-5任一项所述的方法,其特征在于,所述将各三维体素模型作为第一神经网络模型的输入之前,所述方法还包括:对所述各三维体素模型进行压缩,将压缩后的所述各三维体素模型输出所述第一神经网络模型中。

7.根据权利要求1所述的方法,其特征在于,训练好的所述第一神经网络模型的每层输出与所述第二神经网络模型的对应层输出满足均方差损失。

8.根据权利要求3所述的方法,其特征在于,所述第一神经网络模型包括n个完全预激活单元;

所述第二神经网络模型包括一个卷积层、一个规范层、一个激活函数层、一个最大池化层和m个完全预激活单元,所述n大于所述m,所述n和所述m均为大于等于1的正整数。

9.一种图像对象部件级语义分割装置,其特征在于,包括:获取模块,用于获取目标二维图像的三维特征信息;

处理模块,用于根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割;

所述获取模块包括:获取单元、第一训练单元和第二训练单元;

所述获取单元,用于获取三维模型库中各三维模型对应的二维图像和所述各三维模型对应的三维体素模型;

所述第一训练单元,用于将各三维体素模型作为第一神经网络模型的输入,将所述各三维模型对应的三维特征作为所述第一神经网络模型的理想输出,对所述第一神经网络模型进行训练;

所述第二训练单元,用于将各二维图像作为第二神经网络模型的输入,并将所述第一训练单元训练好的所述第一神经网络模型的每层输出作为所述第二神经网络模型对应层的理想输出,对所述第二神经网络模型进行训练;

所述获取单元,还用于向训练好的所述第二神经网络模型中输入所述目标二维图像,获得所述目标二维图像的三维特征信息。

说明书 :

三维特征嵌入的图像对象部件级语义分割方法与装置

技术领域

[0001] 本发明实施例涉及图像处理技术,尤其涉及一种三维特征嵌入的图像对象部件级语义分割方法与装置。

背景技术

[0002] 对象部件语义信息对于很多视觉任务非常有用,例如类别之间差异很细微时的图像分类、细粒度的动作检测等。同时,对于很多涉及到交互的机器人任务来说,部件语义信息也必不可少。比如当一个机器人需要打开引擎盖修理汽车时,引擎盖需要能够被正确的识别出来,当一个机器人需要坐在椅子上时,椅子面要正确的识别出来。总而言之,部件语义信息对能够被用于完成很多视觉相关的任务。
[0003] 目前的图像对象部件级语义分割方法,通常具有三个步骤:1)对于每个像素点,提取其特征;2)在提取的特征的基础上,通过分类器或者其它模型获得每个像素的属于各个语义类别标签的初始概率分布;3)构建条件随机场或者马尔科夫随机场对初始概率分布进行优化,得到每个像素点最终的语义类别信息。
[0004] 但是,在图像拍摄过程中,当光照条件、对象和相机的相对位姿或角度不同时,或者对于同一类对象,当对象的表面材质、纹理属性等不同时,现有的图像对象部件级语义分割方法,无法正确地分割图像的对象部件。

发明内容

[0005] 本发明实施例提供一种图像对象部件级语义分割方法与装置,以解现有的图像对象部件级语义分割方法,无法正确地分割图像的对象部件的问题。
[0006] 第一方面,本发明实施例提供一种三维特征嵌入的图像对象部件级语义分割方法,包括:获取目标二维图像的三维特征信息;
[0007] 根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割。
[0008] 第二方面,本发明实施例提供一种三维特征嵌入的图像对象部件级语义分割装置,包括:
[0009] 获取模块,用于获取目标二维图像的三维特征信息;
[0010] 处理模块,用于根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割。
[0011] 本发明实施例提供的三维特征嵌入的图像对象部件级语义分割方法与装置,通过获取目标二维图像的三维特征信息;并根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割。即本实施例的方法,在对图像进行部件级语义分割时,不仅考虑了图像的二维特征信息,同时考虑了图像的三维特征信息,进而提高了图像部件级语义分割的准确性。

附图说明

[0012] 图1为本发明实施例一提供的三维特征嵌入的图像对象部件级语义分割方法的流程图;
[0013] 图2为本发明实施例二提供的三维特征嵌入的图像对象部件级语义分割方法的流程图;
[0014] 图2(a)为完全预激活单元的结构示意图;
[0015] 图2(b)为短路连接为卷积层的完全预激活单元的结构示意图;
[0016] 图3为本发明实施例二提供中VolNet和GeoNet的结构示意图;
[0017] 图4为本发明实施例二提供的三维特征嵌入的图像对象部件级语义分割方法的框架图;
[0018] 图5为本发明实施例三提供的三维特征嵌入的图像对象部件级语义分割方法的流程图;
[0019] 图6为本发明实施例三提供的透视体素化算法的坐标系示意图;
[0020] 图7为本发明实施例一提供的三维特征嵌入的图像对象部件级语义分割装置的结构图;
[0021] 图8为本发明实施例二提供的三维特征嵌入的图像对象部件级语义分割装置的结构图;
[0022] 图9为本发明实施例三提供的三维特征嵌入的图像对象部件级语义分割装置的结构图;
[0023] 图10为本发明实施例四提供的三维特征嵌入的图像对象部件级语义分割装置的结构图;
[0024] 图11为本发明实施例五提供的三维特征嵌入的图像对象部件级语义分割装置的结构图。

具体实施方式

[0025] 在拍摄一个图像对象时,可能处于各种不同的光照条件下,对象和相机的相对位姿、角度也可能千变万化,同时,即使是同一类对象,也具有各种不同的表面材质、纹理属性,以及不同的几何结构。所有这些多样性使得正确地分割图像对象部件是一个困难的问题。综合考虑这些因素,归根结底引起这些困难的原因在于一个对象在真实世界中是一个三维模型,而不是一幅二维的图像。
[0026] 基于上述分析,为了解决现有技术的问题,本发明实施例,通过获取二维图像的三维特征信息,并基于二维图像的三维特征信息和二维图像的二维特征信息,对二维图像的部件级语义分割,进而提高了分割的准确性。
[0027] 下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0028] 图1为本发明实施例一提供的三维特征嵌入的图像对象部件级语义分割方法的流程图。本实施例的执行主体为具有图像对象部件级语义分割功能的装置,以下简称分割装置。本实施例涉及的是分割装置根据目标二维图像的三维特征信息和目标二维图像的二维特征信息,对目标二维图像进行部件级语义分割的具体过程。如图1所示,本实施例的方法可以包括:
[0029] S101、获取目标二维图像的三维特征信息。
[0030] 随着三维模型库ModelNet和ShapeNet等大规模三维模型数据集的构建,使得从数据中学习三维几何特征成为可能,因而面向三维特征的学习和应用越来越多。
[0031] 本实施例可以在现有的大规模三维模型数据集基础上,建立图像对象与三维模型之间的映射关系,进而获得二维图像的三维特征信息。
[0032] 或者,用三维模型生成图像对象及其对应的体素模型,并在此基础上应用卷积神经网络建立从图像到体素模型的映射关系。并在三维体素模型的基础上,利用三维深度置信网络从三维体素模型中学习几何特征,进而获得二维图像的三维特征信息。
[0033] 可选的,本实施例还可以根据其他的方法获得目标二维图像的三维特征信息,本实施例对此不做限制。
[0034] S102、根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割。
[0035] 具体的,根据上述步骤,获得目标二维图像的三维特征信息后,将目标二维图像的三维特征信息增加到目标二维图像的部件级语义分割过程中。同时,结合目标二维图像的二维特征信息,对目标二维图像进行部件级语义分割,进而实现对目标二维图像分割的准确性,使得基于该目标二维图像的部件级语义信息的多视觉相关的任务准确进行。
[0036] 举例说明,假设机器人需要打开汽车的引擎盖时,机器人使用自身的照相机对汽车进行拍照,获得汽车的图像,将该图像作为本实施例的目标二维图像。接着,机器人中分割装置(该分割装置位于机器人的处理器中)需要对该目标二维图像进行部件级语义分割,分割出引擎盖。具体是,根据上述步骤S101的方法获得汽车图像的三维特征信息,接着,将汽车图像的二维特征信息和三维特性信息进行叠加、过滤等处理,然后进行部件级语义分割,准确分割出汽车的引擎盖,以使机器人正确识别该引擎盖,并打开该引擎盖。
[0037] 需要说明的是,本实施例中分割装置可以根据渲染等方法获得目标二维图像的二维特征信息,即获得二维图像的二维特征信息为现有技术,本实施例不再赘述。
[0038] 在一种示例中,本实施例的分割装置可以设计一个具有两个支路的FCN(Fully Convolutional Networks,简称全卷积网络)。其中一路记为AppNet,用于从输入二维图像中提取二维特征信息,该网络可以通过现有方法(例如残差网络)容易地得到;另一路记为GeoNet,用于提取二维图像中的三维特征信息。上述AppNet可以使用ResNet-101微调得到,FCN网络中两路通过特征图拼接进行链接。在实际使用时,将目标图像输入到该FCN网络,其中AppNet提取该目标图像中的二维特征信息,该GeoNet提取该目标图像的三维特征信息,并结合目标图像的二维特征信息和三维特征信息,实现对目标图像的精确部件级语义分割。
[0039] 可选的,本实施例的分割装置可以通过对目标二维图像的二维特征信息和三维特征信息进行拼接,然后进行卷积运行,实现对目标二维图像的部件分割。
[0040] 由上述可知,本实施例的方法,在对图像进行部件级语义分割时,考虑了二维图像的三维特征信息,进而还原了对象在真实环境中的三维模型。这样使得该方法相比于现有的基于图像的二维特征信息的部件级语义分割,使得分割结果更加准确,进而使得基于该分割结果的视觉活动更加的精确。
[0041] 图2为本发明实施例二提供的三维特征嵌入的图像对象部件级语义分割方法的流程图。在上述实施例的基础上,本实施例涉及的是分割装置获取目标二维图像的三维特征信息的具体过程。如图2所示,上述S101具体可以包括:
[0042] S201、获取三维模型库中各三维模型对应的二维图像和所述各三维模型对应的三维体素模型。
[0043] 具体的,本实施例的三维模型库中保存有一定数量的三维模型,可选的,该三维模型库可以为标准的三维模型数据集。使用该三维模型数据集ShapeNet进行渲染,生成各三维模型的二维图像。由于该三维模型数据集中的模型具有部件信息,因此其对应的语义部件分割结果也可以通过渲染自动生成,即三维模型数据集中各三维模型的三维特征信息可以通过渲染获的。
[0044] 同时,使用正交投影法、或透视体素化投影法等方法获得各三维模型的三维体素模型,其中正交投影法为现有技术,在此不再赘述,透视体素化投影法参照下面实施例的具体描述。
[0045] S202、基于残差网络和有洞卷积设计所述第一神经网络模型,根据所述第一神经网络模型设计所述第二神经网络模型。
[0046] 本实施例的第一神经网络模型可以为基于三维卷积的神经网络模型。
[0047] 为了减小存储空间,优选的,本实施例的第一神经网络模型为基于二维卷积的神经网络模型。
[0048] 假设输入是一个三维体素模型,记为V,深度方向分辨率为nd,每个体素平面上的分辨率为k。输出特征图记为F,为叙述简便,特征图F的尺寸与输入三维体素模型相同。也就是说,对于三维卷积,由于特征图是三维的,因而可以看做输出是一个特征图。对于二维卷积,由于特征图是二维的,因而可以看做输出具有nd个特征图。基于二维卷积的神经网络与基于三维卷积的神经网络的不同之处在于,三维卷积进一步限制了其在第三个维度上的感受野,并且在该维度了也进行了权值共享。但是,二维卷积仅在二维平面上限制了感受野,并进行了权值共享。也就是说,任意三维卷积的计算结果可以通过特定二维卷积得到,因此三维卷积是二维卷积的一种特殊情况。同时,三维卷积的特征图是三维矩阵,二维卷积的特征图是二维矩阵,因此在使用相同数量的特征图时,二维卷积网络需要的存储空间明显少于三维卷积网络。
[0049] 即本实施例基于二维卷积设计第一神经网络模型,可以节约存储空间,进而提高了算法的计算速度。
[0050] 进一步的,本实施例的第一神经网络模型是基于残差网络和有洞卷积设计的。
[0051] 具体的,第一神经网络模型(简称VolNet)以完全预激活full pre-activation单元为基本构造单元,每个full pre-activation单元的结构如图2(a)所示。
[0052] 在一种示例中,如图2(a)(图2(a)为完全预激活单元的基本结构示意图)所示,可以将两个卷积层的卷积核尺寸均设计为3×3,扩展参数pad设计为1。需要注意的是,高分辨的体素模型需要非常高的存储和计算开销,但是只提供了有限的额外信息。因此,体素平面上每个维度的分辨率设置为对应图像的四分之一。同时,为了减少存储和计算量,将语义分割结果的分辨率设置为输入图像的八分之一,分割结果可以通过双线性插值恢复到与输入图像相同的分辨率。
[0053] 可选的,本实施例的第一神经网络模型(VolNet)可以包括n个完全预激活full pre-activation单元,其中,所述n为大于等于1的正整数,本实施例对n的数目不做限制,具体根据实际需要进行设定。
[0054] 在一种示例中,如图3(a)所示,VolNet包含8个full pre-activation单元,分别为Res02a、Res0b、Res1a、Res1b、Res2a、Res2b、Res3a和Res3b。其每个单元中的参数feature maps#代表特征图数量,参数stride表示相邻操作的步长,参数dilation为有洞卷积中卷积核中洞的尺寸。为了保证输入与输出在分辨率上的对应,在基本单元Res1a中,第一个卷积层的stride参数设置为2,因而特征图在每个维度上的尺寸缩减一半。在基本单元Res2a、Res2b、Res3a、Res3b中,使用有洞卷积从而在获得较大的感受野的同时保持输出尺寸不变,有洞卷积的参数dilation逐步增大,分别为2、2、4、4,从而逐步增大感受野,同时避免使用反卷积层从低分辨率特征中恢复高分辨率信息。例如,基本单元Res0a和Res0b的特征图数量可以为128个,其余的都为256个。另外,为了匹配输入与输出特征图的数量,以及特征图的尺寸,在基本单元Res0a和Res1a中,短路连接上使用了卷积核大小为1×1的卷积层,其基本结构如图2(b)(图2(b)为短路连接为卷积层的完全预激活电源的基本机构示意图)所示。在设计好VolNet之后,保持其参数不变,开始设计第二神经网络模型(简称GeoNet)。其中,GeoNet的结构和参数与VolNet的结构和参数相同。
[0055] 本实施例的第二神经网络为基于二维卷积的神经网络模型,第二神经网络模型逼近第一神经网络模型。
[0056] 可选的,当第一神经网络模型包括n个完全预激活full pre-activation单元时,则第二神经网络模型可以包括一个卷积层、一个规范Batch Norm层、一个激活函数层和m个full pre-activation单元,其中m小于n,m为大于等于1的正整数。
[0057] 举例说明,如图3(b)所示,本实施例的GeoNet首先包括一个卷积层,接着依次为一个BatchNorm层、一个ReLU(Rectified linear unit,简称修正线性单元)激活函数层、一个最大池化层和6个full pre-activation单元。其中,卷积层的输出有128个特征图,并且卷积核大小为7×7,pad尺寸为3,stride尺寸为2。池化层的核大小3×3,stride尺寸为2。GeoNet中的每层full pre-activation单元中的参数与VolNet中的对应层的full pre-activation单元中的参数相同。如图7所示,例如,VolNet和GeoNet最后一层的参数均为feature maps#:256,kernel:3×3,dilation:4。
[0058] S203、将各三维体素模型作为第一神经网络模型的输入,将所述各三维模型对应的三维特征作为所述第一神经网络模型的理想输出,对所述第一神经网络模型进行训练。
[0059] 待上述S202设计好第一神经网络模型后,开始训练该第一神经网络模型。
[0060] 具体的,由上述步骤S201获得三维模型数据集中各三维模型对应的三维体素模型作为第一神经网络模型的输入,将各三维模型对应的三维特征信息作为第一神经网络模型的理想输出,对该第一神经网络模型进行训练。
[0061] 在本实施例中,由于第一神经网络模型为基于二维卷积的神经网络模型,而三维体素模型为三维模型,因此,为了使得二维卷积的神经网络模型可以对三维体素模型进行二维卷积运行,则本实施例在所述三维体素模型的深度方向上对所述三维体素模型进分割,获得不同深度方向上的二维体素图像,将各二维体素图像作为所述第一神经网络模型的输入。
[0062] 需要说明的是,本实施例中一个三维模型的三维体素模型与三维特征信息一一对应。
[0063] 可选的,本实施例可以使用交叉熵损失函数训练VolNet,从而以体素模型为输入,完成对象部件语义分割。
[0064] S204、将各二维图像作为第二神经网络模型的输入,将训练好的所述第一神经网络模型的每层输出作为所述第二神经网络模型对应层的理想输出,对所述第二神经网络模型进行训练。
[0065] 待上述S202设计好第二神经网络模型,且第一神经网络模型训练后之后后,开始训练该第二神经网络模型。
[0066] 具体的,采取教师-学生策略,将三维模型库中各三维模型对应的二维图像作为第二神经网络模型的输入,将训练好的第一神经网络模型的每层输出作为第二神经网络模型对应层的理想输出,通过使GeoNet的输出逼近网络VolNet的输出,对第二神经网络模型进行训练,从而使GeoNet可以从二维图像中提取三维几何特征。
[0067] 在一种示例中,如图3所示,首先将GeoNet中Pool0层的输出回归到VolNet中Res0b的输出,通过最小化Loss1从而训练GeoNet的Conv0层。然后,GeoNet中Res1b的输出回归到VolNet中Res1b的输出,从而训练Res1b及其之前的各层。接着,GeoNet中Res2b的输出回归到VolNet中Res2b的输出,从而训练Res2b及其之前的各层。最后,GeoNet中Res3b的输出回归到VolNet中Res3b的输出,从而训练Res3b及其之前的各层。
[0068] 在上述过程中,在训练较深的层时,用较低层的训练结果对对应层进行初始化,从而避免每次都从随机初始化的网络开始训练。对于回归损失函数,本实施例可以选择均方差:
[0069]
[0070] 其中, 为GeoNet中的特征,Fij为VolNet中的特征。
[0071] S205、向训练好的所述第二神经网络模型中输入所述目标二维图像,获得所述目标二维图像的三维特征信息。
[0072] 具体的,根据上述步骤获得训练好的第二神经网络模型,该第二神经网络模型可以从二维图形中提取三维特征信息。这样,当需要获得目标图像的三维特征信息时,只需要将该目标图像输入到训练好的第二神经网络模型中,该第二神经网络模型即可输出该目标二维图像的三维特征信息,进而使得结合该目标二维图像的三维特征信息实现对该目标二维图像的精确部件级语义分割。
[0073] 在本实施例的一种示例中,如图4所示,本实施例的图像对象部件级语义分割方法由一个具有两路的FCN网络实现,该FCN网络的第一路称为AppNet,由在大规模图像数据集ImageNet上预训练好的ResNet-101网络修改获得,另一路为上述的GeoNet。其中,AppNet用于从目标图像中提取其二维特征信息,GeoNet用于从目标图像中提取其三维特征信息。两路网络通过特征图拼接进行链接,进而实现对目标二维图像进行部件级语义的精确分割。
[0074] 在本实施例的一种可能的实现方式中,对所述各三维体素模型进行压缩,将压缩后的所述各三维体素模型输出所述第一神经网络模型中。
[0075] 进一步地,为了减少输入数据的存储,本实施例使用DCT(离散余弦变换)压缩上述三维体素模型。特别地,对每个体素向量Vi应用DCT变换得到:
[0076] Fi=DCT(Vik)   (0,3)
[0077] 同时,基于DCT变换的预处理操作也可以看作是一个卷积操作,不同之处只是卷积参数是固定不变的。每个DCT分量从频域角度,反应了沿深度方向的体素向量的整体信息。同时,低频分量的信息较丰富,高频分量会包含越来越多的噪声信息。因此,为了减少存储和计算效率,本实施例可以只保留频率最低的16个分量。同时,该操作也具有在深度方向进行数据对齐的作用。
[0078] 图5为本发明实施例三提供的三维特征嵌入的图像对象部件级语义分割方法的流程图。在上述实施例的基础上,本实施例涉及的是分割装置获取三维模型库中各三维模型对应的二维图像和所述各三维模型对应的三维体素模型的具体过程。如图5所示,上述S201具体可以包括:
[0079] S301、根据透视投影法,获得所述各三维模型对应的二维图像。
[0080] S302、根据三维透视体素化法,获得所述各三维模型对应的三维体素模型。
[0081] 其中,所述三维透视体素化法的基本原则包括:1)一个体素Vik被设置为1,当且仅当该体素在三维模型内部,或者与三维模型表面相交,否则设置为0;2)一个沿深度方向的体素向量Vi与图像像素Ii对应,都在一条透视投影射线上,该投影射线从源点出发经过成像平面上的像素Ii;3)如果两个体素到原点O的距离相同,即在同一等深度线上,那么它们在同一个体素平面Vk上。
[0082] 在本实施例中,首先,使用透视投影法对三维模型进行渲染,获得该三维模型的二维图像。接着,根据渲染图像时使用的外参对三维模型进行旋转和平移,从而使相机和三维模型的相对位姿关系与渲染生成图像时一致。如图6所示,旋转平移三维模型后,相机光心位于世界坐标系原点O,相机朝向z轴负方向。透视投影模型为标准小孔成像模型,为了计算和描述方便,将成像平面置于z轴负方向上,且渲染生成的图像记为I,其中的一个像素记为Ii,下标i为图像坐标,体素模型记为V,其中一个体素记为Vik,上标k为深度坐标索引。
[0083] 接着,根据三维透视体素化算法的三个准则,对于一个输入的三维模型,输出其体素模型V。其中,输入的三维模型是以三角面片为基本单位的表面模型,该模型包含一组顶点集合V,及其组成的三角面片集合F,每个三角面片由顶点集合V中的三个顶点组成。对于相机成像过程,由于采用标准小孔成像模型,相机的内参仅有焦距f,且设置图像的分辨率为高H,宽W,设置体素模型在深度方向的分辨率为D。
[0084] 三维透视体素化算法的流程具体包括,首先对相关变量进行初始化,其中将体素模型V中的每个体素初始化为0,并且根据设置,体素模型的高度、宽度、深度分辨率分别为;同时将所有顶点距离原点O的最近距离dmin初始化为无穷大,最远距离dmax初始化为0。
[0085] 接着,对于三维模型顶点集合V中的每个顶点u,计算其距离坐标系原点O的距离du,并遵循透视投影的原理,根据焦距计算其对应的成像平面上的坐标。在此过程中,通过与当前记录值进行比较,分别记录下所有顶点距离原点O的最近距离dmin和最远距离dmax。
[0086] 然后,迭代处理三维模型的三角面片集合F中的每个面片,直到所有面片都被正确处理时为止,即F为空时为止。具体的,从三维模型的三角面片集合F中取出一个面片,并将其从集合F中去除,以避免重复处理。针对取得的面片,所有与其有交集的体素都需要设置为1。因此,对于该面片的每个顶点uj,根据图像分辨率计算该顶点uj对应的体素点在成像平面上的图像像素坐标,根据深度分辨率计算该顶点uj对应的体素点在体素模型中所处的深度索引坐标,进而获得体素点的坐标值。接着,判断该提速点是否在三维模型的内部或者是否与三维模型的表面相交,若是,则将该体素点设置为1,否则将该体素点设置为0。根据上述方法,轮循每个三维模型中各三角面片的每个顶点,获得各三维模型对应的三维体素模型。
[0087] 但是,在实际计算中,当一个三角面片较大,其范围可能跨越多个体素,那么仅根据面片顶点进行处理,将会漏掉一些体素,从而使体素模型表面具有空洞。针对该问题,本实施例可以对较大的三角面片进行划分为多个较小的面片,并将它们都加入到面片集合F中。
[0088] 因此,本实施例在对三维模型进行体素化之前,首先对三维模型的三角面片的大小进行判断。具体是,分别判断面片的每条边,如果一条边有可能跨越两个不邻接的体素,那么在这条边的中心增加一个顶点,从而将一个三角面片划分为两个三角面片。最后,在三维模型表面对应的体素被正确处理后,通过形态学的方法填充其中空洞区域的体素为1,从而得到最终的内部为实心的体素模型。
[0089] 图7为本发明实施例一提供的三维特征嵌入的图像对象部件级语义分割装置的结构图。本实施例的图像对象部件级语义分割装置可以是软件、硬件或者软硬结合。如图7所示,本实施例的图像对象部件级语义分割装置,包括:
[0090] 获取模块10,用于获取目标二维图像的三维特征信息;
[0091] 处理模块20,用于根据所述目标二维图像的三维特征信息和所述目标二维图像的二维特征信息,对所述目标二维图像进行部件级语义分割。
[0092] 本发明实施例所示的图像对象部件级语义分割装置,可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0093] 图8为本发明实施例二提供的三维特征嵌入的图像对象部件级语义分割装置的结构图。在上述是实施例的基础上,本实施例的获取模块10包括:获取单元101、第一训练单元102和第二训练单元103。
[0094] 所述获取单元101,用于获取三维模型库中各三维模型对应的二维图像和所述各三维模型对应的三维体素模型。
[0095] 所述第一训练单元102,用于将各三维体素模型作为第一神经网络模型的输入,将所述各三维模型对应的三维特征作为所述第一神经网络模型的理想输出,对所述第一神经网络模型进行训练。
[0096] 所述第二训练单元103,用于将各二维图像作为第二神经网络模型的输入,并将所述第一训练单元102训练好的所述第一神经网络模型的每层输出作为所述第二神经网络模型对应层的理想输出,对所述第二神经网络模型进行训练。
[0097] 所述获取单元101,还用于向训练好的所述第二神经网络模型中输入所述目标二维图像,获得所述目标二维图像的三维特征信息。
[0098] 在本实施例的一种可能的实现方式中,上述第一神经网络模型和上述第二神经网络模型均为基于二维卷积的神经网络模型。
[0099] 本发明实施例所示的图像对象部件级语义分割装置,可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0100] 图9为本发明实施例三提供的三维特征嵌入的图像对象部件级语义分割装置的结构图。在上述是实施例的基础上,如图9所示,本实施例的图像对象部件级语义分割装置还包括第一设计模块30和第二设计模块40:
[0101] 所述第一设计模块30,用于基于残差网络和有洞卷积设计所述第一神经网络模型。
[0102] 所述第二设计模块40,用于根据所述第一神经网络模型设计所述第二神经网络模型,所述第二神经网络模型逼近所述第一神经网络模型。
[0103] 本发明实施例所示的图像对象部件级语义分割装置,可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0104] 图10为本发明实施例四提供的三维特征嵌入的图像对象部件级语义分割装置的结构图。在上述是实施例的基础上,如图10所示,本实施例的图像对象部件级语义分割装置还包括分割模块50;
[0105] 所述分割模块50,用于在所述三维体素模型的深度方向上对所述三维体素模型进分割,获得不同深度方向上的二维体素图像。
[0106] 所述第一训练单元102,具体用于将各二维体素图像作为所述第一神经网络模型的输入。
[0107] 在本实施例的一种可能的实现方式中,上述获取单元101,具体用于根据透视投影法,获得所述各三维模型对应的二维图像;并根据三维透视体素化法,获得所述各三维模型对应的三维体素模型;其中,所述三维透视体素化法包括:当所述三维模型对应的体素在所述三维模型内部或者与所述三维模型表面相交时,将所述体素设置为1,否则将所述体素设置为0。
[0108] 本发明实施例所示的图像对象部件级语义分割装置,可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0109] 图11为本发明实施例五提供的三维特征嵌入的图像对象部件级语义分割装置的结构图。在上述是实施例的基础上,如图11所示,本实施例的图像对象部件级语义分割装置还包括压缩模块60;
[0110] 所述压缩模块60,用于对所述各三维体素模型进行压缩,将压缩后的所述各三维体素模型输出所述第一神经网络模型中。
[0111] 在本实施例的一种可能的实现方式中,训练好的所述第一神经网络模型的每层输出与所述第二神经网络模型的对应层输出满足均方差损失。
[0112] 在本实施例的另一种可能的实现方式中,所述第一神经网络模型包括n个完全预激活full pre-activation单元;
[0113] 所述第二神经网络模型包括一个卷积层、一个Batch Norm层、一个激活函数层、一个最大池化层和m个full pre-activation单元,所述n大于所述m,所述n和所述m均为大于等于1的正整数。
[0114] 本发明实施例所示的图像对象部件级语义分割装置,可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0115] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0116] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。