首页> 中国专利> 一种基于双目视觉的高精度虚拟装配系统算法

一种基于双目视觉的高精度虚拟装配系统算法

摘要

一种基于双目视觉的高精度虚拟装配系统算法,该算法通过Kinect传感器采集用户运动空间信息作为虚拟装配系统的输入信息,应用OpenGL建立手部模型,将建立的手部模型与采集的手部图像进行对比,计算得到手部模型与手部图像的相似度,采用改进的粒子群优化算法,最终得到采集图像的手部模型,基于手部模型以及Kinect传感器的标定信息,最终渲染得到深度图像,实现对手势的跟踪识别,完成虚拟装配系统的信息输入,进而实现高精度虚拟装配过程。本发明能实现对手势进行准确稳定的三维实时跟踪,不需要特殊的标记或复杂的图像采集设备,降低了硬件设备的要求和成本;也不需要训练样本,从而更容易进行应用扩展。

著录项

  • 公开/公告号CN104408760A

    专利类型发明专利

  • 公开/公告日2015-03-11

    原文格式PDF

  • 申请/专利权人 燕山大学;

    申请/专利号CN201410596344.3

  • 发明设计人 张立国;王鹏;金梅;蒋再毅;

    申请日2014-10-28

  • 分类号G06T13/00(20110101);G06F17/50(20060101);

  • 代理机构13116 石家庄一诚知识产权事务所;

  • 代理人李合印

  • 地址 066004 河北省秦皇岛市海港区河北大街西段438号

  • 入库时间 2023-12-17 04:36:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-29

    授权

    授权

  • 2015-04-08

    实质审查的生效 IPC(主分类):G06T13/00 申请日:20141028

    实质审查的生效

  • 2015-03-11

    公开

    公开

说明书

技术领域

本发明涉及一种基于双目视觉的高精度虚拟装配系统算法。 

背景技术

在产品的设计和制造过程中,装配是一个很重要的环节,装配的效率和质量直接影响产品的最终质量。据有关资料介绍,装配工作的成本占总制造成本的30%~50%,甚至还可能更高。在传统的装配过程中,由于装配通常并不能一次性完成,必须要反复的装配和修改设计,且修改过程中需依赖实物模型。这种繁复的工作不仅使得装配过程极其复杂,也使得装配成本颇高。虚拟装配是利用计算机工具,在没有产品或支撑工艺的物理实现情况下,通过分析、虚拟模型、可视化和数据表达,做出或辅助做出装配关系工程的决定。不同于传统设计必须依靠实物模型进行装配,虚拟装配技术可以在数字环境中进行装配,从而对设计进行检验和修改,并形成评价模型。虚拟装配技术的应用可以简化产品的优化设计,缩短设计周期,减少设计成本,提高产品精度和生产自动化程度。实现手部姿势的高精度立体跟踪是虚拟装配系统的一个关键性且具有挑战性的问题。为了开发一种有效的且高效的解决方案,研究者们需要考虑一些复杂的、相互关联的因素,例如手部动作会存在的高维度的问题、手的外观颜色的均匀度的问题和严重的自遮挡问题。为了解决以上这些问题,一些非常成功的方法应用于专门进行动作捕捉的硬件或者用来进行视觉标记。遗憾的是,这些方法需要一个复杂的、昂贵的硬件设备或者它们会受到观测场景的干扰,或者两种情况同时存在。由于上述原因,从而影响虚拟装配系统的用户体验效果和推广普及。 

对于通过无标记视觉数据来解决手势的立体跟踪识别问题,现有的方法可 以分为基于模型和基于外观两种。基于模型的方法提供连续的解决方案,但是需要昂贵的成本和依赖于丰富的视觉信息的可用性,这些信息一般由多功能摄像机系统提供。基于外观的方法需要相对较少的计算成本和不那么复杂的硬件,但是它们对手势的识别是不连续的,不能实现对手势的准确跟踪识别。 

发明内容

本发明的目的是为了克服背景技术中的不足之处,基于Kinect传感器系统,融合手势识别跟踪技术及人机交互方式,提供一种基于双目视觉的高精度虚拟装配系统算法。该算法主要是依靠Kinect传感器采集的信息作为输入,在基于模型方法的基础上,将手势的识别跟踪问题转化为一个利用改进的PSO算法解决的最优化问题,并利用GPU提高最优化性能。 

为了解决上述存在的技术问题,本发明是通过以下技术方案实现的: 

一种基于双目视觉的高精度虚拟装配系统算法,该算法内容如下: 

通过Kinect传感器采集用户运动空间信息,包括上肢动作信息、手势信息包括静态手势和动态手势信息作为虚拟装配系统的输入信息,从而使用自然习惯动作完成虚拟装配过程; 

采用Kinect传感器拍摄手部姿态的彩色图像和对应的深度图像信息作为输入信息,通过肤色检测结合深度信息,分割出手部图像,得到观察的模型;应用OpenGL建立手部模型,采用球体、圆柱体、椭球体和椎体四个基本图元,建立一个用27个参数表征的具有26个自由度的3D手部模型; 

将建立的手部模型与采集的手部图像进行对比,计算得到手部模型与手部图像的相似度,采用改进的粒子群优化算法,通过相异性计算公式E(h,O),估算出观察对象与模型对象之间的相异程度,不断优化手部模型的27个参数,使得相似度度量达到最大,最终得到采集图像的手部模型,基于手部模型以及 Kinect传感器的标定信息,最终渲染得到深度图像,实现对手势的跟踪识别,完成虚拟装配系统的信息输入,进而实现高精度虚拟装配过程。 

所述的相异性计算公式E(h,O)为: 

E(h,O)=D(O,h,C)+λk·kc(h)         (1) 

其中λk是一个标准化因数,C表示摄像机的校准信息,h代表模型对象,O代表观察对象;函数D(O,h,C)表示为: 

函数D(O,h,C)中的绝对值表示观察对象与模型对象的箝位深度差,ε用来防止分母为零。 

本发明采用一种合理的统一的评价标准(PTB),通过对包围盒随时间和序列而发生的变化进行统计分析,对不同算法的跟踪效果进行一个具有说服力的比较和评价。该标准需要构造了一个统一的基准数据库,并实现对偏离率统计数据的分析。这个数据库由100段高歧异度的RGBD视频样本构成,其中95段视频样本用于评价,其余5段视频样本用于参数调整,利用2D或3D模型测试不同的跟踪算法,而且提出一种定量比较方法,对依据RGB或RGBD信息进行跟踪的不同算法做出合理的比较和评价。 

由于采用上述技术方案,本发明与现有技术相比,具有这样的有益效果:该算法能实现对手势进行准确稳定的三维实时跟踪,不需要特殊的标记或复杂的图像采集设备,降低了硬件设备的要求和成本;也不需要训练样本,从而更容易进行应用扩展;本发明仅依赖无标记的可视数据;与此同时,本发明还能够解决手指之间相互影响(互相遮挡或接触)的问题,从而实现高精度的虚拟装配。实现在桌面系统上架构成本低廉但人机交互方面效率提高、沉浸感增强的高精度虚拟装配系统。 

附图说明:

附图1是该算法的总体结构示意图; 

附图2是虚拟装配的总体结构示意图; 

附图3是虚拟装配模型的层次构建图; 

附图4是OpenNI for Kinect应用开发流程图; 

附图5是对跟踪识别算法进行评价的统一基准(PTB)的结构图; 

附图6是粒子群优化算法的流程图。 

附图7是改进的粒子群优化算法的流程图。 

具体实施方式:

以下结合附图与具体实施方式对本发明做更为详细的说明: 

一种基于双目视觉的高精度虚拟装配系统算法,主要是依靠Kinect传感器采集的信息作为输入,在基于模型的方法基础上,将手势的识别跟踪问题转化为一个利用改进的PSO算法解决的最优化问题,并利用GPU提高最优化性能。 

所述的Kinect传感器是由微软公司开发的一款体感外设,不仅可以获取彩色数据,还可以获取深度数据,从而获得深度图像。 

该算法通过Kinect传感器采集用户运动空间信息,包括上肢动作信息、手势信息包括静态手势和动态手势信息作为虚拟装配系统的输入信息,从而使用自然习惯动作完成虚拟装配过程。 

所述的Kinect传感器基于OpenNI进行应用开发,主要是基于数据生成器及相关的API函数进行原始影像数据的读取、分析和处理,从而产生那些可以领悟、理解和解释场景的“有意义的”3D数据。 

所述的OpenNI(开放自然交互)是一个多语言、跨平台的框架,它定义了用于编写自然交互应用程序的API,能够让自然交互应用程序开发者利用数据类 型跟踪真实生活中的三维场景。 

所述的虚拟装配系统是根据产品设计的形状、精度等特性,真实地模拟产品三维装配过程,并允许用户以交互方式控制产品的三维虚拟现实装配过程,以检验产品的可装配性,同时也是一种零件模型按约束关系进行重新定位的过程,是有效分析产品设计合理性的一种手段。所述的双目视觉是指能够将跟踪目标从复杂的背景环境中分离出来,实现目标的立体跟踪。所述的GPU用以提高优化效率,实现手势的实时跟踪。 

所述的PSO算法也称粒子群优化算法,其基本思想是通过群体中个体之间的协作和信息共享来寻找最优解。PSO算法初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己。第一个极值就是粒子本身所经历的最优解,这个解被称为个体极值(pbest)。另一个极值是整个种群目前所经历的最优解,这个极值被称为全局极值(gbest)。另外也可以只选取整个种群中的一部分作为粒子的邻居,在所有邻居中的极值被称为局部极值。在找到这两个最优值后,粒子通过下面的两个公式更新自己的速度和位置: 

vidk+1=vidk+c1rand1k(pbestidk-xidk)+c2rand2k(gbestdk-xidk)---(3)

xidk+1=xidk+vidk+1---(4)

PSO算法经变型后如下: 

vk+1=w(vk+c1r1(Pk-xk)+c2r2(Gk-xk))        (5) 

xk+1=xk+vk+1         (6) 

用以优化手部模型参数,从而得到最佳的手部模型。其中,w为惯性权重,控制着前一代产生的粒子速度对本次迭代的影响,c1、c2为加速常数,也称为学习因子,c1+c2>4,对于学习因子c1、c2的取值范围为[0,4]。 由于粒子在运动的初期,粒子本身的经验不足因此需要更多地向群体学习,也就是说c1的取值比c2要小;当粒子运动到一定的阶段时,粒子本身积累了一定的经验后,自我学习的能力加强,因此c1的取值比c2要大。r1和r2为两个在[0,1]范围内变化的随机函数。c1和r1构成的系数影响粒子从个体极值Pk获取的更新信息,c2和r2构成的系数影响粒子从领域极值Gk获取的更新信息。 

所述的改进的PSO算法,即改进的粒子群优化算法,结合了粒子群优化算法具有的全局寻优能力和免疫系统的免疫信息处理机制,并且实现简单,改善了粒子群优化算法摆脱局部极值点的能力,提高了算法后期进化过程中的收敛速度和精度。 

在用人工免疫系统求解优化问题时,满足约束条件的最优解即是抗原;候选解即是抗体,抗体和抗原之间的亲和力反映了候选解和最优解的接近程度,也即反映候选解对约束条件和目标函数的满足程度;抗体和抗体之间的亲和力反映了不同候选解之间的异同,也即反映了抗体的多样性。在进化算法中,保持抗体的多样性可以防止算法陷入局部最优解。依据抗体和抗原之间的亲和力来选择有效抗体能更好地体现“优胜劣汰”的原则,特别是当待选抗体相差不大时,“优胜劣汰”的效果更明显,搜索效率会更高。 

在粒子(抗体)群体更新过程中,总是希望适应度高的粒子(抗体)被保留下来,但如果此类粒子(抗体)过于集中,即浓度过高,则很难保证粒子(抗体)的多样性,很容易使算法陷入局部极优,而丢失那些适应度较差但却保持着较好的进化趋势的粒子(抗体)。因此,本发明采用了基于浓度机制的多样性保持策略,使得新一代粒子(抗体)群体中,各适应度层次的粒子(抗体)维持着一定的浓度,保留高适应度个体的同时,进一步确保了抗体(粒子)的多样性,能避免早熟现象。第i个粒子(抗体)的浓度定义如下: 

D(xi)=1Σj=1N+N0|f(xi)-f(xj)|,i=1,2...,N+N0---(7)

基于粒子(抗体)浓度的概率选择公式为: 

P(xi)=1D(xi)Σi=1N+N01D(xi)=Σj=1N+N0|f(xi)-f(xj)|Σi=1N+N0Σj=1N+N0|f(xi)-f(xj)|,i=1,2,...,N+N0---(8)

其中N为由粒子群优化算法(5)、(6)式产生的新粒子数,N0为随机产生的新粒子数。 

本发明采用Kinect传感器拍摄手部姿态的彩色图像和对应的深度图像信息作为输入,通过肤色检测结合深度信息,分割出手部图像,得到观察的模型。应用OpenGL建立手部模型,其采用球体、圆柱体、椭球体和椎体等基本图元,建立了一个用27个参数表征的具有26个自由度的3D手部模型。将建立的手部模型与采集的手部图像进行对比,计算得到手部模型与手部图像的相似度,采用粒子群优化算法,不断优化手部模型的27个参数,使得相似度度量达到最大,最终得到采集图像的手部模型,基于手部模型以及Kinect传感器的标定信息,最终渲染得到深度图像,实现对手势的跟踪识别,完成虚拟装配系统的信息输入,进而实现虚拟装配过程。 

本发明采用一种合理的统一的评价标准(PTB),通过对包围盒随时间和序列而发生的变化进行统计分析,对不同的算法的跟踪效果进行一个具有说服力的比较和评价。该标准需要构造了一个统一的基准数据库,并实现对偏离率统计数据的分析。这个数据库由100段高歧异度的RGBD视频样本构成,其中95段视频样本用于评价,其余5段视频样本用于参数调整,利用2D或3D模型测试不同的跟踪算法,而且提出一种定量比较方法,对依据RGB或RGBD信息进行跟踪的不同算法做出合理的比较和评价。 

本发明还采用了一种基于深度图的处理遮挡问题的简单算法,以避免将遮挡物误认为是跟踪对象。在RGBD视频样本的每一帧中会有一个包围盒来标定跟踪目标的位置,将包围盒中的所有像素的深度直方图近似为一个高斯分布: 

hi~N(μi,σi2)---(9)

出现遮挡的似然性为: 

Oi=Σd=0μi-σihi(d)/Σdhi(d)---(10)

在实验处理时,红色高斯分布曲线代表跟踪目标的模型,绿色高斯分布曲线代表遮挡物模型。 

本方法可以采用两种指标来评价算法的跟踪性能,第一种是中心位置误差值,它是输出包围盒的中心和真实数据之间的欧氏距离,此指标表示跟踪结果和真实数据的接近程度;但是,此指标不能评价算法的整体性能;所以为了评价算法的整体性能,我们采用第二种指标来评价算法的跟踪性能,本方法运用在PASCAL VOC中使用的标准,输出结果和真实的数据边界的重叠率: 

其中表示在第i帧中跟踪目标的包围盒,表示真实数据包围盒。通过设置一个最小重叠区域rt,可以计算出每个跟踪系统算法的平均成功率R: 

R=1NΣi=1Nui---(12)

其中,ui是一个用来表示在第i帧的输出包围盒是否被接收到的指示器,N表示帧数,rt是决定输出结果是否正确的最小重叠率。另外,将跟踪失败分为三种类型: 

类型Ⅰ:ROITinullROIGinull且ri<rt

类型Ⅱ:ROITinullROIGi=null

类型Ⅲ:ROITi=nullROIGinull

类型Ⅰ表示跟踪目标可视,但跟踪算法的结果却离跟踪目标很远;类型Ⅱ表示看不见跟踪目标,但跟踪算法却输出一个包围盒;类型Ⅲ表示跟踪目标可视但没有任何输出结果。 

图1所示是该算法的总体结构示意图。此算法采用Kinect传感器拍摄手部姿态的彩色图像和对应的深度图像信息作为输入,通过肤色检测结合深度信息,分割出手部图像,得到观察的模型。应用OpenGL建立手部模型,其采用球体、圆柱体、椭球体和椎体等基本图元,建立一个用27个参数表征的具有26个自由度的3D手部模型。将建立的模型与采集的手部图像进行对比,计算得到模型与手部图像的相似度,采用粒子群优化算法(PSO),通过相异性计算公式E(h,O),估算出了观察对象与模型对象之间的相异程度,不断优化手部模型的27个参数,使得相似度度量达到最大,最终得到采集图像的手部模型,基于手部模型以及Kinect传感器的标定信息,最终渲染得到深度图像,实现对手势的跟踪识别,完成虚拟装配系统的信息输入,进而实现虚拟装配过程。 

相异性计算公式为: 

E(h,O)=D(O,h,C)+λk·kc(h)           (1) 

其中λk是一个标准化因数,C表示摄像机的校准信息,h代表模型对象,O代表观察对象。函数D(O,h,C)表示为: 

函数D(O,h,C)中的绝对值表示观察对象与模型对象的箝位深度差,ε用来防止分母为零。 

图2所示是虚拟装配的总体结构示意图。该图清晰地展示了整个虚拟装配系统的总体结构。采用Kinect传感器拍摄手部姿态的彩色图像和对应的深度图像。通过肤色检测结合深度信息,分割出手部图像,获取手部的参数,建立手势模型,并通过OpenNI的API函数进行影像数据的分析和处理,进而识别手势,在虚拟约束范围内完成虚拟装配过程。 

图3所示是虚拟装配模型的层次构建图。使用层次树描述虚拟零件模型的装配层次关系,用一棵树表示装配体,树的根节点表示用户目标装配体,最底层节点即叶节点表示零件,非最底层节点表示子装配体,子装配体又由零件或子装配体构成。 

图4所示是OpenNI for Kinect应用开发流程图。基于OpenNI的Kinect应用开发,主要是基于这些数据生成器及相关的API函数进行原始影像数据的读取、分析和处理,从而产生那些可以领悟、理解和解释场景的“有意义的”3D数据。OpenNI是使用生产节点的定义来描述其工作流的。产生数据的生产节点叫做数据生成器,OpenNI中定义了9种数据生成器,常用的有用户生成器、深度生成器、姿势生成器、手心生成器等。如应用程序要在一个3D场景中跟踪人形的动作,就需要一个生产节点产生身体数据,而用户生成器又需要读取深度生成器的数据。 

图5所示是以统一基准(PTB)对跟踪识别算法进行评价的方法。为了建立一个统一的基准,需要构造一个包含100段视频样本的RGBD数据库,视频样本的中有可变性的目标、各种遮挡情况、移动的摄像机、不同的场景。为了建立一组不同的基线算法,需要设计几种包含深度信息的跟踪算法来减少模型的漂移;并结合一种简单的处理遮挡问题的方案。在评价系统中,数据库中的95段视频样本用于评价,其余5段视频样本用于参数调整。 

图6所示是粒子群优化算法(PSO)的流程图。首先初始化粒子群体(群体规模为n),包括随机位置和速度。然后根据适应度函数,评价每个粒子的适应度。对每个粒子,将其当前适应值与其个体历史最佳位置(pbest)对应的适应值做比较,如果当前的适应值更高,则将用当前位置更新历史最佳位置pbest。再将每个粒子当前适应值与全局最佳位置(gbest)对应的适应值做比较,如果当前的适应值更高,则将用当前粒子的位置更新全局最佳位置gbest。根据公式更新每个粒子的速度与位置。如未满足结束条件,则返回,从评价粒子适应度重新开始,直到算法达到最大迭代次数Gmax或者最佳适应度值的增量小于某个给定的阈值时算法停止。 

图7所示是改进的粒子群优化算法(IPSO)的流程图。首先确定学习因子c1、c2以及粒子群体个数M等参数值,继而进行初始化,针对待求问题的特征,从记忆库中搜寻该类问题的记忆粒子或随机产生N个粒子xi及其速度vi,i=1,2,…,N,形成初始粒子群体H0。然后计算当前粒子群体Hk中粒子的适应度值及Pk、Gk,并把Gk作为免疫记忆粒子存入记忆库中,判断是否满足结束条件,若满足结束条件,则停止运行并输出结果,否则,继续。新粒子的产生主要基于以下两种方式:一是由粒子群优化算法(5)、(6)式产生N个新粒子;二是随机产生N0个新粒子。基于浓度选择粒子,用(8)式计算N+N0个新粒子的选择概率,依概率大小选择N个粒子形成粒子群Qk,将记忆库中的免疫记忆粒子替换粒子群Qk中适应度较差的若干粒子,形成新一代粒子群体Qk+1,然后,转回计算当前粒子群体Hk中粒子的适应度值及Pk、Gk,直至达到最大迭代次数或目标函数值收敛,算法终止。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号