本发明是关于三维模型技术,特别是关于一种物体识别方法及装置。
背景技术:
当前机器人对场景中的物体进行识别和操作主要是基于视觉的方法,但是随着三维感知技术和三维模型数据库的飞速发展,使得自主机器人识别系统得到爆发式的增长,三维模型在机器视觉中扮演者越来越重要的角色。
一般地,比较粗糙的物体识别,比如区分桌子和椅子,只需要一个视角就可以区分清楚,然而,在一个大型三维模型数据库中,一个物体的细粒度的识别就非常有挑战性,这种情况下,一个单一视角已经不足够区分。
对于高效地完成机器人自主识别的过程,能够计算出物体的一系列视角就变得极其重要。该问题可以称为下一最优视点问题,即next-best-view问题,简称NBV估计问题,NBV的估计和物体的分类是分不开的,目的是尽可能的减小分类的不确定性,同时最小化观测所需的能量。细粒度的物体识别既需要对物体进行分类,也需要计算出最好的下一最优视点。一个最直接的解决办法是对整个模型数据库训练实例级的分类器。然而,众所周知地,当需要分类的种类太多时,细粒度分类的方法表现不佳,因此基于所有预定视角下的静态信息的预测方法和计算视点间的顺序就需要额外的工作。
为了解决上述问题,现有技术中通常使用体积的方式表示三维模型,并训练了一个卷积深度置信网络(Convolutional Deep Belief Network,简称CDBN)来对空间容积信息和种类进行建模,并作为形状的分类器。通过对分布的采样,能够基于深度图对形状进行完善和补全,并使用虚拟扫描来估计视角的信息增益。但是该方法不能够预测下一最优视点,并且该方法是对通过物体的空间容积信息来进行分类,因此没有层次化的结构,不能够处理不同粒度的分类问题。
技术实现要素:
本发明实施例提供了一种物体识别方法及装置,以进行物体的识别,解决了下一个视点的规划问题。
为了实现上述目的,本发明实施例提供了一种物体识别方法,该物体识别方法包括:
S1:将待识别物体当前最优视角的一深度图输入特征提取器进行特征提取,得到第一特征向量;
S2:将所述第一特征向量通过第一隐含层得到池化层结果,将所述池化层结果输入层次化分类器得到分类结果;
S3:根据所述池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域;
S4:将所述局部区域输入第二隐含层得到第二特征向量,所述第二特征向量包括所述池化层结果及当前局部观测视角的信息;
S5:利用一全连接层及所述第二特征向量生成下一最优视角;
S6:重复所述S1至S5,直至所述分类结果遍历到所述层次化分类器叶子节点。
一实施例中,所述第一隐含层为最大池化层,用于将各个视角的信息进行集成。
一实施例中,该物体识别方法还包括:将视角观测参数通过非线性函数编码成所述观测向量。
一实施例中,该物体识别方法还包括:
对于每一个非根节点,利用高斯混合模型对形状进行聚类;
基于聚类结果训练所述层次化分类器。
一实施例中,如果所述深度图存在遮挡,物体识别方法还包括:
提取所述深度图的一系列局部图像,在所述层次化分类器的每个节点训练一个局部级别的卷积神经网络。
为了实现上述目的,本发明实施例还提供了一种物体识别装置,该物体识别装置包括:
特征提取单元,用于将待识别物体当前最优视角的一深度图输入特征提取器进行特征提取,得到第一特征向量;
分类单元,用于将所述第一特征向量通过第一隐含层得到池化层结果,将所述池化层结果输入层次化分类器得到分类结果;
区域生成单元,用于根据所述池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域;
向量生成单元,用于将所述局部区域输入第二隐含层得到第二特征向量,所述第二特征向量包括所述池化层结果及当前局部观测视角的信息;
最优视角生成单元,用于利用一全连接层及所述第二特征向量生成下一最优视角。
一实施例中,所述第一隐含层为最大池化层,用于将各个视角的信息进行集成。
一实施例中,物体识别方法还包括:编码单元,用于将视角观测参数通过非线性函数编码成所述观测向量。
一实施例中,物体识别方法还包括:
聚类单元,用于对于每一个非根节点,利用高斯混合模型对形状进行聚类;
分类单元,用于基于聚类结果训练所述层次化分类器。
一实施例中,物体识别方法还包括:
遮挡容错单元,用于提取所述深度图的一系列局部图像,在所述层次化分类器的每个节点训练一个局部级别的卷积神经网络。
本发明通过对未知场景进行扫描和识别,不仅解决了物体的识别问题,还解决了下一个视点的规划问题,同时还对遮挡具有容错性,能较好的处理遮挡的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的物体识别方法流程图;
图2为本发明实施例的三维增强模型示意图;
图3为本发明实施例的MV-RNN示意图;
图4示出了本发明实施例的聚类分类和重叠情况示意图;
图5示出了本发明实施例的NBV训练示意图;
图6为本发明实施的物体识别装置的结构示意图;
图7为本发明实施的设备的结构示意图;
图8A至图8C为本发明实施的注意驱动的特征编码流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
机器人自动场景建模有着很多的应用,从服务机器人对物体的操作,到虚拟和增强现实。基于三维感知技术和三维模型数据库,本申请利用深度图和数据驱动的方法,进行在线的室内场景建模。给定一系列主动获取到的深度图像(如2.5D深度图像),主要工作在于:提取出潜在的物体,然后对于每个物体在三维数据库中找到与之最匹配的模型并识别,来对场景进行重建。识别的过程中,需要指导机器人获取下一最优视角。
图1为本发明实施例的物体识别方法流程图,如图1所示,该物体识别方法包括:
S101:将待识别物体当前最优视角的一深度图输入特征提取器进行特征提取,得到第一特征向量;
S102:将所述第一特征向量通过第一隐含层得到池化层结果,将所述池化层结果输入层次化分类器得到分类结果;
S103:根据所述池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域;
S104:将所述局部区域输入第二隐含层得到第二特征向量,所述第二特征向量包括所述池化层结果及当前局部观测视角的信息;
S105:利用一全连接层及所述第二特征向量生成下一最优视角(Next Best View简称NVB);
S106:判定分类结果是否遍历到所述层次化分类器叶子节点,如果否充分执行S101至S105,直至分类结果遍历到所述层次化分类器叶子节点。
由图1所示的流程可知,本申请首先对未知场景物体的深度图像进行特征提取,通过第一隐含层将各个视角的信息进行集成后通过层次化分类器得到分类结果,将池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域,然后输入第二隐含层得到第二特征向量,最后利用一全连接层及所述第二特征向量生成下一最优视角。通过对未知场景进行扫描和识别,不仅解决了物体的识别问题,还解决了下一个视点的规划问题。
为了实现三维物体识别的目的,本申请提出了循环的三维增强模型,该三维增强模型不仅实现了实例级的物体分类,还实现了NBV序列的回归,如图2所示。在图2所示的三维增强模型的每一步(图3中每一列对应一步)中,机器人手持获取一个深度图,将获取的深度图与之前所有的深度图信息进行融合(例如将图2中深度图与之前的深度图d0及d1进行融合),并更新三维增强模型的内部状态。基于视角融合和多视角卷积神经网络,本发明移植了多视角卷积神经网络(Multi-View Convolutional Neutral Network,简称MV-CNN)到本申请的循环网络(三维增强模型)中,得到了多视角循环神经网络(Multi-View Recurrent Neutral Network,简称MV-RNN),使得三维增强模型训练和推理更有效率,MV-RNN如图3所示。
本申请的层次化分类器如图3所示的CNN2,为了通过层次化分类器得到分类结果,本申请需要首先训练出层次化分类器。一实施例中,可以对每一个非根节点,利用高斯混合模型对形状进行聚类,基于聚类结果训练出所述层次化分类器。
根节点包含所有数据库(数据库可以使用ShapeNet)中的形状,由于根节点是最粗糙的分类器,需要对类别进行分类,可选地,本申请使用MV-CNN进行分类。在每个节点,本申请使用与该节点有关的形状训练一个提升过的MV-CNN。这些更细粒度的分类器是松弛的,一个三维模型可以被分到多个类中,一旦节点中包含的数目少于50个就被认为是叶子节点。
具体实施层次化分类器训练时,在每一个非根节点,将当前节点中的形状聚类成k个相互重叠的组。本申请可以使用高斯混合模型(Gaussian Mixture Model,简称GMM)对形状特征进行聚类,并对每个形状给出属于k个类别的概率,一旦概率大于设定阈值则聚类到该类中。需要注意的是,由于分类器是松弛的,一个形状可以被聚类到多个类别中。
在分类的步骤中,基于上述聚类的结果,本申请训练一个松弛的分类器。例如训练(K+1)个类,其中包含一个空类,对应于重叠的区域。一旦某个形状属于第k类的概率大于阈值,则将标签设定为第k类用于训练,其他形状被标注为空的类中。由于训练数据都是改善过的,所以这些特征对区分这些训练数据更加有效,下一次迭代的聚类也更好。
持续上述聚类和分类的过程,直到聚类的结果稳定为止。如果一个形状是空类别,那么本申请使用高斯混合模型来确定它到底属于哪个类别,图4示出了聚类分类和重叠情况示意图,图4(a)为最初嵌入的分属8类的280个椅子模型,图4(b)为经过6次迭代的结果。
如图3所示,进行3D物体识别时,输入深度图(depth)到特征提取器CNN1进行共享权重,输出一个特征地图(feature map,即上述的第一特征向量,对应图1的Ct-1),将特征地图输入到第一隐含层fh1,得到各个视角的信息进行集成的结果,将该结构输入到训练好的层次化分类器中CNN2。第一隐含层fh1可以为view pooling(视角池化层),较佳地,可以使用max pooling(最大池化层)。
本发明的关键在预先的特征提取及对视角特征的融合,在特征提取器CNN1和层次化分类器CNN2之间插入一个视角池化层实现。视角的深度图被送进多视角的通道,每一个通道由共享权重的卷积层代表。多视角的特征地图通过最大池化(max pooling)操作进行融合,然后送到剩余的层(第二隐含层fh2(θh))中进行分类。本发明将预先训练好的MV-CNN放到三维增强模型中,作为三维增强模型的一个子网络,进行三维物体的识别。
为了实现连续的视角规划(即得到下一最优视角NBV),本申请将整个观测空间进行球形区域的参数化,对于给定的一个视角,以获取到或者渲染出的深度图作为输入,同时,将NBV估计问题转化成了基于观测参数的视点回归问题。将一系列过去的观测点作为输入,训练好的NBV回归器vt会估测出下一最优视角的参数。可选地,下一最优视角可以被参数化为球坐标,如图5所示,v0代表初始视点,vn+1是估算出的下一最优视角。
下面详细说明图3所示的MV-RNN(即三维增强模型),本发明使用循环卷积网络(Recurrent Neutral Network,简称RNN)得到三维的基于视角的增强模型。RNN可以看做是离散时间动态系统,每一个时间步(图3中的一行)处理一个观测的深度图,并集成之前的观测的信息,并生成下一最优视角。
为了设计三维增强模型,本发明使用了MV-CNN用于物体的识别和三维循环增强模型3D-RAM(循环增强网络Recurrent Attention Model),本发明称其为MV-RNN,如图3所示。本发明的循环增强网络由以下几个子网络构成。
1)视角集成网络
给定一个深度图,使用CNN1提取特征地图,使用视角池化层将提取出的特征地图与之前所有的视角的信息进行集成,视角池化层储存了所有视角的特征地图。
2)视角观测网络
这个网络结合了视角集成网络观测到的所有视点信息和上一个视点的参数,输出一个描述当前观测的特征向量。其中视角观测参数vt-1由非线性函数(fg(θg))编码成观测向量。最后的观测向量gt由视角集成网络的输出和观测视角的参数st相乘得到:
3)局部观测集成网络
为了集成所有之前的局部观测的信息,我们使用了第二个隐含层fh2(θh),在包含上一个隐含层(fh1)的信息的基础上加入了当前局部观测的信息。
4)Nbv回归网络:
为了得到下一最优视角,在该子网络使用局部观测集成网络的输出作为输入并产生了一个NBV的参数向量vt。这个过程是由一个全连接层fv(θv)连接第二个隐含层fh2(θh)和视点参数vt。
5)分类网络:
在每一个时间步中,本申请都对感兴趣的物体进行了预测,本申请想要在视角信息集成之后就得到分类,而不是在局部观测集成网络之后才得出,因为视角信息集成之后对于分类已经足够。本申请把CNN2放在第一个隐含层之后,得出一个分类概率的向量代表着该物体属于各个种类的概率值。CNN2是独立于MV-RNN的,而且是之前就训练好的。
如果所述深度图存在遮挡,需要进行遮挡容错处理,提取所述深度图的一系列局部图像,在所述层次化分类器的每个节点训练一个局部级别的卷积神经网络。对于给定的一个视角,如果存在遮挡,关键在于找出能够识别出的最重要的局部,然后基于这个信息最大的局部进行识别。本发明的最基本的想法是训练一个局部级别的卷积神经网络CNN,在层次化分类器中的每一个节点都训练一个局部级别CNN,图8A至图8C为本发明实施的注意驱动的特征编码流程示意图。
具体实施,通过如下两个步骤实施:
1、注意力提取:
对于每一个节点,本发明对其所包含的所有的模型,都提取所有采样点的深度图,对每个深度图提取一系列局部,这些局部的图像被用来训练局部级别的CNN(part-level CNN),如图8A所示。根据经验,隐含层的神经元对某些部分非常敏感,受此启发,本发明从中间的卷积层中提取出了卷积过滤器,这些过滤器对应于聚类中心,如图8B所示。
2、注意力驱动的特征编码:
对于局部的识别和基于局部的物体的识别,本发明都想要特征编码信息。对于局部的识别,可以使用卷积操作,使用训练好的注意力过滤器(learned focus filter)对滑动的小窗对输入的深度图进行处理,那些与注意力过滤器相关的部分会返回一个较高的值。对于基于部分的特征,可以通过链接所有最大池化操作后的过滤器的响应值得到。为了使特征便于分类,本申请对每一个注意力过滤器训练了一个识别模型,把分类的信息添加到特征中去。
假定对一个节点有两个类,对于每一个注意力过滤器,本发明对之前所有局部图像训练一个激活值加权的支持向量机(Support Vector Machine,简称SVM),如图8B所示。同时最小化下列损失函数:
其中,n为深度图的数量,yi为标签,σi是SVM的决策函数,权重ωij代表局部图像xj的激活值与卷积过滤器fi相乘。为了完成卷积操作,局部图像需要缩放到过滤器的大小。两个局部图像的距离,使用对应的特征的欧氏距离来度量。当有超过两类的时候,把SVM替换成多权重的一对多SVMs,再加上一个soft-max分类器,得到所有类的概率分布值。
最后的特征结合了过滤器的响应和分类的预测。特别的,给定一个深度图,本发明使用每一个注意力驱动过滤器进行滑动窗进行操作。对每一个窗体部分xl,本发明计算卷积激活值a和分类的概率值pi,因此对应于过滤器fi和类别k的特征入口如下:
因此对于这个深度图的特征是KxF维的向量,其中,yl为标签,k是类别数,F是注意力分类器,如图8C所示。
本发明的注意力驱动的特征编码通过替换CNN1的方式来提高MV-RNN。与那些对整幅图像信息进行编码的特征相反,本发明基于注意力的特征会重点关注局部的区域,每一个都与形状的特征有关,解决了遮挡的问题。具体实施过程中,可以使用两个部分的大小进行注意力学习和特征编码,来达到尺度不变性。
下面结合具体的例子说明本发明。
本申请的主动式物体识别方式可以集成在标准在线场景重建流程中。首先使用PR2机器人手持Kinect二代扫描仪对一个场景进行粗略的重建。主要目的有三个:
1)加速对提取出的物体的分割和背景去除;
2)提供一个场景建模的基准;
3)支持物理限制的测试。
物体的识别完全依赖于深度图,而不是获取的重建后的几何形状。
本申请首先让机器人对场景进行粗略的扫描并通过移除主要的平面等操作,从不完整的点云中提取出物体,完成前景的分割。聚焦于提取出的物体,机器人不断是获取深度图并进行扫描。本申请使用提取出的前景来移除背景,从而得到一个更好的识别效果。一旦物体被识别,三维增强模型就可以替换掉原有的场景中的物体。
基于部分重建出的场景几何,本发明可以检查当前这个NBV最优视点是否是可以达到的,如果不能达到,则对我们的MV-RNN返回一个空。特别的,我们对部分重建的场景进行测试。这是由机器人操作系统ROS的碰撞检测包来实现的。如果NBV可行性测试连续失败10次,则可以控制该识别过程挂起并报错。
本发明的物体识别方法,可以在识别过程中不断判断是否成功识别,如果不能够识别,还能预测下一个最好的视角,并指导机器人移动到下以最优视点进行扫描,对于复杂场景的物体识别问题很有效。同时,本申请提出了三维增强模型,对有遮挡的情况具有较高的包容性,如果下以最优视角不可达到,或者存在遮挡,增强模型则会选取当前最有信息量的局部细节特征来帮助进行识别。该方法可针对机器人对未知场景进行扫描和识别,不仅解决的识别的问题,解决了下一个视角的规划问题,同时还对遮挡具有容错性,能较好的处理遮挡的情况。
基于与上述物体识别方法相同的发明构思,本申请提供一种物体识别装置,如下面实施例所述。由于该物体识别装置解决问题的原理与物体识别方法相似,因此该物体识别装置的实施可以参见物体识别方法的实施,重复之处不再赘述。
图6为本发明实施的物体识别装置的结构示意图,如图6所示,该物体识别装置包括:
特征提取单元601,用于将待识别物体当前最优视角的一深度图输入特征提取器进行特征提取,得到第一特征向量;
分类单元602,用于将所述第一特征向量通过第一隐含层得到池化层结果,将所述池化层结果输入层次化分类器得到分类结果;
区域生成单元603,用于根据所述池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域;
向量生成单元604,用于将所述局部区域输入第二隐含层得到第二特征向量,所述第二特征向量包括所述池化层结果及当前局部观测视角的信息;
最优视角生成单元605,用于利用一全连接层及所述第二特征向量生成下一最优视角。
一实施例中,所述第一隐含层为最大池化层,用于将各个视角的信息进行集成。
一实施例中,所述的物体识别装置还包括:编码单元,用于将视角观测参数通过非线性函数编码成所述观测向量。
一实施例中,所述的物体识别装置还包括:
聚类单元,用于对于每一个非根节点,利用高斯混合模型对形状进行聚类;
分类单元,用于基于聚类结果训练所述层次化分类器。
一实施例中,所述的物体识别装置还包括:
遮挡容错单元,用于提取所述深度图的一系列局部图像,在所述层次化分类器的每个节点训练一个局部级别的卷积神经网络。
本发明实施例提供一种包括计算机可读指令的计算机可读存储介质,所述计算机可读指令在被执行时使处理器至少执行如下步骤:
S1:将待识别物体当前最优视角的一深度图输入特征提取器进行特征提取,得到第一特征向量;
S2:将所述第一特征向量通过第一隐含层得到池化层结果,将所述池化层结果输入层次化分类器得到分类结果;
S3:根据所述池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域;
S4:将所述局部区域输入第二隐含层得到第二特征向量,所述第二特征向量包括所述池化层结果及当前局部观测视角的信息;
S5:利用一全连接层及所述第二特征向量生成下一最优视角;
S6:重复所述S1至S5,直至所述分类结果遍历到所述层次化分类器叶子节点。
如图7所示,本发明实施例提供一种设备,该设备包括:
处理器701;和
包括计算机可读指令的存储器702,所述计算机可读指令在被执行时使所述处理器执行如下步骤:
S1:将待识别物体当前最优视角的一深度图输入特征提取器进行特征提取,得到第一特征向量;
S2:将所述第一特征向量通过第一隐含层得到池化层结果,将所述池化层结果输入层次化分类器得到分类结果;
S3:根据所述池化层结果及视角观测参数的观测向量生成当前聚焦的局部区域;
S4:将所述局部区域输入第二隐含层得到第二特征向量,所述第二特征向量包括所述池化层结果及当前局部观测视角的信息;
S5:利用一全连接层及所述第二特征向量生成下一最优视角;
S6:重复所述S1至S5,直至所述分类结果遍历到所述层次化分类器叶子节点。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。