一种用于计算机虚拟装配的隐式交互系统的制作方法

文档序号:10569525阅读:202来源:国知局
一种用于计算机虚拟装配的隐式交互系统的制作方法
【专利摘要】本发明提供了一种用于计算机虚拟装配的隐式交互系统,属于虚拟装配领域。该系统建立场景知识模型和用户知识模型,结合场景知识模型和用户知识模型分别构建显式交互知识库和隐式交互知识库;基于场景任务进行用户隐式意图感知,根据场景物体和虚拟手位置关系的进行场景感知拉近,以及基于物体方向包围盒的特征面和虚拟手的方向关系的进行场景物体旋转。本发明增强了虚拟装配系统的感知能力,降低了用户的操作负担和认知负担。
【专利说明】
一种用于计算机虚拟装配的隐式交互系统
技术领域
[0001] 本发明属于虚拟装配领域,具体涉及一种用于计算机虚拟装配的隐式交互系统。
【背景技术】
[0002] 随着信息技术的发展,人机交互由以机器为中心向以人为中心发展,即机器要协 同用户进行交互。隐式人机交互是以人为中心的新型人机交互,在隐式交互模式下,用户只 需考虑交互任务本身,无需关注任务的执行方式和过程,场景和用户能够相向互动。
[0003] 在现有虚拟装配系统中,人机交互多以显式交互方式进行,比如,装配中的碰撞检 测都是场景物体被动等待用户的靠近,同样地,物体位姿方向的调整也需要通过用户施加 操作命令将旋转物体到合适的方向。显然,这些过程都是单向交互,影响了交互效率和交互 的自然性。因此,有必要将隐式交互融入显式的虚拟装配系统中,使系统中场景物体能主动 的根据用户操作协助用户完成交互任务。
[0004] 目前隐式人机交互已经有了一定进展。文献(徐光祐,陶霖密,史元春,张翔.普适 计算模式下的人机交互[J].计算机学报,2007,07:1041-1053)提出了普适计算模式下,用 户和环境的物理因素将成为交互的重要因素,并将物理空间人机交互分为人机交互接口和 隐式人机交互两个层次。文献(田丰,邓昌智,周明骏,徐礼爽.Post-W頂P界面隐式交互特征 研究[J].计算机科学与探索,2007,02:160-169)从认知心理学的角度对Post-WMP界面下 的隐式交互特征进行分析和描述,提出了利用识别技术、上下文感知技术和用户修正技术 相结合的方法来支持Post-WMP界面的隐式交互,并构造了 Post-WMP界面的交互任务生 成框架。文献(王巍,黄晓丹,赵继军,申艳光.隐式人机交互[J].信息与控制,2014,01:101 -109.)根据设备主动性和用户注意力两个维度将隐式交互分为提醒式交互、自动式交互和 环境代理式交互,全面地总结了隐式人机交互的研究现状和进展。
[0005] 虚拟装配是人机交互的典型应用场景,虽然不少相关研究都提高了用户操作的自 然性和装配的智能性,但现有虚拟装配系统仍然以机器为中心进行交互,需要用户配合机 器来完成交互。文献(程成,赵东坡,卢保安.虚拟环境的用户意图捕获[J].中国图象图形学 报,2015,02:271-279.)提出了用户意图理解多通道模型和算法,提高了虚拟环境中机器的 认知能力和系统的交互效率,但在意图表达的准确性方面还有待完善。文献(马延周.虚拟 场景中协同感知技术研究[D].解放军信息工程大学,2008:39-46)提出了虚拟场景中的用 户替身模型和可视化的多用户协同感知模型,实现了虚拟场景中协同用户间感知与交互的 共享。但存在由于网络延迟及用户间不一致导致的交互问题。文献(张丹,左敦稳,焦光明, 闫静,李建平,刘玉广.面向虚拟装配的约束建模与装配意图捕捉技术[J].计算机集成制造 系统,2010,06:1208-1214)给出了约束元素包围盒的构建原则和方法,并基于约束元素包 围盒的相交测试提出了装配意图的层次识别规则,提高了虚拟装配操作的精度和效率。文 献(曹兆元,刘惠义,杨战军,郑源.基于情境上下文的智能虚拟装配动作预测模型[J].计算 机工程与设计,2013,04:1366-1370)提出了基于任务的装配模型实现用户的活动感知。文 南犬(Yuanyuan Su,Zhiquan Feng.Research on the Objects Selection Method of 3D Interactive Interface.International Conference on Intelligent System Design and Engineering Applications .Volume 1,2013,p537_540)提出一种虚拟装配平台下的 基于导航信息模型,并基于此导航信息模型提出了新的物体选择和碰撞检测算法。文献 (Aehnelt M,Gutzeit E,Urban B.Using Activity Recognition for the Tracking of Assembly Processes:Challenges and Requirements[J].WOAR,2014:12-21)通过对虚拟 装配动作模式的分析,建立了智能虚拟装配动作预测模型,并进行基于实例的动作意图预 测。以上研究虽然一定程度上提高了系统的感知能力,但都存在场景不能主动感知用户的 操作意图,场景主动性低的问题,降低了用户的交互体验。

【发明内容】

[0006] 本发明的目的在于解决上述现有技术中存在的难题,提供一种用于计算机虚拟装 配的隐式交互系统,基于现有虚拟装配系统中存在场景不能感知用户意图和用户相向互动 的问题,通过建立显式交互知识库和隐式知识交互库,并利用专家系统推理用户的操作意 图,提高了场景的主动性,方便用户完成交互任务。
[0007] 本发明是通过以下技术方案实现的:
[0008] -种用于计算机虚拟装配的隐式交互系统,其特征在于,包括:
[0009] 建立场景知识模型模块:场景知识随着交互任务进行而变化,包括显式场景知识 库和隐式场景知识库;所述显式场景知识库由物体知识库和虚拟手知识库组成,物体知识 库包含物体编号、物体位置、物体角度、物体的选择标志、物体的操作属性、物体的状态和物 体操作完成标志;所述物体角度是用物体0BB包围盒特征面的法向量表示;所述物体的选择 标志表示物体被选中并对物体进行任务操作;所述物体的操作属性是指在场景任务中对已 选物体能够进行的操作,包括装配物体的抓取、平移、释放;所述物体的状态是指物体的操 作属性对应的操作是否执行;所述物体操作完成是指物体的操作属性对应的操作都执行完 毕;所述虚拟手知识库包含虚拟手的位置和虚拟手的向上法向量的角度;所述隐式场景知 识为场景中物体间和物体与虚拟手的特征关系,包括物体和虚拟手的位置关系、物体和虚 拟手的角度关系、物体的关联物体、关联物体的高光显示标志、关联物体的高光显示次数、 物体的拉近标志、物体的旋转标志、物体和虚拟手的位置关系阈值、关联物体和虚拟手的位 置关系阈值、物体和虚拟手的方向关系阈值、关联物体和虚拟手的方向关系阈值;所述物体 的拉近包括:根据当前物体,场景向虚拟手靠近和根据当前物体的关联物体,场景向虚拟 手靠近;所述物体的旋转包括物体顺时针向虚拟手旋转、物体逆时针向虚拟手旋转、当前物 体的关联物体顺时针向当前物体旋转和当前物体的关联物体逆时针向当前物体旋转;
[0010] 建立用户知识模型模块:用户知识包括用户的手部位置变化和手势;所述用户的 手部位置变化包括X变化和y变化,并把用户手部的X变化或y变化超过50mm定义为位置变 化;所述手势包含12指抓手势和12指放手势;所述位置变化包括位置向上变化、位置向下变 化和其他方向变化;
[0011]构建显式交互知识库模块:显式交互是系统把显式场景信息和用户的动作当作输 入,感知用户的直接交互意图,根据用户的意图语义产生显式输出;所述显式交互知识库包 括显式场景知识库和用户动作知识库;所述显式场景知识库中的前提包括上一次推理的意 图、物体的操作属性、手部位置是否变化、手势和规则数目;结论包括手部动作和用户意图; 所述手部动作包括手向上移动、手向下移动、手向其他方向移动、手握紧和手张开;所述用 户意图包括休息、操作、选择、抓取、平移和释放;
[0012] 构建隐式交互知识库模块:隐式交互是把用户显式意图和情境隐含知识当作隐式 输入,环境主动配合用户的显式意图产生隐式输出,协助用户完成交互任务;所述隐式交互 知识库包括隐式场景知识和用户意图;所述隐式交互知识库中的前提包括当前用户意图和 当前用户意图的关联类型,结论包括用户的隐式意图;所述当前用户意图的关联类型包括 当前物体和虚拟手的位置关系、当前物体的关联物体显示、当前物体和关联物体的位置关 系、当前物体和虚拟手的角度关系和当前物体和关联物体的角度关系;所述用户的隐式意 图包括根据当前物体,场景向虚拟手靠近、根据当前物体的关联物体,场景向虚拟手靠近、 物体向虚拟手顺时针旋转、关联物体向物体顺时针旋转、物体向虚拟手逆时针旋转、关联物 体向物体逆时针旋转。
[0013] 用户隐式意图感知模块:基于场景任务进行用户隐式意图感知;
[0014] 场景感知拉近模块:根据场景物体和虚拟手位置关系的进行场景感知拉近;
[0015] 场景物体旋转模块:基于物体方向包围盒的特征面和虚拟手的方向关系的进行场 景物体旋转。
[0016] 作为对本技术方案的进一步限定,所述用户隐式意图感知模块是这样实现的:
[0017] S1:建立并读取物体知识库、用户知识模型和显式交互知识库、隐式交互知识库和 综合数据库,当前任务编号初始化为0,当前任务完成标志初始化为假;
[0018] S 2:根据显式场景知识库中的物体操作属性确定可操作的物体数目,确定场景任 务最大编号;
[0019] S3:判断当前任务编号是否超过场景任务最大编号,如果是,退出;如果否,转S4;
[0020] S4:判断当前物体操作状态与场景库里物体操作状态是否相同,如果是,当前任务 完成,当肖U任务完成标志变为真;
[0021] S5:当开始检测标志记录为假时,记录手的初始位置及手的当前位置,当手的当前 位置与初始位置的差值大于50mm时,开始检测;
[0022] S6:当用户操作意图为选中装配物体时,将物体的操作属性和当前任务完成标志 存入综合数据库,当前任务编号加1;
[0023] S7:判断用户操作标志是否为真,如果是,执行操作,并将用户操作标记变为假;如 果否,转S8;
[0024] S8:利用肤色模型进行手部分割,获取从开始检测之后的十帧用户的手势主方向 特征和手部位置,选取第一帧和第十帧的手势特征,与模板库特征进行类-Hausdorff?距离 模板匹配;选取第一帧和第十帧的手部位置判断手势位置变化;将手势识别结果和手部位 置变化存入综合数据库中;
[0025] S9:将综合数据库中的物体的操作属性、手势识别结果和手部位置变化作为当前 事实,遍历显式交互知识库,推理出最终结论,存入综合数据库中;
[0026] S10:根据推理的最终结论,确定用户动作的显式意图;如果当前任务完成标志为 未完成,则将最终结论作为下一次推理的前提:上一次推理的意图,否则,不把最终结论作 为下一次推理的如提,并更改当如任务完成标志为未完成;
[0027] S11:把用户的显式意图和隐式场景知识当作隐式输入,遍历隐式交互知识库,推 理出最终结论,并存入综合数据库中;
[0028] S12:根据用户的显式意图和隐式意图将对应操作标志变为真,执行相应操作,更 改对应的物体的操作状态,之后将开始检测标志和对应操作标志变为假,转S3。
[0029] 作为对本技术方案的进一步限定,所述场景感知拉近模块是这样实现的:
[0030] P1:判断当前用户的操作意图,如果操作意图是平移,转P2;
[0031] P2:根据实际手和粒子滤波跟踪算法得到虚拟手的位置,根据式(1)计算虚拟手的 移动速度V;
(1)
[0033] 其中,loci表示虚拟手的末位置,loco表示虚拟手的初位置,t为虚拟手运动的帧 数;
[0034] P3:如果当前物体状态为没有被抓取,根据式(2)计算虚拟手的末位置和当前操作 物体位置的距离d1;
(2)
[0036]其中,〇1表示第i个场景物体的位置;
[0037] P4:如果cU大于距离阈值,则当前操作物体主动向虚拟手靠近。根据式(3)求取场 景拉近的帧数f rame;
(:3)
[0039] 其中,thre_dl表示距离阈值;
[0040] P5:如果当前物体状态为已被抓取,根据式(4)计算当前操作物体的位置和关联物 体位置的距离d2;
(4)
[0042]其中,c/ i表示第i个场景物体关联物体的位置。
[0043] P6:如果d2大于距离阈值,则当前操作物体的关联物体主动向虚拟手靠近,根据公 式(5)求取场景拉近的帧数f rame;
(5)
[0045] 其中,thre_d2表示距离阈值;
[0046] P7:场景中各物体逐帧向虚拟手靠近距离V,逐帧更新场景中各物体的位置。
[0047] 作为对本技术方案的进一步限定,所述场景物体旋转模块是这样实现的:
[0048] T1:判断当前用户的操作意图,如果是抓取或释放,转T2;
[0049] T2:求出场景中物体的中心和协方差矩阵,计算协方差矩阵的特征向量,计算物体 的0BB长方体包围盒;
[0050] T3:求取并记录0BB包围盒各面的面积si及其法向量礼:;:
[0051 ] T4:当用户操作意图为抓取时,物体方向为抓取面的方向,选择最小面的法向量 ^作为抓取时物体的方向向量;
[0052] T5:如果虚拟手的向上法向量f和当前物体的方向向量^^的夹角满足式(6 ),则 物体绕虚拟手的法向量旋转;
(6)
[0054] T6:计算虚拟手的向上法向量和当前物体的方向向量;^在X0Y平面的投影向量 心和*^,计算两个向量与X轴的夹角angelv和angeli;
[0055] T7:如果angelv和angeli满足式(7),则物体绕虚拟手顺时针旋转(anglel_thre_ anglel);
[0056] angelv^;angeli^;(angelv+180°) (7)
[0057] 如果angelv和angeli满足式(8),物体绕虚拟手逆时针旋转(anglel_thre_ anglel);
[0058] (angelv+180。)<angeli< (angelv+360。) (8)
[0059] T8:根据式(9)更新当前操作物体各面的法向量;
[0060] S 9 =. 〇. ^ (9) Su Su Su 0 r n - S2, S2, 0
[0061 ]丨=..... n 53t 53lu -0 0 〇 ij (10) 切s 沒十沒' * (1 - eos (9) t? % * (1 - cos - c * sin 沒 fl * c * (1 - cos (9)十办* sin 沒 0 " /?*(7*(l-cos^) + r*sin 汐 cos 沒+ cos:6*) - cos 沒)一(?*sin 沒 0
[0062] "二 ' a ^ c ^ (1 - cos(9) - ^^sia c ^ Z? * (1 - cos+ a * sin 8 cos j9+e_*(l-coS(9) 0 - 0 0 0 d ui)
[0063] 其中9 = -(anglel_thre_anglel) 〇
[0064] T9:当用户操作意图为释放时,物体方向为装配面的方向,选择最大面的法向量 S作为释放时物体的方向向量;
[0065] T10 :如果当前物体方向向量^;和关联物体装配面的法向量^的夹角满足式 (12 ),则关联物体绕当前物体旋转;
(12)
[0067] T11:计算当前物体的方向向量^和当前物体关联物体装配面的法向量^在 X0Y平面的投影向量$mm和.s,计算两个向量与X轴的夹角ange 1 i和ange 1' i;
[0068] T12:如果angeli和angel、满足式(13),则关联物体绕当前物体顺时针旋转 (angle2_thre_angle2);
[0069] angeliMangel7 (angeli+180°) (13)
[0070]如果angeli和angel/ i满足式(14),则关联物体绕当前物体逆时针旋转(angle2_ thre_angle2);
[0071] (angeli+180。Xangel/(angeli+360。) (14)
[0072] T13:根据式(9)更新当前操作物体关联物体各面的法向量,0 = (anglel_thre_ anglel)〇
[0073] 与现有技术相比,本发明的有益效果是:。
[0074] 本发明针对现有虚拟装配系统不能感知用户操作意图和用户相向互动的问题,提 出了基于场景任务的用户隐式意图感知算法,增强了虚拟装配系统的感知能力;并提出了 场景物体感知拉近算法和场景物体旋转算法,降低了用户的操作负担和认知负担。
【附图说明】
[0075] 图1本发明方法的步骤框图 [0076]图2-次碰撞检测的平均时间 [0077]图3-次碰撞检测手的平均移动距离 [0078]图4总装配任务平均操作时间 [0079]图5总装配任务平均移动距离
[0080] 图6用户评价。
【具体实施方式】
[0081] 下面结合附图对本发明作进一步详细描述:
[0082] 针对现有虚拟装配系统中存在场景不能感知用户意图和用户相向互动的问题, 本发明将隐式人机交互引入虚拟装配系统,通过建立显式交互知识库和隐式交互知识库, 并利用专家系统推理用户动作的显式语义及其隐式语义,增加了场景的主动感知能力,从 而使用户使用较少地手势命令完成交互任务,降低了用户的操作负担和认知负担。本发明 的特点主要体现在:(1)建立场景知识模型和用户知识模型,结合场景知识模型和用户知识 模型分别构建显式交互知识库和隐式交互知识库,实现虚拟装配交互界面的隐式交互;(2) 本发明提出了根据场景物体和虚拟手位置关系的场景感知拉近算法和基于物体方向包围 盒(0BB)的特征面和虚拟手的方向关系的场景物体旋转算法。实验表明,本发明的算法减少 了虚拟装配交互的时间和移动距离,降低了用户的操作负担,提高了交互的自然性。
[0083]本发明中的知识库设计如下:
[0084]本发明的知识模型包括场景知识模型和用户知识模型,场景知识模型和用户知识 模型都用结构体定义。
[0085]场景知识模型如下:
[0086] 场景知识随着交互任务进行而变化,包括显式场景知识(Explicit Scene knowledge)和隐式场景知识(Implicit Scene knowledge),。
[0087]显式场景知识(Explicit Scene knowledge)由物体(Object)和虚拟手(Virtual Hand)组成,物体包含物体编号(number)、物体位置(1 ocat ion)、物体角度(ange 1)、物体的 选择标志(select)、物体的操作属性(type)、物体的状态(status)和物体操作完成标志 (flag)。本发明中的物体的角度由物体OBB包围盒(Oriented Bounding Box)特征面的法向 量表示。
[0088] 物体的选择标志表示物体被选中并对物体进行任务操作。物体的操作属性是指在 场景任务中对已选物体可以进行的操作,包括装配物体的抓取平移释放。物体的状态是指 物体的操作属性对应的操作是否执行,任务完成是指物体的操作属性对应的操作都执行。 虚拟手包含虚拟手的位置(location)和虚拟手的向上法向量的角度(angle)。
[0089] 隐式场景知识为场景中物体间和物体与虚拟手的特征关系,主要包括物体和虚拟 手的位置关系(location realtion)、物体和虚拟手的角度关系(angle relation)、物体的 关联物体(relation object)、关联物体的高光显示标志(light flag)、关联物体的高光显 示次数(light number)物体的拉近标志(near flag)、物体的旋转标志(rotation flag)、 物体和虚拟手的位置关系阈值(location thresholdl)、关联物体和虚拟手的位置关系阈 值(location threshold2)、物体和虚拟手的方向关系阈值(angel thresholdl)、关联物体 和虚拟手的方向关系阈值(ange 1 thresho 1 d2)。物体的拉近包括:根据当前物体,场景向虚 拟手靠近和根据当前物体的关联物体,场景向虚拟手靠近。物体的旋转包括物体顺时针向 虚拟手旋转、物体逆时针向虚拟手旋转、当前物体的关联物体顺时针向当前物体旋转和当 前物体的关联物体逆时针向当前物体旋转。
[0090]场景知识形式化定义为:
[0091] Struct SKM= {Struct EX-SK,Struct IM-SK}〇
[0092] Struct EX_SK= {Struct 0BJ[N],Struct Virhand},N为物体的个数。
[0093] 其中,Struct 0BJ= {int number,double location[3],double angel[3],int type,bool select,bool status[3],bool flag};
[0094] Struct Virhand={double location[3],double angel[3]}〇
[0095] Struct IM_SK={double re_location[N],double re_angel[N],int relation [N][N],int near[N],int rotation[N],bool bLight,int lightnum,bool bNear,bool bRotate,double LocationThresholdl,double LocationThreshold2,double AngelThresholdl,double AngelThreshold2}〇
[0096]本发明显式场景物体知识库如表1所示。
[0099]表 1
[0100]用户知识模型如下:
[0101 ] 用户知识包括用户的手部位置变化(handchange)和手势(handgesture)。用户的 手部位置变化包括x变化(Xchange)和y变化(Ychange),并把用户手部的x变化或y变化超过 50mm定义为位置变化。手势包含12指抓手势和12指放手势。位置变化包括位置向上变化、位 置向下变化和其他方向变化。用户知识形式化表示为:
[0102] Struct UKM{
[0103] double Xchange;
[0104] double Ychange;
[0105] int handgesture用户知识库如表2所示。
[0107]表2
[0108] 显式交互知识库如下:
[0109]显式交互是系统把显式场景信息和用户的动作当作输入,感知用户的直接交互意 图,根据用户的意图语义产生显式输出。显式交互知识库包括显式场景知识库和用户动作 知识库。
[0110]本发明中显式交互知识库由产生式规则组成,即"IF前提,TNEN结论"的形式。
[0111 ] 显式交互知识库前提包括上一次推理的意图(preintention)、物体的操作属性 (type)、手部位置是否变化(Xchange和Ychange)、手势(handgesture)和规则数目(num)。结 论包括手部动作(action)和用户思图(intention)。手部动作包括手向上移动、手向下移 动、手向其他方向移动、手握紧和手张开。用户意图包括休息、操作、选择、抓取、平移和释 放。根据虚拟装配平台任务和功能,包括16条规则。
[0112] 规则RL1:如果 Ychange〉= Threshold,
[0113] 那么手部动作为"手向上移动"。
[0114] 规则RL2:如果 Ychange〈 = _Threshold,
[0115] 那么手部动作为"手向下移动"。
[0116]规则RL3:如果 Xchange〈 = Threshold且Ychange〈 = Threshold,
[0117] 那么手部动作为"手移动"。
[0118] 规则RL4:如果手势为"12指抓",
[0119] 那么手部动作为"手握紧"。
[0120]规则RL5:如果手势为"12指放",
[0121]那么手部动作为"手张开"。
[0122] 规则RL6:如果手部动作为"手向上移动",
[0123] 那么用户意图为"操作"。
[0124] 规则RL7:如果手部动作为"手向下移动",
[0125] 那么用户意图为"休息"。
[0126] 规则RL8:如果物体的选择标志为假且手部动作为手移动且"用户操作",
[0127] 那么用户意图为"选择物体"。
[0128] 规则RL9:如果上一次推理的意图为"选择"且物体的操作属性为抓取平移释放 且手部动作为"手移动",
[0129] 那么用户意图为"平移"。
[0130]规则RL10:如果上一次推理的意图为"抓取"且物体的操作属性为抓取平移释放 且手部动作为"手张开",
[0131]那么用户意图为"释放"。
[0132] 规则RL11:如果上一次推理的意图为"抓取"且物体的操作属性为抓取平移释放 且手部动作为"手移动",
[0133] 那么用户意图为"平移"。
[0134] 规则RL12:如果上一次推理的意图为"平移"且物体的操作属性为抓取平移释放 且手部动作为"手握紧",
[0135] 那么用户意图为"抓取"。
[0136] 规则RL13:如果上一次推理的意图为"平移"且物体的操作属性为抓取平移释放 且手部动作为"手移动"
[0137] 那么用户意图为"平移"
[0138] 规则RL14:如果上一次推理的意图为"平移"且物体的操作属性为抓取平移释放 且手部动作为"手张开",
[0139] 那么用户意图为"释放"。
[0140]规则RL15:如果上一次推理的意图为"释放"且物体的操作属性为抓取平移释放 且手部动作为"手握紧",
[0141] 那么用户意图为"抓取"。
[0142] 规则RL16:如果上一次推理的意图为"释放"且物体的操作属性为抓取平移释放 且手部动作为"手移动",
[0143] 那么用户意图为"平移"。
[0144] 隐式交互知识库如下:
[0145] 隐式交互把用户显式意图和情境隐含知识当作隐式输入,环境主动配合用户的显 式意图产生隐式输出,协助用户完成交互任务。隐式交互知识库由隐式场景知识和用户意 图组成。
[0146] 本发明中隐式交互知识库由产生式规则组成,8卩"IF前提,TNEN结论"的形式。
[0147] 隐式交互知识库前提包括:当前用户意图和当前用户意图的关联类型,结论包括 用户的隐式意图。当前用户意图的关联类型包括当前物体和虚拟手的位置关系、当前物体 的关联物体显示、当前物体和关联物体的位置关系、当前物体和虚拟手的角度关系和当前 物体和关联物体的角度关系。用户的隐式意图包括根据当前物体,场景向虚拟手靠近、根据 当前物体的关联物体,场景向虚拟手靠近、物体向虚拟手顺时针旋转、关联物体向物体顺时 针旋转、物体向虚拟手逆时针旋转、关联物体向物体逆时针旋转。隐式交互知识库包括7条 规则。
[0148] 规则 1:如果显式意图为"平移"且 re_location[K]> = LocationThresholdl,
[0149] 那么隐式意图为"根据当前物体,场景向虚拟手靠近"。
[0150] 规则2:如果显式意图为"平移"且re_location[K_relation]> = LocationThreshold2,
[0151]那么隐式意图为"根据当前物体的关联物体,场景向虚拟手靠近"。
[0152] 规则3:如果显式意图为"抓取"且lightnum = 0,
[0153]那么隐式意图为"当前物体的关联物体高光显示"。
[0154] 规则4:如果显式意图为"抓取"且re_angel[K]> = angel thresholdl且物体的 旋转标志为顺时针,
[0155] 那么隐式意图为"物体顺时针旋转夹角减去角度阈值"。
[0156] 规则5:如果显式意图为"抓取"且re_angel[K]> = angel thresholdl且物体的 旋转标志为逆时针
[0157] 那么隐式意图为"物体逆时针旋转夹角减去角度阈值"。
[0158] 规则6:如果显式意图为"释放"且 re_angel[K_relation]> = angelthreshold2 且物体的旋转标志为顺时针
[0159] 那么隐式意图为"关联物体顺时针旋转夹角减去角度阈值"。
[0160] 规则7:如果显式意图为"释放"且 re_angel[K_relation]> = angel threshold〗 且物体的旋转标志为逆时针
[0161]那么隐式意图为"关联物体逆时针旋转夹角减去角度阈值"。
[0162] 本发明基于场景任务的用户隐式意图感知算法如下:
[0163] 本发明提出了基于场景任务的用户隐式意图感知算法(Implicit Intention Perception algorithm based on Scene Task, IIP-ST),算法框图如图 1 所不.
[0164] 算法步骤为:
[0165] S1:建立并读取显式场景物体知识库、用户手势库和显式交互知识库、隐式交互知 识库和综合数据库,当前任务编号初始化为〇,当前任务完成标志初始化为假;
[0166] S 2:根据显式场景知识库中的物体操作属性确定可操作的物体数目,确定场景任 务最大编号;
[0167] S3:判断当前任务编号是否超过场景任务最大编号,如果是,退出;如果否,转S4;
[0168] S4:判断当前物体操作状态与场景库里物体操作状态是否相同,如果是,当前任务 完成,当肖U任务完成标志变为真;
[0169] S5:当开始检测标志记录为假时,记录手的初始位置及手的当前位置,当手的当前 位置与初始位置的差值大于50mm时,开始检测;
[0170] S6:当用户操作意图为选中装配物体时,将物体的操作属性和当前任务完成标志 存入综合数据库,当前任务编号加1;
[0171] S7:判断用户操作标志是否为真,如果是,执行操作,并将用户操作标记变为假;如 果否,转S8;
[0172] S8:利用肤色模型进行手部分割,获取从开始检测之后的十帧用户的手势主方向 特征和手部位置。选取第一帧和第十帧的手势特征,与模板库特征进行类-Hausdorff?距离 模板匹配;选取第一帧和第十帧的手部位置判断手势位置变化;将手势识别结果和手部位 置变化存入综合数据库中;
[0173] S9:将综合数据库中的物体的操作属性、手势识别结果和手部位置变化作为当前 事实,遍历显式交互知识库,推理(请参考王亚南.专家系统中推理机制的研究与应用[D]. 武汉理工大学,2006:7-13.)出最终结论,存入综合数据库中;
[0174] S10:根据推理的最终结论,确定用户动作的显式意图;如果当前任务完成标志为 未完成,则将最终结论作为下一次推理的前提:上一次推理的意图,否则,不把最终结论作 为下一次推理的如提,并更改当如任务完成标志为未完成;
[0175] S11:把用户的显式意图和隐式场景知识当作隐式输入,遍历隐式交互知识库,推 理出最终结论,并存入综合数据库中;
[0176] S12:根据用户的显式意图和隐式意图将对应操作标志变为真,执行相应操作,更 改对应的物体的操作状态,之后将开始检测标志和对应操作标志变为假,转S3;
[0177] 本发明场景物体感知拉近算法如下:
[0178] 在虚拟装配系统中,碰撞检测是不可缺少的过程,但现有研究大都需要用户主动 不断操作,直到系统检测到满足碰撞检测条件为止,影响了交互的效率。为此,本发明提出 了根据场景物体和虚拟手位置关系的场景物体感知拉近算法,步骤为:
[0179] S1:判断当前用户的操作意图,如果操作意图是平移,转S2;
[0180] S2:根据实际手和粒子滤波跟踪算法得到虚拟手的位置,根据式(1)计算虚拟手的 移动速度V;
(1)
[0182] 其中,loci表示虚拟手的末位置,loco表示虚拟手的初位置,t为虚拟手运动的帧 数。
[0183] S3:如果当前物体状态为没有被抓取,根据式(2)计算虚拟手的末位置和当前操作 物体位置的距离d1;
(2)
[0185] 其中,〇1表示第i个场景物体的位置。
[0186] S4:如果cU大于距离阈值,则当前操作物体(场景)主动向虚拟手靠近。根据式(3) 求取场景拉近的帧数frame;
(3)
[0188] 其中,thre_dl表示距离阈值。
[0189] S5:如果当前物体状态为已被抓取,根据式(4)计算当前操作物体的位置和关联物 体位置的距离d2;

[0191]其中,c/ i表示第i个场景物体关联物体的位置。
[0192] S6:如果d2大于距离阈值,则当前操作物体的关联物体(场景)主动向虚拟手靠近。 根据公式(5)求取场景拉近的帧数f rame;
(5)
[0194] 其中,thre_d2表示距离阈值。
[0195] S7:场景中各物体逐帧向虚拟手靠近距离V,逐帧更新场景中各物体的位置。
[0196] 本发明中的场景物体旋转算法如下:
[0197] 在进行抓取和释放物体的过程中,需要检查物体的位姿是否匹配,本发明提出了 基于物体0BB包围盒方向特征面和虚拟手方向关系的场景物体旋转算法,使物体能够感知 用户的位姿,并主动调整自身位姿以适应用户。算法步骤为:
[0198] S1:判断当前用户的操作意图,如果是抓取或释放,转S2;
[0199] S2:根据文献(吴强.基于0BB碰撞检测及其算法改进研究[D].郑州大学,2007:14-16)的方法求出场景中物体的中心和协方差矩阵,计算协方差矩阵的特征向量,计算物体的 0BB长方体包围盒;
[0200] S3:求取并记录0BB包围盒各面的面积Si及其法向量洗;
[0201] S4:当用户操作意图为抓取时,物体方向为抓取面的方向,本发明选择最小面的 '法赠 E作力臟日寸雛白勺加赠;
[0202] S5:如果虚拟手的向上法向量f和当前物体的方向向量^的夹角满足式(6 ),则 物体绕虚拟手的法向量旋转;
(6)
[0204] S6:计算虚拟手的向上法向量^和当前物体的方向向量^;在乂(^平面的投影向量 5V和义?,计算两个向量与X轴的夹角angelv和angeli;
[0205] S7:如果angelv和angeli满足式(7),则物体绕虚拟手顺时针旋转(anglel_thre_ anglel);
[0206] angelv^;angeli^;(angelv+180°) (7)
[0207]
[0208] 如果angelv和angeli满足式(8),物体绕虚拟手逆时针旋转(anglel_thre_ anglel);
[0209] (angelv+180。)<angeli< (angelv+360。) (8)
[0210] S8:根据式(9)更新当前操作物体各面的法向量;
[0211] ^ ? r = ^ (9) ^1, 0 r , - S2, S2, S2:〇
[0212]《.= n Up ^3: 0 - 000]_」 (10) eos ^ ^^ (1 -eos^) a ^ Z? * (1 - cos $)-c^ sin 0 a*r*(l-eos 沒)+為本 sin 沒 0
[0213] p: _ ^ ^ a ^ (1 - cos 0) + c * sin ^ eos 0 ^ - 〇〇& &) d* (1 -cos沒)一u 中 sin 沒 0 eas B)- B c^'b^{\ -eos^) + a^sin^ ^(1 -cosi9j 0 - 0 0 0 !J (11)
[0214] 其中9 = -(anglel_thre_anglel) 〇
[0215] S9:当用户操作意图为释放时,物体方向为装配面的方向,本发明选择最大面的法 向量作为释放时物体的方向向量:;
[0216] S10 :如果当前物体方向向量t和关联物体装配面的法向量Z的夹角满足式 (12 ),则关联物体绕当前物体旋转;
(12 )
[0218] SI 1:计算当前物体的方向向量^;和当前物体关联物体装配面的法向量;^在 X0Y平面的投影向量和计算两个向量与X轴的夹角ange 1 i和ange 1' i;
[0219] S12:如果angeli和angel、满足式(13),则关联物体绕当前物体顺时针旋转 (angle2_thre_angle2);
[0220] angeliMangel7 i^; (angeli+180°) (13)
[0221 ]如果angeli和angel/ i满足式(14),则关联物体绕当前物体逆时针旋转(angle2_ thre_angle2);
[0222] (angeli+180。Xangel/(angeli+360。) (14)
[0223] S13:根据式(9)更新当前操作物体关联物体各面的法向量,0 = (anglel_thre_ anglel)〇
[0224] 下面通过实验来说明本发明方法的技术效果:
[0225] 手势识别是三维手势交互的关键。本发明采用基于kinect的手势识别(请参考郑 斌珏.基于Kinect深度信息的手势识别[D].杭州电子科技大学,2014:7-11)。本发明采用文 南犬(Yang Xuewen,Feng Zhiquan,Huang Zhongzhu,He Nana.A Ges ture Recognition Algorithm Using Hausdorff-Like Distance Tempi ate Matching Based on the Main Direction of Gesture[C]//Appl ied Mechanics and Materials.2015,713:2156-2159) 提出的基于手势主方向及空间手势坐标点分布特征匹配的识别方法。
[0226] 本发明虚拟装配场景任务包括选择物体,并对物体进行平移一抓取一平移一释放 操作,最终将物体放置到装配位置。
[0227] 本发明虚拟装配平台用OpenGL构建。
[0228] 对比实验如下
[0229] 文南犬(Yuanyuan Su , Zhiquan Feng . Research on the Objects Selection Method of 3D Interactive Interface.International Conference on Intelligent System Design and Engineering Applications.Volume 1,2013,p537_540)提出的基于 导航信息模型的碰撞检测算法(Collision Detection algorithm based on Navigation Information Model,CD-OTM),可以降低用户的认知和操作负担。本发明隐式交互IIP-SC算 法意在降低用户的操作和认知负担,因此和⑶-N頂算法进行对比。
[0230] 本发明实验是在距离kinectl. 2米的位置进行,10名操作熟练的实验者分别进行 10次实验,每次实验都是连贯地完成,并让操作者对完成装配任务过程进行NASA(请参考高 思华.飞行员飞行操控训练系统的研究与实现[D].吉林大学,2013:46)评价打分。分别统计 了两种算法的一次碰撞检测的时间、一次碰撞检测手的移动距离、总装配任务操作时间和 总装配任务移动距离,并求出每个操作者的平均值。本发明中一次碰撞检测是指从选中物 体开始到与发生物体碰撞检测的过程,总装配任务是指将场景中的所有可装配物体装配完 成。
[0231 ] -次碰撞检测的平均时间如图2所示。IIP-ST算法一次碰撞检测平均时间为2000- 3000ms,CD-N頂算法一次碰撞检测平均时间为3000-3500ms。
[0232] -次碰撞检测手的平均移动距离如图3所示。IIP-ST算法一次碰撞检测平均移动 距离为20CK350mm,Q)-NIM算法一次碰撞检测平均移动距离为300-400mm。
[0233] 总装配任务平均操作时间如图4所示。IIP-ST算法总装配任务平均操作时间为 5500-7000ms,CD-N頂算法总装配任务平均操作时间为8000-9000ms。
[0234] 总装配任务平均移动距离如图5所示。IIP-ST算法总装配任务平均移动距离为 3000-4000mm,CD-NIM算法总装配任务平均移动距离为5000-6000mm.
[0235] 从实验结果可以看出,IIP-ST算法相比仅采用显式交互的⑶-NIM算法,由于融入 了隐式交互,使人机能双向互动,减少了用户操作的时间和移动距离,提高了操作效率。
[0236] 本发明NASA用户评价指标分为脑力要求(mental demand)、体力要求(physical demand)、操作绩效(performance)、努力程度(effort)和受挫程度(frustration)。其中,脑 力要求描述了用户操作记忆负荷,体力要求描述了用户操作吃力程度,操作绩效表示用户 操作的顺利程度,努力程度描述了用户在操作过程中是否感到轻松,受挫程度描述了用户 在操作过程中产生的消极程度。NASA评价指标采用5分制,每个指标分为5个等级,0-1分表 不认知负担微小,1-2分表不认知负担比较小,2-3分表不认知负担一般,3-4分表不认知负 担比较大,4-5分表示认知负担很大。从图6可以看出,本发明算法的各项指标都在2分以内, 用户认知负荷较低,用户评价较高。
[0237] 上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本 发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本 发明上述【具体实施方式】所描述的方法,因此前面描述的方式只是优选的,而并不具有限制 性的意义。
【主权项】
1. 一种用于计算机虚拟装配的隐式交互系统,其特征在于,包括: 建立场景知识模型模块:场景知识随着交互任务进行而变化,包括显式场景知识库和 隐式场景知识库;所述显式场景知识库由物体知识库和虚拟手知识库组成,物体知识库包 含物体编号、物体位置、物体角度、物体的选择标志、物体的操作属性、物体的状态和物体操 作完成标志;所述物体角度是用物体OBB包围盒特征面的法向量表示;所述物体的选择标志 表示物体被选中并对物体进行任务操作;所述物体的操作属性是指在场景任务中对已选物 体能够进行的操作,包括装配物体的抓取、平移、释放;所述物体的状态是指物体的操作属 性对应的操作是否执行;所述物体操作完成是指物体的操作属性对应的操作都执行完毕; 所述虚拟手知识库包含虚拟手的位置和虚拟手的向上法向量的角度;所述隐式场景知识为 场景中物体间和物体与虚拟手的特征关系,包括物体和虚拟手的位置关系、物体和虚拟手 的角度关系、物体的关联物体、关联物体的高光显示标志、关联物体的高光显示次数、物体 的拉近标志、物体的旋转标志、物体和虚拟手的位置关系阈值、关联物体和虚拟手的位置关 系阈值、物体和虚拟手的方向关系阈值、关联物体和虚拟手的方向关系阈值;所述物体的拉 近包括:根据当前物体,场景向虚拟手靠近和根据当前物体的关联物体,场景向虚拟手靠 近;所述物体的旋转包括物体顺时针向虚拟手旋转、物体逆时针向虚拟手旋转、当前物体的 关联物体顺时针向当前物体旋转和当前物体的关联物体逆时针向当前物体旋转; 建立用户知识模型模块:用户知识包括用户的手部位置变化和手势;所述用户的手部 位置变化包括X变化和y变化,并把用户手部的X变化或y变化超过50mm定义为位置变化;所 述手势包含12指抓手势和12指放手势;所述位置变化包括位置向上变化、位置向下变化和 其他方向变化; 构建显式交互知识库模块:显式交互是系统把显式场景信息和用户的动作当作输入, 感知用户的直接交互意图,根据用户的意图语义产生显式输出;所述显式交互知识库包括 显式场景知识库和用户动作知识库;所述显式场景知识库中的前提包括上一次推理的意 图、物体的操作属性、手部位置是否变化、手势和规则数目;结论包括手部动作和用户意图; 所述手部动作包括手向上移动、手向下移动、手向其他方向移动、手握紧和手张开;所述用 户意图包括休息、操作、选择、抓取、平移和释放; 构建隐式交互知识库模块:隐式交互是把用户显式意图和情境隐含知识当作隐式输 入,环境主动配合用户的显式意图产生隐式输出,协助用户完成交互任务;所述隐式交互知 识库包括隐式场景知识和用户意图;所述隐式交互知识库中的前提包括当前用户意图和当 前用户意图的关联类型,结论包括用户的隐式意图;所述当前用户意图的关联类型包括当 前物体和虚拟手的位置关系、当前物体的关联物体显示、当前物体和关联物体的位置关系、 当前物体和虚拟手的角度关系和当前物体和关联物体的角度关系;所述用户的隐式意图包 括根据当前物体,场景向虚拟手靠近、根据当前物体的关联物体,场景向虚拟手靠近、物体 向虚拟手顺时针旋转、关联物体向物体顺时针旋转、物体向虚拟手逆时针旋转、关联物体向 物体逆时针旋转。 用户隐式意图感知模块:基于场景任务进行用户隐式意图感知; 场景感知拉近模块:根据场景物体和虚拟手位置关系的进行场景感知拉近; 场景物体旋转模块:基于物体方向包围盒的特征面和虚拟手的方向关系的进行场景物 体旋转。2. 根据权利要求1所述的用于计算机虚拟装配的隐式交互系统,其特征在于:所述用户 隐式意图感知模块是这样实现的: S1:建立并读取物体知识库、用户知识模型和显式交互知识库、隐式交互知识库和综合 数据库,当前任务编号初始化为〇,当前任务完成标志初始化为假; S2:根据显式场景知识库中的物体操作属性确定可操作的物体数目,确定场景任务最 大编号; S3:判断当前任务编号是否超过场景任务最大编号,如果是,退出;如果否,转S4; S4:判断当前物体操作状态与场景库里物体操作状态是否相同,如果是,当前任务完 成,当如任务完成标志变为真; S5:当开始检测标志记录为假时,记录手的初始位置及手的当前位置,当手的当前位置 与初始位置的差值大于50mm时,开始检测; S6:当用户操作意图为选中装配物体时,将物体的操作属性和当前任务完成标志存入 综合数据库,当前任务编号加1; S7:判断用户操作标志是否为真,如果是,执行操作,并将用户操作标记变为假;如果 否,转S8; S8:利用肤色模型进行手部分割,获取从开始检测之后的十帧用户的手势主方向特征 和手部位置,选取第一帧和第十帧的手势特征,与模板库特征进行类-Hausdorff距离模板 匹配;选取第一帧和第十帧的手部位置判断手势位置变化;将手势识别结果和手部位置变 化存入综合数据库中; S9:将综合数据库中的物体的操作属性、手势识别结果和手部位置变化作为当前事实, 遍历显式交互知识库,推理出最终结论,存入综合数据库中; S10:根据推理的最终结论,确定用户动作的显式意图;如果当前任务完成标志为未完 成,则将最终结论作为下一次推理的前提:上一次推理的意图,否则,不把最终结论作为下 一次推理的如提,并更改当如任务完成标志为未完成; S11:把用户的显式意图和隐式场景知识当作隐式输入,遍历隐式交互知识库,推理出 最终结论,并存入综合数据库中; S12:根据用户的显式意图和隐式意图将对应操作标志变为真,执行相应操作,更改对 应的物体的操作状态,之后将开始检测标志和对应操作标志变为假,转S3。3. 根据权利要求1所述的用于计算机虚拟装配的隐式交互系统,其特征在于:所述场景 感知拉近模块是这样实现的: P1:判断当前用户的操作意图,如果操作意图是平移,转P2; P2:根据实际手和粒子滤波跟踪算法得到虚拟手的位置,根据式(1)计算虚拟手的移动 速度v;其中,loci表示虚拟手的末位置,loco表示虚拟手的初位置,t为虚拟手运动的帧数; P3:如果当前物体状态为没有被抓取,根据式(2)计算虚拟手的末位置和当前操作物体 位置的距离d1;其中,01表示第i个场景物体的位置; P4:如果cU大于距离阈值,则当前操作物体主动向虚拟手靠近。根据式(3)求取场景拉近 的帧数frame;其中,thre_dl表示距离阈值; P5:如果当前物体状态为已被抓取,根据式(4)计算当前操作物体的位置和关联物体位 置的距离d2;其中,c/ i表示第i个场景物体关联物体的位置。 P6:如果d2大于距离阈值,则当前操作物体的关联物体主动向虚拟手靠近,根据公式(5) 求取场景拉近的帧数frame;其中,thre_d2表示距离阈值; P7:场景中各物体逐帧向虚拟手靠近距离v,逐帧更新场景中各物体的位置。4.根据权利要求1所述的用于计算机虚拟装配的隐式交互系统,其特征在于:所述场景 物体旋转模块是这样实现的: T1:判断当前用户的操作意图,如果是抓取或释放,转T2; T2:求出场景中物体的中心和协方差矩阵,计算协方差矩阵的特征向量,计算物体的 OBB长方体包围盒; T3:求取并记录OBB包围盒各面的面积Si及其法向量取; T4:当用户操作意图为抓取时,物体方向为抓取面的方向,选择最小面的法向量^作 为抓取时物体的方向向量; T5:如果虚拟手的向上法向量^和当前物体的方向向量&的夹角满足式(6 ),则物体 绕虚拟手的法向量旋转;T6:计算虚拟手的向上法向量$和当前物体的方向向量?在XOY平面的投影向量i和 :,计算两个向量与x轴的夹 T7 :如果angelv和angeli满足式(7),则物体绕虚拟手顺时针旋转(anglel_thre_ anglel); angelv^iangeli^; (angelv+180°) (7) 如果3即6]^和311〖6]^满足式(8),物体绕虚拟手逆时针旋转(311〖161-1:1^6_311〖161); (angelv+180。)<angeli<(angelv+360。) (8) T8:根据式(9)更新当前操作物体各面的法向量;其中0 = -(anglel_thre_anglel) 〇 T9:当用户操作意图为释放时,物体方向为装配面的方向,选择最大面的法向量^作 为释放时物体的方向向量; Τ10:如果当前物体方向向量^和关联物体装配面的法向量;^的夹角满足式(12 ),则 关联物体绕当前物体旋转;Τ11:计算当前物体的方向向量?和当前物体关联物体装配面的法向量^在ΧΟΥ平 面的投影向量计算两个向量与X轴的夹角angeli和angel/ i; T12:如果angeli和angel/ i满足式(13),则关联物体绕当前物体顺时针旋转(angle2-thre_angle2); angeliMangel7 (angeli+180°) (13) 如果angeli和angel/ i满足式(14),则关联物体绕当前物体逆时针旋转(angle2_thre_ angle2); (angeli+180°) Mangel7 (angeli+360〇) (14) T13 :根据式(9)更新当前操作物体关联物体各面的法向量,Θ = (anglel-thre_ anglel)〇
【文档编号】G06F3/01GK105929943SQ201610236176
【公开日】2016年9月7日
【申请日】2016年4月15日
【发明人】郭清锁
【申请人】郭清锁
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1