具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
如图1所示,一种基于空间与时间信息融合的机器人场景识别方法,包括以下步骤:
1)对场景图像的对象进行特征提取,初步描述场景图像的对象特征。
其中,对场景图像的对象进行初步描述的方式包括场景特征提取与描述、物体识别以及区域分割,场景图像的对象特征包括全局特征和局部特征,其中局部特征包括外观特征和轮廓特征,分别采用SIFT和Canny算法结合梯度方向统计算法进行特征提取。上述特征采用相关向量机结合核函数组合的方式进行多种特征通道的融合,该模型中特征核函数的权重将根据特征在对场景进行识别时具有的不同的重要程度自适应地学习得到,并且模型中与每一个训练样本相关联的核函数的组合方式都是灵活可变的。
具体为:由于每个场景图像为一个样本,而每一种特征描述构成了该样本的一个通道。令x为场景图像样本的多特征联接向量,其包含的三个特征通道分别为:全局特征xglobal、外观特征xapp和轮廓特征xshape。
首先,本发明分别为这三个通道的特征向量选择一种核函数,用于衡量同类特征向量间的相似度。注意到,不同特征通道的核函数可以是高斯核、χ2核、线性核、或者其它。核函数可以相同,也可以不同,可视需要自由组合。下面为了表达的简洁,使用如下的等价表达:
Kglobal(x,y)=Kglobal(xglobal,yglobal)
Kapp(x,y)=Kapp(xapp,yapp)
Kshape(x,y)=Kshape(xshape,yshape)
对于具有N个样本的训练集,基本的相关向量机定义了如下的判别函数:
针对特征具有多个通道的特点,将该相关向量机判别函数进行了扩展。定义如下的多核相关向量机判别函数:
其中w即为该多核相关向量机的权值参数向量,其维度为3N+1维。而φ(x)为3N+1维的列向量,其形式为:
φ(x)=[1,Kglobal(x,x1),Kapp(x,x1),Kshape(x,x1),…,
Kglobal(x,xN),Kapp(x,xN),Kshape(x,xN)]T.
相关向量机学习模型具有从训练样本中挑选“相关(样本)向量”的能力。而对于上述判断函数定义的多核分类器,最终挑选出不再是“相关样本”,而是“相关通道特征向量”。并且由相关向量机的原理可知,在训练中对分类越是“相关”的通道特征向量,其学习得到的权值将越大。即特征核函数的组合权值是由该特征在分类时具有的不同的重要性自适应地学习得到的。对于每一个训练输入样本xi,都有一组独立的组合权值wglobal,i,wapp,i和wshape,i与之对应。因此,对于每个训练样本,其特征通道间核函数的组合方式都是不同的。因此,该模型可以实现比一般的组合核函数更灵活的特征融合。更重要的是,模型看似有很多的参数,不过通过相关向量机的稀疏学习,将使得大部分的参数为0,因此最终只会保留少量的模型参数,保证了模型的计算效率与泛化性能。
2)根据场景图像的对象特征建立如图2所示的空间层次模型,该空间层次模型包括场景层、对象层、特征层,每个层之间通过条件概率关系进行关联,由特征层对对象层进行概率预测,由对象层对场景层进行概率预测,由场景层对场景图像进行概率预测。
具体为:考虑场景在空间上的信息建模,本发明将空间信息分类为两个方面,一方面是在图像空间内的位置关系,例如物体与物体之间、区域与区域之间的位置关系;另一方面是在抽象层次上的关系,如场景与物体之间,物体与图像特征之间的关系。本发明通过图模型(Graphical Model)来对空间信息进行结构化的概率建模,因为它提供了对视觉关系(图论)以及不确定度(概率论)的强大支持。本发明采用条件随机场(Conditional Random Field)来对场景及其部件的空间信息进行建模、学习以及推理,条件随机场提供了一种具有局部关系约束的全局概率分布描述方法。
通过与物体识别算法(Deformable Part Model)以及图像分割算法(MarkovRandom Field)相结合,场景部件(物体或者兴趣点或者一致的场景区块)首先被提取出来,并作为条件随机场中的结点,同时结点的特征描述、在图像中的空间位置以及之间的共生关系都将在该模型得以描述中。在本发明的三层模型中,特征层描述了抽取的局部特征间的关系,对象层包含了特征识别与区域分割的结果,场景层则为对整幅图像所对应场景的概率预测。层次平面内使用条件随机场建模,每个层次之间通过条件概率关系相连,这样就形成了一个多层模型。通过贝叶斯学习与推理,可将整个场景图像中各层次的空间信息用于高层场景的概率预测。
3)在场景时间信息方面,通过隐马尔可夫模型(Hidden Markov Model,HMM)建立场景图像的时间序列模型,机器人在工作坏境中运动时,获取的图像信息在时间序列上存在很大的相关性。机器人从一个场景进入另一个场景,可以看作是隐马尔可夫模型中一个状态至另一个状态的切换。因此可将当前所属的场景类别作为HMM的隐藏状态变量,而采集的图像特征向量自然就成为了观测变量,机器人在环境中进行场景识别的过程就可以描述成如图3的时间序列模型。
设初始时刻为t=0,t时刻所处场景的类别则为qt。每获取新的一帧图像,时刻t加1。这时采集的图像通过特征提取和图像描述等过程抽象为一个特征向量,也就是图中的观测值xt。可以看出xt只与当时的状态qt有关。后一时刻的场景出现的概率只与前一时刻的场景有关,即具有一阶马尔可夫性:
P(qt|q1,…,qt-1)=P(qt|qt-1)
对于一般的场景识别系统而言,识别的目标通常是由当前图像判断场景类别,即P(qt|xt)。而在使用了HMM建模后,系统的预测目标可以重新定义为求解P(qt|x1,…,xt)。显然,在这样的一个目标函数下,场景不再只与当前观测有关,还与之前的所有观测值有关。
因此通过迭代的概率传播算法实现快速计算,具体过程如下:
首先定义如下的变量:αt(i)≡p(x1,…,xt,qt=i)
它代表了观测到{x1,…,xt}序列,同时系统状态终止于i的概率。若将状态转移概率表示为A(i,j)=P(qt+1=j|qt=i),放出概率表示为bi(x)=P(x|q=i)。
利用条件独立特性以及求和原理,进一步可得如下的推导式:
化简可得:
每进入新的时刻t+1,只需要取上一时刻记录下的αt值,就能快速计算得到当前的αt+1。
假设观测序列的终点时刻为T,则可通过下式获得该观测序列产生的概率:
结合上式,于是上下文关系模型的目标函数可以由下式求得:
式(2)对αt作了归一化处理,式(1)和式(2)一起构成了时间序列模型的预测更新算法,其中式(2)是预测概率,式(1)是更新方程。利用上述方法后,当前的场景识别不再只依赖当前的图像,而是使得过去时刻的图像及其预测信息(1到t时刻)能够为当前时刻(t时刻)的场景预测提供依据,时间上间隔越近的信息能够获得更高的影响权值。
4)通过贝叶斯网络对场景图像的空间层次模型和时间序列模型进行结合,获得如图4所示的识别模型,其中qt代表当前的场景,qt-1代表上一帧的场景,xt代表当前观测,代表空间层次模型。通过时间信息MT,空间信息MS,同时结合当前观测到的信息MO,经由贝叶斯推理,可以获得下一时刻场景的预测值,然后根据预测的场景图像进行场景识别。
5)在获得了新的场景预测后,还可以使用识别与预测中置信度较高的一些结果作为新的训练样本,对识别模型的结构以及参数进行自适应学习,可以适应环境中新的变化。并且利用增量学习技术,可以使得模型快速基于新获取的数据进行更新,而不需要重新对大量的样本进行自适应学习,可以大大提高模型更新的速度。
本实施例中采用“人工记忆管理系统”(AMMS)来进行知识管理,即使用“工作记忆”(Working memory)与“长期记忆”(Long-term memory)对场景识别模型(即知识)进行管理。考虑到环境中大量的动态结构,哪些部分需要经常更新,哪些部分可以作为真值作用于下一步更新。这些问题可通过AMMS来解决,它包含长期记忆和短期记忆管理两个核心部分,可用于有效地控制知识的遗忘曲线,达到快速搜索与节省空间的目的。该人工记忆管理系统的结构如图5所示,所有左侧的短期记忆都是时间帧触发的,它们代表了系统的感知结果。短期记忆都可以注册到“工作记忆”(WMt)中去,不过只有最新的短期记忆能够用于更新已知的知识。另外,系统中有两个循环可用于调节系统的性能,分别是Ts和Tl。Ts是更新工作记忆的周期,它需要足够快,以支持最新获取数据的融合。而Tl是将重要的信息保存到“长期记忆”(LMt)中的周期,同时还包含解释数据(即推理)和预测未知数据的时间。T1的时间相对较长。这样的过程相当于实现了一种记忆效应,通过信息融合和记忆管理,将使得场景识别方法的鲁棒性大大提高。